Fuego wiki

Login or create account

Fuego release process in 'raw' format

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

= Overview =
 * create Release_X.Y_Notes page
   * use '' to find new tests
 * if a major release, select a fire-related name
 * update the CHANGELOG and CREDITS file
 * change the VERSION number
 * 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
 * the CHANGELOG for each release is in:
   * fuego/CHANGELOG
 * version of ftc = 1.2.0 on Oct 12, 2017
   * fuego-core/engine/scripts/ftc (VERSION variable)
 * version of abstraction scripts:
   * fuego-core/engine/scripts/ (FUEGO_VERSION, FUEGO_CORE_VERSION)
 * version of tests = ???
 * version of docker stuff = ???
 * version of Jenkins used = 2.32.1
   * Look at bottom right of any page in Jenkins interface)

= 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-core/engine/scripts/ftc VERSION variable
 * edit fuego-core/engine/scripts/ 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
   * ./ 

== 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''
   * $ [next|master] fuego-<curdate>
   * (in another terminal) $ 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
   * cd fuego-core
   * git merge origin/next
   * git push
 * test again
    * install, create container, start container, update config.xml, run tests
 * commit the new Dockerfile
   * in fuego: git add Dockerfile
   * git commit

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

== 1.0 release ==
=== git log fuego ===
e41dea4 README: fix columns in README
7fbef4b reboot has only a time plot at the moment
6e88fdd proxy: add support for environments behind a proxy
f9f8139 Dockerfile: whitespace cleanups
04fb120 Add script for creating a container that can talk through USB
2209f9b Add .gitignore files to ignore generated files
39c0601 nologger: change to nologread

=== git log fuego-core ===
df134e0 reboot: fix the reboot test
00b129b logger: remove dependency on logging mechanism
46e054e nosyslogd.dist: support targets without syslogd
f679cca dist: rename nologger.dist to nologread.dist
39c8ecc gitignore: add a gitignore file
0fd8885 FUEGO_'HOME: create automatically if not provided
876e6f9 bzip2: add support for busybox version of bzip2

=== changelog list ===
 * Add support for building docker container behind a proxy
 * Add support for creating a container that can see USB changes
 * Change reboot test to only report time
 * Fix some other issues with the reboot test
 * Change name of logread function and distribution overlay file
   * WARNING: this has potential to break the Jenkins configuration for
   targets that referenced nologread.dist
     * DISTRIB environment variable should be changed from
     distribs/nologger.dist to distribs/nologread.dist
 * Add .gitignore files to make repository management easier
 * Add code to create the FUEGO_H''''''OME directory if not already present
 * Change bzip2 test to support busybox version of bzip2

= 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 clone -b next
 * build docker image, create container, and start it
   * cd fuego
   * ./
     * ''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
   * ./
   * ./
   * (on host:) use 'docker ps' to verify that a new image is running
 * add bbb board
   * cd ~/work/fuego/release-<date>/fuego
   * ~/work/fuego/
   * 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
 * 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.2 by Tim Bird