Remove dependency on uuid package - #1824

Merged
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep
Oct 2, 2024
Merged

Remove dependency on uuid package#1824
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep

Conversation

@joshmgross

Copy link
Copy Markdown
Contributor

A common pattern in the toolkit is to create temporary file or directory within the existing temp directory using a random UUID.

Versions of the uuid package below v7 are deprecated, so we shouldn't depend on them. Additionally, Node has a built-in crypto.randomUUID() method that can be used to generate UUIDs without the need for an external package. This function was introduced in versions of Node 14 and 15, so we should be safe to use it for actions that depend on both Node 16 and 20 (which are our only supported versions at this time).

I also went ahead and updated @actions/core, even though it was using a non-deprecated version of the uuid package.

Since these use cases is purely for temporary files, I don't think we strictly need a cryptographically secure UUID but that's an added bonus of using the built-in Node function.

Packages shouldn't be depending on the exact format of this temp file/directory, but even if they were this should be a compatible as we're still generating a version 4 UUID

Generates a random RFC 4122 version 4 UUID. The UUID is generated using a cryptographic pseudorandom number generator.

There are a couple other packages within the toolkit that have an indirect dependency on uuid through @actions/core, those can be updated as well once we release this new version of @actions/core.

@joshmgross
joshmgross requested review from a team as code ownersSeptember 4, 2024 18:36
This was referenced Sep 4, 2024
@MikeMcC399

Copy link
Copy Markdown

@joshmgross

Are you going to be able to progress this PR soon? It looks like you are just waiting for your team to review.

@joshmgross
joshmgross merged commit 78af634 into mainOct 2, 2024
@joshmgross
joshmgross deleted the joshmgross/rm-uuid-dep branch October 2, 2024 17:49
zemnmez-renovate-bot added a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
github-merge-queueBot pushed a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
@gfteix

gfteix commented Oct 2, 2024

Copy link
Copy Markdown

