Fuego_release_process 

Fuego 1.0 wiki

Login

Fuego release process

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 [edit section]

  • 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 [edit section]

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 change log [edit section]

  • 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 section]

  • edit fuego/VERSION
  • edit fuego-core/engine/scripts/ftc VERSION variable

test changes since last release [edit section]

  • 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 [edit section]

  • 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 [edit section]

Where M= Major, m = minor, r = revision,
  • git tag -a vM.m.r -m "Fuego vM.m.r"

push fuego-core master to bitbucket [edit section]

  • git push
  • git push --tags

announce on the fuego mailing list [edit section]

  • copy changelog
  • use subject: Release vX.Y.Z
  • add commentary
  • send

Notes on specific releases [edit section]

1.1 release [edit section]

1.0 release [edit section]

git log fuego [edit section]

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 [edit section]

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 [edit section]

  • 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.9.2 by Tim Bird