What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Hello guys, Spryker follows SemVer. So we change non-API method signatures and behaviors in minor re

Denis Turkov
Denis Turkov VP Architecture Sprykee Posts: 39 🏛 - Council (mod)

Hello guys,
Spryker follows SemVer. So we change non-API method signatures and behaviors in minor releases. With this, we evolve modules and extend functionalities in a healthy consistent way.
At the same time when a module has been extended on the project side, taking minors could bring unexpected migration efforts you are not ready to take atm.
To make such updates visible we recommend to constraint customized/extended modules with tilde ~ in your project composer.

We would like to help with this and today we released a little tool "Module Constrainer" which identifies extended modules and proposes project constraints to your composer.json.
More information you can find on the Doc https://documentation.spryker.com/guidelines/using-composer-constraint.htm

Happy coding!

Comments

  • UKTSRTD5M
    UKTSRTD5M Posts: 77 🧑🏻‍🚀 - Cadet

    Hi Denis, as you explicitly encourage us to override behavior on project level, why don't you assign major versions in case of such changes? Imho these are the part of your exposed api...

  • Denis Turkov
    Denis Turkov VP Architecture Sprykee Posts: 39 🏛 - Council (mod)
    edited August 2019

    Hey Georg,
    Thank you for the question!

    Following SemVer we set up the definition of public API which is also a BC-promise (https://documentation.spryker.com/api/definition-api.htm). Changes in API cause a major release. Here you can find more info on the Spryker release types https://documentation.spryker.com/guidelines/major-minor-patch-release.htm.

    However changes in non-API do not trigger a major release, but could still have impacts on the project side. We want to improve this situation with SemVer specs by providing additional supporting tools.