• Jim Mussared's avatar
    all: Switch to new preview build versioning scheme. · 69e34b6b
    Jim Mussared authored
    See https://github.com/micropython/micropython/issues/12127
    
     for details.
    
    Previously at the point when a release is made, we update mpconfig.h
    and set a git tag. i.e. the version increments at the release.
    
    Now the version increments immediately after the release. The workflow is:
    1. Final commit in the cycle updates mpconfig.h to set (X, Y, 0, 0) (i.e.
       clear the pre-release state).
    2. This commit is tagged "vX.Y.0".
    3. First commit for the new cycle updates mpconfig.h to set (X, Y+1, 0, 1)
       (i.e. increment the minor version, set the pre-release state).
    4. This commit is tagged "vX.Y+1.0-preview".
    
    The idea is that a nightly build is actually a "preview" of the _next_
    release. i.e. any documentation describing the current release may not
    actually match the nightly build. So we use "preview" as our semver
    pre-release identifier.
    
    Changes in this commit:
     - Add MICROPY_VERSION_PRERELEASE to mpconfig.h to allow indicating that
       this is not a release version.
     - Remove unused MICROPY_VERSION integer.
     - Append "-preview" to MICROPY_VERSION_STRING when the pre-release state
       is set.
     - Update py/makeversionhdr.py to no longer generate MICROPY_GIT_HASH.
     - Remove the one place MICROPY_GIT_HASH was used (it can use
       MICROPY_GIT_TAG instead).
     - Update py/makeversionhdr.py to also understand
       MICROPY_VERSION_PRERELEASE in mpconfig.h.
     - Update py/makeversionhdr.py to convert the git-describe output into
       semver-compatible "X.Y.Z-preview.N.gHASH".
     - Update autobuild.sh to generate filenames using the new scheme.
     - Update remove_old_firmware.py to match new scheme.
     - Update mpremote's pyproject.toml to handle the "-preview" suffix in the
       tag. setuptools_scm maps to this "rc0" to match PEP440.
     - Fix docs heading where it incorrectly said "vvX.Y.Z" for release docs.
    
    This work was funded through GitHub Sponsors.
    Signed-off-by: default avatarJim Mussared <jim.mussared@gmail.com>
    69e34b6b
makeversionhdr.py 4.99 KB