enhance version management
When making an official release of scapy, one must: * Modify the hardcoded version in setup.py and scapy/config.py * Create a commit with this change * Create a git tag with the same version * Run ./setup.py sdist register upload * Modify the hardcoded version in setup.py and scapy/config.py again to append '-dev'. * Create another commit with the modified version. * Push the 3 commits and the tag. Not only this is tedious but it is also error prone. Add utility functions in scapy/__init__.py to determine current version. If git is available (thus running from a git clone), use "git describe" to get the current version. Write the version for future reference to a text file (scapy/VERSION). If git is not available (running from an installed scapy package) read the version from the scapy/VERSION file. This changes the release process as follows: * Create a git tag on the commit where you want to release * Run ./setup.py sdist register upload * Push the tag This allows to have a single place where the version is managed: git. Note: change the development versions to X.Y.Z.devN where N is the number of commits after the last tag. This complies to PEP 440 https://www.python.org/dev/peps/pep-0440/#developmental-releases Signed-off-by:Robin Jarry <robin.jarry@6wind.com>
Showing
- .gitignore 5 additions, 0 deletions.gitignore
- MANIFEST.in 1 addition, 0 deletionsMANIFEST.in
- README 1 addition, 0 deletionsREADME
- scapy/__init__.py 67 additions, 0 deletionsscapy/__init__.py
- scapy/config.py 2 additions, 1 deletionscapy/config.py
- setup.cfg 5 additions, 0 deletionssetup.cfg
- setup.py 4 additions, 1 deletionsetup.py
Loading
Please register or sign in to comment