Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
54f09db
Rename the v-next folder to packages
alcuadrado Mar 30, 2026
11776f4
Fix all package.json homepage fields
alcuadrado Mar 30, 2026
37479ce
Fix package.json#repository.directory
alcuadrado Mar 30, 2026
bfc6c5f
Fix plugin links in README.md files
alcuadrado Mar 30, 2026
8575e87
Fix link in ignition-core's README.md file
alcuadrado Mar 30, 2026
e7604d9
Update duplication warning between hardhat-utils and hardhat-node-tes…
alcuadrado Mar 30, 2026
e8206e5
Update comments
alcuadrado Mar 30, 2026
b886951
Update cspell config
alcuadrado Mar 30, 2026
8b71777
Update pnpm workspace
alcuadrado Mar 30, 2026
361d0c9
Update pnpm-lock.yaml
alcuadrado Mar 30, 2026
e329441
Update script: scripts/version-alpha.ts
alcuadrado Mar 30, 2026
241f5db
Update script: scripts/check-npm-scripts.ts
alcuadrado Mar 30, 2026
472d8ca
Update script: scripts/bump-peers.ts
alcuadrado Mar 30, 2026
c091399
Update script: scripts/check-dependencies.ts
alcuadrado Mar 30, 2026
b9487ae
Update script: scripts/github-release/file-helpers.ts
alcuadrado Mar 30, 2026
093f66d
Update script: scripts/lib/packages.ts
alcuadrado Mar 30, 2026
e1bdcfa
Update script: scripts/verdaccio/publish.ts
alcuadrado Mar 30, 2026
6491c32
Update hardhat test
alcuadrado Mar 30, 2026
eca506e
Update CLAUDE.md
alcuadrado Mar 30, 2026
a4fafd5
Update .peer-bumps.json
alcuadrado Mar 30, 2026
4b5377f
Update .github/workflows/regression-tests.yml
alcuadrado Mar 30, 2026
fcae776
Update .github/workflows/release.yml
alcuadrado Mar 30, 2026
af0ef9f
Update .claude/commands/analyze-peer-bump.md
alcuadrado Mar 30, 2026
2a42385
Rename .github/workflows/v-next-ci.yml to .github/workflows/ci.yml
alcuadrado Mar 30, 2026
e005ee4
ci.yml: Update is-v-next check
alcuadrado Mar 30, 2026
7c7b7c4
ci.yml: change name
alcuadrado Mar 30, 2026
a183219
ci.yml: Update the actual workflow
alcuadrado Mar 30, 2026
7fb721b
Add changesets
alcuadrado Mar 30, 2026
60e0ddc
Correct casing of the NomicFoundation github url in the package.json …
alcuadrado Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .changeset/packages-hardhat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"hardhat": patch
---

[chore] Move to packages/ folder.
9 changes: 9 additions & 0 deletions .changeset/packages-ignition.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@nomicfoundation/ignition-core": patch
"@nomicfoundation/ignition-ui": patch
"@nomicfoundation/hardhat-ignition-ethers": patch
"@nomicfoundation/hardhat-ignition": patch
"@nomicfoundation/hardhat-ignition-viem": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-errors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-errors": patch
---

[chore] Move to packages/ folder.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-ethers-chai-matchers": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-ethers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-ethers": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-foundry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-foundry": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-keystore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-keystore": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-ledger.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-ledger": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-mocha.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-mocha": patch
---

[chore] Move to packages/ folder.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-network-helpers": patch
---

[chore] Move to packages/ folder.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-node-test-reporter": patch
---

[chore] Move to packages/ folder.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-node-test-runner": patch
---

[chore] Move to packages/ folder.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-toolbox-mocha-ethers": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-toolbox-viem.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-toolbox-viem": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-typechain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-typechain": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-utils.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-utils": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-vendored.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-vendored": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-verify.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-verify": patch
---

[chore] Move to packages/ folder.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-viem-assertions": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-viem.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-viem": patch
---

[chore] Move to packages/ folder.
5 changes: 5 additions & 0 deletions .changeset/packages-nomicfoundation-hardhat-zod-utils.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@nomicfoundation/hardhat-zod-utils": patch
---

[chore] Move to packages/ folder.
2 changes: 1 addition & 1 deletion .claude/commands/analyze-peer-bump.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Analyze the current branch for required peer dependency bumps. Use

## Background

