[ ] Create Hugo-based webpage for gorums.io with content (@r0qs can help with logistics)
[ ] Project description and examples
[ ] People: Faculty, students and contributors
[ ] Publications, previous bachelor and master theses
[ ] Open bachelor and master thesis projects
[ ] Update tests to use format for functions as described here and here and where relevant use table-driven tests and the cmp package's Equal and Diff functions.
[ ] Add support for testing with -update flag for golden file (bundle??); see Advanced Testing with Go.
[ ] Implement tests for all call types, including per_node_arg. We can borrow code from here, here and here. But we should use separate proto files for each call type to avoid having to repeat code across many types; that is, not the full zorums.proto file, but one for each call type that we want to test.
[ ] Set up various CI and testing badges on GitHub, e.g. go cover testing.
[x] Remove Travis CI; no longer supports open source for free
[x] In contributor guide: describe the development environment for future students/contributors: Go plugin, markdownlinter, protobuf linter.
[x] Describe how to release a new version:
[x] the go command will soon provide: go release; currently gorelease.
[ ] #150
[x] Implement correctable and correctable streams using the stream based approach. We can make this a full issue if we need to discuss some design decisions.
[ ] Implement example that uses correctable and correctable streams
[ ] Add support for generics (.go2 files): QuorumSpec interface
[ ] We may be able to use the //go:embed directive together with embed.Files being proposed here to simplify gorums_bundle.go. Not sure it makes so much sense to move the template variables we already have into files that can then be embedded.
[ ] Update Raft and rkv to use current version of Gorums
[ ] Update CPN-based model-based testing test generator to use current version of Gorums
[ ] Update recstore to use current version of Gorums; consider to use CallAdapter interface
[ ] Update byzq/istore to use current version of Gorums; consider to use CallAdapter interface
[ ] Update/rewrite epaxos implementation to use current version of Gorums
[ ] Support for reconfiguration
[ ] Adapt quorum functions to use QuorumSpec interface
[ ] Does it make sense to use Correctables for EPaxos?
[ ] Add tests for quorum functions, since they are more complex than others
Decisions
[ ] Should we use gorums.io as vanity import path, or is github.com/relab/gorums better? Are there any drawbacks with vanity imports that we should think about? Vangen is a tool to generate the necessary stuff for vanity imports.
List of tasks to do for Gorums:
gorums.io
with content (@r0qs can help with logistics)per_node_arg
. We can borrow code from here, here and here. But we should use separate proto files for each call type to avoid having to repeat code across many types; that is, not the fullzorums.proto
file, but one for each call type that we want to test.go release
; currentlygorelease
.correctable
andcorrectable streams
using the stream based approach. We can make this a full issue if we need to discuss some design decisions.correctable
andcorrectable streams
//go:embed
directive together withembed.Files
being proposed here to simplifygorums_bundle.go
. Not sure it makes so much sense to move the template variables we already have into files that can then be embedded.(more to be added)
Documentation and Publishing
List of tasks to do for Gorums related projects:
Decisions
gorums.io
as vanity import path, or isgithub.com/relab/gorums
better? Are there any drawbacks with vanity imports that we should think about? Vangen is a tool to generate the necessary stuff for vanity imports.