Skip to content
  1. Dec 10, 2024
    • Matthew Clarkson's avatar
      fix: switch to `//tar/tool` · 398aba37
      Matthew Clarkson authored
      Changes both `tar_filter`/`tar_concatenate` to use `//tar/tool` rather
      than individidual toolchains.
      
      This change brings significant features:
      
        - Inputs are transparently decompressed using file magic markers
          - Data on `stdin` is decompressed correctly now
        - Outputs are trasparently compressed using the file extension
        - (De)compression is all performed in-process removing the need for Shell pipes
        - Many bug fixes are squashed during the refactor in the Go code
      
      A huge footgun has been removed where the extension were not respected:
      
      ```py
      # Without the `compress` attribute, this creates a `archive.tar.gz` that
      # is actually a tape archive that is _not_ compressed
      tar_concatenate(
          name = "archive.tar.gz",
          # compress = "@rules_tar//tar/compress:gzip",
          srcs = ["archive.tar.xz", "something.tar.gz"],
      )
      # With this patch it is now correctly compressed with `gzip`
      ```
      
      BREAKING CHANGE: `tar_filter#patterns` is now a list of globs to remove
      from the tape archive. The filters can still be negated:
      
      ```py
      tar_filter(
          name = "filter.tar.xz",
          src = "archive.tar.zst",
          patterns = [
              "!**/*.md",  # Keep Markdown files
              "**/*",      # Remove all other members
          ],
      )
      ```
      398aba37
    • Matthew Clarkson's avatar
      ci: switch to `1.0.0` component · c1c64b3d
      Matthew Clarkson authored
      c1c64b3d
    • Matthew Clarkson's avatar
      feat: add `//tar/tool` · dd68a659
      Matthew Clarkson authored
      A generic Go binary that provides concatenation and filtering
      of tape archives.
      dd68a659
    • Matthew Clarkson's avatar
      chore: add skip Go library · 5067573f
      Matthew Clarkson authored
      API to seek until the start of the next tape archive in a
      stream of bytes.
      5067573f
    • Matthew Clarkson's avatar
      chore: add filters Go library · b51cf36d
      Matthew Clarkson authored
      Provides glob matching for multiple patterns.
      b51cf36d
    • Matthew Clarkson's avatar
      chore: add `duplicate` Go library · 52b8e09c
      Matthew Clarkson authored
      Provides a `duplicate.Flag` implementation to determine what to do
      with duplicate members.
      52b8e09c
    • Matthew Clarkson's avatar
      chore: add output Go library · 42a5ec0d
      Matthew Clarkson authored
      Provides `WriteCloser` interface for output files with
      transparent decompression.
      42a5ec0d
    • Matthew Clarkson's avatar
      chore: add input Go library · c09b0cb9
      Matthew Clarkson authored
      Provides `ReadCloser` interface for input files with
      transparent decompression.
      c09b0cb9
    • Matthew Clarkson's avatar
      chore: add decompression Go library · 51a5791a
      Matthew Clarkson authored
      Provides `ReadCloser` interfaces to decompress incoming data.
      
      Determines the correct decompression algorithm by reading the file
      magic markers in the incoming data.
      51a5791a
    • Matthew Clarkson's avatar
      chore: add compression Go library · 5f235f08
      Matthew Clarkson authored
      Provides `WriteCloser` wrappers that compress the written data.
      
      Can determine the compression needed from the file extension _or_
      can start a subprocess that performs the compression.
      5f235f08
    • Matthew Clarkson's avatar
      chore: add extra Go dependencies · cd92cf45
      Matthew Clarkson authored
      cd92cf45
  2. Nov 27, 2024
  3. Nov 26, 2024
  4. Oct 30, 2024
  5. Sep 05, 2024
  6. Aug 31, 2024
  7. Aug 30, 2024
  8. Aug 29, 2024
  9. Aug 12, 2024
  10. Jul 31, 2024
  11. Jun 26, 2024
Loading