diff --git a/COLLABORATING.md b/COLLABORATING.md new file mode 100644 index 0000000..2dd71e6 --- /dev/null +++ b/COLLABORATING.md @@ -0,0 +1,15 @@ +# a small guide to collaborating + +The approach we use is like this: + +- we create modules that solve a single problem (by modules I mean ES6 modules: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules#introducing_an_example) +- if your main goal A requires a sub goal B, create (or get it delegated to someone to create) module B +- each module exports pure functions +- pure functions should always check their inputs and either + - throw errors (when something should break, let it break) (note that it's not "if it must" but "if it should"!) + - warn developers by console.warn if something is discouraged but doesn't affect the workflow/use case +- for each class or function please add API documentation using the JSDoc format (https://github.com/jsdoc/jsdoc) + +I advise you to check out https://git.fybx.dev/fyb/zkl-kds/src/branch/main/key-derivation.js and https://git.fybx.dev/fyb/zkl-kds/src/branch/main/key.js to get an idea on how to develop modules with pure functions. + +might get updated occasionally, any questions -> [yigid](https://fybx.dev/telegram) \ No newline at end of file