Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
24dd24c
v9.0.0 [skip ci]
claude-code Oct 2, 2026
be39e68
Remove the MSYS2 runtime 'mingw32'
claude-code Oct 2, 2026
25fa0f9
Remove the MSYS2 runtime 'mingw64'
claude-code Oct 2, 2026
b109713
Add PyPy 3.12 ('pypy-3.12', PyPy 8.0)
claude-code Oct 2, 2026
3e86dae
Remove the MSYS2 runtime 'mingw32' (#290)
Paebbels Oct 2, 2026
8a018fe
Remove the MSYS2 runtime 'mingw64' (#291)
Paebbels Oct 2, 2026
5694d43
Remove PyPy 3.9 and 3.10
claude-code Oct 2, 2026
4b94541
Align the CPython rows of the version list with 'Parameters'
claude-code Oct 2, 2026
229a751
Add Python 3.15, remove Python 3.9
claude-code Oct 2, 2026
fe504b7
Add Python 3.16 as pre-release
claude-code Oct 2, 2026
2d8663d
Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release (#292)
Paebbels Oct 2, 2026
6721134
Shift the relative Python versions of the verifications to Python 3.15
claude-code Oct 2, 2026
4a81350
Shift the relative Python versions of the verifications to Python 3.1…
Paebbels Oct 2, 2026
13d3b6d
Count the page views of the published documentation with GoatCounter
claude-code Oct 3, 2026
3a9ebe1
Count the page views of the published documentation with GoatCounter …
Paebbels Oct 8, 2026
dcceba0
ComputePacboyPackages: pyEDAA.Reports and sphinx_reports need python-…
claude-code Oct 8, 2026
c52b2c5
ComputePacboyPackages: entries for pyTooling.Sphinx and its 'reports'…
claude-code Oct 8, 2026
ce994fd
ComputePacboyPackages: python-jsonschema for pyEDAA.Reports, entries …
Paebbels Oct 8, 2026
1d6c19a
ApplicationTesting: download artifacts the application tests read ('d…
claude-code Oct 8, 2026
2aab891
ApplicationTesting: input 'download_artifacts' is named 'artifacts_pa…
claude-code Oct 9, 2026
7f162a7
ApplicationTesting: download artifacts the application tests read (#296)
Paebbels Oct 9, 2026
2bbb49f
Render the documentation with pyTooling.Sphinx instead of sphinx_reports
claude-code Oct 9, 2026
81659d7
LaTeX: allow lists nested deeper than 4 levels
claude-code Oct 9, 2026
ae7d0c9
Directory structures as a 'tree' instead of indented text
claude-code Oct 9, 2026
0de1be8
CompletePipeline: the hierarchy of workflows and actions as a 'tree'
claude-code Oct 9, 2026
1ec86e5
Hierarchies in the documentation drawn by the 'tree' directive (#298)
Paebbels Oct 11, 2026
fc7e0b1
Documentation rendered with pyTooling.Sphinx instead of sphinx-report…
Paebbels Oct 11, 2026
5586de7
AppTest: the example report is in 'report/' inside its artifact direc…
claude-code Oct 11, 2026
c13a6e3
AppTest: the example report is in 'report/' inside its artifact direc…
Paebbels Oct 11, 2026
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
8 changes: 6 additions & 2 deletions .github/actions/ComputePacboyPackages/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,12 +101,13 @@ runs:
"pyedaa.ipxact": "python-lxml:p",
"pyedaa.osvvm": "python-coverage:p python-lxml:p python-markupsafe:p python-pyaml:p python-types-pyyaml:p python-ruamel-yaml:p python-ruamel.yaml.clib:p",
"pyedaa.outputfilter": "python-ruamel-yaml:p python-ruamel.yaml.clib:p",
"pyedaa.reports": "python-ruamel-yaml:p python-ruamel.yaml.clib:p python-lxml:p",
"pyedaa.reports": "python-jsonschema:p python-ruamel-yaml:p python-ruamel.yaml.clib:p python-lxml:p",
"pyedaa.toolsetup": "python-ruamel-yaml:p python-ruamel.yaml.clib:p",
"pyedaa.ucis": "python-lxml:p",
"pyedaa.workflow": "python-ruamel-yaml:p python-ruamel.yaml.clib:p",
"pytooling.sphinx": "python-aiohttp:p python-markupsafe:p",
"pyversioning": "python-ruamel-yaml:p python-ruamel.yaml.clib:p",
"sphinx_reports": "python-coverage:p python-lxml:p python-markupsafe:p python-pyaml:p python-types-pyyaml:p python-ruamel-yaml:p python-ruamel.yaml.clib:p",
"sphinx_reports": "python-coverage:p python-jsonschema:p python-lxml:p python-markupsafe:p python-pyaml:p python-types-pyyaml:p python-ruamel-yaml:p python-ruamel.yaml.clib:p",
}
subPackages = {
"pyedaa.projectmodel": {
Expand All @@ -124,6 +125,9 @@ runs:
# are pure Python and install from PyPI on MSYS2 without help. So would a 'plotly' extra: plotly needs
# only narwhals and packaging. That is also why 'cli' rewrites to what 'diagram' needs: it installs the
# 'diagram' and 'terminal' dependencies, and only the first of them has compiled code.
"pytooling.sphinx": {
"reports": "python-jsonschema:p python-lxml:p python-pyaml:p python-ruamel-yaml:p python-ruamel.yaml.clib:p python-types-pyyaml:p",
},
}

regExp = compile(r"(?P<PackageName>[\w_\-\.]+)(?:\[(?P<SubPackages>(?:\w+)(?:\s*,\s*\w+)*)\])?(?:\s*(?P<Comperator>[<>~=]+)\s*)(?P<Version>\d+(?:\.\d+)*)(?:-(?P<VersionExtension>\w+))?")
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/ComputeRequirements/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ inputs:
required: true
type: string
mingw_requirements:
description: "Override of 'requirements' for MSYS2 (MINGW64). If empty, 'requirements' is used on MSYS2 too."
description: "Override of 'requirements' for MSYS2. If empty, 'requirements' is used on MSYS2 too."
required: false
default: ''
type: string
Expand Down
28 changes: 18 additions & 10 deletions .github/workflows/ApplicationTesting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,16 @@ on:
required: false
default: ''
type: string
artifacts_pattern:
description: 'Glob of the names of artifacts to download before the tests run, e.g. ''Example-*''.'
required: false
default: ''
type: string
artifacts_directory:
description: 'Directory the artifacts are downloaded into, each into a subdirectory named after the artifact.'
required: false
default: 'artifacts'
type: string
apt:
description: 'Ubuntu dependencies to be installed through apt.'
required: false
Expand All @@ -55,7 +65,7 @@ on:
default: '-r ./requirements.txt'
type: string
mingw_requirements:
description: 'Override Python dependencies to be installed through pip on MSYS2 (MINGW64) only.'
description: 'Override Python dependencies to be installed through pip on MSYS2 only.'
required: false
default: ''
type: string
Expand Down Expand Up @@ -84,11 +94,6 @@ on:
required: false
default: ''
type: string
mingw64_before_script:
description: 'Scripts to execute before pytest on Windows (x64-64) within MSYS2 MinGW64.'
required: false
default: ''
type: string
ucrt64_before_script:
description: 'Scripts to execute before pytest on Windows (x64-64) within MSYS2 UCRT64.'
required: false
Expand Down Expand Up @@ -234,10 +239,6 @@ jobs:
if: matrix.system == 'windows-arm' && inputs.windows_arm_before_script != ''
run: ${{ inputs.windows_arm_before_script }}

- name: 🪟🟦 Windows (x86-64) + MinGW64 before scripts
if: matrix.system == 'msys2' && matrix.runtime == 'MINGW64' && inputs.mingw64_before_script != ''
run: ${{ inputs.mingw64_before_script }}

- name: 🪟🟨 Windows (x86-64) + UCRT64 before scripts
if: matrix.system == 'msys2' && matrix.runtime == 'UCRT64' && inputs.ucrt64_before_script != ''
run: ${{ inputs.ucrt64_before_script }}
Expand All @@ -260,6 +261,13 @@ jobs:
run: |
python -m pip install -v --disable-pip-version-check (Get-Item .\install\*.whl).FullName

- name: 📥 Download artifacts '${{ inputs.artifacts_pattern }}'
if: inputs.artifacts_pattern != ''
uses: pyTooling/download-artifact@v8
with:
pattern: ${{ inputs.artifacts_pattern }}
path: ${{ inputs.artifacts_directory }}

# Run pytests

- name: ✅ Run application tests (Ubuntu/macOS)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/CheckCodeQuality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
package_directory:
description: 'The package''s directory'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/CheckDocumentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
directory:
description: 'Source code directory to check.'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/CheckMarketplaceMetadata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ on:
description: 'Python version.'
type: string
required: false
default: '3.14'
default: '3.15'
action_file:
description: |
Action metadata file. GitHub Marketplace requires it at the repository root.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/CheckReleaseVersion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
version:
description: 'Version to be released, e.g. v1.2.3.'
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/CompletePipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ on:
unittest_python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
unittest_python_version_list:
description: 'Space separated list of Python versions to run tests with.'
required: false
default: '3.10 3.11 3.12 3.13 3.14'
default: '3.11 3.12 3.13 3.14 3.15'
type: string
unittest_system_list:
description: 'Space separated list of systems to run tests on.'
required: false
default: 'ubuntu ubuntu-arm windows windows-arm macos macos-arm mingw64 ucrt64'
default: 'ubuntu ubuntu-arm windows windows-arm macos macos-arm ucrt64'
type: string
unittest_include_list:
description: 'Space separated list of system:python items to be included into the list of test.'
Expand All @@ -61,12 +61,12 @@ on:
unittest_exclude_list:
description: 'Space separated list of system:python items to be excluded from the list of test.'
required: false
default: 'windows-arm:3.9 windows-arm:3.10'
default: 'windows-arm:3.10'
type: string
unittest_disable_list:
description: 'Space separated list of system:python items to be disabled from the list of test.'
required: false
default: 'windows-arm:pypy-3.10 windows-arm:pypy-3.11'
default: 'windows-arm:pypy-3.11 windows-arm:pypy-3.12'
type: string
unittest_parallel:
description: 'Number of pytest-xdist workers for unit tests: ''auto'', a number, or ''false'' (serial).'
Expand All @@ -81,7 +81,7 @@ on:
apptest_python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
apptest_python_version_list:
description: 'Space separated list of Python versions to run tests with.'
Expand All @@ -101,12 +101,12 @@ on:
apptest_exclude_list:
description: 'Space separated list of system:python items to be excluded from the list of test.'
required: false
default: 'windows-arm:3.9 windows-arm:3.10'
default: 'windows-arm:3.10'
type: string
apptest_disable_list:
description: 'Space separated list of system:python items to be disabled from the list of test.'
required: false
default: 'windows-arm:pypy-3.10 windows-arm:pypy-3.11'
default: 'windows-arm:pypy-3.11 windows-arm:pypy-3.12'
type: string
apptest_parallel:
description: 'Number of pytest-xdist workers for application tests: ''auto'', a number, or ''false'' (serial).'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ExtractConfiguration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
coverage_config:
description: 'Path to the .coveragerc file. Use pyproject.toml by default.'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/Package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
requirements:
description: 'Python dependencies to be installed through pip; if empty, use pyproject.toml through build.'
Expand Down
42 changes: 21 additions & 21 deletions .github/workflows/Parameters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,17 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
python_version_list:
description: 'Space separated list of Python versions to run tests with.'
required: false
default: '3.10 3.11 3.12 3.13 3.14'
default: '3.11 3.12 3.13 3.14 3.15'
type: string
system_list:
description: 'Space separated list of systems to run tests on.'
required: false
default: 'ubuntu ubuntu-arm windows windows-arm macos macos-arm mingw64 ucrt64'
default: 'ubuntu ubuntu-arm windows windows-arm macos macos-arm ucrt64'
type: string
include_list:
description: 'Space separated list of system:python items to be included into the list of test.'
Expand All @@ -73,12 +73,12 @@ on:
exclude_list:
description: 'Space separated list of system:python items to be excluded from the list of test.'
required: false
default: 'windows-arm:3.9 windows-arm:3.10'
default: 'windows-arm:3.10'
type: string
disable_list:
description: 'Space separated list of system:python items to be disabled from the list of test.'
required: false
default: 'windows-arm:pypy-3.10 windows-arm:pypy-3.11'
default: 'windows-arm:pypy-3.11 windows-arm:pypy-3.12'
type: string
ubuntu_image:
description: 'The used GitHub Action image for Ubuntu (x86-64) based jobs.'
Expand Down Expand Up @@ -348,8 +348,8 @@ jobs:
disable_list = "${{ inputs.disable_list }}".strip()

currentMSYS2Version = "3.14"
currentAlphaVersion = "3.15"
currentAlphaRelease = "3.15.0-a.4"
currentAlphaVersion = "3.16"
currentAlphaRelease = "3.16.0-alpha.1"

if systems == "":
print("::error title=Parameters::system_list is empty.")
Expand All @@ -376,10 +376,13 @@ jobs:
else:
disabled = [disable.strip() for disable in disable_list.split(" ")]

if "3.9" in versions:
print("::warning title=Deprecated::Support for Python 3.9 ended in 2025.10.")
if "3.10" in versions:
print("::warning title=Deprecated::Support for Python 3.10 ended in 2026.10.")
if "msys2" in systems:
print("::warning title=Deprecated::System 'msys2' will be replaced by 'mingw64'.")
print("::warning title=Deprecated::System 'msys2' will be replaced by 'ucrt64'.")
for removed in ("mingw32", "mingw64"):
if removed in systems:
print(f"::warning title=Removed::System '{removed}' isn't supported anymore.")
if currentAlphaVersion in versions:
print(f"::notice title=Experimental::Python {currentAlphaVersion} ({currentAlphaRelease}) is a pre-release.")
for disable in disabled:
Expand All @@ -389,16 +392,15 @@ jobs:
data = {
# Python and PyPy versions supported by "setup-python" action
"python": {
"3.9": { "icon": "⚫", "until": "2025.10" },
"3.10": { "icon": "🔴", "until": "2026.10" },
"3.11": { "icon": "🟠", "until": "2027.10" },
"3.12": { "icon": "🟡", "until": "2028.10" },
"3.13": { "icon": "🟢", "until": "2029.10" },
"3.10": { "icon": "⚫", "until": "2026.10" },
"3.11": { "icon": "🔴", "until": "2027.10" },
"3.12": { "icon": "🟠", "until": "2028.10" },
"3.13": { "icon": "🟡", "until": "2029.10" },
"3.14": { "icon": "🟢", "until": "2030.10" },
"3.15": { "icon": "🟣", "until": "2031.10" },
"pypy-3.9": { "icon": "⟲🔴", "until": "????.??" },
"pypy-3.10": { "icon": "⟲🟠", "until": "????.??" },
"pypy-3.11": { "icon": "⟲🟡", "until": "????.??" },
"3.15": { "icon": "🟢", "until": "2031.10" },
"3.16": { "icon": "🟣", "until": "2032.10" },
"pypy-3.11": { "icon": "⟲🟠", "until": "????.??" },
"pypy-3.12": { "icon": "⟲🟡", "until": "????.??" },
},
# Runner systems (runner images) supported by GitHub Actions
"sys": {
Expand All @@ -412,8 +414,6 @@ jobs:
# Runtimes provided by MSYS2
"runtime": {
"msys": { "icon": "🪟🟪", "name": "Windows+MSYS2 (x86-64) - MSYS" },
"mingw32": { "icon": "🪟⬛", "name": "Windows+MSYS2 (x86-64) - MinGW32" },
"mingw64": { "icon": "🪟🟦", "name": "Windows+MSYS2 (x86-64) - MinGW64" },
"clang32": { "icon": "🪟🟫", "name": "Windows+MSYS2 (x86-64) - Clang32" },
"clang64": { "icon": "🪟🟧", "name": "Windows+MSYS2 (x86-64) - Clang64" },
"ucrt64": { "icon": "🪟🟨", "name": "Windows+MSYS2 (x86-64) - UCRT64" },
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/PublishOnPyPI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
requirements:
description: 'Python dependencies to be installed through pip.'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/SphinxDocumentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
requirements:
description: 'Python dependencies to be installed through pip.'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/StaticTypeCheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string
requirements:
description: 'Python dependencies to be installed through pip.'
Expand Down
11 changes: 1 addition & 10 deletions .github/workflows/UnitTesting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ on:
default: '-r ./requirements.txt'
type: string
mingw_requirements:
description: 'Override Python dependencies to be installed through pip on MSYS2 (MINGW64) only.'
description: 'Override Python dependencies to be installed through pip on MSYS2 only.'
required: false
default: ''
type: string
Expand Down Expand Up @@ -79,11 +79,6 @@ on:
required: false
default: ''
type: string
mingw64_before_script:
description: 'Scripts to execute before pytest on Windows (x64-64) within MSYS2 MinGW64.'
required: false
default: ''
type: string
ucrt64_before_script:
description: 'Scripts to execute before pytest on Windows (x64-64) within MSYS2 UCRT64.'
required: false
Expand Down Expand Up @@ -288,10 +283,6 @@ jobs:
if: matrix.system == 'windows-arm' && inputs.windows_arm_before_script != ''
run: ${{ inputs.windows_arm_before_script }}

- name: 🪟🟦 Windows (x86-64) + MinGW64 before scripts
if: matrix.system == 'msys2' && matrix.runtime == 'MINGW64' && inputs.mingw64_before_script != ''
run: ${{ inputs.mingw64_before_script }}

- name: 🪟🟨 Windows (x86-64) + UCRT64 before scripts
if: matrix.system == 'msys2' && matrix.runtime == 'UCRT64' && inputs.ucrt64_before_script != ''
run: ${{ inputs.ucrt64_before_script }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/VerifyDocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ on:
python_version:
description: 'Python version.'
required: false
default: '3.14'
default: '3.15'
type: string

jobs:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/_Checking_CleanupArtifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
with:
name: Example
python_version_list: "3.13 3.14" # py-1, py-0
python_version_list: "3.14 3.15" # py-1, py-0
system_list: "ubuntu windows"

Testing:
Expand Down
Loading
Loading