gorums icon indicating copy to clipboard operation
gorums copied to clipboard

List of Tasks for Gorums

Open meling opened this issue 5 years ago • 1 comments
trafficstars

List of tasks to do for Gorums:

  • [ ] 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.
  • [ ] 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; 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.
  • [ ] 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.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.

meling avatar Jul 07 '20 18:07 meling