Skip to content

Commit

Permalink
rename to smallzarrgroups (#25)
Browse files Browse the repository at this point in the history
  • Loading branch information
nhz2 authored Mar 9, 2023
1 parent 1734279 commit 3ee1b19
Show file tree
Hide file tree
Showing 16 changed files with 189 additions and 193 deletions.
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name = "StorageTrees"
name = "SmallZarrGroups"
uuid = "d423b6e5-1c84-4ae2-8d2d-b903aee15ac7"
authors = ["nhz2 <nhz2@cornell.edu>"]
version = "0.5.0"
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# StorageTrees (WIP)
# SmallZarrGroups (WIP)

[![Build Status](https://github.com/medyan-dev/StorageTrees.jl/workflows/CI/badge.svg)](https://github.com/medyan-dev/StorageTrees.jl/actions)
[![codecov](https://codecov.io/gh/medyan-dev/StorageTrees.jl/branch/main/graph/badge.svg?token=UUOFUEIX8K)](https://codecov.io/gh/medyan-dev/StorageTrees.jl)
[![Build Status](https://github.com/medyan-dev/SmallZarrGroups.jl/workflows/CI/badge.svg)](https://github.com/medyan-dev/SmallZarrGroups.jl/actions)
[![codecov](https://codecov.io/gh/medyan-dev/SmallZarrGroups.jl/branch/main/graph/badge.svg?token=UUOFUEIX8K)](https://codecov.io/gh/medyan-dev/SmallZarrGroups.jl)

In memory hierarchy of arrays and attributes loaded from disk or to be saved to disk with [Zarr](https://zarr.readthedocs.io/en/stable/spec/v2.html#).

## Warning: StorageTrees is currently a WIP and its API may drastically change at any time.
## Warning: SmallZarrGroups is currently a WIP and its API may drastically change at any time.

## Limitations

Expand Down
6 changes: 1 addition & 5 deletions src/StorageTrees.jl → src/SmallZarrGroups.jl
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
module StorageTrees
module SmallZarrGroups

# An interface for storing a tree of named arrays and attributes to disk with per array compression options.
# The API is inspired by zarr-python, and uses zarr-python via PythonCall to actually store the arrays to disk.

# This version of the API ZArray doesn't have any type parameters.

using DataStructures: SortedDict, OrderedDict
using ArgCheck
Expand Down
2 changes: 1 addition & 1 deletion src/experimental/print-diff.jl
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ macro test_equal(group1,group2,ignorename=:(Returns(false)))
group1name = lpad(group1name, maxnamewidth)
group2name = lpad(group2name, maxnamewidth)
esc(quote
let diff = sprint(io->StorageTrees.print_diff(io,$group1, $group2, $group1name, $group2name, "", $ignorename))
let diff = sprint(io->SmallZarrGroups.print_diff(io,$group1, $group2, $group1name, $group2name, "", $ignorename))
print(diff)
@test isempty(diff) == true
end
Expand Down
2 changes: 1 addition & 1 deletion test/Artifacts.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ git-tree-sha1 = "eea621a89795e18e0d74d6b28822b265c62d62b8"

[[fixture.download]]
sha256 = "5ebeec7532f078d9deccc6f30542c8dcafa3b995f35cbbf316ba523fdc1c2342"
url = "https://github.com/medyan-dev/StorageTrees.jl/releases/download/v0.4.0/zarr-fixture3.tar.gz"
url = "https://github.com/medyan-dev/SmallZarrGroups.jl/releases/download/v0.4.0/zarr-fixture3.tar.gz"
2 changes: 1 addition & 1 deletion test/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
StaticStrings = "4db0a0c5-418a-4e1d-8806-cb305fe13294"
StorageTrees = "d423b6e5-1c84-4ae2-8d2d-b903aee15ac7"
SmallZarrGroups = "d423b6e5-1c84-4ae2-8d2d-b903aee15ac7"
StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
148 changes: 74 additions & 74 deletions test/experimental/test_chunking.jl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using StorageTrees
using SmallZarrGroups
using DataStructures: SortedDict, OrderedDict
using StaticArrays
using Test
Expand All @@ -8,94 +8,94 @@ using Test
@testset "chunking" begin
# zero dim case
for elsize in (0,8,1000)
@test StorageTrees.normalize_chunks( -1, (), elsize) == ()
@test StorageTrees.normalize_chunks( (), (), elsize) == ()
@test StorageTrees.normalize_chunks( :, (), elsize) == ()
@test StorageTrees.normalize_chunks( 0, (), elsize) == ()
@test StorageTrees.normalize_chunks(1000, (), elsize) == ()
@test SmallZarrGroups.normalize_chunks( -1, (), elsize) == ()
@test SmallZarrGroups.normalize_chunks( (), (), elsize) == ()
@test SmallZarrGroups.normalize_chunks( :, (), elsize) == ()
@test SmallZarrGroups.normalize_chunks( 0, (), elsize) == ()
@test SmallZarrGroups.normalize_chunks(1000, (), elsize) == ()
end

# one dim case default chunking
@test StorageTrees.normalize_chunks( -1, (0,), 0) == (0,)
@test StorageTrees.normalize_chunks( -1, (0,), 1) == (0,)
@test StorageTrees.normalize_chunks( -1, (1,), 0) == (1,)
@test StorageTrees.normalize_chunks( -1, (1,), 1) == (1,)
@test StorageTrees.normalize_chunks( -1, (100,), 2^30) == (1,)
@test StorageTrees.normalize_chunks( -1, (2^50,), 8) == (2^23,)
@test StorageTrees.normalize_chunks( -1, (2^50,), 1) == (2^26,)
@test StorageTrees.normalize_chunks( -1, (2^30,), 8) == (2^19,)
@test StorageTrees.normalize_chunks( -1, (2^30,), 1) == (2^21,)
@test StorageTrees.normalize_chunks( -1, (2^20,), 1) == (2^18,)
@test StorageTrees.normalize_chunks( -1, (2^20+1,), 1) == (2^18+1,)
@test StorageTrees.normalize_chunks( -1, (2^20+2,), 1) == (2^18+1,)
@test StorageTrees.normalize_chunks( -1, (2^20+3,), 1) == (2^18+1,)
@test StorageTrees.normalize_chunks( -1, (2^20+4,), 1) == (2^18+1,)
@test StorageTrees.normalize_chunks( -1, (2^20+5,), 1) == (2^18+2,)
@test StorageTrees.normalize_chunks( -1, (2^20,), 8) == (2^16,)
@test StorageTrees.normalize_chunks( -1, (2^18,), 1) == (2^17,)
@test StorageTrees.normalize_chunks( -1, (2^10,), 6) == (2^10,)
@test SmallZarrGroups.normalize_chunks( -1, (0,), 0) == (0,)
@test SmallZarrGroups.normalize_chunks( -1, (0,), 1) == (0,)
@test SmallZarrGroups.normalize_chunks( -1, (1,), 0) == (1,)
@test SmallZarrGroups.normalize_chunks( -1, (1,), 1) == (1,)
@test SmallZarrGroups.normalize_chunks( -1, (100,), 2^30) == (1,)
@test SmallZarrGroups.normalize_chunks( -1, (2^50,), 8) == (2^23,)
@test SmallZarrGroups.normalize_chunks( -1, (2^50,), 1) == (2^26,)
@test SmallZarrGroups.normalize_chunks( -1, (2^30,), 8) == (2^19,)
@test SmallZarrGroups.normalize_chunks( -1, (2^30,), 1) == (2^21,)
@test SmallZarrGroups.normalize_chunks( -1, (2^20,), 1) == (2^18,)
@test SmallZarrGroups.normalize_chunks( -1, (2^20+1,), 1) == (2^18+1,)
@test SmallZarrGroups.normalize_chunks( -1, (2^20+2,), 1) == (2^18+1,)
@test SmallZarrGroups.normalize_chunks( -1, (2^20+3,), 1) == (2^18+1,)
@test SmallZarrGroups.normalize_chunks( -1, (2^20+4,), 1) == (2^18+1,)
@test SmallZarrGroups.normalize_chunks( -1, (2^20+5,), 1) == (2^18+2,)
@test SmallZarrGroups.normalize_chunks( -1, (2^20,), 8) == (2^16,)
@test SmallZarrGroups.normalize_chunks( -1, (2^18,), 1) == (2^17,)
@test SmallZarrGroups.normalize_chunks( -1, (2^10,), 6) == (2^10,)

# one dim case custom chunking
@test StorageTrees.normalize_chunks((123), (0,), 6) == (123,)
@test StorageTrees.normalize_chunks((123), (1,), 6) == (123,)
@test StorageTrees.normalize_chunks((123), (1000,), 6) == (123,)
@test StorageTrees.normalize_chunks( 123, (0,), 6) == (123,)
@test StorageTrees.normalize_chunks( 123, (1,), 6) == (123,)
@test StorageTrees.normalize_chunks( 123, (1000,), 6) == (123,)
@test SmallZarrGroups.normalize_chunks((123), (0,), 6) == (123,)
@test SmallZarrGroups.normalize_chunks((123), (1,), 6) == (123,)
@test SmallZarrGroups.normalize_chunks((123), (1000,), 6) == (123,)
@test SmallZarrGroups.normalize_chunks( 123, (0,), 6) == (123,)
@test SmallZarrGroups.normalize_chunks( 123, (1,), 6) == (123,)
@test SmallZarrGroups.normalize_chunks( 123, (1000,), 6) == (123,)
for x in (0, :)
@test StorageTrees.normalize_chunks((x,), (1223,), 6) == (1223,)
@test StorageTrees.normalize_chunks( x, (1223,), 6) == (1223,)
@test StorageTrees.normalize_chunks( x, (0,), 6) == (0,)
@test SmallZarrGroups.normalize_chunks((x,), (1223,), 6) == (1223,)
@test SmallZarrGroups.normalize_chunks( x, (1223,), 6) == (1223,)
@test SmallZarrGroups.normalize_chunks( x, (0,), 6) == (0,)
end

# two dim case default chunking
@test StorageTrees.normalize_chunks( -1, (0,0), 0) == (0,0)
@test StorageTrees.normalize_chunks( -1, (0,1), 0) == (0,1)
@test StorageTrees.normalize_chunks( -1, (1,0), 0) == (1,0)
@test StorageTrees.normalize_chunks( -1, (1,1), 0) == (1,1)
@test StorageTrees.normalize_chunks( -1, (0,0), 6) == (0,0)
@test StorageTrees.normalize_chunks( -1, (0,1), 6) == (0,1)
@test StorageTrees.normalize_chunks( -1, (1,0), 6) == (1,0)
@test StorageTrees.normalize_chunks( -1, (1,1), 6) == (1,1)
@test StorageTrees.normalize_chunks( -1, (1,1), 2^30) == (1,1)
@test StorageTrees.normalize_chunks( -1, (6,5), 2^30) == (1,1)
@test StorageTrees.normalize_chunks( -1, (6,5), 6) == (6,5)
@test StorageTrees.normalize_chunks( -1, (1,6), 1) == (1,6)
@test SmallZarrGroups.normalize_chunks( -1, (0,0), 0) == (0,0)
@test SmallZarrGroups.normalize_chunks( -1, (0,1), 0) == (0,1)
@test SmallZarrGroups.normalize_chunks( -1, (1,0), 0) == (1,0)
@test SmallZarrGroups.normalize_chunks( -1, (1,1), 0) == (1,1)
@test SmallZarrGroups.normalize_chunks( -1, (0,0), 6) == (0,0)
@test SmallZarrGroups.normalize_chunks( -1, (0,1), 6) == (0,1)
@test SmallZarrGroups.normalize_chunks( -1, (1,0), 6) == (1,0)
@test SmallZarrGroups.normalize_chunks( -1, (1,1), 6) == (1,1)
@test SmallZarrGroups.normalize_chunks( -1, (1,1), 2^30) == (1,1)
@test SmallZarrGroups.normalize_chunks( -1, (6,5), 2^30) == (1,1)
@test SmallZarrGroups.normalize_chunks( -1, (6,5), 6) == (6,5)
@test SmallZarrGroups.normalize_chunks( -1, (1,6), 1) == (1,6)
for op in (reverse, identity)
@test StorageTrees.normalize_chunks( -1, op((2^50, 1)), 8) == op((2^23, 1))
@test StorageTrees.normalize_chunks( -1, op((2^50, 1)), 1) == op((2^26, 1))
@test StorageTrees.normalize_chunks( -1, op((2^30, 1)), 8) == op((2^19, 1))
@test StorageTrees.normalize_chunks( -1, op((2^30, 1)), 1) == op((2^21, 1))
@test StorageTrees.normalize_chunks( -1, op((2^20, 1)), 1) == op((2^18, 1))
@test StorageTrees.normalize_chunks( -1, op((2^20+1, 1)), 1) == op((2^18+1, 1))
@test StorageTrees.normalize_chunks( -1, op((2^20+2, 1)), 1) == op((2^18+1, 1))
@test StorageTrees.normalize_chunks( -1, op((2^20+3, 1)), 1) == op((2^18+1, 1))
@test StorageTrees.normalize_chunks( -1, op((2^20+4, 1)), 1) == op((2^18+1, 1))
@test StorageTrees.normalize_chunks( -1, op((2^20+5, 1)), 1) == op((2^18+2, 1))
@test StorageTrees.normalize_chunks( -1, op((2^20, 1)), 8) == op((2^16, 1))
@test StorageTrees.normalize_chunks( -1, op((2^18, 1)), 1) == op((2^17, 1))
@test StorageTrees.normalize_chunks( -1, op((2^10, 1)), 6) == op((2^10, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^50, 1)), 8) == op((2^23, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^50, 1)), 1) == op((2^26, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^30, 1)), 8) == op((2^19, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^30, 1)), 1) == op((2^21, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^20, 1)), 1) == op((2^18, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^20+1, 1)), 1) == op((2^18+1, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^20+2, 1)), 1) == op((2^18+1, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^20+3, 1)), 1) == op((2^18+1, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^20+4, 1)), 1) == op((2^18+1, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^20+5, 1)), 1) == op((2^18+2, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^20, 1)), 8) == op((2^16, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^18, 1)), 1) == op((2^17, 1))
@test SmallZarrGroups.normalize_chunks( -1, op((2^10, 1)), 6) == op((2^10, 1))
end
@test StorageTrees.normalize_chunks( -1, (2^10, 2^10), 1) == (2^9, 2^9)
@test StorageTrees.normalize_chunks( -1, (2^10+1, 2^10), 1) == (2^9+1, 2^9)
@test StorageTrees.normalize_chunks( -1, (2^10+2, 2^10+1), 1) == (2^9+1, 2^9+1)
@test StorageTrees.normalize_chunks( -1, (2^10+3, 2^10), 1) == (2^9+2, 2^9)
@test SmallZarrGroups.normalize_chunks( -1, (2^10, 2^10), 1) == (2^9, 2^9)
@test SmallZarrGroups.normalize_chunks( -1, (2^10+1, 2^10), 1) == (2^9+1, 2^9)
@test SmallZarrGroups.normalize_chunks( -1, (2^10+2, 2^10+1), 1) == (2^9+1, 2^9+1)
@test SmallZarrGroups.normalize_chunks( -1, (2^10+3, 2^10), 1) == (2^9+2, 2^9)
# slightly prefer to split higher dims
@test StorageTrees.normalize_chunks( -1, (2^18, 2), 1) == (2^18, 1)
@test StorageTrees.normalize_chunks( -1, (2, 2^18), 1) == (2, 2^17)
@test SmallZarrGroups.normalize_chunks( -1, (2^18, 2), 1) == (2^18, 1)
@test SmallZarrGroups.normalize_chunks( -1, (2, 2^18), 1) == (2, 2^17)

