From ac7a4416ef6fd5069cd9a1ff4dc37cec3377bd59 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Tue, 26 Aug 2025 12:39:40 +0200 Subject: [PATCH] Move or remove the duplicated files. This commit adds the top-level README.md file and moves the CODE_OF_CONDUCT.md, CONTRIBUTING.md, CONTRIBUTING_GO.md, CONTRIBUTING_RUST.md, SECURITY.md to top-level directory. It also removes per-project .cirrus.yml, since they are not used now - we use the top-level one. Same for .github directories. Signed-off-by: Jan Kaluza --- .../CODE-OF-CONDUCT.md => CODE-OF-CONDUCT.md | 0 common/CONTRIBUTING.md => CONTRIBUTING.md | 0 .../CONTRIBUTING_GO.md => CONTRIBUTING_GO.md | 0 ...NTRIBUTING_RUST.md => CONTRIBUTING_RUST.md | 0 README.md | 38 ++++++++++ common/SECURITY.md => SECURITY.md | 0 common/.github/CONTRIBUTING.md | 1 - common/.github/ISSUE_TEMPLATE.md | 1 - common/.github/PULL_REQUEST_TEMPLATE.md | 1 - common/.github/renovate.json5 | 75 ------------------- common/.github/workflows/validate.yml | 53 ------------- common/README.md | 2 +- image/.github/renovate.json5 | 55 -------------- image/.github/workflows/check_cirrus_cron.yml | 25 ------- image/.github/workflows/codespell.yml | 23 ------ image/CODE-OF-CONDUCT.md | 3 - image/CONTRIBUTING.md | 8 -- image/README.md | 2 +- image/SECURITY.md | 3 - storage/.github/renovate.json5 | 55 -------------- storage/CODE-OF-CONDUCT.md | 3 - storage/CONTRIBUTING.md | 35 --------- storage/README.md | 2 +- storage/SECURITY.md | 3 - 24 files changed, 41 insertions(+), 347 deletions(-) rename common/CODE-OF-CONDUCT.md => CODE-OF-CONDUCT.md (100%) rename common/CONTRIBUTING.md => CONTRIBUTING.md (100%) rename common/CONTRIBUTING_GO.md => CONTRIBUTING_GO.md (100%) rename common/CONTRIBUTING_RUST.md => CONTRIBUTING_RUST.md (100%) create mode 100644 README.md rename common/SECURITY.md => SECURITY.md (100%) delete mode 100644 common/.github/CONTRIBUTING.md delete mode 100644 common/.github/ISSUE_TEMPLATE.md delete mode 100644 common/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 common/.github/renovate.json5 delete mode 100644 common/.github/workflows/validate.yml delete mode 100644 image/.github/renovate.json5 delete mode 100644 image/.github/workflows/check_cirrus_cron.yml delete mode 100644 image/.github/workflows/codespell.yml delete mode 100644 image/CODE-OF-CONDUCT.md delete mode 100644 image/CONTRIBUTING.md delete mode 100644 image/SECURITY.md delete mode 100644 storage/.github/renovate.json5 delete mode 100644 storage/CODE-OF-CONDUCT.md delete mode 100644 storage/CONTRIBUTING.md delete mode 100644 storage/SECURITY.md diff --git a/common/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md similarity index 100% rename from common/CODE-OF-CONDUCT.md rename to CODE-OF-CONDUCT.md diff --git a/common/CONTRIBUTING.md b/CONTRIBUTING.md similarity index 100% rename from common/CONTRIBUTING.md rename to CONTRIBUTING.md diff --git a/common/CONTRIBUTING_GO.md b/CONTRIBUTING_GO.md similarity index 100% rename from common/CONTRIBUTING_GO.md rename to CONTRIBUTING_GO.md diff --git a/common/CONTRIBUTING_RUST.md b/CONTRIBUTING_RUST.md similarity index 100% rename from common/CONTRIBUTING_RUST.md rename to CONTRIBUTING_RUST.md diff --git a/README.md b/README.md new file mode 100644 index 0000000000..acc4ff1ac4 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# container/container-libs + +This repository is a **monorepo** combining several core Go libraries and utilities from the [containers](https://github.com/containers) project. + +It brings together: + +- **[`common`](./common/)** → Shared Go code and configuration used across multiple containers projects. +- **[`storage`](./storage/)** → A Go library for managing container images, layers, and containers. +- **[`image`](./image/)** → A Go library for interacting with container images and registries. + +These components are used by major container tools such as [Podman](https://github.com/containers/podman), [Buildah](https://github.com/containers/buildah), [CRI-O](https://github.com/cri-o/cri-o), and [Skopeo](https://github.com/containers/skopeo). + + +--- + +## Building + +Each subproject has its own README.md file with more instructions. + +## Contributing + +We welcome contributions! + +See the **[`CONTRIBUTING.md`](CONTRIBUTING.md)**, **[`CONTRIBUTING_GO.md`](CONTRIBUTING_GO.md)** and **[`CONTRIBUTING_RUST.md`](CONTRIBUTING_RUST.md)** files. + +## Code of Conduct + +See the **[`CODE-OF-CONDUCT.md`](CODE-OF-CONDUCT.md)** file. + +## Security and Disclosure Information Policy + +See the **[`SECURITY.md`](SECURITY.md)** file. + + +## License + +- Apache License 2.0 +- SPDX-License-Identifier: Apache-2.0 diff --git a/common/SECURITY.md b/SECURITY.md similarity index 100% rename from common/SECURITY.md rename to SECURITY.md diff --git a/common/.github/CONTRIBUTING.md b/common/.github/CONTRIBUTING.md deleted file mode 100644 index c8c5f9b264..0000000000 --- a/common/.github/CONTRIBUTING.md +++ /dev/null @@ -1 +0,0 @@ -Please read the [contributing guidelines](https://github.com/containers/common-files/blob/master/CONTRIBUTING.md) of the [Containers Group Project](https://github.com/containers). diff --git a/common/.github/ISSUE_TEMPLATE.md b/common/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 43c5d5e4e3..0000000000 --- a/common/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/common/.github/PULL_REQUEST_TEMPLATE.md b/common/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 43c5d5e4e3..0000000000 --- a/common/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/common/.github/renovate.json5 b/common/.github/renovate.json5 deleted file mode 100644 index 4cf489c235..0000000000 --- a/common/.github/renovate.json5 +++ /dev/null @@ -1,75 +0,0 @@ -/* - Renovate is a service similar to GitHub Dependabot, but with - (fantastically) more configuration options. So many options - in fact, if you're new I recommend glossing over this cheat-sheet - prior to the official documentation: - - https://www.augmentedmind.de/2021/07/25/renovate-bot-cheat-sheet - - Configuration Update/Change Procedure: - 1. Make changes - 2. Manually validate changes (from repo-root): - - podman run -it \ - -v ./.github/renovate.json5:/usr/src/app/renovate.json5:z \ - ghcr.io/renovatebot/renovate:latest \ - renovate-config-validator - 3. Commit. - - Configuration Reference: - https://docs.renovatebot.com/configuration-options/ - - Monitoring Dashboard: - https://app.renovatebot.com/dashboard#github/containers - - Note: The Renovate bot will create/manage it's business on - branches named 'renovate/*'. Otherwise, and by - default, the only the copy of this file that matters - is the one on the `main` branch. No other branches - will be monitored or touched in any way. -*/ - -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - - /************************************************* - ****** Global/general configuration options ***** - *************************************************/ - - // Re-use predefined sets of configuration options to DRY - "extends": [ - // https://github.com/containers/automation/blob/main/renovate/defaults.json5 - "github>containers/automation//renovate/defaults.json5" - ], - - // Permit automatic rebasing when base-branch changes by more than - // one commit. - "rebaseWhen": "behind-base-branch", - - /************************************************* - *** Repository-specific configuration options *** - *************************************************/ - - // Don't leave dep. update. PRs "hanging", assign them to people. - "assignees": ["rhatdan", "vrothberg", "Luap99"], - - "customManagers": [ - { - "customType": "regex", - "fileMatch": "^.github/workflows/validate.yml$", - "matchStrings": [ - "LINT_VERSION:\\s+(?.+)\\s*" - ], - "depNameTemplate": "golangci/golangci-lint", - "datasourceTemplate": "github-releases", - "versioningTemplate": "semver-coerced" - } - ], - - // Don't examine packages matching these paths - "ignorePaths": [ - "**/vendor/**", - "**/tests/**", - "**/docs/**" - ] -} diff --git a/common/.github/workflows/validate.yml b/common/.github/workflows/validate.yml deleted file mode 100644 index c14bb0b89e..0000000000 --- a/common/.github/workflows/validate.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: validate - -on: - push: - branches: - - main - pull_request: - branches: - - main - -permissions: read-all - -env: - LINT_VERSION: v2.4.0 - -jobs: - codespell: - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v5 - - name: install deps - # Version of codespell bundled with Ubuntu is way old, so use pip. - run: pip install --break-system-packages codespell==v2.3.0 - - name: run codespell - run: codespell --dictionary=- - lint: - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v5 - with: - fetch-depth: 2 - - uses: actions/setup-go@v5 - with: - go-version: 1.25.x - - name: install deps - run: | - sudo apt-get -qq update - sudo apt-get -qq install libseccomp-dev - - name: lint - uses: golangci/golangci-lint-action@v8 - with: - version: "${{ env.LINT_VERSION }}" - args: --verbose - # Extra linters, only checking new code from a pull request. - - name: lint-extra - uses: golangci/golangci-lint-action@v8 - with: - args: --config=.golangci-extra.yml - version: "${{ env.LINT_VERSION }}" - only-new-issues: true - - - name: validate seccomp - run: ./tools/validate_seccomp.sh ./pkg/seccomp diff --git a/common/README.md b/common/README.md index 118b0a6bde..797bc51bf6 100644 --- a/common/README.md +++ b/common/README.md @@ -41,7 +41,7 @@ syscalls available to containers. - [`pkg/sysinfo`](pkg/sysctl): `linux`, `solaris`, `windows`, `cgo` - [`pkg/cgroupv2`](pkg/cgroupv2): `linux` -## [Contributing](CONTRIBUTING.md) +## [Contributing](../CONTRIBUTING.md) When developing this library, please use `make` (or `make … BUILDTAGS=…`) to take advantage of the tests and validation. diff --git a/image/.github/renovate.json5 b/image/.github/renovate.json5 deleted file mode 100644 index 7c3c0607cc..0000000000 --- a/image/.github/renovate.json5 +++ /dev/null @@ -1,55 +0,0 @@ -/* - Renovate is a service similar to GitHub Dependabot, but with - (fantastically) more configuration options. So many options - in fact, if you're new I recommend glossing over this cheat-sheet - prior to the official documentation: - - https://www.augmentedmind.de/2021/07/25/renovate-bot-cheat-sheet - - Configuration Update/Change Procedure: - 1. Make changes - 2. Manually validate changes (from repo-root): - - podman run -it \ - -v ./.github/renovate.json5:/usr/src/app/renovate.json5:z \ - docker.io/renovate/renovate:latest \ - renovate-config-validator - 3. Commit. - - Configuration Reference: - https://docs.renovatebot.com/configuration-options/ - - Monitoring Dashboard: - https://app.renovatebot.com/dashboard#github/containers - - Note: The Renovate bot will create/manage it's business on - branches named 'renovate/*'. Otherwise, and by - default, the only the copy of this file that matters - is the one on the `main` branch. No other branches - will be monitored or touched in any way. -*/ - -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - - /************************************************* - ****** Global/general configuration options ***** - *************************************************/ - - // Reuse predefined sets of configuration options to DRY - "extends": [ - // https://github.com/containers/automation/blob/main/renovate/defaults.json5 - "github>containers/automation//renovate/defaults.json5" - ], - - // Permit automatic rebasing when base-branch changes by more than - // one commit. - "rebaseWhen": "behind-base-branch", - - /************************************************* - *** Repository-specific configuration options *** - *************************************************/ - - // Don't leave dep. update. PRs "hanging", assign them to people. - "assignees": ["containers/image-maintainers"], -} diff --git a/image/.github/workflows/check_cirrus_cron.yml b/image/.github/workflows/check_cirrus_cron.yml deleted file mode 100644 index 1bcf42ffb6..0000000000 --- a/image/.github/workflows/check_cirrus_cron.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- - -# See also: -# https://github.com/containers/podman/blob/main/.github/workflows/check_cirrus_cron.yml - -on: - # Note: This only applies to the default branch. - schedule: - # N/B: This should correspond to a period slightly after - # the last job finishes running. See job defs. at: - # https://cirrus-ci.com/settings/repository/6429752730058752 - - cron: '03 03 * * 1-5' - # Debug: Allow triggering job manually in github-actions WebUI - workflow_dispatch: {} - -jobs: - # Ref: https://docs.github.com/en/actions/using-workflows/reusing-workflows - call_cron_failures: - uses: containers/podman/.github/workflows/check_cirrus_cron.yml@main - secrets: - SECRET_CIRRUS_API_KEY: ${{secrets.SECRET_CIRRUS_API_KEY}} - ACTION_MAIL_SERVER: ${{secrets.ACTION_MAIL_SERVER}} - ACTION_MAIL_USERNAME: ${{secrets.ACTION_MAIL_USERNAME}} - ACTION_MAIL_PASSWORD: ${{secrets.ACTION_MAIL_PASSWORD}} - ACTION_MAIL_SENDER: ${{secrets.ACTION_MAIL_SENDER}} diff --git a/image/.github/workflows/codespell.yml b/image/.github/workflows/codespell.yml deleted file mode 100644 index 9986e12dd7..0000000000 --- a/image/.github/workflows/codespell.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: Codespell - -on: - push: - branches: [main] - pull_request: - branches: [main] - -permissions: - contents: read - -jobs: - codespell: - name: Check for spelling errors - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v5 - - name: Codespell - # uses configuration within .codespellrc file - uses: codespell-project/actions-codespell@v2 diff --git a/image/CODE-OF-CONDUCT.md b/image/CODE-OF-CONDUCT.md deleted file mode 100644 index 88b27b7d8f..0000000000 --- a/image/CODE-OF-CONDUCT.md +++ /dev/null @@ -1,3 +0,0 @@ -## The image Project Community Code of Conduct - -The image project follows the [Containers Community Code of Conduct](https://github.com/containers/common/blob/main/CODE-OF-CONDUCT.md). diff --git a/image/CONTRIBUTING.md b/image/CONTRIBUTING.md deleted file mode 100644 index 2551e28fca..0000000000 --- a/image/CONTRIBUTING.md +++ /dev/null @@ -1,8 +0,0 @@ -# Contributing to Containers/Image - -We'd love to have you join the community! [Learn how to contribute](https://github.com/containers/common/blob/main/CONTRIBUTING.md) to the Containers Group Projects. - -Please note that this information cannot be relevant to this project: - -- We don’t typically require 2 LGTMs — few people are watching the repo -- There is no OWNERS file — it’s targeted at bots that are not active in the repo diff --git a/image/README.md b/image/README.md index 56c66b7f34..0fa516f980 100644 --- a/image/README.md +++ b/image/README.md @@ -63,7 +63,7 @@ the primary downside is that creating new signatures with the Golang-only implem - `containers_image_sequoia`: Use Sequoia-PGP for signature verification instead of the default cgo/gpgme-based or the Golang-only OpenPGP implementations, and enable the `signature/simplesequoia` subpackage. This requires a support shared library installed on the system. Install https://github.com/ueno/podman-sequoia , and potentially update build configuration to point at it (compare `SEQUOIA_SONAME_DIR` in `Makefile`). - `containers_image_storage_stub`: Don’t import the `containers-storage:` transport in `github.com/containers/image/transports/alltransports`, to decrease the amount of required dependencies. Use a stub which reports that the transport is not supported instead. -## [Contributing](CONTRIBUTING.md) +## [Contributing](../CONTRIBUTING.md) Information about contributing to this project. diff --git a/image/SECURITY.md b/image/SECURITY.md deleted file mode 100644 index 5a20c0e87b..0000000000 --- a/image/SECURITY.md +++ /dev/null @@ -1,3 +0,0 @@ -## Security and Disclosure Information Policy for the image Project - -The image Project follows the [Security and Disclosure Information Policy](https://github.com/containers/common/blob/main/SECURITY.md) for the Containers Projects. diff --git a/storage/.github/renovate.json5 b/storage/.github/renovate.json5 deleted file mode 100644 index dbecc6978d..0000000000 --- a/storage/.github/renovate.json5 +++ /dev/null @@ -1,55 +0,0 @@ -/* - Renovate is a service similar to GitHub Dependabot, but with - (fantastically) more configuration options. So many options - in fact, if you're new I recommend glossing over this cheat-sheet - prior to the official documentation: - - https://www.augmentedmind.de/2021/07/25/renovate-bot-cheat-sheet - - Configuration Update/Change Procedure: - 1. Make changes - 2. Manually validate changes (from repo-root): - - podman run -it \ - -v ./.github/renovate.json5:/usr/src/app/renovate.json5:z \ - docker.io/renovate/renovate:latest \ - renovate-config-validator - 3. Commit. - - Configuration Reference: - https://docs.renovatebot.com/configuration-options/ - - Monitoring Dashboard: - https://app.renovatebot.com/dashboard#github/containers - - Note: The Renovate bot will create/manage it's business on - branches named 'renovate/*'. Otherwise, and by - default, the only the copy of this file that matters - is the one on the `main` branch. No other branches - will be monitored or touched in any way. -*/ - -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - - /************************************************* - ****** Global/general configuration options ***** - *************************************************/ - - // Re-use predefined sets of configuration options to DRY - "extends": [ - // https://github.com/containers/automation/blob/main/renovate/defaults.json5 - "github>containers/automation//renovate/defaults.json5" - ], - - // Permit automatic rebasing when base-branch changes by more than - // one commit. - "rebaseWhen": "behind-base-branch", - - /************************************************* - *** Repository-specific configuration options *** - *************************************************/ - - // Don't leave dep. update. PRs "hanging", assign them to people. - "assignees": ["containers/storage-maintainers"], -} diff --git a/storage/CODE-OF-CONDUCT.md b/storage/CODE-OF-CONDUCT.md deleted file mode 100644 index f4f7df4b8c..0000000000 --- a/storage/CODE-OF-CONDUCT.md +++ /dev/null @@ -1,3 +0,0 @@ -## The Containers Storage Project Community Code of Conduct - -The Containers Storage project follows the [Containers Community Code of Conduct](https://github.com/containers/common/blob/main/CODE-OF-CONDUCT.md). diff --git a/storage/CONTRIBUTING.md b/storage/CONTRIBUTING.md deleted file mode 100644 index f50eb88053..0000000000 --- a/storage/CONTRIBUTING.md +++ /dev/null @@ -1,35 +0,0 @@ -# Contributing to Containers/Storage - -We'd love to have you join the community! [Learn how to contribute](https://github.com/containers/common/blob/main/CONTRIBUTING.md) to the Containers Group Projects. - -Please note that the following information is specific to this project: - -* We don’t typically require 2 LGTMs for this repository. - -## Communications - -For general questions, or discussions, please use the -IRC group on `irc.freenode.net` called `container-projects` -that has been setup. - -For discussions around issues/bugs and features, you can use the github -[issues](https://github.com/containers/storage/issues) -and -[PRs](https://github.com/containers/storage/pulls) -tracking system. - - diff --git a/storage/README.md b/storage/README.md index fef46a6893..1017d319f7 100644 --- a/storage/README.md +++ b/storage/README.md @@ -42,5 +42,5 @@ Additionally, the library can store one or more of what it calls *big data* for images and containers. This is a named chunk of larger data, which is only in memory when it is being read from or being written to its own disk file. -**[Contributing](CONTRIBUTING.md)** +**[Contributing](../CONTRIBUTING.md)** Information about contributing to this project. diff --git a/storage/SECURITY.md b/storage/SECURITY.md deleted file mode 100644 index ab2c14182f..0000000000 --- a/storage/SECURITY.md +++ /dev/null @@ -1,3 +0,0 @@ -## Security and Disclosure Information Policy for the Containers Storage Project - -The Containers Storage Project follows the [Security and Disclosure Information Policy](https://github.com/containers/common/blob/main/SECURITY.md) for the Containers Projects.