# Releasing

All ongoing development is done on the `next` branch. When preparing for a release, we'll create a `release` branch which will eventually be merged into `master`. This way, what's on `master` is always what's published on `npm`.

Release management is currently a manual process, to be performed by core team members only. Here's the process:

1. Create a `release` branch, usually based on `next`.
2. Open a pull request for `release` -> `master`
3. Write the release notes in the PR description.
4. Decide on the version number, taking care to follow semver. Do a pre-release before doing the actual release.
5. Run `yarn bump` to increment the version number in all `package.json` files as well as `lerna.json`.
6. Commit the version change as "Release vX.X.X" (using the correct version number).
7. Tag the release commit with `git tag vX.X.X` (using the correct version number).
8. Push the release commit AND tag: `git push --follow-tags`
9. Publish each package (in `./packages`) to npm using the script below.
10. Create a new release on GitHub and copy the release notes there.

```
yarn build:packages
cd packages/react-async
npm publish pkg
cd ../react-async-devtools
npm publish pkg
```

Take care to publish the `pkg` directory!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.react-async.com/contributing/releasing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
