Skip to content
  1. Mar 18, 2025
  2. Feb 13, 2025
  3. Feb 12, 2025
  4. Jan 09, 2025
  5. 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
  6. Nov 27, 2024
  7. Nov 26, 2024
  8. Oct 30, 2024
  9. Sep 05, 2024
  10. Aug 31, 2024
  11. Aug 30, 2024
Loading