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

RFC: Release v1 #340

Closed
mlms13 opened this issue Apr 25, 2023 · 2 comments
Closed

RFC: Release v1 #340

mlms13 opened this issue Apr 25, 2023 · 2 comments
Assignees
Labels
type:discussion Discussion issues that should likely result in new actionable issues

Comments

@mlms13
Copy link
Member

mlms13 commented Apr 25, 2023

(In an attempt to also solve #329, I'm going to model this ticket after the same RFC approach that we're adopting at work.)

Overview

Relude has been relatively stable for the past several years. We've introduced very few breaking changes, and we've maintained compatibility with BuckleScript versions that are at least 3 years old at this point. In my opinion, it feels correct to mark that stability with a v1 release, especially in light of breaking changes that may be coming.

Background

There are some changes in the works (specifically #334, but potentially other upcoming features that leverage newer OCaml/Melnage language features) that will likely break compatibility with BuckleScript. Those changes feel more fitting for a "v2" release, but in order to get to "v2" we should probably mark a "v1" first.

Goals

  • Create a 1.0 release that maintains BuckleScript compatibility
  • Begin work on v2
  • Only update v1 with important bugfixes

Non-Goals

  • I don't think we need to pin down any of the specifics of what v2 will look like as part of this RFC
  • I don't think this RFC needs to extend to other relude-* libraries (e.g. parse, random, react), but we could have that conversation if it feels appropriate

Solution

  • tag the current state of the main branch as v1.0
  • push the release to npm
  • create a 1.0 branch -- we can cherry-pick important fixes and make additional 1.x releases from there if needed
  • open the main branch up for breaking changes

Alternatives

We could instead just say 0.60-whatever-the-current-version-is is the last version to support BuckleScript and call the next breaking changes 1.0. Or we could keep making 0.x releases with breaking changes, and not commit to any v1 or v2 releases. In my opinion, neither of those options accurately reflect the current state of Relude, and they also don't provide very helpful version hints to library users.

Strategy

If approved, I'm happy to own this. It should be pretty easy to do this as early as next weekend, if this is the direction we want to go.

@mlms13 mlms13 added the type:discussion Discussion issues that should likely result in new actionable issues label Apr 25, 2023
@andywhite37
Copy link
Member

This all sounds good to me!

@mlms13
Copy link
Member Author

mlms13 commented Nov 4, 2023

Upon further thought, releasing a v1 is actually kind of tricky because the tooling in v0.66 aka v1 is... painful. I wasn't able to get esy to build the project locally, so I was having a hard time testing things.

Instead I created a v1 branch, and if we're ever motivated, we can tag a release from that branch someday. But really, I think anyone who is still following this project at this point is likely more interested in a melange/dune/opam compatible version, which is what v2 is (which we'll release very soon).

@mlms13 mlms13 closed this as completed Nov 4, 2023
@mlms13 mlms13 reopened this Nov 4, 2023
@mlms13 mlms13 closed this as not planned Won't fix, can't repro, duplicate, stale Nov 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:discussion Discussion issues that should likely result in new actionable issues
Projects
None yet
Development

No branches or pull requests

2 participants