Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Technical review #273

Merged
merged 66 commits into from
Feb 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
8a48a0d
make ANSYS, Inc. the project maintainer
klmcadams Jan 11, 2024
088d4db
add contact/support section to readme
klmcadams Jan 11, 2024
051cdd8
update and add authors, code of conduct, contributing, contributors, …
klmcadams Jan 11, 2024
ea09e33
changelog updates
klmcadams Jan 12, 2024
72ec7cc
make min python version 3.9
klmcadams Jan 12, 2024
6316e11
Merge branch 'main' into technical-review
klmcadams Jan 16, 2024
d8f42d9
use pyproject.toml only, update workflow, and move ansys/ into src/ d…
klmcadams Jan 16, 2024
38b8454
merge conflicts
klmcadams Jan 16, 2024
b670a28
remove requirements/ references in build.py
klmcadams Jan 16, 2024
133f415
add wheelhouse build to workflow and comment out wheelhouse line in b…
klmcadams Jan 16, 2024
fed5cdf
change package name to ansys-pyhps
klmcadams Jan 16, 2024
c09906c
add allowlist_externals to tox.ini file
klmcadams Jan 16, 2024
c3bcf70
replace requirements txt files
klmcadams Jan 17, 2024
235c15d
revert value to None
klmcadams Jan 17, 2024
55143c1
merge license headers from main
klmcadams Jan 17, 2024
42e5795
update workflow to use actions
klmcadams Jan 17, 2024
d5341ed
cd into pyhps dir for package lib
klmcadams Jan 17, 2024
a106a9b
change build.py to save_build.py
klmcadams Jan 17, 2024
ef7ad58
use pyproject.toml's version, delete build.py, and update workflow to…
klmcadams Jan 17, 2024
55bdc0d
remove obsolete vars & install repo for lib version
klmcadams Jan 17, 2024
aadf06d
update license header hook to 0.2.8
klmcadams Jan 17, 2024
1bb7c20
update artifact name for pre-release
klmcadams Jan 17, 2024
87be642
add doc-style check, generate pdf for docs, and upload dev & stable docs
klmcadams Jan 18, 2024
a28ae4c
Merge branch 'main' into technical-review
klmcadams Jan 18, 2024
5fdd5d7
update docs for doc check
klmcadams Jan 18, 2024
c389fc5
doc style updates
klmcadams Jan 18, 2024
2924e25
add latexmk installs
klmcadams Jan 18, 2024
57b8fa2
matrix tests
klmcadams Jan 18, 2024
59674f1
dictionary for tests
klmcadams Jan 18, 2024
284dd7b
remove windows from tests
klmcadams Jan 18, 2024
92d53a7
update urls and comment out python3.12 for now
klmcadams Jan 18, 2024
c754d76
keycloak dep dependent on python version & url updates
klmcadams Jan 19, 2024
abf0979
add missing comma
klmcadams Jan 19, 2024
be5fc3e
add quotes around python version
klmcadams Jan 19, 2024
adb9915
upload coverage results
klmcadams Jan 19, 2024
900d2eb
change python-keycloak to original dep
klmcadams Jan 22, 2024
07079a6
add python3.12 to workflow
klmcadams Jan 22, 2024
0ac8795
remove filterwarnings
klmcadams Jan 22, 2024
73a7a6f
add setuptools for python 3.12
klmcadams Jan 22, 2024
ceedd07
add quotes around python version
klmcadams Jan 22, 2024
fa15119
test updates
klmcadams Jan 22, 2024
6ae2e02
show missing coverage in pytest
klmcadams Jan 22, 2024
e92b736
change coverage-html upload
klmcadams Jan 22, 2024
94bb563
change src/ansys/hps/client to src/ansys/hps/core
klmcadams Jan 23, 2024
edc102a
use ansys_favicon
klmcadams Jan 23, 2024
b71e914
make documentation run for main python version
klmcadams Jan 23, 2024
437d60c
revert back to ansys-hps-client
klmcadams Jan 23, 2024
0e5fe06
remove last core ref
klmcadams Jan 23, 2024
e5c3018
merge Kathy's doc changes into branch
klmcadams Jan 23, 2024
824df08
add sphinx-autoapi
klmcadams Jan 23, 2024
e4e72dc
update dependabot
klmcadams Jan 23, 2024
b959543
change how pytest runs
klmcadams Jan 23, 2024
bc2802e
add cov-append arg to end of coverage run
klmcadams Jan 23, 2024
0f98e0e
update conf.py for autoapi
klmcadams Jan 25, 2024
1e7675d
add information for api references
klmcadams Jan 25, 2024
9538114
updates to conf.py
klmcadams Jan 25, 2024
e39fda1
add more docstrings and update sphinx docs
klmcadams Jan 26, 2024
b17bf96
remove sphinx tabs
klmcadams Jan 26, 2024
d23fded
make navigation depth 5 to show all classes
klmcadams Jan 26, 2024
c867e42
remove added docstrings on autogen code files
klmcadams Jan 31, 2024
5cef4b0
workflow & version updates
klmcadams Jan 31, 2024
d4ae342
main python version 3.10 to match workflow settings
klmcadams Jan 31, 2024
7f0f0c9
fix: smoke tests should run all Python versions
RobPasMue Feb 1, 2024
482f189
fix: dependent stages
RobPasMue Feb 1, 2024
ea03310
fix: dependent stage
RobPasMue Feb 1, 2024
164b90e
fix: dependent stages
RobPasMue Feb 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
version: 2
updates:
- package-ecosystem: "pip" # See documentation for possible values
directory: "/requirements" # Location of package manifests
insecure-external-code-execution: allow
directory: "/" # Location of package manifests
schedule:
interval: "daily"
interval: "weekly"
labels:
- "maintenance"
- "dependencies"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
labels:
- "maintenance"
- "dependencies"
11 changes: 6 additions & 5 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
documentation:
- doc/source/**/*
- changed-files:
- any-glob-to-any-file: ['doc/source/**/*']
maintenance:
- .github/**/*
- .flake8
- pyproject.toml
- changed-files:
- any-glob-to-any-file: ['.github/**/*', '.flake8', 'pyproject.toml']
dependencies:
- requirements/*
- changed-files:
- any-glob-to-any-file: ['pyproject.toml']
215 changes: 150 additions & 65 deletions .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ on:
- main

env:
MAIN_PYTHON_VERSION: '3.9'
DOC_PYTHON_VERSION: '3.9'
DOCUMENTATION_CNAME: 'rep.docs.pyansys.com'
MAIN_PYTHON_VERSION: '3.10'
DOCUMENTATION_CNAME: 'hps.docs.pyansys.com'
PACKAGE_NAME: 'ansys-hps-client'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -34,16 +34,25 @@ jobs:
- name: Test with tox
run: tox -e style

quick-tests:
doc-style:
name: Documentation Style Check
runs-on: ubuntu-latest
steps:
- name: PyAnsys documentation style checks
uses: ansys/actions/doc-style@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}

tests:
name: Quick tests and coverage
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
cfg:
- {python-version: "3.10", toxenv: "py310"}
os: [ubuntu-latest]
cfg: [
{ python-version: '3.10', toxenv: 'py310' },
]
fail-fast: false

steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.cfg.python-version }}
Expand Down Expand Up @@ -95,6 +104,14 @@ jobs:
REP_TEST_USERNAME: repadmin
REP_TEST_PASSWORD: repadmin

- name: "Upload coverage results"
uses: actions/upload-artifact@v4
if: matrix.cfg.python-version == env.MAIN_PYTHON_VERSION
with:
name: coverage-html
path: .cov/html
retention-days: 7

- name: Publish Test Report
uses: mikepenz/action-junit-report@v3
if: always()
Expand All @@ -113,102 +130,170 @@ jobs:
docs:
name: Documentation
runs-on: ubuntu-latest
# needs: docs-style
needs: [doc-style]
steps:
- uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.DOC_PYTHON_VERSION }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools tox

# Necessary for creating PDF
sudo apt-get -y install latexmk
sudo apt install texlive-latex-extra

- name: Generate the documentation with tox
run: tox -e doc

- name: Upload HTML Documentation
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: documentation-html
path: build/sphinx/html
path: doc/_build/html
retention-days: 7

upload_dev_docs:
name: "Upload dev documentation"
if: github.ref == 'refs/heads/main'
- name: Upload PDF Documentation
uses: actions/upload-artifact@v4
with:
name: documentation-pdf
path: doc/_build/latex/*.pdf
retention-days: 7

smoke-tests:
klmcadams marked this conversation as resolved.
Show resolved Hide resolved
name: Build and Smoke tests
runs-on: ${{ matrix.os }}
needs: [style]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
should-release:
- ${{ github.event_name == 'push' && contains(github.ref, 'refs/tags') }}
exclude:
- should-release: false
os: macos-latest
steps:
- name: Build wheelhouse and perform smoke test
uses: ansys/actions/build-wheelhouse@v5
with:
library-name: ${{ env.PACKAGE_NAME }}
operating-system: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}

package:
name: Package library
needs: [tests, docs, smoke-tests]
runs-on: ubuntu-latest
needs: [docs]
steps:
- name: Deploy the latest documentation
uses: ansys/actions/doc-deploy-dev@v2
- name: Build library source and wheel artifacts
uses: ansys/actions/build-library@v5
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
library-name: ${{ env.PACKAGE_NAME }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}

build:
name: Build and publish library
library-version:
name: Get library version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.build.outputs.version }}
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
- name: "Install Git and clone project"
uses: actions/checkout@v4

- name: "Set up Python ${{ env.MAIN_PYTHON_VERSION }}"
uses: ansys/actions/_setup-python@main
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
- name: Install dependencies and build the library
id: build
use-cache: true

- name: "Install the library"
shell: bash
run: |
python -m pip install --upgrade pip setuptools
python -m pip install -r requirements/requirements_build.txt
python -m build venv wheel
python -m twine check dist/*
version=$(ls dist | grep ansys_pyhps | grep -E -o "[0-9]+.[0-9]+.[a-z0-9]+")
echo "version=$version" >> $GITHUB_OUTPUT
#- name: Upload to private PyPi
# if: github.ref == 'refs/heads/main'
# run: |
# python -m twine upload --verbose --skip-existing dist/*.whl
# env:
# TWINE_USERNAME: __token__
# TWINE_PASSWORD: ${{ secrets.PYANSYS_PYPI_PRIVATE_PAT }}
# TWINE_REPOSITORY_URL: https://pkgs.dev.azure.com/pyansys/_packaging/pyansys/pypi/upload
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ansys-pyhps-package
path: |
dist/*.whl
retention-days: 5
python -m pip install -e .

release:
name: "Release"
if: startsWith(github.ref, 'refs/heads/main') || github.ref_type == 'tag'
needs: [build, docs]
- name: "Verify library is properly installed and get its version number"
shell: bash
run: |
library_name=${{ env.PACKAGE_NAME }}
version=$(python -c "import importlib.metadata as importlib_metadata; print(importlib_metadata.version('$library_name'))")

if [ -z "$version" ]; then
echo "Problem getting the library version"
exit 1;
else
echo "The library version is: $version";
fi;
echo "library_version=$version" >> $GITHUB_ENV

pre-release:
name: Pre-release project
if: startsWith(github.ref, 'refs/heads/main')
needs: [package, library-version]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
with:
name: ansys-pyhps-package
name: ansys-hps-client-artifacts
path: /tmp/artifacts

- name: List artifacts
run: ls -ltR /tmp/artifacts

- name: Release for tag
if: github.ref_type == 'tag'
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
files: |
/tmp/artifacts/*.whl

- name: Release to latest-dev
uses: "marvinpinto/action-automatic-releases@latest"
if: startsWith(github.ref, 'refs/heads/main')
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
automatic_release_tag: "v${{needs.build.outputs.version}}"
automatic_release_tag: "v${{ env.library_version }}"
prerelease: true
title: "v${{needs.build.outputs.version}}"
title: "v${{ env.library_version }}"
files: |
/tmp/artifacts/*.whl

upload_dev_docs:
name: "Deploy dev documentation"
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs: [package]
steps:
- name: Deploy the latest documentation
uses: ansys/actions/doc-deploy-dev@v4
with:
doc-artifact-name: 'documentation-html'
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}

release:
name: Release project
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
needs: [package]
runs-on: ubuntu-latest
steps:
- name: Release to the private PyPI repository
uses: ansys/actions/release-pypi-private@v5
with:
library-name: ${{ env.PACKAGE_NAME }}
twine-username: "__token__"
twine-token: ${{ secrets.PYANSYS_PYPI_PRIVATE_PAT }}

- name: Release to GitHub
uses: ansys/actions/release-github@v5
with:
library-name: ${{ env.PACKAGE_NAME }}

doc-deploy-stable:
name: "Deploy stable documentation"
# Deploy release documentation when creating a new tag
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs: [release]
steps:
- uses: ansys/actions/doc-deploy-stable@v4
with:
doc-artifact-name: 'documentation-html'
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
15 changes: 7 additions & 8 deletions .github/workflows/label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,9 @@ jobs:

# Label based on modified files
- name: Label based on changed files
uses: actions/labeler@v4
uses: actions/labeler@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: ''

# Label based on branch name
- uses: actions-ecosystem/action-add-labels@v1
Expand Down Expand Up @@ -77,9 +76,9 @@ jobs:
issue-number: ${{ github.event.pull_request.number }}
body: |
Please add one of the following labels to add this contribution to the Release Notes :point_down:
- [bug]([https://github.com/pyansys/pyhps/pulls?q=label%3Abug+)
- [documentation]([https://github.com/pyansys/pyhps/pulls?q=label%3Adocumentation+)
- [enhancement]([https://github.com/pyansys/pyhps/pulls?q=label%3Aenhancement+)
- [good first issue]([https://github.com/pyansys/pyhps/pulls?q=label%3Agood+first+issue)
- [maintenance]([https://github.com/pyansys/pyhps/pulls?q=label%3Amaintenance+)
- [release]([https://github.com/pyansys/pyhps/pulls?q=label%3Arelease+)
- [bug]([https://github.com/ansys-internal/pyhps/pulls?q=label%3Abug+)
- [documentation]([https://github.com/ansys-internal/pyhps/pulls?q=label%3Adocumentation+)
- [enhancement]([https://github.com/ansys-internal/pyhps/pulls?q=label%3Aenhancement+)
- [good first issue]([https://github.com/ansys-internal/pyhps/pulls?q=label%3Agood+first+issue)
- [maintenance]([https://github.com/ansys-internal/pyhps/pulls?q=label%3Amaintenance+)
- [release]([https://github.com/ansys-internal/pyhps/pulls?q=label%3Arelease+)
Loading
Loading