When referring to packages we mean only internal packages in `./v-next/*`. Exported code and types live under `./v-next/<package>/src`, while non-exported internals live under `./v-next/<package>/src/internal`.
When referring to packages we mean only internal packages in `./packages/*`. Exported code and types live under `./packages/<package>/src`, while non-exported internals live under `./packages/<package>/src/internal`.

An API change is a change to or removal of publicly exported functions, types, or interfaces reachable through the `exports` field in the package's `package.json`. The concern is whether the change could break the build or runtime behavior of existing consuming code.

Expand Down
53 changes: 26 additions & 27 deletions .github/workflows/v-next-ci.yml → .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: vNext CI
name: CI

on:
merge_group:
Expand All @@ -14,23 +14,23 @@ concurrency:
cancel-in-progress: true

jobs:
is-v-next:
is-v3:
runs-on: ubuntu-latest
outputs:
is_v_next: ${{ steps.check.outputs.folder_exists }}
is_v3: ${{ steps.check.outputs.version_starts_with_3 }}
Comment on lines +17 to +20
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow’s gating is tied to packages/hardhat/package.json having a version that starts with "3". This will silently disable downstream CI jobs (dependency checks, script tests, package matrix) as soon as the major version changes (e.g., 4.0.0), even though the repo layout (packages/) may still be the same. Consider gating on repository layout (e.g., existence of ./packages/hardhat/package.json or ./packages directory) instead of a hard-coded major version, so CI continues to run reliably across future version bumps.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have any idea how complex is to do a major release of Hardhat?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementing a new Hardhat major - 2 weeks tops.

scripts_changed: ${{ steps.scripts-filter.outputs.scripts }}

steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Check if the folder v-next exists
- name: Check if we are in v3
id: check
run: |
if [ -d "./v-next" ]; then
echo "folder_exists=true" >> $GITHUB_OUTPUT
if jq -e '.version | startswith("3")' packages/hardhat/package.json > /dev/null; then
Copy link

Copilot AI Mar 31, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jq writes errors to stderr if packages/hardhat/package.json is missing or malformed; this can create noisy logs during workflow execution. Consider redirecting stderr as well (or guarding with a test -f check) so the “not v3” path stays clean and intentional.

Suggested change
if jq -e '.version | startswith("3")' packages/hardhat/package.json > /dev/null; then
if test -f packages/hardhat/package.json && jq -e '.version | startswith("3")' packages/hardhat/package.json > /dev/null 2>&1; then

Copilot uses AI. Check for mistakes.
echo "version_starts_with_3=true" >> "$GITHUB_OUTPUT"
else
echo "folder_exists=false" >> $GITHUB_OUTPUT
echo "version_starts_with_3=false" >> "$GITHUB_OUTPUT"
fi
Comment thread
alcuadrado marked this conversation as resolved.

- name: Check if scripts have changed
Expand All @@ -43,8 +43,8 @@ jobs:

