Skip to content

Upgrade the module to ESM and bump dependencies#762

Merged
danwkennedy merged 10 commits intomainfrom
danwkennedy/esm-module
Feb 25, 2026
Merged

Upgrade the module to ESM and bump dependencies#762
danwkennedy merged 10 commits intomainfrom
danwkennedy/esm-module

Conversation

@danwkennedy
Copy link
Contributor

@danwkennedy danwkennedy commented Feb 25, 2026

Description

Before picking up the update to support direct uploads, we need to convert the package to ESM.

This PR does the following:

  • Upgrades the package to ESM
  • Upgrade a bunch of dependencies (so we pick up ESM support for those as well)
  • Notably, we're on a higher version of eslint and jest
  • Updates our CI to use Node v24. That was missed in earlier PRs

Copilot AI review requested due to automatic review settings February 25, 2026 17:57
@danwkennedy danwkennedy requested a review from a team as a code owner February 25, 2026 17:57
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request upgrades the upload-artifact action from CommonJS to ECMAScript Modules (ESM) and bumps all major dependencies to their latest versions. The migration is comprehensive and includes updating TypeScript configuration, test infrastructure, linting setup, and all source files to follow ESM conventions.

Changes:

  • Migrated module system from CommonJS to ESM with updated TypeScript configuration
  • Updated all dependencies to latest major versions (Jest 30, ESLint 9, TypeScript 5.3, etc.)
  • Converted all test files to use ESM mocking patterns with jest.unstable_mockModule
  • Added .js extensions to all relative imports as required by ESM
  • Migrated from legacy ESLint configuration to flat config format
  • Converted Jest configuration from .js to .ts with ESM-specific settings

Reviewed changes

Copilot reviewed 15 out of 19 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tsconfig.json Updated compiler options for ESM: NodeNext module resolution, ES2022 target, removed unused options
tsconfig.eslint.json New ESLint-specific TypeScript config to include test files and root-level TS files
package.json Added "type": "module", updated test command for ESM, bumped all dependencies to latest versions
jest.config.ts New ESM-compatible Jest config with ts-jest ESM support and module name mapping
jest.config.js Removed old CommonJS Jest config
eslint.config.mjs New ESLint flat config format replacing .eslintrc.json
.eslintrc.json Removed legacy ESLint configuration
src/upload/*.ts Added .js extensions to all relative imports for ESM compatibility
src/merge/*.ts Added .js extensions to all relative imports for ESM compatibility
tests/*.test.ts Migrated to ESM test patterns using jest.unstable_mockModule and dynamic imports, changed 'it' to 'test', added __dirname replacement for ESM
.gitignore Added .DS_Store for Mac development environments
Comments suppressed due to low confidence (1)

eslint.config.mjs:30

  • The ESLint configuration references 'import/*' rules (lines 27-30) but 'eslint-plugin-import' has been removed from devDependencies. If these rules are not provided by 'eslint-plugin-github', this will cause ESLint to fail with "Definition for rule 'import/no-namespace' was not found" errors. Either add 'eslint-plugin-import' back to devDependencies and configure it in the ESLint config, or remove these rule configurations if they're no longer needed.
      'import/no-namespace': 'off',
      'import/no-commonjs': 'off',
      'import/named': 'off',
      'import/no-unresolved': 'off',

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Member

@philip-gai philip-gai left a comment

Choose a reason for hiding this comment

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

🚀 🚢

@danwkennedy danwkennedy merged commit 589182c into main Feb 25, 2026
10 checks passed
fdio-github pushed a commit to FDio/csit that referenced this pull request Mar 2, 2026
Bumps actions/upload-artifact from 6 to 7.
## Release notes

Sourced from actions/upload-artifact's releases.

v7.0.0
v7 What's new
Direct Uploads
Adds support for uploading single files directly (unzipped). Callers can set the new archive parameter to false to skip zipping the file during upload. Right now, we only support single files. The action will fail if the glob passed resolves to multiple files. The name parameter is also ignored with this setting. Instead, the name of the artifact will be the name of the uploaded file.
ESM
To support new versions of the @actions/* packages, we've upgraded the package to ESM.
What's Changed

Add proxy integration test by @​Link- in actions/upload-artifact#754
Upgrade the module to ESM and bump dependencies by @​danwkennedy in actions/upload-artifact#762
Support direct file uploads by @​danwkennedy in actions/upload-artifact#764

New Contributors

@​Link- made their first contribution in actions/upload-artifact#754

Full Changelog: actions/upload-artifact@v6...v7.0.0

## Commits

bbbca2d Support direct file uploads (#764)
589182c Upgrade the module to ESM and bump dependencies (#762)
47309c9 Merge pull request #754 from actions/Link-/add-proxy-integration-tests
02a8460 Add proxy integration test
See full diff in compare view

![Dependabot compatibility score](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Signed-off-by: dependabot[bot] <support@github.com>
Change-Id: Ia2e29e951761b7cd74c86c9469ca502af2b566f6
GitHub-PR: #4131
GitHub-Hash: ec81e01b2a1da5f9
Signed-off-by: fdio.github <releng+fdio-github@linuxfoundation.org>
mergify bot added a commit to ArcadeData/arcadedb that referenced this pull request Mar 3, 2026
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6.0.0 to 7.0.0.
Release notes

*Sourced from [actions/upload-artifact's releases](https://github.com/actions/upload-artifact/releases).*

> v7.0.0
> ------
>
> v7 What's new
> -------------
>
> ### Direct Uploads
>
> Adds support for uploading single files directly (unzipped). Callers can set the new `archive` parameter to `false` to skip zipping the file during upload. Right now, we only support single files. The action will fail if the glob passed resolves to multiple files. The `name` parameter is also ignored with this setting. Instead, the name of the artifact will be the name of the uploaded file.
>
> ### ESM
>
> To support new versions of the `@actions/*` packages, we've upgraded the package to ESM.
>
> What's Changed
> --------------
>
> * Add proxy integration test by [`@​Link`](https://github.com/Link)- in [actions/upload-artifact#754](https://redirect.github.com/actions/upload-artifact/pull/754)
> * Upgrade the module to ESM and bump dependencies by [`@​danwkennedy`](https://github.com/danwkennedy) in [actions/upload-artifact#762](https://redirect.github.com/actions/upload-artifact/pull/762)
> * Support direct file uploads by [`@​danwkennedy`](https://github.com/danwkennedy) in [actions/upload-artifact#764](https://redirect.github.com/actions/upload-artifact/pull/764)
>
> New Contributors
> ----------------
>
> * [`@​Link`](https://github.com/Link)- made their first contribution in [actions/upload-artifact#754](https://redirect.github.com/actions/upload-artifact/pull/754)
>
> **Full Changelog**: <actions/upload-artifact@v6...v7.0.0>


Commits

* [`bbbca2d`](actions/upload-artifact@bbbca2d) Support direct file uploads ([#764](https://redirect.github.com/actions/upload-artifact/issues/764))
* [`589182c`](actions/upload-artifact@589182c) Upgrade the module to ESM and bump dependencies ([#762](https://redirect.github.com/actions/upload-artifact/issues/762))
* [`47309c9`](actions/upload-artifact@47309c9) Merge pull request [#754](https://redirect.github.com/actions/upload-artifact/issues/754) from actions/Link-/add-proxy-integration-tests
* [`02a8460`](actions/upload-artifact@02a8460) Add proxy integration test
* See full diff in [compare view](actions/upload-artifact@b7c566a...bbbca2d)
  
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility\_score?dependency-name=actions/upload-artifact&package-manager=github\_actions&previous-version=6.0.0&new-version=7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants