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
* 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)
Copy file name to clipboardExpand all lines: DEVELOPER.md
+33-35Lines changed: 33 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -73,60 +73,58 @@ Most release rounds are done as bugfix releases, including releases of non-final
73
73
74
74
#### Process
75
75
76
-
The following prompts have been tested with Cursor IDE to work well for release preparation:
76
+
##### Version/Dependency Update & Publish Script
77
77
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).
80
79
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?
Please then also bump the version number in the relevant package.json files like @package.json of the active packages.
84
+
**Options:**
87
85
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
90
88
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.
93
90
94
-
```markdown
95
-
Thanks, that was great!
91
+
When publishing, ensure you are authenticated with npm via `npm login` beforehand.
96
92
97
-
Last release round has been done on April 29 2025 along commit 9e461f54312bf20c710b43ab73f7d3ad753f8765.
93
+
**What the script does:**
98
94
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)
100
97
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:**
102
99
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
104
103
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)
- 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)
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.
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
115
112
```
116
113
117
-
####In-between Releases
114
+
##### CHANGELOG Preparation
118
115
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):
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 ].
125
120
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.
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.
0 commit comments