diff options
author | Jim Mussared <jim.mussared@gmail.com> | 2023-10-04 11:20:47 +1100 |
---|---|---|
committer | Jim Mussared <jim.mussared@gmail.com> | 2023-10-06 12:10:14 +1100 |
commit | 69e34b6b6bdf45bc1111777c46839a8b5fcb30bd (patch) | |
tree | 757623344e1f4a4004234f93d7541c1d9472fdfa /py/modsys.c | |
parent | e00a144008f368df878c12606fdbf651af2a1dc0 (diff) |
all: Switch to new preview build versioning scheme.v1.22.0-preview
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: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'py/modsys.c')
-rw-r--r-- | py/modsys.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/py/modsys.c b/py/modsys.c index 38105ee21..e40542467 100644 --- a/py/modsys.c +++ b/py/modsys.c @@ -59,16 +59,24 @@ const mp_print_t mp_sys_stdout_print = {&mp_sys_stdout_obj, mp_stream_write_adap STATIC const MP_DEFINE_STR_OBJ(mp_sys_version_obj, "3.4.0; " MICROPY_BANNER_NAME_AND_VERSION); // version_info - Python language version that this implementation conforms to, as a tuple of ints -#define I(n) MP_OBJ_NEW_SMALL_INT(n) -// TODO: CPython is now at 5-element array, but save 2 els so far... -STATIC const mp_obj_tuple_t mp_sys_version_info_obj = {{&mp_type_tuple}, 3, {I(3), I(4), I(0)}}; +// TODO: CPython is now at 5-element array (major, minor, micro, releaselevel, serial), but save 2 els so far... +STATIC const mp_rom_obj_tuple_t mp_sys_version_info_obj = {{&mp_type_tuple}, 3, {MP_ROM_INT(3), MP_ROM_INT(4), MP_ROM_INT(0)}}; // sys.implementation object // this holds the MicroPython version -STATIC const mp_obj_tuple_t mp_sys_implementation_version_info_obj = { +STATIC const mp_rom_obj_tuple_t mp_sys_implementation_version_info_obj = { {&mp_type_tuple}, - 3, - { I(MICROPY_VERSION_MAJOR), I(MICROPY_VERSION_MINOR), I(MICROPY_VERSION_MICRO) } + 4, + { + MP_ROM_INT(MICROPY_VERSION_MAJOR), + MP_ROM_INT(MICROPY_VERSION_MINOR), + MP_ROM_INT(MICROPY_VERSION_MICRO), + #if MICROPY_VERSION_PRERELEASE + MP_ROM_QSTR(MP_QSTR_preview), + #else + MP_ROM_QSTR(MP_QSTR_), + #endif + } }; STATIC const MP_DEFINE_STR_OBJ(mp_sys_implementation_machine_obj, MICROPY_BANNER_MACHINE); #if MICROPY_PERSISTENT_CODE_LOAD |