You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All notable changes to this project will be documented in this file.
3
+
This file is **not** an npm product changelog. Release history for published packages:
4
4
5
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
+
-[@bloxchain/contracts](./package/CHANGELOG.md)
6
+
-[@bloxchain/sdk](./sdk/typescript/CHANGELOG.md)
7
7
8
-
## [Unreleased]
8
+
See [docs/VERSIONING.md](./docs/VERSIONING.md) for the full versioning model.
9
9
10
-
### Added
11
-
- Initial changelog automation with Release Please
12
-
- Automated release workflow via GitHub Actions
10
+
## Experimental alpha line (not documented here)
13
11
14
-
### Changed
15
-
- Version synchronization across monorepo packages
12
+
Prior npm publishes used `1.0.0-alpha.N` with dist-tag `alpha.24` for development and testing only. That line is **not** listed in the per-package changelogs.
16
13
17
-
## [1.0.0] - 2025-01-26
14
+
## Stable line
18
15
19
-
### Added
20
-
- Initial release of Bloxchain Protocol
21
-
- Core state machine engine (EngineBlox)
22
-
- Base state machine contract (BaseStateMachine)
23
-
- Secure ownership implementation (SecureOwnable)
24
-
- Dynamic RBAC system (RuntimeRBAC)
25
-
- Guard controller for execution protection
26
-
- TypeScript SDK for contract interaction
27
-
- Comprehensive test suite with fuzzing and invariant testing
28
-
- Documentation and examples
16
+
The first documented stable releases are **`1.0.0`** on dist-tag **`latest`** for both packages. On-chain `EngineBlox.VERSION` remains **`"1.0.0"`** for the v1 protocol line until a deliberate protocol version change.
29
17
30
-
### Security
31
-
- Multi-phase security operations with time-locks
32
-
- Reentrancy protection patterns
33
-
- Input validation with custom errors
34
-
- Comprehensive security testing
18
+
## Protocol version (`EngineBlox.VERSION`)
35
19
36
-
---
37
-
38
-
## Release Types
39
-
40
-
-**Major** (x.0.0): Breaking changes that require migration
41
-
-**Minor** (x.y.0): New features, backward compatible
This project uses [Conventional Commits](https://www.conventionalcommits.org/) for automated changelog generation via [Release Please](https://github.com/googleapis/release-please).
47
-
48
-
**Version Bumps** (Release Please default behavior for `node` release type):
49
-
-`feat:` New features **[Minor]** - Triggers version bump
50
-
-`feat!:` Breaking changes **[Major]** - Triggers version bump
51
-
-`fix:` Bug fixes **[Patch]** - Triggers version bump
52
-
-`BREAKING CHANGE:` in commit footer **[Major]** - Triggers version bump
53
-
54
-
**No Version Bump** (appear in changelog but don't trigger releases):
55
-
-`docs:` Documentation changes
56
-
-`style:` Code style changes (formatting, etc.)
57
-
-`refactor:` Code refactoring
58
-
-`perf:` Performance improvements
59
-
-`test:` Test additions or changes
60
-
-`chore:` Maintenance tasks
61
-
-`ci:` CI/CD changes
62
-
-`build:` Build system changes
63
-
-`revert:` Revert previous commit
64
-
65
-
**Breaking Changes:**
66
-
67
-
Breaking changes can be indicated in two ways:
68
-
1. Use `!` after the type: `feat!: change API signature`
69
-
2. Include `BREAKING CHANGE:` in the commit footer:
70
-
```text
71
-
feat(contracts): update interface
72
-
73
-
BREAKING CHANGE: The transferOwnership function now requires an additional parameter
74
-
```
75
-
76
-
**Note:** This follows Release Please's default configuration for the `node` release type, which implements the [Conventional Commits](https://www.conventionalcommits.org/) specification. Releases are only created when there are commits that trigger version bumps (`feat`, `fix`, or breaking changes). Other commit types are included in the changelog but don't trigger new releases on their own.
On-chain / EIP-712 protocol version bumps are **manual** and rare. Document them here when they occur (in addition to updating `contracts/core/lib/EngineBlox.sol` and `sdk/typescript/lib/EngineBlox.tsx`).
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+41-22Lines changed: 41 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -615,14 +615,30 @@ This project uses [Conventional Commits](https://www.conventionalcommits.org/) f
615
615
-**`build`**: Build system or external dependencies changes
616
616
-**`revert`**: Revert a previous commit
617
617
618
-
### Scope (Optional)
618
+
### Scope (recommended for publishable changes)
619
619
620
-
The scope should be the name of the package or area affected:
621
-
-`contracts`: Smart contract changes
622
-
-`sdk`: TypeScript SDK changes
623
-
-`docs`: Documentation changes
624
-
-`ci`: CI/CD changes
625
-
-`scripts`: Script changes
620
+
Use a **scope** on every commit that affects a release-managed npm package so history and Release Please attribution stay clear. Allowed scopes (enforced by commitlint): `contracts`, `sdk`, `examples`, `docs`, `ci`, `scripts`, `deps`, `release`.
621
+
622
+
| Scope | Use when you change… | Release Please package |
|**`deps`**| Dependency version bumps at root or in packages | Usually no release unless combined with `feat`/`fix` on a package path |
631
+
|**`release`**| Version manifests, release-please config, changelog policy | — |
632
+
633
+
Release Please also uses **changed file paths**. If a single commit touches both `package/` and `sdk/typescript/`, both packages may receive changelog entries when their release PRs are cut. Prefer **focused commits** per package when possible.
634
+
635
+
**Avoid** unscoped `feat:` / `fix:` on publishable paths — use `feat(contracts):` or `feat(sdk):` instead.
636
+
637
+
### Release attribution (Release Please)
638
+
639
+
-**Independent semver:**`@bloxchain/contracts` and `@bloxchain/sdk` version separately within major `1` ([docs/VERSIONING.md](./docs/VERSIONING.md)).
640
+
-**On-chain protocol**`EngineBlox.VERSION` is **not** bumped by npm patch releases; it is updated only for deliberate protocol releases.
641
+
-**Changelogs:** npm consumers should read package changelogs, not the repo root [CHANGELOG.md](./CHANGELOG.md).
626
642
627
643
### Examples
628
644
@@ -663,7 +679,7 @@ BREAKING CHANGE: The transferOwnership function now requires an additional param
663
679
664
680
### Benefits
665
681
666
-
-**Automatic changelog generation**: Your commits automatically populate the CHANGELOG.md
682
+
-**Automatic changelog generation**: Release Please updates [package/CHANGELOG.md](./package/CHANGELOG.md) and [sdk/typescript/CHANGELOG.md](./sdk/typescript/CHANGELOG.md) per publishable package (use scopes like `feat(contracts):` or `feat(sdk):`)
667
683
-**Semantic versioning**: Version bumps are determined by commit types
668
684
-**Better git history**: Clear, searchable commit history
669
685
-**Automated releases**: Release PRs are created automatically
@@ -683,26 +699,28 @@ npm run test:truffle
683
699
684
700
# Commit changes
685
701
git add .
686
-
git commit -m "feat: add new feature"
702
+
git commit -m "feat(sdk): add new feature"
687
703
688
704
# Push and create PR
689
705
git push origin feature/new-feature
690
706
```
691
707
692
708
### Release Process
693
709
694
-
Releases are **automated** using Release Please. The process works as follows:
710
+
Releases use **Release Please** on `main`, then **human npm publish** after the release line is on `main`.
711
+
712
+
1.**Merge feature/fix PRs to `main`** using scoped conventional commits (`feat(contracts):`, `fix(sdk):`, etc.).
713
+
2.**Release Please** opens one or two release PRs (`@bloxchain/contracts`, `@bloxchain/sdk`) with updated versions and per-package changelogs.
714
+
3.**Review and merge** the release PR(s) on `main`. Tags/GitHub releases are created per package.
715
+
4.**Publish to npm** (maintainers, after `main` contains the release versions) — three commands only:
716
+
717
+
```bash
718
+
npm run release:prepare # gate: protocol VERSION, build, tests
719
+
npm run publish:contracts # @bloxchain/contracts @ latest
720
+
npm run publish:sdk # @bloxchain/sdk @ latest
721
+
```
695
722
696
-
1.**Merge PRs to main**: All PRs merged to `main` are analyzed for conventional commits
697
-
2.**Automatic release PR**: Release Please creates a release PR with:
698
-
- Updated version numbers (semantic versioning based on commit types)
699
-
- Generated changelog entries
700
-
- All package versions synchronized
701
-
3.**Review and merge**: Review the release PR, ensure changelog is accurate
702
-
4.**Automatic tag and release**: When the release PR is merged:
703
-
- A git tag is created
704
-
- GitHub release is created
705
-
- Package versions are synced across monorepo
723
+
The first stable **`1.0.0`** npm publish happens **after** the versioning baseline PR is on `main`, not from long-lived feature branches. See [docs/VERSIONING.md](./docs/VERSIONING.md#publishing-stable-100-to-npm).
706
724
707
725
#### Manual Release (if needed)
708
726
@@ -713,8 +731,9 @@ If you need to create a release manually:
Copy file name to clipboardExpand all lines: SETUP.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Bloxchain Setup Guide
2
2
3
-
> **Note:** This file is legacy-oriented. For current protocol + SDK setup, prefer **[docs/getting-started.md](./docs/getting-started.md)**, **`env.example`**, and **`npm run release:prepare`** before publishing `@bloxchain/contracts` / `@bloxchain/sdk`.
3
+
> **Note:** This file is legacy-oriented. For current protocol + SDK setup, prefer **[docs/getting-started.md](./docs/getting-started.md)**, **[docs/VERSIONING.md](./docs/VERSIONING.md)** (npm vs on-chain version), **`env.example`**, and **`npm run release:prepare`** before publishing `@bloxchain/contracts` / `@bloxchain/sdk` on `main`.
0 commit comments