Skip to content
Snippets Groups Projects
  • Robin Jarry's avatar
    enhance version management · 4f71027f
    Robin Jarry authored
    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: default avatarRobin Jarry <robin.jarry@6wind.com>
    4f71027f
setup.cfg 85 B