microsoft / microsoft/skill-recorder

Bump sharp to 0.35.x to resolve Dependabot alert (requires libvips compliance review)

Open
#35 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dependencies security
Dominant language
TypeScript
Stars
4k
Forks
412
Avg merge
3h 16m
Merged PRs (30d)
10

Description

Background

PR #34 resolves 14 of the 15 open Dependabot alerts (tar, adm-zip, fast-uri). The remaining alert — sharp (high severity) — was intentionally split out because it cannot be landed mechanically.

Why sharp needs its own PR

Bumping sharp ^0.34.5 → ^0.35.x also bumps the bundled libvips native library (@img/sharp-libvips-*) from 1.2.4 → 1.3.2. This trips the deliberate license-compliance gate:

  • third_party/compliance-policy.json pins the exact reviewed versions (sharp: 0.34.5, sharpLibvips.version: 1.2.4).
  • scripts/compliance.mjs (validateReviewedVersions) fails CI with sharp versions have not been reviewed: 0.35.x; expected 0.34.5.
  • RELEASING.md documents that Sharp / sharp-libvips bumps require human review of licenses, native dependency versions, patches, source archives, and relinking.

What the sharp PR must do

  • Bump sharp to the target 0.35.x in package.json and add "sharp": "$sharp" to overrides (forces the transitive copy under @huggingface/transformers to match).
  • Update third_party/compliance-policy.json: sharp version, sharpLibvips.version (1.3.2), and the ~40 sourceMaterials SHA-256 hashes for the new libvips component versions (aom, cairo, glib, vips, etc.).
  • Regenerate THIRD-PARTY-NOTICES.md.
  • Fix the frame extractor type for the sharp 0.35 export split: electron/frames/extractor.ts needs type Sharp = (typeof import("sharp"))["default"]; (0.35 splits the import/require export conditions, so the namespace form is no longer callable).
  • Add a regression test in electron/frames/extractor.test.ts guarding the createRequire load path stays a callable factory (.extract().jpeg() pipeline).
  • Run npm run typecheck, npm test, and npm run compliance:licenses; confirm the version-review gate passes.

References

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with package.json, third_party/compliance-policy.json, scripts/compliance.mjs, and RELEASING.md to understand the reviewed-version gate and required source materials. Inspect electron/frames/extractor.ts and extractor.test.ts, then run npm run typecheck, npm test, and npm run compliance:licenses. Done means the Sharp 0.35.x review data, notices, callable extraction regression test, and all checks are complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, typescript
Domain
build-system, desktop, security, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.