Skip to content

Align development and master histories by rebasing development onto master - #192

Merged
cmhulbert merged 57 commits into
masterfrom
mergeDevelopmentRebaseOnMaster
Jan 12, 2026
Merged

Align development and master histories by rebasing development onto master#192
cmhulbert merged 57 commits into
masterfrom
mergeDevelopmentRebaseOnMaster

Conversation

@cmhulbert

Copy link
Copy Markdown
Contributor

We wanted to keep the git history that was previously squashed into master in #177. This proved more difficult of a workflow than we wanted, so we will archive that branch with a tag (shard-dev-archive) so the history is still available if ever it is useful.

Otherwise, we rebased current development off master, and will merge this PR into master. Then, develoment branch will be recreated off of master.

any feature branches off of development before this will need to rebase/cherry-pick onto the new development branch, ensuring that the commits we removed are not re-introduced.

tpietzsch and others added 30 commits January 12, 2026 10:34
* Move ReadData etc to separate classes
* Add ReadData.writeTo(OutputStream)
* Add EncodedReadData that wraps a ReadData and an OutputStreamEncoder
* Compression (BytesCodec) can encode ReadData. (This might happen
  immediately or later when the ReadData is written to OutputStream).
We still need a custom interface "OutputStreamOperator" because we want
to throw IOException and UnaryOperator::apply doesn't.
When data is requested from the LazyReadData, the LazyReadData will ask
its OutputStreamWriter to write the data to a ByteArrayOutputStream.

When the LazyReadData itself is written to an OutputStream, it will pass
that OutputStream to its OutputStreamWriter (without loading the data
into a byte[] array first).
* getDatasetCodecInfos from DatasetAttributes
* add TransposeCodec implementation
* DefaultDatasetAccess applies DatasetCodec chain
* implementation layer needs a different permutation due to c- f-order
Signed-off-by: Caleb Hulbert <cmhulbert@gmail.com>
* extract sub-codecs from serialized codecs
* use correct codec implementation
* add commons-codec dependency
* add test
* encodes / decodes string valued hex representations
bogovicj and others added 26 commits January 12, 2026 10:44
* to avoid clash of corresponding padded codec in n5-zarr
* TransposeCodecInfo applies its permutation directly
* special case processing for serialization moved to zarr
This gives the maximum pixel position covered by a shard/block at a
given nesting level. Used for DatasetAccess.writeRegion().
NestedPosition should be ordered such that positions from a (sub-)shard
are grouped together:
For nested = {X,Y,Z} compare by Z, then Y, then X.
For X = [x,y,z] compare by z, then y, then x. (flattening order)
The List<DataBlock> returned by readBlocks is now in the same order as
List<long[]> of positions requested.

writeBlocks now doesn't read and decode existing shards that are
completely overwritten.
Signed-off-by: Caleb Hulbert <cmhulbert@gmail.com>
Signed-off-by: Caleb Hulbert <cmhulbert@gmail.com>
Signed-off-by: Caleb Hulbert <cmhulbert@gmail.com>
Signed-off-by: Caleb Hulbert <cmhulbert@gmail.com>
* refactor ShardedN5Writer to TrackingN5Writer
* a special N5Writer class is not needed to
* rather, particular DatasetAttribute instances can be used to test
sharding
* necessary for saveNonEmptyBlocks in n5-imglib2
@cmhulbert
cmhulbert merged commit b1b51b0 into master Jan 12, 2026
2 checks passed
@cmhulbert
cmhulbert deleted the mergeDevelopmentRebaseOnMaster branch January 12, 2026 16:52
@cmhulbert cmhulbert added this to the 4.0.0 Release milestone Jan 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants