Merge pull request #1444 from processing/release-notes
Update developer documentation: releases and git commits
This commit is contained in:
commit
11511a89e3
3 changed files with 30 additions and 16 deletions
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -1,3 +1,5 @@
|
||||||
|
Fixes #issue-number
|
||||||
|
|
||||||
I have verified that this pull request:
|
I have verified that this pull request:
|
||||||
|
|
||||||
* [ ] has no linting errors (`npm run lint`)
|
* [ ] has no linting errors (`npm run lint`)
|
||||||
|
|
|
@ -6,8 +6,9 @@ A guide for adding code to this project.
|
||||||
- [Installation](#installation)
|
- [Installation](#installation)
|
||||||
- [Development Workflow](#development-workflow)
|
- [Development Workflow](#development-workflow)
|
||||||
- [Tests](#tests)
|
- [Tests](#tests)
|
||||||
- [Writing Git Commit Messages](#writing-git-commit-messages)
|
- [Committing Code](#committing-code)
|
||||||
- [Tips](#tips)
|
- [General Rules](#general-rules)
|
||||||
|
- [Commit Messages](#commit-messages)
|
||||||
- [Design](#design)
|
- [Design](#design)
|
||||||
- [Technologies Used](#technologies-used)
|
- [Technologies Used](#technologies-used)
|
||||||
|
|
||||||
|
@ -31,7 +32,8 @@ To run the test suite simply run `npm test` (after installing dependencies with
|
||||||
|
|
||||||
A sample unit test could be found here: [Nav.test.jsx](../client/components/__test__/Nav.test.jsx).
|
A sample unit test could be found here: [Nav.test.jsx](../client/components/__test__/Nav.test.jsx).
|
||||||
|
|
||||||
## Writing Git Commit Messages
|
## Committing Code
|
||||||
|
Inspired by [Git/GitHub commit standards & conventions](https://gist.github.com/digitaljhelms/3761873).
|
||||||
|
|
||||||
Good commit messages serve at least three important purposes:
|
Good commit messages serve at least three important purposes:
|
||||||
|
|
||||||
|
@ -39,33 +41,36 @@ Good commit messages serve at least three important purposes:
|
||||||
* They help us write good release notes.
|
* They help us write good release notes.
|
||||||
* They help future maintainers understand your change and the reasons behind it.
|
* They help future maintainers understand your change and the reasons behind it.
|
||||||
|
|
||||||
|
|
||||||
|
### General Rules
|
||||||
|
* Make [atomic commits](http://en.wikipedia.org/wiki/Atomic_commit) of changes, even across multiple files, in logical units. That is, as much as possible, each commit should be focused on one specific purpose.
|
||||||
|
* As much as possible, make sure a commit does not contain unnecessary whitespace changes. This can be checked as follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ git diff --check
|
||||||
|
```
|
||||||
|
|
||||||
|
### Commit Messages
|
||||||
|
|
||||||
Structure your commit message like this:
|
Structure your commit message like this:
|
||||||
|
|
||||||
```
|
```
|
||||||
Short (50 chars or less) summary of changes ( involving Fixes #Issue-number keyword )
|
[#issueid] Short (50 chars or less) summary of changes
|
||||||
|
|
||||||
More detailed explanatory text, if necessary. Wrap it to about 72
|
More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. In some contexts, the first line is treated as the subject of an email and the rest of the text as the body. The blank line separating the summary from the body is critical (unless you omit the body entirely); tools like rebase can get confused if you run the two together.
|
||||||
characters or so. In some contexts, the first line is treated as the
|
|
||||||
subject of an email and the rest of the text as the body. The blank
|
|
||||||
line separating the summary from the body is critical (unless you omit
|
|
||||||
the body entirely); tools like rebase can get confused if you run the
|
|
||||||
two together.
|
|
||||||
|
|
||||||
Further paragraphs come after blank lines.
|
Further paragraphs come after blank lines.
|
||||||
|
|
||||||
- Bullet points are okay, too
|
- Bullet points are okay, too
|
||||||
|
|
||||||
- Typically a hyphen or asterisk is used for the bullet, preceded by a
|
- Typically a hyphen or asterisk is used for the bullet, preceded by a single space, with blank lines in between, but conventions vary here
|
||||||
single space, with blank lines in between, but conventions vary here
|
|
||||||
```
|
```
|
||||||
|
|
||||||
* Write the summary line and description of what you have done in the imperative mode, that is as if you were commanding someone. Start the line with "Fix", "Add", "Change" instead of "Fixed", "Added", "Changed".
|
* Write the summary line and description of what you have done in the imperative mode, that is as if you were commanding someone. Start the line with "Fix", "Add", "Change" instead of "Fixed", "Added", "Changed".
|
||||||
|
* Link the GitHub issue you are working on in the summary line in brackets, e.g. [#123]
|
||||||
* Always leave the second line blank.
|
* Always leave the second line blank.
|
||||||
* Be as descriptive as possible in the description. It helps reasoning about the intention of commits and gives more context about why changes happened.
|
* Be as descriptive as possible in the description. It helps reasoning about the intention of commits and gives more context about why changes happened.
|
||||||
|
|
||||||
### Tips
|
|
||||||
|
|
||||||
* If it seems difficult to summarize what your commit does, it may be because it includes several logical changes or bug fixes, and are better split up into several commits using `git add -p`.
|
* If it seems difficult to summarize what your commit does, it may be because it includes several logical changes or bug fixes, and are better split up into several commits using `git add -p`.
|
||||||
|
* Note that you can connect multiple issues to a commit, if necessary: `[#123][#456] Add Button component`
|
||||||
|
|
||||||
## Design
|
## Design
|
||||||
- [Style Guide/Design System on Figma](https://github.com/processing/p5.js-web-editor/labels/good%20medium%20issues)
|
- [Style Guide/Design System on Figma](https://github.com/processing/p5.js-web-editor/labels/good%20medium%20issues)
|
||||||
|
|
|
@ -19,6 +19,13 @@ This project release guide is based on
|
||||||
7. `$ git push && git push --tags`
|
7. `$ git push && git push --tags`
|
||||||
8. `$ git checkout develop`
|
8. `$ git checkout develop`
|
||||||
9. `$ git merge --no-ff release-<newversion>`
|
9. `$ git merge --no-ff release-<newversion>`
|
||||||
|
10. Create a release on GitHub. You can do this in one of two ways:
|
||||||
|
1. (Preferred) Use the [`hub` command line tool](https://hub.github.com/). You can automate adding all commit messages since the last release with the following command:
|
||||||
|
```sh
|
||||||
|
$ hub release create -d -m "<newversion>" -m "$(git log `git describe --tags --abbrev=0 HEAD^`..HEAD --oneline)" <newversion>`
|
||||||
|
```
|
||||||
|
Note that this creates a draft release, which you can then edit on GitHub. This allows you to create release notes from the list of commit messages, but then edit these notes as you wish.
|
||||||
|
2. [Draft a new release on Github](https://github.com/processing/p5.js-web-editor/releases/new).
|
||||||
|
|
||||||
Travis CI will automatically deploy the release to production, as well as push a production tagged Docker image to DockerHub.
|
Travis CI will automatically deploy the release to production, as well as push a production tagged Docker image to DockerHub.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue