Repository navigation
Conversation
Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
'Parameters' warns when 'system_list' still names it and creates no job for it. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
The default 'system_list' runs MSYS2 on 'ucrt64' only. 'UnitTesting' and 'ApplicationTesting' lose the input 'mingw64_before_script'. 'Parameters' warns when 'system_list' still names 'mingw64' and creates no job for it. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
PyPy 8.0 ships Python 3.12 for every runner except Windows on aarch64, so 'windows-arm:pypy-3.12' joins the default 'disable_list'. The PyPy icons shift by one color, 'pypy-3.12' becomes the latest PyPy. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
'pypy-3.9' and 'pypy-3.10' leave the list of known versions, 'windows-arm:pypy-3.10' the default 'disable_list'. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Versions 3.9 to 3.15 with the icons 'Parameters' uses: 3.14 is the latest release, 3.15 the pre-release. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Python 3.15 becomes the default 'python_version' of every template, and the default 'python_version_list' is '3.11 3.12 3.13 3.14 3.15'. Python 3.9 leaves the list of known versions; listing 3.10 warns that its support ended. The pre-release version is now 3.16. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
'3.16' maps to '3.16.0-alpha.1', spelled as in setup-python's version manifest ('alpha', not 'a').
Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
'py-0' is 3.15 now, so every 'py-N' test case and its expected job matrix move up by one version. The default 'exclude_list' loses 'windows-arm:3.9', as 3.9 is no known version any more. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
The documentation built on GitHub Actions - the one published to GitHub Pages - loads GoatCounter's script, which counts each page view for the site 'pytooling'. A local build has no script. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
…jsonschema pyEDAA.Reports reads JSON reports validated with jsonschema (coverage.py's JSON format, edaa-org/pyEDAA.Reports#204). Its transitive entry, and the one of sphinx_reports depending on it, list python-jsonschema:p, so MSYS2 jobs of packages depending on pyEDAA.Reports install it from MSYS2 instead of building rpds-py from source. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
… extra pyTooling.Sphinx took over the reports of sphinx_reports. It needs python-aiohttp:p (pyTooling[pypi]) and python-markupsafe:p (Sphinx, through Jinja2); its 'reports' extra adds pyEDAA.Reports (jsonschema, lxml, ruamel.yaml) and docstr_coverage (PyYAML). Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
…for pyTooling.Sphinx (#295)
…ownload_artifacts') New inputs 'download_artifacts' - a glob of artifact names, empty by default - and 'artifacts_directory' - 'artifacts' by default. After the wheel is installed, the matching artifacts are downloaded, each into a subdirectory named after the artifact, so application tests can read what other jobs of the pipeline wrote, e.g. the reports of example jobs. '_Checking_JobTemplates.yml' uploads an example report from a new job 'ExampleReport' and lets 'AppTesting' download 'Example-*'; a new app test reads it, and skips where no artifacts were downloaded. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
…ttern' Like 'unittest_artifacts_pattern' (PublishTestResults) and 'coverage_artifacts_pattern' (PublishCoverageResults). Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
pyTooling.Sphinx carries the domain 'report' (transferred from sphinx_reports) with configuration values renamed to the 'pyTooling_' prefix, and registers the style roles, ':pycode:', '|br|' and '|hr|' itself, so the prolog keeps only ':bashcode:' and ':jsoncode:'. Its extra 'reports' replaces the requirement sphinx_reports. It requires pyTooling 10 from GitHub, which conflicts with 'pyTooling ~= 8.17' of the package's requirements, so doc/requirements.txt no longer includes them. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
The 'tree' directive renders as nested bullet lists in LaTeX, and a namespace package's directory tree has 5 levels, which ends lualatex with "Too deeply nested". Option 'maxlistdepth' of package 'sphinx' lifts LaTeX' limit. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
The example directory structures on the pages RepositoryStructure, index, Parameters, CompletePipeline and UnitTesting are drawn by pyTooling.Sphinx' 'tree' directive: 📂 directories, 📦 Python packages, 🐍 Python files, 📄 other files. index.rst named the documentation directory 'docs/'; it is 'doc/', as everywhere else. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
A new topic "Workflow Hierarchy" lists the jobs of CompletePipeline.yml in job order, each with the reusable workflow it calls, and the actions that workflow uses; composite actions are followed into their own steps. It is generated from the YAML files. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
…tory. pyTooling/upload-artifact keeps the uploaded file's path, 'report/Example.txt'. Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Automatically written by the 'UpdateVersionBranch' workflow.
Not up to standards ⛔
|
Author
|
Merged
Resolution: every conflicting reference keeps Until this is merged, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
A new major version,
@r9: Python 3.15 becomes the default, MSYS2 runs on UCRT64 only.mingw32andmingw64removed (with the inputmingw64_before_script); Python 3.9, PyPy 3.9and 3.10 removed.
pyTooling.Sphinx.
GoatCounter page views.
Important
Field-tested on
devwith Python 3.15.0 and PyPy 8.0 (3.12) on the runners.ApplicationTesting's artifactdownload needs pyTooling/download-artifact v1.11.0 (
@v8): before it, a pattern matching one artifact put the filesdirectly into
artifacts_directory.The PDF documentation needs
pytooling/miktex:sphinxof pyTooling/MiKTeX v1.7.0: it maps the icons pyTooling.Sphinxand the trees write (📄, 🧩, ...) to the emoji font; latexmk fails on missing characters.
✨ New Features
Python 3.15 is the latest CPython release, Python 3.16 the pre-release (Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292). 3.15 gets 🟢, 3.16 🟣
(
3.16.0-alpha.1); the older versions move down one level: 3.14 🟢, 3.13 🟡, 3.12 🟠, 3.11 🔴, 3.10 ⚫.PyPy 3.12 (
pypy-3.12, PyPy 8.0.0) (Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292). It runs on Linux, macOS and Windows on x86-64 and on Linux and macOSon arm64; PyPy publishes no Windows-on-arm64 build, so
windows-arm:pypy-3.12is in the defaultdisable_list. Icons:pypy-3.11⟲🟠,pypy-3.12⟲🟡.ApplicationTesting.ymldownloads artifacts the application tests read (ApplicationTesting: download artifacts the application tests read #296):artifacts_pattern: a glob of artifact names, e.g.'Example-*'. Empty by default - no download, so existingpipelines are unchanged. Named like
unittest_artifacts_pattern(PublishTestResults.yml) andcoverage_artifacts_pattern(PublishCoverageResults.yml).artifacts_directory: where they go, default'artifacts'; each artifact is extracted into a subdirectory namedafter it - also a single matching one (pyTooling/download-artifact v1.11.0).
mingw64is removed (Remove the MSYS2 runtime 'mingw64' #291). The defaultsystem_list(Parameters,CompletePipeline)runs MSYS2 on
ucrt64only. Asystem_liststill namingmingw64gets the warning "System 'mingw64' isn'tsupported anymore." and no job. The deprecation warning of
msys2points toucrt64.UnitTestingandApplicationTestinglose the inputmingw64_before_script(Remove the MSYS2 runtime 'mingw64' #291), with its step. A callerstill passing it fails at startup (Invalid input) - use
ucrt64_before_script.mingw_requirementskeeps its name;its description says MSYS2.
mingw32is removed (Remove the MSYS2 runtime 'mingw32' #290). Asystem_listnaming it gets the warning "System 'mingw32'isn't supported anymore." instead of a job.
python_versiondefaults to'3.15'in every template having it,python_version_listto'3.11 3.12 3.13 3.14 3.15'(Parameters,CompletePipeline) (Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292).Moving a pipeline from
@r8to@r9:mingw64_before_script→ucrt64_before_script.mingw32/mingw64fromsystem_list,exclude_list,disable_listandinclude_list(only warnsotherwise).
python_versionof3.9or apypy-3.9/pypy-3.10entry creates no job any more.🔧 Changes
Parameters;CompletePipeline'sunittest_*/apptest_*lists):exclude_list:'windows-arm:3.10'(Shift the relative Python versions of the verifications to Python 3.15 #293).disable_list:'windows-arm:pypy-3.11 windows-arm:pypy-3.12'(Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292).ComputePacboyPackages(ComputePacboyPackages: python-jsonschema for pyEDAA.Reports, entries for pyTooling.Sphinx #295):pyedaa.reportsandsphinx_reportslistpython-jsonschema:p- pyEDAA.Reports validates JSONreports with
jsonschema, whose dependencyrpds-pyhas compiled code.pytooling.sphinx:python-aiohttp:p(pyTooling[pypi]),python-markupsafe:p(Sphinx); its extrareportsadds what pyEDAA.Reports needs (jsonschema,lxml,ruamel.yaml) anddocstr_coverage(PyYAML).myPackageandmyFramework.Extensionlose their MinGW32/MinGW64 branches,tests/platformitsMinGW testcases (Remove the MSYS2 runtime 'mingw32' #290, Remove the MSYS2 runtime 'mingw64' #291).
📖 Documentation
mingw32andmingw64removed (Remove the MSYS2 runtime 'mingw32' #290, Remove the MSYS2 runtime 'mingw64' #291).Parameters(Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292).python_version,python_version_list,system_list,exclude_listanddisable_list; UnitTesting/ApplicationTesting dropmingw64_before_script(Remove the MSYS2 runtime 'mingw32' #290-Shift the relative Python versions of the verifications to Python 3.15 #293).artifacts_patternandartifacts_directory, and the download step (ApplicationTesting: download artifacts the application tests read #296).no cookies (Count the page views of the published documentation with GoatCounter #294).
pyTooling.Sphinxinstead ofsphinx_reports(Documentation rendered with pyTooling.Sphinx instead of sphinx-reports #297): its domainreportkeepsthe directives; the configuration values are renamed (
report_unittest_testsuites→pyTooling_Unittest_Testsuites,report_codecov_packages→pyTooling_CodeCoverage_Packages,report_doccov_packages→pyTooling_DocCoverage_Packages).|br|,|hr|, the style roles and:pycode:come from the extension.treedirective (Hierarchies in the documentation drawn by the 'tree' directive #298). CompletePipeline gets the topicWorkflow Hierarchy: its 23 jobs with the reusable workflows and actions they use.
🧪 Unit Tests
_Checking_Parameters: the relative test cases (py-0,py-1, ...) follow Python 3.15 aspy-0; the defaultmatrices expect
3.15(MSYS2:ucrt64:3.14);Params_Systemscheckswindows clang64 ucrt64,Params_PythonVersionspypy-3.11 pypy-3.12(Remove the MSYS2 runtime 'mingw32' #290-Shift the relative Python versions of the verifications to Python 3.15 #293)._Checking_JobTemplates: unit tests also on3.15andpypy-3.12, platform tests onclang64anducrt64(Remove the MSYS2 runtime 'mingw64' #291, Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292). New job
ExampleReportuploads an artifactExample-Report, whichAppTestingdownloads; the newtestcase
DownloadedArtifactsreads it fromartifacts/Example-Report/report/- pyTooling/upload-artifact keeps thefile's path (ApplicationTesting: download artifacts the application tests read #296, AppTest: the example report is in 'report/' inside its artifact directory #300).
_Checking_CleanupArtifacts:3.14 3.15(Shift the relative Python versions of the verifications to Python 3.15 #293).Known Issues
3.16fails at setup untilactions/python-versionslists it; no default list contains it.pypy-3.11,pypy-3.12), packages without app80wheel are built from source, e.g. Pillow (formatplotlib) fails on Linux for missing libjpeg headers - Skip the matplotlib testcases on PyPy 8.0 on Linux pyTooling#474.
CompletePipeline.ymldoesn't forwardartifacts_pattern/artifacts_directory; pipelines with example jobs wireApplicationTestingby hand.tests/pacman_packages.py, the standalone copy ofComputePacboyPackages, lags behind the action.@dev) until they arereleased; the
docextra ofmyPackagecarries that URL requirement (Documentation rendered with pyTooling.Sphinx instead of sphinx-reports #297).no icons (Hierarchies in the documentation drawn by the 'tree' directive #298).
@r9:pyEDAA.CLIToolpassesmingw64_before_script; pyTooling namesmingw32and
mingw64in system lists,pyEDAA.ProjectModelmingw64:*in a disable list.Related Issues and Pull-Requests
mingw32removed.mingw64andmingw64_before_scriptremoved.ComputePacboyPackages:python-jsonschemafor pyEDAA.Reports, entries for pyTooling.Sphinx.ApplicationTesting: download artifacts the application tests read.treedirective.report/inside its artifact directory.Published from Pipeline workflow triggered by github-actions[bot] on 2026-10-11 17:26:50 UTC.
This automatic release was created by pyTooling/Actions::PublishReleaseNotes.yml