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

docs: Update release notes and authoring new components for release #264

Merged
merged 1 commit into from
Feb 8, 2017
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
32 changes: 23 additions & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,24 +120,38 @@ Finally, it helps to make sure that your branch/fork is up to date with what's c
> NOTE: This section is for collaborators only. Contributors without repo write access can ignore
> this section.

To release MDC-Web, you should perform the following steps.
#### Pre-requisites

Before releasing MDC-Web, ensure that you have the following:

- Write access to the material-components-web repo
- Correct credentials for npm
- The [Google Cloud SDK](https://cloud.google.com/sdk/) installed. Please run `gcloud init` command
to login to your Google Cloud account and choose `material-components-web` if this is your first
time working with the SDK.
- Access to the `material-components-web` Google Cloud project

You should ping a core team member regarding any/all of these items if you're unsure whether or not
they are all set up.

#### Performing the release.

To release MDC-Web, you perform the following steps.

1. Run `./scripts/pre-release.sh`. This will run `npm test`, build MDC-Web, copy the built assets over
to each module's `dist/` folder, and then print out a summary of all of the new versions that
should be used for changed components. The summary is printed out to both the console, as well
as a `.new-versions.log` file in the repo root. This information should be used within the
following steps.
2. Run `lerna publish`. When prompted for versions for each component, you should use the
1. From the root directory of the repo, run `$(npm bin)/lerna publish -m "chore: Publish"`. When prompted for versions for each component, you should use the
version info output above. In some cases, e.g. repo-wide refactors that cause all component
versions to be updated, you can ignore this info. However, _it is strongly recommended to adhere
to those specified versions in order to minimize human error_.
3. Run `./scripts/post-release.sh`. This will update our `CHANGELOG.md` with information for the
current release of the overarching `material-components-web` library, and commit those changes.
4. Run `MDC_ENV=development npm run build && gcloud app deploy`. This will deploy demo pages to Google Cloud [App Engine](https://material-components-web.appspot.com). Please request access to the App Engine project `material-components-web` to deploy.

> NOTE: `gcloud` is cli tool provided by [Cloud SDK](https://cloud.google.com/sdk/). Please run `gcloud init` command to login to your Google Cloud account and choose `material-components-web` project before running deploy command as mentioned above.

5. Push the changelog changes to master, and call it a day!
1. Run `./scripts/post-release.sh`. This will update our `CHANGELOG.md` with information for the
current release of the overarching `material-components-web` library, and commit those changes. It will also generate a `vX.Y.Z` semver tag for the entire repo, and commit the tag as such.
1. Run `git push && git push --tags` to push the changelog changes and semver tag to master.
1. Run `MDC_ENV=development npm run build && gcloud app deploy`. This will deploy demo pages to our [App Engine demo site](https://material-components-web.appspot.com).
1. Call it a day! :tada: :rocket: :package:

## "What's the core team up to?"

Expand Down
27 changes: 25 additions & 2 deletions docs/authoring-components.md
Original file line number Diff line number Diff line change
Expand Up @@ -499,15 +499,38 @@ This is needed so that lerna will be able to automatically publish new scoped pa
We also require a list of keywords for each package. This list should always include `material components` and `material design`, followed by the component name:

```
"keywords": {
"keywords": [
"material components",
"material design",
<COMPONENT_NAME>
}
]
```

For example, if you are building a checkbox component, `keywords` would include `material components`, `material design`, and `checkbox`

**Below is an example of what a full `package.json` should look like for a new component:**

```json
{
"name": "@material/example",
"version": "0.0.0",
"description": "The Material Components for the web example component",
"license": "Apache-2.0",
"repository": {
"type": "git",
"url": "https://github.com/material-components/material-components-web.git"
},
"keywords": [
"material components",
"material design",
"example"
],
"publishConfig": {
"access": "public"
}
}
```

### License Stanzas

We are required to put the following at the _top_ of _every source code file_, including tests,
Expand Down