# two dim case custom chunking
@test StorageTrees.normalize_chunks((123,456), (0,4), 6) == (123,456)
@test StorageTrees.normalize_chunks((123,456), (1,2), 6) == (123,456)
@test StorageTrees.normalize_chunks((123,456), (1000,4), 6) == (123,456)
@test StorageTrees.normalize_chunks( 123, (0,1), 6) == (123,123)
@test StorageTrees.normalize_chunks( 123, (1,1), 6) == (123,123)
@test StorageTrees.normalize_chunks( 123, (1000,1000), 6) == (123,123)
@test SmallZarrGroups.normalize_chunks((123,456), (0,4), 6) == (123,456)
@test SmallZarrGroups.normalize_chunks((123,456), (1,2), 6) == (123,456)
@test SmallZarrGroups.normalize_chunks((123,456), (1000,4), 6) == (123,456)
@test SmallZarrGroups.normalize_chunks( 123, (0,1), 6) == (123,123)
@test SmallZarrGroups.normalize_chunks( 123, (1,1), 6) == (123,123)
@test SmallZarrGroups.normalize_chunks( 123, (1000,1000), 6) == (123,123)
for x in (0, :)
@test StorageTrees.normalize_chunks((x,423), (1223,532), 6) == (1223,423)
@test StorageTrees.normalize_chunks((x,x), (1223,532), 6) == (1223,532)
@test StorageTrees.normalize_chunks( x, (1223,532), 6) == (1223,532)
@test StorageTrees.normalize_chunks( x, (0,532), 6) == (0,532)
@test SmallZarrGroups.normalize_chunks((x,423), (1223,532), 6) == (1223,423)
@test SmallZarrGroups.normalize_chunks((x,x), (1223,532), 6) == (1223,532)
@test SmallZarrGroups.normalize_chunks( x, (1223,532), 6) == (1223,532)
@test SmallZarrGroups.normalize_chunks( x, (0,532), 6) == (0,532)
end
end

