-1

I have an artifact that is not used directly. These artifacts contain the server that runs users application. The API that is visible to users (i.e. to 3rd parties) is well defined in a separate library.

Now, I am doing some changes in the server. Some public methods get signature change. However, this does not reflect the user, since he does not see the changes.

I am not sure what SemVer defines in this situation. Should I

  • A) Bump the servers major version, since public method signature is changed, or
  • B) Bump minor version as this change does not affect the users of the server?

In fact, it seems that in case B the server will never get the major version increase, i.e. it would always stay at 1.x.x since the API for a user is defined in a different library (server is just an implementation of it).

How should I treat this case?

igr
  • 10,199
  • 13
  • 65
  • 111
  • are you adding new functionalities, or just doing some updates/fixes? – Sam Aug 03 '17 at 17:00
  • I would not call a functionality... It's just adding another configuration settings. But there are changes in the way how server connects to some datastore. – igr Aug 03 '17 at 17:02
  • are these changes going to break whatever system that's using this server? – Sam Aug 03 '17 at 17:05
  • That's the thing - not. From the outside, the changes are not visible. – igr Aug 03 '17 at 17:13
  • 1
    if the systems using this server not going to break or have to adapt to your changes, then you update the PATCH digit. – Sam Aug 03 '17 at 17:17
  • Isn't that a MINOR? I mean, changes are not bugfixes. – igr Aug 03 '17 at 17:21
  • 1
    It depends on how you see it! if you consider that these configuration settings that you've added/ or changes that you've made are introducing something new then bump the minor, otherwise, bump the patch. – Sam Aug 03 '17 at 17:25

1 Answers1

1

A "public method signature" change sounds like a breaking change to me. But then you say this change doesn't affect the clients. It's a bit confusing. Did you add features to the API? That's a minor bump. If you changed an existing API such that a client must be recompiled or modified in order to continue using it, then you have a major bump. The SemVer spec is quite clear that API changes require either a major or minor bump and everything else falls under the "bug fix" category.

If your change involves adding optional parameters to existing methods or accepting additional constants/enumerations to functions in a way that does not require client code to be recompiled and no behavior changes are visible to clients using the old feature set, you definitely have a minor change.

jwdonahue
  • 6,199
  • 2
  • 21
  • 43