ondrej-smola / mesos-go-http

Go language bindings for Apache Mesos
Apache License 2.0
18 stars 3 forks source link

question: how often is Mesos version bumped? #8

Open ahaysx opened 7 years ago

ahaysx commented 7 years ago

I'm wondering what the plan is for keeping mesos-go-http in sync with the latest HTTP API version. I would be happy to contribute this but I'm not sure what is required past updating the proto files and recompiling.

ondrej-smola commented 7 years ago

My plan is to keep it updated at least with latest Mesos version supported by DC/OS. Which is 1.2 at this moment. Mesos 1.3 vote passed few days ago.

To support new version (1.3 in this example)

  1. copy updated protos from mesos v1 proto repo - mesos.proto, scheduler.proto ...
  2. sometimes manual proto update (adding gogo annotations) is required to make working with generated structs more go-friendly (see a lot of annotations in current proto files) - maybe this can be improved as this is only proto2 repo i use i things are much better in proto3
  3. (generate proto) make proto
  4. (optionaly) add new helper functions for creating proto structs
  5. based on new features we may need to add some optional parameters/logic to core components
ahaysx commented 7 years ago

Unfortunately it seems hard to contribute a 1.3 bump given the extra gogo annotations, but looks like building with proto3 is targeted for 1.4 release.

ondrej-smola commented 7 years ago

I think they just plan to update proto library ... not to use proto3 syntax. Main problem with proto2 is that for golang all scalar values are generated as pointer fields even when for example for C++ they are not (this unified in proto3). This makes working with generated code painful in my opinion so i decided to trade update complexity for better user experience.

You can update proto by opening diff window side by side - mesos cannot modify fields to keep backward compatibility so this makes this task little bit easier. You just need to keep eye on added messages and attributes.

ondrej-smola commented 7 years ago

@ahayschi made update to mesos 1.3.0 and greatly simplified proto generation/update - now it should be easy to update to new Mesos proto version.

dlsuzuki commented 6 years ago

I've inherited a scheduler project that makes use of mesos-go-http, and I'm curious as to whether there was any active interest in bringing this up to date. Our framework currently runs on DC/OS 1.11.4 (Mesos 1.5.x) and seems to work fine, but we'd be willing to put a little effort into ensuring future compatibility.

ondrej-smola commented 6 years ago

I think there should not be much work bringing this project up to date. We are running this code base for like year in multiple production systems (50+ nodes) - using this library from DC/OS 1.9 to DC/OS 1.11.4 - as it also works fine for us there was no need to update library ... but i am prepared to do so when some incompatibility/feature request arise. What we can do now is to update proto to latest (1.6.1) and add some helper functions to support new functionality. There is also WIP branch with proto 1.5.0.