Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add OpenSearch status report #189

Closed

Conversation

smortex
Copy link
Member

@smortex smortex commented Jun 17, 2023

No description provided.

Copy link
Member

@lsalvadore lsalvadore left a comment

Choose a reason for hiding this comment

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

Thanks for your report, I made a few inline comments.

Could you also please put one sentence per line? Thanks.

Copy link
Contributor

@igalic igalic left a comment

Choose a reason for hiding this comment

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

one sentence per line, please

@smortex
Copy link
Member Author

smortex commented Jun 17, 2023

PR updated, thanks!

The OpenSearch team may still want to fine-tune the details of the changes described here, for this reason this PR is currently a draft.

For this reason, the OpenSearch Team has recently decided to change the way we package OpenSearch.
Instead of our current scheme where we provide 2 ports, one for the latest major version (`textproc/openseach`, currently at version 2.7.0) and one for the legacy major version in maintenance mode(`textproc/openseach13`, currently at version 1.3.10), we will move to distribute each minor version as a new port (i.e. `textproc/openseach26`, `textproc/openseach27`, `textproc/openseach28` and so on).

Because upstream only provides updates for the latest major version, when a new minor version is made available and a new port is added, the previous minor version will be marked as deprecated, and the minor version before that will have an expiration date set, and will be removed at least three months later.
Copy link
Contributor

Choose a reason for hiding this comment

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

Do you mean "only provides updates for the latest minor version" here?

Copy link
Member Author

@smortex smortex Jun 18, 2023

Choose a reason for hiding this comment

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

Hum, I don't think so. But this is ambiguous…

Let me describe this with an actual example:

As of today, 1.3.10 is the last 1.x major version, and is in maintenance mode, so the next versions will be 1.3.11, 1.3.12, etc and no 1.4.0 will ever be released.

2.8.0 is the last 2.x major version. The next version should be 2.9.0, but if some critical security issue is found, a 2.8.1 can be released quickly to just fix the security issue. Then 2.9.0 will follow according to the initial schedule (unless a new critical security issue is found and fixed in 2.8.2). Once 2.9.0 is released, no more 2.8.x will be released.

I tried to rephrase the sentence but it still seems very convoluted. English not being a native language, I guess it does not help me 😄 But I hope it can help to iterate!

Suggested change
Because upstream only provides updates for the latest major version, when a new minor version is made available and a new port is added, the previous minor version will be marked as deprecated, and the minor version before that will have an expiration date set, and will be removed at least three months later.
Upstream ship new OpenSearch releases according to a public schedule.
Only the latest release of each major version is supported.
In case a critical security issue is found, it will be patched in a new patch release of that latest release of the affected major versions.
In order to ease migration, when a new minor version of OpenSearch is released and a new port is added, the port of the previous minor version will be marked deprecated, and the port of the second-to-previous minor version will have an expired date set to 3 months later.

Copy link
Contributor

Choose a reason for hiding this comment

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

As of today, 1.3.10 is the last 1.x major version, and is in maintenance mode, so the next versions will be 1.3.11, 1.3.12, etc and no 1.4.0 will ever be released.

2.8.0 is the last 2.x major version. The next version should be 2.9.0, but if some critical security issue is found, a 2.8.1 can be released quickly to just fix the security issue. Then 2.9.0 will follow according to the initial schedule (unless a new critical security issue is found and fixed in 2.8.2). Once 2.9.0 is released, no more 2.8.x will be released.

OK, this sounds like the OpenSearch major version IDs have two components (1.3 or 2.8), not just one (1 or 2) as I thought. Is that correct?

Copy link
Member Author

Choose a reason for hiding this comment

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

They are supposed to follow semver, so I think it makes more sense to stick to the semver MAJOR.MINOR.PATCH scheme.

MAJOR version 1 is in maintenance "mode", so no new feature will get in and the MINOR component will not change, only new PATCH release will happen.

MAJOR version 2 is the current branch where new features get in and MINOR is likely to be bumped when new releases are made. We should generally see MAJOR.MINOR.0, MAJOR.MINOR.1 can happen but is unlikely while version 2 is the current one.

When version 3 will be released, version 2 will switch to maintenance mode where the PATCH component of the latest 2.MINOR.PATCH will be increased and MINOR will stay the same because no new features will come in, only bugfixes.

Co-authored-by: Pau Amma <[email protected]>
Copy link
Contributor

@pauamma pauamma left a comment

Choose a reason for hiding this comment

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

I think I get it now, thanks.

Comment on lines +16 to +20
While minor version updates are generally straightforward, some use cases make this slightly harder and require more work.
For this reason, the OpenSearch Team has recently decided to change the way we package OpenSearch.
Instead of our current scheme where we provide 2 ports, one for the latest major version (package:textproc/opensearch[], currently at version 2.8.0) and one for the legacy major version in maintenance mode(package:textproc/opensearch13[], currently at version 1.3.10), we will move to distribute each minor version as a new port (i.e. package:textproc/opensearch26[], package:textproc/opensearch27[], package:textproc/opensearch28[] and so on).

Because upstream only provides updates for the latest major version, when a new minor version is made available and a new port is added, the previous minor version will be marked as deprecated, and the minor version before that will have an expiration date set, and will be removed at least three months later.
Copy link
Member Author

@smortex smortex Jul 3, 2023

Choose a reason for hiding this comment

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

@alonsobsd reading opensearch-freebsd/freebsd-ports#1 (comment) I understand that this is not really necessary anymore and we can stick with the current scheme unless AWS does 💩 and then we would handle this with a new version-specific port?

If so, this whole PR does not have much to say to our users, and I think we can dismiss it. What do you think?

@lsalvadore
Copy link
Member

@smortex @alonsobsd : Can you please confirm if you want to submit this report, and in case you do if it is ready for commit? Thanks.

@smortex
Copy link
Member Author

smortex commented Jul 11, 2023

It looks like nobody took position in favor of a direction or another. IMHO this is status-quo, and therefore there is no need for a status report ATM. I am closing it.

Or course, if needed, we can reopen this topic in the future 😉.

Thank you all!

@smortex smortex closed this Jul 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants