Skip to content

Conversation

@th0ma7
Copy link
Contributor

@th0ma7 th0ma7 commented Jun 30, 2025

Description

Intent is to automate wheel updates through github-action so a PR can be made for every wheel needing updating as found into our requirement files. IMPORTANT: Said PR would contain a wheel update for all package where it was found.

How it works:

  1. A .github/actions/generate_dependabot.py script generates a .github/dependabot.yml including all detected requirement files such as:
version: 2
updates:
- package-ecosystem: pip
  directory: /spk/python310-wheels/src
  requirements-file: requirements-abi3.txt
  schedule:
    interval: weekly
  groups:
    all-python-deps:
      patterns:
      - '*'
- package-ecosystem: pip
  directory: /spk/python311-wheels/src
  requirements-file: requirements-abi3.txt
  schedule:
    interval: weekly
  groups:
    all-python-deps:
      patterns:
      - '*'
...
  1. A .github/workflows/generate-dependabot.yml calls the generate_dependabot.py script every week.
  2. github-action ends-up checking potential update candidates from the .github/dependabot.yml and creates associated PR

Extra tid-bits:

  • Manages exclusion list namely for pip, Cython and msgpack
  • native/python3* now uses a requirements.txt file and capture pip version at processing time

Relates to : #6619

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • Bug fix
  • New Package
  • Package update
  • Includes small framework changes
  • This change requires a documentation update (e.g. Wiki)

@th0ma7 th0ma7 requested review from hgy59 and mreid-tt June 30, 2025 15:47
@th0ma7 th0ma7 force-pushed the automate-wheel-pr-update branch from 06aec54 to 73618ed Compare June 30, 2025 19:03
@th0ma7
Copy link
Contributor Author

th0ma7 commented Jun 30, 2025

@hgy59 and @mreid-tt this is a little outside my normal area of work... I'm hoping with this to automate wheel updates. One area I'm unsure it will work ok is in the crossenv definition files as there is a build|cross|wheelhouse: prefix. Also it may require an exclude list such as pip (until fixed), Cython and msgpack...

Your 👀 on this would be appreciated, thnx.

EDIT: Exclude portion now in theory solved... as for the prefix, I'll need to further think about it.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jul 6, 2025

@mreid-tt and @hgy59 you review on this would be much appreciated, thnx.

@mreid-tt
Copy link
Contributor

@th0ma7 This is outside my area of expertise as well, but if I’m understanding correctly, you're reviewing the requirements for various Python versions and triggering a PR whenever updates are available? That seems a bit heavy; wouldn’t this potentially lead to users installing multiple new Python versions every month? Could you help me understand the benefit of this approach?

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jul 20, 2025

The idea is for the wheels requirements definitions for python to be auto updated. This in turn would test python to confirm it still builds ok. When we are ready to release a new version it becomes straight forward as the requirements have already been tested.

@mreid-tt
Copy link
Contributor

The idea is for the wheels requirements definitions for python to be auto updated. This in turn would test python to confirm it still builds ok. When we are ready to release a new version it becomes straight forward as the requirements have already been tested.

Ah! Okay. That would include the requirements we have in the python/* directory? i.e. are we updating the python-wheels as well? I'm not sure updating Python alone is comprehensive enough, but then again doing everything would make for long build times.

@th0ma7
Copy link
Contributor Author

th0ma7 commented Jul 20, 2025

It takes so much time and manipulations to fully update things that automating the wheel requirements process would simplify things greatly.

Personally I'd also automate python versions... But that could be for a later time.

th0ma7 added a commit to th0ma7/spksrc that referenced this pull request Nov 3, 2025
This is taken from PR SynoCommunity#6629 in order to automate wheel updates
using github-action.
th0ma7 added a commit that referenced this pull request Nov 4, 2025
* python314: Initial package for version 3.14.0

* python310: Update from version 3.10.18 to 3.10.19

* python311: Update from version 3.11.13 to 3.11.14

* python312: Update from version 3.12.11 to 3.12.12

* python313: Update from version 3.13.7 to 3.13.8

* python314-wheels: Preliminary package wheel check

* native/python310-314: Use requirement files instead in-Makefile

This is taken from PR #6629 in order to automate wheel updates
using github-action.

* mariadb-connector-c: Enable libmysqlclient compatibility mode

* pydantic-core: Update from version 2.27.2 to 2.41.4

In turn it was migrated to rust and no longer needs its own crossenv

* python314: Add post_install to fix prefix in pkgconfig files

* mariadb-connector-c: Use mysql compat mode and remove old mysql version

* python31*: Update default crossenv pakage versions

* python314: Mark as BROKEN pending PR #6766

* python314-wheels: Mark as BROKEN for now
@th0ma7 th0ma7 force-pushed the automate-wheel-pr-update branch from 09f6d66 to 27ad8b1 Compare November 19, 2025 00:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants