Skip to content

Conversation

@n3rada
Copy link
Contributor

@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,

@anadrianmanrique anadrianmanrique added the in review This issue or pull request is being analyzed label Nov 7, 2025
@n3rada
Copy link
Contributor Author

n3rada commented Nov 20, 2025

Once this integrated, I would help to properly separate dependencies in order to let developers add only requirements that fit their needs. For example, just the impacket[tds] dependencies.

@n3rada n3rada mentioned this pull request Nov 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in review This issue or pull request is being analyzed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants