Compare commits

..

59 commits

Author SHA1 Message Date
Salt Project Packaging
21e99f6e57
Release v3006.10
Some checks failed
CI / Prepare Workflow Run (push) Has been cancelled
CI / Pre-Commit (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / NSIS Tests (push) Has been cancelled
CI / Prepare Release: (push) Has been cancelled
CI / Documentation (push) Has been cancelled
CI / Build Source Tarball (push) Has been cancelled
CI / Build Salt Onedir (push) Has been cancelled
CI / Build Packages (push) Has been cancelled
CI / CI Deps (push) Has been cancelled
CI / Test Package (push) Has been cancelled
CI / Test Salt (push) Has been cancelled
CI / Combine Code Coverage (push) Has been cancelled
CI / Set the Pipeline Exit Status (push) Has been cancelled
2025-03-19 04:37:55 +00:00
Daniel A. Wozniak
cd62b3ab56 Re-enable last release bits
Some checks are pending
CI / Prepare Workflow Run (push) Waiting to run
CI / Pre-Commit (push) Blocked by required conditions
CI / Lint (push) Blocked by required conditions
CI / NSIS Tests (push) Blocked by required conditions
CI / Prepare Release: (push) Blocked by required conditions
CI / Documentation (push) Blocked by required conditions
CI / Build Source Tarball (push) Blocked by required conditions
CI / Build Salt Onedir (push) Blocked by required conditions
CI / Build Packages (push) Blocked by required conditions
CI / CI Deps (push) Blocked by required conditions
CI / Test Package (push) Blocked by required conditions
CI / Test Salt (push) Blocked by required conditions
CI / Combine Code Coverage (push) Blocked by required conditions
CI / Set the Pipeline Exit Status (push) Blocked by required conditions
2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
6feb0c2b7c Fix release patch path 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
dfa9e00b97 Download release patch 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
07f8a519f0 Comment out what we know works 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
12af0fd612 Install python 3.10 where needed 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
281c4da32e Do not change release name template 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
dcf20b0c9b No more s3 cache 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
564b7e9aab No more staged release 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
b0013cb72e Ignore draft release 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
127e2ca07c Fix prepare worklow runner name 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
6cc87235ca Always set matrix even when it will be empty 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
bb6479d255 Bump action version 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
7e1f48da3d Fix action lint 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
74407030ce Add pr write premission 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
e32526f0d0 skip pypi publish for now 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
5e73cd23ed Cleanup actionlint results 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
e4d8ab881a Bump actionlint version 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
d29e77c902 Clean up release workflow 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
e38e9d189b Remove dead code 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
add6e60649 Fix testrun log artifact name 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
c42bb0d946 Publish draft after pypi and tag 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
d634d8be81 Add release patch to draft release 2025-03-18 21:25:49 -07:00
Daniel A. Wozniak
07f5429db6 Do not try to uninstall unless downgrading
Some checks are pending
CI / Prepare Workflow Run (push) Waiting to run
CI / Pre-Commit (push) Blocked by required conditions
CI / Lint (push) Blocked by required conditions
CI / NSIS Tests (push) Blocked by required conditions
CI / Prepare Release: (push) Blocked by required conditions
CI / Documentation (push) Blocked by required conditions
CI / Build Source Tarball (push) Blocked by required conditions
CI / Build Salt Onedir (push) Blocked by required conditions
CI / Build Packages (push) Blocked by required conditions
CI / CI Deps (push) Blocked by required conditions
CI / Test Package (push) Blocked by required conditions
CI / Test Salt (push) Blocked by required conditions
CI / Combine Code Coverage (push) Blocked by required conditions
CI / Set the Pipeline Exit Status (push) Blocked by required conditions
2025-03-18 17:48:44 -07:00
Daniel A. Wozniak
d9934fccab Downgrade must uninstall the newer msi 2025-03-18 15:01:31 -07:00
Daniel A. Wozniak
f7c027402d Raise timeout error on timeout 2025-03-18 15:00:47 -07:00
Marek Czernek
e74e5ac896 Add tests for passwd shell sanitization 2025-03-18 14:47:10 -07:00
Marek Czernek
4fbae13a38 Move output password removal after functional text matching 2025-03-18 14:47:10 -07:00
Daniel A. Wozniak
10fb7d4ee6 Add comment to help explain what is expected
Some checks are pending
CI / Prepare Workflow Run (push) Waiting to run
CI / Pre-Commit (push) Blocked by required conditions
CI / Lint (push) Blocked by required conditions
CI / NSIS Tests (push) Blocked by required conditions
CI / Prepare Release: (push) Blocked by required conditions
CI / Documentation (push) Blocked by required conditions
CI / Build Source Tarball (push) Blocked by required conditions
CI / Build Salt Onedir (push) Blocked by required conditions
CI / Build Packages (push) Blocked by required conditions
CI / CI Deps (push) Blocked by required conditions
CI / Test Package (push) Blocked by required conditions
CI / Test Salt (push) Blocked by required conditions
CI / Combine Code Coverage (push) Blocked by required conditions
CI / Set the Pipeline Exit Status (push) Blocked by required conditions
2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
4c68d85504 Run windows downgrade tests 2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
41e069dd0c Conf dir is string not tuple 2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
e2776eefd0 Do not clean master key on windows 2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
505b234dd4 Windows upgrade test fix-ups
- Work around WMIC disks grain failure by overriding the minion's grain.
- Use static master config directory on windows so it can be re-used by
  the pkg integration tests.
2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
56e8425412 Try to get wmic back 2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
ae92460bfb Add get capabilties 2025-03-17 14:39:28 -07:00
Twangboy
f9f3f83735 Enable WMIC on the runner 2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
ca60ebcb39 Fix bin_file on windows 2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
2d521d7868 Actually run upgrade 2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
3150593c7e Actually run upgrade tests 2025-03-17 14:39:28 -07:00
Daniel A. Wozniak
edd7bec6a6 Do not install when no-install is passed 2025-03-17 14:39:28 -07:00
Marek Czernek
f99b663257 Fix JSON.find_json code style nits 2025-03-17 14:34:54 -07:00
Marek Czernek
b5e850e905 Fix find_json to not rely on newline after valid JSON 2025-03-17 14:34:54 -07:00
jeanluc
742363673b Fix unittests
Some checks are pending
CI / Prepare Workflow Run (push) Waiting to run
CI / Pre-Commit (push) Blocked by required conditions
CI / Lint (push) Blocked by required conditions
CI / NSIS Tests (push) Blocked by required conditions
CI / Prepare Release: (push) Blocked by required conditions
CI / Documentation (push) Blocked by required conditions
CI / Build Source Tarball (push) Blocked by required conditions
CI / Build Salt Onedir (push) Blocked by required conditions
CI / Build Packages (push) Blocked by required conditions
CI / CI Deps (push) Blocked by required conditions
CI / Test Package (push) Blocked by required conditions
CI / Test Salt (push) Blocked by required conditions
CI / Combine Code Coverage (push) Blocked by required conditions
CI / Set the Pipeline Exit Status (push) Blocked by required conditions
2025-03-16 14:03:00 -07:00
jeanluc
17231f51b9 Fix pre-commit 2025-03-16 14:03:00 -07:00
jeanluc
892a30900f Constrain the localfs cache to the cachedir 2025-03-16 14:03:00 -07:00
jeanluc
73124e2130 Add tests for issue #67031 2025-03-16 14:03:00 -07:00
David Murphy
92959b9c30 Ensure salt-cloud has salt-master dependency on Debian and Ubuntu
Some checks failed
CI / Prepare Workflow Run (push) Has been cancelled
CI / Pre-Commit (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / NSIS Tests (push) Has been cancelled
CI / Prepare Release: (push) Has been cancelled
CI / Documentation (push) Has been cancelled
CI / Build Source Tarball (push) Has been cancelled
CI / Build Salt Onedir (push) Has been cancelled
CI / Build Packages (push) Has been cancelled
CI / CI Deps (push) Has been cancelled
CI / Test Package (push) Has been cancelled
CI / Test Salt (push) Has been cancelled
CI / Combine Code Coverage (push) Has been cancelled
CI / Set the Pipeline Exit Status (push) Has been cancelled
2025-03-12 18:25:40 -07:00
David Murphy
57bf2b9c69 Removed debug statements
Some checks are pending
CI / Prepare Workflow Run (push) Waiting to run
CI / Pre-Commit (push) Blocked by required conditions
CI / Lint (push) Blocked by required conditions
CI / NSIS Tests (push) Blocked by required conditions
CI / Prepare Release: (push) Blocked by required conditions
CI / Documentation (push) Blocked by required conditions
CI / Build Source Tarball (push) Blocked by required conditions
CI / Build Salt Onedir (push) Blocked by required conditions
CI / Build Packages (push) Blocked by required conditions
CI / CI Deps (push) Blocked by required conditions
CI / Test Package (push) Blocked by required conditions
CI / Test Salt (push) Blocked by required conditions
CI / Combine Code Coverage (push) Blocked by required conditions
CI / Set the Pipeline Exit Status (push) Blocked by required conditions
2025-03-11 21:47:08 -07:00
David Murphy
60ce6634de Updated tests for removed obsolete rpm version comparsion functions 2025-03-11 21:47:08 -07:00
David Murphy
803ed79c23 Updating version comparison for rpm and removed obsolete comparison methods for rpma 2025-03-11 21:47:08 -07:00
David Murphy
3525934be7 Updating version_cmp for rpm 2025-03-11 21:47:08 -07:00
Daniel Wozniak
0b17433478
Merge pull request #67800 from twangboy/fix_59344
Some checks failed
CI / Prepare Workflow Run (push) Has been cancelled
CI / Pre-Commit (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / NSIS Tests (push) Has been cancelled
CI / Prepare Release: (push) Has been cancelled
CI / Documentation (push) Has been cancelled
CI / Build Source Tarball (push) Has been cancelled
CI / Build Salt Onedir (push) Has been cancelled
CI / Build Packages (push) Has been cancelled
CI / CI Deps (push) Has been cancelled
CI / Test Package (push) Has been cancelled
CI / Test Salt (push) Has been cancelled
CI / Combine Code Coverage (push) Has been cancelled
CI / Set the Pipeline Exit Status (push) Has been cancelled
Handle integer usernames in RunAs on Windows
2025-03-10 13:52:50 -07:00
twangboy
b6d532ce44
Use f-string instead of str() 2025-03-10 07:42:32 -06:00
twangboy
22eb8282f1
Remove unused imports 2025-03-10 07:42:32 -06:00
twangboy
c72f6c7efb
Remove unnecessary function from test 2025-03-10 07:42:32 -06:00
twangboy
7bcac75dbb
Handle integer usernames properly 2025-03-10 07:42:31 -06:00
Daniel A. Wozniak
3194208a7f Remove dead code.
Some checks failed
CI / Prepare Workflow Run (push) Has been cancelled
CI / Pre-Commit (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / NSIS Tests (push) Has been cancelled
CI / Prepare Release: (push) Has been cancelled
CI / Documentation (push) Has been cancelled
CI / Build Source Tarball (push) Has been cancelled
CI / Build Salt Onedir (push) Has been cancelled
CI / Build Packages (push) Has been cancelled
CI / CI Deps (push) Has been cancelled
CI / Test Package (push) Has been cancelled
CI / Test Salt (push) Has been cancelled
CI / Combine Code Coverage (push) Has been cancelled
CI / Set the Pipeline Exit Status (push) Has been cancelled
Define jobs is handled by the workflow_config method.
2025-03-08 02:29:41 -07:00
hurzhurz
32b55b9e9b add test for automatic daemon-reload in systemd_service module
Some checks are pending
CI / Prepare Workflow Run (push) Waiting to run
CI / Pre-Commit (push) Blocked by required conditions
CI / Lint (push) Blocked by required conditions
CI / NSIS Tests (push) Blocked by required conditions
CI / Prepare Release: (push) Blocked by required conditions
CI / Documentation (push) Blocked by required conditions
CI / Build Source Tarball (push) Blocked by required conditions
CI / Build Salt Onedir (push) Blocked by required conditions
CI / Build Packages (push) Blocked by required conditions
CI / CI Deps (push) Blocked by required conditions
CI / Test Package (push) Blocked by required conditions
CI / Test Salt (push) Blocked by required conditions
CI / Combine Code Coverage (push) Blocked by required conditions
CI / Set the Pipeline Exit Status (push) Blocked by required conditions
2025-03-07 20:09:29 -07:00
hurzhurz
b43018d2bf systemd_service: remove caching of 'systemctl status' to fix automatic daemon-reload for repeated invocations 2025-03-07 20:09:29 -07:00
2987 changed files with 598209 additions and 73447 deletions

View file

@ -1,34 +0,0 @@
version: 2
updates:
# master branch
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
target-branch: master
labels:
- "test:full"
# Don't open PRs for regular version updates
open-pull-requests-limit: 0
# 3006.x release branch
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
target-branch: 3006.x
labels:
- "test:full"
# Don't open PRs for regular version updates
open-pull-requests-limit: 0
# freeze release branch
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
target-branch: freeze
labels:
- "test:full"
# Don't open PRs for regular version updates
open-pull-requests-limit: 0

View file

@ -71,19 +71,6 @@ jobs:
# Checkout here so we can easily use custom actions
- uses: actions/checkout@v4
# We need a more recent rustc
- name: Install a more recent `rustc`
if: ${{ inputs.source == 'src' }}
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Set rust environment variables
if: ${{ inputs.source == 'src' }}
run: |
CARGO_HOME=${CARGO_HOME:-${HOME}/.cargo}
export CARGO_HOME
echo "CARGO_HOME=${CARGO_HOME}" | tee -a "${GITHUB_ENV}"
echo "${CARGO_HOME}/bin" | tee -a "${GITHUB_PATH}"
# Checkout here for the build process
- name: Checkout in build directory
uses: actions/checkout@v4

View file

@ -46,7 +46,6 @@ jobs:
cache-seed: ${{ steps.set-cache-seed.outputs.cache-seed }}
latest-release: ${{ steps.get-salt-releases.outputs.latest-release }}
releases: ${{ steps.get-salt-releases.outputs.releases }}
release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }}
testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }}
nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }}
config: ${{ steps.workflow-config.outputs.config }}
@ -221,11 +220,6 @@ jobs:
name: testrun-changed-files.txt
path: testrun-changed-files.txt
- name: Get Release Changelog Target
id: get-release-changelog-target
run: |
tools ci get-release-changelog-target ${{ github.event_name }}
pre-commit:
name: Pre-Commit
@ -293,27 +287,12 @@ jobs:
tools changelog update-rpm --draft
tools changelog update-rpm
- name: Create Release Notes Template
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
tools changelog update-release-notes --next-release --template-only
else
tools changelog update-release-notes --template-only
fi
- name: Update Release Notes
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
tools changelog update-release-notes --draft --next-release
tools changelog update-release-notes --next-release
else
tools changelog update-release-notes --draft
tools changelog update-release-notes
fi
tools changelog update-release-notes --draft
tools changelog update-release-notes
- name: Generate MAN Pages
shell: bash

View file

@ -49,13 +49,21 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release_name: "Release v${{ inputs.salt-version }}"
release_name: "v${{ inputs.salt-version }}"
tag_name: v${{ inputs.salt-version }}
draft: true
prerelease: false
- name: Release Output
run: echo "upload_url=${{ steps.create_release.outputs.upload_url }}" >> "$GITHUB_OUTPUT"
upload-release-patch:
needs:
- create-github-release
uses: ./.github/workflows/release-artifact.yml
with:
name: salt-${{ inputs.salt-version }}.patch
upload_url: ${{ needs.create-github-release.outputs.upload_url }}
upload-source-tarball:
needs:
- create-github-release

View file

@ -16,6 +16,9 @@ on:
type: boolean
default: false
description: Skip running the Salt packages test suite.
schedule:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onschedule
- cron: '0 0 * * *' # Every day at 0AM
env:
COLUMNS: 190
@ -35,17 +38,63 @@ concurrency:
jobs:
workflow-requirements:
name: Check Workflow Requirements
runs-on: ubuntu-22.04
outputs:
requirements-met: ${{ steps.check-requirements.outputs.requirements-met }}
steps:
- name: Check Requirements
id: check-requirements
run: |
if [ "${{ vars.RUN_SCHEDULED_BUILDS }}" = "1" ]; then
MSG="Running workflow because RUN_SCHEDULED_BUILDS=1"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
elif [ "${{ github.event.repository.fork }}" = "true" ]; then
MSG="Not running workflow because ${{ github.repository }} is a fork"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=false" >> "${GITHUB_OUTPUT}"
elif [ "${{ github.event.repository.private }}" = "true" ]; then
MSG="Not running workflow because ${{ github.repository }} is a private repository"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=false" >> "${GITHUB_OUTPUT}"
else
MSG="Running workflow because ${{ github.repository }} is not a fork"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
fi
trigger-branch-nightly-builds:
name: Trigger Branch Workflows
if: ${{ github.event_name == 'schedule' && fromJSON(needs.workflow-requirements.outputs.requirements-met) }}
runs-on: ubuntu-22.04
needs:
- workflow-requirements
steps:
- name: Trigger 3006.x branch
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh workflow run nightly.yml --repo ${{ github.repository }} --ref 3006.x
prepare-workflow:
name: Prepare Workflow Run
runs-on: ubuntu-22.04
environment: ci
if: ${{ fromJSON(needs.workflow-requirements.outputs.requirements-met) }}
needs:
- workflow-requirements
outputs:
changed-files: ${{ steps.process-changed-files.outputs.changed-files }}
salt-version: ${{ steps.setup-salt-version.outputs.salt-version }}
cache-seed: ${{ steps.set-cache-seed.outputs.cache-seed }}
latest-release: ${{ steps.get-salt-releases.outputs.latest-release }}
releases: ${{ steps.get-salt-releases.outputs.releases }}
release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }}
testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }}
nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }}
config: ${{ steps.workflow-config.outputs.config }}
@ -220,11 +269,6 @@ jobs:
name: testrun-changed-files.txt
path: testrun-changed-files.txt
- name: Get Release Changelog Target
id: get-release-changelog-target
run: |
tools ci get-release-changelog-target ${{ github.event_name }}
pre-commit:
name: Pre-Commit
@ -292,21 +336,11 @@ jobs:
tools changelog update-rpm --draft
tools changelog update-rpm
- name: Create Release Notes Template
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
tools changelog update-release-notes --next-release --template-only
else
tools changelog update-release-notes --template-only
fi
- name: Update Release Notes
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
if [ "${{ contains(fromJSON('["master"]'), github.ref_name) }}" == "true" ]; then
tools changelog update-release-notes --draft --next-release
tools changelog update-release-notes --next-release
else
@ -533,6 +567,8 @@ jobs:
runs-on: ubuntu-22.04
environment: nightly
needs:
- workflow-requirements
- trigger-branch-nightly-builds
- prepare-workflow
- pre-commit
- lint

View file

@ -50,7 +50,7 @@ jobs:
- name: Check ALL Files On Branch
if: ${{ !cancelled() && github.event_name != 'pull_request' }}
env:
SKIP: lint-salt,lint-tests,remove-import-headers,pyupgrade
SKIP: lint-salt,lint-tests,remove-import-headers,rstcheck
run: |
pre-commit run --show-diff-on-failure --color=always --all-files

View file

@ -1,84 +0,0 @@
---
name: Generate Tag and Github Release
on:
workflow_dispatch:
inputs:
saltVersion:
description: 'Salt Version'
required: true
saltRepo:
description: 'Salt Repo'
default: saltstack/salt
saltBranch:
description: 'Salt Branch'
default: freeze
reTag:
description: 'Re Tag (Deletes tag and release)'
default: false
env:
PIP_INDEX_URL: ${{ vars.PIP_INDEX_URL }}
PIP_TRUSTED_HOST: ${{ vars.PIP_TRUSTED_HOST }}
PIP_EXTRA_INDEX_URL: ${{ vars.PIP_EXTRA_INDEX_URL }}
permissions:
contents: read
jobs:
GenerateTagRelease:
permissions:
contents: write # for dev-drprasad/delete-tag-and-release to delete tags or releases
name: Generate Tag and Github Release
runs-on: ubuntu-22.04
steps:
- uses: dev-drprasad/delete-tag-and-release@v0.2.0
if: github.event.inputs.reTag == 'true'
with:
delete_release: true # default: false
tag_name: v${{ github.event.inputs.saltVersion }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v4
with:
repository: ${{ github.event.inputs.saltRepo }}
ref: ${{ github.event.inputs.saltBranch }}
- name: Bump version and push tag
id: tag_version
uses: mathieudutour/github-tag-action@v5.6
with:
create_annotated_tag: True
github_token: ${{ secrets.GITHUB_TOKEN }}
custom_tag: ${{ github.event.inputs.saltVersion }}
- name: Set up Python 3.8
uses: actions/setup-python@v5
with:
python-version: 3.8
- uses: actions/checkout@v4
- name: Install pypa/build
run: |
python -m pip install build --user
- name: Build a binary wheel and a source tarball
run: |
git fetch --tags origin
git checkout v${{ github.event.inputs.saltVersion }}
chmod 700 conf/cloud.*.d
chmod 600 conf/cloud
chmod 600 conf/cloud.profiles
chmod 600 conf/cloud.providers
python3 setup.py --ssh-packaging sdist
python -m build --sdist --outdir dist/ .
- name: Create a GitHub release
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.tag_version.outputs.new_tag }}
name: Release ${{ steps.tag_version.outputs.new_tag }}
body: |
WARNING: The tarball generated by GitHub will not have the correct version information when using a version not ending in .0 . Please use the tarball generated by SaltStack instead. See issue #41847 for more information.
Official Salt packages can be found at https://repo.saltproject.io/
artifacts: dist/salt*.tar.gz

