Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish sequence update #1065

Merged
merged 9 commits into from
Feb 20, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Description

<!-- describe what the PR does -->

- Fixes ####
- Fixes list issues fixed by this PR
- Fixes will automatically close them once merged

## Review

### Submitter

- [ ] All tests pass (CI should take care of this, once in place).
- [ ] All lint checks pass (CI should take care of this, once in place).
- Tests
- [ ] Test(s) exist to ensure functionality works (if no new tests added, list which tests cover this functionality).
- [ ] No tests required for this PR.
- [ ] Is release:
- [ ] Version in `package.json` has been updated (see [RELEASE.md](RELEASE.md)).
- [ ] The `marked.min.js` has been updated; or,
- [ ] release does not change library.

### Reviewer

??
27 changes: 27 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Releasing Marked

**Master is always shippable:** We try to merge PRs in such a way that `master` is the only branch to really be concerned about *and* `master` can always be released. This allows smoother flow between new fetures, bug fixes, and so on. (Almost a continuous deployment setup, without automation.)

## Versioning

We follow [semantic versioning](https://semver.org) where the following sequence is true `[major].[minor].[patch]` (further, while in beta, you may see this `0.[major|minor].[minor|patch]`); therefore, consider the following implications of the release you are preparing:

1. **Major:** There is at least one change not deemed backward compatible. While in beta, the major will remain at zero; thereby, alerting consumers to the potentially volatile nature of the package.
2. **Minor:** There is at least one new feature added to the release. While in beta, the minor will tend to be more analagous to a `major` release. For example, we plan to release `0.4.0` once we have fixed most, if not all, known issues related to the CommonMark and GFM specifications because the architecture changes planned during `0.4.0` will most likely introduce breaking changes.
3. **Patch:** No breaking changes. Should fix a defect found in a feature. While in beta, the patch will tend to be more analagous to a `minor` release.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

analogous


## Release process

- [ ] Fork `markedjs/marked` -> clone the library locally -> Make sure you are on the `master` branch
- [ ] Create release branch from `master` (`release-##.##.##`)
- `$ npm test` (run tests)
- `$ npm version [major|minor|patch]` (updates `package.json` and creates `min` file)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

possibly add info about committing too?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried running the commit from package.json and it didn't seem to work out. That's actually one of the things that led me to the preversion thing. When we up the version, we have to commit the change to package.json version, which included the changed min file when I tested.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you be more specific about what you did?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tried the npm run build && git commit -m 'minify' -- marked.min.js

Could have been something I messed up on my end. Having said that, if we decide to put the commit directly into the chain, might want to reconsider whether it should be part of preversion. npm version has to be run, therefore, package.json will always be updated and need to be committed.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be clear, I'm a feel a little weird having the commit be automated - could just be me though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you had a npm test set up somewhere along the command chain that failed and aborted everything.
Well I like the single commit (package.json + marked.min.js) idea.

- `$ npm publish` (publish to NPM)
- [ ] Commit changes locally -> Submit PR to `origin/master` -> Merge PR
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make clear to commit package.json and marked.min.js?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See if the added lines cover it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep

- `package.json` should, at minimum, have an updated version number.
- If the release contains changes to the library (most likely) you should also see a new `marked.min.js` file.
- [ ] Navigate to the "Releases" tab on the project main page -> "Draft new release"
- Add version number matching the one in the `package.json` file after publishing the release
- Make sure `master` is the branch from which the release will be made
- Add notes regarding what users should expect from the release
- Click "Publish release"
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"scripts": {
"test": "node test",
"bench": "node test --bench",
"build": "uglifyjs lib/marked.js -cm --comments /Copyright/ -o marked.min.js"
"build": "uglifyjs lib/marked.js -cm --comments /Copyright/ -o marked.min.js",
"preversion": "npm run build"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's best committing the minified file too

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be covered by the npm version updating the package.json. Both files need to be committed at the same time.

}
}