check_dependencies:
name: Check dependency versions
needs: is-v-next
if: ${{ needs.is-v-next.outputs.is_v_next == 'true' }}
needs: is-v3
if: ${{ needs.is-v3.outputs.is_v3 == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
Expand All @@ -56,8 +56,8 @@ jobs:

check_npm_scripts:
name: Check that the npm scripts are consistent
needs: is-v-next
if: ${{ needs.is-v-next.outputs.is_v_next == 'true' }}
needs: is-v3
if: ${{ needs.is-v3.outputs.is_v3 == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
Expand All @@ -69,8 +69,8 @@ jobs:

check_infra_scripts_tests:
name: Check that infrastructure script tests pass
needs: is-v-next
if: ${{ needs.is-v-next.outputs.is_v_next == 'true' && needs.is-v-next.outputs.scripts_changed == 'true' }}
needs: is-v3
if: ${{ needs.is-v3.outputs.is_v3 == 'true' && needs.is-v3.outputs.scripts_changed == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
Expand All @@ -86,12 +86,12 @@ jobs:

list-packages:
name: List packages
needs: is-v-next
if: ${{ needs.is-v-next.outputs.is_v_next == 'true' }}
needs: is-v3
if: ${{ needs.is-v3.outputs.is_v3 == 'true' }}
runs-on: ubuntu-latest
outputs:
packages: ${{ steps.filter.outputs.changes }}
should_bundle: ${{ contains(steps.filter.outputs.hardhat_files, '.github/workflows/v-next-ci.yml') || contains(steps.filter.outputs.hardhat_files, 'pnpm-lock.yaml') }}
should_bundle: ${{ contains(steps.filter.outputs.hardhat_files, '.github/workflows/ci.yml') || contains(steps.filter.outputs.hardhat_files, 'pnpm-lock.yaml') }}
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
Expand All @@ -103,20 +103,19 @@ jobs:
PACKAGE_IGNORE: |
[
".",
"packages/",
"v-next/hardhat/templates/"
"packages/hardhat/templates/"
]
COMMON_FILTERS: |
[
".github/workflows/v-next-ci.yml",
".github/workflows/ci.yml",
".github/actions/setup-env/**",
"config-v-next/**",
"packages/config/**",
"pnpm-lock.yaml"
]
run: |
echo "filters<<EOF" >> $GITHUB_OUTPUT
node scripts/generate-filters.ts |
yq -Po yaml 'with_entries(.key |= sub("^v-next/", ""))' |
yq -Po yaml 'with_entries(.key |= sub("^packages/", ""))' |
tee -a $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- id: filter
Expand All @@ -143,7 +142,7 @@ jobs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: v-next/${{ matrix.package }}
working-directory: packages/${{ matrix.package }}
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/setup-env
Expand All @@ -160,7 +159,7 @@ jobs:
with:
name: ${{ matrix.package }}
path: |
v-next/${{ matrix.package }}/bundle
packages/${{ matrix.package }}/bundle

bundle-aggregate:
needs: bundle
Expand Down Expand Up @@ -227,7 +226,7 @@ jobs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: v-next/${{ matrix.package }}
working-directory: packages/${{ matrix.package }}

steps:
- uses: actions/checkout@v5
Expand Down Expand Up @@ -279,7 +278,7 @@ jobs:
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: v-next/${{ matrix.package }}
working-directory: packages/${{ matrix.package }}

steps:
- uses: actions/checkout@v5
Expand Down Expand Up @@ -330,7 +329,7 @@ jobs:
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: v-next/hardhat-node-test-reporter
working-directory: packages/hardhat-node-test-reporter
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/setup-env
Expand Down Expand Up @@ -362,7 +361,7 @@ jobs:
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: v-next/hardhat-ethers-chai-matchers
working-directory: packages/hardhat-ethers-chai-matchers
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/setup-env
Expand Down
28 changes: 14 additions & 14 deletions .github/workflows/regression-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
preset:
required: false
type: string
default: 'default'
default: "default"
hardhat-ref:
required: false
type: string
Expand All @@ -28,43 +28,43 @@ on:
color:
required: false
type: string
default: '0'
default: "0"
workflow_dispatch:
inputs:
preset:
description: 'The preset to use'
description: "The preset to use"
required: false
type: choice
options:
- solidity-test
- solidity-compile
- default
default: 'default'
default: "default"
hardhat-ref:
description: 'The branch, tag or SHA of hardhat to test against'
description: "The branch, tag or SHA of hardhat to test against"
required: false
type: string
edr-ref:
description: 'The branch, tag or SHA of edr to test against'
description: "The branch, tag or SHA of edr to test against"
required: false
type: string
repositories:
description: 'A list of repositories to test against'
description: "A list of repositories to test against"
required: false
type: string
runners:
description: 'A list of runners to test against'
description: "A list of runners to test against"
required: false
type: string
commands:
description: 'A list of commands to test against'
description: "A list of commands to test against"
required: false
type: string
color:
description: 'Force output colorization'
description: "Force output colorization"
required: false
type: string
default: '0'
default: "0"

defaults:
run:
Expand Down Expand Up @@ -220,7 +220,7 @@ jobs:
defaults:
run:
shell: bash
working-directory: v-next/hardhat
working-directory: packages/hardhat
steps:
- uses: actions/checkout@v5
with:
Expand All @@ -235,7 +235,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: edr
path: v-next/hardhat
path: packages/hardhat
- name: Install EDR
if: needs.inputs.outputs.edr-ref != ''
run: pnpm install ./*.tgz
Expand Down Expand Up @@ -517,7 +517,7 @@ jobs:
- name: Download the results
uses: actions/download-artifact@v4
with:
pattern: 'repository-*;command-*;runner-*'
pattern: "repository-*;command-*;runner-*"
- name: Summarize the results
id: summary
env:
Expand Down
Loading
Loading