5.3 KiB
Pure Deployment Checklist
These are the steps formally used to publish a new version of Pure.
For all of these steps, replace 1.0.0
with the correct version!
Prerequisite
This assumes the following repo's are cloned and npm
installed:
- https://github.com/pure-css/pure
- https://github.com/pure-css/pure-site
- https://github.com/pure-css/pure-release
You will also need bower
installed globally.
First, check everything
-
Update local Pure to latest from pure-css/pure#master
$ cd pure/ $ git pull upstream master
-
Build Pure via
grunt
$ grunt
-
Review all src/.../tests/manual/ files in target environments, including:
- IE 10
- IE 11
- Edge
- Chrome
- Firefox
- Safari
- iOS 10.x
- Android 4.x
- Android 5.x
-
Review pure-site in target environments with Pure served locally
- IE 10
- IE 11
- Edge
- Chrome
- Firefox
- Safari
- iOS 10.x
- Android 4.x
- Android 5.x
-
Review HISTORY.md
https://github.com/pure-css/pure/blob/master/HISTORY.md
Make sure all the major changes since the last release of Pure are reflected in HISTORY.md entries.
Prepare repos for release
Pure repo
-
Bump versions
It should have already been determined whether this is a minor or patch version release. Update Pure's version number to the new version in the following places. You'll likely be dropping a "-pre" suffix which was in place during the last development cycle. Do not use a "v" in the version (e.g., 1.0.0):
- bower.json
- package.json
- HISTORY.md (Update "NEXT")
- README.md (x2 CDN URLs)
-
Build Pure release files via
grunt release
Using Grunt, create the release/[version]/pure-[version].tar.gz file:
$ grunt release
Note: If the build fails it's for a good reason, most likely because there's code which is not passing CSSLint. We should always fix these issues and never force a release.
Pure-release repo
-
Update the pure-release repo
This repo is used by Bower. It must be updated and released (and hence tagged).
- Drop the Readme, History, and all build/*.css files into the pure-release repo
- Commit and push the changes to the pure-release repo
- git tag vX.X.X and push to origin
Publish pure to NPM
From the pure
repo run the following command to publish Pure to NPM. This will ensure unpkg.com
CDN gets the new files.
npm publish .
Verify via https://unpkg.com/purecss@VERSION
Draft releases on Github
-
Draft a new release on GitHub for all three repos, using "v" in the version number (e.g., v1.0.0). Drafts are invisible to the public. Once these are published, the repos will be visible, and they will be tagged. Don't publish them just yet.
- pure
- pure-release
- pure-site (Note: pure-site has its own version number)
Publishing the pure-site
NOTE: The pure-site is currently hosted on Now.sh.
Let's review where we're at:
- All the repos are checked and ready.
- The build files are on the CDN.
- We're ready to publish release notes and tag our repos by publishing the draft releases using GitHub.
- Then we'll build the pure-site and check it.
- Then we can deploy the pure-site to where the public can see it.
-
Update Pure Version in pure-css/pure-site
Bump the version number to the new Pure version in package.json.
-
Commit those changes
-
Publish pure-release
From the pure-release repo, publish the release you drafted earlier. Otherwise Bower won't be able to take advantage of the version number you just updated, because pure-release won't yet have the tag.
-
Git push changes to pure-css/pure-site#master
The local changes that were done to update the website for the release needs to be pushed back up to pure-css/pure-site#master on GitHub.com:
$ git push upstream master
-
Test pure-site on Now host
$ now .
-
Publish pure-site release If everything is looking good, you can publish the release of pure-site on GitHub.
Promote pure-site to Now alias
```
$ now alias set <new pure deployment> purecss.io
```
Formally publish Pure
Now all our files are out there, the pure-release release is published, the pure-site release is published, and everything is looking good.
-
Publish pure
From the pure repo, publish the release. This will tag the repo and signal to the public that the new Pure release is complete.
Spread the word
- Write blog post
- Tweet
Mark repo as pre-release
- We should mark the version number of the project (in package.json and bower.json) as 0.6.1-pre for clarity, so there's no mistaking the leading edge of the project from the last release. Commit those changes and push to master.