Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Releases and release candidates are tags marking specific versions of all the repos, packaged as a box file.  Take care with the steps to create and tag these.  It's surprising, but you have to edit files to refer to the tags before you can create the tag.

Update Vagrantfile

Even if you will not be making a new box file for this version, you need to update the Vagrant files.  The release Vagrant files (vagrant/release/devstack/Vagrantfile and vagrant/release/fullstack/Vagrantfile) will need to be updated to pull down the correct box file when the appropriate value is set for the OPENEDX_RELEASE environment variable:

...

Choose box names

You will be making Vagrant box files.  The names of the box files are important. The file name will include the name of the release, and the date, but does not include "rc1" or any other version tag.  Boxes can be used for multiple versions of a release. Putting the version in the name would just confuse people.  Name the box like this: $RELEASE-$TYPE-$DATE.box, for example: 

zebrawood-devstack-2016-02-17

...

.box

In the unlikely event of having to make and release a second box in the same day, add a "-2" suffix: zebrawood-devstack-2016-02

...

Release candidates have a generic clause ".master" (for testing with the branch name), and a specific clause ".1rc1" for actual use with the tag.

Also update the default, if this is a final (not rc) release:

...

-21-2.box

Update Vagrantfile

Even if you will not be making a new box file for this version, you need to update the Vagrant files.  The release Vagrant files (vagrant/release/devstack/Vagrantfile and vagrant/release/fullstack/Vagrantfile) will need to be updated to pull down the correct box file when the appropriate value is set for the OPENEDX_RELEASE environment variable.  Pay close attention to the syntax in the file; the name you put there doesn't have the .box suffix:

Code Block
openedx_releases = {
    "open-release/zebrawood.master" => "zebrawood-devstack-2016-02-17",
    "open-release/zebrawood.1rc1" => "zebrawood-devstack-2016-02-17",
}

Release candidates have a generic clause ".master" (for testing with the branch name), and a specific clause ".1rc1" for actual use with the tag.

Also update the default, if this is a final (not rc) release:

Code Block
openedx_releases.default = "zebrawood-fullstack-2016-02-17"

...

Code Block
languagebash
git clone https://github.com/edx/configuration.git
cd configuration
export OPENEDX_RELEASE=you/test/zebrawood.1rc1.1
git checkout $OPENEDX_RELEASE
python -m virtualenv venv
. venv/bin/activate
make requirements
cd vagrant/base/fullstack     # or devstack
vagrant up

If you run into issues with the process of building Vagrant boxes from scratch, work with devops.

To reduce the size of the box file, ssh into the box and execute this command:

Code Block
sudo /edx/app/edx_ansible/pre-box		# takes about 4 minutes

Once the box is up and running, export it to a box file. (You need to run the commands on the host computer, not on the Vagrant virtual machine.)

Code Block
languagebash
vagrant package							# can take 8 to 12 minutes

This will create a package.box file. 

Upload Vagrant boxes

Rename the file with the name of the release, and the date, but do not use "rc1" or any other version tag.  Boxes can be used for multiple versions of a release. Putting the version in the name just confuses people.  Name the box like this:  $RELEASE-$TYPE-$DATE.box, for example: 

zebrawood-devstack-2016-02-17.box

...

m virtualenv venv
. venv/bin/activate
make requirements
cd vagrant/base/fullstack     # or devstack
vagrant up

If you run into issues with the process of building Vagrant boxes from scratch, work with devops.

To reduce the size of the box file, ssh into the box and execute this command:

Code Block
sudo /edx/app/edx_ansible/pre-box		# takes about 4 minutes

Once the box is up and running, export it to a box file. (You need to run the commands on the host computer, not on the Vagrant virtual machine.)

Code Block
languagebash
vagrant package							# can take 8 to 12 minutes

This will create a package.box file. 

Upload Vagrant boxes

Rename the file to have the right box name. Be sure to use the name you put into the Vagrantfile.

Either you have credentials to upload files to Amazon S3, or you don't.

...