Skip to content

Commit

Permalink
Merge branch 'development' into project_cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
jacalata authored Dec 12, 2024
2 parents b3d740c + e3f1e22 commit 2247b12
Show file tree
Hide file tree
Showing 406 changed files with 31,406 additions and 10,236 deletions.
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: Bug report
about: Create a bug report or request for help
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**Versions**
Details of your environment, including:
- Tableau Server version (or note if using Tableau Online)
- Python version
- TSC library version

**To Reproduce**
Steps to reproduce the behavior. Please include a code snippet where possible.

**Results**
What are the results or error messages received?

**NOTE:** Be careful not to post user names, passwords, auth tokens or any other private or sensitive information.
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Feature Request
title: "[REQUEST TYPE] [FEATURE TITLE]"
about: Suggest a feature that could be added to the client
labels: enhancement, needs investigation
---

## Summary
A one line description of the request. Skip this if the title is already a good summary.


## Request Type
If you know, say which of these types your request is in the title, and follow the suggestions for that type when writing your description.

****Type 1: support a REST API:****
If it is functionality that already exists in the [REST API](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm), example API calls are the clearest way to explain your request.

****Type 2: add a REST API and support it in tsc.****
If it is functionality that can be achieved somehow on Tableau Server but not through the REST API, describe the current way to do it. (e.g: functionality that is available in the Web UI, or by using the Hyper API). For UI, screenshots can be helpful.

****Type 3: new functionality****
Requests for totally new functionality will generally be passed to the relevant dev team, but we probably can't give any useful estimate of how or when it might be implemented. If it is a feature that is 'about' the API or programmable access, here might be the best place to suggest it, but generally feature requests will be more visible in the [Tableau Community Ideas](https://community.tableau.com/s/ideas) forum and should go there instead.


## Description
A clear and concise description of what the feature request is. If you think that the value of this feature might not be obvious, include information like how often it is needed, amount of work saved, etc. If your feature request is related to a file or server in a specific state, describe the starting state when the feature can be used, and the end state after using it. If it involves modifying files, an example file may be helpful.
![](https://img.shields.io/badge/warning-Be%20careful%20not%20to%20post%20user%20names%2C%20passwords%2C%20auth%20tokens%20or%20any%20other%20private%20or%20sensitive%20information-red)

39 changes: 39 additions & 0 deletions .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Check Test Coverage

on:
pull_request:
branches:
- development

jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.10']

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[test]
# https://github.com/marketplace/actions/pytest-coverage-comment
- name: Generate coverage report
run: pytest --junitxml=pytest.xml --cov=tableauserverclient test/ | tee pytest-coverage.txt

- name: Comment on pull request with coverage
continue-on-error: true
uses: MishaKav/pytest-coverage-comment@main
with:
pytest-coverage-path: ./pytest-coverage.txt
49 changes: 49 additions & 0 deletions .github/workflows/meta-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: types and style checks

on: [push, pull_request]

jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.10']

runs-on: ${{ matrix.os }}

steps:
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: cache
uses: actions/cache@v4
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.python-version }}-pip-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-${{ matrix.python-version }}-pip-
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[test]
- name: Format with black
run: |
black --check --line-length 120 tableauserverclient samples test
- name: Run Mypy tests
if: always()
run: |
mypy --show-error-codes --disable-error-code misc --disable-error-code import --implicit-optional tableauserverclient test
40 changes: 40 additions & 0 deletions .github/workflows/publish-pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Publish to PyPi

# This will publish a package to TestPyPi (and real Pypi if run on master) with a version
# number generated by versioneer from the most recent tag looking like v____
# TODO: maybe move this into the package job so all release-based actions are together
on:
workflow_dispatch:
push:
tags:
- 'v*.*.*'

jobs:
build-n-publish:
name: Build dist files for PyPi
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Build dist files
run: |
python -m pip install --upgrade pip
pip install -e .[test] build
python -m build
git describe --tag --dirty --always
- name: Publish distribution 📦 to Test PyPI # always run
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
if: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v') }}
uses: pypa/gh-action-pypi-publish@release/v1 # license BSD-2
with:
password: ${{ secrets.PYPI_API_TOKEN }}
36 changes: 36 additions & 0 deletions .github/workflows/pypi-smoke-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This workflow will install TSC from pypi and validate that it runs. For more information see:
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Pypi smoke tests

on:
workflow_dispatch:
schedule:
- cron: 0 11 * * * # Every day at 11AM UTC (7AM EST)

permissions:
contents: read

jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.x']

runs-on: ${{ matrix.os }}

steps:
- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: pip install
run: |
pip uninstall tableauserverclient
pip install tableauserverclient
- name: Launch app
run: |
python -c "import tableauserverclient as TSC
server = TSC.Server('http://example.com', use_server_version=False)"
55 changes: 55 additions & 0 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Python tests

on:
pull_request: {}
push:
branches:
- development
- master

jobs:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']

runs-on: ${{ matrix.os }}

steps:
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: cache
uses: actions/cache@v4
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.python-version }}-pip-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-${{ matrix.python-version }}-pip-
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[test] build
- name: Test with pytest
if: always()
run: |
pytest test
- name: Test build
if: always()
run: |
python -m build
20 changes: 20 additions & 0 deletions .github/workflows/slack.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 💬 Send Message to Slack 🚀

on: [push, pull_request, issues]

jobs:
slack-notifications:
continue-on-error: true
runs-on: ubuntu-20.04
name: Sends a message to Slack when a push, a pull request or an issue is made
steps:
- name: Send message to Slack API
continue-on-error: true
uses: archive/[email protected]
id: notify
with:
slack-bot-user-oauth-access-token: ${{ secrets.SLACK_BOT_USER_OAUTH_ACCESS_TOKEN }}
slack-channel: C019HCX84L9
slack-text: Hello! Event "${{ github.event_name }}" in "${{ github.repository }}" 🤓
- name: Result from "Send Message"
run: echo "The result was ${{ steps.notify.outputs.slack-result }}"
11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ var/
*.egg-info/
.installed.cfg
*.egg
pip-wheel-metadata/

# PyInstaller
# Usually these files are written by a python script from a template
Expand Down Expand Up @@ -76,23 +77,29 @@ target/
# pyenv
.python-version

# poetry
poetry.lock

# celery beat schedule file
celerybeat-schedule

# dotenv
.env
env.py

# virtualenv
venv/
ENV/
.venv/

# Spyder project settings
.spyderproject

# Rope project settings
.ropeproject


# VSCode project settings
.vscode/

# macOS.gitignore from https://github.com/github/gitignore
*.DS_Store
Expand Down Expand Up @@ -148,3 +155,5 @@ $RECYCLE.BIN/
docs/_site/
docs/.jekyll-metadata
docs/Gemfile.lock
samples/credentials
.venv/
18 changes: 0 additions & 18 deletions .travis.yml

This file was deleted.

Loading

0 comments on commit 2247b12

Please sign in to comment.