moby/pkg
Cory Snider 6a8a792019 pkg/archive: test tar headers are interoperable
The existing pkg/archive unit tests are primarily round-trip tests which
assert that pkg/archive produces tarballs which pkg/archive can unpack.
While these tests are effective at catching regressions in archiving or
unarchiving, they have a blind spot for regressions in compatibility
with the rest of the ecosystem. For example, a typo in the capabilities
extended attribute constant would result in subtly broken image layer
tarballs, but the existing tests would not catch the bug if both the
archiving and unarchiving implementations have the same typo.

Extend the test for archiving an overlay filesystem layer to assert that
the overlayfs style whiteouts (extended attributes and device files) are
transformed into AUFS-style whiteouts (magic file names).

Extend the test for archiving files with extended attributes to assert
that the extended attribute is encoded into the file's tar header in the
standard, interoperable format compatible with the rest of the
ecosystem.

Signed-off-by: Cory Snider <csnider@mirantis.com>
2023-10-23 16:21:41 -04:00
..
aaparser pkg/aaparser: deprecate GetVersion, as it's no longer used 2023-05-09 16:47:03 +02:00
archive pkg/archive: test tar headers are interoperable 2023-10-23 16:21:41 -04:00
authorization migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
broadcaster Various code-cleanup 2018-05-23 17:50:54 +02:00
capabilities pkg/capabilities: format code with gofumpt 2023-06-29 00:31:51 +02:00
chrootarchive pkg/chrootarchive: fix Darwin build 2023-09-28 16:23:33 +03:00
containerfs pkg/containerfs: format code with gofumpt 2023-08-24 17:58:32 +02:00
directory remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
dmesg Use Klogctl from x/sys/unix to read Linux kernel log 2019-08-22 08:25:13 +02:00
fileutils migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
homedir pkg/homedir: deprecate Key() utility 2023-06-26 14:46:03 +02:00
idtools pkg/idtools: remove sync.Once, and include lookup error 2023-09-06 17:34:26 +02:00
ioutils pkg/ioutils: some cleanups in tests 2023-07-19 19:17:22 +02:00
jsonmessage pkg/jsonmessage: use string-literals for easier grep'ing 2023-07-05 12:27:02 +02:00
longpath pkg/ioutils: TempDir: move to pkg/longpath 2022-12-20 23:24:12 +01:00
loopback migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
meminfo remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
namesgenerator Sort entries in pkg/namesgenerator 2022-11-01 23:13:34 +00:00
parsers migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
pidfile pkg/pidfile: implement Read() 2022-11-04 01:50:26 +01:00
platform migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
platforms add support for image inspect with containerd-integration 2023-01-05 16:20:41 +01:00
plugingetter Move plugin client to separate interface 2018-05-30 15:22:10 -04:00
plugins migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
pools bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
process remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
progress refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
reexec remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
rootless Merge pull request #46473 from thaJeztah/c8d_logs 2023-10-12 10:35:02 +02:00
stack pkg/stack: format code with gofumpt 2023-08-24 17:59:01 +02:00
stdcopy pkg/stdcopy: format code with gofumpt 2023-06-29 00:31:52 +02:00
streamformatter bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
stringid pkg/stringid: optimize performance 2022-12-16 14:44:52 +01:00
sysinfo migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
system image: implement CheckOS, deprecate pkg/system IsOSSupported 2023-09-07 22:14:44 +02:00
tailfile pkg/tailfile: rename max/min as it collides with go1.21 builtin 2023-08-26 22:02:25 +02:00
tarsum pkg/tarsum: format code with gofumpt 2023-06-29 00:25:20 +02:00
useragent Add canonical import comment 2018-02-05 16:51:57 -05:00
README.md Rename a few docker to moby 2017-10-25 13:56:12 +02:00

pkg/ is a collection of utility packages used by the Moby project without being specific to its internals.

Utility packages are kept separate from the moby core codebase to keep it as small and concise as possible. If some utilities grow larger and their APIs stabilize, they may be moved to their own repository under the Moby organization, to facilitate re-use by other projects. However that is not the priority.

The directory pkg is named after the same directory in the camlistore project. Since Brad is a core Go maintainer, we thought it made sense to copy his methods for organizing Go code :) Thanks Brad!

Because utility packages are small and neatly separated from the rest of the codebase, they are a good place to start for aspiring maintainers and contributors. Get in touch if you want to help maintain them!