From 6c09f2a45c5541e9c207d14fc7aa21a4a0066bde Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 03:03:19 +0200 Subject: Merging upstream version 1:2.12.0. Signed-off-by: Daniel Baumann --- .github/ISSUE_TEMPLATE/bug_report.md | 41 +++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 24 ++++++++ .github/release-please-config.json | 15 +++++ .github/release-please-manifest.json | 1 + .github/renovate.json | 64 ++++++++++++++++++++ .github/requirements.txt | 4 ++ .github/workflows/ci.yaml | 94 ++++++++++++++++++++++++++++++ .github/workflows/update-docker-images.yml | 43 ++++++++++++++ 8 files changed, 286 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/release-please-config.json create mode 100644 .github/release-please-manifest.json create mode 100644 .github/renovate.json create mode 100644 .github/requirements.txt create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/update-docker-images.yml (limited to '.github') diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..b6505b6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,41 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +## Describe the bug + + + +## To reproduce + + + +1. cd to '...' +2. Type '....' +3. See problem + +## Expected behavior + + + +## Versions (please complete the following information) + +- [ ] Operating system name/distribution and version: +- [ ] bash version, `echo "$BASH_VERSION"`: +- [ ] bash-completion version, `(IFS=.; echo "${BASH_COMPLETION_VERSINFO[*]}")`: + +## Additional context + + + +## Debug trace + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..89f9eab --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,24 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +## Describe the feature/solution + + + +## Maintenance (please complete the following information) + + + +- [ ] This is a request for new completion +- [ ] Link to upstream project query about shipping the completion: diff --git a/.github/release-please-config.json b/.github/release-please-config.json new file mode 100644 index 0000000..2a16c5b --- /dev/null +++ b/.github/release-please-config.json @@ -0,0 +1,15 @@ +{ + "packages": { + ".": { + "package-name": "bash-completion", + "release-type": "simple", + "include-component-in-tag": false, + "include-v-in-tag": false + } + }, + "pull-request-title-pattern": "chore: release${component} ${version}", + "extra-files": [ + "bash_completion", + "configure.ac" + ] +} diff --git a/.github/release-please-manifest.json b/.github/release-please-manifest.json new file mode 100644 index 0000000..95b1793 --- /dev/null +++ b/.github/release-please-manifest.json @@ -0,0 +1 @@ +{".":"2.12.0"} diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 0000000..1fca10e --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base", + ":enablePreCommit", + ":prConcurrentLimit20", + ":preserveSemverRanges", + ":semanticPrefixChore" + ], + "ignorePresets": [ + ":dependencyDashboard", + ":ignoreModulesAndTests", + ":semanticPrefixFixDepsChoreOthers" + ], + "semanticCommits": "enabled", + "commitMessageTopic": "{{depName}}", + "dockerfile": { + "enabled": false + }, + "pip_requirements": { + "fileMatch": [ + "(^|/)requirements[\\w-]*\\.txt$" + ] + }, + "regexManagers": [ + { + "fileMatch": ["^\\.pre-commit-config\\.yaml$"], + "matchStrings": ["(?[\\w-]+)(?==[a-z0-9.]+)"], + "datasourceTemplate": "pypi" + } + ], + "packageRules": [ + { + "matchFiles": ["test/requirements.txt"], + "semanticCommitType": "test" + }, + { + "matchManagers": ["pre-commit"], + "commitMessageTopic": "{{depName}}", + "semanticCommitScope": "pre-commit" + }, + { + "matchPackagePatterns": ["(^|/)gitlint$"], + "versioning": "pep440", + "groupName": "gitlint" + }, + { + "matchPackageNames": ["perltidy/perltidy"], + "versioning": "regex:^(?\\d{8})$" + }, + { + "matchPackagePatterns": ["(^|/)ruff(-pre-commit)?$"], + "groupName": "ruff", + "versioning": "pep440" + }, + { + "matchPackageNames": [ + "scop/pre-commit-shfmt", + "shellcheck-py/shellcheck-py" + ], + "versioning": "loose" + } + ] +} diff --git a/.github/requirements.txt b/.github/requirements.txt new file mode 100644 index 0000000..09ff6d5 --- /dev/null +++ b/.github/requirements.txt @@ -0,0 +1,4 @@ +-r ../test/requirements-dev.txt + +gitlint==0.19.1 +pre-commit>=2.4.0 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..27480fa --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,94 @@ +name: ci + +on: + pull_request: + push: + branches: + - master + +jobs: + pre-commit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: # for gitlint + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 + - uses: actions/setup-python@v5 + with: + python-version: ">=3.7" + cache: pip + cache-dependency-path: | + .github/requirements.txt + test/requirements*.txt + - uses: actions/cache@v4 + with: + path: ~/.cache/pre-commit + key: pre-commit-${{hashFiles('.pre-commit-config.yaml')}} + - name: Install dependencies + run: | + python3 -m venv venv # for venv-run + source venv/bin/activate + python3 -m pip install -Ur .github/requirements.txt + - run: venv/bin/gitlint --commits "origin/$GITHUB_BASE_REF..HEAD" + if: github.event_name == 'pull_request' + - name: Run pre-commit checks + run: | + source venv/bin/activate + pre-commit run --color=always --all-files --show-diff-on-failure + + distcheck: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - dist: alpine + - dist: centos7 + - dist: debian10 + - dist: debian10 + bsd: true + network: none + - dist: fedoradev + - dist: ubuntu14 + steps: + - uses: actions/checkout@v4 + - uses: google-github-actions/release-please-action@v4 + with: + config-file: .github/release-please-config.json + manifest-file: .github/release-please-manifest.json + id: release + if: github.event_name == 'push' && matrix.dist == 'alpine' + # A "container" workflow config would be cleaner here, but comes with + # some restrictions/oddities: changes root's $HOME to /github/home + # without changing the actual home dir that can cause some problems, + # and does not provide a way to run with --network none. + # fedoradev unconfined: https://bugzilla.redhat.com/1900021 + - name: Run main build + run: >- + docker run + --rm + --tty + --env CI=true + --env DIST=${{matrix.dist}} + --env BSD=${{matrix.bsd}} + --env PYTESTFLAGS="--verbose -p no:cacheprovider" + --env NETWORK=$NETWORK + ${NETWORK:+--network $NETWORK} + $(test $DIST = fedoradev && echo --security-opt seccomp=unconfined) + --volume $PWD:/usr/src/bash-completion + --workdir /usr/src/bash-completion + ghcr.io/scop/bash-completion/test:${{matrix.dist}} + test/docker/entrypoint.sh + env: + DIST: ${{matrix.dist}} + NETWORK: ${{matrix.network}} + - name: Upload release assets + run: | + set -x + gh release upload ${{steps.release.outputs.tag_name}} \ + bash-completion-$(cat version.txt).tar.xz + if: steps.release.outputs.release_created + - uses: actions/upload-artifact@v4 + with: + path: bash-completion-*.tar.xz + if: matrix.dist == 'alpine' diff --git a/.github/workflows/update-docker-images.yml b/.github/workflows/update-docker-images.yml new file mode 100644 index 0000000..5f6e269 --- /dev/null +++ b/.github/workflows/update-docker-images.yml @@ -0,0 +1,43 @@ +name: update-docker-images + +# Update Docker images when the set of commands required present for testing +# change. This is not perfect as it would be good to have the new commands +# installed already at PR time, and at least at time the change lands in the +# default branch. That way it'd be tested immediately then with images +# containing it, instead of later along with some other, completely unrelated +# change. + +on: + push: + paths: + - test/test-cmd-list.txt + - test/docker/*/Dockerfile + - test/docker/*/install-packages.sh + workflow_dispatch: + +jobs: + update-test-image: + runs-on: ubuntu-latest + if: github.repository_owner == 'scop' && github.ref == 'refs/heads/master' + strategy: + matrix: + include: + - dist: alpine + - dist: centos7 + - dist: debian10 + - dist: fedoradev + - dist: ubuntu14 + steps: + - uses: actions/checkout@v4 + - uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{github.repository_owner}} + password: ${{secrets.GITHUB_TOKEN}} + - uses: docker/build-push-action@v5 + with: + context: test + file: test/docker/${{matrix.dist}}/Dockerfile + tags: | + ghcr.io/scop/bash-completion/test:${{matrix.dist}} + push: true -- cgit v1.2.3