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

Remove experimental MainAnnotation/newMain (replaced with MacroAnnotation) #19937

Merged

Conversation

nicolasstucki
Copy link
Contributor

@nicolasstucki nicolasstucki commented Mar 13, 2024

MainAnnotation and its implementation newMain predate MacroAnnotation. The MacroAnnotation is subsumed feature and allows much more flexibility. MainAnnotation and newMain could be reimplemented as a macro annotation in an external library.

See SIP-63: scala/improvement-proposals#80

When should this be removed?

As an experimental feature, we can remove it in any patch release. We have 2 options:

  1. Conservative: we wait until the next minor release to minimize the impact on anyone that was experimenting with this feature. (decided to take this approach in the Scala core meeting on the 13.03.2023)
  2. Complete: We remove it as soon as we can, next patch release of 3.4 or 3.5. We also remove it from the next 3.3 LTS patch release.

@soronpo
Copy link
Contributor

soronpo commented Mar 13, 2024

image
This is lovely 😉

@nicolasstucki nicolasstucki force-pushed the remove-experimental-MainAnnotation branch from d225068 to 7fd9f68 Compare March 13, 2024 11:03
@nicolasstucki nicolasstucki marked this pull request as ready for review March 13, 2024 14:58
@nicolasstucki nicolasstucki added the needs-minor-release This PR cannot be merged until the next minor release label Mar 13, 2024
@SethTisue
Copy link
Member

though doing it sooner would technically be fair game, removing from next minor seems fine since there's no particular gain for us to do it sooner, this code doesn't get in our way

…nnotation`)

`MainAnnotation` and its implementation `newMain` predate `MacroAnnotation`.
The `MacroAnnotation` is subsumed  feature and allows much more flexibility.
`MainAnnotation` and `newMain` could be reimplemented as a macro annotation
in an external library.

See SIP-63: scala/improvement-proposals#80
@nicolasstucki nicolasstucki force-pushed the remove-experimental-MainAnnotation branch from 7fd9f68 to ad871ee Compare March 27, 2024 14:25
@nicolasstucki nicolasstucki requested a review from odersky March 28, 2024 08:19
@odersky odersky assigned nicolasstucki and unassigned odersky Mar 28, 2024
@nicolasstucki nicolasstucki merged commit 6bb6b43 into scala:main Apr 2, 2024
19 checks passed
@nicolasstucki nicolasstucki deleted the remove-experimental-MainAnnotation branch April 2, 2024 07:05
@Kordyjan Kordyjan added this to the 3.5.0 milestone May 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-minor-release This PR cannot be merged until the next minor release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants