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

Update scala 2.12 to 2.12.13 #445

Merged
merged 1 commit into from
Jan 16, 2021
Merged

Update scala 2.12 to 2.12.13 #445

merged 1 commit into from
Jan 16, 2021

Conversation

tgodzik
Copy link
Contributor

@tgodzik tgodzik commented Jan 15, 2021

It seems that we are once again hit by:

[error] (run-main-0) java.lang.NoClassDefFoundError: scala/tools/nsc/reporters/AbstractReporter
[error] java.lang.NoClassDefFoundError: scala/tools/nsc/reporters/AbstractReporter
[error]         at java.lang.ClassLoader.defineClass1(Native Method)
[error]         at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
[error]         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[error]         at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
[error]         at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
[error]         at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
[error]         at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
[error]         at java.security.AccessController.doPrivileged(Native Method)
[error]         at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
[error] Caused by: java.lang.ClassNotFoundException: scala.tools.nsc.reporters.AbstractReporter
[error]         at java.net.URLClassLoader.findClass(URLClassLoader.java:382)

which is similar to #195

I updated the version to 2.12.13 as was the case in the previous issue. Needed for scalameta/metals#2383

It seems that we are once again hit by:
```
[error] (run-main-0) java.lang.NoClassDefFoundError: scala/tools/nsc/reporters/AbstractReporter
[error] java.lang.NoClassDefFoundError: scala/tools/nsc/reporters/AbstractReporter
[error]         at java.lang.ClassLoader.defineClass1(Native Method)
[error]         at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
[error]         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
[error]         at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
[error]         at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
[error]         at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
[error]         at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
[error]         at java.security.AccessController.doPrivileged(Native Method)
[error]         at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
[error] Caused by: java.lang.ClassNotFoundException: scala.tools.nsc.reporters.AbstractReporter
[error]         at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
```

which is similar to scalameta#195

I updated the version to 2.12.13 as was the case in the previous issue.
Copy link
Member

@olafurpg olafurpg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this change break binary compatibility with 2.12.12? Previously, mdoc used to be version against the compiler but the markdown processing code barely touched the compiler APIs so I change it to be version with the library instead. It’s a shame this change happened so late in 2.12.x series. Do you think mdoc needs to become versioned against the compiler again? Given mdoc is already on a critical path for Metals it’s maybe not so bad to version against the compiler instead of the library 🤔

LGTM feel free to merge. Just thinking out loud

@tgodzik
Copy link
Contributor Author

tgodzik commented Jan 16, 2021

Does this change break binary compatibility with 2.12.12? Previously, mdoc used to be version against the compiler but the markdown processing code barely touched the compiler APIs so I change it to be version with the library instead. It’s a shame this change happened so late in 2.12.x series. Do you think mdoc needs to become versioned against the compiler again? Given mdoc is already on a critical path for Metals it’s maybe not so bad to version against the compiler instead of the library

It does break the binary compatibility unfortunately :/ It's the same change that caused it for 2.13.1. Should we release a 3.0.0 version after merging it? OR would you rather start releasing per compiler versions?

@tgodzik tgodzik merged commit 292e363 into scalameta:master Jan 16, 2021
@tgodzik tgodzik deleted the fix-mdoc branch January 16, 2021 21:08
@olafurpg
Copy link
Member

I suspect most people consume mdoc via the sbt plugin so they won’t have issue if mdoc starts versioning against the compiler. It’s not great to break compatibility with all of 2.12.x series excluding 2.12.13+

@olafurpg
Copy link
Member

I wonder if it’s possible to keep publishing a library versioned artifact that’s an alias to the latest 🤔 that might give the best of both worlds, although I haven’t seen any library do this before.

@tgodzik
Copy link
Contributor Author

tgodzik commented Jan 17, 2021

I suspect most people consume mdoc via the sbt plugin so they won’t have issue if mdoc starts versioning against the compiler. It’s not great to break compatibility with all of 2.12.x series excluding 2.12.13+

I will create a follow up today.

I wonder if it’s possible to keep publishing a library versioned artifact that’s an alias to the latest 🤔 that might give the best of both worlds, although I haven’t seen any library do this before.

It's probably possible, but I am worried it may break some things as tools don't really expect this to be the case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants