Skip to content

Conversation

@TastyPi
Copy link
Contributor

@TastyPi TastyPi commented Sep 24, 2025

What was changed

Bumped uuid dependency from 9.0.1 to 13.0.0 and removed @types/uuid dependency

Why?

uuid started being packaged with its own types in 10.0.0. We've been having weird issues with a tool that is trying to use @types/uuid to check types for [email protected]. Rather than trying to fix the tool, it seems reasonable to upgrade uuid so we can remove the dependency on @types/uuid. Temporal is our last dependency that depends on an old version of uuid.

Checklist

  1. Closes N/A (I didn't create an issue, can create one if needed)

  2. How was this tested:

I tried to run npm run build and npm run test, but both failed for seemingly unrelated reasons.

Every import of this package is import { v4 as uuid4 } from 'uuid' which is still the same in 13.0.0, so it shouldn't change anything.

  1. Any docs updates needed?

No

@TastyPi TastyPi requested a review from a team as a code owner September 24, 2025 12:41
@mjameswh
Copy link
Contributor

uuid 12 and over is ESM only, which makes it unusable for us at the moment.

I think upgrading to uuid 11 would be possible, but we'll need to confirm this would have no operational impact.

@TastyPi TastyPi changed the title Bump uuid to 13.0.0 Bump uuid to 11.1.0 Oct 8, 2025
@TastyPi
Copy link
Contributor Author

TastyPi commented Oct 8, 2025

@mjameswh switched to 11.1.0.

Here's every import of the uuid package https://github.com/search?q=repo%3Atemporalio%2Fsdk-typescript+%22from+%27uuid%27%22+&type=code

Note they're all of the form import { v4 as uuid4 } from 'uuid'

Here's every usage of uuid4 outside tests (plus a custom uuid4 function defined in @temporalio/workflow) https://github.com/search?q=repo%3Atemporalio%2Fsdk-typescript+%22uuid4%22+-path%3Atest&type=code

It looks pretty straightforward to me, and I'd be surprised to learn the v4 algorithm has changed other than for performance reasons, it's very well-defined.

The only breaking changes I could find that might be relevant are dropping old node versions, but the oldest supported by uuid 11 is 16 which I believe is lower than Temporal's (18 according to your AI developer assistant). https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md

Copy link
Contributor

@mjameswh mjameswh left a comment

Choose a reason for hiding this comment

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

Looks like uuid v11.1.0 is fine for our needs.

Given that the uuid package is not used inside the workflow sandbox (we use a custom UUIDv4 implementation), I don't see any deterministic-backward-compatibility requirement.

@mjameswh
Copy link
Contributor

Tests are flaky due to an ongoing GitHub incident. Merging anyway.

@mjameswh mjameswh merged commit d55644b into temporalio:main Oct 23, 2025
47 of 52 checks passed
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.

2 participants