You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Overview
**This PR adopts [Changesets](https://github.com/changesets/changesets)
for versioning and releasing.**
Changesets are a solution to the problem of versioning and updating
release notes. Unlike other solutions which generate release notes from
[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/),
Changesets do not prescribe a commit message format and provide more
granular control over the contents of release notes. Instead, it keeps
information about versions and release notes in a temporary file-based
"database". These files are committed to version control, then "flushed"
upon release.
### Adding Changesets
To add a Changeset to your PR, you'll interface with
[`@changesets/cli`](https://npm.im/@changesets/cli), which will ask you
to choose whether the Changeset represents a patch, minor, or major
version bump. It will also ask you to provide a changelog entry. That
entry replaces our current convention for updating a `NEWS.md` file.
Once complete, you'll be reminded to commit the Changeset (which will be
a unique `.md` file in `.changeset/`), which you'll then push up to your
PR.
> [!NOTE]
>
> - Changesets don't need their own commit.
> - Not all PRs need changesets--only those which impact the end user.
> - [`changeset-bot`](https://github.com/changesets/bot) will
automatically detect Changesets (or the lack thereof) and comment on any
PR containing them with info about the version bump and the contents of
the Changelog entry.
### Releasing
The [Changesets Release Action](https://github.com/changesets/action)
runs after every push to `master`. It creates and maintains a PR which
uses the Changeset files it finds to bump packages and update
`CHANGELOG.md` files. Once merged, this PR will create appropriate tags
for all updated packages & GitHub Releases for each tag.
### Publishing
To publish to npm, a maintainer will pull down the changes, then publish
via `lerna publish from-package` (or `yarn npm:publish`)
Endo is a yarn workspaces repository. Running yarn in the root will install and hoist most dependencies up to the root `node_modules`.
11
+
Endo is a yarn workspaces repository. Running yarn in the root will install and
12
+
hoist most dependencies up to the root `node_modules`.
10
13
11
14
Note: running yarn `--ignore-scripts` will not complete the setup of SES.
12
15
Note: Endo uses `lerna` only for releasing. `lerna bootstrap` is unlikely to work.
13
16
14
-
## Action pinning
17
+
###Action pinning
15
18
16
19
GitHub Actions are pinned to commit SHAs.
17
20
Run `node scripts/update-action-pins.mjs` to refresh patch/minor pins.
@@ -23,21 +26,21 @@ If no version comment exists, it infers the latest tag for that action.
23
26
CI enforces pinning with `node scripts/update-action-pins.mjs --check-pins`.
24
27
If this check fails, run the updater and commit the resulting changes.
25
28
26
-
## Creating a new package
29
+
###Creating a new package
27
30
28
31
Run <code>[scripts/create-package.sh](./scripts/create-package.sh) $name</code>,
29
32
then update the resulting README.md, package.json (specifically setting
30
33
`description` and [if appropriate] removing `"private": false`), index.js, and
31
34
index.test.js files.
32
35
33
-
## Markdown Style Guide
36
+
###Markdown Style Guide
34
37
35
38
When writing Markdown documentation:
36
39
37
-
* Wrap lines at 80 to 100 columns for readability in terminal editors.
38
-
* Start each sentence on a new line.
40
+
- Wrap lines at 80 to 100 columns for readability in terminal editors.
41
+
- Start each sentence on a new line.
39
42
This ensures changes in one sentence do not cascade into the next in diffs.
40
-
* Starting sentences on new lines also obviates any question of whether to use
43
+
- Starting sentences on new lines also obviates any question of whether to use
41
44
one or two spaces after a period.
42
45
43
46
Example:
@@ -60,175 +63,83 @@ uses a different Markdown flavor for those contexts.
60
63
Changes to `ses` require a `yarn build` to be reflected in any dependency where `import 'ses';` appears. Use `yarn build` under `packages/ses` to refresh the build.
61
64
Everything else is wired up thanks to workspaces, so no need to run installs in other packages.
0 commit comments