Skip to content
Snippets Groups Projects
  1. Jun 01, 2021
    • John Snow's avatar
      python: add VERSION file · 3afc3290
      John Snow authored
      
      Python infrastructure as it exists today is not capable reliably of
      single-sourcing a package version from a parent directory. The authors
      of pip are working to correct this, but as of today this is not possible.
      
      The problem is that when using pip to build and install a python
      package, it copies files over to a temporary directory and performs its
      build there. This loses access to any information in the parent
      directory, including git itself.
      
      Further, Python versions have a standard (PEP 440) that may or may not
      follow QEMU's versioning. In general, it does; but naturally QEMU does
      not follow PEP 440. To avoid any automatically-generated conflict, a
      manual version file is preferred.
      
      I am proposing:
      
      - Python tooling follows the QEMU version, indirectly, but with a major
        version of 0 to indicate that the API is not expected to be
        stable. This would mean version 0.5.2.0, 0.5.1.1, 0.5.3.0, etc.
      
      - In the event that a Python package needs to be updated independently
        of the QEMU version, a pre-release alpha version should be preferred,
        but *only* after inclusion to the qemu development or stable branches.
      
        e.g. 0.5.2.0a1, 0.5.2.0a2, and so on should be preferred prior to
        5.2.0's release.
      
      - The Python core tooling makes absolutely no version compatibility
        checks or constraints. It *may* work with releases of QEMU from the
        past or future, but it is not required to.
      
        i.e., "qemu.machine" will, for now, remain in lock-step with QEMU.
      
      - We reserve the right to split the qemu package into independently
        versioned subpackages at a later date. This might allow for us to
        begin versioning QMP independently from QEMU at a later date, if
        we so choose.
      
      Implement this versioning scheme by adding a VERSION file and setting it
      to 0.6.0.0a1.
      
      Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
      Reviewed-by: default avatarCleber Rosa <crosa@redhat.com>
      Message-id: 20210527211715.394144-12-jsnow@redhat.com
      Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
      3afc3290
Loading