Skip to content
This repository has been archived by the owner on Nov 8, 2022. It is now read-only.

Rethink plugin versioning #276

Open
jcooklin opened this issue Jul 9, 2015 · 5 comments
Open

Rethink plugin versioning #276

jcooklin opened this issue Jul 9, 2015 · 5 comments

Comments

@jcooklin
Copy link
Collaborator

jcooklin commented Jul 9, 2015

Via @geauxvirtual

For example, this PR (#275) should have incremented the version on the plugin, and allowed us to build multiple binaries, one supporting Influx 0.9.0 and Influx 0.9.1. While it may not seem important now, there will be a day where bug fixes will need to be committed to multiple versions that shouldn’t force a customer or whoever is running Pulse to completely update a tool, such as Influx or something else for a simple fix to our tool. We should be able to provide multiple versions of plugins. This will also create an issue with using integers as the versioning for plugins.

Or, we have to provide a way to support multiple versions of third party software inside plugins. So in this instance, we would need to check which version of Influx we are writing to, and then go down the right code path for each. This would allow us to keep one binary and increment with changes, adding support for new versions.

Though one could also argue that backwards compatibility should come from the client library when we are using one. If Influx did not make the 0.9.1 client backwards compatible with the 0.9.0 client, this would throw kinks into a single binary that support multiple versions if the client library is not backwards compatible.

This software isn’t released, so it’s not that much of an issue, but wanted to bring this up for us to think about as the software marches forward to beta, rc, and then release

@lynxbat
Copy link
Contributor

lynxbat commented Jul 10, 2015

Build time versioning maybe?

@lynxbat
Copy link
Contributor

lynxbat commented Jul 10, 2015

My thoughts:

  1. Should a single plugin expose semantic versioning instead of single uint?
  2. Should version be a built time option?
  3. Should a single plugin be able to be exposed as multiple versions? (version becomes a parameter on RPC calls)

@mbbroberg
Copy link
Contributor

This issue should ultimately become a spec that outlines a solution. I'm a fan of getting this back on people's radar. cc @intelsdi-x/snap-maintainers & @intelsdi-x/plugin-maintainers

@snapbot snapbot added the tracked label Jul 9, 2016
@mbbroberg
Copy link
Contributor

@nanliu this echoes our conversation from last week. cc @bjray

@nanliu
Copy link
Contributor

nanliu commented Dec 20, 2016

To refresh on this issue, we are discussing using semver (#1429) and also taking advantage of semver to signal plugin compatibility with specific software/Snap version (see #1403).

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

No branches or pull requests

6 participants