Skip to content

Commit e35d117

Browse files
cknittcristianoc
authored andcommitted
Document release process
1 parent 6375216 commit e35d117

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

CONTRIBUTING.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,31 @@ Javascript Code
365365

366366
Note that there is one design goal to keep in mind, never introduce any meaningless symbol unless necessary, we do optimizations, however, it should also compile readable output code.
367367

368+
## Release Process
369+
370+
To build a new version and release it on NPM, follow these steps:
371+
372+
1. Increment the version number in `package.json`.
373+
1. Run `node scripts/setVersion.js` to take that version number over into other files.
374+
1. Snapshot (run ninja build to regenerate `whole_compiler.ml` etc.).
375+
1. Update `Changes.md`.
376+
1. Create a PR.
377+
1. Once that PR is merged, download the `npm-packages.zip` artifact for that commit from the Github Actions page.
378+
1. Extract `npm-packages.zip` to get the package tarballs to publish.
379+
1. Run the publish commands with `--dry-run` to see if everything (especially the version number) looks good:
380+
```sh
381+
# Use the tag "next" when publishing an alpha/beta version.
382+
npm publish rescript-<version>.tgz [--tag next] --dry-run
383+
npm publish rescript-std-<version>.tgz [--tag next] --dry-run
384+
```
385+
1. Publish for real:
386+
```sh
387+
# Use the tag "next" when publishing an alpha/beta version.
388+
npm publish rescript-<version>.tgz [--tag next]
389+
npm publish rescript-std-<version>.tgz [--tag next]
390+
```
391+
1. Tag the commit accordingly in git and push the tag.
392+
368393
## Contribution Licensing
369394

370395
Since ReScript is distributed under the terms of the [LGPL Version 3](LICENSE), contributions that you make are licensed under the same terms. In order for us to be able to accept your contributions, we will need explicit confirmation from you that you are able and willing to provide them under these terms, and the mechanism we use to do this is called a Developer's Certificate of Origin [DCO](DCO.md). This is very similar to the process used by the Linux(R) kernel, Samba, and many other major open source projects.

0 commit comments

Comments
 (0)