Here are the steps in the Fuego release process.
|
{{TableOfContents}}
Here are the steps in the Fuego release process.
|
This assumes that changes to be released are in the 'next' branches
of the repositories on bitbucket.org.
|
This assumes that changes to be released are in the 'next' branches
of the repositories on bitbucket.org.
|
|
= Overview =
* create Release_X.Y_Notes page
* use 'git-when-introduced.sh' to find new tests
* if a major release, select a fire-related name
* update the CHANGELOG and CREDITS file
* change the VERSION number (see below for where version is found)
* update reference materials for testing
* push changes to bitbucket
* test all changes since the last release
* run the fuego test suite
* pull patches from next to master
* tag the release
* push master to bitbucket
* announce on the fuego mailing list
|
|
= where is the version found =
* the main version number of Fuego is found in:
* fuego/VERSION
* fuego/docs/rst_src/conf.py ('version' and 'release')
* the CHANGELOG for each release is in:
* fuego/CHANGELOG
* version of ftc
* 1.5.8 on Dec 3, 2020
* 1.5.0 on Aug 14, 2019
* fuego-core/scripts/ftc (VERSION variable)
* version of abstraction scripts:
* fuego-core/scripts/common.sh (FUEGO_VERSION, FUEGO_CORE_VERSION)
* version of test definition (fuego_package_version) = 1
* fuego-core/tests/<test_name>/test.yaml
* version of docker stuff = ???
* version of Jenkins used
* Look at bottom right of any page in Jenkins interface)
* 2.249.3 for version 1.5.8 of Fuego
* 2.164.2 for version 1.5.0 of Fuego
* fuego/Dockerfile (JENKINS_VERSION, JENKINS_SHA)
|
|
= Detailed steps =
|
|
== select a volcano or fire-related name ==
If this is a major release, it should get a name for the release.
|
See Volcano Names or Fire Names for a tentative list and resources for finding a name.
|
See [[Volcano Names]] or [[Fire Names]] for a tentative list and resources for finding a name.
|
|
== update the CHANGELOG ==
* get a list of changes for each repository:
* git log --oneline v1.4.0..
* or use gitk to see changes graphically
* or use 'git shortlog v1.4.0..' and examine commits by author
* edit fuego/CHANGELOG with human-readable features
|
|
== update the CREDITS file
* in fuego and fuego-core, do author-stats
* or 'git shortlog -s -e -n v1.x.x..'
* edit fuego/CREDITS and add any new significant contributors
|
|
== change the VERSION number ==
* edit fuego/VERSION
* edit fuego/docs/rst_src/conf.py 'version' and 'release' variables
* edit fuego-core/engine/scripts/ftc VERSION variable
* edit fuego-core/engine/scripts/common.sh FUEGO_VERSION and FUEGO_CORE_VERSION variables
|
|
== update reference materials for testing ==
* make sure reference materials (board, toolchains, etc) are up-to-date
* check ~/work/fuego-reference and update with material from ~/f/fuego/fuego-ro
* cd ~/work/fuego-reference
* ./check-for-changes.sh
|
|
== push changes to bitbucket ==
* push branch changes
* if testing 'next', make sure each repository is on the correct branch:
* (in fuego:) git branch -v
* (in fuego-core:) git branch -v
* (in fuego-core:) git push
* (in fuego:) git push
|
|
== test changes since last release ==
* make a release directory:
* mkdir ~/work/fuego/release-<date>
* ln ~/work/fuego/release-<date> ~/fr
* cd ~/fr
|
- build docker image, install boards and toolchains, and run tests
* curdate=MMdd
* $ fuego-clean-install.sh [next|master] fuego-<curdate>
* (in another terminal) $ fuego-finish-install.sh fuego-<curdate>-container
|
* build docker image, install boards and toolchains, and run tests
* curdate=''MMdd''
* $ fuego-clean-install.sh [next|master] fuego-<curdate>
* (in another terminal) $ fuego-finish-install.sh fuego-<curdate>-container
|
- examine error reports for tests
* ftc list-runs --where "start_time>yesterday,status!=PASS"
* ftc gen-report --where "start_time>yesterday,status!=PASS"
|
* examine error reports for tests
* ftc list-runs --where "start_time>yesterday,status!=PASS"
* ftc gen-report --where "start_time>yesterday,status!=PASS"
|
|
== pull patches from next to master ==
* in ~/work/fuego/release-<date>/fuego:
* git stash
* git checkout master
* git merge next
* get fuego-core patches onto master
* cd ~/work/fuego/release-<date>
* git clone git@bitbucket.org:fuegotest/fuego-core
* cd fuego-core
* git merge origin/next
* git push
* test again
* install, create container, start container, run tests
* (see steps above, but use 'master-YYYY-MM-dd' for directory, and fuego-MMdd for image name)
|
|
== tag the release ==
|
NOTE: IMPORTANT tag the release NAME first, then the number, so that
'git describe' will show releases with the number, not the name.
|
NOTE: '''IMPORTANT''' tag the release NAME first, then the number, so that
'git describe' will show releases with the number, not the name.
|
Where M= Major, m = minor, r = revision,
* (in fuego:) git tag -a Name -m "Name the vM.m.r release: Name"
* (in fuego:) git tag -a vM.m.r -m "Fuego vM.m.r"
* (in fuego-core:) git tag -a Name -m "Name the vM.m.r release: Name"
* (in fuego-core:) git tag -a vM.m.r -m "Fuego vM.m.r"
|
Where M= Major, m = minor, r = revision,
* (in fuego:) git tag -a Name -m "Name the vM.m.r release: Name"
* (in fuego:) git tag -a vM.m.r -m "Fuego vM.m.r"
* (in fuego-core:) git tag -a Name -m "Name the vM.m.r release: Name"
* (in fuego-core:) git tag -a vM.m.r -m "Fuego vM.m.r"
|
|
== push fuego and fuego-core master to bitbucket ==
* (in fuego:) git push
* (in fuego:) git push --tags
* (in fuego-core:) git push
* (in fuego-core:) git push --tags
|
Releases
|
== update the release table ==
* see [[Releases]]
|
|
== announce on the fuego mailing list ==
* create a new e-mail message, to: fuego@lists.linuxfoundation.org
* copy CHANGELOG
* use subject: ANNOUNCE: Fuego Release vX.Y.Z (''Name'')
* add commentary
* send
|
Releases for references to pages with notes and testing information
about specific Fuego releases.
|
= Notes on specific releases =
See [[Releases]] for references to pages with notes and testing information
about specific Fuego releases.
|
|
= old information =
=== manual steps (legacy) ===
This is now scripts, but here are the previous manual steps.
* push 'next' branch changes
* (in fuego-core:) git push
* (in fuego:) git push
* make release directory:
* mkdir ~/work/fuego/release-<date>
* git clone -b next git@bitbucket.org:fuegotest/fuego.git
* git clone -b next git@bitbucket.org:fuegotest/fuego-core.git
* build docker image, create container, and start it
* cd fuego
* ./install.sh
* ''NOTE: there are about 60 steps''
* make sure no other Fuego containers are running
* docker ps
* if needed, in docker containers: exit
* cd fuego-host-scripts
* ./docker-create-container.sh
* ./docker-start-container.sh
* (on host:) use 'docker ps' to verify that a new image is running
* add bbb board
* cd ~/work/fuego/release-<date>/fuego
* ~/work/fuego/add-board-and-toolchain.sh
* OR....
* cd ~/work/fuego/release-<date>/fuego/fuego-ro
* cp ~/work/fuego/fuego/fuego-ro/conf/boards/bbb-poky-sdk.board conf/boards
* add toolchain
* (on host) sudo cp -a ~/work/fuego/fuego/fuego-ro/toolchains/* toolchains
* add jenkins node for bbb
* fuegosh
* (in container) fuego-create-node -b bbb-poky-sdk
* fuego-create-node -b docker
* add jobs
* fuego-create-jobs -b docker -t testplan_docker -d nosyslogd.dist
* fuego-create-jobs -b bbb-poky-sdk -t testplan_default -d nologread.dist
* fuego-create-jobs -b docker -t testplan_fuego -d nosyslogd.dist
* fuego-create-jobs -b bbb-poky-sdk -t testplan_fuego -d nologread.dis
* run fuego unit tests
* run ftc-unit-tests.sh
* run all tests on bbb
* run the following quick tests first:
* Functional.fuego_board_check
* Functional.hello_world
* Functional.bzip2
* Benchmark.Dhrystone
* Benchmark.reboot
|