Release_Process 

Fuego wiki

Login or create account

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]

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

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

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

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

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

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

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

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

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

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

  • (in fuego:) git push
  • (in fuego:) git push --tags
  • (in fuego-core:) git push
  • (in fuego-core:) git push --tags

update the release table [edit section]

announce on the fuego mailing list [edit section]

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

See Releases for references to pages with notes and testing information about specific Fuego releases.

old information [edit section]

manual steps (legacy) [edit section]

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