moby--moby/pkg
Sebastiaan van Stijn 5f89a6a78e
pkg/urlutil: deprecate, and move to builder/remotecontext/urlutil
pkg/urlutil (despite its poorly chosen name) is not really intended as a generic
utility to handle URLs, and should only be used by the builder to handle (remote)
build contexts.

- IsURL() only does a very rudimentary check for http(s):// prefixes, without any
  other validation, but due to its name may give incorrect expectations.
- IsGitURL() is written specifically with docker build remote git contexts in
  mind, and has handling for backward-compatibility, where strings that are
  not URLs, but start with "github.com/" are accepted.

Because of the above, this patch:

- moves the package inside builder/remotecontext, close to where it's intended
  to be used (ideally this would be part of build/remotecontext itself, but this
  package imports many other dependencies, which would introduce those as extra
  dependencies in the CLI).
- deprecates pkg/urlutil, but adds aliases as there are some external consumers.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-04-12 19:58:05 +02:00
..
aaparser Also trim "~..." from AppArmor versions 2020-10-08 17:03:51 -07:00
archive Finish refactor of UID/GID usage to a new struct 2022-03-14 16:28:57 -04:00
authorization refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
broadcaster Various code-cleanup 2018-05-23 17:50:54 +02:00
capabilities Add more import comments 2019-04-10 16:59:33 +02:00
chrootarchive Finish refactor of UID/GID usage to a new struct 2022-03-14 16:28:57 -04:00
containerfs Finish refactor of UID/GID usage to a new struct 2022-03-14 16:28:57 -04:00
devicemapper Update to Go 1.17.0, and gofmt with Go 1.17 2021-08-24 23:33:27 +02:00
directory refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
dmesg Use Klogctl from x/sys/unix to read Linux kernel log 2019-08-22 08:25:13 +02:00
filenotify refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
fileutils Avoid platform-specific NewPatternMatcher function in TestCompile 2022-01-20 09:08:16 -08:00
fsutils refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
homedir Update to Go 1.17.0, and gofmt with Go 1.17 2021-08-24 23:33:27 +02:00
idtools Finish refactor of UID/GID usage to a new struct 2022-03-14 16:28:57 -04:00
ioutils Merge pull request #42543 from rainrambler/patch-1 2021-09-01 13:26:30 +02:00
jsonmessage gosimple: S1039: unnecessary use of fmt.Sprintf 2021-06-10 13:03:27 +02:00
longpath Add canonical import comment 2018-02-05 16:51:57 -05:00
loopback Update to Go 1.17.0, and gofmt with Go 1.17 2021-08-24 23:33:27 +02:00
namesgenerator Merge pull request #43210 from tianon/frozen-names-generator 2022-02-10 20:38:44 +01:00
parsers pkg/system: move IsWindowsClient to pkg/parsers/operatingsystem 2022-03-17 10:26:50 +01:00
pidfile refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
platform missing windows arm64 arch detection 2022-04-09 16:10:42 +02:00
plugingetter Move plugin client to separate interface 2018-05-30 15:22:10 -04:00
plugins staticcheck: ignore "SA1019: strings.Title is deprecated" 2022-03-16 12:11:54 +01:00
pools bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
progress refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
pubsub docker stats: fix 'panic: close of closed channel' 2020-10-24 11:48:56 +08:00
reexec Update to Go 1.17.0, and gofmt with Go 1.17 2021-08-24 23:33:27 +02:00
signal pkg/signal: remove DefaultStopSignal const 2021-08-11 10:31:29 +02:00
stack refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
stdcopy refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
streamformatter bump gotest.tools v3.0.1 for compatibility with Go 1.14 2020-02-11 00:06:42 +01:00
stringid Entropy cannot be saved 2019-06-07 11:54:45 +01:00
sysinfo Update handling of deprecated kernel (tcp) memory options 2022-03-17 09:56:39 +01:00
system pkg/system: move IsWindowsClient to pkg/parsers/operatingsystem 2022-03-17 10:26:50 +01:00
tailfile refactor: move from io/ioutil to io and os package 2021-08-27 14:56:57 +08:00
tarsum pkg/archive: audit gosec file-traversal lints 2022-02-18 15:42:22 -05:00
truncindex Entropy cannot be saved 2019-06-07 11:54:45 +01:00
urlutil pkg/urlutil: deprecate, and move to builder/remotecontext/urlutil 2022-04-12 19:58:05 +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

README.md

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!