Branch flow & release-please¶
Branch model¶
| Branch | Role |
|---|---|
main | Always green. Squash target for every PR. Source for npm publish. |
fix/*, feat/*, refactor/*, chore/*, docs/* | Feature branches. One PR per branch. Squash-merged into main. |
release-please--* | Auto-generated by release-please. Aggregates Conventional Commits since the last release into a single PR. Merging it bumps the version + publishes. |
Conventional Commits¶
Every commit subject must follow the Conventional Commits format:
| Type | Effect on version |
|---|---|
fix: | Patch bump (8.4.0 → 8.4.1) |
feat: | Minor bump (8.4.0 → 8.5.0) |
BREAKING CHANGE: in footer | Major bump (8.4.0 → 9.0.0) |
chore:, docs:, refactor:, test:, ci: | No version bump (still recorded in CHANGELOG) |
revert: | Patch bump |
Per-PR checklist¶
- Branch from
main:git checkout -b <type>/<short-name> - Make the change. Run
npm run test:unit+npm run lintlocally. - Commit (the pre-commit hook runs the full 12 gates).
- Push + open the PR. CI re-runs the same gates.
- Wait for
@sergienko4(CODEOWNER) review. - Squash-merge once approved + CI green. Commit subject must still be Conventional.
release-please cadence¶
- A release-please PR is open at all times once any new commits land.
- Merging the release-please PR:
- Bumps the version in
package.json - Updates
CHANGELOG.md - Tags the commit
- Triggers the
npm-publishworkflow → publishes to npm as@sergienko4/israeli-bank-scrapers@<new-version>
- Bumps the version in
You don't manually edit CHANGELOG.md or package.json for versions — release-please owns both.
What ships in the npm package¶
| Included | Excluded |
|---|---|
lib/index.{mjs,cjs} + types | src/ (no source ships) |
package.json, README.md, LICENSE, CHANGELOG.md | docs/, site/, typedoc-build/, coverage/ |
Top-level tsconfig.json (for type resolution) | .github/, .husky/, scripts/, tests |
The prepare script in package.json runs tsup && rimraf lib/{Common,Scrapers,Tests} to make sure only the bundle ships — no leftover unbundled source.