From 7bc07836f11c72471773da770c2f221283ced01f Mon Sep 17 00:00:00 2001 From: colinmoynes Date: Wed, 5 Nov 2025 12:02:25 +0000 Subject: [PATCH 1/8] update load_config path handling --- cloudsmith_cli/cli/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudsmith_cli/cli/config.py b/cloudsmith_cli/cli/config.py index e7638f8e..968014df 100644 --- a/cloudsmith_cli/cli/config.py +++ b/cloudsmith_cli/cli/config.py @@ -150,7 +150,7 @@ def has_default_file(cls): @classmethod def load_config(cls, opts, path=None, profile=None): """Load a configuration file into an options object.""" - if path and os.path.exists(path): + if path and isinstance(path, (str, bytes, os.PathLike)) and os.path.exists(path): if os.path.isdir(path): cls.config_searchpath.insert(0, path) else: From 5959e46b66d0b780f107e1d1d0731c329d1f60ee Mon Sep 17 00:00:00 2001 From: colinmoynes Date: Wed, 5 Nov 2025 13:27:49 +0000 Subject: [PATCH 2/8] Blocking Click 8.3.0 as this is a breaking version. Reverting to 8.2.x for now. --- cloudsmith_cli/cli/config.py | 16 ++++++++-------- setup.py | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cloudsmith_cli/cli/config.py b/cloudsmith_cli/cli/config.py index 968014df..40301d68 100644 --- a/cloudsmith_cli/cli/config.py +++ b/cloudsmith_cli/cli/config.py @@ -150,21 +150,21 @@ def has_default_file(cls): @classmethod def load_config(cls, opts, path=None, profile=None): """Load a configuration file into an options object.""" - if path and isinstance(path, (str, bytes, os.PathLike)) and os.path.exists(path): + if path and os.path.exists(path): if os.path.isdir(path): cls.config_searchpath.insert(0, path) else: cls.config_files.insert(0, path) - config = cls.read_config() - values = config.get("default", {}) - cls._load_values_into_opts(opts, values) - - if profile and profile != "default": - values = config.get("profile:%s" % profile, {}) + config = cls.read_config() + values = config.get("default", {}) cls._load_values_into_opts(opts, values) - return values + if profile and profile != "default": + values = config.get("profile:%s" % profile, {}) + cls._load_values_into_opts(opts, values) + + return values @staticmethod def _load_values_into_opts(opts, values): diff --git a/setup.py b/setup.py index 83ec58f5..56ec00e0 100644 --- a/setup.py +++ b/setup.py @@ -49,7 +49,7 @@ def get_long_description(): platforms=["any"], python_requires=">=3.9.0", install_requires=[ - "click>=8.2.0", + "click>=8.2.0,!=8.3.0", "click-configfile>=0.2.3", "click-didyoumean>=0.0.3", "click-spinner>=0.1.7", From b378fc925548cdb0bbf82acec7a5c6c4d816e451 Mon Sep 17 00:00:00 2001 From: colinmoynes Date: Wed, 5 Nov 2025 13:30:48 +0000 Subject: [PATCH 3/8] changelog for v1.9.1 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b76e0cf..18f00a3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +## [1.9.1] - 2025-11-05 + +### Fixed + +- Click v8.3.0 was a breaking update which impacted conversion of Sentinel.UNSET values which impacted the auth --token workflow. Locking to 8.2.x versions and restricted 8.3.0 explicitly. + ## [1.9.0] - 2025-11-05 ### Added From dead041d73f1aa045d9c31a0ebe1fbdb0e7c4f50 Mon Sep 17 00:00:00 2001 From: Colin Moynes <77994705+colinmoynes@users.noreply.github.com> Date: Wed, 5 Nov 2025 13:32:28 +0000 Subject: [PATCH 4/8] chore: add CODEOWNERS (#231) (#232) Co-authored-by: Patrick Carey --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..bbbc11c4 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @cloudsmith-io/engineering From bd412ffb5a91b4ff09e36db4144f9c61020e7fbc Mon Sep 17 00:00:00 2001 From: Colin Moynes <77994705+colinmoynes@users.noreply.github.com> Date: Wed, 5 Nov 2025 13:34:37 +0000 Subject: [PATCH 5/8] chore: add CODEOWNERS (#231) (#233) Co-authored-by: Patrick Carey From d01a918c8ecc6f2e97dbba9944b5a7cb82457614 Mon Sep 17 00:00:00 2001 From: colinmoynes Date: Wed, 5 Nov 2025 13:37:32 +0000 Subject: [PATCH 6/8] =?UTF-8?q?Bump=20version:=201.9.0=20=E2=86=92=201.9.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- cloudsmith_cli/data/VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index e048338c..983ad0f5 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.9.0 +current_version = 1.9.1 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+) diff --git a/cloudsmith_cli/data/VERSION b/cloudsmith_cli/data/VERSION index f8e233b2..9ab8337f 100644 --- a/cloudsmith_cli/data/VERSION +++ b/cloudsmith_cli/data/VERSION @@ -1 +1 @@ -1.9.0 +1.9.1 From dd4f03a727aed5262c4d76d31ba5ae62c9f4a976 Mon Sep 17 00:00:00 2001 From: colinmoynes Date: Wed, 5 Nov 2025 13:51:49 +0000 Subject: [PATCH 7/8] Updating package name for zipapp issue on tag release. --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fbc5c78a..045386f8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,7 +53,7 @@ jobs: oidc-service-slug: ${{ vars.CLOUDSMITH_SVC_SLUG }} - name: Push Zipapp to Cloudsmith id: push_zipapp - run: cloudsmith push raw ${{ vars.CLOUDSMITH_NAMESPACE }}/cli-zipapp ./cloudsmith-${{ env.VERSION }}.pyz + run: cloudsmith push raw ${{ vars.CLOUDSMITH_NAMESPACE }}/cli-zipapp ./cloudsmith-${{ env.VERSION }}.pyz --name cloudsmith-cli --version ${{ env.VERSION }} - name: Build Docker image id: build_cli_image run: | From c2f3e234aec65df8494e0b9ea251bbfa7bb55a74 Mon Sep 17 00:00:00 2001 From: colinmoynes Date: Wed, 5 Nov 2025 15:17:05 +0000 Subject: [PATCH 8/8] Fix indentations for load_config function. --- cloudsmith_cli/cli/config.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cloudsmith_cli/cli/config.py b/cloudsmith_cli/cli/config.py index 40301d68..e7638f8e 100644 --- a/cloudsmith_cli/cli/config.py +++ b/cloudsmith_cli/cli/config.py @@ -156,15 +156,15 @@ def load_config(cls, opts, path=None, profile=None): else: cls.config_files.insert(0, path) - config = cls.read_config() - values = config.get("default", {}) - cls._load_values_into_opts(opts, values) + config = cls.read_config() + values = config.get("default", {}) + cls._load_values_into_opts(opts, values) - if profile and profile != "default": - values = config.get("profile:%s" % profile, {}) - cls._load_values_into_opts(opts, values) + if profile and profile != "default": + values = config.get("profile:%s" % profile, {}) + cls._load_values_into_opts(opts, values) - return values + return values @staticmethod def _load_values_into_opts(opts, values):