Understanding Semantic Versioning

preview_player
Показать описание
Matthew Weier O’Phinney (Senior Product Manager, Zend by Perforce) breaks down semantic versioning, explaining the differences between major and minor software releases.

This video is from the webinar, “How to Ace OSS Lifecycle Management: Upgrades, Patches, and LTS” that took place on July 20, 2023. It was moderated by Javier Perez, Chief OSS Evangelist and Senior Director of Product Management at Perforce Software, and featured speakers Tim Carroll, Director of Product Development for OpenLogic, and Matthew Weier O’Phinney, Senior Product Manager for Zend.

- - -

About OpenLogic by Perforce:
OpenLogic offers end-to-end enterprise support for organizations using open source software in their infrastructure. With support for over 400 open source packages, guaranteed SLAs, and direct access to highly experienced Enterprise Architects, OpenLogic customers benefit from 24x7 ticket-based technical support, professional services, and training.
Follow OpenLogic on LinkedIn, Twitter, and don’t forget to subscribe to our YouTube channel for more videos on all things open source!

- - -

Transcript (lightly edited for clarity):

They don't change any existing functionality, but they allow you to adopt new features in a way that as you go forward, you can continue using those. The X is supposed to be updated only when there's backward compatibility break and backward compatibility break means to that there's something in the code that has changed that a consumer, when they try to use it, if they used it with previous signature or the previous usage examples, it will no longer work the same or it just won't work at all. In some cases, those will be removals. So, if you remove something from the API, a signature change is an example of that, if the signature changes in a way that is incompatible with the way it was previously.

So, new arguments, changing the order of arguments, changing the return value, that thing. So, those are all things that are indicative of those changes. So, typically, most projects will only bump that major version when there's something that is going to change how somebody consumes the project. So, that's usually how that goes. Now, it's not always true. It's funny with the PHP project, they do a fairly good job about keeping backwards compatibility, but most minor releases, at least from a library author's perspective, that's me, they introduce deprecations.
In production, you can turn deprecation warnings off and they don't affect your application. For a library developer, we have to keep those on because we need to adapt our code early, so that once we get to that major version, it's not going to be a problem for us to support. What we have seen is even with our customers, they quite often have the deprecation warnings on, and so they go to run their application and it breaks, because now there's a warning that is being emitted that breaks the application in some way. So, that becomes an issue for a lot of the companies that go out there. Occasionally, you'll also see feature editions that change the API in a way that wasn't intended, but it did anyway. You'll see those.

We actually do a blog post coming up on the new minor release to walk you through what are the new things, what was deprecated, if it's a major release, what was removed to help you understand that thing. But it requires you as a consumer to be proactive in going out there and getting that information. I think that where we see the bigger problem with a lot of people is a lot of people just aren't in tune with that. They're just using the language or they're using the operating system and they don't know what all the changes are. They're not interested, they just want to consume it. Then when they update, whoa, wait, everything broke, what? So it becomes a problem.

But like Tim mentioned earlier, a lot of our customers actually come to us early and they say, "Hey, we know that this version of PHP we're on is going end of life this year. Could we get some help migrating before then?" As far as I'm concerned, that's one of the ideal customers, because they're engaged and it's really nice to see those. But for those others who get caught unaware, we also have the LTS [...]
Рекомендации по теме