Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
77 changes: 11 additions & 66 deletions .github/workflows/python-compatibility.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Python Compatibility Testing Workflow
#
# Tests Python package build compatibility across:
# - Operating Systems: Ubuntu, macOS, Windows
# - Python Versions: 3.9, 3.10, 3.11, 3.12, 3.13
# - Operating Systems: Ubuntu
# - Python Versions: 3.10 (floor), 3.14 (ceiling)
#
# Validates that the package can be built and installed correctly
# on all supported platforms and Python versions.
# on the supported Python versions.

name: Python Compatibility Check

Expand Down Expand Up @@ -34,8 +34,8 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
os: [ubuntu-latest]
python: ['3.10', '3.14']
task:
- name: Build
run: |
Expand All @@ -48,10 +48,10 @@ jobs:
twine check ./dist/*

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v3
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}

Expand All @@ -64,8 +64,7 @@ jobs:
run: |
echo "PYTHON_VERSION=$(python --version)" >> $GITHUB_ENV

- name: Test dependency wheels availability - Unix/Linux/macOS
if: runner.os != 'Windows'
- name: Test dependency wheels availability
run: |
python -m venv .venv-deps-test
. .venv-deps-test/bin/activate
Expand All @@ -79,66 +78,21 @@ jobs:
rm -rf .venv-deps-test
shell: bash

- name: Test dependency wheels availability - Windows
if: runner.os == 'Windows'
run: |
python -m venv .venv-deps-test
.venv-deps-test\Scripts\Activate.ps1
# Try installing with wheel-only first to catch dependency conflicts early
pip install --only-binary=:all: -r requirements.txt
if ($LASTEXITCODE -ne 0) {
Write-Host "Warning: Some dependencies may not have wheels available"
Write-Host "Attempting installation with source packages allowed..."
pip install -r requirements.txt
}
deactivate
Remove-Item -Recurse -Force .venv-deps-test
shell: pwsh

- name: Setup virtual environment - Unix/Linux/macOS
if: runner.os != 'Windows'
- name: Setup virtual environment
run: |
python -m venv .venv
. .venv/bin/activate
pip install -e .[dev]
shell: bash

- name: Setup virtual environment - Windows
if: runner.os == 'Windows'
run: |
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -e .[dev]
shell: pwsh

- name: Show environment info - Unix/Linux/macOS
if: runner.os != 'Windows'
- name: Show environment info
run: |
. .venv/bin/activate
which python
python --version
pip freeze
# Node.js version info - uncomment if you need to verify Node.js/npm/pnpm versions
# which node
# node --version
# npm --version
# pnpm --version
shell: bash

- name: Show environment info - Windows
if: runner.os == 'Windows'
run: |
.venv\Scripts\Activate.ps1
Get-Command python
python --version
pip freeze
# Node.js version info - uncomment if you need to verify Node.js/npm/pnpm versions
# Get-Command node
# node --version
# npm --version
# pnpm --version
shell: pwsh

# Web build steps - tests TypeScript/web components compilation and bundling
# Uncomment if you need to verify that web components work with your Python package changes
# - name: Build Web
Expand All @@ -155,17 +109,8 @@ jobs:
# run: |
# pnpm test-aaz-emitter

- name: ${{ matrix.task.name }} - Unix/Linux/macOS
if: runner.os != 'Windows'
- name: ${{ matrix.task.name }}
run: |
. .venv/bin/activate
${{ matrix.task.run }}
shell: bash

- name: ${{ matrix.task.name }} - Windows
if: runner.os == 'Windows'
run: |
.venv\Scripts\Activate.ps1
${{ matrix.task.run }}
shell: pwsh

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ __pycache__/


venv/
.venv*/

*.pyc

Expand Down
6 changes: 6 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
Release History
===============

4.5.4
++++++
* Add Python 3.14 support.
* Drop Python 3.9 support (end-of-life since October 2025); ``python_requires`` is now ``>=3.10``.
* Refine the Python compatibility CI workflow: reduce the test matrix to ``ubuntu-latest`` with Python 3.10 (floor) and 3.14 (ceiling), and bump ``actions/checkout`` and ``actions/setup-python`` to current major versions.

4.5.3
++++++
* Improve spec module loading performance to reduce module loading time. (#536)
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ After clone you can add `upstream` for every repos in your local clone by using
### 2 Setup python

#### 2.1 Install python
Please install python with version >= 3.9 and <= 3.13 in your local machine.
Please install python with version >= 3.10 and <= 3.14 in your local machine.

- For windows: You can download and run full installer from [Python Download](https://www.python.org/downloads/).
- For linux: You can install python from Package Manager or build a stable relase from source code

Check the version of python, make use it's not less than 3.9.
Check the version of python, make use it's not less than 3.10.
- For windows:
You can run:
```PowerShell
Expand Down
2 changes: 1 addition & 1 deletion docs/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ github:
pypi: https://pypi.org/project/aaz-dev/

# TODO: get version number from github
version: v4.5.3
version: v4.5.4

# Build settings
theme: minima
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/usage/setup_and_run.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ weight: 100

### Install python

This tool is compatible with python versions >=3.9 and <=3.13. You can use an existing python or install a new one by the following ways:
This tool is compatible with python versions >=3.10 and <=3.14. You can use an existing python or install a new one by the following ways:

- For Windows users: You can download and run full installer from [Python Download](https://www.python.org/downloads/).
- For Linux users: You can install python from Package Manager or build a stable release from source code
Expand Down
6 changes: 3 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ def fix_url_dependencies(req: str) -> str:
"Environment :: Console",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13"
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14"
],
keywords="azure",
url="https://github.com/Azure/aaz-dev-tools",
Expand All @@ -70,7 +70,7 @@ def fix_url_dependencies(req: str) -> str:
),
include_package_data=True,
install_requires=read_requirements("requirements.txt"),
python_requires=">=3.9",
python_requires=">=3.10",
entry_points={
"console_scripts": ["aaz-dev=aaz_dev.app.main:main"]
},
Expand Down
2 changes: 1 addition & 1 deletion version.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

_MAJOR, _MINOR, _PATCH, _SUFFIX = ("4", "5", "3", "")
_MAJOR, _MINOR, _PATCH, _SUFFIX = ("4", "5", "4", "")

# _PATCH: On main and in a nightly release the patch should be one ahead of the last released build.
# _SUFFIX: This is mainly for nightly builds which have the suffix ".dev$DATE". See
Expand Down
Loading