FrontPage 

Fuego 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 fire-related 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:
   * 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/common.sh (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 change log ==
 * get a list of change for each repository:
    * git log --oneline v1.1.0..
    * or use gitk to see changes graphically
 * edit fuego/CHANGELOG with human-readable features

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

== update the CREDITS file
 * in fuego and fuego-core, do author-stats
 * edit fuego/CREDITS and add any new significant contributors

== test changes since last release ==
 * make sure reference materials (board, toolchains, etc) are up-to-date
   * check ~/work/fuego-reference and update with material from ~/f/fuego/fuego-ro
 * push 'next' branch changes
   * (in fuego-core:) git push
   * (in fuego:) git push
 * 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
   * fuego-clean-install.sh next <date>
   * fuego-finish-install.sh next <date>
 * examine error reports for tests
   * ftc gen-report

=== 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: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 
   * git checkout master
   * 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
 * 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"
 * git tag -a Name -m "Name the vM.m.r release: Name"

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

== update the release table ==
 * see [[Releases]]

== announce on the fuego mailing list ==
 * copy changelog
 * use subject: ANNOUNCE: Fuego Release vX.Y.Z
 * 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 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_H''''''OME directory if not already present
 * Change bzip2 test to support busybox version of bzip2


























TBWiki engine 1.8.2 by Tim Bird