UNPKG

2.7 kBMarkdownView Raw
1# Contributing to Restify
2
3Welcome to the restify community! This document is written both for maintainers and community members!
4
5## Issues and PRs
6
7### Commit Messages
8
9When merging a PR, we squash and merge to keep our commit history clean. Our commit messages use the conventional changelog format (http://conventionalcommits.org/) to automagically manage semver for us.
10
11### Labels and Templates
12
13We try to keep things organized around here. Maintainers have a finite amount of time and are often juggling multiple things in their lives. Keeping things consistent and well labeled helps reduce the amount of concentration and effort required for us to both find and carry out work on the project. Simple things like using our templates and adding the appropriate labels may only take you a few minutes, but it can save cummulative hours worth of work for maintainers trying to digest dozens of issues.
14
15## Website
16
17### Design
18
19The website templates are maintained at https://github.com/restify/restify.github.io and are populated from the docs directory in this repo.
20
21### Releasing a change
22
23To update the documentaiton on the website to reflect the latest version of 5.x simply:
24
25```
26git clone --recursive git@github.com:restify/restify.github.io
27cd restify.github.io
28git submodule update --remote && git add _docs && git commit -m 'bump' && git push origin master
29```
30
31The website will automatically deploy itself with the new changes.
32
33### Updating a documentation page
34
35To update docs, simply run:
36
37```
38make docs-build
39```
40
41### Adding a documentation page
42
43To add a new page, simply give it a [permalink](https://github.com/restify/node-restify/blob/94fe715173ffcebd8814bed7e17a22a24fac4ae8/docs/index.md) and then update [docs.yml](https://github.com/restify/restify.github.io/blob/master/_data/docs.yml) with the new permalink.
44
45## Running a benchmark
46
47```
48make benchmark
49```
50
51## Cutting a release
52
53Cutting a release is currently a manual process. We use a [Conventional Changelog](http://conventionalcommits.org/) to simplify the process of managing semver on this project. Generally, the following series of commands will cut a release from the `master` branch:
54
55```
56$ git fetch
57$ git pull origin master # ensure you have the latest changes
58$ npx unleash [-p for patch, -m for minor, -M for major] --no-publish -d # do a dry run to verify
59$ npx unleash [-p for patch, -m for minor, -M for major] --no-publish
60# Unleash doesnt support 2FA, hence we use --no-publish flag here.
61# This ensures we have the package.json updated, changelog generated, tag created
62# and all the changes into origin
63# Next, publish to npm manually and do not forget to provide the 2FA code.
64$ npm publish
65```