View file

@ -31,7 +31,7 @@ jobs:
uses: actions/checkout@v4
with:
path: winrepo
repository: saltstack/salt-winrepo-ng
repository: twangboy/salt-winrepo-ng
- name: Set Up Python 3.10
uses: actions/setup-python@v5

View file

@ -1,7 +1,3 @@
# Do not edit these workflows directly as the changes made will be overwritten.
# Instead, edit the template '.github/workflows/templates/release.yml.jinja'
---
name: Release
run-name: "Release (branch: ${{ github.ref_name }}; version: ${{ inputs.salt-version }})"
@ -28,6 +24,7 @@ env:
permissions:
contents: write # To be able to publish the release
pull-requests: write
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.repository }}
@ -49,7 +46,7 @@ jobs:
prepare-workflow:
name: Prepare Workflow Run
runs-on:
- linux-x86_64
- ubuntu-24.04
env:
USE_S3_CACHE: 'false'
environment: release
@ -61,7 +58,6 @@ jobs:
latest-release: ${{ steps.get-salt-releases.outputs.latest-release }}
releases: ${{ steps.get-salt-releases.outputs.releases }}
nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }}
config: ${{ steps.workflow-config.outputs.config }}
steps:
- uses: actions/checkout@v4
with:
@ -97,12 +93,6 @@ jobs:
tools pkg repo confirm-unreleased --repository saltstack/salt ${{ steps.setup-salt-version.outputs.salt-version }}
fi
- name: Check Release Staged
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
tools pkg repo confirm-staged --repository ${{ github.repository }} ${{ steps.setup-salt-version.outputs.salt-version }}
- name: Get Salt Releases
id: get-salt-releases
env:
@ -120,152 +110,14 @@ jobs:
run: |
echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml', '.github/workflows/build-deps-ci-action.yml') }}" | tee -a "$GITHUB_OUTPUT"
- name: Define workflow config
id: workflow-config
run: |
tools ci workflow-config${{ inputs.skip-salt-pkg-download-test-suite && ' --skip-pkg-download-tests' || '' }} ${{ steps.setup-salt-version.outputs.salt-version }} ${{ github.event_name }} changed-files.json
download-onedir-artifact:
name: Download Staging Onedir Artifact
runs-on:
- linux-x86_64
env:
USE_S3_CACHE: 'true'
environment: release
needs:
- prepare-workflow
strategy:
fail-fast: false
matrix:
include:
- platform: linux
arch: x86_64
- platform: linux
arch: arm64
- platform: windows
arch: amd64
- platform: windows
arch: x86
- platform: macos
arch: x86_64
- platform: macos
arch: arm64
steps:
- uses: actions/checkout@v4
- name: Setup Python Tools Scripts
uses: ./.github/actions/setup-python-tools-scripts
with:
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}
- name: Get Salt Project GitHub Actions Bot Environment
run: |
TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30")
SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment)
echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV"
- name: Download Onedir Tarball Artifact
run: |
tools release download-onedir-artifact --platform=${{ matrix.platform }} --arch=${{ matrix.arch }} ${{ inputs.salt-version }}
- name: Upload Onedir Tarball as an Artifact
uses: actions/upload-artifact@v4
with:
name: salt-${{ inputs.salt-version }}-onedir-${{ matrix.platform }}-${{ matrix.arch }}.tar.xz
path: artifacts/salt-${{ inputs.salt-version }}-onedir-${{ matrix.platform }}-${{ matrix.arch }}.tar.xz*
retention-days: 7
if-no-files-found: error
build-ci-deps:
name: CI Deps
needs:
- prepare-workflow
- download-onedir-artifact
uses: ./.github/workflows/build-deps-ci-action.yml
with:
nox-session: ci-test-onedir
nox-version: 2022.8.7
python-version: "3.10"
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16
nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}"
matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }}
linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }}
backup:
name: Backup
runs-on:
- linux-x86_64
needs:
- prepare-workflow
env:
USE_S3_CACHE: 'true'
environment: release
outputs:
backup-complete: ${{ steps.backup.outputs.backup-complete }}
steps:
- name: Clone The Salt Repository
uses: actions/checkout@v4
- name: Setup Rclone
uses: AnimMouse/setup-rclone@v1
with:
version: v1.61.1
- name: Setup Python Tools Scripts
uses: ./.github/actions/setup-python-tools-scripts
with:
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}
- name: Backup Previous Releases
id: backup
run: |
tools pkg repo backup-previous-releases
publish-repositories:
name: Publish Repositories
runs-on:
- linux-x86_64
env:
USE_S3_CACHE: 'true'
needs:
- prepare-workflow
- backup
- download-onedir-artifact
environment: release
steps:
- name: Clone The Salt Repository
uses: actions/checkout@v4
- name: Get Salt Project GitHub Actions Bot Environment
run: |
TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30")
SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment)
echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV"
- name: Setup Python Tools Scripts
uses: ./.github/actions/setup-python-tools-scripts
with:
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}
- name: Publish Release Repository
env:
SALT_REPO_DOMAIN_RELEASE: ${{ vars.SALT_REPO_DOMAIN_RELEASE || 'repo.saltproject.io' }}
SALT_REPO_DOMAIN_STAGING: ${{ vars.SALT_REPO_DOMAIN_STAGING || 'staging.repo.saltproject.io' }}
run: |
tools pkg repo publish release ${{ needs.prepare-workflow.outputs.salt-version }}
release:
name: Release v${{ needs.prepare-workflow.outputs.salt-version }}
if: ${{ always() && ! failure() && ! cancelled() }}
runs-on:
- linux-x86_64
runs-on: ubuntu-24.04
env:
USE_S3_CACHE: 'true'
USE_S3_CACHE: 'false'
needs:
- prepare-workflow
- backup
- publish-repositories
environment: release
steps:
- name: Clone The Salt Repository
@ -273,46 +125,16 @@ jobs:
with:
ssh-key: ${{ secrets.GHA_SSH_KEY }}
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Setup Python Tools Scripts
uses: ./.github/actions/setup-python-tools-scripts
with:
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}
- name: Setup GnuPG
run: |
sudo install -d -m 0700 -o "$(id -u)" -g "$(id -g)" /run/gpg
GNUPGHOME="$(mktemp -d -p /run/gpg)"
echo "GNUPGHOME=${GNUPGHOME}" >> "$GITHUB_ENV"
cat <<EOF > "${GNUPGHOME}/gpg.conf"
batch
no-tty
pinentry-mode loopback
EOF
- name: Get Secrets
id: get-secrets
env:
SECRETS_KEY: ${{ secrets.SECRETS_KEY }}
run: |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX)
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE"
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \
--query SecretString --output text | jq .default_key -r | base64 -d \
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -d - \
| gpg --import -
sync
aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/signing/repo-signing-keys-sha256-2023 \
--query SecretString --output text| jq .default_passphrase -r | base64 -d \
| gpg --passphrase-file "${SECRETS_KEY_FILE}" -o "${GNUPGHOME}/passphrase" -d -
sync
rm "$SECRETS_KEY_FILE"
echo "passphrase-file ${GNUPGHOME}/passphrase" >> "${GNUPGHOME}/gpg.conf"
- name: Prepare Release
id: prepare-release
run: |
tools pkg repo publish github --repository ${{ github.repository }} --key-id=64CBBC8173D76B3F ${{ needs.prepare-workflow.outputs.salt-version }}
- name: Configure Git
shell: bash
run: |
@ -322,47 +144,48 @@ jobs:
git config --global user.signingkey 64CBBC8173D76B3F
git config --global commit.gpgsign true
- name: Setup GnuPG
env:
SIGNING_GPG_KEY: ${{ secrets.SIGNING_GPG_KEY }}
SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }}
run: |
sudo install -d -m 0700 -o "$(id -u)" -g "$(id -g)" /run/gpg
GNUPGHOME="$(mktemp -d -p /run/gpg)"
export GNUPGHOME
echo "GNUPGHOME=${GNUPGHOME}" >> "$GITHUB_ENV"
cat <<EOF > "${GNUPGHOME}/gpg.conf"
batch
no-tty
pinentry-mode loopback
passphrase-file ${GNUPGHOME}/passphrase
EOF
echo "${SIGNING_PASSPHRASE}" > "${GNUPGHOME}/passphrase"
echo "${SIGNING_GPG_KEY}" | gpg --import -
- name: Download Release Patch
env:
GH_TOKEN: ${{ github.token }}
run: |
mkdir -p artifacts/release
gh release download \
-D artifacts/release \
-p 'salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch' \
v${{ needs.prepare-workflow.outputs.salt-version }}
- name: Apply The Release Patch
run: |
git am --committer-date-is-author-date release-artifacts/salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch
rm release-artifacts/salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch
git am --committer-date-is-author-date artifacts/release/salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch
rm artifacts/release/salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch
- name: Tag The v${{ needs.prepare-workflow.outputs.salt-version }} Release
run: |
git tag -m "Release v${{ needs.prepare-workflow.outputs.salt-version }}" -as v${{ needs.prepare-workflow.outputs.salt-version }}
- name: Push Changes
uses: ad-m/github-push-action@b87afee92c6e70ea888be6203a3e9426fda49839
with:
ssh: true
tags: true
atomic: true
branch: ${{ github.ref }}
- name: Create Github Release
uses: ncipollo/release-action@v1
with:
artifactErrorsFailBuild: true
artifacts: ${{ steps.prepare-release.outputs.release-artifacts }}
bodyFile: ${{ steps.prepare-release.outputs.release-messsage-file }}
draft: false
generateReleaseNotes: false
makeLatest: fromJSON(${{ steps.prepare-release.outputs.make-latest }})
name: v${{ needs.prepare-workflow.outputs.salt-version }}
prerelease: ${{ contains(needs.prepare-workflow.outputs.salt-version, 'rc') }}
removeArtifacts: true
replacesArtifacts: true
tag: v${{ needs.prepare-workflow.outputs.salt-version }}
- name: Upload PyPi Artifacts
uses: actions/upload-artifact@v4
with:
name: pypi-artifacts
path: |
release-artifacts/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz
release-artifacts/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz.asc
retention-days: 7
if-no-files-found: error
- name: Push tag
run: |
git config user.name "GitHub Actions"
git config user.email "github-actions@users.noreply.github.com"
git push origin v${{ inputs.salt-version }}
publish-pypi:
name: Publish to PyPi
@ -371,13 +194,17 @@ jobs:
- prepare-workflow
- release
environment: release
runs-on:
- linux-x86_64
runs-on: ubuntu-24.04
env:
USE_S3_CACHE: 'true'
USE_S3_CACHE: 'false'
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Setup Python Tools Scripts
uses: ./.github/actions/setup-python-tools-scripts
with:
@ -394,30 +221,39 @@ jobs:
pinentry-mode loopback
EOF
- name: Get Secrets
id: get-secrets
env:
SECRETS_KEY: ${{ secrets.SECRETS_KEY }}
run: |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX)
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE"
TWINE_PASSWORD=$(aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/publishing/publish-pypi \
--query SecretString --output text | jq .default_passphrase -r | base64 -d \
| gpg --passphrase-file "$SECRETS_KEY_FILE" -d -)
echo "::add-mask::$TWINE_PASSWORD"
echo "twine-password=$TWINE_PASSWORD" >> "${GITHUB_OUTPUT}"
- name: Download PyPi Artifacts
uses: actions/download-artifact@v4
with:
name: pypi-artifacts
path: artifacts/release
env:
GH_TOKEN: ${{ github.token }}
run: |
mkdir -p artifacts/release
gh release download \
-D artifacts/release \
-p 'salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz' \
v${{ needs.prepare-workflow.outputs.salt-version }}
- name: Publish to PyPi
env:
TWINE_PASSWORD: "${{ steps.get-secrets.outputs.twine-password }}"
TWINE_PASSWORD: "${{ secrets.TWINE_PASSWORD }}"
run: |
tools pkg pypi-upload artifacts/release/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz
publish-draft:
name: Publish Relase v${{ needs.prepare-workflow.outputs.salt-version }}
if: ${{ !cancelled() && always() }}
runs-on: ubuntu-22.04
needs:
- check-requirements
- prepare-workflow
- release
- publish-pypi
steps:
- uses: actions/checkout@v4
- name: Publish Release v${{ needs.prepare-workflow.outputs.salt-version }}
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release edit v${{ inputs.salt-version }} --draft=false
set-pipeline-exit-status:
# This step is just so we can make github require this step, to pass checks
# on a pull request instead of requiring all
@ -427,10 +263,9 @@ jobs:
needs:
- check-requirements
- prepare-workflow
- publish-repositories
- release
- publish-pypi
- build-ci-deps
- publish-draft
steps:
- name: Get workflow information
id: get-workflow-info

View file

@ -1,70 +0,0 @@
name: Run Nightly Builds
on:
workflow_dispatch: {}
schedule:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onschedule
- cron: '0 0 * * *' # Every day at 0AM
permissions:
contents: read # for dorny/paths-filter to fetch a list of changed files
pull-requests: read # for dorny/paths-filter to read pull requests
actions: write # to trigger branch nightly builds
jobs:
workflow-requirements:
name: Check Workflow Requirements
runs-on: ubuntu-22.04
outputs:
requirements-met: ${{ steps.check-requirements.outputs.requirements-met }}
steps:
- name: Check Requirements
id: check-requirements
run: |
if [ "${{ vars.RUN_SCHEDULED_BUILDS }}" = "1" ]; then
MSG="Running workflow because RUN_SCHEDULED_BUILDS=1"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
elif [ "${{ github.event.repository.fork }}" = "true" ]; then
MSG="Not running workflow because ${{ github.repository }} is a fork"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=false" >> "${GITHUB_OUTPUT}"
elif [ "${{ github.event.repository.private }}" = "true" ]; then
MSG="Not running workflow because ${{ github.repository }} is a private repository"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=false" >> "${GITHUB_OUTPUT}"
else
MSG="Running workflow because ${{ github.repository }} is not a fork"
echo "${MSG}"
echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
fi
trigger-branch-nightly-builds:
name: Trigger Branch Workflows
if: ${{ fromJSON(needs.workflow-requirements.outputs.requirements-met) }}
runs-on: ubuntu-24.04
needs:
- workflow-requirements
environment: workflow-restart
strategy:
matrix:
branch: [3006.x, 3007.x, master]
steps:
- name: Generate a token
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Trigger ${{ matrix.branch }} branch
env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
run: |
gh workflow run nightly.yml --repo ${{ github.repository }} --ref ${{ matrix.branch }}

View file

@ -65,21 +65,13 @@ jobs:
runs-on: ubuntu-22.04
needs:
- workflow-requirements
steps:
- name: Trigger 3006.x branch
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh workflow run scheduled.yml --repo ${{ github.repository }} --ref 3006.x
- name: Trigger 3007.x branch
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh workflow run scheduled.yml --repo ${{ github.repository }} --ref 3007.x
prepare-workflow:
name: Prepare Workflow Run
runs-on: ubuntu-22.04
@ -93,7 +85,6 @@ jobs:
cache-seed: ${{ steps.set-cache-seed.outputs.cache-seed }}
latest-release: ${{ steps.get-salt-releases.outputs.latest-release }}
releases: ${{ steps.get-salt-releases.outputs.releases }}
release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }}
testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }}
nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }}
config: ${{ steps.workflow-config.outputs.config }}
@ -268,11 +259,6 @@ jobs:
name: testrun-changed-files.txt
path: testrun-changed-files.txt
- name: Get Release Changelog Target
id: get-release-changelog-target
run: |
tools ci get-release-changelog-target ${{ github.event_name }}
pre-commit:
name: Pre-Commit
@ -340,27 +326,12 @@ jobs:
tools changelog update-rpm --draft
tools changelog update-rpm
- name: Create Release Notes Template
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
tools changelog update-release-notes --next-release --template-only
else
tools changelog update-release-notes --template-only
fi
- name: Update Release Notes
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
tools changelog update-release-notes --draft --next-release
tools changelog update-release-notes --next-release
else
tools changelog update-release-notes --draft
tools changelog update-release-notes
fi
tools changelog update-release-notes --draft
tools changelog update-release-notes
- name: Generate MAN Pages
shell: bash

View file

@ -76,7 +76,6 @@ jobs:
cache-seed: ${{ steps.set-cache-seed.outputs.cache-seed }}
latest-release: ${{ steps.get-salt-releases.outputs.latest-release }}
releases: ${{ steps.get-salt-releases.outputs.releases }}
release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }}
testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }}
nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }}
config: ${{ steps.workflow-config.outputs.config }}
@ -260,11 +259,6 @@ jobs:
name: testrun-changed-files.txt
path: testrun-changed-files.txt
- name: Get Release Changelog Target
id: get-release-changelog-target
run: |
tools ci get-release-changelog-target ${{ github.event_name }}
pre-commit:
name: Pre-Commit
@ -333,27 +327,12 @@ jobs:
tools changelog update-rpm --draft
tools changelog update-rpm
- name: Create Release Notes Template
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
tools changelog update-release-notes --next-release --template-only
else
tools changelog update-release-notes --template-only
fi
- name: Update Release Notes
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
tools changelog update-release-notes --draft --release --next-release
tools changelog update-release-notes --release --next-release
else
tools changelog update-release-notes --draft --release
tools changelog update-release-notes --release
fi
tools changelog update-release-notes --draft --release
tools changelog update-release-notes --release
- name: Generate MAN Pages
shell: bash
@ -628,19 +607,6 @@ jobs:
pinentry-mode loopback
EOF
- name: Get Secrets
id: get-secrets
env:
SECRETS_KEY: ${{ secrets.SECRETS_KEY }}
run: |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX)
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE"
TWINE_PASSWORD=$(aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/publishing/publish-test-pypi \
--query SecretString --output text | jq .default_passphrase -r | base64 -d \
| gpg --passphrase-file "$SECRETS_KEY_FILE" -d -)
echo "::add-mask::$TWINE_PASSWORD"
echo "twine-password=$TWINE_PASSWORD" >> "${GITHUB_OUTPUT}"
- name: Download PyPi Artifacts
uses: actions/download-artifact@v4
with:
@ -649,7 +615,7 @@ jobs:
- name: Publish to Test PyPi
env:
TWINE_PASSWORD: "${{ steps.get-secrets.outputs.twine-password }}"
TWINE_PASSWORD: "${{ secrets.PYPI_TEST_PASSWORD }}"
run: |
tools pkg pypi-upload --test artifacts/release/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz

View file

@ -97,27 +97,22 @@
tools changelog update-rpm --draft
tools changelog update-rpm
- name: Create Release Notes Template
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
tools changelog update-release-notes --next-release --template-only
else
tools changelog update-release-notes --template-only
fi
- name: Update Release Notes
shell: bash
if: ${{ startsWith(github.event.ref, 'refs/tags') == false }}
run: |
if [ "${{ needs.prepare-workflow.outputs.release-changelog-target }}" == "next-major-release" ]; then
<%- if gh_environment == 'nightly' %>
if [ "${{ contains(fromJSON('["master"]'), github.ref_name) }}" == "true" ]; then
tools changelog update-release-notes --draft <%- if prepare_actual_release %> --release <%- endif %> --next-release
tools changelog update-release-notes <%- if prepare_actual_release %> --release <%- endif %> --next-release
else
tools changelog update-release-notes --draft <%- if prepare_actual_release %> --release <%- endif %>
tools changelog update-release-notes <%- if prepare_actual_release %> --release <%- endif %>
fi
<%- else %>
tools changelog update-release-notes --draft <%- if prepare_actual_release %> --release <%- endif %>
tools changelog update-release-notes <%- if prepare_actual_release %> --release <%- endif %>
<%- endif %>
- name: Generate MAN Pages
shell: bash

View file

