-
Notifications
You must be signed in to change notification settings - Fork 150
Open
Description
Problem
For no-std / pinocchio compatibility, we have a set of breaking changes to release.
Proposed Solution
Thankfully, none of these will be as disruptive as the Pubkey v3 / Address v1 publish, since we can use the semver trick for compatibility.
Here is the order of publishing, PRs that need to land, and actions to take:
- ✅ BRANCH maintenance/v3.x
- define-syscall:
- Unify syscall definitions #364
- define-syscall: Add abort syscall #358
- define-syscall: Add bpf target #387
- ✅ publish MAJOR version
- hash:
- hash: Make crate no-std with new "atomic" feature #379
- hash: Make dependencies optional #380
- hash: Only implement Copy on feature #348
- ✅ publish MAJOR
- ✅ backport semver trick to v3, enabling "atomic" / "copy" / "decode" / "sanitize" features always
- address:
- address: Revert custom
PartialEq, addaddress_eq#377 - address: Add copy feature #343
- address: Add bpf target #389
- ✅ publish MAJOR
- ✅ backport semver trick, enabling "copy" feature always
- address: Add derive address helpers #333 anytime after
- address: Revert custom
- pubkey:
- pubkey: Make no-std compatible by enabling atomic with std #388
- ✅ publish MAJOR
backport semver-trick, enabling "atomic" on address always
- sha256-hasher:
- Add bpf target to hashers #396
- ✅ publish MINOR
- blake3-hasher:
- faster cryptography syscalls #408
- Add bpf target to hashers #396
- ✅ publish MINOR
- keccak-hasher:
- faster cryptography syscalls #408
- Add bpf target to hashers #396
- ✅ publish MINOR
- secp256k1-recover:
- faster cryptography syscalls #408
- Add bpf target to hashers #396
- ✅ publish MINOR
- ✅ instruction: minor (syscall changes)
- ✅ cpi: minor (syscall changes)
- system-interface
- ✅ publish MAJOR (new ix + no-std), shouldn't need to do anything after that, breaking change is on enum definition
After this is all done, we make sha256-hasher properly no-std, so that we can land #333.
Here are other publishes that can happen whenever:
- ✅ frozen-abi-macro: minor (no-std compat)
- ✅ commitment-config: minor (no-std compat)
- ✅ epoch-info: minor (no-std compat)
- ✅ instruction-error: minor (variant deprecation)
- ✅ short-vec: minor (serde-core compat)
- ✅ account-info: minor (no-std compat)
- ✅ sdk-ids: minor (no-std compat)
- ✅ epoch-rewards-hasher: minor (no-std compat)
- ✅ program-entrypoint: patch (no msg usage)
- ✅ sysvar-id: minor (no-std compat)
- ✅ keypair: minor (address usage)
- ✅ sysvar: minor (sysvar-get usage)
- ✅ bincode: minor (serde-core compat)
- ✅ transaction: patch (serde-core compat)
- ✅ program-log: major (new crate)
- ✅ program-log-macro: major (new crate)
- account-view: major (new crate)
- ✅ program-memory: minor (upstream compat)
cc @febo @rustopian please check my work!
rustopian, nutafrost, ANISH-SR and ifiokjr
Metadata
Metadata
Assignees
Labels
No labels