As the crypto global package is being used without an import/require statement, if the client is using a node version < 19 (when crypto became a global package in node.js https://nodejs.org/api/globals.html#crypto_1) the action that uses the toolkit will fail with a crypto is not defined error. Is this expected?

@MarioUhrikTakeda

Copy link
Copy Markdown

This seems to have caused #1841
FYI @joshmgross

@MikeMcC399

MikeMcC399 commented Oct 3, 2024

Copy link
Copy Markdown

@joshmgross

Just to be sure, are you (or somebody else) going to release a new version of @actions/cache now?

Edit: removed misleading screenshot of @actions/cache@3.2.4

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399 yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

❯ npm why uuid
uuid@8.3.2
node_modules/@azure/core-http/node_modules/uuid
uuid@"^8.3.0" from @azure/core-http@3.0.2
node_modules/@azure/core-http
@azure/core-http@"^3.0.0" from @azure/storage-blob@12.15.0
node_modules/@azure/storage-blob
@azure/storage-blob@"^12.13.0" from the root project
uuid@8.3.2
node_modules/@azure/ms-rest-js/node_modules/uuid
uuid@"^8.3.2" from @azure/ms-rest-js@2.7.0
node_modules/@azure/ms-rest-js
@azure/ms-rest-js@"^2.6.0" from the root project

@MikeMcC399

Copy link
Copy Markdown

@joshmgross

yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

Thanks for the confirmation! Looking forward to new releases which no longer depend on a deprecated version of uuid.

@jsoref

Copy link
Copy Markdown
Contributor

When do you intend to release a version of @actions/tool-cache newer than "version": "2.0.1" to include this fix?

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@jsoref see #1872, which is waiting on approval

chhe pushed a commit to chhe/act_runner that referenced this pull request May 1, 2026
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/core)) | [`1.10.0` → `1.11.1`](https://renovatebot.com/diffs/npm/@actions%2fcore/1.10.0/1.11.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@actions%2fcore/1.11.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@actions%2fcore/1.10.0/1.11.1?slim=true) |
---
### Release Notes
<details>
<summary>actions/toolkit (@&#8203;actions/core)</summary>
### [`v1.11.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1111)
- Fix uses of `crypto.randomUUID` on Node 18 and earlier [#&#8203;1842](actions/toolkit#1842)
##### 1.11.0
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
##### 1.10.1
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
##### 1.10.0
- `saveState` and `setOutput` now use environment files if available [#&#8203;1178](actions/toolkit#1178)
- `getMultilineInput` now correctly trims whitespace by default [#&#8203;1185](actions/toolkit#1185)
##### 1.9.1
- Randomize delimiter when calling `core.exportVariable`
##### 1.9.0
- Added `toPosixPath`, `toWin32Path` and `toPlatformPath` utilities [#&#8203;1102](actions/toolkit#1102)
##### 1.8.2
- Update to v2.0.1 of `@actions/http-client` [#&#8203;1087](actions/toolkit#1087)
##### 1.8.1
- Update to v2.0.0 of `@actions/http-client`
##### 1.8.0
- Deprecate `markdownSummary` extension export in favor of `summary`
- [#&#8203;1072](actions/toolkit#1072)
- [#&#8203;1073](actions/toolkit#1073)
##### 1.7.0
- [Added `markdownSummary` extension](actions/toolkit#1014)
##### 1.6.0
- [Added OIDC Client function `getIDToken`](actions/toolkit#919)
- [Added `file` parameter to `AnnotationProperties`](actions/toolkit#896)
##### 1.5.0
- [Added support for notice annotations and more annotation fields](actions/toolkit#855)
##### 1.4.0
- [Added the `getMultilineInput` function](actions/toolkit#829)
##### 1.3.0
- [Added the trimWhitespace option to getInput](actions/toolkit#802)
- [Added the getBooleanInput function](actions/toolkit#725)
##### 1.2.7
- [Prepend newline for set-output](actions/toolkit#772)
##### 1.2.6
- [Update `exportVariable` and `addPath` to use environment files](actions/toolkit#571)
##### 1.2.5
- [Correctly bundle License File with package](actions/toolkit#548)
##### 1.2.4
- [Be more lenient in accepting non-string command inputs](actions/toolkit#405)
- [Add Echo commands](actions/toolkit#411)
##### 1.2.3
- [IsDebug logging](README.md#logging)
##### 1.2.2
- [Fix escaping for runner commands](actions/toolkit#302)
##### 1.2.1
- [Remove trailing comma from commands](actions/toolkit#263)
- [Add "types" to package.json](actions/toolkit#221)
##### 1.2.0
- saveState and getState functions for wrapper tasks (on finally entry points that run post job)
##### 1.1.3
- setSecret added to register a secret with the runner to be masked from the logs
- exportSecret which was not implemented and never worked was removed after clarification from product.
##### 1.1.1
- Add support for action input variables with multiple spaces [#&#8203;127](actions/toolkit#127)
- Switched ## commands to :: commands (should have no noticeable impact) \[[#&#8203;110](https://github.com/actions/toolkit/issues/110))([#&#8203;110](https://github.com/actions/toolkit/pull/110))
##### 1.1.0
- Added helpers for `group` and `endgroup` [#&#8203;98](actions/toolkit#98)
##### 1.0.0
- Initial release
### [`v1.11.0`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1110)
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
### [`v1.10.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1101)
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Reviewed-on: https://gitea.com/gitea/runner/pulls/880
Reviewed-by: Nicolas <bircni@icloud.com>
Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
Sign up for freeto 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.

7 participants

@joshmgross@MikeMcC399@gfteix@MarioUhrikTakeda@jsoref@robherley@luketomlinson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Remove dependency on uuid package - #1824

Merged
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep
Oct 2, 2024
Merged

Remove dependency on uuid package#1824
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep

Conversation

@joshmgross

Copy link
Copy Markdown
Contributor

A common pattern in the toolkit is to create temporary file or directory within the existing temp directory using a random UUID.

Versions of the uuid package below v7 are deprecated, so we shouldn't depend on them. Additionally, Node has a built-in crypto.randomUUID() method that can be used to generate UUIDs without the need for an external package. This function was introduced in versions of Node 14 and 15, so we should be safe to use it for actions that depend on both Node 16 and 20 (which are our only supported versions at this time).

I also went ahead and updated @actions/core, even though it was using a non-deprecated version of the uuid package.

Since these use cases is purely for temporary files, I don't think we strictly need a cryptographically secure UUID but that's an added bonus of using the built-in Node function.

Packages shouldn't be depending on the exact format of this temp file/directory, but even if they were this should be a compatible as we're still generating a version 4 UUID

Generates a random RFC 4122 version 4 UUID. The UUID is generated using a cryptographic pseudorandom number generator.

There are a couple other packages within the toolkit that have an indirect dependency on uuid through @actions/core, those can be updated as well once we release this new version of @actions/core.

@joshmgross
joshmgross requested review from a team as code ownersSeptember 4, 2024 18:36
This was referenced Sep 4, 2024
@MikeMcC399

Copy link
Copy Markdown

@joshmgross

Are you going to be able to progress this PR soon? It looks like you are just waiting for your team to review.

@joshmgross
joshmgross merged commit 78af634 into mainOct 2, 2024
@joshmgross
joshmgross deleted the joshmgross/rm-uuid-dep branch October 2, 2024 17:49
zemnmez-renovate-bot added a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
github-merge-queueBot pushed a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
@gfteix

gfteix commented Oct 2, 2024

Copy link
Copy Markdown

As the crypto global package is being used without an import/require statement, if the client is using a node version < 19 (when crypto became a global package in node.js https://nodejs.org/api/globals.html#crypto_1) the action that uses the toolkit will fail with a crypto is not defined error. Is this expected?

@MarioUhrikTakeda

Copy link
Copy Markdown

This seems to have caused #1841
FYI @joshmgross

@MikeMcC399

MikeMcC399 commented Oct 3, 2024

Copy link
Copy Markdown

@joshmgross

Just to be sure, are you (or somebody else) going to release a new version of @actions/cache now?

Edit: removed misleading screenshot of @actions/cache@3.2.4

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399 yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

❯ npm why uuid
uuid@8.3.2
node_modules/@azure/core-http/node_modules/uuid
uuid@"^8.3.0" from @azure/core-http@3.0.2
node_modules/@azure/core-http
@azure/core-http@"^3.0.0" from @azure/storage-blob@12.15.0
node_modules/@azure/storage-blob
@azure/storage-blob@"^12.13.0" from the root project
uuid@8.3.2
node_modules/@azure/ms-rest-js/node_modules/uuid
uuid@"^8.3.2" from @azure/ms-rest-js@2.7.0
node_modules/@azure/ms-rest-js
@azure/ms-rest-js@"^2.6.0" from the root project

@MikeMcC399

Copy link
Copy Markdown

@joshmgross

yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

Thanks for the confirmation! Looking forward to new releases which no longer depend on a deprecated version of uuid.

@jsoref

Copy link
Copy Markdown
Contributor

When do you intend to release a version of @actions/tool-cache newer than "version": "2.0.1" to include this fix?

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@jsoref see #1872, which is waiting on approval

chhe pushed a commit to chhe/act_runner that referenced this pull request May 1, 2026
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/core)) | [`1.10.0` → `1.11.1`](https://renovatebot.com/diffs/npm/@actions%2fcore/1.10.0/1.11.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@actions%2fcore/1.11.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@actions%2fcore/1.10.0/1.11.1?slim=true) |
---
### Release Notes
<details>
<summary>actions/toolkit (@&#8203;actions/core)</summary>
### [`v1.11.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1111)
- Fix uses of `crypto.randomUUID` on Node 18 and earlier [#&#8203;1842](actions/toolkit#1842)
##### 1.11.0
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
##### 1.10.1
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
##### 1.10.0
- `saveState` and `setOutput` now use environment files if available [#&#8203;1178](actions/toolkit#1178)
- `getMultilineInput` now correctly trims whitespace by default [#&#8203;1185](actions/toolkit#1185)
##### 1.9.1
- Randomize delimiter when calling `core.exportVariable`
##### 1.9.0
- Added `toPosixPath`, `toWin32Path` and `toPlatformPath` utilities [#&#8203;1102](actions/toolkit#1102)
##### 1.8.2
- Update to v2.0.1 of `@actions/http-client` [#&#8203;1087](actions/toolkit#1087)
##### 1.8.1
- Update to v2.0.0 of `@actions/http-client`
##### 1.8.0
- Deprecate `markdownSummary` extension export in favor of `summary`
- [#&#8203;1072](actions/toolkit#1072)
- [#&#8203;1073](actions/toolkit#1073)
##### 1.7.0
- [Added `markdownSummary` extension](actions/toolkit#1014)
##### 1.6.0
- [Added OIDC Client function `getIDToken`](actions/toolkit#919)
- [Added `file` parameter to `AnnotationProperties`](actions/toolkit#896)
##### 1.5.0
- [Added support for notice annotations and more annotation fields](actions/toolkit#855)
##### 1.4.0
- [Added the `getMultilineInput` function](actions/toolkit#829)
##### 1.3.0
- [Added the trimWhitespace option to getInput](actions/toolkit#802)
- [Added the getBooleanInput function](actions/toolkit#725)
##### 1.2.7
- [Prepend newline for set-output](actions/toolkit#772)
##### 1.2.6
- [Update `exportVariable` and `addPath` to use environment files](actions/toolkit#571)
##### 1.2.5
- [Correctly bundle License File with package](actions/toolkit#548)
##### 1.2.4
- [Be more lenient in accepting non-string command inputs](actions/toolkit#405)
- [Add Echo commands](actions/toolkit#411)
##### 1.2.3
- [IsDebug logging](README.md#logging)
##### 1.2.2
- [Fix escaping for runner commands](actions/toolkit#302)
##### 1.2.1
- [Remove trailing comma from commands](actions/toolkit#263)
- [Add "types" to package.json](actions/toolkit#221)
##### 1.2.0
- saveState and getState functions for wrapper tasks (on finally entry points that run post job)
##### 1.1.3
- setSecret added to register a secret with the runner to be masked from the logs
- exportSecret which was not implemented and never worked was removed after clarification from product.
##### 1.1.1
- Add support for action input variables with multiple spaces [#&#8203;127](actions/toolkit#127)
- Switched ## commands to :: commands (should have no noticeable impact) \[[#&#8203;110](https://github.com/actions/toolkit/issues/110))([#&#8203;110](https://github.com/actions/toolkit/pull/110))
##### 1.1.0
- Added helpers for `group` and `endgroup` [#&#8203;98](actions/toolkit#98)
##### 1.0.0
- Initial release
### [`v1.11.0`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1110)
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
### [`v1.10.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1101)
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Reviewed-on: https://gitea.com/gitea/runner/pulls/880
Reviewed-by: Nicolas <bircni@icloud.com>
Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
Sign up for freeto 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.

7 participants

@joshmgross@MikeMcC399@gfteix@MarioUhrikTakeda@jsoref@robherley@luketomlinson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove dependency on uuid package - #1824

Merged
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep
Oct 2, 2024
Merged

Remove dependency on uuid package#1824
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep

Conversation

@joshmgross

Copy link
Copy Markdown
Contributor

A common pattern in the toolkit is to create temporary file or directory within the existing temp directory using a random UUID.

Versions of the uuid package below v7 are deprecated, so we shouldn't depend on them. Additionally, Node has a built-in crypto.randomUUID() method that can be used to generate UUIDs without the need for an external package. This function was introduced in versions of Node 14 and 15, so we should be safe to use it for actions that depend on both Node 16 and 20 (which are our only supported versions at this time).

I also went ahead and updated @actions/core, even though it was using a non-deprecated version of the uuid package.

Since these use cases is purely for temporary files, I don't think we strictly need a cryptographically secure UUID but that's an added bonus of using the built-in Node function.

Packages shouldn't be depending on the exact format of this temp file/directory, but even if they were this should be a compatible as we're still generating a version 4 UUID

Generates a random RFC 4122 version 4 UUID. The UUID is generated using a cryptographic pseudorandom number generator.

There are a couple other packages within the toolkit that have an indirect dependency on uuid through @actions/core, those can be updated as well once we release this new version of @actions/core.

@joshmgross
joshmgross requested review from a team as code ownersSeptember 4, 2024 18:36
This was referenced Sep 4, 2024
@MikeMcC399

Copy link
Copy Markdown

@joshmgross

Are you going to be able to progress this PR soon? It looks like you are just waiting for your team to review.

@joshmgross
joshmgross merged commit 78af634 into mainOct 2, 2024
@joshmgross
joshmgross deleted the joshmgross/rm-uuid-dep branch October 2, 2024 17:49
zemnmez-renovate-bot added a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
github-merge-queueBot pushed a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
@gfteix

gfteix commented Oct 2, 2024

Copy link
Copy Markdown

As the crypto global package is being used without an import/require statement, if the client is using a node version < 19 (when crypto became a global package in node.js https://nodejs.org/api/globals.html#crypto_1) the action that uses the toolkit will fail with a crypto is not defined error. Is this expected?

@MarioUhrikTakeda

Copy link
Copy Markdown

This seems to have caused #1841
FYI @joshmgross

@MikeMcC399

MikeMcC399 commented Oct 3, 2024

Copy link
Copy Markdown

@joshmgross

Just to be sure, are you (or somebody else) going to release a new version of @actions/cache now?

Edit: removed misleading screenshot of @actions/cache@3.2.4

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399 yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

❯ npm why uuid
uuid@8.3.2
node_modules/@azure/core-http/node_modules/uuid
uuid@"^8.3.0" from @azure/core-http@3.0.2
node_modules/@azure/core-http
@azure/core-http@"^3.0.0" from @azure/storage-blob@12.15.0
node_modules/@azure/storage-blob
@azure/storage-blob@"^12.13.0" from the root project
uuid@8.3.2
node_modules/@azure/ms-rest-js/node_modules/uuid
uuid@"^8.3.2" from @azure/ms-rest-js@2.7.0
node_modules/@azure/ms-rest-js
@azure/ms-rest-js@"^2.6.0" from the root project

@MikeMcC399

Copy link
Copy Markdown

@joshmgross

yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

Thanks for the confirmation! Looking forward to new releases which no longer depend on a deprecated version of uuid.

@jsoref

Copy link
Copy Markdown
Contributor

When do you intend to release a version of @actions/tool-cache newer than "version": "2.0.1" to include this fix?

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@jsoref see #1872, which is waiting on approval

chhe pushed a commit to chhe/act_runner that referenced this pull request May 1, 2026
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/core)) | [`1.10.0` → `1.11.1`](https://renovatebot.com/diffs/npm/@actions%2fcore/1.10.0/1.11.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@actions%2fcore/1.11.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@actions%2fcore/1.10.0/1.11.1?slim=true) |
---
### Release Notes
<details>
<summary>actions/toolkit (@&#8203;actions/core)</summary>
### [`v1.11.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1111)
- Fix uses of `crypto.randomUUID` on Node 18 and earlier [#&#8203;1842](actions/toolkit#1842)
##### 1.11.0
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
##### 1.10.1
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
##### 1.10.0
- `saveState` and `setOutput` now use environment files if available [#&#8203;1178](actions/toolkit#1178)
- `getMultilineInput` now correctly trims whitespace by default [#&#8203;1185](actions/toolkit#1185)
##### 1.9.1
- Randomize delimiter when calling `core.exportVariable`
##### 1.9.0
- Added `toPosixPath`, `toWin32Path` and `toPlatformPath` utilities [#&#8203;1102](actions/toolkit#1102)
##### 1.8.2
- Update to v2.0.1 of `@actions/http-client` [#&#8203;1087](actions/toolkit#1087)
##### 1.8.1
- Update to v2.0.0 of `@actions/http-client`
##### 1.8.0
- Deprecate `markdownSummary` extension export in favor of `summary`
- [#&#8203;1072](actions/toolkit#1072)
- [#&#8203;1073](actions/toolkit#1073)
##### 1.7.0
- [Added `markdownSummary` extension](actions/toolkit#1014)
##### 1.6.0
- [Added OIDC Client function `getIDToken`](actions/toolkit#919)
- [Added `file` parameter to `AnnotationProperties`](actions/toolkit#896)
##### 1.5.0
- [Added support for notice annotations and more annotation fields](actions/toolkit#855)
##### 1.4.0
- [Added the `getMultilineInput` function](actions/toolkit#829)
##### 1.3.0
- [Added the trimWhitespace option to getInput](actions/toolkit#802)
- [Added the getBooleanInput function](actions/toolkit#725)
##### 1.2.7
- [Prepend newline for set-output](actions/toolkit#772)
##### 1.2.6
- [Update `exportVariable` and `addPath` to use environment files](actions/toolkit#571)
##### 1.2.5
- [Correctly bundle License File with package](actions/toolkit#548)
##### 1.2.4
- [Be more lenient in accepting non-string command inputs](actions/toolkit#405)
- [Add Echo commands](actions/toolkit#411)
##### 1.2.3
- [IsDebug logging](README.md#logging)
##### 1.2.2
- [Fix escaping for runner commands](actions/toolkit#302)
##### 1.2.1
- [Remove trailing comma from commands](actions/toolkit#263)
- [Add "types" to package.json](actions/toolkit#221)
##### 1.2.0
- saveState and getState functions for wrapper tasks (on finally entry points that run post job)
##### 1.1.3
- setSecret added to register a secret with the runner to be masked from the logs
- exportSecret which was not implemented and never worked was removed after clarification from product.
##### 1.1.1
- Add support for action input variables with multiple spaces [#&#8203;127](actions/toolkit#127)
- Switched ## commands to :: commands (should have no noticeable impact) \[[#&#8203;110](https://github.com/actions/toolkit/issues/110))([#&#8203;110](https://github.com/actions/toolkit/pull/110))
##### 1.1.0
- Added helpers for `group` and `endgroup` [#&#8203;98](actions/toolkit#98)
##### 1.0.0
- Initial release
### [`v1.11.0`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1110)
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
### [`v1.10.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1101)
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Reviewed-on: https://gitea.com/gitea/runner/pulls/880
Reviewed-by: Nicolas <bircni@icloud.com>
Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
Sign up for freeto 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.

7 participants

@joshmgross@MikeMcC399@gfteix@MarioUhrikTakeda@jsoref@robherley@luketomlinson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove dependency on uuid package - #1824

Merged
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep
Oct 2, 2024
Merged

Remove dependency on uuid package#1824
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep

Conversation

@joshmgross

Copy link
Copy Markdown
Contributor

A common pattern in the toolkit is to create temporary file or directory within the existing temp directory using a random UUID.

Versions of the uuid package below v7 are deprecated, so we shouldn't depend on them. Additionally, Node has a built-in crypto.randomUUID() method that can be used to generate UUIDs without the need for an external package. This function was introduced in versions of Node 14 and 15, so we should be safe to use it for actions that depend on both Node 16 and 20 (which are our only supported versions at this time).

I also went ahead and updated @actions/core, even though it was using a non-deprecated version of the uuid package.

Since these use cases is purely for temporary files, I don't think we strictly need a cryptographically secure UUID but that's an added bonus of using the built-in Node function.

Packages shouldn't be depending on the exact format of this temp file/directory, but even if they were this should be a compatible as we're still generating a version 4 UUID

Generates a random RFC 4122 version 4 UUID. The UUID is generated using a cryptographic pseudorandom number generator.

There are a couple other packages within the toolkit that have an indirect dependency on uuid through @actions/core, those can be updated as well once we release this new version of @actions/core.

@joshmgross
joshmgross requested review from a team as code ownersSeptember 4, 2024 18:36
This was referenced Sep 4, 2024
@MikeMcC399

Copy link
Copy Markdown

@joshmgross

Are you going to be able to progress this PR soon? It looks like you are just waiting for your team to review.

@joshmgross
joshmgross merged commit 78af634 into mainOct 2, 2024
@joshmgross
joshmgross deleted the joshmgross/rm-uuid-dep branch October 2, 2024 17:49
zemnmez-renovate-bot added a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
github-merge-queueBot pushed a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
@gfteix

gfteix commented Oct 2, 2024

Copy link
Copy Markdown

As the crypto global package is being used without an import/require statement, if the client is using a node version < 19 (when crypto became a global package in node.js https://nodejs.org/api/globals.html#crypto_1) the action that uses the toolkit will fail with a crypto is not defined error. Is this expected?

@MarioUhrikTakeda

Copy link
Copy Markdown

This seems to have caused #1841
FYI @joshmgross

@MikeMcC399

MikeMcC399 commented Oct 3, 2024

Copy link
Copy Markdown

@joshmgross

Just to be sure, are you (or somebody else) going to release a new version of @actions/cache now?

Edit: removed misleading screenshot of @actions/cache@3.2.4

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399 yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

❯ npm why uuid
uuid@8.3.2
node_modules/@azure/core-http/node_modules/uuid
uuid@"^8.3.0" from @azure/core-http@3.0.2
node_modules/@azure/core-http
@azure/core-http@"^3.0.0" from @azure/storage-blob@12.15.0
node_modules/@azure/storage-blob
@azure/storage-blob@"^12.13.0" from the root project
uuid@8.3.2
node_modules/@azure/ms-rest-js/node_modules/uuid
uuid@"^8.3.2" from @azure/ms-rest-js@2.7.0
node_modules/@azure/ms-rest-js
@azure/ms-rest-js@"^2.6.0" from the root project

@MikeMcC399

Copy link
Copy Markdown

@joshmgross

yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

Thanks for the confirmation! Looking forward to new releases which no longer depend on a deprecated version of uuid.

@jsoref

Copy link
Copy Markdown
Contributor

When do you intend to release a version of @actions/tool-cache newer than "version": "2.0.1" to include this fix?

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@jsoref see #1872, which is waiting on approval

chhe pushed a commit to chhe/act_runner that referenced this pull request May 1, 2026
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/core)) | [`1.10.0` → `1.11.1`](https://renovatebot.com/diffs/npm/@actions%2fcore/1.10.0/1.11.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@actions%2fcore/1.11.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@actions%2fcore/1.10.0/1.11.1?slim=true) |
---
### Release Notes
<details>
<summary>actions/toolkit (@&#8203;actions/core)</summary>
### [`v1.11.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1111)
- Fix uses of `crypto.randomUUID` on Node 18 and earlier [#&#8203;1842](actions/toolkit#1842)
##### 1.11.0
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
##### 1.10.1
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
##### 1.10.0
- `saveState` and `setOutput` now use environment files if available [#&#8203;1178](actions/toolkit#1178)
- `getMultilineInput` now correctly trims whitespace by default [#&#8203;1185](actions/toolkit#1185)
##### 1.9.1
- Randomize delimiter when calling `core.exportVariable`
##### 1.9.0
- Added `toPosixPath`, `toWin32Path` and `toPlatformPath` utilities [#&#8203;1102](actions/toolkit#1102)
##### 1.8.2
- Update to v2.0.1 of `@actions/http-client` [#&#8203;1087](actions/toolkit#1087)
##### 1.8.1
- Update to v2.0.0 of `@actions/http-client`
##### 1.8.0
- Deprecate `markdownSummary` extension export in favor of `summary`
- [#&#8203;1072](actions/toolkit#1072)
- [#&#8203;1073](actions/toolkit#1073)
##### 1.7.0
- [Added `markdownSummary` extension](actions/toolkit#1014)
##### 1.6.0
- [Added OIDC Client function `getIDToken`](actions/toolkit#919)
- [Added `file` parameter to `AnnotationProperties`](actions/toolkit#896)
##### 1.5.0
- [Added support for notice annotations and more annotation fields](actions/toolkit#855)
##### 1.4.0
- [Added the `getMultilineInput` function](actions/toolkit#829)
##### 1.3.0
- [Added the trimWhitespace option to getInput](actions/toolkit#802)
- [Added the getBooleanInput function](actions/toolkit#725)
##### 1.2.7
- [Prepend newline for set-output](actions/toolkit#772)
##### 1.2.6
- [Update `exportVariable` and `addPath` to use environment files](actions/toolkit#571)
##### 1.2.5
- [Correctly bundle License File with package](actions/toolkit#548)
##### 1.2.4
- [Be more lenient in accepting non-string command inputs](actions/toolkit#405)
- [Add Echo commands](actions/toolkit#411)
##### 1.2.3
- [IsDebug logging](README.md#logging)
##### 1.2.2
- [Fix escaping for runner commands](actions/toolkit#302)
##### 1.2.1
- [Remove trailing comma from commands](actions/toolkit#263)
- [Add "types" to package.json](actions/toolkit#221)
##### 1.2.0
- saveState and getState functions for wrapper tasks (on finally entry points that run post job)
##### 1.1.3
- setSecret added to register a secret with the runner to be masked from the logs
- exportSecret which was not implemented and never worked was removed after clarification from product.
##### 1.1.1
- Add support for action input variables with multiple spaces [#&#8203;127](actions/toolkit#127)
- Switched ## commands to :: commands (should have no noticeable impact) \[[#&#8203;110](https://github.com/actions/toolkit/issues/110))([#&#8203;110](https://github.com/actions/toolkit/pull/110))
##### 1.1.0
- Added helpers for `group` and `endgroup` [#&#8203;98](actions/toolkit#98)
##### 1.0.0
- Initial release
### [`v1.11.0`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1110)
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
### [`v1.10.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1101)
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Reviewed-on: https://gitea.com/gitea/runner/pulls/880
Reviewed-by: Nicolas <bircni@icloud.com>
Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
Sign up for freeto 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.

7 participants

@joshmgross@MikeMcC399@gfteix@MarioUhrikTakeda@jsoref@robherley@luketomlinson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Remove dependency on uuid package - #1824

Merged
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep
Oct 2, 2024
Merged

Remove dependency on uuid package#1824
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep

Conversation

@joshmgross

Copy link
Copy Markdown
Contributor

A common pattern in the toolkit is to create temporary file or directory within the existing temp directory using a random UUID.

Versions of the uuid package below v7 are deprecated, so we shouldn't depend on them. Additionally, Node has a built-in crypto.randomUUID() method that can be used to generate UUIDs without the need for an external package. This function was introduced in versions of Node 14 and 15, so we should be safe to use it for actions that depend on both Node 16 and 20 (which are our only supported versions at this time).

I also went ahead and updated @actions/core, even though it was using a non-deprecated version of the uuid package.

Since these use cases is purely for temporary files, I don't think we strictly need a cryptographically secure UUID but that's an added bonus of using the built-in Node function.

Packages shouldn't be depending on the exact format of this temp file/directory, but even if they were this should be a compatible as we're still generating a version 4 UUID

Generates a random RFC 4122 version 4 UUID. The UUID is generated using a cryptographic pseudorandom number generator.

There are a couple other packages within the toolkit that have an indirect dependency on uuid through @actions/core, those can be updated as well once we release this new version of @actions/core.

@joshmgross
joshmgross requested review from a team as code ownersSeptember 4, 2024 18:36
This was referenced Sep 4, 2024
@MikeMcC399

Copy link
Copy Markdown

@joshmgross

Are you going to be able to progress this PR soon? It looks like you are just waiting for your team to review.

@joshmgross
joshmgross merged commit 78af634 into mainOct 2, 2024
@joshmgross
joshmgross deleted the joshmgross/rm-uuid-dep branch October 2, 2024 17:49
zemnmez-renovate-bot added a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
github-merge-queueBot pushed a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
@gfteix

gfteix commented Oct 2, 2024

Copy link
Copy Markdown

As the crypto global package is being used without an import/require statement, if the client is using a node version < 19 (when crypto became a global package in node.js https://nodejs.org/api/globals.html#crypto_1) the action that uses the toolkit will fail with a crypto is not defined error. Is this expected?

@MarioUhrikTakeda

Copy link
Copy Markdown

This seems to have caused #1841
FYI @joshmgross

@MikeMcC399

MikeMcC399 commented Oct 3, 2024

Copy link
Copy Markdown

@joshmgross

Just to be sure, are you (or somebody else) going to release a new version of @actions/cache now?

Edit: removed misleading screenshot of @actions/cache@3.2.4

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399 yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

❯ npm why uuid
uuid@8.3.2
node_modules/@azure/core-http/node_modules/uuid
uuid@"^8.3.0" from @azure/core-http@3.0.2
node_modules/@azure/core-http
@azure/core-http@"^3.0.0" from @azure/storage-blob@12.15.0
node_modules/@azure/storage-blob
@azure/storage-blob@"^12.13.0" from the root project
uuid@8.3.2
node_modules/@azure/ms-rest-js/node_modules/uuid
uuid@"^8.3.2" from @azure/ms-rest-js@2.7.0
node_modules/@azure/ms-rest-js
@azure/ms-rest-js@"^2.6.0" from the root project

@MikeMcC399

Copy link
Copy Markdown

@joshmgross

yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

Thanks for the confirmation! Looking forward to new releases which no longer depend on a deprecated version of uuid.

@jsoref

Copy link
Copy Markdown
Contributor

When do you intend to release a version of @actions/tool-cache newer than "version": "2.0.1" to include this fix?

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@jsoref see #1872, which is waiting on approval

chhe pushed a commit to chhe/act_runner that referenced this pull request May 1, 2026
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/core)) | [`1.10.0` → `1.11.1`](https://renovatebot.com/diffs/npm/@actions%2fcore/1.10.0/1.11.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@actions%2fcore/1.11.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@actions%2fcore/1.10.0/1.11.1?slim=true) |
---
### Release Notes
<details>
<summary>actions/toolkit (@&#8203;actions/core)</summary>
### [`v1.11.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1111)
- Fix uses of `crypto.randomUUID` on Node 18 and earlier [#&#8203;1842](actions/toolkit#1842)
##### 1.11.0
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
##### 1.10.1
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
##### 1.10.0
- `saveState` and `setOutput` now use environment files if available [#&#8203;1178](actions/toolkit#1178)
- `getMultilineInput` now correctly trims whitespace by default [#&#8203;1185](actions/toolkit#1185)
##### 1.9.1
- Randomize delimiter when calling `core.exportVariable`
##### 1.9.0
- Added `toPosixPath`, `toWin32Path` and `toPlatformPath` utilities [#&#8203;1102](actions/toolkit#1102)
##### 1.8.2
- Update to v2.0.1 of `@actions/http-client` [#&#8203;1087](actions/toolkit#1087)
##### 1.8.1
- Update to v2.0.0 of `@actions/http-client`
##### 1.8.0
- Deprecate `markdownSummary` extension export in favor of `summary`
- [#&#8203;1072](actions/toolkit#1072)
- [#&#8203;1073](actions/toolkit#1073)
##### 1.7.0
- [Added `markdownSummary` extension](actions/toolkit#1014)
##### 1.6.0
- [Added OIDC Client function `getIDToken`](actions/toolkit#919)
- [Added `file` parameter to `AnnotationProperties`](actions/toolkit#896)
##### 1.5.0
- [Added support for notice annotations and more annotation fields](actions/toolkit#855)
##### 1.4.0
- [Added the `getMultilineInput` function](actions/toolkit#829)
##### 1.3.0
- [Added the trimWhitespace option to getInput](actions/toolkit#802)
- [Added the getBooleanInput function](actions/toolkit#725)
##### 1.2.7
- [Prepend newline for set-output](actions/toolkit#772)
##### 1.2.6
- [Update `exportVariable` and `addPath` to use environment files](actions/toolkit#571)
##### 1.2.5
- [Correctly bundle License File with package](actions/toolkit#548)
##### 1.2.4
- [Be more lenient in accepting non-string command inputs](actions/toolkit#405)
- [Add Echo commands](actions/toolkit#411)
##### 1.2.3
- [IsDebug logging](README.md#logging)
##### 1.2.2
- [Fix escaping for runner commands](actions/toolkit#302)
##### 1.2.1
- [Remove trailing comma from commands](actions/toolkit#263)
- [Add "types" to package.json](actions/toolkit#221)
##### 1.2.0
- saveState and getState functions for wrapper tasks (on finally entry points that run post job)
##### 1.1.3
- setSecret added to register a secret with the runner to be masked from the logs
- exportSecret which was not implemented and never worked was removed after clarification from product.
##### 1.1.1
- Add support for action input variables with multiple spaces [#&#8203;127](actions/toolkit#127)
- Switched ## commands to :: commands (should have no noticeable impact) \[[#&#8203;110](https://github.com/actions/toolkit/issues/110))([#&#8203;110](https://github.com/actions/toolkit/pull/110))
##### 1.1.0
- Added helpers for `group` and `endgroup` [#&#8203;98](actions/toolkit#98)
##### 1.0.0
- Initial release
### [`v1.11.0`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1110)
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
### [`v1.10.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1101)
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Reviewed-on: https://gitea.com/gitea/runner/pulls/880
Reviewed-by: Nicolas <bircni@icloud.com>
Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
Sign up for freeto 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.

7 participants

@joshmgross@MikeMcC399@gfteix@MarioUhrikTakeda@jsoref@robherley@luketomlinson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove dependency on uuid package - #1824

Merged
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep
Oct 2, 2024
Merged

Remove dependency on uuid package#1824
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep

Conversation

@joshmgross

Copy link
Copy Markdown
Contributor

A common pattern in the toolkit is to create temporary file or directory within the existing temp directory using a random UUID.

Versions of the uuid package below v7 are deprecated, so we shouldn't depend on them. Additionally, Node has a built-in crypto.randomUUID() method that can be used to generate UUIDs without the need for an external package. This function was introduced in versions of Node 14 and 15, so we should be safe to use it for actions that depend on both Node 16 and 20 (which are our only supported versions at this time).

I also went ahead and updated @actions/core, even though it was using a non-deprecated version of the uuid package.

Since these use cases is purely for temporary files, I don't think we strictly need a cryptographically secure UUID but that's an added bonus of using the built-in Node function.

Packages shouldn't be depending on the exact format of this temp file/directory, but even if they were this should be a compatible as we're still generating a version 4 UUID

Generates a random RFC 4122 version 4 UUID. The UUID is generated using a cryptographic pseudorandom number generator.

There are a couple other packages within the toolkit that have an indirect dependency on uuid through @actions/core, those can be updated as well once we release this new version of @actions/core.

@joshmgross
joshmgross requested review from a team as code ownersSeptember 4, 2024 18:36
This was referenced Sep 4, 2024
@MikeMcC399

Copy link
Copy Markdown

@joshmgross

Are you going to be able to progress this PR soon? It looks like you are just waiting for your team to review.

@joshmgross
joshmgross merged commit 78af634 into mainOct 2, 2024
@joshmgross
joshmgross deleted the joshmgross/rm-uuid-dep branch October 2, 2024 17:49
zemnmez-renovate-bot added a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
github-merge-queueBot pushed a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
@gfteix

gfteix commented Oct 2, 2024

Copy link
Copy Markdown

As the crypto global package is being used without an import/require statement, if the client is using a node version < 19 (when crypto became a global package in node.js https://nodejs.org/api/globals.html#crypto_1) the action that uses the toolkit will fail with a crypto is not defined error. Is this expected?

@MarioUhrikTakeda

Copy link
Copy Markdown

This seems to have caused #1841
FYI @joshmgross

@MikeMcC399

MikeMcC399 commented Oct 3, 2024

Copy link
Copy Markdown

@joshmgross

Just to be sure, are you (or somebody else) going to release a new version of @actions/cache now?

Edit: removed misleading screenshot of @actions/cache@3.2.4

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399 yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

❯ npm why uuid
uuid@8.3.2
node_modules/@azure/core-http/node_modules/uuid
uuid@"^8.3.0" from @azure/core-http@3.0.2
node_modules/@azure/core-http
@azure/core-http@"^3.0.0" from @azure/storage-blob@12.15.0
node_modules/@azure/storage-blob
@azure/storage-blob@"^12.13.0" from the root project
uuid@8.3.2
node_modules/@azure/ms-rest-js/node_modules/uuid
uuid@"^8.3.2" from @azure/ms-rest-js@2.7.0
node_modules/@azure/ms-rest-js
@azure/ms-rest-js@"^2.6.0" from the root project

@MikeMcC399

Copy link
Copy Markdown

@joshmgross

yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

Thanks for the confirmation! Looking forward to new releases which no longer depend on a deprecated version of uuid.

@jsoref

Copy link
Copy Markdown
Contributor

When do you intend to release a version of @actions/tool-cache newer than "version": "2.0.1" to include this fix?

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@jsoref see #1872, which is waiting on approval

chhe pushed a commit to chhe/act_runner that referenced this pull request May 1, 2026
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/core)) | [`1.10.0` → `1.11.1`](https://renovatebot.com/diffs/npm/@actions%2fcore/1.10.0/1.11.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@actions%2fcore/1.11.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@actions%2fcore/1.10.0/1.11.1?slim=true) |
---
### Release Notes
<details>
<summary>actions/toolkit (@&#8203;actions/core)</summary>
### [`v1.11.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1111)
- Fix uses of `crypto.randomUUID` on Node 18 and earlier [#&#8203;1842](actions/toolkit#1842)
##### 1.11.0
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
##### 1.10.1
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
##### 1.10.0
- `saveState` and `setOutput` now use environment files if available [#&#8203;1178](actions/toolkit#1178)
- `getMultilineInput` now correctly trims whitespace by default [#&#8203;1185](actions/toolkit#1185)
##### 1.9.1
- Randomize delimiter when calling `core.exportVariable`
##### 1.9.0
- Added `toPosixPath`, `toWin32Path` and `toPlatformPath` utilities [#&#8203;1102](actions/toolkit#1102)
##### 1.8.2
- Update to v2.0.1 of `@actions/http-client` [#&#8203;1087](actions/toolkit#1087)
##### 1.8.1
- Update to v2.0.0 of `@actions/http-client`
##### 1.8.0
- Deprecate `markdownSummary` extension export in favor of `summary`
- [#&#8203;1072](actions/toolkit#1072)
- [#&#8203;1073](actions/toolkit#1073)
##### 1.7.0
- [Added `markdownSummary` extension](actions/toolkit#1014)
##### 1.6.0
- [Added OIDC Client function `getIDToken`](actions/toolkit#919)
- [Added `file` parameter to `AnnotationProperties`](actions/toolkit#896)
##### 1.5.0
- [Added support for notice annotations and more annotation fields](actions/toolkit#855)
##### 1.4.0
- [Added the `getMultilineInput` function](actions/toolkit#829)
##### 1.3.0
- [Added the trimWhitespace option to getInput](actions/toolkit#802)
- [Added the getBooleanInput function](actions/toolkit#725)
##### 1.2.7
- [Prepend newline for set-output](actions/toolkit#772)
##### 1.2.6
- [Update `exportVariable` and `addPath` to use environment files](actions/toolkit#571)
##### 1.2.5
- [Correctly bundle License File with package](actions/toolkit#548)
##### 1.2.4
- [Be more lenient in accepting non-string command inputs](actions/toolkit#405)
- [Add Echo commands](actions/toolkit#411)
##### 1.2.3
- [IsDebug logging](README.md#logging)
##### 1.2.2
- [Fix escaping for runner commands](actions/toolkit#302)
##### 1.2.1
- [Remove trailing comma from commands](actions/toolkit#263)
- [Add "types" to package.json](actions/toolkit#221)
##### 1.2.0
- saveState and getState functions for wrapper tasks (on finally entry points that run post job)
##### 1.1.3
- setSecret added to register a secret with the runner to be masked from the logs
- exportSecret which was not implemented and never worked was removed after clarification from product.
##### 1.1.1
- Add support for action input variables with multiple spaces [#&#8203;127](actions/toolkit#127)
- Switched ## commands to :: commands (should have no noticeable impact) \[[#&#8203;110](https://github.com/actions/toolkit/issues/110))([#&#8203;110](https://github.com/actions/toolkit/pull/110))
##### 1.1.0
- Added helpers for `group` and `endgroup` [#&#8203;98](actions/toolkit#98)
##### 1.0.0
- Initial release
### [`v1.11.0`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1110)
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
### [`v1.10.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1101)
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Reviewed-on: https://gitea.com/gitea/runner/pulls/880
Reviewed-by: Nicolas <bircni@icloud.com>
Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
Sign up for freeto 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.

7 participants

@joshmgross@MikeMcC399@gfteix@MarioUhrikTakeda@jsoref@robherley@luketomlinson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove dependency on uuid package - #1824

Merged
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep
Oct 2, 2024
Merged

Remove dependency on uuid package#1824
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep

Conversation

@joshmgross

Copy link
Copy Markdown
Contributor

A common pattern in the toolkit is to create temporary file or directory within the existing temp directory using a random UUID.

Versions of the uuid package below v7 are deprecated, so we shouldn't depend on them. Additionally, Node has a built-in crypto.randomUUID() method that can be used to generate UUIDs without the need for an external package. This function was introduced in versions of Node 14 and 15, so we should be safe to use it for actions that depend on both Node 16 and 20 (which are our only supported versions at this time).

I also went ahead and updated @actions/core, even though it was using a non-deprecated version of the uuid package.

Since these use cases is purely for temporary files, I don't think we strictly need a cryptographically secure UUID but that's an added bonus of using the built-in Node function.

Packages shouldn't be depending on the exact format of this temp file/directory, but even if they were this should be a compatible as we're still generating a version 4 UUID

Generates a random RFC 4122 version 4 UUID. The UUID is generated using a cryptographic pseudorandom number generator.

There are a couple other packages within the toolkit that have an indirect dependency on uuid through @actions/core, those can be updated as well once we release this new version of @actions/core.

@joshmgross
joshmgross requested review from a team as code ownersSeptember 4, 2024 18:36
This was referenced Sep 4, 2024
@MikeMcC399

Copy link
Copy Markdown

@joshmgross

Are you going to be able to progress this PR soon? It looks like you are just waiting for your team to review.

@joshmgross
joshmgross merged commit 78af634 into mainOct 2, 2024
@joshmgross
joshmgross deleted the joshmgross/rm-uuid-dep branch October 2, 2024 17:49
zemnmez-renovate-bot added a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
github-merge-queueBot pushed a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
@gfteix

gfteix commented Oct 2, 2024

Copy link
Copy Markdown

As the crypto global package is being used without an import/require statement, if the client is using a node version < 19 (when crypto became a global package in node.js https://nodejs.org/api/globals.html#crypto_1) the action that uses the toolkit will fail with a crypto is not defined error. Is this expected?

@MarioUhrikTakeda

Copy link
Copy Markdown

This seems to have caused #1841
FYI @joshmgross

@MikeMcC399

MikeMcC399 commented Oct 3, 2024

Copy link
Copy Markdown

@joshmgross

Just to be sure, are you (or somebody else) going to release a new version of @actions/cache now?

Edit: removed misleading screenshot of @actions/cache@3.2.4

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399 yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

❯ npm why uuid
uuid@8.3.2
node_modules/@azure/core-http/node_modules/uuid
uuid@"^8.3.0" from @azure/core-http@3.0.2
node_modules/@azure/core-http
@azure/core-http@"^3.0.0" from @azure/storage-blob@12.15.0
node_modules/@azure/storage-blob
@azure/storage-blob@"^12.13.0" from the root project
uuid@8.3.2
node_modules/@azure/ms-rest-js/node_modules/uuid
uuid@"^8.3.2" from @azure/ms-rest-js@2.7.0
node_modules/@azure/ms-rest-js
@azure/ms-rest-js@"^2.6.0" from the root project

@MikeMcC399

Copy link
Copy Markdown

@joshmgross

yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

Thanks for the confirmation! Looking forward to new releases which no longer depend on a deprecated version of uuid.

@jsoref

Copy link
Copy Markdown
Contributor

When do you intend to release a version of @actions/tool-cache newer than "version": "2.0.1" to include this fix?

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@jsoref see #1872, which is waiting on approval

chhe pushed a commit to chhe/act_runner that referenced this pull request May 1, 2026
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/core)) | [`1.10.0` → `1.11.1`](https://renovatebot.com/diffs/npm/@actions%2fcore/1.10.0/1.11.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@actions%2fcore/1.11.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@actions%2fcore/1.10.0/1.11.1?slim=true) |
---
### Release Notes
<details>
<summary>actions/toolkit (@&#8203;actions/core)</summary>
### [`v1.11.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1111)
- Fix uses of `crypto.randomUUID` on Node 18 and earlier [#&#8203;1842](actions/toolkit#1842)
##### 1.11.0
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
##### 1.10.1
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
##### 1.10.0
- `saveState` and `setOutput` now use environment files if available [#&#8203;1178](actions/toolkit#1178)
- `getMultilineInput` now correctly trims whitespace by default [#&#8203;1185](actions/toolkit#1185)
##### 1.9.1
- Randomize delimiter when calling `core.exportVariable`
##### 1.9.0
- Added `toPosixPath`, `toWin32Path` and `toPlatformPath` utilities [#&#8203;1102](actions/toolkit#1102)
##### 1.8.2
- Update to v2.0.1 of `@actions/http-client` [#&#8203;1087](actions/toolkit#1087)
##### 1.8.1
- Update to v2.0.0 of `@actions/http-client`
##### 1.8.0
- Deprecate `markdownSummary` extension export in favor of `summary`
- [#&#8203;1072](actions/toolkit#1072)
- [#&#8203;1073](actions/toolkit#1073)
##### 1.7.0
- [Added `markdownSummary` extension](actions/toolkit#1014)
##### 1.6.0
- [Added OIDC Client function `getIDToken`](actions/toolkit#919)
- [Added `file` parameter to `AnnotationProperties`](actions/toolkit#896)
##### 1.5.0
- [Added support for notice annotations and more annotation fields](actions/toolkit#855)
##### 1.4.0
- [Added the `getMultilineInput` function](actions/toolkit#829)
##### 1.3.0
- [Added the trimWhitespace option to getInput](actions/toolkit#802)
- [Added the getBooleanInput function](actions/toolkit#725)
##### 1.2.7
- [Prepend newline for set-output](actions/toolkit#772)
##### 1.2.6
- [Update `exportVariable` and `addPath` to use environment files](actions/toolkit#571)
##### 1.2.5
- [Correctly bundle License File with package](actions/toolkit#548)
##### 1.2.4
- [Be more lenient in accepting non-string command inputs](actions/toolkit#405)
- [Add Echo commands](actions/toolkit#411)
##### 1.2.3
- [IsDebug logging](README.md#logging)
##### 1.2.2
- [Fix escaping for runner commands](actions/toolkit#302)
##### 1.2.1
- [Remove trailing comma from commands](actions/toolkit#263)
- [Add "types" to package.json](actions/toolkit#221)
##### 1.2.0
- saveState and getState functions for wrapper tasks (on finally entry points that run post job)
##### 1.1.3
- setSecret added to register a secret with the runner to be masked from the logs
- exportSecret which was not implemented and never worked was removed after clarification from product.
##### 1.1.1
- Add support for action input variables with multiple spaces [#&#8203;127](actions/toolkit#127)
- Switched ## commands to :: commands (should have no noticeable impact) \[[#&#8203;110](https://github.com/actions/toolkit/issues/110))([#&#8203;110](https://github.com/actions/toolkit/pull/110))
##### 1.1.0
- Added helpers for `group` and `endgroup` [#&#8203;98](actions/toolkit#98)
##### 1.0.0
- Initial release
### [`v1.11.0`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1110)
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
### [`v1.10.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1101)
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Reviewed-on: https://gitea.com/gitea/runner/pulls/880
Reviewed-by: Nicolas <bircni@icloud.com>
Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
Sign up for freeto 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.

7 participants

@joshmgross@MikeMcC399@gfteix@MarioUhrikTakeda@jsoref@robherley@luketomlinson
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Remove dependency on uuid package - #1824

Merged
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep
Oct 2, 2024
Merged

Remove dependency on uuid package#1824
joshmgross merged 1 commit into
mainfrom
joshmgross/rm-uuid-dep

Conversation

@joshmgross

Copy link
Copy Markdown
Contributor

A common pattern in the toolkit is to create temporary file or directory within the existing temp directory using a random UUID.

Versions of the uuid package below v7 are deprecated, so we shouldn't depend on them. Additionally, Node has a built-in crypto.randomUUID() method that can be used to generate UUIDs without the need for an external package. This function was introduced in versions of Node 14 and 15, so we should be safe to use it for actions that depend on both Node 16 and 20 (which are our only supported versions at this time).

I also went ahead and updated @actions/core, even though it was using a non-deprecated version of the uuid package.

Since these use cases is purely for temporary files, I don't think we strictly need a cryptographically secure UUID but that's an added bonus of using the built-in Node function.

Packages shouldn't be depending on the exact format of this temp file/directory, but even if they were this should be a compatible as we're still generating a version 4 UUID

Generates a random RFC 4122 version 4 UUID. The UUID is generated using a cryptographic pseudorandom number generator.

There are a couple other packages within the toolkit that have an indirect dependency on uuid through @actions/core, those can be updated as well once we release this new version of @actions/core.

@joshmgross
joshmgross requested review from a team as code ownersSeptember 4, 2024 18:36
This was referenced Sep 4, 2024
@MikeMcC399

Copy link
Copy Markdown

@joshmgross

Are you going to be able to progress this PR soon? It looks like you are just waiting for your team to review.

@joshmgross
joshmgross merged commit 78af634 into mainOct 2, 2024
@joshmgross
joshmgross deleted the joshmgross/rm-uuid-dep branch October 2, 2024 17:49
zemnmez-renovate-bot added a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
github-merge-queueBot pushed a commit to zemn-me/monorepo that referenced this pull request Oct 2, 2024
@gfteix

gfteix commented Oct 2, 2024

Copy link
Copy Markdown

As the crypto global package is being used without an import/require statement, if the client is using a node version < 19 (when crypto became a global package in node.js https://nodejs.org/api/globals.html#crypto_1) the action that uses the toolkit will fail with a crypto is not defined error. Is this expected?

@MarioUhrikTakeda

Copy link
Copy Markdown

This seems to have caused #1841
FYI @joshmgross

@MikeMcC399

MikeMcC399 commented Oct 3, 2024

Copy link
Copy Markdown

@joshmgross

Just to be sure, are you (or somebody else) going to release a new version of @actions/cache now?

Edit: removed misleading screenshot of @actions/cache@3.2.4

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@MikeMcC399 yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

❯ npm why uuid
uuid@8.3.2
node_modules/@azure/core-http/node_modules/uuid
uuid@"^8.3.0" from @azure/core-http@3.0.2
node_modules/@azure/core-http
@azure/core-http@"^3.0.0" from @azure/storage-blob@12.15.0
node_modules/@azure/storage-blob
@azure/storage-blob@"^12.13.0" from the root project
uuid@8.3.2
node_modules/@azure/ms-rest-js/node_modules/uuid
uuid@"^8.3.2" from @azure/ms-rest-js@2.7.0
node_modules/@azure/ms-rest-js
@azure/ms-rest-js@"^2.6.0" from the root project

@MikeMcC399

Copy link
Copy Markdown

@joshmgross

yes I'm planning to upgrade the packages that depend on @actions/core.

It's worth noting that @actions/cache will still depend on uuid through @azure/core-http though:

Thanks for the confirmation! Looking forward to new releases which no longer depend on a deprecated version of uuid.

@jsoref

Copy link
Copy Markdown
Contributor

When do you intend to release a version of @actions/tool-cache newer than "version": "2.0.1" to include this fix?

@joshmgross

Copy link
Copy Markdown
ContributorAuthor

@jsoref see #1872, which is waiting on approval

chhe pushed a commit to chhe/act_runner that referenced this pull request May 1, 2026
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@actions/core](https://github.com/actions/toolkit/tree/main/packages/core) ([source](https://github.com/actions/toolkit/tree/HEAD/packages/core)) | [`1.10.0` → `1.11.1`](https://renovatebot.com/diffs/npm/@actions%2fcore/1.10.0/1.11.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@actions%2fcore/1.11.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@actions%2fcore/1.10.0/1.11.1?slim=true) |
---
### Release Notes
<details>
<summary>actions/toolkit (@&#8203;actions/core)</summary>
### [`v1.11.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1111)
- Fix uses of `crypto.randomUUID` on Node 18 and earlier [#&#8203;1842](actions/toolkit#1842)
##### 1.11.0
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
##### 1.10.1
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
##### 1.10.0
- `saveState` and `setOutput` now use environment files if available [#&#8203;1178](actions/toolkit#1178)
- `getMultilineInput` now correctly trims whitespace by default [#&#8203;1185](actions/toolkit#1185)
##### 1.9.1
- Randomize delimiter when calling `core.exportVariable`
##### 1.9.0
- Added `toPosixPath`, `toWin32Path` and `toPlatformPath` utilities [#&#8203;1102](actions/toolkit#1102)
##### 1.8.2
- Update to v2.0.1 of `@actions/http-client` [#&#8203;1087](actions/toolkit#1087)
##### 1.8.1
- Update to v2.0.0 of `@actions/http-client`
##### 1.8.0
- Deprecate `markdownSummary` extension export in favor of `summary`
- [#&#8203;1072](actions/toolkit#1072)
- [#&#8203;1073](actions/toolkit#1073)
##### 1.7.0
- [Added `markdownSummary` extension](actions/toolkit#1014)
##### 1.6.0
- [Added OIDC Client function `getIDToken`](actions/toolkit#919)
- [Added `file` parameter to `AnnotationProperties`](actions/toolkit#896)
##### 1.5.0
- [Added support for notice annotations and more annotation fields](actions/toolkit#855)
##### 1.4.0
- [Added the `getMultilineInput` function](actions/toolkit#829)
##### 1.3.0
- [Added the trimWhitespace option to getInput](actions/toolkit#802)
- [Added the getBooleanInput function](actions/toolkit#725)
##### 1.2.7
- [Prepend newline for set-output](actions/toolkit#772)
##### 1.2.6
- [Update `exportVariable` and `addPath` to use environment files](actions/toolkit#571)
##### 1.2.5
- [Correctly bundle License File with package](actions/toolkit#548)
##### 1.2.4
- [Be more lenient in accepting non-string command inputs](actions/toolkit#405)
- [Add Echo commands](actions/toolkit#411)
##### 1.2.3
- [IsDebug logging](README.md#logging)
##### 1.2.2
- [Fix escaping for runner commands](actions/toolkit#302)
##### 1.2.1
- [Remove trailing comma from commands](actions/toolkit#263)
- [Add "types" to package.json](actions/toolkit#221)
##### 1.2.0
- saveState and getState functions for wrapper tasks (on finally entry points that run post job)
##### 1.1.3
- setSecret added to register a secret with the runner to be masked from the logs
- exportSecret which was not implemented and never worked was removed after clarification from product.
##### 1.1.1
- Add support for action input variables with multiple spaces [#&#8203;127](actions/toolkit#127)
- Switched ## commands to :: commands (should have no noticeable impact) \[[#&#8203;110](https://github.com/actions/toolkit/issues/110))([#&#8203;110](https://github.com/actions/toolkit/pull/110))
##### 1.1.0
- Added helpers for `group` and `endgroup` [#&#8203;98](actions/toolkit#98)
##### 1.0.0
- Initial release
### [`v1.11.0`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1110)
- Add platform info utilities [#&#8203;1551](actions/toolkit#1551)
- Remove dependency on `uuid` package [#&#8203;1824](actions/toolkit#1824)
### [`v1.10.1`](https://github.com/actions/toolkit/blob/HEAD/packages/core/RELEASES.md#1101)
- Fix error message reference in oidc utils [#&#8203;1511](actions/toolkit#1511)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Reviewed-on: https://gitea.com/gitea/runner/pulls/880
Reviewed-by: Nicolas <bircni@icloud.com>
Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
Co-committed-by: Renovate Bot <renovate-bot@gitea.com>
Sign up for freeto 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.

7 participants

@joshmgross@MikeMcC399@gfteix@MarioUhrikTakeda@jsoref@robherley@luketomlinson