Skip to content
This repository was archived by the owner on Aug 29, 2024. It is now read-only.
/ web Public archive

Comments

Updates to the release strategy#82

Closed
mattcaswell wants to merge 10 commits intoopenssl:masterfrom
mattcaswell:stability-policy
Closed

Updates to the release strategy#82
mattcaswell wants to merge 10 commits intoopenssl:masterfrom
mattcaswell:stability-policy

Conversation

@mattcaswell
Copy link
Member

Remove out of date sections, and add some words about stability.

In WIP until discussion has taken place.

@mlindner
Copy link

The company I work for uses OpenSSL heavily and we're still on 1.0.2 and looking forward to moving to 1.1.1. It's going to force a lot of code rewriting but this will be cleaner code than we had anyway and cause less bugs.

I think the thing to be looking at when making breaking changes is making sure the OpenSSL team answers the question "Are all possible ways this function could be used have a drop in replacement alternative method of performing them? Ideally with little rewriting of code." If that is handled properly then there shouldn't be as much an issue with making breaking changes. Also any breaking changes that are caused should ideally cause compile time errors/warnings rather than hidden subtle breakages. Renaming functions/creating new ones is better than modifying the functionality of existing ones. In fact I'd prefer a strict "never modify functionality of documented LTS release functions, only remove/deprecate them".

@vdukhovni
Copy link

vdukhovni commented Sep 21, 2018

@mlindner The company I work for uses OpenSSL heavily and we're still on 1.0.2 and looking forward to moving to 1.1.1. It's going to force a lot of code rewriting but this will be cleaner code than we had anyway and cause less bugs.

Sure, API changes may be par for the course for a single consumer of the library willing to port a handful of products. The picture is dramatically different for OS distributions with thousands of dependent packages that need to be ported. Since we want to see reasonably rapid uptake of the latest greatest version of OpenSSL, even as we evolve the API, we need to provide much better migration paths than we did from 1.0.2 to 1.1.0. Yes, there are many improvements in 1.1.0, and yes we want users to port to the new way of doing things, but the transitions need to be much less painful, and it should be possible to "just recompile" old code and get it deployed with the new library, and then gradually port to the new way of writing the code. One can test the need for such rewrites by building against a build Configured with "no-deprecated" or definiing OPENSSL_API_COMPAT to the latest version number.

@levitte levitte mentioned this pull request Jan 12, 2019
@mattcaswell
Copy link
Member Author

New updates pushed, addressing comments so far

@mspncp
Copy link
Contributor

mspncp commented Jan 25, 2019

ping?

@mattcaswell
Copy link
Member Author

I updated this to take account of the latest feedback. Please take another look.

@mattcaswell
Copy link
Member Author

I merged the updates proposed in #104 into this PR so we can see the full picture.

@mattcaswell
Copy link
Member Author

Fixup commit pushed addressing all comments received so far with the exception of @kaduk's suggestion of a shorter time period (2 or 3 years) for the deprecation timeout than the 5 years that this text currently says. I've not seen any discussion on that point.

@mattcaswell
Copy link
Member Author

Updates pushed addressing latest feedback. BTW the latest changes imply that we cannot make any more structures opaque until we have documented them as deprecated for 5 years. Do we want to say that?

@t-j-h
Copy link
Member

t-j-h commented Feb 12, 2019

No. We don't want to be boxed in to leaving a pile of things we planned to sort out and didn't get get to for a much longer time period.

@mattcaswell
Copy link
Member Author

I added an exception for making structures opaque - so the first point now says:

"No existing public interface can be modified except where changes are unlikely to break source compatibility or where structures are made opaque."

Copy link
Member

@levitte levitte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy with this

Copy link
Member

@levitte levitte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still happy

@levitte
Copy link
Member

levitte commented Feb 20, 2019

BTW, shouldn't this be out of WIP by now?

@mattcaswell
Copy link
Member Author

BTW, shouldn't this be out of WIP by now?

Well I was leaving it in WIP until the OMC vote had concluded.

@levitte
Copy link
Member

levitte commented Feb 20, 2019

Ah ok

@mattcaswell mattcaswell changed the title WIP: Updates to the release strategy Updates to the release strategy Feb 25, 2019
@mattcaswell
Copy link
Member Author

Taken out of WIP

@mattcaswell
Copy link
Member Author

This has now been approved by the OMC. I added an additional commit to update the release date. Please can I get a reconfirmation on this?

Copy link
Member

@levitte levitte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup

@mattcaswell
Copy link
Member Author

Pushed. Thanks.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.