Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List of Tasks for Gorums #90

Open
5 of 37 tasks
meling opened this issue Jul 7, 2020 · 1 comment
Open
5 of 37 tasks

List of Tasks for Gorums #90

meling opened this issue Jul 7, 2020 · 1 comment
Assignees

Comments

@meling
Copy link
Member

meling commented Jul 7, 2020

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.
  • Remove Travis CI; no longer supports open source for free
  • In contributor guide: describe the development environment for future students/contributors: Go plugin, markdownlinter, protobuf linter.
  • Describe how to release a new version:
  • 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
Copy link
Member Author

meling commented Feb 14, 2024

Here is a few more links regarding vanity URL for gorums.io.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants