FrontPage 

Fuego wiki

Login or create account

Release Process in 'raw' format

{{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.

= 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.

== 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

 * 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.

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

== 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


= 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



























TBWiki engine 1.8.3 by Tim Bird