Note This repository isn’t part of our core product.
This plugin retrieves native dependency version information from iOS and/or Android projects and integrates it into the semantic release workflow generate notes steps.
- Extracts dependency versions from podspec json file (iOS) and/or Gradle task output (Android)
- Ensures version consistency in release notes
- Automates version retrieval for better release documentation
pnpm add -D @fingerprintjs/semantic-release-native-dependency-plugin
Add the plugin to your .releaserc
configuration:
{
"plugins": [
...,
[
"@fingerprintjs/semantic-release-native-dependency-plugin",
{
"heading": "Supported Native SDK Version Range",
"platforms": {
"iOS": {
"podSpecJsonPath": "RNFingerprintjsPro.podspec.json",
"dependencyName": "FingerprintPro",
"displayName": "Fingerprint iOS SDK"
},
"android": {
"path": "android",
"gradleTaskName": "printFingerprintNativeSDKVersion",
"displayName": "Fingerprint Android SDK"
}
}
}
]
]
}
Key | Type | Default | Description |
---|---|---|---|
heading |
string |
Native Dependencies |
Optional h3 heading shown before listing platform specific version ranges. |
platforms |
object |
Top-level object defining configuration for each platform. | |
platforms.iOS |
object |
Configuration for the iOS dependency version resolution. | |
platforms.iOS.podSpecJsonPath |
string |
Path to the PODSPEC json file containing iOS dependency metadata. | |
platforms.iOS.dependencyName |
string |
Name of the dependency to extract the version. | |
platforms.iOS.displayName |
string |
iOS |
Name for the iOS dependency shown in release notes. |
platforms.android |
object |
Configuration for the Android dependency version resolution. | |
platforms.android.path |
string |
Relative path to the Android project directory which contains `build.gradle. | |
platforms.android.gradleTaskName |
string |
Name of the custom Gradle task that outputs the dependency version. | |
platforms.android.displayName |
string |
android |
Name for the Android dependency shown in release notes. |
Note: You can configure one or both platforms depending on your project needs. At least one platform (
iOS
orandroid
) must be configured. The plugin will throw an error if both are omitted.
- The plugin reads version information from podspec json file (iOS) and/or a custom Gradle task output (Android).
- It automatically includes the extracted versions in the release notes.
- Helps maintain transparency about dependency versions used in each release.
Example generated release notes:
## 3.4.0 (https://github.com/.../compare/v3.3.1...v3.4.0) (2025-04-10)
### Features
* example feat release ([018455b](https://github.com/.../commit/...))
### Supported Native SDK Version Range
* Fingerprint Android SDK Version Range: `>= 2.7.0 and < 3.0.0`
* Fingerprint iOS SDK Version Range: `>= 2.7.0 and < 3.0.0`
- Node.js 20.8.1 or higher
- Semantic Release configured in your project
We welcome contributions! To get started with development:
- Node.js 20.8.1 or higher required
- Uses pnpm as the package manager
- Code follows ESLint and Prettier configurations
- Uses Husky and Lint-Staged for pre-commit checks
- Jest for testing
- Commitizen for conventional commits
- Clone the repository
git clone https://github.com/fingerprintjs/semantic-release-native-dependency-plugin.git cd semantic-release-native-dependency-plugin
- Install dependencies
pnpm install
- Integrate git hooks
pnpm prepare
- Start development mode with live rebuilds:
or build the project manually:
pnpm start
pnpm build
- Run tests:
pnpm test pnpm test:coverage # run tests with coverage report
- Lint and format code:
pnpm lint pnpm lint:fix # auto fix issues
- Run type checks:
pnpm typecheck
- Generate documentation:
pnpm docs
MIT