Skip to content

Conversation

@rlaphoenix
Copy link
Owner

@rlaphoenix rlaphoenix commented Jan 19, 2026

  • Python 3.8 is no longer supported, this was simply required to modernize the package management and build systems. Anyone who still needs to use Python 3.8 for Windows 7 support should look into alternative methods like using unofficial installers, or just update Windows.
  • Poetry is no longer used as the package manager or build tool. I have migrated to uv with the hatchling build-system. This improves speed, reliability, and flexibility, giving a much more modernized and future-forward outlook.
  • The version number now has one singular source, the __version__ variable in __init__.py. This version number will be used automatically in pyproject.toml as well as inside the InnoSetup installer when used in the CD workflow. The version number can be updated with uvx hatch version "1.2.3".
  • Various tooling is now added for linting, formatting, type-checking, and various other checks. Including pre-commit so that future commits have sanity checks contributing to consistency in new code changes across the repository.
  • The CI workflow now checks linting and types with ruff and mypy. In the future I may also check formatting using ruff, but not for now. This will bring improved reliability when making further changes in the future.
  • Release builds no longer pre-build Homebrew Menu or AIO Switch Updater NSPs. Build these yourself if needed.
  • When opening the project in vscode, you will now be recommended to install various extensions that are good to have with the newly added or altered tooling, like extensions for ruff, mypy, and isort.
  • Appropriate badges have been added to the README, as well as a small redesign to make the first section more consice and readable.
  • ClickableLabel and FileDropWidget widgets have been removed and replaced with a single FileDropper event filter that does the job of both, through event filters instead of a widget that messes with the other widget's layouts. The NRO image can now be changed by dragging and dropping an image.

Python 3.8 support simply could not be maintained without leaving the packaging and general build management system in the past a bit. Anyone stuck on Windows 7 has other ways around there to run latest Python versions, like 3.9, unofficially.

The version number is also now dynamically fetched via hatch version, from the `__version__` variable and can be set with `uvx hatch version "1.2.3"`.

The switch from poetry to uv is to modernize and speed up the build and packaging systems. Poetry was a great step forward but there's no denying that uv alongside hatchling does an even more phenomenal job.
Replaces the hardcoded version string with a value from the NTON_VERSION environment variable in setup.iss to allow dynamic versioning during build.
@rlaphoenix rlaphoenix force-pushed the migrate-to-uv branch 2 times, most recently from 7004cfa to fd2119d Compare January 19, 2026 02:26
Using pre-commit, all of these tasks are double checked before any new commits are made.
Various versions were updated, unnecessary stuff removed where appropriate, and InnoSetup now reads the version through hatch version (which reads it from the `__init__.py` file's `__version__` variable).
@rlaphoenix rlaphoenix merged commit d297307 into master Jan 19, 2026
7 checks passed
@rlaphoenix rlaphoenix deleted the migrate-to-uv branch January 19, 2026 06:43
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