Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[new release] tar (4 packages) (3.0.0) #26330

Merged
merged 2 commits into from
Aug 7, 2024

Conversation

dinosaure
Copy link
Contributor

Decode and encode tar format files in pure OCaml

CHANGES:
  • Fix Header.marshal and the checksum and the length (@reynir, Header.marshal, checksum: check length mirage/ocaml-tar#145)

  • Delete a mutable field about the level into the header (@hannesm, remove ref to compatibility level mirage/ocaml-tar#141)

  • BREAKING: de-functorize the package (@hannesm, @reynir, @dinosaure, revise a decoder and encoder, being pure mirage/ocaml-tar#140, Pure dec enc with gz mirage/ocaml-tar#143, New tar gz mirage/ocaml-tar#146)

    These PRs attempt to de-functorize Tar so that users can implement I/O
    themselves, using Tar's own element serialization/deserialization functions
    to take advantage of read/write methods. This avoids imposing on the user the
    implementation of a module that is too rigid in his/her case (which could have
    performance implications).

    Tar offers functions for serializing/deserializing tar-specific elements
    from string. It is then up to the user to know how to obtain or write these
    strings.

    To this, these PRs add "logics" (see 'a Tar.t) requiring read and/or write
    implementations and describing how to extract all entries from a tar file or
    how to write a tar file according to a "dispenser" (like Seq.to_dispenser)
    of entries.

    These logics do not depend on a particular "scheduler", and these PRs propose
    a derivation of these logics with tar-unix, tar-eio and tar-mirage.
    These latter derivations mean that the API for these packages has only been
    extended, and there are no breaking changes as such.

    These logics also make it easy to offer a compression/decompression layer with
    decompress, so you can easily manipulate and/or create a .tar.gz file.

CHANGES:

- Fix `Header.marshal` and the checksum and the length (@reynir, mirage/ocaml-tar#145)
- Delete a mutable field about the level into the header (@hannesm, mirage/ocaml-tar#141)
- **BREAKING**: de-functorize the package (@hannesm, @reynir, @dinosaure, mirage/ocaml-tar#140, mirage/ocaml-tar#143, mirage/ocaml-tar#146)

  These PRs attempt to de-functorize `Tar` so that users can implement I/O
  themselves, using `Tar`'s own element serialization/deserialization functions
  to take advantage of read/write methods. This avoids imposing on the user the
  implementation of a module that is too rigid in his/her case (which could have
  performance implications).

  `Tar` offers functions for serializing/deserializing tar-specific elements
  from `string`. It is then up to the user to know how to obtain or write these
  `strings`.

  To this, these PRs add "logics" (see `'a Tar.t`) requiring read and/or write
  implementations and describing how to extract all entries from a tar file or
  how to write a tar file according to a "dispenser" (like `Seq.to_dispenser`)
  of entries.

  These logics do not depend on a particular "scheduler", and these PRs propose
  a derivation of these logics with `tar-unix`, `tar-eio` and `tar-mirage`.
  These latter derivations mean that the API for these packages has only been
  extended, and there are no breaking changes as such.

  These logics also make it easy to offer a compression/decompression layer with
  `decompress`, so you can easily manipulate and/or create a .tar.gz file.
@raphael-proust
Copy link
Collaborator

Thanks for the contribution!

@raphael-proust raphael-proust merged commit 750ce93 into ocaml:master Aug 7, 2024
3 checks passed
@dinosaure dinosaure deleted the release-tar-v3.0.0 branch August 7, 2024 12:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants