Skip to content

Bump multistream and @types/multistream - #2718

Merged
Akanksha Jain (jainakanksha-msft) merged 3 commits into
mainfrom
dependabot/npm_and_yarn/multi-268f0b2511
Aug 7, 2026
Merged

Bump multistream and @types/multistream#2718
Akanksha Jain (jainakanksha-msft) merged 3 commits into
mainfrom
dependabot/npm_and_yarn/multi-268f0b2511

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 6, 2026

Copy link
Copy Markdown
Contributor

Bumps multistream and @types/multistream. These dependencies needed to be updated together.
Updates multistream from 2.1.1 to 4.1.0

Commits

Updates @types/multistream from 2.1.2 to 4.1.4

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [multistream](https://github.com/feross/multistream) and [@types/multistream](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/multistream). These dependencies needed to be updated together.

Updates `multistream` from 2.1.1 to 4.1.0
- [Commits](feross/multistream@v2.1.1...v4.1.0)

Updates `@types/multistream` from 2.1.2 to 4.1.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/multistream)

---
updated-dependencies:
- dependency-name: multistream
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: "@types/multistream"
  dependency-version: 4.1.4
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Aug 6, 2026
Copilot AI lite review requested due to automatic review settings August 6, 2026 23:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot could not run the full agentic suite for this review because it was automatically requested on a bot-authored pull request. Request a review from Copilot under Reviewers to retry with the full agentic suite. Improved support for bot-authored pull requests is coming soon.

Updates the multistream dependency and its TypeScript typings to newer major versions.

Changes:

  • Bump multistream from ^2.1.1 to ^4.1.0
  • Bump @types/multistream from ^2.1.1 to ^4.1.4

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

@jainakanksha-msft

Copy link
Copy Markdown
Member

Copilot

  1. if there is any build issue fix that
  2. Add\Update relevant test case to cover the change and validate it before and after the change.
  3. Run through test cases and validate the changes fully if it impacts the code
  4. Update the Changelog file at line at line 29
  5. Review and validate any comments(normal\suppressed) if any.
  6. Rate your overall work
  7. If it is not 10 out of 10, please make the changes needed to bring it to a 10 rating.

Co-authored-by: jainakanksha-msft <181211853+jainakanksha-msft@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 7, 2026 06:42
@dependabot
dependabot Bot removed the request for review from Copilot August 7, 2026 06:42

Copilot AI commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Copilot

  1. if there is any build issue fix that
  2. Add\Update relevant test case to cover the change and validate it before and after the change.
    ...

Addressed in 16e15a6:

  1. Build was broken — multistream v4 exports a class, so calling it as a function (multistream(streams)) failed with TS2348. Fixed FSExtentStore.readExtents() and MemoryExtentStore.readExtents() to use new multistream(streams as Readable[]), and adjusted the cast since the new type defs expect Readable[] instead of NodeJS.ReadableStream[].
  2. Added unit tests in tests/blob/fsStore.test.ts and tests/blob/memoryStore.unit.test.ts covering readExtents() merging multiple extents into one stream — this is the code path that exercises multistream directly. Verified they fail without the fix and pass with it.
  3. Ran npm run build, npm run lint, and npm run test:blob (529 tests) — all pass.
  4. Updated ChangeLog.md at line 29.
  5. Ran CodeQL — no alerts.
  6. Rating: 10/10 — build is fixed, behavior verified with new/existing tests, changelog updated, no security findings.

@jainakanksha-msft

Copy link
Copy Markdown
Member

Copilot,
Shouldn't the new test case pass before and after the change. so that we know functionality stays intact after upgrading the dependency.
Also, does 1 test case enough to cover all the scenarios, with the rest already covered?

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 7 changed files in this pull request and generated no new comments.

Suppressed comments (2)

ChangeLog.md:29

  • ChangeLog entry says @types/multistream was bumped from ^2.1.2, but the previous package.json dependency range was ^2.1.1 (the lockfile resolved to 2.1.2). This release note should reflect the actual declared range to avoid confusion when auditing dependency changes.
- Bumped `multistream` from `^2.1.1` to `^4.1.0` and `@types/multistream` from `^2.1.2` to `^4.1.4`. Updated `FSExtentStore.readExtents()` and `MemoryExtentStore.readExtents()` to call `multistream` with `new` (now a class in v4) and added unit test coverage for merging multiple extents into a single stream.

tests/blob/fsStore.test.ts:82

  • This new unit test creates on-disk extents under the default __blobstorage__ folder but never closes/cleans the store, which can leave test artifacts in the repo working directory and potentially keep file handles open. Wrap the test in a try/finally and call store.close() + store.clean() (clean requires close) so the test suite is self-cleaning.
  it("should merge multiple extents into a single readable stream @loki", async () => {
    const store = new FSExtentStore(metadataStore, DEFAULT_BLOB_PERSISTENCE_ARRAY, logger);
    await store.init();

    const extent1 = await store.appendExtent(Buffer.from("Hello"));

Co-authored-by: jainakanksha-msft <181211853+jainakanksha-msft@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 7, 2026 08:06
@dependabot
dependabot Bot removed the request for review from Copilot August 7, 2026 08:06

Copilot AI commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Copilot,
Shouldn't the new test case pass before and after the change. so that we know functionality stays intact after upgrading the dependency.
Also, does 1 test case enough to cover all the scen...

Addressed in c617786.

The intent is exactly that the behavior stays the same across the upgrade: these tests pass on the pre-upgrade behavior and on the fixed branch, but they fail on the intermediate broken dependency-bump commit because multistream v4 requires construction with new, which is the regression introduced by the upgrade.

I also added another scenario in both extent-store implementations to cover a ranged read that spans extent boundaries, so the coverage is now:

  • full multi-extent merge (FS + memory)
  • cross-extent ranged read (FS + memory)
  • existing single-extent append/read tests already in the suite

Validated with npm run build, the targeted extent tests, and npm run test:blob (531 passing, 3 pending).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 7 changed files in this pull request and generated no new comments.

Suppressed comments (1)

ChangeLog.md:29

  • ChangeLog entry says @types/multistream was bumped from ^2.1.2, but package.json shows the previous range was ^2.1.1. This makes the release note inconsistent with the actual dependency change.
- Bumped `multistream` from `^2.1.1` to `^4.1.0` and `@types/multistream` from `^2.1.2` to `^4.1.4`. Updated `FSExtentStore.readExtents()` and `MemoryExtentStore.readExtents()` to call `multistream` with `new` (now a class in v4) and added unit test coverage for merging multiple extents into a single stream.

@jainakanksha-msft
Akanksha Jain (jainakanksha-msft) merged commit 30917cf into main Aug 7, 2026
85 of 86 checks passed
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/multi-268f0b2511 branch August 7, 2026 09:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants