Skip to content

Be ready for Scala 3 #139

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

Closed
gaeljw opened this issue Nov 7, 2020 · 5 comments · Fixed by #182
Closed

Be ready for Scala 3 #139

gaeljw opened this issue Nov 7, 2020 · 5 comments · Fixed by #182
Assignees
Labels
🔧 build Related to build / release process
Milestone

Comments

@gaeljw
Copy link
Member

gaeljw commented Nov 7, 2020

Scala 3.x is on its way (http://dotty.epfl.ch/blog/2020/09/21/naming-schema-change.html).

Even though users of Scala 3.x projects should be able to use Cucumber Scala compiled with Scala 2.x, it would be nice if Cucumber Scala was cross compiled to Scala 3.x as well.

That being said, there is for now no support of Scala 3 with the Scala Maven plugin (davidB/scala-maven-plugin#393), thus if we want to move forward we have two options:

  • contribute to the Scala Maven plugin
  • move away from Maven and use sbt instead

I would tend to vote for the 2nd option, as AFAIK the majority of Scala libraries are built with sbt which offers way more convenience especially from cross-builiding projects to multiple versions of Scala. It could also help Scala developers contribute more easily with a known project structure instead of the "home-made" Maven structure we have for now.

But as of today we rely on Maven also for releasing the project and I don't know if we want to keep it like this or not.

💡 An intermediate step could be to still use Maven for the top level commands (build, release...) but delegate to sbt the actual build. This is something I've seen working quite well using the Exec Maven plugin.

Any thought on the topic appreciated! @mpkorstanje maybe 😉

@gaeljw gaeljw added this to the Scala 3 milestone Nov 7, 2020
@gaeljw gaeljw added 🔧 build Related to build / release process ❓ question Consider using support forums: https://cucumber.io/tools/cucumber-open/support labels Nov 7, 2020
@mpkorstanje
Copy link
Contributor

Maven is not required to build the project. However to upload to the OSS signed maven artifacts must be provided. There are ways to do this with sbt.

https://www.scala-sbt.org/1.x/docs/Using-Sonatype.html

@gaeljw
Copy link
Member Author

gaeljw commented Nov 7, 2020

Indeed, I was wondering if for consistency with Cucumber JVM it would make more sense to keep the release process much closer and thus keep Maven for the deployment to repos.

Or as long as the Makefile takes care of the necessary step, it doesn't really matter?

@mpkorstanje
Copy link
Contributor

Yup. Aslong as make release does everything in docker it doesn't matter. And I guess committing and tagging the change in version numbers to git.

@gaeljw
Copy link
Member Author

gaeljw commented Nov 15, 2020

@gaeljw gaeljw linked a pull request Feb 27, 2021 that will close this issue
@gaeljw gaeljw added 🏦 debt Tech debt and removed ❓ question Consider using support forums: https://cucumber.io/tools/cucumber-open/support 🏦 debt Tech debt labels Feb 27, 2021
@gaeljw gaeljw linked a pull request Feb 27, 2021 that will close this issue
@gaeljw gaeljw removed a link to a pull request Feb 27, 2021
@gaeljw gaeljw modified the milestones: Scala 3, 7.x Mar 7, 2021
@gaeljw gaeljw self-assigned this Mar 7, 2021
@gaeljw gaeljw mentioned this issue Mar 7, 2021
@gaeljw
Copy link
Member Author

gaeljw commented Mar 8, 2021

Mainly closed by #186

@gaeljw gaeljw closed this as completed Mar 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔧 build Related to build / release process
Projects
None yet
2 participants