feat: add changesets native dependency format package#177
Conversation
🦋 Changeset detectedLatest commit: 63489b1 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
Pull request overview
Adds a new shared Changesets changelog preset/package intended to append a “native dependencies version range” note to the last changeset entry, so it can be reused across SDK repos (React Native / Flutter).
Changes:
- Introduces
@fingerprintjs/changesets-native-dependency-format, wrapping the existing@fingerprintjs/changesets-changelog-formatand appending a generated native-deps note to the final changelog entry. - Implements native dependency resolution helpers for iOS (CocoaPods podspec parsing) and Android (Gradle task output parsing).
- Updates the release workflow to provide
NPM_TOKENfor publishing, and updates the pnpm lockfile for new dependencies.
Reviewed changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
pnpm-lock.yaml |
Adds dependency graph entries for the new package and its transitive deps. |
packages/changesets-native-dependency-format/tsconfig.json |
Adds TypeScript build config for the new package. |
packages/changesets-native-dependency-format/package.json |
Declares the new publishable package and its build script/dependencies. |
packages/changesets-native-dependency-format/src/index.ts |
Implements the changelog preset wrapper and note appending behavior. |
packages/changesets-native-dependency-format/src/native-dependency/note.ts |
Generates the native dependency Markdown note (currently with hardcoded SDK paths/tasks). |
packages/changesets-native-dependency-format/src/native-dependency/changeset.ts |
Determines which changeset is “last” for appending the note. |
packages/changesets-native-dependency-format/src/native-dependency/android.ts |
Runs a Gradle task and humanizes the Maven-style version output. |
packages/changesets-native-dependency-format/src/native-dependency/gradle.ts |
Resolves whether to call system Gradle vs gradlew. |
packages/changesets-native-dependency-format/src/native-dependency/ios.ts |
Resolves iOS dependency version constraints from podspec (JSON/DSL). |
packages/changesets-native-dependency-format/src/native-dependency/pods.ts |
Interacts with CocoaPods CLI to parse podspec DSL. |
packages/changesets-native-dependency-format/src/native-dependency/utils.ts |
Shared helpers (Maven range humanization + command-not-found detection). |
.github/workflows/release-dx-packages.yml |
Adds NPM_TOKEN to publish step env. |
.changeset/slow-meteors-wait.md |
Adds the changeset entry for the new package release. |
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…ps note generation
…eps note formatter
This PR will create a minor release 🚀
|
🚀 Following releases will be created using changesets from this PR:@fingerprintjs/changesets-native-dependency-format@0.1.0Minor Changes
|
Coverage report
Test suite run success15 tests passing in 7 suites. Report generated by 🧪jest coverage report action from 63489b1 Show full coverage report
|
Added a shared package that adds native dependencies note in the changesets generated changelog. The goal is to share it in React-Native and Flutter SDKs.