From f3829df92a317a3588fa387f1bdd7333ea15f99f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 17:22:08 -0700 Subject: [PATCH 01/21] Bump actions/checkout from 4 to 5 (#362) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/check-coverage.yml | 2 +- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/generate-metadata.yml | 2 +- .github/workflows/package.yml | 2 +- .github/workflows/publish-pypi.yml | 2 +- .github/workflows/run-e2-tests.yml | 2 +- .github/workflows/run-tests.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/check-coverage.yml b/.github/workflows/check-coverage.yml index 3d4996e4..46bf83ab 100644 --- a/.github/workflows/check-coverage.yml +++ b/.github/workflows/check-coverage.yml @@ -18,7 +18,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} uses: actions/setup-python@v5 diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 0cb6f814..06d92ba4 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -38,7 +38,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/generate-metadata.yml b/.github/workflows/generate-metadata.yml index 53449eb9..ac809320 100644 --- a/.github/workflows/generate-metadata.yml +++ b/.github/workflows/generate-metadata.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python uses: actions/setup-python@v5 diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index d9b65a93..ed9d2752 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -60,7 +60,7 @@ jobs: UPLOAD_FILE_NAME: tabcmd steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: actions/setup-python@v5 with: diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index bc101762..6fa73f02 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -15,7 +15,7 @@ jobs: name: Build dist files for PyPi runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 0 - uses: actions/setup-python@v5 diff --git a/.github/workflows/run-e2-tests.yml b/.github/workflows/run-e2-tests.yml index 81ebb4f6..4ae77785 100644 --- a/.github/workflows/run-e2-tests.yml +++ b/.github/workflows/run-e2-tests.yml @@ -23,7 +23,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} uses: actions/setup-python@v5 diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 4e9d279a..df7cdc7f 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -20,7 +20,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} uses: actions/setup-python@v5 From e9c640c45cb5cf1152ec0ff79597c4cf00da5553 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Oct 2025 21:52:52 -0700 Subject: [PATCH 02/21] Bump actions/setup-python from 5 to 6 (#363) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/check-coverage.yml | 2 +- .github/workflows/generate-metadata.yml | 2 +- .github/workflows/package.yml | 2 +- .github/workflows/publish-pypi.yml | 2 +- .github/workflows/python-app.yml | 2 +- .github/workflows/run-e2-tests.yml | 2 +- .github/workflows/run-tests.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/check-coverage.yml b/.github/workflows/check-coverage.yml index 46bf83ab..fe9b244d 100644 --- a/.github/workflows/check-coverage.yml +++ b/.github/workflows/check-coverage.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/generate-metadata.yml b/.github/workflows/generate-metadata.yml index ac809320..7e59af3e 100644 --- a/.github/workflows/generate-metadata.yml +++ b/.github/workflows/generate-metadata.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v5 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.12' diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index ed9d2752..fe851902 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -62,7 +62,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: 3.12 diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index 6fa73f02..96400505 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v5 with: fetch-depth: 0 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: 3.12 - name: Build dist files diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index 023a4a7d..c294aff4 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: pip install Tabcmd diff --git a/.github/workflows/run-e2-tests.yml b/.github/workflows/run-e2-tests.yml index 4ae77785..0f04cdab 100644 --- a/.github/workflows/run-e2-tests.yml +++ b/.github/workflows/run-e2-tests.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index df7cdc7f..fca98373 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} From 3cd02655fd27be6c5d0063a5468d95325866c377 Mon Sep 17 00:00:00 2001 From: Jim Jagielski Date: Mon, 10 Nov 2025 09:50:23 -0500 Subject: [PATCH 03/21] Upload required file(s) for compliance --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..8d46b0b4 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +404: Not Found#ECCN:Open Source From c10b67e4ea1b0ff82384e49296324934ba30d43f Mon Sep 17 00:00:00 2001 From: Jim Jagielski Date: Mon, 24 Nov 2025 08:33:40 -0500 Subject: [PATCH 04/21] Update CODEOWNERS to remove '404: Not Found' --- CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index 8d46b0b4..00cd7bd1 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -404: Not Found#ECCN:Open Source +#ECCN:Open Source From bf76da10e51a64a5d9f6618d4ab173f74853857e Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 17:14:33 -0800 Subject: [PATCH 05/21] bump tsc --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3bdce842..f22f853f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ dependencies = [ "types-mock", "types-requests", "types-setuptools", - "tableauserverclient==0.37", + "tableauserverclient==0.40", "urllib3", ] [project.optional-dependencies] From f34bc0bcc5599aacc1a245701fbbfe6d570da340 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 17:15:56 -0800 Subject: [PATCH 06/21] update format for license field --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f22f853f..d185bf1b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,8 @@ name="tabcmd" dynamic = ["version"] description="A command line client for working with Tableau Server." authors = [{name="Tableau", email="github@tableau.com"}] -license = {file = "LICENSE"} +license = "MIT" +license-files = ["LICENSE"] readme = "res/README.md" requires-python = ">=3.9" # https://devguide.python.org/versions/ classifiers = [ From 4a2288bd682561ef1d3f9a6c7c75100604dfb881 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 23:43:53 -0800 Subject: [PATCH 07/21] dependency management setuptools is required for running the program and is not provided by default in 3.12+ Many of the dependencies listed are not required for runtime, so moving them to a new [dev] section --- pyproject.toml | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d185bf1b..79c35a83 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,31 +44,30 @@ classifiers = [ ] dependencies = [ "appdirs", - "doit", - "ftfy", - "pyinstaller_versionfile", - "pytest-order", "requests>=2.25,<3.0", - "setuptools_scm", - "types-appdirs", - "types-mock", - "types-requests", - "types-setuptools", + "setuptools>=62; python_version >= '3.12'", "tableauserverclient==0.40", "urllib3", ] [project.optional-dependencies] -test = [ +dev = [ "black>=22,<23", - "mock", "mypy", + "types-appdirs", + "types-requests", + "types-setuptools" +] +test = [ + "mock", "pytest>=7.0", "pytest-cov", "pytest-order", "pytest-runner", - "requests-mock>=1.0,<2.0"] + "requests-mock>=1.0,<2.0", + "types-mock", +] localize = ["doit", "ftfy"] -package = ["pyinstaller==5.13", "doit"] +package = ["doit", "pyinstaller==5.13", "pyinstaller_versionfile"] [project.urls] repository = "https://github.com/tableau/tabcmd" [project.scripts] From a0a907fcf8411d0168f5cc92143a6727fee047bc Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 23:54:28 -0800 Subject: [PATCH 08/21] bump setuptools Didn't really need the version specification anyway. --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 79c35a83..65628d9b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["build", "setuptools>=62", "wheel", "setuptools_scm>=6.2"] +requires = ["build", "setuptools", "setuptools_scm"] build-backend = "setuptools.build_meta" [tool.setuptools_scm] local_scheme = "no-local-version" # require pypi supported versions always @@ -45,7 +45,7 @@ classifiers = [ dependencies = [ "appdirs", "requests>=2.25,<3.0", - "setuptools>=62; python_version >= '3.12'", + "setuptools; python_version >= '3.12'", "tableauserverclient==0.40", "urllib3", ] From b96f960eb6d87e2ae274de2eec9997cfd85a7a67 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 23:55:00 -0800 Subject: [PATCH 09/21] remove deprecation warnings --- tabcmd/execution/localize.py | 8 +------- tabcmd/version.py | 8 +++----- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/tabcmd/execution/localize.py b/tabcmd/execution/localize.py index 1a8d3d2d..cc8baf1c 100644 --- a/tabcmd/execution/localize.py +++ b/tabcmd/execution/localize.py @@ -83,13 +83,7 @@ def _load_language(current_locale, domain, logger): def _get_default_locale(): - # c:\dev\tabcmd\tabcmd\execution\localize.py:85: DeprecationWarning 'locale.getdefaultlocale' is deprecated - # see test_localize for details - import logging - - logging.captureWarnings(True) - current_locale, encoding = locale.getdefaultlocale() - logging.captureWarnings(False) + current_locale = locale.setlocale(locale.LC_CTYPE, None) current_locale = _validate_lang(current_locale) return current_locale diff --git a/tabcmd/version.py b/tabcmd/version.py index e6e2d0f1..f9822943 100644 --- a/tabcmd/version.py +++ b/tabcmd/version.py @@ -1,9 +1,7 @@ -# when we drop python 3.8, this could be replaced with this lighter weight option -# from importlib.metadata import version, PackageNotFoundError -from pkg_resources import get_distribution, DistributionNotFound +from importlib.metadata import version, PackageNotFoundError try: - version = get_distribution("tabcmd").version -except DistributionNotFound: + version = version("tabcmd") +except PackageNotFoundError: version = "2.0.0" pass From 67c48f5ce23f8bbd7640b1230c9d32d30161d49a Mon Sep 17 00:00:00 2001 From: Jim Jagielski Date: Mon, 10 Nov 2025 09:50:23 -0500 Subject: [PATCH 10/21] Upload required file(s) for compliance --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..8d46b0b4 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +404: Not Found#ECCN:Open Source From 9ca79118393ce4de10140ca7bf2e2608544fc8c2 Mon Sep 17 00:00:00 2001 From: Jim Jagielski Date: Mon, 24 Nov 2025 08:33:40 -0500 Subject: [PATCH 11/21] Update CODEOWNERS to remove '404: Not Found' --- CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index 8d46b0b4..00cd7bd1 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -404: Not Found#ECCN:Open Source +#ECCN:Open Source From e91dfc8b2dbe2b9e7345040580541d90434dbf38 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 17:14:33 -0800 Subject: [PATCH 12/21] bump tsc --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3bdce842..f22f853f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ dependencies = [ "types-mock", "types-requests", "types-setuptools", - "tableauserverclient==0.37", + "tableauserverclient==0.40", "urllib3", ] [project.optional-dependencies] From 130a05de4ec502ed46555ca426bde39cf4ebc51b Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 17:15:56 -0800 Subject: [PATCH 13/21] update format for license field --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f22f853f..d185bf1b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,8 @@ name="tabcmd" dynamic = ["version"] description="A command line client for working with Tableau Server." authors = [{name="Tableau", email="github@tableau.com"}] -license = {file = "LICENSE"} +license = "MIT" +license-files = ["LICENSE"] readme = "res/README.md" requires-python = ">=3.9" # https://devguide.python.org/versions/ classifiers = [ From beb21f678713795d65a1398aaef0c94829884bd1 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 23:43:53 -0800 Subject: [PATCH 14/21] dependency management setuptools is required for running the program and is not provided by default in 3.12+ Many of the dependencies listed are not required for runtime, so moving them to a new [dev] section --- pyproject.toml | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d185bf1b..79c35a83 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,31 +44,30 @@ classifiers = [ ] dependencies = [ "appdirs", - "doit", - "ftfy", - "pyinstaller_versionfile", - "pytest-order", "requests>=2.25,<3.0", - "setuptools_scm", - "types-appdirs", - "types-mock", - "types-requests", - "types-setuptools", + "setuptools>=62; python_version >= '3.12'", "tableauserverclient==0.40", "urllib3", ] [project.optional-dependencies] -test = [ +dev = [ "black>=22,<23", - "mock", "mypy", + "types-appdirs", + "types-requests", + "types-setuptools" +] +test = [ + "mock", "pytest>=7.0", "pytest-cov", "pytest-order", "pytest-runner", - "requests-mock>=1.0,<2.0"] + "requests-mock>=1.0,<2.0", + "types-mock", +] localize = ["doit", "ftfy"] -package = ["pyinstaller==5.13", "doit"] +package = ["doit", "pyinstaller==5.13", "pyinstaller_versionfile"] [project.urls] repository = "https://github.com/tableau/tabcmd" [project.scripts] From 6c5477dbb1c8ed2678981cc19be3b650e93aa117 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 23:54:28 -0800 Subject: [PATCH 15/21] bump setuptools Didn't really need the version specification anyway. --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 79c35a83..65628d9b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["build", "setuptools>=62", "wheel", "setuptools_scm>=6.2"] +requires = ["build", "setuptools", "setuptools_scm"] build-backend = "setuptools.build_meta" [tool.setuptools_scm] local_scheme = "no-local-version" # require pypi supported versions always @@ -45,7 +45,7 @@ classifiers = [ dependencies = [ "appdirs", "requests>=2.25,<3.0", - "setuptools>=62; python_version >= '3.12'", + "setuptools; python_version >= '3.12'", "tableauserverclient==0.40", "urllib3", ] From fda7f336eb06bf4b802bba1919e7e46fc16a02be Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Thu, 12 Feb 2026 23:55:00 -0800 Subject: [PATCH 16/21] remove deprecation warnings --- tabcmd/execution/localize.py | 8 +------- tabcmd/version.py | 8 +++----- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/tabcmd/execution/localize.py b/tabcmd/execution/localize.py index 1a8d3d2d..cc8baf1c 100644 --- a/tabcmd/execution/localize.py +++ b/tabcmd/execution/localize.py @@ -83,13 +83,7 @@ def _load_language(current_locale, domain, logger): def _get_default_locale(): - # c:\dev\tabcmd\tabcmd\execution\localize.py:85: DeprecationWarning 'locale.getdefaultlocale' is deprecated - # see test_localize for details - import logging - - logging.captureWarnings(True) - current_locale, encoding = locale.getdefaultlocale() - logging.captureWarnings(False) + current_locale = locale.setlocale(locale.LC_CTYPE, None) current_locale = _validate_lang(current_locale) return current_locale diff --git a/tabcmd/version.py b/tabcmd/version.py index e6e2d0f1..f9822943 100644 --- a/tabcmd/version.py +++ b/tabcmd/version.py @@ -1,9 +1,7 @@ -# when we drop python 3.8, this could be replaced with this lighter weight option -# from importlib.metadata import version, PackageNotFoundError -from pkg_resources import get_distribution, DistributionNotFound +from importlib.metadata import version, PackageNotFoundError try: - version = get_distribution("tabcmd").version -except DistributionNotFound: + version = version("tabcmd") +except PackageNotFoundError: version = "2.0.0" pass From 2920da49ee2145e72b8fb2c720366c5807a966bd Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Fri, 13 Feb 2026 00:09:57 -0800 Subject: [PATCH 17/21] revert new dependencies set It seems fine to bundle them all under 'test' - I don't want anyone trying to work on the code without tests anyway. And I would have to edit all the workflow files to add a step to install the dev bundle. --- pyproject.toml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 65628d9b..5588daf7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,21 +50,20 @@ dependencies = [ "urllib3", ] [project.optional-dependencies] -dev = [ - "black>=22,<23", - "mypy", - "types-appdirs", - "types-requests", - "types-setuptools" -] test = [ + "black>=22,<23", + "doit", "mock", + "mypy", "pytest>=7.0", "pytest-cov", "pytest-order", "pytest-runner", "requests-mock>=1.0,<2.0", + "types-appdirs", "types-mock", + "types-requests", + "types-setuptools" ] localize = ["doit", "ftfy"] package = ["doit", "pyinstaller==5.13", "pyinstaller_versionfile"] From fe85234622890167ac62df2a3899fc945f0b4ca8 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Fri, 13 Feb 2026 00:12:01 -0800 Subject: [PATCH 18/21] setuptools_scm is required for the version step --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 5588daf7..d3296097 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,6 +60,7 @@ test = [ "pytest-order", "pytest-runner", "requests-mock>=1.0,<2.0", + "setuptools_scm", "types-appdirs", "types-mock", "types-requests", From b3913a8018f6e4375ae0e02f8f0716dea3acd117 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Fri, 13 Feb 2026 00:18:17 -0800 Subject: [PATCH 19/21] Update pyproject.toml --- pyproject.toml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d3296097..845b83af 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,7 +52,6 @@ dependencies = [ [project.optional-dependencies] test = [ "black>=22,<23", - "doit", "mock", "mypy", "pytest>=7.0", @@ -60,14 +59,17 @@ test = [ "pytest-order", "pytest-runner", "requests-mock>=1.0,<2.0", - "setuptools_scm", "types-appdirs", "types-mock", "types-requests", - "types-setuptools" + "types-setuptools", + # these last three are required for the versioning step + "doit", + "pyinstaller_versionfile", + "setuptools_scm" ] localize = ["doit", "ftfy"] -package = ["doit", "pyinstaller==5.13", "pyinstaller_versionfile"] +package = ["doit", "pyinstaller==5.13"] [project.urls] repository = "https://github.com/tableau/tabcmd" [project.scripts] From 34a3d56a71bbd2de878e81e6f32374adbedcda7e Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Fri, 13 Feb 2026 00:31:20 -0800 Subject: [PATCH 20/21] pin setuptools for license_checker --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 845b83af..107a7e89 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,8 @@ classifiers = [ dependencies = [ "appdirs", "requests>=2.25,<3.0", - "setuptools; python_version >= '3.12'", + # pinned to 81 so the license_checker can use pkg_resources + "setuptools<81; python_version >= '3.12'", "tableauserverclient==0.40", "urllib3", ] From 26342e0b1ad7c0f188a0fb73cb031e788bbd5a70 Mon Sep 17 00:00:00 2001 From: Jac Fitzgerald Date: Fri, 13 Feb 2026 00:34:56 -0800 Subject: [PATCH 21/21] mypy: variable name shadowed --- tabcmd/version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tabcmd/version.py b/tabcmd/version.py index f9822943..f7c977ca 100644 --- a/tabcmd/version.py +++ b/tabcmd/version.py @@ -1,7 +1,7 @@ -from importlib.metadata import version, PackageNotFoundError +from importlib.metadata import version as get_version, PackageNotFoundError try: - version = version("tabcmd") + version = get_version("tabcmd") except PackageNotFoundError: version = "2.0.0" pass