project: tests for ssb implementations
This is my idea to help get people on board working on ssb implementations.
The main idea is to present structured tasks that guide people towards expertise regards ssb.
the essential things
- incremental: a little bit of work still takes us closer.
- unifying: helps pull the various implementations together.
- neutrality: we want to avoid priveleging a particular implementation, (although out of necessity, the node.js implementation may be treated as a reference implementation, but we should move away from that)
My main idea, is test cases that can be used across implementations.
Tests should be written in a neural, language that is available everywhere.
I started some in bash
Tasks can be writing tests, or improving implementations so that they pass tests.
But implementing features that do not have test coverage does not fit into this project. There must already be a test for work to come under this project.
Even if you pass one more test, that is progress. And if you write a test that one implementation can pass, that is progress.
(we want to make a feeling of progress as easy as possible! working on new features is hard, because you either succeed or not, and you need a lot of knowledge before you can usefully contribute. So we want to frame contribution in a way that doing something is easy)
Implementors, what do you think? @cryptix @keks @aljoscha @cel
The current tests check that the output has the right hashes - so every bit is the same. This is appropiate for some things, but others should probably be relaxed a bit. Currently the tests also cover the database api - which are not really technically part of the protocol. However, there are probably some aspects of this that we'd want to have shared across implementations, or at least some implementations.
Totally open to discussions as to what features we want to have shared, and not to expect all implementations to implement everything - but to at least have these tests as a guide to tell us how compatible they are.