Skip to content

Commit

Permalink
Merge branch 'release/v2.3.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
CiaranOMara committed May 4, 2024
2 parents d09be57 + d310734 commit 19e818a
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 28 deletions.
25 changes: 22 additions & 3 deletions .github/workflows/CompatHelper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,43 @@ on:
schedule:
- cron: 0 0 * * *
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
CompatHelper:
runs-on: ubuntu-latest
steps:
- name: Check if Julia is already available in the PATH
id: julia_in_path
run: which julia
continue-on-error: true
- name: Install Julia, but only if it is not already available in the PATH
uses: julia-actions/setup-julia@v1
with:
version: '1'
arch: ${{ runner.arch }}
if: steps.julia_in_path.outcome != 'success'
- name: "Add the General registry via Git"
run: |
import Pkg
ENV["JULIA_PKG_SERVER"] = ""
Pkg.Registry.add("General")
shell: julia --color=yes {0}
- name: "Install CompatHelper"
run: |
import Pkg
name = "CompatHelper"
uuid = "aa819f21-2bde-4658-8897-bab36330d9b7"
version = "2"
version = "3"
Pkg.add(; name, uuid, version)
shell: julia --color=yes {0}
- name: "Run CompatHelper"
run: |
import CompatHelper
CompatHelper.main(master_branch = "master")
CompatHelper.main()
shell: julia --color=yes {0}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }}
# COMPATHELPER_PRIV: ${{ secrets.COMPATHELPER_PRIV }}
# COMPATHELPER_PRIV: ${{ secrets.COMPATHELPER_PRIV }}
20 changes: 18 additions & 2 deletions .github/workflows/TagBot.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
name: TagBot

on:
issue_comment:
types:
- created
workflow_dispatch:

inputs:
lookback:
default: "3"
permissions:
actions: read
checks: read
contents: write
deployments: read
issues: read
discussions: read
packages: read
pages: read
pull-requests: read
repository-projects: read
security-events: read
statuses: read
jobs:
TagBot:
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
Expand All @@ -14,4 +28,6 @@ jobs:
- uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
# Edit the following line to reflect the actual name of the GitHub Secret containing your private key
ssh: ${{ secrets.DOCUMENTER_KEY }}
# ssh: ${{ secrets.NAME_OF_MY_SSH_PRIVATE_KEY_SECRET }}
21 changes: 16 additions & 5 deletions .github/workflows/UnitTests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ on:
- push
- pull_request

# needed to allow julia-actions/cache to delete old caches that it has created
permissions:
actions: write
contents: read

jobs:
test:
name: Julia ${{ matrix.julia-version }} - ${{ matrix.os }} - ${{ matrix.julia-arch }} - ${{ github.event_name }}
Expand All @@ -13,7 +18,7 @@ jobs:
fail-fast: false
matrix:
julia-version:
- '1.0' # LTS
- '1.6' # LTS
- '1'
julia-arch: [x64, x86]
os: [ubuntu-latest, windows-latest, macOS-latest]
Expand All @@ -29,17 +34,23 @@ jobs:

steps:
- name: Checkout Repository
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup Julia
uses: julia-actions/setup-julia@v1
with:
version: ${{ matrix.julia-version }}
arch: ${{ matrix.julia-arch }}
- uses: julia-actions/cache@v1
- uses: julia-actions/julia-buildpkg@v1
- name: Run Tests
uses: julia-actions/julia-runtest@v1
with:
annotate: true
- name: Create CodeCov
uses: julia-actions/julia-processcoverage@v1
- name: Upload CodeCov
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v4
with:
file: ${{ steps.coverage-processing.outputs.lcov-file }}
fail_ci_if_error: false
files: lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Bedgraph"
uuid = "0bcc2ff6-69eb-520d-bede-0374fc5bd2fd"
authors = ["Ciarán O'Mara <[email protected]>"]
version = "2.2.0"
version = "2.3.0"

[compat]
julia = "0.7, 1"
Expand Down
10 changes: 8 additions & 2 deletions src/record.jl
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,14 @@ end

Base.convert(::Type{NamedTuple}, record::Record) = convert(NamedTuple{(:chrom, :first, :last, :value)}, record)

function Base.convert(::Type{Record}, nt::NamedTuple{(:chrom, :first, :last, :value)})
return Record(nt.chrom, nt.first, nt.last, nt.value)
function Base.convert(::Type{T}, nt::NamedTuple{(:chrom, :first, :last, :value),Tuple{String,Int64,Int64,R}}) where {R <: Real, T<: Bedgraph.Record}
@debug "Convert - strictly named tuples."
return T(nt.chrom, nt.first, nt.last, nt.value)
end

function Base.convert(::Type{T}, nt::NamedTuple{names,Tuple{String,Int64,Int64,R}}) where {R <: Real, names, T<: Bedgraph.Record}
@debug "Convert - loosely named tuples."
return T(nt[1], nt[2], nt[3], nt[4])
end

function Base.convert(::Type{Record}, str::AbstractString)
Expand Down
37 changes: 22 additions & 15 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,9 @@ end

# Seek test.
open(Bag.file, "r") do io
@info "" readline(io, keep = true)
seek(io, Record)
# @test position(io) == 536 #TOOD: determine why the returned position on windows machines is 545.
@test position(io) == 536 #TODO: determine why the returned position on windows machines is 545.
@test readline(io) == Bag.line1
end

Expand Down Expand Up @@ -286,26 +287,32 @@ end #testset Internal Helpers

@testset "NamedTuple" begin

record = Record(Bag.line1)
# Check strictly named fields.

nt = (
chrom = Bag.chroms[1],
first = Bag.firsts[1],
last = Bag.lasts[1],
value = Bag.values[1],
nt_strict_names = (
chrom = Bag.record1.chrom,
first=Bag.record1.first,
last=Bag.record1.last,
value=Bag.record1.value
)

@test record == Record(nt)
@test convert(NamedTuple{(:chrom, :first, :last, :value)}, Bag.record1) == convert(NamedTuple, Bag.record1) == nt_strict_names
@test Bag.record1 == convert(Record, nt_strict_names)
@test Bag.record1 == Record(nt_strict_names)

@test convert(NamedTuple{(:chrom, :first, :last, :value)}, record) == convert(NamedTuple, record) == nt
# Check loosely named fields.

# Check renaming of fields.
@test convert(NamedTuple{(:chrom, :left, :right, :value)}, record) == (
chrom = Bag.chroms[1],
left = Bag.firsts[1],
right = Bag.lasts[1],
value = Bag.values[1],
nt_loose_names = (
chrom = Bag.record1.chrom,
left=Bag.record1.first,
right=Bag.record1.last,
value=Bag.record1.value
)

@test convert(NamedTuple{(:chrom, :left, :right, :value)}, Bag.record1) == nt_loose_names
@test Bag.record1 == convert(Record, nt_loose_names)
@test Bag.record1 == Record(nt_loose_names)

end

end # total testset

0 comments on commit 19e818a

Please sign in to comment.