Release Process
This assumes that changes to be released are in the 'next' branches of the repositories on bitbucket.org.
Overview [edit section]
- 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 [edit section]
- 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 [edit section]
select a volcano or fire-related name [edit section]
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.
update the CHANGELOG [edit section]
- 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 [edit section]
- 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 section]
- 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 [edit section]
- 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 [edit section]
- 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
- if testing 'next', make sure each repository is on the correct branch:
test changes since last release [edit section]
- 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
- 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 [edit section]
- 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)
- install, create container, start container, run tests
tag the release [edit section]
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"
push fuego and fuego-core master to bitbucket [edit section]
- (in fuego:) git push
- (in fuego:) git push --tags
- (in fuego-core:) git push
- (in fuego-core:) git push --tags
update the release table [edit section]
- see Releases
announce on the fuego mailing list [edit section]
- 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
Notes on specific releases [edit section]
See Releases for references to pages with notes and testing information about specific Fuego releases.
old information [edit section]
manual steps (legacy) [edit section]
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
- docker ps
- 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
- run the following quick tests first: