Apprise Build System Modernization (PEP 621 / RPM CI)#1368
Merged
Conversation
ca5710d to
7ff5972
Compare
c7bcdca to
5f7048b
Compare
78da6fd to
a54d332
Compare
a54d332 to
c0d7cd1
Compare
c0d7cd1 to
cc933ef
Compare
7807c7a to
e675351
Compare
e675351 to
8a18e6b
Compare
8630adf to
0d8f00a
Compare
0d8f00a to
7d65b32
Compare
This was referenced Jul 28, 2025
caronc
added a commit
that referenced
this pull request
Jul 31, 2025
4 tasks
caronc
added a commit
that referenced
this pull request
Jul 31, 2025
caronc
added a commit
that referenced
this pull request
Aug 2, 2025
4 tasks
This was referenced Sep 30, 2025
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.
Related issue (if applicable): #1313 , #1322
Also addresses: Red Hat Bugzilla 2377453
🔧 Description
This pull request modernizes the Apprise build system by:
setup.pytopyproject.tomlper PEP 621toxenvironments.specfile to follow Fedora packaging guidelines and reflect the new Python packaging metadata.coveragercwith[tool.coverage]inpyproject.toml.coveragehandlingThese changes aim to provide a reproducible, CI-friendly, standards-compliant release process for both Python and RPM packages.
🚀 Key Changes
setup.pywithpyproject.toml(setuptools.build_metabackend)[project.keywords]BSD-2-Clause)tox -e releasefor full packaging lifecycle.coveragefiles now consistently written to root; parallel coverage disabled for simpler merging${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.tox_env }}tox.ininow supports cleanqa,minimal, andreleasetesting workflowsrufflinter applied to entire code-base.pyifiles dropped and type hinting integrated into main code base🧪 tox Command Summary
tox -e validatepyproject.tomlmetadatatox -e cleantox -e i18n.pofilestox -e compile.motranslation binariestox -e buildsdistandwheeltodist/tox -e twine-checktox -e releasetox -e qatox -e minimal🧪 GitHub Actions Improvements
minimaltests for cross-platform validation.coveragemerging logic using consistent naming and upload pathsinclude-hidden-files: trueand unique artifact names🗂️ Files Affected
pyproject.toml: new canonical build + lint + coverage + metadata sourcetox.ini: restructured with environments for build, QA, lint, clean, i18n.coveragerc: removed (superseded by[tool.coverage]inpyproject.toml).github/workflows/tests.yml: matrix test and coverage pipeline overhauled.github/workflows/pkgbuild.yml: CI-based RPM builderDockerfile.el9: non-root compatible for tox RPM buildingbuild-rpm.sh: now tox-aware and CI-friendlyKEYWORDS: removed (now handled inpyproject.toml).specfile: modernized and compliant with Fedora packaging🛠️ Developer Quickstart
If you're contributing to the code base; you can use the following tools to assist you:
🔬 Run Tests
You can run tests for different environments using
tox:🧼 Lint and Style Checks
Static checks are handled by Ruff:
# Check for style, safety, and formatting issues tox -e lint🧽 Auto-format Code
Apply automatic style fixes using:
This runs Ruff in fix mode and will auto-correct most common issues.
🧪 Try the CLI Directly
If you're modifying
apprise.cli, or want to test output locally:tox -e apprise -- --version tox -e apprise -- --debug -b "notify body here" mailto://credentials📖 Validate Build Metadata
Ensure your
pyproject.tomlis PEP 621 compliant before release:✅ Checklist
tox -e release.coveragefile handling no longer conflicts across jobsflake8replaced withruff(modern static checks)This PR brings Apprise in line with modern Python and Linux packaging practices while improving test visibility, platform coverage, and CI artifact hygiene.