diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..f5d5961 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,61 @@ +# Build and deploy the docs/ site to GitHub Pages using the repo's own +# Jekyll 4 Gemfile, so the published site matches a local `jekyll serve`. +# (GitHub's default Pages build uses the github-pages gem / Jekyll 3.9.) +name: Deploy docs to Pages + +on: + push: + branches: [master] + paths: + - "docs/**" + - ".github/workflows/pages.yml" + workflow_dispatch: + +# Allow GITHUB_TOKEN to deploy to Pages. +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment; don't cancel an in-progress run. +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + defaults: + run: + working-directory: docs + steps: + - uses: actions/checkout@v7 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.4" + bundler-cache: true + working-directory: docs + - name: Configure Pages + id: pages + uses: actions/configure-pages@v6 + - name: Build site + env: + JEKYLL_ENV: production + PAGES_BASE_PATH: ${{ steps.pages.outputs.base_path }} + run: bundle exec jekyll build --baseurl "$PAGES_BASE_PATH" + - name: Upload artifact + uses: actions/upload-pages-artifact@v5 + with: + path: docs/_site + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v5 diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index 9c208c4..ae9f81b 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -1,6 +1,5 @@ name: Publish to PyPi - on: workflow_dispatch: push: @@ -11,24 +10,23 @@ jobs: name: Build dist files for PyPi runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - uses: actions/setup-python@v1 + - uses: actions/setup-python@v6 with: - python-version: 3.8 + python-version: 3.14 - name: Build dist files run: > python -m pip install --upgrade pip && pip install -e .[build] && python setup.py build && python setup.py sdist --formats=gztar - name: Publish distribution 📦 to Test PyPI - uses: pypa/gh-action-pypi-publish@release/v1 # license BSD-2 + uses: pypa/gh-action-pypi-publish@release/v1 # license BSD-2 with: password: ${{ secrets.TEST_PYPI_API_TOKEN }} repository_url: https://test.pypi.org/legacy/ - name: Publish distribution 📦 to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 # license BSD-2 + uses: pypa/gh-action-pypi-publish@release/v1 # license BSD-2 with: password: ${{ secrets.PYPI_API_TOKEN }} - diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 4bd171f..47ba610 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -6,54 +6,50 @@ name: Python package on: push: paths-ignore: - - 'docs/**' + - "docs/**" pull_request: - branches: '*' + branches: "*" jobs: build: - runs-on: ubuntu-latest strategy: fail-fast: false matrix: - python-version: [3.7, 3.8, 3.9, '3.10'] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Test - run: | - python setup.py test - - + - uses: actions/checkout@v7 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Test + run: | + python -m unittest discover -v + lint: - runs-on: ubuntu-latest strategy: fail-fast: false matrix: - python-version: [3.9] + python-version: [3.14] steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install pycodestyle - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with pycodestyle - run: | - pycodestyle tableaudocumentapi test samples - + - uses: actions/checkout@v7 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install pycodestyle + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with pycodestyle + run: | + pycodestyle tableaudocumentapi test samples diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 1a18c16..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,59 +0,0 @@ -## 011 (November 2022) -* Remove extraneous debug print statements - -## 010 (June 2022) -* Add service/schema attributes - -## 091 (March 2022) -* Add attribute for hidden field - -## 09 (December 2021) -* PyPI upgraded to Python3 - -## 08 (October 2021) -* See dashboards in a workbook -* Add shapes property -* Add custom sql -* Drop python 2, add up through 3.9 - -## 07 (26 May 2021) -* Fix bug in xfile that overwrote the namespace name when saving a document - -## 06 (11 January 2017) - -* Initial SQL and query banding support (#123) -* Fixed bug in xfiles to allow opening workbooks with external file caches (#117, #118) -* Code Cleanup (#120, #121) -* Added Py36 support (#124) -* Switched to pycodestyle from pip8 on travis runs (#124) - -## 05 (01 November 2016) - -* Added ability to set the port for connections (#97) -* Added ability to read and write caption for datasources (#99) -* Added documentation - -## 0.4 (07 October 2016) - -* Add ability to remove repository location (#86) -* Fixed bug in connection parsing when federated connections are present (#87) -* Fixed bug in UNICODE support (#80) - -## 0.3 (31 August 2016) - -* Added basic connection class retargeting (#65) -* Added ability to create a new connection (#69) -* Added description to the field object (#73) -* Improved Test Coverage (#62, #67) - -## 0.2 (22 July 2016) - -* Added support for loading twbx and tdsx files (#43, #44) -* Added Fields property to datasource (#45) -* Added Example for using the Fields Property (#51) -* Added Ability to get fields used by a specific sheet (#54) -* Code clean up and test reorganization - -## 0.1 (29 June 2016) - -* Initial Release to the world diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..10fb2b9 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,2 @@ +#ECCN:Open Source +#GUSINFO:Open Source,Open Source Workflow diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md deleted file mode 100644 index 903e57b..0000000 --- a/CONTRIBUTORS.md +++ /dev/null @@ -1,15 +0,0 @@ -This project wouldn't be possible without our amazing contributors. - -The following people have contributed to this project to make it possible, and we thank them for their contributions! - -## Contributors - -* [Charley Peng](https://github.com/chid) -* [Miguel Sánchez](https://github.com/MiguelSR) -* [Ryan Richmond](https://github.com/r-richmond) - -## Core Team - -* [Tyler Doyle](https://github.com/t8y8) -* [Russell Hay](https://github.com/RussTheAerialist) - diff --git a/contributing.md b/contributing.md deleted file mode 120000 index e047e03..0000000 --- a/contributing.md +++ /dev/null @@ -1 +0,0 @@ -docs/docs/contributing.md \ No newline at end of file diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..fd1ef36 --- /dev/null +++ b/contributing.md @@ -0,0 +1,3 @@ +# Contributing + +See the [Contributing guide](https://tableau.github.io/document-api-python/docs/contributing) in the project documentation. diff --git a/docs/Gemfile b/docs/Gemfile index 775d954..83a0e1a 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -1,3 +1,9 @@ source 'https://rubygems.org' -gem 'github-pages', group: :jekyll_plugins +# Standalone Jekyll 4 runs on modern Ruby (4.0+). We don't use the +# github-pages gem because it pins an old Jekyll/Liquid that is +# incompatible with Ruby 3.2+ (String#untaint was removed). +gem 'jekyll', '~> 4.3' + +# webrick was removed from Ruby's default gems in 3.0; needed by `jekyll serve`. +gem 'webrick' diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html index ce6a282..1b50f51 100644 --- a/docs/_includes/footer.html +++ b/docs/_includes/footer.html @@ -1,9 +1,19 @@ +