FrontPage 

Fuego 1.0 wiki

Login or create account

Fuego 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 =
 * if a major release, select a volcano name
 * update the change log
 * change the version number
 * 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:
   * https://bitbucket.org/tbird20d/fuego/src/VERSION
 * the CHANGELOG for each release is in:
   * https://bitbucket.org/tbird20d/fuego/src/CHANGELOG
 * version of ftc = 1.0.9 on March 20, 2017
 * version of abstraction scripts = ???
 * version of tests = ???
 * version of docker stuff = ???
 * version of Jenkins used = 1.5.6 (In Jenkins interface)
   * no longer applies?


= 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 change log ==
 * get a list of change for each repository:
    * git log --oneline origin/master..HEAD
 * edit fuego/CHANGELOG with human-readable features


== change the version number ==
 * edit fuego/VERSION
 * edit fuego-core/engine/scripts/ftc VERSION variable


== test changes since last release ==
 * push 'next' branch changes
   * (in fuego-core:) git push
 * verify that Docker container has the latest git version for fuego-core
   * (in fuego:) grep 'ENV.*NEXT' Dockerfile
   * (in fuego-core:) git log -n 1 --oneline
   * if different, set INST_FUEGO_CORE_NEXT_GIT_REVISION to value from fuego-core
 * (in fuego:) git push
 * make release directory:
   * mkdir ~/work/fuego/release-<date>
   * git clone -b next git@bitbucket.org:tbird20d/fuego.git
   * git clone -b next git@bitbucket.org:tbird20d/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







== pull patches from next to master ==
 * in ~/work/fuego/release-<date>/fuego:
   * git stash 
   * sudo chown -R 1000072457.domain_users userdata
   * git checkout -tb master origin/master
   * rm last_fuego_container.id
   * git merge next
 * get fuego-core patches onto master
   * cd ~/work/fuego/release-<date>
   * git clone git@bitbucket.org:tbird20d/fuego-core
   * cd fuego-core
   * git merge origin/next
   * git push
 * update Dockerfile for master to use git version of fuego-core master
   * in fuego-core: glog - and look at top commit id
     * it should be the id for the merge commit
   * vi Dockerfile, copy value for INST_FUEGO_CORE_NEXT_GIT_REVSION to
   value for INST_FUEGO_CORE_GIT_REVISION
   * uncomment 'RUN git clone fuego-core' and comment out 'RUN git clone -b next fuego-core'
 * 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 ==
Where M= Major, m = minor, r = revision,
 * git tag -a  vM.m.r -m "Fuego vM.m.r"

== push fuego-core master to bitbucket ==
 * git push
 * git push --tags

== announce on the fuego mailing list ==
 * copy changelog
 * use subject: Release vX.Y.Z
 * add commentary
 * send

= Notes on specific releases =
== 1.1 release ==
 * [[release-1.1-test-2017-03-31 Notes]]

== 1.0 release ==
=== git log fuego ===
{{{
e41dea4 README: fix columns in README
7fbef4b tests.info: 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_HOME directory if not already present
 * Change bzip2 test to support busybox version of bzip2















TBWiki engine 1.8.3 by Tim Bird