Skip to content

Commit

Permalink
Merge pull request #147 from mirage/prepare-v3.0.0
Browse files Browse the repository at this point in the history
Prepare v3.0.0
  • Loading branch information
dinosaure authored Aug 7, 2024
2 parents ffdd7e9 + 458a94f commit 503cbea
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 7 deletions.
38 changes: 32 additions & 6 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
## unreleased
## v3.0.0 (2024-08-05)

- Fix `Header.marshal` and the checksum and the length (@reynir, #145)
- Delete a mutable field about the level into the header (@hannesm, #141)
- **BREAKING**: de-functorize the package (@hannesm, @reynir, @dinosaure, #140, #143, #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.

## v2.6.0 (2023-09-07)

- Add eio backend for tar in tar-eio (@patricoferris, review by @talex5, @reynir, #132)
- Also apply backwards compatibility fix when GNU LongName is used. The compatibility fix is unfortunately also applied for unknown-to-ocaml-tar link indicators (reported by @gravicappa in #129, @reynir, #133)
- `tar`: support pax Global Extended Headers. This adds state to tar parsing.
(#119, #120, @MisterDA)
- Support GNU LongLink and LongName. Prior, `Tar.HeaderWriter` and
Expand All @@ -19,11 +50,6 @@
- Remove debug printers (#127)
- Finally remove the unused camlp-streams dependency (#127)

## v2.6.0 (2023-09-07)

- Add eio backend for tar in tar-eio (@patricoferris, review by @talex5, @reynir, #132)
- Also apply backwards compatibility fix when GNU LongName is used. The compatibility fix is unfortunately also applied for unknown-to-ocaml-tar link indicators (reported by @gravicappa in #129, @reynir, #133)

## v2.5.1 (2023-06-20)

- Treat headers with link indicator '0' or '\000' (`Normal`) as directories for backward compatibility (reported in #129, fix by @reynir)
Expand Down
2 changes: 1 addition & 1 deletion tar-unix.opam
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ bug-reports: "https://github.com/mirage/ocaml-tar/issues"
depends: [
"dune" {>= "2.9"}
"ocaml" {>= "4.08.0"}
"lwt"
"lwt" {>= "5.7.0"}
"tar" {= version}
"odoc" {with-doc}
]
Expand Down

0 comments on commit 503cbea

Please sign in to comment.