@ -50,7 +50,6 @@ permissions:
actions: read # for technote-space/workflow-conclusion-action to get the job statuses
<%- endif %>
<%- endblock permissions %>
<%- block concurrency %>
@ -95,7 +94,6 @@ jobs:
cache-seed: ${{ steps.set-cache-seed.outputs.cache-seed }}
latest-release: ${{ steps.get-salt-releases.outputs.latest-release }}
releases: ${{ steps.get-salt-releases.outputs.releases }}
release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }}
testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }}
nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }}
config: ${{ steps.workflow-config.outputs.config }}
@ -286,11 +284,6 @@ jobs:
name: testrun-changed-files.txt
path: testrun-changed-files.txt
- name: Get Release Changelog Target
id: get-release-changelog-target
run: |
tools ci get-release-changelog-target ${{ github.event_name }}
{# We can't yet use tokenless uploads with the codecov CLI
- name: Install Codecov CLI

View file

@ -2,6 +2,7 @@
<%- set skip_test_coverage_check = skip_test_coverage_check|default("true") %>
<%- set prepare_workflow_skip_test_suite = "${{ inputs.skip-salt-test-suite && ' --skip-tests' || '' }}" %>
<%- set prepare_workflow_skip_pkg_test_suite = "${{ inputs.skip-salt-pkg-test-suite && ' --skip-pkg-tests' || '' }}" %>
<%- set prepare_workflow_if_check = prepare_workflow_if_check|default("${{ fromJSON(needs.workflow-requirements.outputs.requirements-met) }}") %>
<%- extends 'ci.yml.jinja' %>
<%- block name %>
@ -24,6 +25,9 @@ on:
type: boolean
default: false
description: Skip running the Salt packages test suite.
schedule:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onschedule
- cron: '0 0 * * *' # Every day at 0AM
<%- endblock on %>
@ -44,6 +48,9 @@ concurrency:
<%- block pre_jobs %>
<%- include "workflow-requirements-check.yml.jinja" %>
<%- include "trigger-branch-workflows.yml.jinja" %>
<%- endblock pre_jobs %>
<%- block jobs %>

View file

@ -498,5 +498,3 @@ permissions:
echo '```' >> "${GITHUB_STEP_SUMMARY}"
fi
<%- endblock set_pipeline_exit_status_extra_steps %>
<%- block retry %>
<%- endblock retry %>

View file

@ -151,19 +151,6 @@ on:
pinentry-mode loopback
EOF
- name: Get Secrets
id: get-secrets
env:
SECRETS_KEY: ${{ secrets.SECRETS_KEY }}
run: |
SECRETS_KEY_FILE=$(mktemp /tmp/output.XXXXXXXXXX)
echo "$SECRETS_KEY" > "$SECRETS_KEY_FILE"
TWINE_PASSWORD=$(aws --region us-west-2 secretsmanager get-secret-value --secret-id /cmbu-saltstack/publishing/publish-test-pypi \
--query SecretString --output text | jq .default_passphrase -r | base64 -d \
| gpg --passphrase-file "$SECRETS_KEY_FILE" -d -)
echo "::add-mask::$TWINE_PASSWORD"
echo "twine-password=$TWINE_PASSWORD" >> "${GITHUB_OUTPUT}"
- name: Download PyPi Artifacts
uses: actions/download-artifact@v4
with:
@ -172,7 +159,7 @@ on:
- name: Publish to Test PyPi
env:
TWINE_PASSWORD: "${{ steps.get-secrets.outputs.twine-password }}"
TWINE_PASSWORD: "${{ secrets.PYPI_TEST_PASSWORD }}"
run: |
tools pkg pypi-upload --test artifacts/release/salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz

View file

@ -1,6 +1,7 @@
<%- set job_name = "trigger-branch-{}-builds".format(workflow_slug) %>
<%- set branches = ["3006.x"] %>
<{ job_name }>:
<%- do conclusion_needs.append(job_name) %>
@ -9,10 +10,8 @@
runs-on: ubuntu-22.04
needs:
- workflow-requirements
steps:
<%- for branch in release_branches %>
<%- for branch in branches %>
- name: Trigger <{ branch }> branch
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -172,7 +172,7 @@ jobs:
if: always()
uses: actions/upload-artifact@v4
with:
name: pkg-testrun-log-artifacts-${{ matrix.slug }}-${{ inputs.nox-session }}${{ matrix.fips && '-fips' || '' }}-${{ matrix.pkg_type }}-${{ matrix.arch }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}-${{ env.TIMESTAMP }}
name: pkg-testrun-log-artifacts-${{ matrix.slug }}-${{ inputs.nox-session }}${{ matrix.fips && '-fips' || '' }}-${{ matrix.pkg_type }}-${{ matrix.arch }}-${{ matrix.tests-chunk }}-${{ env.TIMESTAMP }}
path: |
artifacts/logs
include-hidden-files: true
@ -221,7 +221,7 @@ jobs:
- name: Install System Dependencies
run: |
brew install tree pkg-config mysql
brew install tree
- name: List Packages
run: |
@ -298,7 +298,7 @@ jobs:
if: always()
uses: actions/upload-artifact@v4
with:
name: pkg-testrun-log-artifacts-${{ matrix.slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}-${{ env.TIMESTAMP }}
name: pkg-testrun-log-artifacts-${{ matrix.slug }}-${{ matrix.pkg_type }}-${{ matrix.arch }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}-${{ env.TIMESTAMP }}
path: |
artifacts/logs
include-hidden-files: true
@ -337,7 +337,6 @@ jobs:
run: |
t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t"
- name: "Set `TIMESTAMP` environment variable"
shell: bash
run: |
@ -442,7 +441,7 @@ jobs:
if: always()
uses: actions/upload-artifact@v4
with:
name: pkg-testrun-log-artifacts-${{ matrix.slug }}-${{ inputs.nox-session }}-${{ matrix.transport }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}-${{ env.TIMESTAMP }}
name: pkg-testrun-log-artifacts-${{ matrix.slug }}-${{ matrix.pkg_type }}-${{ matrix.arch }}-${{ matrix.tests-chunk }}-${{ inputs.salt-version }}-${{ matrix.version || 'no-version'}}-${{ env.TIMESTAMP }}
path: |
artifacts/logs
include-hidden-files: true
@ -451,7 +450,7 @@ jobs:
if: always()
uses: actions/upload-artifact@v4
with:
name: pkg-testrun-artifacts-${{ matrix.slug }}-${{ matrix.pkg_type }}-${{ matrix.arch }}-${{ matrix.tests-chunk }}-${{ matrix.version || 'no-version'}}-${{ env.TIMESTAMP }}
name: pkg-testrun-artifacts-${{ matrix.slug }}-${{ matrix.pkg_type }}-${{ matrix.arch }}-${{ matrix.tests-chunk }}-${{ inputs.salt-version }}-${{ matrix.version || 'no-version'}}-${{ env.TIMESTAMP }}
path: |
artifacts/
!artifacts/pkg/*

View file

@ -38,7 +38,7 @@ jobs:
- name: Download last assignment cache
continue-on-error: true
uses: dawidd6/action-download-artifact@v8
uses: dawidd6/action-download-artifact@v3
with:
workflow: triage.yml
name: last-assignment

View file

@ -3,7 +3,8 @@ run-name: Workflow Finished ${{ github.event.workflow_run.display_title }} (${{
on:
workflow_run:
workflows: [Nightly, Scheduled, Stage Release]
workflows: ["Nightly", "Scheduled", "Stage Release"]
branches: ["3006.x", "3007.x", "master"]
types:
- completed

5
.gitignore vendored
View file

@ -16,14 +16,13 @@ MANIFEST
.pytest_cache
Pipfile.lock
.mypy_cache/*
.tools-venvs/
# virtualenv
# - ignores directories of a virtualenv when you create it right on
# top of salt such as
# - /some/path$ git clone https://github.com/thatch45/salt.git
# - /some/path$ virtualenv --python=/usr/bin/python2.6 salt
/.?env/
/env/
/bin/
/etc/
/include/
@ -36,7 +35,7 @@ Pipfile.lock
/tests/cachedir/
/tests/unit/templates/roots/
/var/
/.?venv/
/venv/
# setuptools stuff
*.egg-info

View file

@ -205,21 +205,6 @@ repos:
- --no-emit-index-url
- requirements/static/pkg/linux.in
- id: pip-tools-compile
alias: compile-pkg-linux-3.13-zmq-requirements
name: Linux Packaging Py3.13 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(linux\.in|py3\.13/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/linux.in
- id: pip-tools-compile
alias: compile-pkg-freebsd-3.9-zmq-requirements
name: FreeBSD Packaging Py3.9 ZeroMQ Requirements
@ -280,21 +265,6 @@ repos:
- --no-emit-index-url
- requirements/static/pkg/freebsd.in
- id: pip-tools-compile
alias: compile-pkg-freebsd-3.13-zmq-requirements
name: FreeBSD Packaging Py3.13 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(freebsd\.in|py3\.13/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/freebsd.in
- id: pip-tools-compile
alias: compile-pkg-darwin-3.9-zmq-requirements
name: Darwin Packaging Py3.9 ZeroMQ Requirements
@ -351,20 +321,6 @@ repos:
- --no-emit-index-url
- requirements/static/pkg/darwin.in
- id: pip-tools-compile
alias: compile-pkg-darwin-3.13-zmq-requirements
name: Darwin Packaging Py3.13 ZeroMQ Requirements
files: ^(requirements/((base|zeromq|crypto|darwin)\.txt|static/pkg/(darwin\.in|py3\.13/darwin\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=darwin
- --include=requirements/darwin.txt
- --no-emit-index-url
- requirements/static/pkg/darwin.in
- id: pip-tools-compile
alias: compile-pkg-windows-3.9-zmq-requirements
name: Windows Packaging Py3.9 ZeroMQ Requirements
@ -421,21 +377,6 @@ repos:
- --no-emit-index-url
- requirements/static/pkg/windows.in
- id: pip-tools-compile
alias: compile-pkg-windows-3.13-zmq-requirements
name: Windows Packaging Py3.13 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto|windows)\.txt|static/pkg/(windows\.in|py3\.13/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=windows
- --include=requirements/windows.txt
- --no-emit-index-url
- requirements/static/pkg/windows.in
# <---- Packaging Requirements -------------------------------------------------------------------------------------
# ----- CI Requirements ------------------------------------------------------------------------------------------->
@ -512,24 +453,6 @@ repos:
- --no-emit-index-url
- requirements/static/ci/linux.in
- id: pip-tools-compile
alias: compile-ci-linux-3.13-zmq-requirements
name: Linux CI Py3.13 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(linux\.in|common\.in)|py3\.13/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/linux.in
- id: pip-tools-compile
alias: compile-ci-linux-crypto-3.9-requirements
name: Linux CI Py3.9 Crypto Requirements
@ -586,24 +509,10 @@ repos:
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-linux-crypto-3.13-requirements
name: Linux CI Py3.13 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.12/linux-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=linux
- --out-prefix=linux
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-freebsd-3.9-zmq-requirements
name: FreeBSD CI Py3.9 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/((freebsd|common)\.in|py3\.9/freebsd\.txt)))$
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.9/freebsd\.txt))$
pass_filenames: false
args:
- -v
@ -621,7 +530,7 @@ repos:
- id: pip-tools-compile
alias: compile-ci-freebsd-3.10-zmq-requirements
name: FreeBSD CI Py3.10 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/((freebsd|common)\.in|py3\.10/freebsd\.txt)))$
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.10/freebsd\.txt))$
pass_filenames: false
args:
- -v
@ -639,7 +548,7 @@ repos:
- id: pip-tools-compile
alias: compile-ci-freebsd-3.11-zmq-requirements
name: FreeBSD CI Py3.11 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/((freebsd|common)\.in|py3\.11/freebsd\.txt)))$
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.11/freebsd\.txt))$
pass_filenames: false
args:
- -v
@ -672,24 +581,6 @@ repos:
- --no-emit-index-url
- requirements/static/ci/freebsd.in
- id: pip-tools-compile
alias: compile-ci-freebsd-3.13-zmq-requirements
name: FreeBSD CI Py3.13 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.13/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/freebsd.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/freebsd.in
- id: pip-tools-compile
alias: compile-ci-freebsd-crypto-3.9-requirements
name: FreeBSD CI Py3.9 Crypto Requirements
@ -699,7 +590,6 @@ repos:
args:
- -v
- --build-isolation
- --build-isolation
- --py-version=3.9
- --platform=freebsd
- --out-prefix=freebsd
@ -709,6 +599,7 @@ repos:
- id: pip-tools-compile
alias: compile-ci-freebsd-crypto-3.10-requirements
name: FreeBSD CI Py3.10 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/crypto\.in)$
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.10/freebsd-crypto\.txt))$
pass_filenames: false
args:
@ -748,24 +639,10 @@ repos:
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-freebsd-crypto-3.13-requirements
name: FreeBSD CI Py3.13 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.13/freebsd-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=freebsd
- --out-prefix=freebsd
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-darwin-3.9-zmq-requirements
name: Darwin CI Py3.9 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/((darwin|common)\.in|py3\.9/darwin\.txt)))$
files: ^(requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(darwin|common)\.in|py3\.9/darwin\.txt)))$
pass_filenames: false
args:
- -v
@ -782,7 +659,7 @@ repos:
- id: pip-tools-compile
alias: compile-ci-darwin-3.10-zmq-requirements
name: Darwin CI Py3.10 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/((darwin|common)\.in|py3\.10/darwin\.txt)))$
files: ^(requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(darwin|common)\.in|py3\.10/darwin\.txt)))$
pass_filenames: false
args:
- -v
@ -799,7 +676,7 @@ repos:
- id: pip-tools-compile
alias: compile-ci-darwin-3.11-zmq-requirements
name: Darwin CI Py3.11 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/((darwin|common)\.in|py3\.11/darwin\.txt)))$
files: ^(requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(darwin|common)\.in|py3\.11/darwin\.txt)))$
pass_filenames: false
args:
- -v
@ -830,24 +707,6 @@ repos:
- --no-emit-index-url
- requirements/static/ci/darwin.in
- id: pip-tools-compile
alias: compile-ci-darwin-3.13-zmq-requirements
name: Darwin CI Py3.13 ZeroMQ Requirements
files: ^(requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(darwin|common)\.in|py3\.13/darwin\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=darwin
- --include=requirements/darwin.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/darwin.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/darwin.in
- id: pip-tools-compile
alias: compile-ci-darwin-crypto-3.9-requirements
name: Darwin CI Py3.9 Crypto Requirements
@ -904,24 +763,10 @@ repos:
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-darwin-crypto-3.13-requirements
name: Darwin CI Py3.13 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.13/darwin-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=darwin
- --out-prefix=darwin
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-windows-3.9-zmq-requirements
name: Windows CI Py3.9 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/((windows|common)\.in|py3\.9/windows\.txt)))$
files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.9/windows\.txt))$
pass_filenames: false
args:
- -v
@ -938,7 +783,7 @@ repos:
- id: pip-tools-compile
alias: compile-ci-windows-3.10-zmq-requirements
name: Windows CI Py3.10 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/((windows|common)\.in|py3\.10/windows\.txt)))$
files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.10/windows\.txt))$
pass_filenames: false
args:
- -v
@ -955,7 +800,7 @@ repos:
- id: pip-tools-compile
alias: compile-ci-windows-3.11-zmq-requirements
name: Windows CI Py3.11 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/((windows|common)\.in|py3\.11/windows\.txt)))$
files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.11/windows\.txt))$
pass_filenames: false
args:
- -v
@ -986,23 +831,6 @@ repos:
- --no-emit-index-url
- requirements/static/ci/windows.in
- id: pip-tools-compile
alias: compile-ci-windows-3.13-zmq-requirements
name: Windows CI Py3.13 ZeroMQ Requirements
files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.13/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=windows
- --include=requirements/windows.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/windows.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/windows.in
- id: pip-tools-compile
alias: compile-ci-windows-crypto-3.9-requirements
name: Windows CI Py3.9 Crypto Requirements
@ -1059,23 +887,9 @@ repos:
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-windows-crypto-3.13-requirements
name: Windows CI Py3.13 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.13/windows-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=windows
- --out-prefix=windows
- --no-emit-index-url
- requirements/static/ci/crypto.in
# <---- CI Requirements --------------------------------------------------------------------------------------------
# ----- Cloud CI Requirements ------------------------------------------------------------------------------------->
- id: pip-tools-compile
alias: compile-ci-cloud-3.9-requirements
@ -1086,6 +900,11 @@ repos:
- -v
- --build-isolation
- --py-version=3.9
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/cloud.in
@ -1098,6 +917,11 @@ repos:
- -v
- --build-isolation
- --py-version=3.10
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/cloud.in
@ -1110,6 +934,11 @@ repos:
- -v
- --build-isolation
- --py-version=3.11
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/cloud.in
@ -1129,23 +958,6 @@ repos:
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/cloud.in
- id: pip-tools-compile
alias: compile-ci-cloud-3.13-requirements
name: Cloud CI Py3.13 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/(pkg/linux\.in|ci/((cloud|common)\.in|py3\.13/cloud\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/cloud.in
# <---- Cloud CI Requirements --------------------------------------------------------------------------------------
# ----- Doc CI Requirements --------------------------------------------------------------------------------------->
@ -1159,6 +971,8 @@ repos:
- --build-isolation
- --py-version=3.9
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/ci/docs.in
@ -1172,6 +986,8 @@ repos:
- --build-isolation
- --py-version=3.10
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/ci/docs.in
@ -1184,8 +1000,10 @@ repos:
- -v
- --build-isolation
- --py-version=3.11
- --no-emit-index-url
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/ci/docs.in
- id: pip-tools-compile
@ -1203,22 +1021,6 @@ repos:
- --no-emit-index-url
- requirements/static/ci/docs.in
- id: pip-tools-compile
alias: compile-doc-requirements
name: Docs CI Py3.13 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/ci/(docs|common|linux)\.in|static/pkg/linux\.in|static/pkg/.*/linux\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/ci/docs.in
# <---- Doc CI Requirements ----------------------------------------------------------------------------------------
# ----- Lint CI Requirements -------------------------------------------------------------------------------------->
@ -1233,6 +1035,11 @@ repos:
- --build-isolation
- --py-version=3.9
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/lint.in
@ -1246,19 +1053,29 @@ repos:
- --build-isolation
- --py-version=3.10
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/lint.in
- id: pip-tools-compile
alias: compile-ci-lint-3.11-requirements
name: Lint CI Py3.11 Requirements
files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.10/linux\.txt)))$
files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.11/linux\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.11
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/lint.in
@ -1280,24 +1097,6 @@ repos:
- --no-emit-index-url
- requirements/static/ci/lint.in
- id: pip-tools-compile
alias: compile-ci-lint-3.13-requirements
name: Lint CI Py3.13 Requirements
files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.13/linux\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/lint.in
# <---- Lint CI Requirements ---------------------------------------------------------------------------------------
# ----- Changelog ------------------------------------------------------------------------------------------------->
@ -1352,19 +1151,6 @@ repos:
- --platform=linux
- --no-emit-index-url
- requirements/static/ci/changelog.in
- id: pip-tools-compile
alias: compile-ci-changelog-3.13-requirements
name: Changelog CI Py3.13 Requirements
files: ^requirements/static/ci/(changelog\.in|py3\.13/(changelog|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --platform=linux
- --no-emit-index-url
- requirements/static/ci/changelog.in
# <---- Changelog --------------------------------------------------------------------------------------------------
# ----- Tools ---------------------------------------------------------------------------------------------------->
@ -1416,18 +1202,6 @@ repos:
- --no-emit-index-url
- requirements/static/ci/tools.in
- id: pip-tools-compile
alias: compile-ci-tools-3.13-requirements
name: Linux CI Py3.13 Tools Requirements
files: ^requirements/static/ci/(tools\.in|py3.13/(tools|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.13
- --no-emit-index-url
- requirements/static/ci/tools.in
- id: pip-tools-compile
alias: compile-ci-tools-virustotal-3.9-requirements
name: Linux CI Py3.9 Tools virustotal Requirements
@ -1467,16 +1241,6 @@ repos:
- -v
- --py-version=3.12
- requirements/static/ci/tools-virustotal.in
- id: pip-tools-compile
alias: compile-ci-tools-virustotal-3.13-requirements
name: Linux CI Py3.13 Tools virustotal Requirements
files: ^requirements/static/ci/(tools(-virustotal)?\.in|py3.13/(tools(-virustotal)?|linux)\.txt)$
pass_filenames: false
args:
- -v
- --py-version=3.13
- requirements/static/ci/tools-virustotal.in
# <---- Tools -----------------------------------------------------------------------------------------------------
# ----- Code Formatting ------------------------------------------------------------------------------------------->
@ -1505,10 +1269,10 @@ repos:
rev: 2.5.2
hooks:
- id: salt-rewrite
alias: rewrite-salt
name: Salt code auto-fixes
alias: rewrite-docstrings
name: Salt docstrings auto-fixes
files: ^salt/.*\.py$
args: [--silent, -F, fix_docstrings, -F, fix_warn_until]
args: [--silent, -F, fix_docstrings]
exclude: >
(?x)^(
salt/ext/.*
@ -1518,7 +1282,7 @@ repos:
alias: rewrite-tests
name: Rewrite Salt's Test Suite
files: ^tests/.*\.py$
args: [--silent, -E, fix_asserts, -E, fix_docstrings, -E, fix_tornado_imports]
args: [--silent, -E, fix_asserts, -E, fix_docstrings]
- repo: https://github.com/timothycrosley/isort
rev: 5.13.2
@ -1551,12 +1315,7 @@ repos:
hooks:
- id: blacken-docs
args: [--skip-errors]
files: ^(doc/)?.*\.(rst|md)
exclude: >
(?x)^(
rfcs/.*|
salt/ext/.*|
)$
files: ^doc/.*\.rst
additional_dependencies:
- black==24.2.0

View file

@ -452,7 +452,6 @@ disable=R,
line-too-long,
locally-disabled,
logging-format-interpolation,
logging-fstring-interpolation,
missing-docstring,
no-member,
protected-access,
@ -761,7 +760,4 @@ allowed-3rd-party-modules=msgpack,
pytestskipmarkers,
cryptography,
aiohttp,
pytest_timeout,
networkx,
urllib3,
idna
pytest_timeout

27
.rstcheck.cfg Normal file
View file

@ -0,0 +1,27 @@
[rstcheck]
ignore_directives=
automodule,
autoclass,
autofunction,
conf_proxy,
conf_log,
conf_master,
conf_minion,
releasestree,
jinja_ref,
salt:event
ignore_roles=
conf_master,
conf_minion,
conf_proxy,
conf_log,
formula_url,
issue,
pull,
blob,
jinja_ref
ignore_substitutions=
saltrepo,
repo_primary_branch,
windownload,
osxdownloadpy3

View file

@ -7,12 +7,121 @@ Versions are `MAJOR.PATCH`.
# Changelog
## 3007.1 (2024-05-19)
## 3006.10 (2025-03-19)
### Removed
- The ``salt.utils.psutil_compat`` was deprecated and now removed in Salt 3008. Please use the ``psutil`` module directly. [#66160](https://github.com/saltstack/salt/issues/66160)
- Remove psutil_compat.py file, which should have been removed when RHEL 6 EOL [#66467](https://github.com/saltstack/salt/issues/66467)
- Removed dependency on bsdmainutils package for Debian and Ubuntu [#67184](https://github.com/saltstack/salt/issues/67184)
### Deprecated
- Drop Arch Linux support [#66886](https://github.com/saltstack/salt/issues/66886)
- Removed support for end of life Python 3.7 and 3.8 from pre-commit and requirements [#67729](https://github.com/saltstack/salt/issues/67729)
### Fixed
- Commands on Windows are now prefixed with ``cmd /c`` so that compound
commands (commands separated by ``&&``) run properly when using ``runas`` [#44736](https://github.com/saltstack/salt/issues/44736)
- Issue 58969: Fixes an issue with `saltclass.expand_classes_in_order`
function where it was losing nested classes states during class
expansion. The logic now use `salt.utils.odict.OrderedDict` to keep
the inclusion ordering. [#58969](https://github.com/saltstack/salt/issues/58969)
- Fix issue with RunAs on Windows so that usernames of all numeric characters
are handled as strings [#59344](https://github.com/saltstack/salt/issues/59344)
- Fixed an issue on Windows where checking success_retcodes when using the
runas parameter would fail. Now success_retcodes are checked correctly [#59977](https://github.com/saltstack/salt/issues/59977)
- Fix an issue with cmd.script in Windows so that the exit code from a script will
be passed through to the retcode of the state [#60884](https://github.com/saltstack/salt/issues/60884)
- Fixed an issue uninstalling packages on Windows using pkg.removed where there
are multiple versions of the same software installed [#61001](https://github.com/saltstack/salt/issues/61001)
- Ensure file clients for runner, wheel, local and caller are available from the client_cache if called upon. [#61416](https://github.com/saltstack/salt/issues/61416)
- Convert stdin string to bytes regardless of stdin_raw_newlines [#62501](https://github.com/saltstack/salt/issues/62501)
- Issue 63933: Fixes an issue with `saltclass.expanded_dict_from_minion`
function where it was passing a reference to minion `dict` which was
overridden by nested classes during class expansion. Copy the node
definition with `copy.deepcopy` instead of passing a reference. [#63933](https://github.com/saltstack/salt/issues/63933)
- Fixed an intermittent issue with file.recurse where the state would
report failure even on success. Makes sure symlinks are created
after the target file is created [#64630](https://github.com/saltstack/salt/issues/64630)
- The 'profile' outputter does not crash with incorrectly formatted data [#65104](https://github.com/saltstack/salt/issues/65104)
- Updating version comparison for rpm and removed obsolete comparison methods for rpms [#65443](https://github.com/saltstack/salt/issues/65443)
- Fix batch mode hang indefinitely in some scenarios [#66249](https://github.com/saltstack/salt/issues/66249)
- Applying `selinux.fcontext_policy_present` to a shorter path than an existing entry now works [#66252](https://github.com/saltstack/salt/issues/66252)
- Correct bash-completion for Debian / Ubuntu [#66560](https://github.com/saltstack/salt/issues/66560)
- Fix minion config option startup_states [#66592](https://github.com/saltstack/salt/issues/66592)
- Fixed an issue with cmd.run with requirements when the shell is not the
default [#66596](https://github.com/saltstack/salt/issues/66596)
- Fixes an issue when getting account names using the get_name function in the
win_dacl.py salt util. Capability SIDs return ``None``. SIDs for deleted
accounts return the SID. SIDs for domain accounts where the system is not
connected to the domain return the SID. [#66637](https://github.com/saltstack/salt/issues/66637)
- Fixed an issue where ``status.master`` wasn't detecting a connection to the
specified master properly [#66716](https://github.com/saltstack/salt/issues/66716)
- Fixed ``win_wua.available`` when some of the update objects are empty CDispatch
objects. The ``available`` function no longer crashes [#66718](https://github.com/saltstack/salt/issues/66718)
- Clean up multiprocessing file handles on minion [#66726](https://github.com/saltstack/salt/issues/66726)
- Fixed nacl.keygen for not yet existing sk_file or pk_file [#66772](https://github.com/saltstack/salt/issues/66772)
- fix yaml output [#66783](https://github.com/saltstack/salt/issues/66783)
- Fixed an issue where enabling `grain_opts` in the minion config would cause
some core grains to be overwritten. [#66784](https://github.com/saltstack/salt/issues/66784)
- Fix an issue where files created using `salt.utils.atomicile.atomic_open()`
were created with restrictive permissions instead of respecting the umask. [#66786](https://github.com/saltstack/salt/issues/66786)
- Fix bad async_method name on AsyncPubClient class [#66789](https://github.com/saltstack/salt/issues/66789)
- Ensure Manjaro ARM reports the correct os_family of Arch. [#66796](https://github.com/saltstack/salt/issues/66796)
- Removed ``salt.utils.data.decode`` usage from the fileserver. This function was
necessary to support Python 2. This speeds up loading the list cache by 80-90x. [#66835](https://github.com/saltstack/salt/issues/66835)
- Issue 66837: Fixes an issue with the `network.local_port_tcp` function
where it was not parsing the IPv4 mapped IPv6 address correctly. The
``::ffff:`` is now removed and only the IP address is returned. [#66837](https://github.com/saltstack/salt/issues/66837)
- Better handling output of `systemctl --version` with salt.grains.core._systemd [#66856](https://github.com/saltstack/salt/issues/66856)
- Upgrade relenv to 0.17.3. This release includes python 3.10.15, openssl 3.2.3,
and fixes for pip 24.2. [#66858](https://github.com/saltstack/salt/issues/66858)
- Remove caching of 'systemctl status' in systemd_service to fix automatic daemon-reload for repeated invocations. [#66864](https://github.com/saltstack/salt/issues/66864)
- Added cryptogrpahy back to base.txt requirements as a dependency [#66883](https://github.com/saltstack/salt/issues/66883)
- Remove "perms" from `linux_acl.list_absent()` documentation [#66891](https://github.com/saltstack/salt/issues/66891)
- Ensure minion start event coroutines are run [#66932](https://github.com/saltstack/salt/issues/66932)
- Allow for secure-boot efivars directory having SecureBoot-xxx files, not directories with a data file [#66955](https://github.com/saltstack/salt/issues/66955)
- Removed the usage of wmic to get the disk and iscsi grains for Windows. The wmic
binary is being deprecated. [#66959](https://github.com/saltstack/salt/issues/66959)
- Fixes an issue with the LGPO module when trying to parse ADMX/ADML files
that have a space in the XMLNS url in the policyDefinitionsResources header. [#66992](https://github.com/saltstack/salt/issues/66992)
- Ensured global dunders like __env__ are defined in state module that are run in parallel on spawning platforms [#66996](https://github.com/saltstack/salt/issues/66996)
- Filtered unpicklable objects from the context dict when invoking states in parallel on spawning platforms to avoid a crash [#66999](https://github.com/saltstack/salt/issues/66999)
- Update for deprecation of hex in pygit2 1.15.0 and above [#67017](https://github.com/saltstack/salt/issues/67017)
- Fixed blob path for salt.ufw in the firewall tutorial documentation [#67019](https://github.com/saltstack/salt/issues/67019)
- Update locations for bootstrap scripts, to new infrastructure, GitHub releases for bootstrap [#67020](https://github.com/saltstack/salt/issues/67020)
- Constrained the localfs module to operations inside the specified cachedir [#67031](https://github.com/saltstack/salt/issues/67031)
- Added support for dnf5 (backport from 3007) and update to its new command syntax changes since 2023 [#67057](https://github.com/saltstack/salt/issues/67057)
- Recognise newer AMD GPU devices [#67058](https://github.com/saltstack/salt/issues/67058)
- Fix yumpkg module for Python<3.8 [#67091](https://github.com/saltstack/salt/issues/67091)
- Fixed an issue with making changes to the Windows Firewall when the
AllowInboundRules setting is set to True [#67122](https://github.com/saltstack/salt/issues/67122)
- Added support and tests for dnf5 to services_need_restart for yum packages [#67177](https://github.com/saltstack/salt/issues/67177)
- Use os.walk to traverse git branches, and no longer replace slash '/' in git branch names [#67722](https://github.com/saltstack/salt/issues/67722)
- Set correct virtual grain in systemd based Podman containers [#67733](https://github.com/saltstack/salt/issues/67733)
- Corrected option --upgrades for dnf[5] for function list_upgrades [#67743](https://github.com/saltstack/salt/issues/67743)
- Fix salt-ssh for hosts that use password as the SSH password [#67754](https://github.com/saltstack/salt/issues/67754)
- Corrected dnf5 option --downloadonly for dnf5 install [#67769](https://github.com/saltstack/salt/issues/67769)
- Upgrade relenv to 0.18.1. Which includes python 3.10.16 and openssl 3.2.4.
Openssl 3.2.4 fixes CVE-2024-12797 and CVE-2024-13176 [#67792](https://github.com/saltstack/salt/issues/67792)
- Update jinja2 to 3.1.5, advisories GHSA-q2x7-8rv6-6q7h and GHSA-gmj6-6f8f-6699
Update urllib3 to 1.26.18 advisories GHSA-34jh-p97f-mpxf [#67794](https://github.com/saltstack/salt/issues/67794)
- Ensure salt-cloud has salt-master dependency on Debian and Ubuntu [#67810](https://github.com/saltstack/salt/issues/67810)
- Fix traceback from _send_req_sync method on minion by raising proper timeout error. [#67891](https://github.com/saltstack/salt/issues/67891)
### Added
- Issue #33669: Fixes an issue with the ``ini_managed`` execution module
where it would always wrap the separator with spaces. Adds a new parameter
named ``no_spaces`` that will not warp the separator with spaces. [#33669](https://github.com/saltstack/salt/issues/33669)
- Enhance json.find_json to return json even when it contains text on the same line of the last closing parenthesis [#67023](https://github.com/saltstack/salt/issues/67023)
## 3006.9 (2024-07-29)
@ -37,17 +146,6 @@ Versions are `MAJOR.PATCH`.
Strips whitespace from the return when using ``runas``. [#61166](https://github.com/saltstack/salt/issues/61166)
- Fixed the win_lgpo_netsh salt util to handle non-English systems. This was a
rewrite to use PowerShell instead of netsh to make the changes on the system [#61534](https://github.com/saltstack/salt/issues/61534)
- Fix typo in nftables module to ensure unique nft family values [#65295](https://github.com/saltstack/salt/issues/65295)
- Corrected x509_v2 CRL creation `last_update` and `next_update` values when system timezone is not UTC [#65837](https://github.com/saltstack/salt/issues/65837)
- Fix for NoneType can't be used in 'await' expression error. [#66177](https://github.com/saltstack/salt/issues/66177)
- Log "Publish server binding pub to" messages to debug instead of error level. [#66179](https://github.com/saltstack/salt/issues/66179)
- Fix syndic startup by making payload handler a coroutine [#66237](https://github.com/saltstack/salt/issues/66237)
- Fixed `aptpkg.remove` "unable to locate package" error for non-existent package [#66260](https://github.com/saltstack/salt/issues/66260)
- Fixed pillar.ls doesn't accept kwargs [#66262](https://github.com/saltstack/salt/issues/66262)
- Fix cache directory setting in Master Cluster tutorial [#66264](https://github.com/saltstack/salt/issues/66264)
- Change log level of successful master cluster key exchange from error to info. [#66266](https://github.com/saltstack/salt/issues/66266)
- Made `file.managed` skip download of a remote source if the managed file already exists with the correct hash [#66342](https://github.com/saltstack/salt/issues/66342)
- Fixed nftables.build_rule breaks ipv6 rules by using the wrong syntax for source and destination addresses [#66382](https://github.com/saltstack/salt/issues/66382)
- file.replace and file.search work properly with /proc files [#63102](https://github.com/saltstack/salt/issues/63102)
- Fix utf8 handling in 'pass' renderer [#64300](https://github.com/saltstack/salt/issues/64300)
- Fixed incorrect version argument will be ignored for multiple package targets warning when using pkgs argument to yumpkg module. [#64563](https://github.com/saltstack/salt/issues/64563)
@ -84,11 +182,6 @@ Versions are `MAJOR.PATCH`.
### Added
- Added the ability to pass a version of chocolatey to install to the
chocolatey.bootstrap function. Also added states to bootstrap and
unbootstrap chocolatey. [#64722](https://github.com/saltstack/salt/issues/64722)
- Add Ubuntu 24.04 support [#66180](https://github.com/saltstack/salt/issues/66180)
- Add Fedora 40 support, replacing Fedora 39 [#66300](https://github.com/saltstack/salt/issues/66300)
- Add Ubuntu 24.04 support [#66180](https://github.com/saltstack/salt/issues/66180)
- Add Fedora 40 support, replacing Fedora 39 [#66300](https://github.com/saltstack/salt/issues/66300)
- Build RPM packages with Rocky Linux 9 (instead of CentOS Stream 9) [#66624](https://github.com/saltstack/salt/issues/66624)
@ -96,8 +189,6 @@ Versions are `MAJOR.PATCH`.
### Security
- Bump to `pydantic==2.6.4` due to https://github.com/advisories/GHSA-mr82-8j83-vxmv [#66433](https://github.com/saltstack/salt/issues/66433)
- Bump to ``jinja2==3.1.4`` due to https://github.com/advisories/GHSA-h75v-3vvj-5mfj [#66488](https://github.com/saltstack/salt/issues/66488)
- Bump to ``jinja2==3.1.4`` due to https://github.com/advisories/GHSA-h75v-3vvj-5mfj [#66488](https://github.com/saltstack/salt/issues/66488)
- CVE-2024-37088 salt-call will fail with exit code 1 if bad pillar data is
encountered. [#66702](https://github.com/saltstack/salt/issues/66702)
@ -184,358 +275,6 @@ Versions are `MAJOR.PATCH`.
- Bump to `aiohttp==3.9.4` due to https://github.com/advisories/GHSA-7gpw-8wmc-pm8g [#66411](https://github.com/saltstack/salt/issues/66411)
## 3007.0 (2024-03-03)
### Removed
- Removed RHEL 5 support since long since end-of-lifed [#62520](https://github.com/saltstack/salt/issues/62520)
- Removing Azure-Cloud modules from the code base. [#64322](https://github.com/saltstack/salt/issues/64322)
- Dropped Python 3.7 support since it's EOL in 27 Jun 2023 [#64417](https://github.com/saltstack/salt/issues/64417)
- Remove salt.payload.Serial [#64459](https://github.com/saltstack/salt/issues/64459)
- Remove netmiko_conn and pyeapi_conn from salt.modules.napalm_mod [#64460](https://github.com/saltstack/salt/issues/64460)
- Removed 'transport' arg from salt.utils.event.get_event [#64461](https://github.com/saltstack/salt/issues/64461)
- Removed the usage of retired Linode API v3 from Salt Cloud [#64517](https://github.com/saltstack/salt/issues/64517)
### Deprecated
- Deprecate all Proxmox cloud modules [#64224](https://github.com/saltstack/salt/issues/64224)
- Deprecate all the Vault modules in favor of the Vault Salt Extension https://github.com/salt-extensions/saltext-vault. The Vault modules will be removed in Salt core in 3009.0. [#64893](https://github.com/saltstack/salt/issues/64893)
- Deprecate all the Docker modules in favor of the Docker Salt Extension https://github.com/saltstack/saltext-docker. The Docker modules will be removed in Salt core in 3009.0. [#64894](https://github.com/saltstack/salt/issues/64894)
- Deprecate all the Zabbix modules in favor of the Zabbix Salt Extension https://github.com/salt-extensions/saltext-zabbix. The Zabbix modules will be removed in Salt core in 3009.0. [#64896](https://github.com/saltstack/salt/issues/64896)
- Deprecate all the Apache modules in favor of the Apache Salt Extension https://github.com/salt-extensions/saltext-apache. The Apache modules will be removed in Salt core in 3009.0. [#64909](https://github.com/saltstack/salt/issues/64909)
- Deprecation warning for Salt's backport of ``OrderedDict`` class which will be removed in 3009 [#65542](https://github.com/saltstack/salt/issues/65542)
- Deprecate Kubernetes modules for move to saltext-kubernetes in version 3009 [#65565](https://github.com/saltstack/salt/issues/65565)
- Deprecated all Pushover modules in favor of the Salt Extension at https://github.com/salt-extensions/saltext-pushover. The Pushover modules will be removed from Salt core in 3009.0 [#65567](https://github.com/saltstack/salt/issues/65567)
- Removed deprecated code:
* All of ``salt/log/`` which has been on a deprecation path for a long time.
* Some of the logging handlers found in ``salt/_logging/handlers`` have been removed since the standard library provides
them.
* Removed the deprecated ``salt/modules/cassandra_mod.py`` module and any tests for it.
* Removed the deprecated ``salt/returners/cassandra_return.py`` module and any tests for it.
* Removed the deprecated ``salt/returners/django_return.py`` module and any tests for it. [#65986](https://github.com/saltstack/salt/issues/65986)
### Changed
- Masquerade property will not default to false turning off masquerade if not specified. [#53120](https://github.com/saltstack/salt/issues/53120)
- Addressed Python 3.11 deprecations:
* Switch to `FullArgSpec` since Py 3.11 no longer has `ArgSpec`, deprecated since Py 3.0
* Stopped using the deprecated `cgi` module.
* Stopped using the deprecated `pipes` module
* Stopped using the deprecated `imp` module [#64457](https://github.com/saltstack/salt/issues/64457)
- changed 'gpg_decrypt_must_succeed' default from False to True [#64462](https://github.com/saltstack/salt/issues/64462)
### Fixed
- When an NFS or FUSE mount fails to unmount when mount options have changed, try again with a lazy umount before mounting again. [#18907](https://github.com/saltstack/salt/issues/18907)
- fix autoaccept gpg keys by supporting it in refresh_db module [#42039](https://github.com/saltstack/salt/issues/42039)
- Made cmd.script work with files from the fileserver via salt-ssh [#48067](https://github.com/saltstack/salt/issues/48067)
- Made slsutil.renderer work with salt-ssh [#50196](https://github.com/saltstack/salt/issues/50196)
- Fixed defaults.merge is not available when using salt-ssh [#51605](https://github.com/saltstack/salt/issues/51605)
- Fix extfs.mkfs missing parameter handling for -C, -d, and -e [#51858](https://github.com/saltstack/salt/issues/51858)
- Fixed Salt master does not renew token [#51986](https://github.com/saltstack/salt/issues/51986)
- Fixed salt-ssh continues state/pillar rendering with incorrect data when an exception is raised by a module on the target [#52452](https://github.com/saltstack/salt/issues/52452)
- Fix extfs.tune has 'reserved' documented twice and is missing the 'reserved_percentage' keyword argument [#54426](https://github.com/saltstack/salt/issues/54426)
- Fix the ability of the 'selinux.port_policy_present' state to modify. [#55687](https://github.com/saltstack/salt/issues/55687)
- Fixed config.get does not support merge option with salt-ssh [#56441](https://github.com/saltstack/salt/issues/56441)
- Removed an unused assignment in file.patch [#57204](https://github.com/saltstack/salt/issues/57204)
- Fixed vault module fetching more than one secret in one run with single-use tokens [#57561](https://github.com/saltstack/salt/issues/57561)
- Use brew path from which in mac_brew_pkg module and rely on _homebrew_bin() everytime [#57946](https://github.com/saltstack/salt/issues/57946)
- Fixed Vault verify option to work on minions when only specified in master config [#58174](https://github.com/saltstack/salt/issues/58174)
- Fixed vault command errors configured locally [#58580](https://github.com/saltstack/salt/issues/58580)
- Fixed issue with basic auth causing invalid header error and 401 Bad Request, by using HTTPBasicAuthHandler instead of header. [#58936](https://github.com/saltstack/salt/issues/58936)
- Make the LXD module work with pyLXD > 2.10 [#59514](https://github.com/saltstack/salt/issues/59514)
- Return error if patch file passed to state file.patch is malformed. [#59806](https://github.com/saltstack/salt/issues/59806)
- Handle failure and error information from tuned module/state [#60500](https://github.com/saltstack/salt/issues/60500)
- Fixed sdb.get_or_set_hash with Vault single-use tokens [#60779](https://github.com/saltstack/salt/issues/60779)
- Fixed state.test does not work with salt-ssh [#61100](https://github.com/saltstack/salt/issues/61100)
- Made slsutil.findup work with salt-ssh [#61143](https://github.com/saltstack/salt/issues/61143)
- Allow all primitive grain types for autosign_grains [#61416](https://github.com/saltstack/salt/issues/61416), [#63708](https://github.com/saltstack/salt/issues/63708)
- `ipset.new_set` no longer fails when creating a set type that uses the `family` create option [#61620](https://github.com/saltstack/salt/issues/61620)
- Fixed Vault session storage to allow unlimited use tokens [#62380](https://github.com/saltstack/salt/issues/62380)
- fix the efi grain on FreeBSD [#63052](https://github.com/saltstack/salt/issues/63052)
- Fixed gpg.receive_keys returns success on failed import [#63144](https://github.com/saltstack/salt/issues/63144)
- Fixed GPG state module always reports success without changes [#63153](https://github.com/saltstack/salt/issues/63153)
- Fixed GPG state module does not respect test mode [#63156](https://github.com/saltstack/salt/issues/63156)
- Fixed gpg.absent with gnupghome/user, fixed gpg.delete_key with gnupghome [#63159](https://github.com/saltstack/salt/issues/63159)
- Fixed service module does not handle enable/disable if systemd service is an alias [#63214](https://github.com/saltstack/salt/issues/63214)
- Made x509_v2 compound match detection use new runner instead of peer publishing [#63278](https://github.com/saltstack/salt/issues/63278)
- Need to make sure we update __pillar__ during a pillar refresh to ensure that process_beacons has the updated beacons loaded from pillar. [#63583](https://github.com/saltstack/salt/issues/63583)
- This implements the vpc_uuid parameter when creating a droplet. This parameter selects the correct virtual private cloud (private network interface). [#63714](https://github.com/saltstack/salt/issues/63714)
- pkg.installed no longer reports failure when installing packages that are installed via the task manager [#63767](https://github.com/saltstack/salt/issues/63767)
- mac_xattr.list and mac_xattr.read will replace undecode-able bytes to avoid raising CommandExecutionError. [#63779](https://github.com/saltstack/salt/issues/63779) [#63779](https://github.com/saltstack/salt/issues/63779)
- Fix aptpkg.latest_version performance, reducing number of times to 'shell out' [#63982](https://github.com/saltstack/salt/issues/63982)
- Added option to use a fresh connection for mysql cache [#63991](https://github.com/saltstack/salt/issues/63991)
- [lxd] Fixed a bug in `container_create` which prevented devices which are not of type `disk` to be correctly created and added to the container when passed via the `devices` parameter. [#63996](https://github.com/saltstack/salt/issues/63996)
- Skipped the `isfile` check to greatly increase speed of reading minion keys for systems with a large number of minions on slow file storage [#64260](https://github.com/saltstack/salt/issues/64260)
- Fix utf8 handling in 'pass' renderer [#64300](https://github.com/saltstack/salt/issues/64300)
- Upgade tornado to 6.3.2 [#64305](https://github.com/saltstack/salt/issues/64305)
- Prevent errors due missing 'transactional_update.apply' on SLE Micro and MicroOS. [#64369](https://github.com/saltstack/salt/issues/64369)
- Fix 'unable to unmount' failure to return False result instead of None [#64420](https://github.com/saltstack/salt/issues/64420)
- Fixed issue uninstalling duplicate packages in ``win_appx`` execution module [#64450](https://github.com/saltstack/salt/issues/64450)
- Clean up tech debt, IPC now uses tcp transport. [#64488](https://github.com/saltstack/salt/issues/64488)
- Made salt-ssh more strict when handling unexpected situations and state.* wrappers treat a remote exception as failure, excluded salt-ssh error returns from mine [#64531](https://github.com/saltstack/salt/issues/64531)
- Fix flaky test for LazyLoader with isolated mocking of threading.RLock [#64567](https://github.com/saltstack/salt/issues/64567)
- Fix possible `KeyError` exceptions in `salt.utils.user.get_group_dict`
while reading improper duplicated GID assigned for the user. [#64599](https://github.com/saltstack/salt/issues/64599)
- changed vm_config() to deep-merge vm_overrides of specific VM, instead of simple-merging the whole vm_overrides [#64610](https://github.com/saltstack/salt/issues/64610)
- Fix the way Salt tries to get the Homebrew's prefix
The first attempt to get the Homebrew's prefix is to look for
the `HOMEBREW_PREFIX` environment variable. If it's not set, then
Salt tries to get the prefix from the `brew` command. However, the
`brew` command can fail. So a last attempt is made to get the
prefix by guessing the installation path. [#64924](https://github.com/saltstack/salt/issues/64924)
- Add missing MySQL Grant SERVICE_CONNECTION_ADMIN to mysql module. [#64934](https://github.com/saltstack/salt/issues/64934)
- Fixed slsutil.update with salt-ssh during template rendering [#65067](https://github.com/saltstack/salt/issues/65067)
- Keep track when an included file only includes sls files but is a requisite. [#65080](https://github.com/saltstack/salt/issues/65080)
- Fixed `gpg.present` succeeds when the keyserver is unreachable [#65169](https://github.com/saltstack/salt/issues/65169)
- Fix typo in nftables module to ensure unique nft family values [#65295](https://github.com/saltstack/salt/issues/65295)
- Dereference symlinks to set proper __cli opt [#65435](https://github.com/saltstack/salt/issues/65435)
- Made salt-ssh merge master top returns for the same environment [#65480](https://github.com/saltstack/salt/issues/65480)
- Account for situation where the metadata grain fails because the AWS environment requires an authentication token to query the metadata URL. [#65513](https://github.com/saltstack/salt/issues/65513)
- Improve the condition of overriding target for pip with VENV_PIP_TARGET environment variable. [#65562](https://github.com/saltstack/salt/issues/65562)
- Added SSH wrapper for logmod [#65630](https://github.com/saltstack/salt/issues/65630)
- Include changes in the results when schedule.present state is run with test=True. [#65652](https://github.com/saltstack/salt/issues/65652)
- Fix extfs.tune doesn't pass retcode to module.run [#65686](https://github.com/saltstack/salt/issues/65686)
- Return an error message when the DNS plugin is not supported [#65739](https://github.com/saltstack/salt/issues/65739)
- Execution modules have access to regular fileclient durring pillar rendering. [#66124](https://github.com/saltstack/salt/issues/66124)
- Fixed a issue with server channel where a minion's public key
would be rejected if it contained a final newline character. [#66126](https://github.com/saltstack/salt/issues/66126)
### Added
- Allowed publishing to regular minions from the SSH wrapper [#40943](https://github.com/saltstack/salt/issues/40943)
- Added syncing of custom salt-ssh wrappers [#45450](https://github.com/saltstack/salt/issues/45450)
- Made salt-ssh sync custom utils [#53666](https://github.com/saltstack/salt/issues/53666)
- Add ability to use file.managed style check_cmd in file.serialize [#53982](https://github.com/saltstack/salt/issues/53982)
- Revised use of deprecated net-tools and added support for ip neighbour with IPv4 ip_neighs, IPv6 ip_neighs6 [#57541](https://github.com/saltstack/salt/issues/57541)
- Added password support to Redis returner. [#58044](https://github.com/saltstack/salt/issues/58044)
- Added a state (win_task) for managing scheduled tasks on Windows [#59037](https://github.com/saltstack/salt/issues/59037)
- Added keyring param to gpg modules [#59783](https://github.com/saltstack/salt/issues/59783)
- Added new grain to detect the Salt package type: onedir, pip or system [#62589](https://github.com/saltstack/salt/issues/62589)
- Added Vault AppRole and identity issuance to minions [#62823](https://github.com/saltstack/salt/issues/62823)
- Added Vault AppRole auth mount path configuration option [#62825](https://github.com/saltstack/salt/issues/62825)
- Added distribution of Vault authentication details via response wrapping [#62828](https://github.com/saltstack/salt/issues/62828)
- Add salt package type information. Either onedir, pip or system. [#62961](https://github.com/saltstack/salt/issues/62961)
- Added signature verification to file.managed/archive.extracted [#63143](https://github.com/saltstack/salt/issues/63143)
- Added signed_by_any/signed_by_all parameters to gpg.verify [#63166](https://github.com/saltstack/salt/issues/63166)
- Added match runner [#63278](https://github.com/saltstack/salt/issues/63278)
- Added Vault token lifecycle management [#63406](https://github.com/saltstack/salt/issues/63406)
- adding new call for openscap xccdf eval supporting new parameters [#63416](https://github.com/saltstack/salt/issues/63416)
- Added Vault lease management utility [#63440](https://github.com/saltstack/salt/issues/63440)
- implement removal of ptf packages in zypper pkg module [#63442](https://github.com/saltstack/salt/issues/63442)
- add JUnit output for saltcheck [#63463](https://github.com/saltstack/salt/issues/63463)
- Add ability for file.keyvalue to create a file if it doesn't exist [#63545](https://github.com/saltstack/salt/issues/63545)
- added cleanup of temporary mountpoint dir for macpackage installed state [#63905](https://github.com/saltstack/salt/issues/63905)
- Add pkg.installed show installable version in test mode [#63985](https://github.com/saltstack/salt/issues/63985)
- Added patch option to Vault SDB driver [#64096](https://github.com/saltstack/salt/issues/64096)
- Added flags to create local users and groups [#64256](https://github.com/saltstack/salt/issues/64256)
- Added inline specification of trusted CA root certificate for Vault [#64379](https://github.com/saltstack/salt/issues/64379)
- Add ability to return False result in test mode of configurable_test_state [#64418](https://github.com/saltstack/salt/issues/64418)
- Switched Salt's onedir Python version to 3.11 [#64457](https://github.com/saltstack/salt/issues/64457)
- Added support for dnf5 and its new command syntax [#64532](https://github.com/saltstack/salt/issues/64532)
- Adding a new decorator to indicate when a module is deprecated in favor of a Salt extension. [#64569](https://github.com/saltstack/salt/issues/64569)
- Add jq-esque to_entries and from_entries functions [#64600](https://github.com/saltstack/salt/issues/64600)
- Added ability to use PYTHONWARNINGS=ignore to silence deprecation warnings. [#64660](https://github.com/saltstack/salt/issues/64660)
- Add follow_symlinks to file.symlink exec module to switch to os.path.lexists when False [#64665](https://github.com/saltstack/salt/issues/64665)
- Strenghten Salt's HA capabilities with master clustering. [#64939](https://github.com/saltstack/salt/issues/64939)
- Added win_appx state and execution modules for managing Microsoft Store apps and deprovisioning them from systems [#64978](https://github.com/saltstack/salt/issues/64978)
- Add support for show_jid to salt-run
Adds support for show_jid master config option to salt-run, so its behaviour matches the salt cli command. [#65008](https://github.com/saltstack/salt/issues/65008)
- Add ability to remove packages by wildcard via apt execution module [#65220](https://github.com/saltstack/salt/issues/65220)
- Added support for master top modules on masterless minions [#65479](https://github.com/saltstack/salt/issues/65479)
- Allowed accessing the regular mine from the SSH wrapper [#65645](https://github.com/saltstack/salt/issues/65645)
- Allow enabling backup for Linode in Salt Cloud [#65697](https://github.com/saltstack/salt/issues/65697)
- Add a backup schedule setter fFunction for Linode VMs [#65713](https://github.com/saltstack/salt/issues/65713)
- Add acme support for manual plugin hooks [#65744](https://github.com/saltstack/salt/issues/65744)
### Security
- Upgrade to `tornado>=6.3.3` due to https://github.com/advisories/GHSA-qppv-j76h-2rpx [#64989](https://github.com/saltstack/salt/issues/64989)
- Update to `gitpython>=3.1.35` due to https://github.com/advisories/GHSA-wfm5-v35h-vwf4 and https://github.com/advisories/GHSA-cwvm-v4w8-q58c [#65137](https://github.com/saltstack/salt/issues/65137)
## 3007.0rc1 (2024-01-02)
### Removed
- Removed RHEL 5 support since long since end-of-lifed [#62520](https://github.com/saltstack/salt/issues/62520)
- Removing Azure-Cloud modules from the code base. [#64322](https://github.com/saltstack/salt/issues/64322)
- Dropped Python 3.7 support since it's EOL in 27 Jun 2023 [#64417](https://github.com/saltstack/salt/issues/64417)
- Remove salt.payload.Serial [#64459](https://github.com/saltstack/salt/issues/64459)
- Remove netmiko_conn and pyeapi_conn from salt.modules.napalm_mod [#64460](https://github.com/saltstack/salt/issues/64460)
- Removed 'transport' arg from salt.utils.event.get_event [#64461](https://github.com/saltstack/salt/issues/64461)
- Removed the usage of retired Linode API v3 from Salt Cloud [#64517](https://github.com/saltstack/salt/issues/64517)
### Deprecated
- Deprecate all Proxmox cloud modules [#64224](https://github.com/saltstack/salt/issues/64224)
- Deprecate all the Vault modules in favor of the Vault Salt Extension https://github.com/salt-extensions/saltext-vault. The Vault modules will be removed in Salt core in 3009.0. [#64893](https://github.com/saltstack/salt/issues/64893)
- Deprecate all the Docker modules in favor of the Docker Salt Extension https://github.com/saltstack/saltext-docker. The Docker modules will be removed in Salt core in 3009.0. [#64894](https://github.com/saltstack/salt/issues/64894)
- Deprecate all the Zabbix modules in favor of the Zabbix Salt Extension https://github.com/salt-extensions/saltext-zabbix. The Zabbix modules will be removed in Salt core in 3009.0. [#64896](https://github.com/saltstack/salt/issues/64896)
- Deprecate all the Apache modules in favor of the Apache Salt Extension https://github.com/salt-extensions/saltext-apache. The Apache modules will be removed in Salt core in 3009.0. [#64909](https://github.com/saltstack/salt/issues/64909)
- Deprecation warning for Salt's backport of ``OrderedDict`` class which will be removed in 3009 [#65542](https://github.com/saltstack/salt/issues/65542)
- Deprecate Kubernetes modules for move to saltext-kubernetes in version 3009 [#65565](https://github.com/saltstack/salt/issues/65565)
- Deprecated all Pushover modules in favor of the Salt Extension at https://github.com/salt-extensions/saltext-pushover. The Pushover modules will be removed from Salt core in 3009.0 [#65567](https://github.com/saltstack/salt/issues/65567)
### Changed
- Masquerade property will not default to false turning off masquerade if not specified. [#53120](https://github.com/saltstack/salt/issues/53120)
- Addressed Python 3.11 deprecations:
* Switch to `FullArgSpec` since Py 3.11 no longer has `ArgSpec`, deprecated since Py 3.0
* Stopped using the deprecated `cgi` module.
* Stopped using the deprecated `pipes` module
* Stopped using the deprecated `imp` module [#64457](https://github.com/saltstack/salt/issues/64457)
- changed 'gpg_decrypt_must_succeed' default from False to True [#64462](https://github.com/saltstack/salt/issues/64462)
### Fixed
- When an NFS or FUSE mount fails to unmount when mount options have changed, try again with a lazy umount before mounting again. [#18907](https://github.com/saltstack/salt/issues/18907)
- fix autoaccept gpg keys by supporting it in refresh_db module [#42039](https://github.com/saltstack/salt/issues/42039)
- Made cmd.script work with files from the fileserver via salt-ssh [#48067](https://github.com/saltstack/salt/issues/48067)
- Made slsutil.renderer work with salt-ssh [#50196](https://github.com/saltstack/salt/issues/50196)
- Fixed defaults.merge is not available when using salt-ssh [#51605](https://github.com/saltstack/salt/issues/51605)
- Fix extfs.mkfs missing parameter handling for -C, -d, and -e [#51858](https://github.com/saltstack/salt/issues/51858)
- Fixed Salt master does not renew token [#51986](https://github.com/saltstack/salt/issues/51986)
- Fixed salt-ssh continues state/pillar rendering with incorrect data when an exception is raised by a module on the target [#52452](https://github.com/saltstack/salt/issues/52452)
- Fix extfs.tune has 'reserved' documented twice and is missing the 'reserved_percentage' keyword argument [#54426](https://github.com/saltstack/salt/issues/54426)
- Fix the ability of the 'selinux.port_policy_present' state to modify. [#55687](https://github.com/saltstack/salt/issues/55687)
- Fixed config.get does not support merge option with salt-ssh [#56441](https://github.com/saltstack/salt/issues/56441)
- Removed an unused assignment in file.patch [#57204](https://github.com/saltstack/salt/issues/57204)
- Fixed vault module fetching more than one secret in one run with single-use tokens [#57561](https://github.com/saltstack/salt/issues/57561)
- Use brew path from which in mac_brew_pkg module and rely on _homebrew_bin() everytime [#57946](https://github.com/saltstack/salt/issues/57946)
- Fixed Vault verify option to work on minions when only specified in master config [#58174](https://github.com/saltstack/salt/issues/58174)
- Fixed vault command errors configured locally [#58580](https://github.com/saltstack/salt/issues/58580)
- Fixed issue with basic auth causing invalid header error and 401 Bad Request, by using HTTPBasicAuthHandler instead of header. [#58936](https://github.com/saltstack/salt/issues/58936)
- Make the LXD module work with pyLXD > 2.10 [#59514](https://github.com/saltstack/salt/issues/59514)
- Return error if patch file passed to state file.patch is malformed. [#59806](https://github.com/saltstack/salt/issues/59806)
- Handle failure and error information from tuned module/state [#60500](https://github.com/saltstack/salt/issues/60500)
- Fixed sdb.get_or_set_hash with Vault single-use tokens [#60779](https://github.com/saltstack/salt/issues/60779)
- Fixed state.test does not work with salt-ssh [#61100](https://github.com/saltstack/salt/issues/61100)
- Made slsutil.findup work with salt-ssh [#61143](https://github.com/saltstack/salt/issues/61143)
- Allow all primitive grain types for autosign_grains [#61416](https://github.com/saltstack/salt/issues/61416), [#63708](https://github.com/saltstack/salt/issues/63708)
- `ipset.new_set` no longer fails when creating a set type that uses the `family` create option [#61620](https://github.com/saltstack/salt/issues/61620)
- Fixed Vault session storage to allow unlimited use tokens [#62380](https://github.com/saltstack/salt/issues/62380)
- fix the efi grain on FreeBSD [#63052](https://github.com/saltstack/salt/issues/63052)
- Fixed gpg.receive_keys returns success on failed import [#63144](https://github.com/saltstack/salt/issues/63144)
- Fixed GPG state module always reports success without changes [#63153](https://github.com/saltstack/salt/issues/63153)
- Fixed GPG state module does not respect test mode [#63156](https://github.com/saltstack/salt/issues/63156)
- Fixed gpg.absent with gnupghome/user, fixed gpg.delete_key with gnupghome [#63159](https://github.com/saltstack/salt/issues/63159)
- Fixed service module does not handle enable/disable if systemd service is an alias [#63214](https://github.com/saltstack/salt/issues/63214)
- Made x509_v2 compound match detection use new runner instead of peer publishing [#63278](https://github.com/saltstack/salt/issues/63278)
- Need to make sure we update __pillar__ during a pillar refresh to ensure that process_beacons has the updated beacons loaded from pillar. [#63583](https://github.com/saltstack/salt/issues/63583)
- This implements the vpc_uuid parameter when creating a droplet. This parameter selects the correct virtual private cloud (private network interface). [#63714](https://github.com/saltstack/salt/issues/63714)
- pkg.installed no longer reports failure when installing packages that are installed via the task manager [#63767](https://github.com/saltstack/salt/issues/63767)
- mac_xattr.list and mac_xattr.read will replace undecode-able bytes to avoid raising CommandExecutionError. [#63779](https://github.com/saltstack/salt/issues/63779) [#63779](https://github.com/saltstack/salt/issues/63779)
- Fix aptpkg.latest_version performance, reducing number of times to 'shell out' [#63982](https://github.com/saltstack/salt/issues/63982)
- Added option to use a fresh connection for mysql cache [#63991](https://github.com/saltstack/salt/issues/63991)
- [lxd] Fixed a bug in `container_create` which prevented devices which are not of type `disk` to be correctly created and added to the container when passed via the `devices` parameter. [#63996](https://github.com/saltstack/salt/issues/63996)
- Skipped the `isfile` check to greatly increase speed of reading minion keys for systems with a large number of minions on slow file storage [#64260](https://github.com/saltstack/salt/issues/64260)
- Fix utf8 handling in 'pass' renderer [#64300](https://github.com/saltstack/salt/issues/64300)
- Upgade tornado to 6.3.2 [#64305](https://github.com/saltstack/salt/issues/64305)
- Prevent errors due missing 'transactional_update.apply' on SLE Micro and MicroOS. [#64369](https://github.com/saltstack/salt/issues/64369)
- Fix 'unable to unmount' failure to return False result instead of None [#64420](https://github.com/saltstack/salt/issues/64420)
- Fixed issue uninstalling duplicate packages in ``win_appx`` execution module [#64450](https://github.com/saltstack/salt/issues/64450)
- Clean up tech debt, IPC now uses tcp transport. [#64488](https://github.com/saltstack/salt/issues/64488)
- Made salt-ssh more strict when handling unexpected situations and state.* wrappers treat a remote exception as failure, excluded salt-ssh error returns from mine [#64531](https://github.com/saltstack/salt/issues/64531)
- Fix flaky test for LazyLoader with isolated mocking of threading.RLock [#64567](https://github.com/saltstack/salt/issues/64567)
- Fix possible `KeyError` exceptions in `salt.utils.user.get_group_dict`
while reading improper duplicated GID assigned for the user. [#64599](https://github.com/saltstack/salt/issues/64599)
- changed vm_config() to deep-merge vm_overrides of specific VM, instead of simple-merging the whole vm_overrides [#64610](https://github.com/saltstack/salt/issues/64610)
- Fix the way Salt tries to get the Homebrew's prefix
The first attempt to get the Homebrew's prefix is to look for
the `HOMEBREW_PREFIX` environment variable. If it's not set, then
Salt tries to get the prefix from the `brew` command. However, the
`brew` command can fail. So a last attempt is made to get the
prefix by guessing the installation path. [#64924](https://github.com/saltstack/salt/issues/64924)
- Add missing MySQL Grant SERVICE_CONNECTION_ADMIN to mysql module. [#64934](https://github.com/saltstack/salt/issues/64934)
- Fixed slsutil.update with salt-ssh during template rendering [#65067](https://github.com/saltstack/salt/issues/65067)
- Keep track when an included file only includes sls files but is a requisite. [#65080](https://github.com/saltstack/salt/issues/65080)
- Fixed `gpg.present` succeeds when the keyserver is unreachable [#65169](https://github.com/saltstack/salt/issues/65169)
- Fix issue with openscap when the error was outside the expected scope. It now
returns failed with the error code and the error [#65193](https://github.com/saltstack/salt/issues/65193)
- Fix typo in nftables module to ensure unique nft family values [#65295](https://github.com/saltstack/salt/issues/65295)
- Dereference symlinks to set proper __cli opt [#65435](https://github.com/saltstack/salt/issues/65435)
- Made salt-ssh merge master top returns for the same environment [#65480](https://github.com/saltstack/salt/issues/65480)
- Account for situation where the metadata grain fails because the AWS environment requires an authentication token to query the metadata URL. [#65513](https://github.com/saltstack/salt/issues/65513)
- Improve the condition of overriding target for pip with VENV_PIP_TARGET environment variable. [#65562](https://github.com/saltstack/salt/issues/65562)
- Added SSH wrapper for logmod [#65630](https://github.com/saltstack/salt/issues/65630)
- Include changes in the results when schedule.present state is run with test=True. [#65652](https://github.com/saltstack/salt/issues/65652)
- Fixed Salt-SSH pillar rendering and state rendering with nested SSH calls when called via saltutil.cmd or in an orchestration [#65670](https://github.com/saltstack/salt/issues/65670)
- Fix extfs.tune doesn't pass retcode to module.run [#65686](https://github.com/saltstack/salt/issues/65686)
- Fix boto execution module loading [#65691](https://github.com/saltstack/salt/issues/65691)
- Removed PR 65185 changes since incomplete solution [#65692](https://github.com/saltstack/salt/issues/65692)
- Return an error message when the DNS plugin is not supported [#65739](https://github.com/saltstack/salt/issues/65739)
### Added
- Allowed publishing to regular minions from the SSH wrapper [#40943](https://github.com/saltstack/salt/issues/40943)
- Added syncing of custom salt-ssh wrappers [#45450](https://github.com/saltstack/salt/issues/45450)
- Made salt-ssh sync custom utils [#53666](https://github.com/saltstack/salt/issues/53666)
- Add ability to use file.managed style check_cmd in file.serialize [#53982](https://github.com/saltstack/salt/issues/53982)
- Revised use of deprecated net-tools and added support for ip neighbour with IPv4 ip_neighs, IPv6 ip_neighs6 [#57541](https://github.com/saltstack/salt/issues/57541)
- Added password support to Redis returner. [#58044](https://github.com/saltstack/salt/issues/58044)
- Added keyring param to gpg modules [#59783](https://github.com/saltstack/salt/issues/59783)
- Added new grain to detect the Salt package type: onedir, pip or system [#62589](https://github.com/saltstack/salt/issues/62589)
- Added Vault AppRole and identity issuance to minions [#62823](https://github.com/saltstack/salt/issues/62823)
- Added Vault AppRole auth mount path configuration option [#62825](https://github.com/saltstack/salt/issues/62825)
- Added distribution of Vault authentication details via response wrapping [#62828](https://github.com/saltstack/salt/issues/62828)
- Add salt package type information. Either onedir, pip or system. [#62961](https://github.com/saltstack/salt/issues/62961)
- Added signature verification to file.managed/archive.extracted [#63143](https://github.com/saltstack/salt/issues/63143)
- Added signed_by_any/signed_by_all parameters to gpg.verify [#63166](https://github.com/saltstack/salt/issues/63166)
- Added match runner [#63278](https://github.com/saltstack/salt/issues/63278)
- Added Vault token lifecycle management [#63406](https://github.com/saltstack/salt/issues/63406)
- adding new call for openscap xccdf eval supporting new parameters [#63416](https://github.com/saltstack/salt/issues/63416)
- Added Vault lease management utility [#63440](https://github.com/saltstack/salt/issues/63440)
- implement removal of ptf packages in zypper pkg module [#63442](https://github.com/saltstack/salt/issues/63442)
- add JUnit output for saltcheck [#63463](https://github.com/saltstack/salt/issues/63463)
- Add ability for file.keyvalue to create a file if it doesn't exist [#63545](https://github.com/saltstack/salt/issues/63545)
- added cleanup of temporary mountpoint dir for macpackage installed state [#63905](https://github.com/saltstack/salt/issues/63905)
- Add pkg.installed show installable version in test mode [#63985](https://github.com/saltstack/salt/issues/63985)
- Added patch option to Vault SDB driver [#64096](https://github.com/saltstack/salt/issues/64096)
- Added flags to create local users and groups [#64256](https://github.com/saltstack/salt/issues/64256)
- Added inline specification of trusted CA root certificate for Vault [#64379](https://github.com/saltstack/salt/issues/64379)
- Add ability to return False result in test mode of configurable_test_state [#64418](https://github.com/saltstack/salt/issues/64418)
- Switched Salt's onedir Python version to 3.11 [#64457](https://github.com/saltstack/salt/issues/64457)
- Added support for dnf5 and its new command syntax [#64532](https://github.com/saltstack/salt/issues/64532)
- Adding a new decorator to indicate when a module is deprecated in favor of a Salt extension. [#64569](https://github.com/saltstack/salt/issues/64569)
- Add jq-esque to_entries and from_entries functions [#64600](https://github.com/saltstack/salt/issues/64600)
- Added ability to use PYTHONWARNINGS=ignore to silence deprecation warnings. [#64660](https://github.com/saltstack/salt/issues/64660)
- Add follow_symlinks to file.symlink exec module to switch to os.path.lexists when False [#64665](https://github.com/saltstack/salt/issues/64665)
- Added win_appx state and execution modules for managing Microsoft Store apps and deprovisioning them from systems [#64978](https://github.com/saltstack/salt/issues/64978)
- Add support for show_jid to salt-run
Adds support for show_jid master config option to salt-run, so its behaviour matches the salt cli command. [#65008](https://github.com/saltstack/salt/issues/65008)
- Add ability to remove packages by wildcard via apt execution module [#65220](https://github.com/saltstack/salt/issues/65220)
- Added support for master top modules on masterless minions [#65479](https://github.com/saltstack/salt/issues/65479)
- Allowed accessing the regular mine from the SSH wrapper [#65645](https://github.com/saltstack/salt/issues/65645)
- Allow enabling backup for Linode in Salt Cloud [#65697](https://github.com/saltstack/salt/issues/65697)
- Add a backup schedule setter fFunction for Linode VMs [#65713](https://github.com/saltstack/salt/issues/65713)
- Add acme support for manual plugin hooks [#65744](https://github.com/saltstack/salt/issues/65744)
### Security
- Upgrade to `tornado>=6.3.3` due to https://github.com/advisories/GHSA-qppv-j76h-2rpx [#64989](https://github.com/saltstack/salt/issues/64989)
- Update to `gitpython>=3.1.35` due to https://github.com/advisories/GHSA-wfm5-v35h-vwf4 and https://github.com/advisories/GHSA-cwvm-v4w8-q58c [#65137](https://github.com/saltstack/salt/issues/65137)
## 3006.7 (2024-02-20)

View file

@ -588,12 +588,12 @@ But that advice is backwards for the changelog. We follow the
`keepachangelog <https://keepachangelog.com/en/1.0.0/>`__ approach for
our changelog, and use towncrier to generate it for each release. As a
contributor, all that means is that you need to add a file to the
``salt/changelog`` directory, using the ``<issue #>.<type>.md`` format. For
``salt/changelog`` directory, using the ``<issue #>.<type>`` format. For
instance, if you fixed issue 123, you would do:
::
echo "Made sys.doc inform when no minions return" > changelog/123.fixed.md
echo "Made sys.doc inform when no minions return" > changelog/123.fixed
And that's all that would go into your file. When it comes to your
commit message, it's usually a good idea to add other information, such as

View file

@ -1,125 +1,210 @@
| **OSS Software Name** | **Version** | **Primary License** | **Source Code Download URL** | **Author** | **Copyright Year** |
| ------------------------- | :---------- | --------------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------ | -----------------: |
| | | | | | |
| Cheetah3 | 3.1.0 | MIT/X11 | https://pypi.org/project/Cheetah3/ | Travis Rudd | 2017-2019 |
| CherryPy | 17.3.0 | BSD | https://pypi.org/project/CherryPy/ | CherryPy Team | 2004-2019 |
| Genshi | 0.7.3 | BSD | https://pypi.org/project/Genshi/ | Edgewall Software | 2006-2010 |
| GitPython | 3.1.3 | BSD | https://pypi.org/project/GitPython/ | Sebastian Thiel, Michael Trier | 2008, 2009 |
| Jinja2 | 2.11.2 | BSD | https://pypi.org/project/Jinja2 | Armin Ronacher | 2007 |
| Mako | 1.1.3 | MIT/X11 | https://pypi.org/project/Mako/ | Mike Bayer | 2006-2020 |
| MarkupSafe | 1.1.1 | BSD | https://pypi.org/project/MarkupSafe/ | Armin Ronacher | 2010 |
| PyJWT | 1.7.1 | MIT/X11 | https://pypi.org/project/PyJWT/ | Jose Padilla | 2015 |
| PyNaCl | 1.4.0 | Apache License, V2.0 | https://pypi.org/project/PyNaCl/ | The PyNaCl developers | 2004 |
| PyYAML | 5.3.1 | MIT/X11 | https://pypi.org/project/PyYAML/ | Kirill Simonov | 2006-2019 |
| WerkZeug | 1.0.1 | BSD | https://pypi.org/project/Werkzeug/ | Armin Ronacher | 2007 |
| apache-libcloud | 2.0.0 | Apache License, V2.0 | https://pypi.org/project/apache-libcloud/ | Apache Software Foundation | 2004 |
| appdirs | 1.4.4 | MIT/X11 | https://pypi.org/project/appdirs/ | Trent Mick | 2010 |
| asn1crypto | 1.3.0 | MIT/X11 | https://pypi.org/project/asn1crypto/ | wbond | 2015-2019 |
| attrs | 19.3.1 | MIT/X11 | https://pypi.org/project/attrs/ | Hynek Schlawack | 2015 |
| aws-sam-translator | 1.25.0 | Apache License, V2.0 | https://pypi.org/project/aws-sam-translator/ | Amazon Web Services | 2004 |
| aws-xray-sdk | 2.6.0 | Apache License, V2.0 | https://pypi.org/project/aws-xray-sdk/ | Amazon Web Services | 2004 |
| bcrypt | 3.1.7 | Apache License, V2.0 | https://pypi.org/project/bcrypt/ | The Python Cryptographic Authority | 2013 |
| boto | 2.49.0 | MIT/X11 | https://pypi.org/project/boto/ | Mitch Garnaatt | 2013 |
| boto3 | 1.14.16 | Apache License, V2.0 | https://pypi.org/project/boto3/ | AWS | 2019 |
| botocore | 1.17.16 | Apache License, V2.0 | https://pypi.org/project/botocore/ | AWS | 2019 |
| cachetools | 4.1.1 | MIT/X11 | https://pypi.org/project/cachetools/ | tkem | 2014-2020 |
| cassandra-driver | 3.24.0 | Apache License, V2.0 | https://pypi.org/project/cassandra-driver/ | DataStax | 2013 |
| certifi | 2020.6.20 | Mozilla Public License, V2.0 | https://pypi.org/project/certifi/ | Kenneth Reitz | 2013 |
| certvalidator | 0.11.1 | MIT/X11 | https://pypi.org/project/certvalidator/ | wbond | 2015-2018 |
| cffi | 1.14.0 | MIT/X11 | https://pypi.org/project/cffi/ | Armin Rigo, Maciej Fijalkowski | 2005-2007 |
| cfn-lint | 0.33.2 | MIT/X11 | https://pypi.org/project/cfn-lint/ | kddejong | 2018 |
| chardet | 3.0.4 | GNU Lesser General Public License, V2.1 | https://pypi.org/project/chardet/ | Daniel Blanchard | 2012 |
| cheroot | 8.3.0 | BSD | https://pypi.org/project/cheroot/ | CherryPy Team | 2004-2020 |
| click | 7.1.2 | BSD | https://pypi.org/project/click/ | Pallets | 2014 |
| contextlib2 | 0.6.0.post1 | Python License | https://pypi.org/project/contextlib2/ | Nick Coghlan | 2015 |
| croniter | 0.3.34 | MIT/X11 | https://pypi.org/project/croniter/ | Matsumoto Taichi, kiorky | 2014 |
| cryptography | 2.9.2 | BSD | https://pypi.org/project/cryptography/ | The cryptography developers | 2014 |
| decorator | 4.4.2 | BSD | https://pypi.org/project/decorator/ | Michele Simionato | 2005-2018 |
| distlib | 0.3.1 | Python License | https://pypi.org/project/distlib/ | Vinay Sajip | 2012 |
| dnspython | 1.16.0 | BSD | https://pypi.org/project/dnspython/ | Bob Halley | 2001-2017 |
| docker | 4.2.2 | Apache License, V2.0 | https://pypi.org/project/docker/ | Joffery F | 2016 |
| docutils | 0.15.2 | BSD | https://pypi.org/project/docutils/ | David Goodger | 2011 |
| ecdsa | 0.15 | MIT/X11 | https://pypi.org/project/ecdsa/ | Brian Warner | 2010 |
| filelock | 3.0.12 | Public Domain | https://pypi.org/project/filelock/ | Benedikt Schmitt | 2018 |
| future | 0.18.2 | MIT/X11 | https://pypi.org/project/future/ | Ed Schofield | 2013-2019 |
| geomet | 0.2.1.post1 | Apache License, V2.0 | https://pypi.org/project/geomet/ | Lars Butler | 2014 |
| gitdb | 4.0.5 | BSD | https://pypi.org/project/gitdb/ | Sebastian Thiel | 2010, 2011 |
| google-auth | 1.18.0 | Apache License, V2.0 | https://pypi.org/project/google-auth/ | Google Cloud Platform | 2016 |
| hgtools | 8.2.0 | MIT/X11 | https://pypi.org/project/hgtools/ | Jason R. Coombs | 2019 |
| idna | 2.8 | BSD | https://pypi.org/project/idna/ | Kim Davies | 2013-2020 |
| importlib-metadata | 1.7.0 | Apache License, V2.0 | https://pypi.org/project/importlib-metadata/ | Barry Warsaw | 2017-2019 |
| ipaddress | 1.0.23 | Python License | https://pypi.org/project/ipaddress/ | Philipp Hagemeister | 2014 |
| isodate | 0.6.0 | BSD | https://pypi.org/project/isodate/ | Gerhard Weis | 2009 |
| jaraco.functools | 3.0.1 | MIT/X11 | https://pypi.org/project/jaraco.functools/ | Jason R. Coombs | 2020 |
| jmespath | 0.10.0 | MIT/X11 | https://pypi.org/project/jmespath/ | James Saryerwinnie | 2013 |
| jsondiff | 1.1.2 | MIT/X11 | https://pypi.org/project/jsondiff/ | Zoomer Analytics LLC | 2015 |
| jsonpatch | 1.26 | BSD | https://pypi.org/project/jsonpatch/ | Stefan Kögl | 2011 |
| jsonpickle | 1.4.1 | BSD | https://pypi.org/project/jsonpickle/ | David Aguilar | 2009-2018 |
| jsonpointer | 2 | BSD | https://pypi.org/project/jsonpointer/ | Stefan Kögl | 2017 |
| jsonschema | 3.2.0 | MIT/X11 | https://pypi.org/project/jsonschema/ | Julian Berman | 2013 |
| junit-xml | 1.9 | MIT/X11 | https://pypi.org/project/junit-xml/ | Brian Beyer | 2013 |
| junos-eznc | 2.4.0 | Apache License, V2.0 | https://pypi.org/project/junos-eznc/ | Jeremy Schulman, Nitin Kumar, Rick Sherman, Stacy Smith | 2018 |
| jxmlease | 1.0.3 | MIT/X11 | https://pypi.org/project/jxmlease/ | Juniper Networks | 2015-2016 |
| kazoo | 2.7.0 | Apache License, V2.0 | https://pypi.org/project/kazoo/ | Kazoo team | 2012 |
| keyring | 5.7.1 | MIT/X11 | https://pypi.org/project/keyring/ | Kang Zhang | 2019 |
| kubernetes | 3.0.0 | Apache License, V2.0 | https://pypi.org/project/kubernetes/ | Kubernetes | 2016 |
| libnacl | 1.7.1 | Apache License, V2.0 | https://pypi.org/project/libnacl/ | Thomas S Hatch | 2014 |
| lxml | 4.5.1 | BSD | https://pypi.org/project/lxml/ | lxml dev team | 2019 |
| mock | 4.0.2 | BSD | https://pypi.org/project/mock/ | Testing Cabal | 2003-2013 |
| more-itertools | 5.0.0 | MIT/X11 | https://pypi.org/project/more-itertools/ | Eric Rose | 2012 |
| moto | 1.3.14 | Apache License, V2.0 | https://pypi.org/project/moto/ | Steve Pulec | 2004 |
| natsort | 7.0.1 | MIT/X11 | https://pypi.org/project/natsort/ | Seth M. Morton | 2012-2020 |
| ncclient | 0.6.7 | Apache License, V2.0 | https://pypi.org/project/ncclient/ | Shikhar Bhushan, Leonidas Poulopoulos, Ebben Aries, Einar Nilsen-Nygaard | 2004 |
| netaddr | 0.8.0 | BSD | https://pypi.org/project/netaddr/ | Author: David P. D. Moss, Stefan Nordhausen et al | 2008 |
| networkx | 2.4 | BSD | https://pypi.org/project/networkx/ | Aric Hagberg | 2004-2020 |
| ntc-templates | 1.5.0 | Apache License, V2.0 | https://pypi.org/project/ntc-templates/ | Jason Edelman | 2015 |
| oauthlib | 3.1.0 | BSD | https://pypi.org/project/oauthlib/ | The OAuthlib Community | 2019 |
| oscrypto | 1.2.0 | MIT/X11 | https://pypi.org/project/oscrypto/ | wbond | 2015-2019 |
| paramiko | 2.7.1 | GNU Lesser General Public License, V2.1 | https://pypi.org/project/paramiko/ | Jeff Forcier | 1999 |
| passlib | 1.7.2 | BSD | https://pypi.org/project/passlib/ | Eli Collins | 2004 |
| pathtools | 0.1.2 | MIT/X11 | https://pypi.org/project/pathtools/ | Yesudeep Mangalapilly | 2010 |
| portend | 2.6 | MIT/X11 | https://pypi.org/project/portend/ | Jason R Coombs | 2018 |
| psutil | 5.7.0 | BSD | https://pypi.org/project/psutil/ | Giampaolo Rodola | 2009 |
| pyOpenSSL | 19.1.0 | Apache License, V2.0 | https://pypi.org/project/pyOpenSSL/ | The pyopenssl Developers | 2004 |
| pyasn1 | 0.4.8 | BSD | https://pypi.org/project/pyasn1/ | Ilya Etingof | 2005-2020 |
| pyasn1-modules | 0.2.8 | BSD | https://pypi.org/project/pyasn1-modules/ | Ilya Etingof | 2005-2020 |
| pycparser | 2.20 | BSD | https://pypi.org/project/pycparser/ | Eli Bendersky | 2008-2017 |
| pygit2 | 1.2.1 | GNU General Public License, V2.0 | https://pypi.org/project/pygit2/ | J. David Ibáñez | 2012 |
| pyinotify | 0.9.6 | MIT/X11 | https://pypi.org/project/pyinotify/ | Sebastien Martini | 2010 |
| pyparsing | 2.4.7 | MIT/X11 | https://pypi.org/project/pyparsing/ | Paul McGuire | 2018 |
| pyrsistent | 0.16.0 | MIT/X11 | https://pypi.org/project/pyrsistent/ | Tobias Gustafsson | 2019 |
| pyserial | 3.4 | BSD | https://pypi.org/project/pyserial/ | Chris Liechti | 2001-2016 |
| python-dateutil | 2.8.1 | Apache License, V2.0 | https://pypi.org/project/python-dateutil/ | Gustavo Niemeyer | 2017 |
| python-etcd | 0.4.5 | MIT/X11 | https://pypi.org/project/python-etcd/ | Jose Plana | 2015 |
| python-gnupg | 0.4.6 | BSD | https://pypi.org/project/python-gnupg/ | Vinay Sajip | 2008-2019 |
| python-jose[cryptography] | 3.2.0 | MIT/X11 | https://pypi.org/project/python-jose/ | Michael Davis | 2015 |
| pytz | 2020.1 | MIT/X11 | https://pypi.org/project/pytz/ | Stuart Bishop | 2015 |
| pyvmomi | 7 | Apache License, V2.0 | https://pypi.org/project/pyvmomi/ | VMware, Inc. | 2004 |
| requests | 2.24.0 | Apache License, V2.0 | https://pypi.org/project/requests/ | Kenneth Reitz | 2004 |
| requests-oauthlib | 1.3.0 | BSD | https://pypi.org/project/requests-oauthlib/ | Kenneth Reitz | 2014 |
| responses | 0.10.15 | Apache License, V2.0 | https://pypi.org/project/responses/ | David Cramer | 2004 |
| rfc3987 | 1.3.8 | GNU General Public License, V3.0 | https://pypi.org/project/rfc3987/ | Daniel Gerber | 2007 |
| rsa | 4.6 | Apache License, V2.0 | https://pypi.org/project/rsa/ | Sybren A. Stuvel | 2011 |
| s3transfer | 0.3.3 | Apache License, V2.0 | https://pypi.org/project/s3transfer/ | Amazon Web Services | 2004 |
| scp | 0.13.2 | GNU Lesser General Public License, V2.1 | https://pypi.org/project/scp/ | James Bardin | 2013 |
| setproctitle | 1.1.10 | BSD | https://pypi.org/project/setproctitle/ | Daniele Varrazzo | 2009-2020 |
| setuptools-scm | 4.1.2 | MIT/X11 | https://pypi.org/project/setuptools-scm/ | Ronny Pfannschmidt | 2010 |
| six | 1.15.0 | MIT/X11 | https://pypi.org/project/six/ | Benjamin Peterson | 2010-2020 |
| smmap | 3.0.4 | BSD | https://pypi.org/project/smmap/ | Sebastian Thiel | 2010, 2011 |
| sshpubkeys | 3.1.0 | BSD | https://pypi.org/project/sshpubkeys/ | Olli Jarva | 2014 |
| strict-rfc3339 | 0.7 | GNU General Public License, V3.0 | https://pypi.org/project/strict-rfc3339/ | Daniel Richman, Adam Greig | 2007 |
| tempora | 3.0.0 | MIT/X11 | https://pypi.org/project/tempora/ | Jason R. Coombs | 2020 |
| textfsm | 1.1.0 | Apache License, V2.0 | https://pypi.org/project/textfsm/ | Google | 2004 |
| timelib | 0.2.4 | BSD | https://pypi.org/project/timelib/ | Ralf Schmitt | 2009-2011 |
| toml | 0.10.1 | MIT/X11 | https://pypi.org/project/toml/ | William Pearson | 2013-2019 |
| transitions | 0.8.2 | MIT/X11 | https://pypi.org/project/transitions/ | Tal Yarkoni | 2014 - 2020 |
| urllib3 | 1.25.9 | MIT/X11 | https://pypi.org/project/urllib3/ | Andrey Petrov | 2008-2020 |
| vcert | 0.7.4 | ASL | https://pypi.org/project/vcert | Denis Subbotin | 2018 |
| virtualenv | 20.0.25 | MIT | https://pypi.org/project/virtualenv | Bernat Gabor | 2020-202x |
| watchdog | 0.10.3 | Apache License 2.0 | https://pypi.org/project/watchdog | Yesudeep Mangalapilly | 2012 |
| websocket-client | 0.57.0 | BSD | https://pypi.org/project/websocket-client | liris | 2018 |
| wrapt | 1.12.1 | BSD | https://pypi.org/project/wrapt | Graham Dumpleton | 2013-2019 |
| xmltodict | 0.12.0 | MIT | https://pypi.org/project/xmltodict | Martin Blech | 2010 |
| yamlordereddictloader | 0.4.0 | MIT License | https://pypi.org/project/yamlordereddictloader | François Ménabé | 2017 |
| zc.lockfile | 2 | ZPL 2.1 | https://pypi.org/project/zc.lockfile | Zope Foundation | 2010 |
| zipp | 3.1.0 | MIT | https://pypi.org/project/zipp | Jason R. Coombs | 2019 |
| **OSS Software Name** | **Version** | **Primary License** | **Source Code Download URL** | **Author** | **Copyright Year** |
| --- | :--- | --- | --- | --- | ---: |
| | | | | | |
| Cheetah3 | 3.1.0 | MIT/X11 | https://pypi.org/project/Cheetah3/ | Travis Rudd | 2017-2019 |
| CherryPy | 17.3.0 | BSD | https://pypi.org/project/CherryPy/ | CherryPy Team | 2004-2019 |
| Genshi | 0.7.3 | BSD | https://pypi.org/project/Genshi/ | Edgewall Software | 2006-2010 |
| GitPython | 3.1.3 | BSD | https://pypi.org/project/GitPython/ | Sebastian Thiel, Michael Trier | 2008, 2009 |
| Jinja2 | 2.11.2 | BSD | https://pypi.org/project/Jinja2 | Armin Ronacher | 2007 |
| Mako | 1.1.3 | MIT/X11 | https://pypi.org/project/Mako/ | Mike Bayer | 2006-2020 |
| MarkupSafe | 1.1.1 | BSD | https://pypi.org/project/MarkupSafe/ | Armin Ronacher | 2010 |
| PyJWT | 1.7.1 | MIT/X11 | https://pypi.org/project/PyJWT/ | Jose Padilla | 2015 |
| PyNaCl | 1.4.0 | Apache License, V2.0 | https://pypi.org/project/PyNaCl/ | The PyNaCl developers | 2004 |
| PyYAML | 5.3.1 | MIT/X11 | https://pypi.org/project/PyYAML/ | Kirill Simonov | 2006-2019 |
| WerkZeug | 1.0.1 | BSD | https://pypi.org/project/Werkzeug/ | Armin Ronacher | 2007 |
| adal | 1.2.4 | MIT/X11 | https://pypi.org/project/adal | Microsoft Corporation | 2015 |
| apache-libcloud | 2.0.0 | Apache License, V2.0 | https://pypi.org/project/apache-libcloud/ | Apache Software Foundation | 2004 |
| appdirs | 1.4.4 | MIT/X11 | https://pypi.org/project/appdirs/ | Trent Mick | 2010 |
| asn1crypto | 1.3.0 | MIT/X11 | https://pypi.org/project/asn1crypto/ | wbond | 2015-2019 |
| attrs | 19.3.1 | MIT/X11 | https://pypi.org/project/attrs/ | Hynek Schlawack | 2015 |
| aws-sam-translator | 1.25.0 | Apache License, V2.0 | https://pypi.org/project/aws-sam-translator/ | Amazon Web Services | 2004 |
| aws-xray-sdk | 2.6.0 | Apache License, V2.0 | https://pypi.org/project/aws-xray-sdk/ | Amazon Web Services | 2004 |
| azure | 4.0.0 | MIT/X11 | https://pypi.org/project/azure | Microsoft Corporation | 2016 |
| azure-applicationinsights | 0.1.0 | MIT/X11 | https://pypi.org/project/azure-applicationinsights/ | Microsoft Corporation | 2016 |
| azure-batch | 4.1.3 | MIT/X11 | https://pypi.org/project/azure-batch/ | Microsoft Corporation | 2016 |
| azure-common | 1.1.25 | MIT/X11 | https://pypi.org/project/azure-common/ | Microsoft Corporation | 2016 |
| azure-cosmosdb-nspkg | 2.0.2 | Apache License, V2.0 | https://pypi.org/project/azure-cosmosdb-nspkg | Microsoft Corporation | 2004 |
| azure-cosmosdb-table | 1.0.6 | Apache License, V2.0 | https://pypi.org/project/azure-cosmosdb-table/ | Microsoft Corporation | 2004 |
| azure-datalake-store | 0.0.48 | MIT/X11 | https://pypi.org/project/azure-datalake-store/ | Microsoft Corporation | 2016 |
| azure-eventgrid | 1.3.0 | MIT/X11 | https://pypi.org/project/azure-eventgrid/ | Microsoft Corporation | 2016 |
| azure-graphrbac | 0.40.0 | MIT/X11 | https://pypi.org/project/azure-graphrbac/ | Microsoft Corporation | 2016 |
| azure-keyvault | 1.1.0 | MIT/X11 | https://pypi.org/project/azure-keyvault/ | Microsoft Corporation | 2016 |
| azure-loganalytics | 0.1.0 | MIT/X11 | https://pypi.org/project/azure-loganalytics/ | Microsoft Corporation | 2016 |
| azure-mgmt | 4.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt/ | Microsoft Corporation | 2016 |
| azure-mgmt-advisor | 1.0.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-advisor/ | Microsoft Corporation | 2016 |
| azure-mgmt-applicationinsights | 0.1.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-applicationinsights/ | Microsoft Corporation | 2016 |
| azure-mgmt-authorization | 0.50.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-authorization/ | Microsoft Corporation | 2016 |
| azure-mgmt-batch | 5.0.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-batch/ | Microsoft Corporation | 2016 |
| azure-mgmt-batchai | 2.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-batchai/ | Microsoft Corporation | 2016 |
| azure-mgmt-billing | 0.2.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-billing/ | Microsoft Corporation | 2016 |
| azure-mgmt-cdn | 3.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-cdn/ | Microsoft Corporation | 2016 |
| azure-mgmt-cognitiveservices | 3.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-cognitiveservices/ | Microsoft Corporation | 2016 |
| azure-mgmt-commerce | 1.0.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-commerce/ | Microsoft Corporation | 2016 |
| azure-mgmt-compute | 4.6.2 | MIT/X11 | https://pypi.org/project/azure-mgmt-compute/ | Microsoft Corporation | 2016 |
| azure-mgmt-consumption | 2.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-consumption/ | Microsoft Corporation | 2016 |
| azure-mgmt-containerinstance | 1.5.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-containerinstance/ | Microsoft Corporation | 2016 |
| azure-mgmt-containerregistry | 2.8.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-containerregistry/ | Microsoft Corporation | 2016 |
| azure-mgmt-containerservice | 4.4.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-containerservice/ | Microsoft Corporation | 2016 |
| azure-mgmt-cosmosdb | 0.4.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-cosmosdb/ | Microsoft Corporation | 2016 |
| azure-mgmt-datafactory | 0.6.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-datafactory/ | Microsoft Corporation | 2016 |
| azure-mgmt-datalake-analytics | 0.6.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-datalake-analytics/ | Microsoft Corporation | 2016 |
| azure-mgmt-datalake-nspkg | 3.0.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-datalake-nspkg/ | Microsoft Corporation | 2016 |
| azure-mgmt-datalake-store | 0.5.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-datalake-store/ | Microsoft Corporation | 2016 |
| azure-mgmt-datamigration | 1.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-datamigration/ | Microsoft Corporation | 2016 |
| azure-mgmt-devspaces | 0.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-devspaces/ | Microsoft Corporation | 2016 |
| azure-mgmt-devtestlabs | 2.2.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-devtestlabs/ | Microsoft Corporation | 2016 |
| azure-mgmt-dns | 2.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-dns/ | Microsoft Corporation | 2016 |
| azure-mgmt-eventgrid | 1.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-eventgrid/ | Microsoft Corporation | 2016 |
| azure-mgmt-eventhub | 2.6.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-eventhub/ | Microsoft Corporation | 2016 |
| azure-mgmt-hanaonazure | 0.1.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-hanaonazure/ | Microsoft Corporation | 2016 |
| azure-mgmt-iotcentral | 0.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-iotcentral/ | Microsoft Corporation | 2016 |
| azure-mgmt-iothub | 0.5.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-iothub/ | Microsoft Corporation | 2016 |
| azure-mgmt-iothubprovisioningservices | 0.2.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-iothubprovisioningservices/ | Microsoft Corporation | 2016 |
| azure-mgmt-keyvault | 1.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-keyvault/ | Microsoft Corporation | 2016 |
| azure-mgmt-loganalytics | 0.2.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-loganalytics/ | Microsoft Corporation | 2016 |
| azure-mgmt-logic | 3.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-logic/ | Microsoft Corporation | 2016 |
| azure-mgmt-machinelearningcompute | 0.4.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-machinelearningcompute/ | Microsoft Corporation | 2016 |
| azure-mgmt-managementgroups | 0.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-managementgroups/ | Microsoft Corporation | 2016 |
| azure-mgmt-managementpartner | 0.1.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-managementpartner/ | Microsoft Corporation | 2016 |
| azure-mgmt-maps | 0.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-maps/ | Microsoft Corporation | 2016 |
| azure-mgmt-marketplaceordering | 0.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-marketplaceordering/ | Microsoft Corporation | 2016 |
| azure-mgmt-media | 1.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-media/ | Microsoft Corporation | 2016 |
| azure-mgmt-monitor | 0.5.2 | MIT/X11 | https://pypi.org/project/azure-mgmt-monitor/ | Microsoft Corporation | 2016 |
| azure-mgmt-msi | 0.2.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-msi/ | Microsoft Corporation | 2016 |
| azure-mgmt-network | 2.7.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-network/ | Microsoft Corporation | 2016 |
| azure-mgmt-notificationhubs | 2.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-notificationhubs/ | Microsoft Corporation | 2016 |
| azure-mgmt-nspkg | 3.0.2 | MIT/X11 | https://pypi.org/project/azure-mgmt-nspkg/ | Microsoft Corporation | 2016 |
| azure-mgmt-policyinsights | 0.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-policyinsights/ | Microsoft Corporation | 2016 |
| azure-mgmt-powerbiembedded | 2.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-powerbiembedded/ | Microsoft Corporation | 2016 |
| azure-mgmt-rdbms | 1.9.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-rdbms/ | Microsoft Corporation | 2016 |
| azure-mgmt-recoveryservices | 0.3.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-recoveryservices/ | Microsoft Corporation | 2016 |
| azure-mgmt-recoveryservicesbackup | 0.3.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-recoveryservicesbackup/ | Microsoft Corporation | 2016 |
| azure-mgmt-redis | 5.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-redis/ | Microsoft Corporation | 2016 |
| azure-mgmt-relay | 0.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-relay/ | Microsoft Corporation | 2016 |
| azure-mgmt-reservations | 0.2.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-reservations/ | Microsoft Corporation | 2016 |
| azure-mgmt-resource | 2.2.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-resource/ | Microsoft Corporation | 2016 |
| azure-mgmt-scheduler | 2.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-scheduler/ | Microsoft Corporation | 2016 |
| azure-mgmt-search | 2.1.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-search/ | Microsoft Corporation | 2016 |
| azure-mgmt-servicebus | 0.5.3 | MIT/X11 | https://pypi.org/project/azure-mgmt-servicebus/ | Microsoft Corporation | 2016 |
| azure-mgmt-servicefabric | 0.2.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-servicefabric/ | Microsoft Corporation | 2016 |
| azure-mgmt-signalr | 0.1.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-signalr/ | Microsoft Corporation | 2016 |
| azure-mgmt-sql | 0.9.1 | MIT/X11 | https://pypi.org/project/azure-mgmt-sql/ | Microsoft Corporation | 2016 |
| azure-mgmt-storage | 2.0.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-storage/ | Microsoft Corporation | 2016 |
| azure-mgmt-subscription | 0.2.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-subscription/ | Microsoft Corporation | 2016 |
| azure-mgmt-trafficmanager | 0.50.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-trafficmanager/ | Microsoft Corporation | 2016 |
| azure-mgmt-web | 0.35.0 | MIT/X11 | https://pypi.org/project/azure-mgmt-web/ | Microsoft Corporation | 2016 |
| azure-nspkg | 3.0.2 | MIT/X11 | https://pypi.org/project/azure-nspkg/ | Microsoft Corporation | 2016 |
| azure-servicebus | 0.21.1 | MIT/X11 | https://pypi.org/project/azure-servicebus/ | Microsoft Corporation | 2016 |
| azure-servicefabric | 6.3.0.0 | MIT/X11 | https://pypi.org/project/azure-servicefabric/ | Microsoft Corporation | 2016 |
| azure-servicemanagement-legacy | 0.20.7 | Apache License, V2.0 | https://pypi.org/project/azure-servicemanagement-legacy/ | Microsoft Corporation | 2016 |
| azure-storage-blob | 1.5.0 | MIT/X11 | https://pypi.org/project/azure-storage-blob/ | Microsoft Corporation | 2017 |
| azure-storage-common | 1.4.2 | MIT/X11 | https://pypi.org/project/azure-storage-common/ | Microsoft Corporation | 2017 |
| azure-storage-file | 1.4.0 | MIT/X11 | https://pypi.org/project/azure-storage-file/ | Microsoft Corporation | 2016 |
| azure-storage-queue | 1.4.0 | MIT/X11 | https://pypi.org/project/azure-storage-queue/ | Microsoft Corporation | 2017 |
| bcrypt | 3.1.7 | Apache License, V2.0 | https://pypi.org/project/bcrypt/ | The Python Cryptographic Authority | 2013 |
| boto | 2.49.0 | MIT/X11 | https://pypi.org/project/boto/ | Mitch Garnaatt | 2013 |
| boto3 | 1.14.16 | Apache License, V2.0 | https://pypi.org/project/boto3/ | AWS | 2019 |
| botocore | 1.17.16 | Apache License, V2.0 | https://pypi.org/project/botocore/ | AWS | 2019 |
| cachetools | 4.1.1 | MIT/X11 | https://pypi.org/project/cachetools/ | tkem | 2014-2020 |
| cassandra-driver | 3.24.0 | Apache License, V2.0 | https://pypi.org/project/cassandra-driver/ | DataStax | 2013 |
| certifi | 2020.6.20 | Mozilla Public License, V2.0 | https://pypi.org/project/certifi/ | Kenneth Reitz | 2013 |
| certvalidator | 0.11.1 | MIT/X11 | https://pypi.org/project/certvalidator/ | wbond | 2015-2018 |
| cffi | 1.14.0 | MIT/X11 | https://pypi.org/project/cffi/ | Armin Rigo, Maciej Fijalkowski | 2005-2007 |
| cfn-lint | 0.33.2 | MIT/X11 | https://pypi.org/project/cfn-lint/ | kddejong | 2018 |
| chardet | 3.0.4 | GNU Lesser General Public License, V2.1 | https://pypi.org/project/chardet/ | Daniel Blanchard | 2012 |
| cheroot | 8.3.0 | BSD | https://pypi.org/project/cheroot/ | CherryPy Team | 2004-2020 |
| click | 7.1.2 | BSD | https://pypi.org/project/click/ | Pallets | 2014 |
| contextlib2 | 0.6.0.post1 | Python License | https://pypi.org/project/contextlib2/ | Nick Coghlan | 2015 |
| croniter | 0.3.34 | MIT/X11 | https://pypi.org/project/croniter/ | Matsumoto Taichi, kiorky | 2014 |
| cryptography | 2.9.2 | BSD | https://pypi.org/project/cryptography/ | The cryptography developers | 2014 |
| decorator | 4.4.2 | BSD | https://pypi.org/project/decorator/ | Michele Simionato | 2005-2018 |
| distlib | 0.3.1 | Python License | https://pypi.org/project/distlib/ | Vinay Sajip | 2012 |
| dnspython | 1.16.0 | BSD | https://pypi.org/project/dnspython/ | Bob Halley | 2001-2017 |
| docker | 4.2.2 | Apache License, V2.0 | https://pypi.org/project/docker/ | Joffery F | 2016 |
| docutils | 0.15.2 | BSD | https://pypi.org/project/docutils/ | David Goodger | 2011 |
| ecdsa | 0.15 | MIT/X11 | https://pypi.org/project/ecdsa/ | Brian Warner | 2010 |
| filelock | 3.0.12 | Public Domain | https://pypi.org/project/filelock/ | Benedikt Schmitt | 2018 |
| future | 0.18.2 | MIT/X11 | https://pypi.org/project/future/ | Ed Schofield | 2013-2019 |
| geomet | 0.2.1.post1 | Apache License, V2.0 | https://pypi.org/project/geomet/ | Lars Butler | 2014 |
| gitdb | 4.0.5 | BSD | https://pypi.org/project/gitdb/ | Sebastian Thiel | 2010, 2011 |
| google-auth | 1.18.0 | Apache License, V2.0 | https://pypi.org/project/google-auth/ | Google Cloud Platform | 2016 |
| hgtools | 8.2.0 | MIT/X11 | https://pypi.org/project/hgtools/ | Jason R. Coombs | 2019 |
| idna | 2.8 | BSD | https://pypi.org/project/idna/ | Kim Davies | 2013-2020 |
| importlib-metadata | 1.7.0 | Apache License, V2.0 | https://pypi.org/project/importlib-metadata/ | Barry Warsaw | 2017-2019 |
| ipaddress | 1.0.23 | Python License | https://pypi.org/project/ipaddress/ | Philipp Hagemeister | 2014 |
| isodate | 0.6.0 | BSD | https://pypi.org/project/isodate/ | Gerhard Weis | 2009 |
| jaraco.functools | 3.0.1 | MIT/X11 | https://pypi.org/project/jaraco.functools/ | Jason R. Coombs | 2020 |
| jmespath | 0.10.0 | MIT/X11 | https://pypi.org/project/jmespath/ | James Saryerwinnie | 2013 |
| jsondiff | 1.1.2 | MIT/X11 | https://pypi.org/project/jsondiff/ | Zoomer Analytics LLC | 2015 |
| jsonpatch | 1.26 | BSD | https://pypi.org/project/jsonpatch/ | Stefan Kögl | 2011 |
| jsonpickle | 1.4.1 | BSD | https://pypi.org/project/jsonpickle/ | David Aguilar | 2009-2018 |
| jsonpointer | 2 | BSD | https://pypi.org/project/jsonpointer/ | Stefan Kögl | 2017 |
| jsonschema | 3.2.0 | MIT/X11 | https://pypi.org/project/jsonschema/ | Julian Berman | 2013 |
| junit-xml | 1.9 | MIT/X11 | https://pypi.org/project/junit-xml/ | Brian Beyer | 2013 |
| junos-eznc | 2.4.0 | Apache License, V2.0 | https://pypi.org/project/junos-eznc/ | Jeremy Schulman, Nitin Kumar, Rick Sherman, Stacy Smith | 2018 |
| jxmlease | 1.0.3 | MIT/X11 | https://pypi.org/project/jxmlease/ | Juniper Networks | 2015-2016 |
| kazoo | 2.7.0 | Apache License, V2.0 | https://pypi.org/project/kazoo/ | Kazoo team | 2012 |
| keyring | 5.7.1 | MIT/X11 | https://pypi.org/project/keyring/ | Kang Zhang | 2019 |
| kubernetes | 3.0.0 | Apache License, V2.0 | https://pypi.org/project/kubernetes/ | Kubernetes | 2016 |
| libnacl | 1.7.1 | Apache License, V2.0 | https://pypi.org/project/libnacl/ | Thomas S Hatch | 2014 |
| lxml | 4.5.1 | BSD | https://pypi.org/project/lxml/ | lxml dev team | 2019 |
| mock | 4.0.2 | BSD | https://pypi.org/project/mock/ | Testing Cabal | 2003-2013 |
| more-itertools | 5.0.0 | MIT/X11 | https://pypi.org/project/more-itertools/ | Eric Rose | 2012 |
| moto | 1.3.14 | Apache License, V2.0 | https://pypi.org/project/moto/ | Steve Pulec | 2004 |
| msrest | 0.6.17 | MIT/X11 | https://pypi.org/project/msrest/ | Microsoft | 2016 |
| msrestazure | 0.6.4 | MIT/X11 | https://pypi.org/project/msrestazure/ | Microsoft | 2016 |
| natsort | 7.0.1 | MIT/X11 | https://pypi.org/project/natsort/ | Seth M. Morton | 2012-2020 |
| ncclient | 0.6.7 | Apache License, V2.0 | https://pypi.org/project/ncclient/ | Shikhar Bhushan, Leonidas Poulopoulos, Ebben Aries, Einar Nilsen-Nygaard | 2004 |
| netaddr | 0.8.0 | BSD | https://pypi.org/project/netaddr/ | Author: David P. D. Moss, Stefan Nordhausen et al | 2008 |
| networkx | 2.4 | BSD | https://pypi.org/project/networkx/ | Aric Hagberg | 2004-2020 |
| ntc-templates | 1.5.0 | Apache License, V2.0 | https://pypi.org/project/ntc-templates/ | Jason Edelman | 2015 |
| oauthlib | 3.1.0 | BSD | https://pypi.org/project/oauthlib/ | The OAuthlib Community | 2019 |
| oscrypto | 1.2.0 | MIT/X11 | https://pypi.org/project/oscrypto/ | wbond | 2015-2019 |
| paramiko | 2.7.1 | GNU Lesser General Public License, V2.1 | https://pypi.org/project/paramiko/ | Jeff Forcier | 1999 |
| passlib | 1.7.2 | BSD | https://pypi.org/project/passlib/ | Eli Collins | 2004 |
| pathtools | 0.1.2 | MIT/X11 | https://pypi.org/project/pathtools/ | Yesudeep Mangalapilly | 2010 |
| portend | 2.6 | MIT/X11 | https://pypi.org/project/portend/ | Jason R Coombs | 2018 |
| psutil | 5.7.0 | BSD | https://pypi.org/project/psutil/ | Giampaolo Rodola | 2009 |
| pyOpenSSL | 19.1.0 | Apache License, V2.0 | https://pypi.org/project/pyOpenSSL/ | The pyopenssl Developers | 2004 |
| pyasn1 | 0.4.8 | BSD | https://pypi.org/project/pyasn1/ | Ilya Etingof | 2005-2020 |
| pyasn1-modules | 0.2.8 | BSD | https://pypi.org/project/pyasn1-modules/ | Ilya Etingof | 2005-2020 |
| pycparser | 2.20 | BSD | https://pypi.org/project/pycparser/ | Eli Bendersky | 2008-2017 |
| pygit2 | 1.2.1 | GNU General Public License, V2.0 | https://pypi.org/project/pygit2/ | J. David Ibáñez | 2012 |
| pyinotify | 0.9.6 | MIT/X11 | https://pypi.org/project/pyinotify/ | Sebastien Martini | 2010 |
| pyparsing | 2.4.7 | MIT/X11 | https://pypi.org/project/pyparsing/ | Paul McGuire | 2018 |
| pyrsistent | 0.16.0 | MIT/X11 | https://pypi.org/project/pyrsistent/ | Tobias Gustafsson | 2019 |
| pyserial | 3.4 | BSD | https://pypi.org/project/pyserial/ | Chris Liechti | 2001-2016 |
| python-dateutil | 2.8.1 | Apache License, V2.0 | https://pypi.org/project/python-dateutil/ | Gustavo Niemeyer | 2017 |
| python-etcd | 0.4.5 | MIT/X11 | https://pypi.org/project/python-etcd/ | Jose Plana | 2015 |
| python-gnupg | 0.4.6 | BSD | https://pypi.org/project/python-gnupg/ | Vinay Sajip | 2008-2019 |
| python-jose[cryptography] | 3.2.0 | MIT/X11 | https://pypi.org/project/python-jose/ | Michael Davis | 2015 |
| pytz | 2020.1 | MIT/X11 | https://pypi.org/project/pytz/ | Stuart Bishop | 2015 |
| pyvmomi | 7 | Apache License, V2.0 | https://pypi.org/project/pyvmomi/ | VMware, Inc. | 2004 |
| requests | 2.24.0 | Apache License, V2.0 | https://pypi.org/project/requests/ | Kenneth Reitz | 2004 |
| requests-oauthlib | 1.3.0 | BSD | https://pypi.org/project/requests-oauthlib/ | Kenneth Reitz | 2014 |
| responses | 0.10.15 | Apache License, V2.0 | https://pypi.org/project/responses/ | David Cramer | 2004 |
| rfc3987 | 1.3.8 | GNU General Public License, V3.0 | https://pypi.org/project/rfc3987/ | Daniel Gerber | 2007 |
| rsa | 4.6 | Apache License, V2.0 | https://pypi.org/project/rsa/ | Sybren A. Stuvel | 2011 |
| s3transfer | 0.3.3 | Apache License, V2.0 | https://pypi.org/project/s3transfer/ | Amazon Web Services | 2004 |
| scp | 0.13.2 | GNU Lesser General Public License, V2.1 | https://pypi.org/project/scp/ | James Bardin | 2013 |
| setproctitle | 1.1.10 | BSD | https://pypi.org/project/setproctitle/ | Daniele Varrazzo | 2009-2020 |
| setuptools-scm | 4.1.2 | MIT/X11 | https://pypi.org/project/setuptools-scm/ | Ronny Pfannschmidt | 2010 |
| six | 1.15.0 | MIT/X11 | https://pypi.org/project/six/ | Benjamin Peterson | 2010-2020 |
| smmap | 3.0.4 | BSD | https://pypi.org/project/smmap/ | Sebastian Thiel | 2010, 2011 |
| sshpubkeys | 3.1.0 | BSD | https://pypi.org/project/sshpubkeys/ | Olli Jarva | 2014 |
| strict-rfc3339 | 0.7 | GNU General Public License, V3.0 | https://pypi.org/project/strict-rfc3339/ | Daniel Richman, Adam Greig | 2007 |
| tempora | 3.0.0 | MIT/X11 | https://pypi.org/project/tempora/ | Jason R. Coombs | 2020 |
| textfsm | 1.1.0 | Apache License, V2.0 | https://pypi.org/project/textfsm/ | Google | 2004 |
| timelib | 0.2.4 | BSD | https://pypi.org/project/timelib/ | Ralf Schmitt | 2009-2011 |
| toml | 0.10.1 | MIT/X11 | https://pypi.org/project/toml/ | William Pearson | 2013-2019 |
| transitions | 0.8.2 | MIT/X11 | https://pypi.org/project/transitions/ | Tal Yarkoni | 2014 - 2020 |
| urllib3 | 1.25.9 | MIT/X11 | https://pypi.org/project/urllib3/ | Andrey Petrov | 2008-2020 |
| vcert | 0.7.4 | ASL | https://pypi.org/project/vcert | Denis Subbotin | 2018 |
| virtualenv | 20.0.25 | MIT | https://pypi.org/project/virtualenv | Bernat Gabor | 2020-202x |
| watchdog | 0.10.3 | Apache License 2.0 | https://pypi.org/project/watchdog | Yesudeep Mangalapilly | 2012 |
| websocket-client | 0.57.0 | BSD | https://pypi.org/project/websocket-client | liris | 2018 |
| wrapt | 1.12.1 | BSD | https://pypi.org/project/wrapt | Graham Dumpleton | 2013-2019 |
| xmltodict | 0.12.0 | MIT | https://pypi.org/project/xmltodict | Martin Blech | 2010 |
| yamlordereddictloader | 0.4.0 | MIT License | https://pypi.org/project/yamlordereddictloader | François Ménabé | 2017 |
| zc.lockfile | 2 | ZPL 2.1 | https://pypi.org/project/zc.lockfile | Zope Foundation | 2010 |
| zipp | 3.1.0 | MIT | https://pypi.org/project/zipp | Jason R. Coombs | 2019 |

View file

@ -1,3 +0,0 @@
Issue #33669: Fixes an issue with the ``ini_managed`` execution module
where it would always wrap the separator with spaces. Adds a new parameter
named ``no_spaces`` that will not warp the separator with spaces.

View file

@ -1 +0,0 @@
Fixed `salt.*.get` shorthand via Salt-SSH

View file

@ -1,2 +0,0 @@
Commands on Windows are now prefixed with ``cmd /c`` so that compound
commands (commands separated by ``&&``) run properly when using ``runas``

View file

@ -1 +0,0 @@
Fixed erroneous recursive requisite error when a prereq is used in combination with onchanges_any.

View file

@ -1 +0,0 @@
Added metalink to mod_repo in yumpkg and documented in pkgrepo state

View file

@ -1,4 +0,0 @@
Issue 58969: Fixes an issue with `saltclass.expand_classes_in_order`
function where it was losing nested classes states during class
expansion. The logic now use `salt.utils.odict.OrderedDict` to keep
the inclusion ordering.

View file

@ -1 +0,0 @@
Fixed dependency resolution to not be quadratic.

View file

@ -1 +0,0 @@
Added ssl and verify_ssl arguments to mongodb module and states.

View file

@ -1,2 +0,0 @@
Fixed an issue on Windows where checking success_retcodes when using the
runas parameter would fail. Now success_retcodes are checked correctly

View file

@ -1,2 +0,0 @@
Fix an issue with cmd.script in Windows so that the exit code from a script will
be passed through to the retcode of the state

View file

@ -1,2 +0,0 @@
Fixed an issue uninstalling packages on Windows using pkg.removed where there
are multiple versions of the same software installed

View file

@ -1 +0,0 @@
- firewalld: normalize new rich rules before comparing to old ones

View file

@ -1,2 +0,0 @@
Added two new options, ``win_delay_start`` and ``win_install_dir``, to pass to
the Windows installer in salt-cloud

View file

@ -1 +0,0 @@
Ensure file clients for runner, wheel, local and caller are available from the client_cache if called upon.

View file

@ -1 +0,0 @@
Fixed performance when state_aggregate is enabled.

View file

@ -1 +0,0 @@
Convert stdin string to bytes regardless of stdin_raw_newlines

View file

@ -1 +0,0 @@
Add context aware change handling for file state module

View file

@ -1,4 +0,0 @@
Issue 63933: Fixes an issue with `saltclass.expanded_dict_from_minion`
function where it was passing a reference to minion `dict` which was
overridden by nested classes during class expansion. Copy the node
definition with `copy.deepcopy` instead of passing a reference.

View file

@ -1,3 +0,0 @@
Fixed an intermittent issue with file.recurse where the state would
report failure even on success. Makes sure symlinks are created
after the target file is created

View file

@ -1 +0,0 @@
The 'profile' outputter does not crash with incorrectly formatted data

View file

@ -1,2 +0,0 @@
Await on zmq monitor socket's poll method to fix publish server reliability in
environment's with a large amount of minions.

View file

@ -1 +0,0 @@
Fixed aggregation to correctly honor requisites.

View file

@ -1 +0,0 @@
Add ability to show diff for new files in file.managed

View file

@ -1 +0,0 @@
Added Virtuozzo Linux to Redhat os_family

View file

@ -1 +0,0 @@
fix 65703 by using OrderedDict instead of a index that breaks. .

View file

@ -1 +0,0 @@
fix consul.acl_create rule creation

View file

@ -1 +0,0 @@
Fix salt-cloud get_cloud_config_value for list objects

View file

@ -1 +0,0 @@
Made Salt Cloud Hetzner module detect image architecture from instance type

View file

@ -1 +0,0 @@
Remove commuity extensions from Salt codebase

View file

@ -1 +0,0 @@
Make `salt-run jobs.master` return runner jobs that are currently running on a master.

View file

@ -1 +0,0 @@
Ansiblegate discover_playbooks was changed to find playbooks as either *.yml or *.yaml files

View file

@ -1 +0,0 @@
re-work the aptpkg module to remove system libraries that onedir and virtualenvs do not have access. Streamline testing, and code use to needed libraries only.

View file

@ -1 +0,0 @@
Fix file.managed and file.serialize default tmp_dir to relative path

View file

@ -1 +0,0 @@
Added file and plaintext sources to `gpg.present`, allowed to skip keyserver queries

View file

@ -1 +0,0 @@
Make win_timezone recognize Qyzylorda timezone

View file

@ -1 +0,0 @@
added pkg.which to aptpkg, for finding which package installed a file.

View file

@ -1 +0,0 @@
Allow pre-connection scripts to be run on host before any ssh commands

View file

@ -1 +0,0 @@
Fix vault module doesn't respect `server.verify` option during unwrap if verify is set to `False` or CA file on the disk

View file

@ -1 +0,0 @@
Make sure the master_event_pub.ipc file has correct reed/write permissions for salt group.

View file

@ -1 +0,0 @@
Fix batch mode hang indefinitely in some scenarios

View file

@ -1 +0,0 @@
Added port, tls, username and password to the `smtp` configuration of the highstate returner.

View file

@ -1 +0,0 @@
Applying `selinux.fcontext_policy_present` to a shorter path than an existing entry now works

View file

@ -1 +0,0 @@
Made gpg modules create GNUPGHOME if it does not exist

View file

@ -1 +0,0 @@
Made gpg modules respect user's GNUPGHOME if set in shell environment

View file

@ -1 +0,0 @@
Made `gpg.present` attempt to refresh keys if they are expired

View file

@ -1 +0,0 @@
fix #66194: Exchange HTTPClient by AsyncHTTPClient in salt.utils.http

View file

@ -1 +0,0 @@
Fixed `salt.*.*` attribute syntax for non-Jinja renderers via Salt-SSH

View file

@ -1 +0,0 @@
Made x509_v2 the default x509 modules. Until they are removed in the next major release, you can still revert to the old modules by setting `features: {x509_v2: false}` in the configuration

View file

@ -1,3 +0,0 @@
Fixed an issue where conflicting top level keys in the static grains file
(usually `/etc/salt/grains`) would break all grains states, and prevent static
grains from being loaded.

View file

@ -1 +0,0 @@
Improve macOS defaults support

View file

@ -1 +0,0 @@
Remove psutil_compat.py file, which should have been removed when RHEL 6 EOL

View file

@ -1 +0,0 @@
Added support for specifying different signature verification backends in `file.managed`/`archive.extracted`

View file

@ -1 +0,0 @@
Added an `asymmetric` execution module for signing/verifying data using raw asymmetric algorithms

View file

@ -1 +0,0 @@
Included Salt extensions in Salt-SSH thin archive

View file

@ -1 +0,0 @@
Correct bash-completion for Debian / Ubuntu

View file

@ -1 +0,0 @@
Fix minion config option startup_states

View file

@ -1,2 +0,0 @@
Fixed an issue with cmd.run with requirements when the shell is not the
default

View file

@ -1 +0,0 @@
Fixed accessing wrapper modules in Salt-SSH Jinja templates via attribute syntax

View file

@ -1 +0,0 @@
Fixed Salt-SSH crash when key deploy is skipped manually

View file

@ -1 +0,0 @@
Add support for additional options in several mac_brew_pkg methods

View file

@ -1,4 +0,0 @@
Fixes an issue when getting account names using the get_name function in the
win_dacl.py salt util. Capability SIDs return ``None``. SIDs for deleted
accounts return the SID. SIDs for domain accounts where the system is not
connected to the domain return the SID.

View file

@ -1,2 +0,0 @@
Fixed an issue where ``status.master`` wasn't detecting a connection to the
specified master properly

View file

@ -1,2 +0,0 @@
Fixed ``win_wua.available`` when some of the update objects are empty CDispatch
objects. The ``available`` function no longer crashes

View file

@ -1 +0,0 @@
Clean up multiprocessing file handles on minion

View file

@ -1 +0,0 @@
Use `--cachedir` parameter for setting `extension_modules` with salt-call.

View file

@ -1 +0,0 @@
Fixed nacl.keygen for not yet existing sk_file or pk_file

View file

@ -1 +0,0 @@
fix yaml output

View file

@ -1,2 +0,0 @@
Fixed an issue where enabling `grain_opts` in the minion config would cause
some core grains to be overwritten.

View file

@ -1,2 +0,0 @@
Fix an issue where files created using `salt.utils.atomicile.atomic_open()`
were created with restrictive permissions instead of respecting the umask.

View file

@ -1 +0,0 @@
Fix bad async_method name on AsyncPubClient class

View file

@ -1 +0,0 @@
Ensure Manjaro ARM reports the correct os_family of Arch.

View file

@ -1,2 +0,0 @@
Removed ``salt.utils.data.decode`` usage from the fileserver. This function was
necessary to support Python 2. This speeds up loading the list cache by 80-90x.

Some files were not shown because too many files have changed in this diff Show more