** Read this entire document including Release Notes Prerequisites. You may need SauceLabs, FuelCDN, NPM, Twitter, Browserstack, Aloha SSO, and TravisCI credentials in order to release. **
Complete the prerequisites for the generating release notes.
You will need SAUCE_API_KEY.yml
. Try contacting the last person to do a release for this.
You will need FUEL_CDN.yml
file, as well as ssh keys. Try contacting the last person to do a release for this.
You will also need to add the following to your ~/.ssh/config
file:
Host fuelux.upload.akamai.com
HostkeyAlgorithms +ssh-dss
You will need to authorize your machine to do npm publishing using npm adduser
. Try contacting the last person to do a release for this.
- Test
-
npm install
-
npm test
-
grunt saucelabs
Best to find out if they pass or not now as opposed to in the middle of a release.- WILL NOT WORK ON VPN
- If some environments fail, you can comment out the passing environments temporarily in
sauce_browsers.yml
while you debug - If some environments fail, start your server with
grunt servefast
and use Browserstack to investigate.
-
-
1. Update GitHub issue tracker for release. Use clear, obvious language for pull request titles. Modify if necessary.
- 1a. Create a milestone in GitHub for the next version.
- 1b. Assign any remaining open tickets to the milestone you just created (or, if appropriate, assign them to the backlog).
- 1c. Mark the current release milestone as closed.
-
2. Log off of VPN (or saucelabs will probably fail)
-
3.
npm run release
This grunt task:- Creates a new release branch from remote master.
- Builds dist.
- Updates the
package.json
,bower.json
, and markdown files with the version. This will build and run all tests on thedist
folder (including SauceLabs cross browser testing). - Adds modified release files.
- Commits with version number.
- Adds version tag.
- Pushes to origin (
git push origin 3.x
). - Publishes tag to Github. The tag commit should exist in the major.x branch.
- Upload contents of
dist
folder to Fuel CDN server via SFTP (mv dist x.x.x && scp -i ~/.ssh/fuelcdn -r x.x.x/ [user@domain]:/[id]/fuelux/ && mv x.x.x dist
). - Pushes 3.x to master if nothing new has been merged in.
- Runs
npm publish
using the fuelux profile - (with prompt) Runs Ruby Gem described below for Release Notes.
-
5. Update getfuelux.com
- 5a. Checkout the
gh-pages
branch. - 5b. Run
bower update
. - 5c. Commit
- 5d. Push to
upstream
.
- 5a. Checkout the
-
8. Announce
- 8a. Tweet via @FuelUX account
- 8b. Post to Chatter in the Marketing Cloud Lightning UX group
Release notes are generated with internal script
Creating release notes can either be done as part of the release (by saying yes to the prompt) or manually afterwards.
- Say "yes" when prompted.
Each time a release is done, it must be integrated into the following properties: