Thanks for considering contributing to flutter_secure_storage!
This is a Melos monorepo. After cloning, bootstrap once before doing any other work:
dart pub global activate melos
melos bootstrapmelos bootstrap links all packages together via pubspec overrides so that local changes to one package are immediately visible across the others without publishing.
- Open feature/fix PRs against
develop. - PR titles must follow Conventional Commits (e.g.
feat: ...,fix: ...,chore: ...) — this is enforced by CI. - Run
melos analyzeandmelos format --output none --set-exit-if-changedbefore pushing; both run in CI. - Add or update tests for the packages you touch where applicable.
Each package in this repo (flutter_secure_storage, flutter_secure_storage_platform_interface, flutter_secure_storage_darwin, flutter_secure_storage_linux, flutter_secure_storage_web, flutter_secure_storage_windows) is versioned independently, and releases are handled automatically by Release Please. Please don't bump a pubspec.yaml version or add a CHANGELOG.md entry yourself — Release Please generates both from your commit messages after merge.
- Scope your commit/PR title to the package(s) you actually changed, e.g.
fix(darwin): ...,feat(windows): .... Release Please uses the Conventional Commit type (and scope) to decide which package(s) get a version bump and what the changelog entry says. - Try not to mix changes to multiple packages in a single commit — Release Please attributes a commit, including any
!breaking-change marker, to every package whose files it touches, so an unrelated multi-package commit can trigger an unintended version bump elsewhere. - Once merged, Release Please opens a
chore(develop): release <package> X.Y.ZPR for each affected package. Merging that PR cuts the release, tags it<package-directory>-vX.Y.Z(this applies to all six packages, including the mainflutter_secure_storage), and publishes it to pub.dev via CI. - If you bumped a platform package (darwin/linux/web/windows), also check whether the
^constraint on it influtter_secure_storage/pubspec.yamlneeds updating — that's still a manual step.