mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-19 23:22:16 +03:00
Release process fix & major/minor/rev macro addition (#8126)
* update release process to the new CI * generate ARDUINO_ESP8266_{MAJOR,MINOR,REVISION} in core_version.h * makecorever: new option `-r` for release
This commit is contained in:
parent
ff041942e0
commit
2897679060
@ -6,6 +6,18 @@
|
|||||||
#define ARDUINO_ESP8266_GIT_DESC unspecified
|
#define ARDUINO_ESP8266_GIT_DESC unspecified
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef ARDUINO_ESP8266_MAJOR
|
||||||
|
#define ARDUINO_ESP8266_MAJOR 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ARDUINO_ESP8266_MINOR
|
||||||
|
#define ARDUINO_ESP8266_MINOR 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ARDUINO_ESP8266_REVISION
|
||||||
|
#define ARDUINO_ESP8266_REVISION 0
|
||||||
|
#endif
|
||||||
|
|
||||||
// ARDUINO_ESP8266_RELEASE is defined for released versions as a string containing the version name, i.e. "2_3_0_RC1"
|
// ARDUINO_ESP8266_RELEASE is defined for released versions as a string containing the version name, i.e. "2_3_0_RC1"
|
||||||
// ARDUINO_ESP8266_RELEASE is used in the core internally. Please use ESP.getCoreVersion() function instead.
|
// ARDUINO_ESP8266_RELEASE is used in the core internally. Please use ESP.getCoreVersion() function instead.
|
||||||
|
|
||||||
|
@ -167,41 +167,39 @@ The following points assume work in a direct clone of the repository, and not in
|
|||||||
--------------COPY BELOW THIS LINE--------------
|
--------------COPY BELOW THIS LINE--------------
|
||||||
[Reference](https://github.com/esp8266/Arduino/tree/master/package#creating-a-release-for-maintainers) for details.
|
[Reference](https://github.com/esp8266/Arduino/tree/master/package#creating-a-release-for-maintainers) for details.
|
||||||
|
|
||||||
- [ ] 1. Open a new issue to track activities.
|
- [ ] 1. Make sure that no issues or PRs are assigned to the milestone to be released.
|
||||||
|
|
||||||
- [ ] 2. Make sure that no issues or PRs are assigned to the milestone to be released.
|
- [ ] 2. Open a new issue to track activities.
|
||||||
|
|
||||||
- [ ] 3. Assemble release notes.
|
- [ ] 3. Assemble release notes.
|
||||||
|
|
||||||
- [ ] 4. Make a PR with the following, [wait for Travis CI](https://travis-ci.org/github/esp8266/Arduino/builds/), and merge.
|
- [ ] 4. Make a PR with the following, [wait for CI](https://github.com/esp8266/Arduino/pull/8034/checks), and merge.
|
||||||
|
|
||||||
* [platform.txt](https://github.com/esp8266/Arduino/blob/master/platform.txt)
|
* [platform.txt](https://github.com/esp8266/Arduino/blob/master/platform.txt)
|
||||||
* [package.json](https://github.com/esp8266/Arduino/blob/master/package.json)
|
* [package.json](https://github.com/esp8266/Arduino/blob/master/package.json)
|
||||||
* [cores/esp8266/TZ.h](https://github.com/esp8266/Arduino/blob/master/cores/esp8266/TZ.h)
|
* [TZ.h](https://github.com/esp8266/Arduino/blob/master/cores/esp8266/TZ.h) (<= `cd tools; ./TZupdate.sh`)
|
||||||
|
|
||||||
- [ ] 5. Wait until the release notes have been checked by other maintainers
|
- [ ] 5. Wait until the release notes have been checked by other maintainers (can be changed afterwards anyway)
|
||||||
|
|
||||||
- [ ] 6. Navigate to [Travis CI options](https://travis-ci.org/esp8266/Arduino/settings), enable ´Build pushed branches´ (before tagging in next step)
|
- [ ] 6. Tag the latest commit on the master branch, then push it to esp8266/Arduino
|
||||||
|
add: `git tag -a -m "Release 3.0.0" 3.0.0; git push origin 3.0.0`
|
||||||
|
remove: `git tag -d X.Y.Z; git push --delete origin X.Y.Z`
|
||||||
|
|
||||||
- [ ] 7. Tag the latest commit on the master branch, then push it to esp8266/Arduino
|
- [ ] 7. Wait for CI build for the tag to pass (in `Actions` menu)
|
||||||
|
|
||||||
- [ ] 8. Wait for Travis CI build for the tag to pass, see https://travis-ci.org/esp8266/Arduino/builds,
|
- [ ] 8. Check that the new (draft) release has been created (no editing at this point!), see https://github.com/esp8266/Arduino/releases.
|
||||||
|
|
||||||
- [ ] 9. Check that the new (draft) release has been created (no editing at this point!), see https://github.com/esp8266/Arduino/releases.
|
- [ ] 9. Check that the boards manager package .zip file has been successfully uploaded as a release artifact.
|
||||||
|
|
||||||
- [ ] 10. Check that the boards manager package .zip file has been successfully uploaded as a release artifact.
|
- [ ] 10. Check that the package index downloaded from https://arduino.esp8266.com/stable/package_esp8266com_index.json contains an entry for the new version (it may not be the first one).
|
||||||
|
|
||||||
- [ ] 11. Check that the package index downloaded from https://arduino.esp8266.com/stable/package_esp8266com_index.json contains an entry for the new version (it may not be the first one).
|
- [ ] 11. Navigate to [release list in Github](https://github.com/esp8266/Arduino/releases), press "Edit" button to edit release description, paste release notes, and publish it.
|
||||||
|
|
||||||
- [ ] 12. Return to the [Travis CI options](https://travis-ci.org/esp8266/Arduino/settings) and disable `Build pushed branches`.
|
- [ ] 12. In the issue tracker, remove "staged-for-release" label for all issues which have it, and close them. Close the milestone associated with the released version (the milestone should be empty per point 1 above)
|
||||||
|
|
||||||
- [ ] 13. Navigate to [release list in Github](https://github.com/esp8266/Arduino/releases), press "Edit" button to edit release description, paste release notes, and publish it.
|
- [ ] 13. Check that https://arduino-esp8266.readthedocs.io/en/latest/ has a new doc build for the new tag, and that "stable" points to that build. If a new build did not trigger, log into readthedoc's home here https://readthedocs.org/ (account must have been added to project as maintainer) and trigger it manually.
|
||||||
|
|
||||||
- [ ] 14. In the issue tracker, remove "staged-for-release" label for all issues which have it, and close them. Close the milestone associated with the released version (the milestone should be empty per point 2 above)
|
- [ ] 14. Create a commit to the master branch, updating:
|
||||||
|
|
||||||
- [ ] 15. Check that https://arduino-esp8266.readthedocs.io/en/latest/ has a new doc build for the new tag, and that "stable" points to that build. If a new build did not trigger, log into readthedoc's home here https://readthedocs.org/ (account must have been added to project as maintainer) and trigger it manually.
|
|
||||||
|
|
||||||
- [ ] 16. Create a commit to the master branch, updating:
|
|
||||||
|
|
||||||
* The version in platform.txt and package.json files. This should correspond to the version of the *next* milestone, plus `-dev` suffix. E.g. `3.1.0-dev`.
|
* The version in platform.txt and package.json files. This should correspond to the version of the *next* milestone, plus `-dev` suffix. E.g. `3.1.0-dev`.
|
||||||
* In main README.md go to "Latest release" section, change version number in the readthedocs link to the version which was just released, and verify that all links work.
|
* In main README.md go to "Latest release" section, change version number in the readthedocs link to the version which was just released, and verify that all links work.
|
||||||
|
@ -109,12 +109,13 @@ $SED -E "s/name=([a-zA-Z0-9\ -]+).*/name=\1(${ver})/g"\
|
|||||||
> ${outdir}/platform.txt
|
> ${outdir}/platform.txt
|
||||||
|
|
||||||
# Put core version and short hash of git version into core_version.h
|
# Put core version and short hash of git version into core_version.h
|
||||||
ver_define=`echo "${plain_ver}" | tr "[:lower:]." "[:upper:]_"`
|
#ver_define=`echo "${plain_ver}" | tr "[:lower:]." "[:upper:]_"`
|
||||||
echo "ver_define: ${ver_define} (plain_ver: ${plain_ver})"
|
#echo "ver_define: ${ver_define} (plain_ver: ${plain_ver})"
|
||||||
echo "#define ARDUINO_ESP8266_GIT_VER 0x`git rev-parse --short=8 HEAD 2>/dev/null`" >${outdir}/cores/esp8266/core_version.h
|
#echo "#define ARDUINO_ESP8266_GIT_VER 0x`git rev-parse --short=8 HEAD 2>/dev/null`" >${outdir}/cores/esp8266/core_version.h
|
||||||
echo "#define ARDUINO_ESP8266_GIT_DESC `git describe --tags 2>/dev/null`" >>${outdir}/cores/esp8266/core_version.h
|
#echo "#define ARDUINO_ESP8266_GIT_DESC `git describe --tags 2>/dev/null`" >>${outdir}/cores/esp8266/core_version.h
|
||||||
echo "#define ARDUINO_ESP8266_RELEASE_${ver_define}" >>${outdir}/cores/esp8266/core_version.h
|
#echo "#define ARDUINO_ESP8266_RELEASE_${ver_define}" >>${outdir}/cores/esp8266/core_version.h
|
||||||
echo "#define ARDUINO_ESP8266_RELEASE \"${ver_define}\"" >>${outdir}/cores/esp8266/core_version.h
|
#echo "#define ARDUINO_ESP8266_RELEASE \"${ver_define}\"" >>${outdir}/cores/esp8266/core_version.h
|
||||||
|
python3 ${srcdir}/tools/makecorever.py -b ${outdir} -i cores/esp8266 -p ${srcdir} -v ${plain_ver} -r
|
||||||
|
|
||||||
# Zip the package
|
# Zip the package
|
||||||
pushd package/versions/${visiblever}
|
pushd package/versions/${visiblever}
|
||||||
|
@ -22,21 +22,52 @@ import os
|
|||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
def generate(path, platform_path, git_ver="ffffffff", git_desc="unspecified"):
|
def generate(path, platform_path, version="unspecified", release = False):
|
||||||
def git(*args):
|
def git(*args):
|
||||||
cmd = ["git", "-C", platform_path]
|
cmd = ["git", "-C", platform_path]
|
||||||
cmd.extend(args)
|
cmd.extend(args)
|
||||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True, stderr=subprocess.DEVNULL)
|
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True, stderr=subprocess.DEVNULL)
|
||||||
return proc.stdout.readlines()[0].strip()
|
return proc.stdout.readlines()[0].strip()
|
||||||
|
|
||||||
|
text = ""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
git_ver = git("rev-parse", "--short=8", "HEAD")
|
text = "#define ARDUINO_ESP8266_GIT_VER 0x{}\n".format(git("rev-parse", "--short=8", "HEAD"))
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# version is
|
||||||
|
# - using Arduino-CLI:
|
||||||
|
# - blah-5.6.7 (official release, coming from platform.txt)
|
||||||
|
# - blah-5.6.7-dev (intermediate / unofficial / testing release)
|
||||||
|
# - using git:
|
||||||
|
# - 5.6.7 (from release script, official release)
|
||||||
|
# - 5.6.7-42-g00d1e5 (from release script, test release)
|
||||||
|
git_desc = version
|
||||||
|
try:
|
||||||
|
# in any case, get a better version when git is around
|
||||||
git_desc = git("describe", "--tags")
|
git_desc = git("describe", "--tags")
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
text = "#define ARDUINO_ESP8266_GIT_VER 0x{}\n".format(git_ver)
|
|
||||||
text += "#define ARDUINO_ESP8266_GIT_DESC {}\n".format(git_desc)
|
text += "#define ARDUINO_ESP8266_GIT_DESC {}\n".format(git_desc)
|
||||||
|
text += "\n"
|
||||||
|
|
||||||
|
version_split = version.split(".")
|
||||||
|
# major: if present, skip "unix-" in "unix-3"
|
||||||
|
text += "#define ARDUINO_ESP8266_MAJOR {}\n".format(version_split[0].split("-")[-1])
|
||||||
|
text += "#define ARDUINO_ESP8266_MINOR {}\n".format(version_split[1])
|
||||||
|
# revision can be ".n" or ".n-dev" or ".n-42-g00d1e5"
|
||||||
|
revision = version_split[2].split("-")
|
||||||
|
text += "#define ARDUINO_ESP8266_REVISION {}\n".format(revision[0])
|
||||||
|
text += "\n"
|
||||||
|
|
||||||
|
# release or dev
|
||||||
|
if release:
|
||||||
|
text += "#define ARDUINO_ESP8266_RELEASE \"{}\"\n".format(git_desc)
|
||||||
|
text += "#define ARDUINO_ESP8266_RELEASE_{}\n".format(git_desc.replace("-","_").replace(".","_"))
|
||||||
|
else:
|
||||||
|
text += "#define ARDUINO_ESP8266_DEV 1 // developpment version\n"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with open(path, "r") as inp:
|
with open(path, "r") as inp:
|
||||||
@ -67,6 +98,7 @@ if __name__ == "__main__":
|
|||||||
"-v", "--version", action="store", required=True, help="version variable"
|
"-v", "--version", action="store", required=True, help="version variable"
|
||||||
)
|
)
|
||||||
parser.add_argument("-i", "--include_dir", default="core")
|
parser.add_argument("-i", "--include_dir", default="core")
|
||||||
|
parser.add_argument("-r", "--release", action="store_true", default=False)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@ -79,5 +111,6 @@ if __name__ == "__main__":
|
|||||||
generate(
|
generate(
|
||||||
os.path.join(include_dir, "core_version.h"),
|
os.path.join(include_dir, "core_version.h"),
|
||||||
args.platform_path,
|
args.platform_path,
|
||||||
git_desc=args.version,
|
version=args.version,
|
||||||
|
release=args.release
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user