Winter is coming
Next week we plan to release Dotty 0.20. The plan is that this will be the last release before we go into feature freeze. Assuming our normal release cadence, this means we have another 6 weeks in which features to add or to drop can be proposed.
What does feature freeze mean?
Feature freeze means that new proposed changes should be deferred to a version after 3.0. It does not mean that the current feature set is cast in stone. Many of the language changes incorporated in Dotty still have to go through the SIP process, which includes a community review period. Depending on the feedback received and the committee’s votes, a feature might be refined, deferred, or dropped altogether. So, feature freeze means that from now on the process concentrates on “refine and reduce” instead of “expand and explore”.
Which late proposals can be considered?
In the next six weeks we can still look at proposals. However, to have a chance of being accepted, a proposal needs to be either easy to implement or already be far along in its implementation. Furthermore, it should fall into one of two categories:
A restriction that makes Scala simpler or safer. Restrictions are much harder to do than additions. That’s why we should profit from the version jump from 2 to 3 to enable them. However, a restriction cannot force a rewrite of significant amounts of existing code, unless the rewrite can be done automatically or there is some other clear and feasible migration strategy.
An addition that makes Scala simpler to learn and to use for newcomers. Typically, a feature that would be in every intro tutorial for the language.
Other proposals are of course possible, but they will be considered for a version after Scala 3.0.
How to propose a late change?
You can post here on the thread with the rough idea. For submitting a worked out proposal, use Dotty’s issue tracker.