gorums
gorums copied to clipboard
List of Tasks for Gorums
trafficstars
List of tasks to do for Gorums:
- [ ] Create Hugo-based webpage for
gorums.iowith 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 fullzorums.protofile, but one for each call type that we want to test. - [ ] Edit page with Research Papers using Go when new publications accepted
- [ ] 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; currentlygorelease. - [ ] #150
- [x] the go command will soon provide:
- [x] Implement
correctableandcorrectable streamsusing the stream based approach. We can make this a full issue if we need to discuss some design decisions. - [ ] Implement example that uses
correctableandcorrectable streams - [ ] Add support for generics (.go2 files): QuorumSpec interface
- [ ] We may be able to use the
//go:embeddirective together withembed.Filesbeing 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. - [ ] Maybe this templatechecker can be used; safetemplate
(more to be added)
Documentation and Publishing
- [ ] Make exercises for tutorial:
- [ ] Go, Protobuf, gRPC
- [ ] Register
- [ ] Reconfiguration
- [ ] Paxos
- [ ] Write article for ;login magazine
- [ ] grpc.io blog post to announce Gorums
List of tasks to do for Gorums related projects:
- [ ] 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.ioas vanity import path, or isgithub.com/relab/gorumsbetter? Are there any drawbacks with vanity imports that we should think about? Vangen is a tool to generate the necessary stuff for vanity imports.