fuelux
Version:
Base Fuel UX styles and controls
86 lines (66 loc) • 3.77 kB
Markdown
# Releasing Fuel UX
** Read this entire document including [Release Notes Prerequisites](#prerequisites-1). You may need SauceLabs, FuelCDN, NPM, Twitter, Browserstack, Aloha SSO, and TravisCI credentials in order to release. **
## Prerequisites
### github_changelog_generator
Complete the prerequisites for the [generating release notes](#generate-release-notes).
### Saucelabs
You will need `SAUCE_API_KEY.yml`. Try contacting the last person to do a release for this.
### FuelCDN
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
```
### NPM
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.
### QA
- [ ] 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.
## Release
- [ ] 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 the `dist` 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.
- [ ] 4. Create Release Notes for release and publish

- [ ] 5. Update getfuelux.com
- [ ] 5a. Checkout the `gh-pages` branch.
- [ ] 5b. Run `bower update`.
- [ ] 5c. Commit
- [ ] 5d. Push to `upstream`.
- [ ] 8. Announce
- [ ] 8a. Tweet via @FuelUX account
- [ ] 8b. Post to Chatter in the Marketing Cloud Lightning UX group
## Generate Release Notes
Release notes are generated with internal script
### Creating Release Notes
Creating [release notes](https://github.com/exacttarget/fuelux/tags) can either be done as part of the release (by saying yes to the prompt) or manually afterwards.
#### During Release
- [ ] Say "yes" when prompted.
## Integrate
Each time a release is done, it must be integrated into the following properties:
* [Fuel UX](https://github.com/ExactTarget/fuelux)
* [Fuel UX Fusion](https://github.exacttarget.com/uxarchitecture/fusion-fuel)
* [Components](https://github.exacttarget.com/uxarchitecture/fuelux-components)
* [Site](https://github.exacttarget.com/uxarchitecture/fuelux-site)