Home

Awesome

paulmillr/guidelines

Development & release guidelines for noble (https://paulmillr.com/noble), scure and other packages.

Release order

Before a release, integration tests should be ran. For example, if curves depend on hashes, they should install latest commit from github and try to run tests with it.

Release order is as follows:

  1. noble-hashes, noble-ciphers, scure-base
  2. noble-curves
  3. scure-bip32, scure-bip39
  4. micro-packed, scure-btc-signer
  5. ethereum-cryptography

After that, 6. pull requests to consumers (such as ethereumjs-monorepo) can also be done.

Coding practices

Duplicated code

Some code is duplicated between packages, because it's better than adding an additional dependency.

Every time a method is changed, it should also be changed in other places.

Testing and fuzzing

TODO

New CI tasks: