Skip to content

Commit a1d1a76

Browse files
authored
New Releases v10.1.1 (#4235)
* Update release script to allow for broader release use cases (optional publishing, no revert) * Update script to also take dependencies from deprecated packages + the testdata package into account * Small fix * Update versions + deps * Rebuild package-lock.json * Again changing a bit the script semantics * Update DEVELOPER.md docs * Update release CHANGELOG prompt * CHANGELOG entries (AI) * Adjust script and docs * Minor * GitHub release script (AI)
1 parent 72b55f5 commit a1d1a76

34 files changed

Lines changed: 830 additions & 431 deletions

DEVELOPER.md

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -73,60 +73,58 @@ Most release rounds are done as bugfix releases, including releases of non-final
7373

7474
#### Process
7575

76-
The following prompts have been tested with Cursor IDE to work well for release preparation:
76+
##### Version/Dependency Update & Publish Script
7777

78-
Step 1: CHANGELOG entries, version bumps and dependency updates
79-
(please adjust dates, versions and file references accordingly)
78+
We have a release script that handles version bumping and publishing for all packages. It supports both regular releases and lightweight in-between releases (nightly, alpha).
8079

81-
```markdown
82-
We are planning to do a new release round for all active packages listed in @README.md on September 10 2025, bumping versions to 10.0.1.
83-
84-
Can you please add new headers in the relevant CHANGELOG.md files for the packages, e.g. @CHANGELOG.md?
80+
```sh
81+
tsx scripts/release-npm.ts [--bump-version=<version>] [--publish=<tag>]
82+
```
8583

86-
Please then also bump the version number in the relevant package.json files like @package.json of the active packages.
84+
**Options:**
8785

88-
And last but not least please update the internal dependency versions in `package.json` files accordingly, both if listed as dependencies as well as dev dependencies, and this step for both the active and the deprecated (also see @README.md) packages. Do not include the root package.json file here.
89-
```
86+
- `--bump-version=<version>` - Bump package versions to the specified version
87+
- `--publish=<tag>` - Publish packages with the specified npm tag
9088

91-
Step 2: Condensed CHANGELOG entries
92-
(again, dates and commit hashes to be adjusted accordingly, examples can remain as provided)
89+
At least one of `--bump-version` or `--publish` must be specified.
9390

94-
```markdown
95-
Thanks, that was great!
91+
When publishing, ensure you are authenticated with npm via `npm login` beforehand.
9692

97-
Last release round has been done on April 29 2025 along commit 9e461f54312bf20c710b43ab73f7d3ad753f8765.
93+
**What the script does:**
9894

99-
We now would want to deal with the rather minor changes being done since then and include them in the new section fo the CHANGELOG.md files for the active repositories that you just prepared for.
95+
- **Active packages**: Updates version numbers and `@ethereumjs/*` dependency references
96+
- **Deprecated packages + testdata**: Only updates (active) `@ethereumjs/*` dependency references (keeps their own version unchanged, not published)
10097

101-
As a first step can you go through all commits after the mentioned last release round and identify PRs (one commit is the same as one PR in our specific work setup) where active production code in the respective src directories has been touched. You can leave out PRs only updating documentation, code in the examples folder or tests. Also tooling infrastructure (linting,...) and CI updating PRs can be left out. New support for new and deprecation for older Node.js as well as TypeScript versions should be added. Version updates for external dependencies - so not from within the monorepo - should be added as well.
98+
**Examples:**
10299

103-
Can you now based on this collection add simple one-liner summaries in the CHANGELOG sections, one line for each PR respectively commit identified to be added. Here are a few examples for orientation regarding the desired format:
100+
```sh
101+
# Bump versions only (no publish) - for preparing a release
102+
tsx scripts/release-npm.ts --bump-version=10.1.0
104103

105-
- New default hardfork: `Shanghai` -> `Cancun`, see PR [#3566](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3566)
106-
- `Block.validateData()` now throws if unsigned txs are added, PR [#3240](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3240)
107-
- Remove `networkId` property from chain files (use `chainId` instead), PR [#3513](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3513)
108-
- Upgrade to TypeScript 5, PR [#3607](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3607)
109-
- Stricter prefixed hex typing, PRs [#3348](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3348)
110-
- Adds support for [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) EOA code transactions (outdated) (see tx library for full documentation), see PR [#3470](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3470)
104+
# Bump versions and publish - full release
105+
tsx scripts/release-npm.ts --bump-version=10.1.0 --publish=latest
111106

112-
Added lines should follow the format from the examples given above. PR numbers and links can be extracted from the commit titles, these are the hash-prefixed number links in the title.
107+
# Lightweight nightly release
108+
tsx scripts/release-npm.ts --bump-version=10.1.1-nightly.1 --publish=nightly
113109

114-
For the CHANGELOG files you have not added lines in this step please enter the following sentence instead: Maintenance release, no active changes.
110+
# Publish current versions without bumping
111+
tsx scripts/release-npm.ts --publish=latest
115112
```
116113

117-
#### In-between Releases
114+
##### CHANGELOG Preparation
118115

119-
We have a simple release script for lightweight in-between releases like nightly or non-official alpha releases. This is meant
120-
for e.g. external targeted testing and releases are not mentioned in CHANGELOG.md files.
116+
The following prompt has been tested with Cursor IDE to work well for CHANGELOG updates (please update placeholders in the first paragraph accordingly):
121117

122-
```sh
123-
tsx scripts/simple-release.ts <version> <npm_token> <tag>
124-
```
118+
```markdown
119+
I want to do a new release round for all active packages listed in @README.md. Version bump has already been done, see an exemplary [ REFERENCE package.json FILE ] file, release is target for today. Last release round has been done on [ ENTER DATE IN FORMAT: April 29 2025 ] along commit [ ENTER COMMIT HASH, e.g.: 9e461f54312bf20c710b43ab73f7d3ad753f8765 ]. An exemplary CHANGELOG.md file is [ REFERENCE e.g. block CHANGELOG.md file ].
125120

126-
Example:
121+
Can you please add new sections in the CHANGELOG files and add one-line summaries for the user-facing changes? For this please go for the commits since last release, one commit represents one PR due to our (squash) merge policy. You can leave out PRs only updating documentation, code in the examples folder or tests. Also tooling infrastructure (linting,...) and CI updating PRs can be left out. New support for new and deprecation for older Node.js as well as TypeScript versions should be added. Version updates for external dependencies - so not from within the monorepo - should be added as well.
127122

128-
```sh
129-
tsx scripts/simple-release.ts 10.1.1-nightly.1 abc123 nightly
123+
Here is an example for the format of a change/PR entry:
124+
125+
- New default hardfork: `Shanghai` -> `Cancun`, see PR [#3566](https://github.com/ethereumjs/ethereumjs-monorepo/pull/3566)
126+
127+
For the CHANGELOG files you have not added lines in this step please nevertheless add a CHANGELOG entry (we do releases for all active packages no matter the changeset) and enter the following sentence: Maintenance release, no active changes.
130128
```
131129

132130
#### Windows Users Note

0 commit comments

Comments
 (0)