From 6c39ed458f39861f5c6a7900be3b12bae9274e95 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 14:40:15 +0000 Subject: [PATCH 01/18] Fix artifact downloads when testing package downloads Signed-off-by: Pedro Algarvio --- .../templates/test-package-downloads-action.yml.jinja | 8 ++++---- .github/workflows/test-package-downloads-action.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index ee7f19c7175..979dba27512 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -86,7 +86,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v4 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -94,12 +94,12 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz - - name: Download nox.linux.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + - name: Download nox.linux.${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} uses: actions/download-artifact@v4 with: - name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} + name: nox-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index a031416d943..ec1c2a83d23 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -231,7 +231,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v4 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -239,12 +239,12 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz - - name: Download nox.linux.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + - name: Download nox.linux.${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} uses: actions/download-artifact@v4 with: - name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} + name: nox-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts From a51d3e00dd9810400398e83f462f35a4e26a3292 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 15:00:10 +0000 Subject: [PATCH 02/18] Fix the Mac OS onedir package download tests Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/download/test_pkg_download.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pytests/pkg/download/test_pkg_download.py b/tests/pytests/pkg/download/test_pkg_download.py index dce3880ed8b..a71d4b038e9 100644 --- a/tests/pytests/pkg/download/test_pkg_download.py +++ b/tests/pytests/pkg/download/test_pkg_download.py @@ -431,7 +431,7 @@ def setup_macos( assert ret.returncode == 0, ret else: # We are testing the onedir download - onedir_name = f"salt-{salt_release}-onedir-darwin-{arch}.tar.xz" + onedir_name = f"salt-{salt_release}-onedir-macos-{arch}.tar.xz" if repo_subpath == "minor": repo_url_base = f"{root_url}/onedir/{repo_subpath}/{salt_release}" else: From f1ed56c2a5311c6552e9ed3f3629e07dfc1ae426 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 19:14:23 +0000 Subject: [PATCH 03/18] Programmatically discover which OS versions to build repos Signed-off-by: Pedro Algarvio --- .github/workflows/nightly.yml | 92 +++++++++++++++++------------------ .github/workflows/staging.yml | 92 +++++++++++++++++------------------ tools/precommit/workflows.py | 47 ++++++++++++------ 3 files changed, 121 insertions(+), 110 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index ae18627bc9d..06159dd6f90 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -2239,6 +2239,14 @@ jobs: distro: ubuntu version: "22.04" arch: arm64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: x86_64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: arm64 steps: - uses: actions/checkout@v4 @@ -2352,54 +2360,6 @@ jobs: distro: amazon version: "2023" arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: aarch64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: x86_64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: arm64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: aarch64 - pkg-type: rpm distro: fedora version: "37" @@ -2460,6 +2420,42 @@ jobs: distro: photon version: "5" arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: aarch64 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 8618905eaa5..fa11eb82402 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -2082,6 +2082,14 @@ jobs: distro: ubuntu version: "22.04" arch: arm64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: x86_64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: arm64 steps: - uses: actions/checkout@v4 @@ -2195,54 +2203,6 @@ jobs: distro: amazon version: "2023" arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: aarch64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: x86_64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: arm64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: aarch64 - pkg-type: rpm distro: fedora version: "37" @@ -2303,6 +2263,42 @@ jobs: distro: photon version: "5" arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: aarch64 steps: - uses: actions/checkout@v4 diff --git a/tools/precommit/workflows.py b/tools/precommit/workflows.py index e76b77564b3..1f8f8755656 100644 --- a/tools/precommit/workflows.py +++ b/tools/precommit/workflows.py @@ -253,24 +253,43 @@ def generate_workflows(ctx: Context): test_salt_pkg_downloads_needs_slugs.add("build-ci-deps") build_rpms_listing = [] - for distro, releases in ( - ("amazon", ("2", "2023")), - ("redhat", ("7", "8", "9")), - ("fedora", ("36", "37", "38")), - ("photon", ("3", "4", "5")), - ): - for release in releases: + rpm_os_versions: dict[str, list[str]] = { + "amazon": [], + "fedora": [], + "photon": [], + "redhat": [], + } + for slug in sorted(AMIS): + if slug.endswith("-arm64"): + continue + if not slug.startswith( + ("amazonlinux", "almalinux", "centos", "fedora", "photonos") + ): + continue + os_name, os_version = slug.split("-") + if os_name == "amazonlinux": + rpm_os_versions["amazon"].append(os_version) + elif os_name == "photonos": + rpm_os_versions["photon"].append(os_version) + elif os_name == "fedora": + rpm_os_versions["fedora"].append(os_version) + else: + rpm_os_versions["redhat"].append(os_version) + + for distro, releases in sorted(rpm_os_versions.items()): + for release in sorted(set(releases)): for arch in ("x86_64", "arm64", "aarch64"): build_rpms_listing.append((distro, release, arch)) build_debs_listing = [] - for distro, releases in ( - ("debian", ("10", "11", "12")), - ("ubuntu", ("20.04", "22.04")), - ): - for release in releases: - for arch in ("x86_64", "arm64"): - build_debs_listing.append((distro, release, arch)) + for slug in sorted(AMIS): + if not slug.startswith(("debian-", "ubuntu-")): + continue + if slug.endswith("-arm64"): + continue + os_name, os_version = slug.split("-") + for arch in ("x86_64", "arm64"): + build_debs_listing.append((os_name, os_version, arch)) env = Environment( block_start_string="<%", From 5176efd7f8f8808732be449e4f9a5a9355c0f1ed Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 21:36:36 +0000 Subject: [PATCH 04/18] Allow creating the packages repository for Ubuntu 23.04 Signed-off-by: Pedro Algarvio --- tools/pkg/repo/create.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index bc36463bbf6..ba2f7834b22 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -62,6 +62,10 @@ _deb_distro_info = { "label": "salt_ubuntu2204", "codename": "jammy", }, + "23.04": { + "label": "salt_ubuntu2304", + "codename": "mantic", + }, }, } From 3f378cb381c45ff7e87e1b26aa52647e6d7d5c03 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 26 Jan 2024 04:53:15 +0000 Subject: [PATCH 05/18] Fix Ubuntu 23.04 code name Signed-off-by: Pedro Algarvio --- tools/pkg/repo/create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index ba2f7834b22..1457d84a7af 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -64,7 +64,7 @@ _deb_distro_info = { }, "23.04": { "label": "salt_ubuntu2304", - "codename": "mantic", + "codename": "lunar", }, }, } From 75118c6e53e2867f1cfb673f0019c148d871c841 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 26 Jan 2024 15:46:53 +0000 Subject: [PATCH 06/18] Fix static requirements --- requirements/static/ci/py3.10/windows.txt | 4 +++- requirements/static/ci/py3.11/windows.txt | 4 +++- requirements/static/ci/py3.12/windows.txt | 4 +++- requirements/static/ci/py3.7/windows.txt | 4 +++- requirements/static/ci/py3.8/windows.txt | 4 +++- requirements/static/ci/py3.9/windows.txt | 4 +++- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index 1da9f4396f5..6dd5ab23af4 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -487,8 +487,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.10/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.28.0 diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index 06672cb1455..0a59ba638b2 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -481,8 +481,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.11/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.28.0 diff --git a/requirements/static/ci/py3.12/windows.txt b/requirements/static/ci/py3.12/windows.txt index ae67b7afa56..d4189423f87 100644 --- a/requirements/static/ci/py3.12/windows.txt +++ b/requirements/static/ci/py3.12/windows.txt @@ -481,8 +481,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.12/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.28.0 diff --git a/requirements/static/ci/py3.7/windows.txt b/requirements/static/ci/py3.7/windows.txt index dba21dfd663..0a79d8f3144 100644 --- a/requirements/static/ci/py3.7/windows.txt +++ b/requirements/static/ci/py3.7/windows.txt @@ -509,8 +509,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.7/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.7/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.26.3 diff --git a/requirements/static/ci/py3.8/windows.txt b/requirements/static/ci/py3.8/windows.txt index c724b70e723..d8f1b73f25b 100644 --- a/requirements/static/ci/py3.8/windows.txt +++ b/requirements/static/ci/py3.8/windows.txt @@ -490,8 +490,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.8/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.8/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.26.3 diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index 97c87cadde5..2a126b2b8e4 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -491,8 +491,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.26.3 From ecf154ca51cc220479caf5b1b368aa60ba467333 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 30 Jan 2024 11:26:39 +0000 Subject: [PATCH 07/18] Deprecate and stop using `salt.features` Fixes https://github.com/saltstack/salt/issues/65951 --- changelog/65951.deprecated.md | 1 + salt/config/__init__.py | 13 ++++++++++ salt/features.py | 8 ++++++ salt/states/saltmod.py | 9 +++---- salt/states/x509.py | 3 +-- salt/states/x509_v2.py | 3 +-- salt/utils/parsers.py | 47 ++++++++--------------------------- 7 files changed, 39 insertions(+), 45 deletions(-) create mode 100644 changelog/65951.deprecated.md diff --git a/changelog/65951.deprecated.md b/changelog/65951.deprecated.md new file mode 100644 index 00000000000..833f9bf478d --- /dev/null +++ b/changelog/65951.deprecated.md @@ -0,0 +1 @@ +Deprecate and stop using ``salt.features`` diff --git a/salt/config/__init__.py b/salt/config/__init__.py index f946bc7f010..ee18ccb3b52 100644 --- a/salt/config/__init__.py +++ b/salt/config/__init__.py @@ -14,6 +14,7 @@ from copy import deepcopy import salt.defaults.exitcodes import salt.exceptions +import salt.features import salt.syspaths import salt.utils.data import salt.utils.dictupdate @@ -1302,6 +1303,7 @@ DEFAULT_MINION_OPTS = immutabletypes.freeze( "global_state_conditions": None, "reactor_niceness": None, "fips_mode": False, + "features": {}, } ) @@ -1647,6 +1649,7 @@ DEFAULT_MASTER_OPTS = immutabletypes.freeze( "netapi_enable_clients": [], "maintenance_interval": 3600, "fileserver_interval": 3600, + "features": {}, } ) @@ -1681,6 +1684,7 @@ DEFAULT_PROXY_MINION_OPTS = immutabletypes.freeze( "pki_dir": os.path.join(salt.syspaths.LIB_STATE_DIR, "pki", "proxy"), "cachedir": os.path.join(salt.syspaths.CACHE_DIR, "proxy"), "sock_dir": os.path.join(salt.syspaths.SOCK_DIR, "proxy"), + "features": {}, } ) @@ -1714,6 +1718,7 @@ DEFAULT_CLOUD_OPTS = immutabletypes.freeze( "log_rotate_backup_count": 0, "bootstrap_delay": 0, "cache": "localfs", + "features": {}, } ) @@ -2324,6 +2329,7 @@ def minion_config( if role != "master": apply_sdb(opts) _validate_opts(opts) + salt.features.setup_features(opts) return opts @@ -2335,6 +2341,7 @@ def mminion_config(path, overrides, ignore_config_errors=True): _validate_opts(opts) opts["grains"] = salt.loader.grains(opts) opts["pillar"] = {} + salt.features.setup_features(opts) return opts @@ -2421,6 +2428,7 @@ def proxy_config( apply_sdb(opts) _validate_opts(opts) + salt.features.setup_features(opts) return opts @@ -2498,6 +2506,7 @@ def syndic_config( if urllib.parse.urlparse(opts.get(config_key, "")).scheme == "": prepend_root_dirs.append(config_key) prepend_root_dir(opts, prepend_root_dirs) + salt.features.setup_features(opts) return opts @@ -2750,6 +2759,7 @@ def cloud_config( prepend_root_dirs.append(opts["log_file"]) prepend_root_dir(opts, prepend_root_dirs) + salt.features.setup_features(opts) # Return the final options return opts @@ -3923,6 +3933,7 @@ def master_config( if salt.utils.data.is_dictlist(opts["nodegroups"]): opts["nodegroups"] = salt.utils.data.repack_dictlist(opts["nodegroups"]) apply_sdb(opts) + salt.features.setup_features(opts) return opts @@ -4162,6 +4173,7 @@ def client_config(path, env_var="SALT_CLIENT_CONFIG", defaults=None): # Return the client options _validate_opts(opts) + salt.features.setup_features(opts) return opts @@ -4185,6 +4197,7 @@ def api_config(path): ) prepend_root_dir(opts, ["api_pidfile", "api_logfile", "log_file", "pidfile"]) + salt.features.setup_features(opts) return opts diff --git a/salt/features.py b/salt/features.py index ad00130c84b..4335c46ca5a 100644 --- a/salt/features.py +++ b/salt/features.py @@ -21,6 +21,14 @@ class Features: log.warning("Features already setup") def get(self, key, default=None): + import salt.utils.versions + + salt.utils.versions.warn_until( + 3008, + "Please stop checking feature flags using 'salt.features' and instead " + "check the 'features' keyword on the configuration dictionary. The " + "'salt.features' module will go away in {version}.", + ) return self.features.get(key, default) diff --git a/salt/states/saltmod.py b/salt/states/saltmod.py index 1f30d0fa38a..386c5811ceb 100644 --- a/salt/states/saltmod.py +++ b/salt/states/saltmod.py @@ -33,7 +33,6 @@ import salt.syspaths import salt.utils.data import salt.utils.event import salt.utils.versions -from salt.features import features log = logging.getLogger(__name__) @@ -812,11 +811,11 @@ def runner(name, **kwargs): "executed" if success else "failed", ) - if features.get("enable_deprecated_orchestration_flag", False): + if __opts__["features"].get("enable_deprecated_orchestration_flag", False): ret["__orchestration__"] = True salt.utils.versions.warn_until( - "Argon", - "The __orchestration__ return flag will be removed in Salt Argon. " + 3008, + "The __orchestration__ return flag will be removed in {version}. " "For more information see https://github.com/saltstack/salt/pull/59917.", ) @@ -1061,7 +1060,7 @@ def wheel(name, **kwargs): "executed" if success else "failed", ) - if features.get("enable_deprecated_orchestration_flag", False): + if __opts__["features"].get("enable_deprecated_orchestration_flag", False): ret["__orchestration__"] = True salt.utils.versions.warn_until( "Argon", diff --git a/salt/states/x509.py b/salt/states/x509.py index aebbc4cc821..0a8d988fa0f 100644 --- a/salt/states/x509.py +++ b/salt/states/x509.py @@ -191,7 +191,6 @@ import re import salt.exceptions import salt.utils.versions -from salt.features import features try: from M2Crypto.RSA import RSAError @@ -205,7 +204,7 @@ def __virtual__(): """ only load this module if the corresponding execution module is loaded """ - if features.get("x509_v2"): + if __opts__["features"].get("x509_v2"): return (False, "Superseded, using x509_v2") if "x509.get_pem_entry" in __salt__: salt.utils.versions.warn_until( diff --git a/salt/states/x509_v2.py b/salt/states/x509_v2.py index ee04eba610a..ffabf7a4a83 100644 --- a/salt/states/x509_v2.py +++ b/salt/states/x509_v2.py @@ -188,7 +188,6 @@ import os.path import salt.utils.files from salt.exceptions import CommandExecutionError, SaltInvocationError -from salt.features import features from salt.state import STATE_INTERNAL_KEYWORDS as _STATE_INTERNAL_KEYWORDS try: @@ -211,7 +210,7 @@ __virtualname__ = "x509" def __virtual__(): if not HAS_CRYPTOGRAPHY: return (False, "Could not load cryptography") - if not features.get("x509_v2"): + if not __opts__["features"].get("x509_v2"): return ( False, "x509_v2 needs to be explicitly enabled by setting `x509_v2: true` " diff --git a/salt/utils/parsers.py b/salt/utils/parsers.py index f3ba1948d89..036530820d8 100644 --- a/salt/utils/parsers.py +++ b/salt/utils/parsers.py @@ -25,7 +25,6 @@ import salt._logging import salt.config as config import salt.defaults.exitcodes import salt.exceptions -import salt.features import salt.syspaths as syspaths import salt.utils.args import salt.utils.data @@ -1937,9 +1936,7 @@ class MasterOptionParser( _default_logging_logfile_ = config.DEFAULT_MASTER_OPTS["log_file"] def setup_config(self): - opts = config.master_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.master_config(self.get_config_file_path()) class MinionOptionParser( @@ -1954,13 +1951,11 @@ class MinionOptionParser( _default_logging_logfile_ = config.DEFAULT_MINION_OPTS["log_file"] def setup_config(self): - opts = config.minion_config( + return config.minion_config( self.get_config_file_path(), # pylint: disable=no-member cache_minion_id=True, ignore_config_errors=False, ) - salt.features.setup_features(opts) - return opts class ProxyMinionOptionParser( @@ -1991,11 +1986,9 @@ class ProxyMinionOptionParser( except AttributeError: minion_id = None - opts = config.proxy_config( + return config.proxy_config( self.get_config_file_path(), cache_minion_id=False, minion_id=minion_id ) - salt.features.setup_features(opts) - return opts class SyndicOptionParser( @@ -2025,11 +2018,9 @@ class SyndicOptionParser( ] def setup_config(self): - opts = config.syndic_config( + return config.syndic_config( self.get_config_file_path(), self.get_config_file_path("minion") ) - salt.features.setup_features(opts) - return opts class SaltCMDOptionParser( @@ -2368,9 +2359,7 @@ class SaltCMDOptionParser( self.exit(42, "\nIncomplete options passed.\n\n") def setup_config(self): - opts = config.client_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.client_config(self.get_config_file_path()) class SaltCPOptionParser( @@ -2441,9 +2430,7 @@ class SaltCPOptionParser( self.config["dest"] = self.args[-1] def setup_config(self): - opts = config.master_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.master_config(self.get_config_file_path()) class SaltKeyOptionParser( @@ -2735,7 +2722,6 @@ class SaltKeyOptionParser( # Since we're generating the keys, some defaults can be assumed # or tweaked keys_config["pki_dir"] = self.options.gen_keys_dir - salt.features.setup_features(keys_config) return keys_config def process_rotate_aes_key(self): @@ -2984,7 +2970,6 @@ class SaltCallOptionParser( opts = config.minion_config( self.get_config_file_path(), cache_minion_id=True ) - salt.features.setup_features(opts) return opts def process_module_dirs(self): @@ -3086,9 +3071,7 @@ class SaltRunOptionParser( self.config["arg"] = [] def setup_config(self): - opts = config.client_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.client_config(self.get_config_file_path()) class SaltSSHOptionParser( @@ -3428,9 +3411,7 @@ class SaltSSHOptionParser( break def setup_config(self): - opts = config.master_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.master_config(self.get_config_file_path()) class SaltCloudParser( @@ -3491,11 +3472,9 @@ class SaltCloudParser( def setup_config(self): try: - opts = config.cloud_config(self.get_config_file_path()) + return config.cloud_config(self.get_config_file_path()) except salt.exceptions.SaltCloudConfigError as exc: self.error(exc) - salt.features.setup_features(opts) - return opts class SPMParser( @@ -3551,9 +3530,7 @@ class SPMParser( self.error("Insufficient arguments") def setup_config(self): - opts = salt.config.spm_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return salt.config.spm_config(self.get_config_file_path()) class SaltAPIParser( @@ -3579,8 +3556,6 @@ class SaltAPIParser( _default_logging_logfile_ = config.DEFAULT_API_OPTS[_logfile_config_setting_name_] def setup_config(self): - opts = salt.config.api_config( + return salt.config.api_config( self.get_config_file_path() ) # pylint: disable=no-member - salt.features.setup_features(opts) - return opts From 95e7e330d72932920ea688ee10f32faaade28e30 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 30 Jan 2024 16:15:48 +0000 Subject: [PATCH 08/18] Bump to `aiohttp==3.9.2` due to https://github.com/advisories/GHSA-5h86-8mv2-jq9f --- requirements/static/ci/py3.10/cloud.txt | 2 +- requirements/static/ci/py3.10/darwin.txt | 2 +- requirements/static/ci/py3.10/freebsd.txt | 2 +- requirements/static/ci/py3.10/lint.txt | 2 +- requirements/static/ci/py3.10/linux.txt | 2 +- requirements/static/ci/py3.10/windows.txt | 2 +- requirements/static/ci/py3.11/cloud.txt | 2 +- requirements/static/ci/py3.11/darwin.txt | 2 +- requirements/static/ci/py3.11/freebsd.txt | 2 +- requirements/static/ci/py3.11/lint.txt | 2 +- requirements/static/ci/py3.11/linux.txt | 2 +- requirements/static/ci/py3.11/windows.txt | 2 +- requirements/static/ci/py3.12/cloud.txt | 2 +- requirements/static/ci/py3.12/darwin.txt | 2 +- requirements/static/ci/py3.12/freebsd.txt | 2 +- requirements/static/ci/py3.12/lint.txt | 2 +- requirements/static/ci/py3.12/linux.txt | 2 +- requirements/static/ci/py3.12/windows.txt | 2 +- requirements/static/ci/py3.8/cloud.txt | 2 +- requirements/static/ci/py3.8/freebsd.txt | 2 +- requirements/static/ci/py3.8/lint.txt | 2 +- requirements/static/ci/py3.8/linux.txt | 2 +- requirements/static/ci/py3.8/windows.txt | 2 +- requirements/static/ci/py3.9/cloud.txt | 2 +- requirements/static/ci/py3.9/darwin.txt | 2 +- requirements/static/ci/py3.9/freebsd.txt | 2 +- requirements/static/ci/py3.9/lint.txt | 2 +- requirements/static/ci/py3.9/linux.txt | 2 +- requirements/static/ci/py3.9/windows.txt | 2 +- 29 files changed, 29 insertions(+), 29 deletions(-) diff --git a/requirements/static/ci/py3.10/cloud.txt b/requirements/static/ci/py3.10/cloud.txt index 2abef7dc72f..73544193c42 100644 --- a/requirements/static/ci/py3.10/cloud.txt +++ b/requirements/static/ci/py3.10/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.10/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.10/darwin.txt b/requirements/static/ci/py3.10/darwin.txt index 49ff4eda395..3f32008b890 100644 --- a/requirements/static/ci/py3.10/darwin.txt +++ b/requirements/static/ci/py3.10/darwin.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.10/freebsd.txt b/requirements/static/ci/py3.10/freebsd.txt index 4dad13a2b3d..68574e3a32f 100644 --- a/requirements/static/ci/py3.10/freebsd.txt +++ b/requirements/static/ci/py3.10/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.10/lint.txt b/requirements/static/ci/py3.10/lint.txt index 3ac30d98e70..4e053a501bb 100644 --- a/requirements/static/ci/py3.10/lint.txt +++ b/requirements/static/ci/py3.10/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.10/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.10/linux.txt b/requirements/static/ci/py3.10/linux.txt index ad1636529a6..e48813a9038 100644 --- a/requirements/static/ci/py3.10/linux.txt +++ b/requirements/static/ci/py3.10/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index 6dd5ab23af4..3f62cdfd6a3 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.3.1 # via aiohttp diff --git a/requirements/static/ci/py3.11/cloud.txt b/requirements/static/ci/py3.11/cloud.txt index d15bdd12fac..85a7953dfb7 100644 --- a/requirements/static/ci/py3.11/cloud.txt +++ b/requirements/static/ci/py3.11/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.11/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.11/darwin.txt b/requirements/static/ci/py3.11/darwin.txt index afddd1d39aa..1082b7171cd 100644 --- a/requirements/static/ci/py3.11/darwin.txt +++ b/requirements/static/ci/py3.11/darwin.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.11/freebsd.txt b/requirements/static/ci/py3.11/freebsd.txt index e02c2cc4c32..e2ebbd35d7d 100644 --- a/requirements/static/ci/py3.11/freebsd.txt +++ b/requirements/static/ci/py3.11/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.11/lint.txt b/requirements/static/ci/py3.11/lint.txt index 6a9e5b58469..4c76d5b20f1 100644 --- a/requirements/static/ci/py3.11/lint.txt +++ b/requirements/static/ci/py3.11/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.11/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.11/linux.txt b/requirements/static/ci/py3.11/linux.txt index c8fb1c4e96c..adfca9f2384 100644 --- a/requirements/static/ci/py3.11/linux.txt +++ b/requirements/static/ci/py3.11/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index 0a59ba638b2..70227fb36c4 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.3.1 # via aiohttp diff --git a/requirements/static/ci/py3.12/cloud.txt b/requirements/static/ci/py3.12/cloud.txt index b00e9596234..326f1bb2141 100644 --- a/requirements/static/ci/py3.12/cloud.txt +++ b/requirements/static/ci/py3.12/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.12/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.12/darwin.txt b/requirements/static/ci/py3.12/darwin.txt index 9160cc7e38c..abe377b038c 100644 --- a/requirements/static/ci/py3.12/darwin.txt +++ b/requirements/static/ci/py3.12/darwin.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.12/freebsd.txt b/requirements/static/ci/py3.12/freebsd.txt index ebd1645bd69..532be3a78a1 100644 --- a/requirements/static/ci/py3.12/freebsd.txt +++ b/requirements/static/ci/py3.12/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.12/lint.txt b/requirements/static/ci/py3.12/lint.txt index 0052be08a93..c0c5927cfbe 100644 --- a/requirements/static/ci/py3.12/lint.txt +++ b/requirements/static/ci/py3.12/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.12/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.12/linux.txt b/requirements/static/ci/py3.12/linux.txt index 7f98b8c08cb..5103c4956bb 100644 --- a/requirements/static/ci/py3.12/linux.txt +++ b/requirements/static/ci/py3.12/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.12/windows.txt b/requirements/static/ci/py3.12/windows.txt index d4189423f87..6b667c63190 100644 --- a/requirements/static/ci/py3.12/windows.txt +++ b/requirements/static/ci/py3.12/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.3.1 # via aiohttp diff --git a/requirements/static/ci/py3.8/cloud.txt b/requirements/static/ci/py3.8/cloud.txt index 48208fbcded..3f817ef0075 100644 --- a/requirements/static/ci/py3.8/cloud.txt +++ b/requirements/static/ci/py3.8/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.8/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.8/freebsd.txt b/requirements/static/ci/py3.8/freebsd.txt index 0a2ed4459d2..e879d25ba5c 100644 --- a/requirements/static/ci/py3.8/freebsd.txt +++ b/requirements/static/ci/py3.8/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.8/lint.txt b/requirements/static/ci/py3.8/lint.txt index 5b10cbe8a36..f708fd610aa 100644 --- a/requirements/static/ci/py3.8/lint.txt +++ b/requirements/static/ci/py3.8/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.8/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.8/linux.txt b/requirements/static/ci/py3.8/linux.txt index bd2983159f5..12d29cf02f7 100644 --- a/requirements/static/ci/py3.8/linux.txt +++ b/requirements/static/ci/py3.8/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.8/windows.txt b/requirements/static/ci/py3.8/windows.txt index d8f1b73f25b..fd9ab313318 100644 --- a/requirements/static/ci/py3.8/windows.txt +++ b/requirements/static/ci/py3.8/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.9/cloud.txt b/requirements/static/ci/py3.9/cloud.txt index 0a7d77d0f79..a9647fa16f3 100644 --- a/requirements/static/ci/py3.9/cloud.txt +++ b/requirements/static/ci/py3.9/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.9/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt index 497a510321c..70e8f14f62d 100644 --- a/requirements/static/ci/py3.9/darwin.txt +++ b/requirements/static/ci/py3.9/darwin.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt index 59ed8b4c4cf..936b1488c4f 100644 --- a/requirements/static/ci/py3.9/freebsd.txt +++ b/requirements/static/ci/py3.9/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt index 189b5f0d2e9..33302ded997 100644 --- a/requirements/static/ci/py3.9/lint.txt +++ b/requirements/static/ci/py3.9/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.9/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt index b47b8d5ce5c..b1b23b350bd 100644 --- a/requirements/static/ci/py3.9/linux.txt +++ b/requirements/static/ci/py3.9/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index 2a126b2b8e4..8abf5a0081d 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp From 9e353f85118bd746f75176244c26661de6d26d66 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 12:53:05 +0000 Subject: [PATCH 09/18] Fix docs builds --- .github/workflows/build-docs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index e99c84ef303..53bc06fbd62 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -76,10 +76,10 @@ jobs: - name: Prepare Docs Build run: | - git clone https://gitlab.com/saltstack/open/docs/builddocs.git .builddocs + git clone https://gitlab.com/saltstack/open/docs/builddocs-fonts.git .builddocs-fonts sudo mkdir -p /usr/share/fonts/truetype /usr/share/fonts/opentype - sudo cp -rfv .builddocs/builddocs/files/fonts/truetype/*.ttf /usr/share/fonts/truetype/ - sudo cp -rfv .builddocs/builddocs/files/fonts/opentype/*.otf /usr/share/fonts/opentype/ + sudo cp -rfv .builddocs-fonts/*.ttf /usr/share/fonts/truetype/ + sudo cp -rfv .builddocs-fonts/*.otf /usr/share/fonts/opentype/ sudo fc-cache -f -v - name: Build Documentation (${{ matrix.docs-output }}) From 56b0646f2bced5aef15486735e82450b2a001e18 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Sun, 28 Jan 2024 20:23:06 +0700 Subject: [PATCH 10/18] Allow synced modules to override salt extensions --- salt/loader/__init__.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/salt/loader/__init__.py b/salt/loader/__init__.py index 38382a32a51..efb0b854131 100644 --- a/salt/loader/__init__.py +++ b/salt/loader/__init__.py @@ -130,17 +130,18 @@ def _module_dirs( ): if tag is None: tag = ext_type - sys_types = os.path.join(base_path or str(SALT_BASE_PATH), int_type or ext_type) - return_types = [sys_types] - if opts.get("extension_modules"): - ext_types = os.path.join(opts["extension_modules"], ext_type) - return_types.insert(0, ext_types) + sys_types = [os.path.join(base_path or str(SALT_BASE_PATH), int_type or ext_type)] - if not sys_types.startswith(SALT_INTERNAL_LOADERS_PATHS): + if opts.get("extension_modules"): + ext_types = [os.path.join(opts["extension_modules"], ext_type)] + else: + ext_types = [] + + if not sys_types[0].startswith(SALT_INTERNAL_LOADERS_PATHS): raise RuntimeError( "{!r} is not considered a salt internal loader path. If this " "is a new loader being added, please also add it to " - "{}.SALT_INTERNAL_LOADERS_PATHS.".format(sys_types, __name__) + "{}.SALT_INTERNAL_LOADERS_PATHS.".format(sys_types[0], __name__) ) ext_type_types = [] @@ -250,7 +251,7 @@ def _module_dirs( if os.path.isdir(maybe_dir): cli_module_dirs.insert(0, maybe_dir) - return cli_module_dirs + ext_type_types + return_types + return cli_module_dirs + ext_types + ext_type_types + sys_types def minion_mods( From be83897d23d5ececc413f3d7e8d7349ef82cb316 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Mon, 29 Jan 2024 15:51:16 +0700 Subject: [PATCH 11/18] Add opt-out feature toggle --- salt/loader/__init__.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/salt/loader/__init__.py b/salt/loader/__init__.py index efb0b854131..c999dcfec5d 100644 --- a/salt/loader/__init__.py +++ b/salt/loader/__init__.py @@ -28,6 +28,7 @@ import salt.utils.platform import salt.utils.stringutils import salt.utils.versions from salt.exceptions import LoaderError +from salt.features import features from salt.template import check_render_pipe_str from salt.utils import entrypoints @@ -251,7 +252,15 @@ def _module_dirs( if os.path.isdir(maybe_dir): cli_module_dirs.insert(0, maybe_dir) - return cli_module_dirs + ext_types + ext_type_types + sys_types + if features.get("enable_deprecated_module_search_path_priority", False): + salt.utils.versions.warn_until( + 3008, + "The old module search path priority will be removed in Salt Argon. " + "For more information see https://github.com/saltstack/salt/pull/65938.", + ) + return cli_module_dirs + ext_type_types + ext_types + sys_types + else: + return cli_module_dirs + ext_types + ext_type_types + sys_types def minion_mods( From 85cce64de92aa0ab2f8b7993e5f28643af02bb2e Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Mon, 29 Jan 2024 15:51:50 +0700 Subject: [PATCH 12/18] Add functional test --- .../pytests/functional/loader/test_loader.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/pytests/functional/loader/test_loader.py b/tests/pytests/functional/loader/test_loader.py index 963d33f59c3..5d1e7989f50 100644 --- a/tests/pytests/functional/loader/test_loader.py +++ b/tests/pytests/functional/loader/test_loader.py @@ -1,4 +1,5 @@ import json +import shutil import pytest @@ -26,6 +27,50 @@ def venv(tmp_path): yield _venv +@pytest.fixture +def module_dirs(tmp_path): + module_dir = tmp_path / "module-dir-base" + (module_dir / "modules").mkdir(parents=True) + try: + yield [str(module_dir)] + finally: + shutil.rmtree(str(module_dir), ignore_errors=True) + + +def test_module_dirs_priority(venv, salt_extension, salt_minion_factory, module_dirs): + # Install our extension into the virtualenv + venv.install(str(salt_extension.srcdir)) + installed_packages = venv.get_installed_packages() + assert salt_extension.name in installed_packages + code = """ + import sys + import json + import salt._logging + import salt.loader + + minion_config = json.loads(sys.stdin.read()) + salt._logging.set_logging_options_dict(minion_config) + salt._logging.setup_logging() + mod_dirs = salt.loader._module_dirs(minion_config, "modules", "module") + print(json.dumps(mod_dirs)) + """ + opts = salt_minion_factory.config.copy() + opts["module_dirs"] = module_dirs + ret = venv.run_code(code, input=json.dumps(opts)) + module_dirs_return = json.loads(ret.stdout) + assert len(module_dirs_return) == 5 + for i, tail in enumerate( + [ + "/module-dir-base/modules", + "/var/cache/salt/minion/extmods/modules", + "/module-dir-base", + "/site-packages/salt_ext_loader_test/modules", + "/site-packages/salt/modules", + ] + ): + assert module_dirs_return[i].endswith(tail) + + def test_new_entry_points_passing_module(venv, salt_extension, salt_minion_factory): # Install our extension into the virtualenv venv.install(str(salt_extension.srcdir)) From 94047ee5967d2e8358e077d437a875d2ee87d889 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Mon, 29 Jan 2024 15:57:38 +0700 Subject: [PATCH 13/18] Add changelog entry --- changelog/65938.changed.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/65938.changed.md diff --git a/changelog/65938.changed.md b/changelog/65938.changed.md new file mode 100644 index 00000000000..a96e39b485d --- /dev/null +++ b/changelog/65938.changed.md @@ -0,0 +1 @@ +Change module search path priority, so Salt extensions can be overridden by syncable modules and module_dirs. You can switch back to the old logic by setting features.enable_deprecated_module_search_path_priority to true, but it will be removed in Salt 3008. From 4769ae02365779229d5669096f393b63544ad1d3 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Tue, 30 Jan 2024 18:03:47 +0700 Subject: [PATCH 14/18] Address the code review comments --- .../pytests/functional/loader/test_loader.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/tests/pytests/functional/loader/test_loader.py b/tests/pytests/functional/loader/test_loader.py index 5d1e7989f50..97e8843d4cf 100644 --- a/tests/pytests/functional/loader/test_loader.py +++ b/tests/pytests/functional/loader/test_loader.py @@ -1,5 +1,4 @@ import json -import shutil import pytest @@ -30,14 +29,11 @@ def venv(tmp_path): @pytest.fixture def module_dirs(tmp_path): module_dir = tmp_path / "module-dir-base" - (module_dir / "modules").mkdir(parents=True) - try: - yield [str(module_dir)] - finally: - shutil.rmtree(str(module_dir), ignore_errors=True) + module_dir.joinpath("modules").mkdir(parents=True) + return [str(module_dir)] -def test_module_dirs_priority(venv, salt_extension, salt_minion_factory, module_dirs): +def test_module_dirs_priority(venv, salt_extension, minion_opts, module_dirs): # Install our extension into the virtualenv venv.install(str(salt_extension.srcdir)) installed_packages = venv.get_installed_packages() @@ -54,9 +50,8 @@ def test_module_dirs_priority(venv, salt_extension, salt_minion_factory, module_ mod_dirs = salt.loader._module_dirs(minion_config, "modules", "module") print(json.dumps(mod_dirs)) """ - opts = salt_minion_factory.config.copy() - opts["module_dirs"] = module_dirs - ret = venv.run_code(code, input=json.dumps(opts)) + minion_opts["module_dirs"] = module_dirs + ret = venv.run_code(code, input=json.dumps(minion_opts)) module_dirs_return = json.loads(ret.stdout) assert len(module_dirs_return) == 5 for i, tail in enumerate( @@ -68,7 +63,9 @@ def test_module_dirs_priority(venv, salt_extension, salt_minion_factory, module_ "/site-packages/salt/modules", ] ): - assert module_dirs_return[i].endswith(tail) + assert module_dirs_return[i].endswith( + tail + ), f"{module_dirs_return[i]} does not end with {tail}" def test_new_entry_points_passing_module(venv, salt_extension, salt_minion_factory): From a14e899ffb4206717b1ff9dbefcdf05c1d9bbf51 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Tue, 30 Jan 2024 18:54:52 +0700 Subject: [PATCH 15/18] Use the "features" option directly, add test --- salt/loader/__init__.py | 7 ++++--- tests/pytests/functional/loader/test_loader.py | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/salt/loader/__init__.py b/salt/loader/__init__.py index c999dcfec5d..f8feedfe727 100644 --- a/salt/loader/__init__.py +++ b/salt/loader/__init__.py @@ -28,7 +28,6 @@ import salt.utils.platform import salt.utils.stringutils import salt.utils.versions from salt.exceptions import LoaderError -from salt.features import features from salt.template import check_render_pipe_str from salt.utils import entrypoints @@ -252,10 +251,12 @@ def _module_dirs( if os.path.isdir(maybe_dir): cli_module_dirs.insert(0, maybe_dir) - if features.get("enable_deprecated_module_search_path_priority", False): + if opts.get("features", {}).get( + "enable_deprecated_module_search_path_priority", False + ): salt.utils.versions.warn_until( 3008, - "The old module search path priority will be removed in Salt Argon. " + "The old module search path priority will be removed in Salt 3008. " "For more information see https://github.com/saltstack/salt/pull/65938.", ) return cli_module_dirs + ext_type_types + ext_types + sys_types diff --git a/tests/pytests/functional/loader/test_loader.py b/tests/pytests/functional/loader/test_loader.py index 97e8843d4cf..33b6bd793d3 100644 --- a/tests/pytests/functional/loader/test_loader.py +++ b/tests/pytests/functional/loader/test_loader.py @@ -67,6 +67,24 @@ def test_module_dirs_priority(venv, salt_extension, minion_opts, module_dirs): tail ), f"{module_dirs_return[i]} does not end with {tail}" + # Test the deprecated mode as well + minion_opts["features"] = {"enable_deprecated_module_search_path_priority": True} + ret = venv.run_code(code, input=json.dumps(minion_opts)) + module_dirs_return = json.loads(ret.stdout) + assert len(module_dirs_return) == 5 + for i, tail in enumerate( + [ + "/module-dir-base/modules", + "/module-dir-base", + "/site-packages/salt_ext_loader_test/modules", + "/var/cache/salt/minion/extmods/modules", + "/site-packages/salt/modules", + ] + ): + assert module_dirs_return[i].endswith( + tail + ), f"{module_dirs_return[i]} does not end with {tail}" + def test_new_entry_points_passing_module(venv, salt_extension, salt_minion_factory): # Install our extension into the virtualenv From 3dc0a2ca30d4fb7a6c09772596a5651da457968a Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 13:07:24 +0000 Subject: [PATCH 16/18] Fix the copy path --- .github/workflows/build-docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 53bc06fbd62..415cdfc7d19 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -78,8 +78,8 @@ jobs: run: | git clone https://gitlab.com/saltstack/open/docs/builddocs-fonts.git .builddocs-fonts sudo mkdir -p /usr/share/fonts/truetype /usr/share/fonts/opentype - sudo cp -rfv .builddocs-fonts/*.ttf /usr/share/fonts/truetype/ - sudo cp -rfv .builddocs-fonts/*.otf /usr/share/fonts/opentype/ + sudo cp -rfv .builddocs-fonts/truetype/*.ttf /usr/share/fonts/truetype/ + sudo cp -rfv .builddocs-fonts/opentype/*.otf /usr/share/fonts/opentype/ sudo fc-cache -f -v - name: Build Documentation (${{ matrix.docs-output }}) From 09fb88428693283e0317789d1fe05ae870ea18f2 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 13:21:29 +0000 Subject: [PATCH 17/18] Build documentation when `.github/workflows/build-docs.yml` changes --- .github/workflows/ci.yml | 1 + .github/workflows/nightly.yml | 1 + .github/workflows/scheduled.yml | 1 + .github/workflows/staging.yml | 1 + .github/workflows/templates/layout.yml.jinja | 1 + 5 files changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 16573bf856b..b9b53bfa893 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -95,6 +95,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 06159dd6f90..bed81903da4 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -139,6 +139,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index bd1a41d4fb9..53bfa2db6ca 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -129,6 +129,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index fa11eb82402..e4280dea294 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -125,6 +125,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 4b146ff3a5f..1c4b54d671b 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -143,6 +143,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: From 2e5c42174a19eb01d2281da56343ddcfe28f49a8 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 16:08:07 +0000 Subject: [PATCH 18/18] A change in `.github/workflows/build-deps-ci-action.yml` invalidates cache --- .github/workflows/ci.yml | 2 +- .github/workflows/nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/scheduled.yml | 2 +- .github/workflows/staging.yml | 2 +- .github/workflows/templates/layout.yml.jinja | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9b53bfa893..51f629c46e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -171,7 +171,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + 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: Write Changed Files To A Local File run: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index bed81903da4..fea92602ef9 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -215,7 +215,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + 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: Write Changed Files To A Local File run: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 87362595f48..e99b6daa2ef 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -117,7 +117,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + 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" download-onedir-artifact: name: Download Staging Onedir Artifact diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 53bfa2db6ca..2b7d386383c 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -205,7 +205,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + 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: Write Changed Files To A Local File run: diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index e4280dea294..97673dfb1ec 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -201,7 +201,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + 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: Check Existing Releases env: diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 1c4b54d671b..21edc433e49 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -9,7 +9,7 @@ <%- set gpg_key_id = "64CBBC8173D76B3F" %> <%- set prepare_actual_release = prepare_actual_release | default(False) %> <%- set gh_actions_workflows_python_version = "3.10" %> -<%- set nox_archive_hashfiles = "${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" %> +<%- set nox_archive_hashfiles = "${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml', '.github/workflows/build-deps-ci-action.yml') }}" %> --- <%- block name %> name: <{ workflow_name }>