Skip to content

Latest commit

 

History

History
151 lines (98 loc) · 4.99 KB

CONTRIBUTING.md

File metadata and controls

151 lines (98 loc) · 4.99 KB

How to contribute

We ❤️ pull requests. If you'd like to fix a bug, contribute a feature or just correct a typo, please feel free to do so, as long as you follow our Code of Conduct.

If you're thinking of adding a big new feature, consider opening an issue first to discuss it to ensure it aligns to the direction of the project (and potentially save yourself some time!).

This repo is a monorepo consisting of multiple packages and is managed using Lerna.

Getting Started

To start working on the codebase, first fork the repo, then clone it:

git clone [email protected]:your-username/slate.git

Note: replace "your-username" with your GitHub handle

Install all package dependencies and link local packages:

yarn bootstrap

Write some features. Run the tests with: <<<<<<< HEAD

yarn test

View changes to slate-theme package in a live store

Create a config.yml file with private app settings from your shop. See config-sample.yml as an example.

Go to the slate-theme package:

cd packages/slate-theme

Deploy Slate to your shop and start testing your feature.

slate deploy

Folder Structure

The following documents the folder structure for this project and what the purpose of each folder is:

 +-- docs/ ** API docs that live at https://shopify.github.io/slate
 +-- scripts/ ** Scripts used for development such as deployment and CI scripts
 +-- packages/ ** Contains the different components of the Slate project
 | +-- slate-cli/ ** A command line interface used to execute Slate commands
 | +-- slate-theme/ ** A boilerplate theme to get started with theme development
 | +-- slate-tools/ ** A collection of build tools to help with theme development
=======

npm test

dfabe80... Update CONTRIBUTING.md

## Documentation

If your change affects how people use the project (i.e. adding or removing
functionality, changing the return value of a function, etc),
please ensure the documentation is also updated to
<<<<<<< HEAD
reflect this. The docs live inside the `docs/` folder and are hosted
at `https://shopify.github.io/slate`.

To run the docs locally, first install the ruby dependencies:

bundle install

_If you are having troubles setting up jekyll, see https://jekyllrb.com/docs/installation/_

Generate the docs:

jekyll serve -s docs

If you get a permission error, try `bundle exec jekyll serve -s docs`

The documentation will then be visible at:
`http://127.0.0.1:4000/slate/`
=======
reflect this.
>>>>>>> dfabe80... Update CONTRIBUTING.md

## Changelog

The changelog is updated by the repo's maintainers since a [personal access token](https://github.com/settings/tokens) with repository access is needed to handle GitHub's API call limits.

If this is your first time generating changelog entries, add your personal access token with `public_repo` privileges to the `GITHUB_AUTH` environment variable by adding the following to your `.bashrc` file:

Lerna Changelog Personal Access Token for shopify/slate repo

export GITHUB_AUTH=your_personal_access_token

_Note: replace "your_personal_access_token" with your GitHub personal access token_

Run the changelog generator:

npm run changelog

If nothing appears, you may not have any PRs tagged with appropriate labels in this release or you may have already published those changes. If you just released `v0.12.1` and the previous version was `v0.12.0`, run the following command to get the changes since `v0.12.0`:

npm run changelog -- --tag-from=v0.12.0

Copy the generated markdown from your terminal into [CHANGELOG.md](https://github.com/Shopify/slate/blob/master/CHANGELOG.md) and add any additional comments you wish to include. If the title of the autogenerated changelog is `Unreleased`, make sure you change it the new version name.

Commit the changes directly to `master` branch, with a commit title of:

Changelog vX.X.X

_Note: replace "X.X.X" with new repo version number_

Finally, paste the updates you made to the changelog in the release tag notes, see example: [v0.10.0 tag notes](https://github.com/Shopify/slate/releases/tag/v0.10.0).

## Publishing

1. Merge any changes you want to include in your next release into `master`.

_Note: If you are merging multiple PRs into `master` with a single PR (e.g. you are merging a working branch called v0.11.0 with multiple fixes made from multiple PRs into `master`), then **do not squash and merge this PR** because you will loose valuable details in the auto generated changelog_

2. Update the [CHANGELOG.md](https://github.com/Shopify/slate/blob/master/CHANGELOG.md) as described above

3. To select a new version number, and publish packages to NPM, run:

npm run publish

_Note: Make sure you are logged into your Shopify NPM account before publishing_