Skip to content

Conversation

@n3rada
Copy link

@n3rada n3rada commented Oct 23, 2025

Hello 👋,

This update introduces a pyproject.toml file that is fully compliant with PEP 621. It replaces the existing setup.py and integrates dynamic versioning using the poetry-dynamic-versioning plugin. The version is now automatically derived from Git tags, ensuring that the package version reflects the state of the repository.

To maintain compatibility with your existing dynamic versioning logic, I have configured the tool to handle your current tag format (e.g., impacket_0_13_0). However, it is worth noting that these tags are not PEP 440-compliant due to the use of underscores (_) instead of dots (.). To make this versioning work, you need to name your versioning with dots.

@n3rada ➜ /workspaces/impacket (pyproject) $ poetry install

Invalid PEP 440 version: 'v0_13_0.post2+21d44f63'

You can do that with something like:

git tag | while read tag; do
    new_tag=$(echo "$tag" | sed 's/_/./g')
    commit=$(git rev-list -n 1 "$tag")
    git tag "$new_tag" "$commit"
    git tag -d "$tag"
done

And then:

git push origin --tags

Or do that for next tags only.

Once merged, this change will make it easier for everyone to develop and contribute to this incredible toolset by modernizing the packaging and versioning process.

Best regards,

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.

1 participant