Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
a9a53ed
Add wheel package
stlehmann Jun 27, 2025
c9a8cc5
Use pip install -e . instead of setup.py develop
stlehmann Jun 27, 2025
de6fbf4
Add workaround for Beckhoff RT-Linux identification as FreeBSD (#479)
dewabe Dec 16, 2025
1f5603f
Added NC Error codes (#480)
dewabe Dec 19, 2025
23e73e9
ready for relase (#481)
chrisbeardy Jan 13, 2026
8b864de
Added Python 3.13 and 3.14 to supported versions (incl. CI) + Replace…
RobertoRoos Jan 14, 2026
25ae257
Add Python 3.13 and 3.14 to tox environment list
chrisbeardy Jan 14, 2026
c113d70
Fixed Python 3.14 warnings: missing _layout_ and removed setDaemon (#…
RobertoRoos Jan 14, 2026
dd90b78
Replaced naive `datetime`s with timezoned ones (#490)
RobertoRoos Jan 14, 2026
9bedfaf
Packaging and CI updates (#491)
RobertoRoos Jan 15, 2026
abed0e5
Minor update to pyproject.toml for license fields (#497)
RobertoRoos Jan 19, 2026
a3b0109
Removed pytest warning from deleting from callback_store (#494)
RobertoRoos Jan 22, 2026
a32daf7
Updated Changelog with timezone stuff (#492)
RobertoRoos Jan 22, 2026
2874d7e
Use Cibuildwheel to create wheels for Linux, Mac OS and Windows (#498)
stlehmann Jan 29, 2026
a7326f3
Include uv.lock
stlehmann Jan 30, 2026
43fa496
Version 3.5.2 (#500)
stlehmann Jan 30, 2026
8de219b
Fix package installation command in workflow
stlehmann Jan 30, 2026
862d46f
Remove Python 3.8 from project classifiers
stlehmann Jan 30, 2026
f92069a
Update adslib to upstream (#502)
stlehmann Feb 20, 2026
7de3162
Change version to 3.6.0
stlehmann Mar 2, 2026
c518234
Add setuptools to dependencies
stlehmann Mar 3, 2026
cb65e18
Install build tools on python-publish
stlehmann Mar 3, 2026
4ba1616
Install meson on linux builds
stlehmann Mar 3, 2026
9d4e550
Try pip install
stlehmann Mar 3, 2026
099ab3b
install meson and ninja for all osses
stlehmann Mar 3, 2026
1c3bf28
use apt for linux
stlehmann Mar 3, 2026
143e20a
sudo
stlehmann Mar 3, 2026
caa24d2
yum
stlehmann Mar 3, 2026
08d1e53
use suffix so also on darwin
stlehmann Mar 3, 2026
cddd9f4
adslib: Makefile use --wipe
stlehmann Mar 6, 2026
6d38cb8
Update adslib
stlehmann Mar 6, 2026
e288d26
Update adslib
stlehmann Mar 11, 2026
94719a7
Remove setuptools dependency
stlehmann Mar 11, 2026
41e8c66
Test on TestPyPi
stlehmann Mar 11, 2026
623c477
Update testpypi url
stlehmann Mar 11, 2026
46e78b1
Remove url
stlehmann Mar 11, 2026
0db44c4
Add trailing slash to repository url testpypi
stlehmann Mar 11, 2026
22b1cca
use legacy upload url
stlehmann Mar 11, 2026
69c34e1
another try
stlehmann Mar 11, 2026
3b162c3
Another try
stlehmann Mar 12, 2026
a8a3fe6
Rename package for testpypi
stlehmann Mar 13, 2026
364dc31
fix test_wheels
stlehmann Mar 13, 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
16 changes: 6 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
pull_request:
branches: [ master ]

# Allows you to run this worflow manually from the Actions tab
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
Expand All @@ -17,9 +17,11 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']

steps:
- name: Install build tools
run: sudo apt update && sudo apt install -y meson
- name: Checkout repository and submodules
uses: actions/checkout@v4
with:
Expand All @@ -28,16 +30,10 @@ jobs:
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install package (with dependencies)
- name: Install package, dependencies and tools
run: |
python -m pip install --upgrade pip
python -m pip install flake8 pytest coverage coveralls pytest-cov setuptools
- name: Build adslib
run: |
python setup.py build
- name: Install package
run: |
python setup.py develop
python -m pip install .[tests,dev]
- name: Test with pytest
run: |
pytest -v --cov pyads
Expand Down
95 changes: 0 additions & 95 deletions .github/workflows/packaging.yml

This file was deleted.

123 changes: 102 additions & 21 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
#
# This workflow will build multiple Python wheels and upload the packages when a release is created
# For more information see: https://cibuildwheel.pypa.io/en/stable/ci-services/#github-actions
#

name: Upload Python Package

Expand All @@ -10,26 +12,105 @@ on:
workflow_dispatch: # allow running the workflow manually

jobs:
deploy:

test_editable:
name: Test editable install
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
python -m build
twine upload dist/*
- name: Install build tools
run: sudo apt update && sudo apt install -y meson
- uses: actions/checkout@v4
with:
submodules: "true"
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- run: |
pip install -e . -vv
python -c "import pyads; pyads.Connection(ams_net_id='127.0.0.1.1.1', ams_net_port=851)"

build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# macos-15-intel is an Intel runner, macos-14 is Apple silicon
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-15-intel, macos-latest]

steps:
- uses: actions/checkout@v5
with:
submodules: recursive

- name: Build wheels
uses: pypa/cibuildwheel@v3.3.1
env:
# We only compile `adslib`, with no link to Python at all, so we only need to pick a single Python version
# We will fairly the different OS flavours
CIBW_BUILD: "cp314-*"
# Skip the versions that give errors during building:
CIBW_SKIP: "*-musllinux_*"
# Full matrix: https://cibuildwheel.pypa.io/en/stable/options/#build-skip

- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}
path: ./wheelhouse/*.whl

test_wheels:
name: Test distributions
needs: build_wheels
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-15-intel, macos-latest]
# Can't really test with Windows because 'TcAdsDll.dll' will be missing

steps:
- uses: actions/download-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}
path: dist

- uses: actions/setup-python@v5
with:
python-version: "3.13"

# Now install the package from the local wheels and try to use it:
- run: |
pip install pyads-stlehmann --no-index --find-links ./dist
python -c "import pyads; pyads.Connection(ams_net_id='127.0.0.1.1.1', ams_net_port=851)"

build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: true

- name: Build sdist
run: pipx run build --sdist

- uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz

upload_all:
name: Upload to PyPi
needs: [build_wheels, build_sdist, test_wheels, test_editable]
environment: testpypi
permissions:
id-token: write
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v5
with:
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
7 changes: 3 additions & 4 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@
# Required
version: 2

# include adslib submodulee
# include adslib submodule
submodules:
include:
- adslib
recursive: true

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
os: ubuntu-24.04
tools:
python: "3.12"
python: "3.13"

# Build documentation in the "docs/" directory with Sphinx
sphinx:
Expand All @@ -27,4 +27,3 @@ python:
- requirements: requirements.txt
- method: pip
path: .

35 changes: 34 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,43 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## 3.5.1 (Unreleased)
## [Unreleased]

### Added

### Changed

### Removed

## 3.6

### Added

### Changed
* [#502](https://github.com/stlehmann/pyads/pull/502) Update adslib to Upstream version 113.0.31-1

### Removed

## 3.5.2

### Added
* [#487](https://github.com/stlehmann/pyads/issues/487) Switch to cibuildwheel for building wheels in CI (including Windows, Linux and MacOS wheels)
* [#482](https://github.com/stlehmann/pyads/issues/482) Support for Python 3.13 and 3.14 is included

### Changed
* [#488](https://github.com/stlehmann/pyads/issues/488) `datetime` objects passed on by notifications now have an explicit UTC timezone, instead of `None`
* [#495](https://github.com/stlehmann/pyads/issues/495) Organizing of metadata in `pyproject.toml`

### Removed
* [#488](https://github.com/stlehmann/pyads/issues/488) Removed custom `UTC` class, replaced by regular `datetime.timezone.utc`
* Minimum Python version changed to 3.9 (Python 3.8 is no longer supported)

## 3.5.1

### Added
* [#462](https://github.com/stlehmann/pyads/issues/462) Short description on Linux build dependencies in docs
* [#479](https://github.com/stlehmann/pyads/pull/479) Support for Beckhoff RT-Linux operating system
* [#480](https://github.com/stlehmann/pyads/pull/480) Added NC Error codes

### Changed
* [#400](https://github.com/stlehmann/pyads/issues/400) Full support for pyproject.toml
Expand Down
5 changes: 2 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
# This Dockerfile is for running the tests on a windows system where the
# TwinCat router can interfere with the tests. In the first instance tests should be run with tox.

ARG python_version=3.8
ARG python_version=3.13

# Build python environment and setup pyads
FROM python:${python_version}
COPY . /pyads
WORKDIR /pyads
RUN python setup.py build
RUN python setup.py develop
RUN python -m pip install .

# Test commands
RUN pip install pytest
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ From source:
```bash
git clone https://github.com/stlehmann/pyads.git --recursive
cd pyads
python setup.py install
pip install .
```

## Features
Expand Down
2 changes: 1 addition & 1 deletion adslib
Submodule adslib updated 156 files
2 changes: 1 addition & 1 deletion doc/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ From source:
```bash
git clone https://github.com/stlehmann/pyads.git --recursive
cd pyads
python setup.py install
pip install .
```

Note: pyads only supports python 3.8 and above.
Expand Down
Loading
Loading