Skip to content

Replace afew/version.py with importlib.metadata.version - #381

Merged
flokli merged 1 commit into
afewmail:masterfrom
wentasah:version-py
Jul 21, 2026
Merged

Replace afew/version.py with importlib.metadata.version#381
flokli merged 1 commit into
afewmail:masterfrom
wentasah:version-py

Conversation

@wentasah

Copy link
Copy Markdown
Contributor

Previously, afew/version.py was generated by setuptools. Without this file, one gets errors like this:

Traceback (most recent call last):
  File "/nix/store/mkdw047dmy7ipd1g1pqyrjhp29ldasna-afew-4.0.1/bin/.afew-wrapped", line 6, in <module>
    from afew.commands import main
  File "/nix/store/mkdw047dmy7ipd1g1pqyrjhp29ldasna-afew-4.0.1/lib/python3.14/site-packages/afew/commands.py", line 16, in <module>
    from afew.version import version
ModuleNotFoundError: No module named 'afew.version'

@wentasah wentasah mentioned this pull request Jul 20, 2026
13 tasks
@flokli

flokli commented Jul 20, 2026

Copy link
Copy Markdown
Member

Mmmh, https://setuptools-scm.readthedocs.io/en/latest/usage/ says in their pyproject.toml example:

# No [tool.setuptools_scm] section needed for basic usage!

So I'm a bit baffled this changed when switching from using a setup.py to pyproject.toml in e1fe434.

@wentasah

Copy link
Copy Markdown
Contributor Author

I'm no Python packaging expert, but I understand that generating of version.py is not considered basic usage. As documented here, basic usage is perhaps using importlib.metadata to access the version info.

@mweinelt

Copy link
Copy Markdown

The correct fix is to migrate the version action to use importlib.metadata.version("afew").

This fixes errors like this:

    Traceback (most recent call last):
      File "/nix/store/mkdw047dmy7ipd1g1pqyrjhp29ldasna-afew-4.0.1/bin/.afew-wrapped", line 6, in <module>
        from afew.commands import main
      File "/nix/store/mkdw047dmy7ipd1g1pqyrjhp29ldasna-afew-4.0.1/lib/python3.14/site-packages/afew/commands.py", line 16, in <module>
        from afew.version import version
    ModuleNotFoundError: No module named 'afew.version'
@wentasah wentasah changed the title Generate afew/version.py Replace afew/version.py with importlib.metadata.version Jul 20, 2026
@wentasah

Copy link
Copy Markdown
Contributor Author

Updated the PR based on @mweinelt's suggestion.

@flokli

flokli commented Jul 21, 2026

Copy link
Copy Markdown
Member

Thanks. I also now understand why things initially looked fine locally, I still had a generated version.py file in my checkout, which was .gitignored.

I'll remove it from .gitignore in a followup, then tag a new release.

@flokli
flokli merged commit ff4b2cd into afewmail:master Jul 21, 2026
4 checks passed
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.

3 participants