scala / scala-library-next

backwards-binary-compatible Scala standard library additions
Apache License 2.0
67 stars 17 forks source link

Criteria/signoffs for merging PRs #52

Open SethTisue opened 3 years ago

SethTisue commented 3 years ago

We now have several PRs that seem mergeable.

But I think we should probably hold off on actually merging any PRs here until we have some kind of signoff process. It probably doesn't need to be super formal, but this repo is still pretty new and I don't want standard library additions flying in under people's radar. Where “people” means: the Scala 2 team at Lightbend; the Dotty team at EPFL; key folks at the Scala Center such as @julienrf; and the community.

Off the top of my head: how about a label that indicates that something is considered mergeable? Then every so often, we can publicize that a batch of PRs is ready for hopefully-final review/signoff.

We use to have SLIP for this, but I don't suggest we try to bring that back. The basics I suggest we need are:

I think most of the time there will be consensus or near-consensus. If some particular change ends up being sufficiently controversial that it's not clear what to do, well, I guess we can cross that bridge when we come to it :-)

julienrf commented 3 years ago

a label that indicates that something is considered mergeable

Who would set this label?

julienrf commented 3 years ago

Should we also provide a template to write issues, and require people to maintain the issue description up to date with what has been possibly discussed, so that reviewers can easily refer to the corresponding issue of a PR to understand better the addressed problem, why it is important, etc.?

som-snytt commented 1 year ago

If the bar is high for merging ("it represents the final version of future API, everyone agrees") then there will be minimal activity.

It's difficult to see beneath the amazingly ambitious and prolific contributions by Scala Steward.

Maybe what's needed is an artifact with a low bar for merging, scala-library-experimental or scala-library-visionary, which people would be using now so that the many ideas in the tickets can be vetted through experience.

Only efforts that survive that process would be promoted to -next status, and this artifact could guarantee trivial migration in Scala 3.3 or whenever that happens.

julienrf commented 1 year ago

Scala 3 provides a way to define “experimental” APIs. Those APIs don’t provide binary compatibility guarantees. I believe we should leverage that mechanism to ship APIs to the end-users without having to be 100% sure they are stable.

However, we would still need a sort of “compat” library for cross-building (like scala-collection-compat).

NthPortal commented 1 year ago

honestly, I think there are several reasons this repo never went anywhere:

som-snytt commented 1 year ago

We could just rename it scala-collection-incompat.