Expand Down
42 changes: 21 additions & 21 deletions test/experimental/test_compressors.jl
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
using StorageTrees
using SmallZarrGroups
using JSON3
using Test
using Pkg.Artifacts

@testset "compressor edge cases" begin
# GZip can be loaded but not saved.
@testset "loading gzip" begin
gload = StorageTrees.load_dir(joinpath(artifact"fixture", "test_gzip.zarr"))
gload = SmallZarrGroups.load_dir(joinpath(artifact"fixture", "test_gzip.zarr"))
@test gload["test_gzip"] == 0:9
end

# GZip can be loaded but will save as uncompressed.
@testset "saving gzip" begin
g = ZGroup()
data = rand(10,20)
g["testarray"] = StorageTrees.ZArray(data; compressor = JSON3.read("""{
g["testarray"] = SmallZarrGroups.ZArray(data; compressor = JSON3.read("""{
"level": 5,
"id": "gzip"
}"""))
mktempdir() do path
@test_logs (:warn, "compressor gzip not implemented yet, saving data uncompressed") StorageTrees.save_dir(path,g)
gload = StorageTrees.load_dir(path)
@test_logs (:warn, "compressor gzip not implemented yet, saving data uncompressed") SmallZarrGroups.save_dir(path,g)
gload = SmallZarrGroups.load_dir(path)
@test gload["testarray"] == data
end
end
Expand All @@ -31,17 +31,17 @@ using Pkg.Artifacts
g = ZGroup()
data = rand(10,20)
data_bytes = rand(UInt8,10)
g["testarray"] = StorageTrees.ZArray(data; compressor = JSON3.read("""{
g["testarray"] = SmallZarrGroups.ZArray(data; compressor = JSON3.read("""{
"id": "blosc",
"shuffle": -1
}"""))
g["testarray_bytes"] = StorageTrees.ZArray(data_bytes; compressor = JSON3.read("""{
g["testarray_bytes"] = SmallZarrGroups.ZArray(data_bytes; compressor = JSON3.read("""{
"id": "blosc",
"shuffle": -1
}"""))
mktempdir() do path
StorageTrees.save_dir(path,g)
gload = StorageTrees.load_dir(path)
SmallZarrGroups.save_dir(path,g)
gload = SmallZarrGroups.load_dir(path)
@test gload["testarray"] == data
@test gload["testarray_bytes"] == data_bytes
end
Expand All @@ -53,51 +53,51 @@ using Pkg.Artifacts
@testset "bad blosc compressor parameters" begin
g = ZGroup()
data = rand(10,20)
g["testarray"] = StorageTrees.ZArray(data; compressor = JSON3.read("""{
g["testarray"] = SmallZarrGroups.ZArray(data; compressor = JSON3.read("""{
"clevel": 1000,
"id": "blosc"
}"""))
mktempdir() do path
@test_logs (:warn, "blosc clevel not in 0:9, saving data uncompressed") StorageTrees.save_dir(path,g)
gload = StorageTrees.load_dir(path)
@test_logs (:warn, "blosc clevel not in 0:9, saving data uncompressed") SmallZarrGroups.save_dir(path,g)
gload = SmallZarrGroups.load_dir(path)
@test gload["testarray"] == data
end
end
@testset "bad zlib compressor parameters" begin
g = ZGroup()
data = rand(10,20)
g["testarray"] = StorageTrees.ZArray(data; compressor = JSON3.read("""{
g["testarray"] = SmallZarrGroups.ZArray(data; compressor = JSON3.read("""{
"level": 1000,
"id": "zlib"
}"""))
mktempdir() do path
@test_logs (:warn, "zlib level not in -1:9, saving data uncompressed") StorageTrees.save_dir(path,g)
gload = StorageTrees.load_dir(path)
@test_logs (:warn, "zlib level not in -1:9, saving data uncompressed") SmallZarrGroups.save_dir(path,g)
gload = SmallZarrGroups.load_dir(path)
@test gload["testarray"] == data
end
end
@testset "bad bz2 compressor parameters" begin
g = ZGroup()
data = rand(10,20)
g["testarray"] = StorageTrees.ZArray(data; compressor = JSON3.read("""{
g["testarray"] = SmallZarrGroups.ZArray(data; compressor = JSON3.read("""{
"level": 1000,
"id": "bz2"
}"""))
mktempdir() do path
@test_logs (:warn, "bz2 level not in 1:9, saving data uncompressed") StorageTrees.save_dir(path,g)
gload = StorageTrees.load_dir(path)
@test_logs (:warn, "bz2 level not in 1:9, saving data uncompressed") SmallZarrGroups.save_dir(path,g)
gload = SmallZarrGroups.load_dir(path)
@test gload["testarray"] == data
end
end
@testset "missing compressor id" begin
g = ZGroup()
data = rand(10,20)
g["testarray"] = StorageTrees.ZArray(data; compressor = JSON3.read("""{
g["testarray"] = SmallZarrGroups.ZArray(data; compressor = JSON3.read("""{
"level": 1000
}"""))
mktempdir() do path
@test_logs (:warn, "compressor id missing, saving data uncompressed") StorageTrees.save_dir(path,g)
gload = StorageTrees.load_dir(path)
@test_logs (:warn, "compressor id missing, saving data uncompressed") SmallZarrGroups.save_dir(path,g)
gload = SmallZarrGroups.load_dir(path)
@test gload["testarray"] == data
end
end
Expand Down
Loading

2 comments on commit 3ee1b19

@nhz2
Copy link
Member Author

@nhz2 nhz2 commented on 3ee1b19 Mar 9, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/79259

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.5.0 -m "<description of version>" 3ee1b1980471c5f655b1af48daa210f245c9d1d6
git push origin v0.5.0

Also, note the warning: This looks like a new registration that registers version 0.5.0.
Ideally, you should register an initial release with 0.0.1, 0.1.0 or 1.0.0 version numbers
This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.

Please sign in to comment.