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

versioning #99

Closed
ongardie opened this Issue Feb 28, 2015 · 2 comments

Comments

Projects
None yet
1 participant
@ongardie
Copy link
Member

ongardie commented Feb 28, 2015

Think about what needs to be done for proper versioning, and create individual issues for those.

@ongardie ongardie modified the milestone: 1.0.0 Mar 4, 2015

@ongardie

This comment has been minimized.

Copy link
Member

ongardie commented Mar 11, 2015

I think these are the things:

interfaces:

  • client library API
  • client library ABI
  • ServerStats (not quite part of client library)
  • client examples command-line args
  • daemon command-line args
  • Storage/Tool.cc command-line args
  • init script command-line args

network:

  • TCP, port number
  • RPC::MessageSocket header
  • RPC::Protocol::RequestHeader
  • RPC::Protocol::ResponseHeader
  • ProtoBufs in Protocol/Client.proto
  • ProtoBufs in Protocol/Raft.proto
  • ServerStats ProtoBuf

disk:

  • config file
  • storage layout
  • snapshot
    • storage layout
    • header
    • sessions
    • tree node format
  • log
    • storage layout
    • metadata
    • segment format
    • entry format

ongardie added a commit that referenced this issue Mar 11, 2015

@ongardie ongardie self-assigned this Mar 18, 2015

ongardie added a commit that referenced this issue Mar 18, 2015

Document which configuration options are not part of the public API
The options excluded from the public API won't necessarily be
backwards-compatible across releases.

Towards #99: versioning

ongardie added a commit that referenced this issue Mar 18, 2015

Exclude testing callbacks from client library public API
I don't think there's much value in backwards compatibility for these,
and they rely on some of LogCabin's internals.

Towards #99: versioning

ongardie added a commit that referenced this issue Mar 23, 2015

Update help messages (usage) for all the executables
This introduces one backwards-incompatible change in the Reconfigure
program, which now requires the literal command "set" before the list of
servers. This will allow adding other command such as "add" and "remove"
to the same program later on.

Towards #99: versioning.

ongardie added a commit that referenced this issue Mar 24, 2015

Add a couple of fields to Raft.proto that might be useful later
RequestVote now returns whether the caller's log is up-to-date, and
AppendEntries now returns the recipient's last log index. These aren't
currently used, but they're needed for some extensions to Raft that we
may want to implement later.

Also renamed the opcode for INSTALL_SNAPSHOT, which was still set to the
old name of APPEND_SNAPSHOT_CHUNK.

Towards #99: versioning

ongardie added a commit that referenced this issue Mar 24, 2015

Make all ProtoBuf enum fields optional
This is needed to allow adding new enum values in the future.

Close #89: consider removing 'required' from protobuf fields

Towards #99: versioning

@ongardie ongardie assigned ongardie and unassigned ongardie Apr 10, 2015

ongardie added a commit that referenced this issue Apr 28, 2015

Update RELEASES.md
Add mention of state machine compatibility.

Towards #99: versioning
@ongardie

This comment has been minimized.

Copy link
Member

ongardie commented Apr 28, 2015

Closing this, as I think all that's left is #115: Update default config settings.

@ongardie ongardie closed this Apr 28, 2015

nhardt pushed a commit to nhardt/logcabin that referenced this issue Aug 21, 2015

nhardt pushed a commit to nhardt/logcabin that referenced this issue Aug 21, 2015

Document which configuration options are not part of the public API
The options excluded from the public API won't necessarily be
backwards-compatible across releases.

Towards logcabin#99: versioning

nhardt pushed a commit to nhardt/logcabin that referenced this issue Aug 21, 2015

Exclude testing callbacks from client library public API
I don't think there's much value in backwards compatibility for these,
and they rely on some of LogCabin's internals.

Towards logcabin#99: versioning

nhardt pushed a commit to nhardt/logcabin that referenced this issue Aug 21, 2015

Update help messages (usage) for all the executables
This introduces one backwards-incompatible change in the Reconfigure
program, which now requires the literal command "set" before the list of
servers. This will allow adding other command such as "add" and "remove"
to the same program later on.

Towards logcabin#99: versioning.

nhardt pushed a commit to nhardt/logcabin that referenced this issue Aug 21, 2015

Add a couple of fields to Raft.proto that might be useful later
RequestVote now returns whether the caller's log is up-to-date, and
AppendEntries now returns the recipient's last log index. These aren't
currently used, but they're needed for some extensions to Raft that we
may want to implement later.

Also renamed the opcode for INSTALL_SNAPSHOT, which was still set to the
old name of APPEND_SNAPSHOT_CHUNK.

Towards logcabin#99: versioning

nhardt pushed a commit to nhardt/logcabin that referenced this issue Aug 21, 2015

Make all ProtoBuf enum fields optional
This is needed to allow adding new enum values in the future.

Close logcabin#89: consider removing 'required' from protobuf fields

Towards logcabin#99: versioning

nhardt pushed a commit to nhardt/logcabin that referenced this issue Aug 21, 2015

Update RELEASES.md
Add mention of state machine compatibility.

Towards logcabin#99: versioning
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment