Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upAdd support for Scala 2.13 #298
Comments
jpsacha
commented
Feb 23, 2019
•
|
This comment has been minimized.
This comment has been minimized.
scala-collection-compat should help with converting custom collections to new 2.13 collections API. The ReadMe for the project describes migration tool that may help in converting current ScalaFX code. |
This comment has been minimized.
This comment has been minimized.
Would you release a new build of ScalaFX 8 with Scala 2.13 support? I might help with this, but I'm reluctant to add a Java 12 requirement for my most important use case. I'm more likely to proceed with a private fork if ScalaFX 8 + Scala 2.13 is not coming. |
This comment has been minimized.
This comment has been minimized.
@sarahgerweck ScalaFX 8 and Scala 2.12 are two separate issues. ScalaFX 8 (Scala 2.12, 2.11) build is relatively easy, it just needs help with preparing and testing the build with some possible backporting of recent changes from the master branch. If you can do it, I will publish the build. Support for Scala 2.13 is more difficult. There are very significant changes to the collections library. Significant amount of work is needed to rewrite custom ScalaFX collection to work with Scala 2.13. Help is definitely needed here. After looking at this for a while, I think that the best is to do full clean rewrite of ScalaFX collections implementation using the new Scala 2.13 collections. Suggestions and help with doing this are very welcomed. |
This comment has been minimized.
This comment has been minimized.
I can't make any promises right now, but I may be able to help with the Scala 2.13 port. (I've ported another library and have done some prototyping at what a 2.13 ScalaFX fork might look like, so I have a decent picture of what's required.) If I were to go down the road of a Scala 2.13 port, how confident are you that the existing collections test suites cover the existing functionality well? I'm sure some tweaks would be required, but if there's already a pretty good test suite, that makes this a smaller project than if tests need to be developed from scratch. (It looks like there are reasonably good tests, but I haven't gone through them in detail.) |
This comment has been minimized.
This comment has been minimized.
Oops, sorry I missed your last sentence about the JavaFX 8 backport. Ignore the first paragraph above. |
This comment has been minimized.
This comment has been minimized.
There is a good number of tests for the collections. There are also demo projects, like ProScalaFX, that can be used to test. The bulk of the current collections code would be the same. The inheritance and traits in implementation will need to be changed to match the new design of Scala 2.13 collections. There will need to be some deprecations or removal in the API to match Scala 2.13. By "clean rewrite" above I ment sticking to the new Scala 2.13 philosophy of collections, removing things that do not much. |
All test in ObservableBufferSpec pass with Scala 2.13. No support for building Scala 2.12. Many other files using collections do not compile due to changes in Scala 2.13 and have to be manually excluded from compilation.
No support for building Scala 2.12. Many other files using collections do not compile yet due to changes in Scala 2.13 and have to be manually excluded from compilation.
No support for building Scala 2.12. Many other files using collections do not compile yet due to changes in Scala 2.13 and have to be manually excluded from compilation.
No support for building Scala 2.12. Many other files using collections do not compile yet due to changes in Scala 2.13 and have to be manually excluded from compilation.
No support for building Scala 2.12. Many other files using collections do not compile yet due to changes in Scala 2.13 and have to be manually excluded from compilation.
scala.Seq is now immutable requiring wrapping results in immutable.Seq Main code should now compile. Compilation of some tests fails due to issues with ScalaTest. What compiles is passing tests.
Main code should now compile. Compilation of some tests fails due to issues with ScalaTest. What compiles is passing tests.
scala.Seq is now immutable requiring wrapping results in immutable.Seq Also some style corrections. Main code should now compile. Compilation of some tests fails due to issues with ScalaTest. What compiles is passing tests.
This should fix errors like: Error:(39, 7) illegal trait super target found for method withFixture required by trait RunOnApplicationThread; found : protected def withFixture: ((test: _1.NoArgTest)org.scalatest.Outcome) forSome { val _1: [T]scalafx.scene.chart.AxisSpec[T] } in trait TestSuite; expected: protected def withFixture: ((test: _1.NoArgTest)org.scalatest.Outcome) forSome { val _1: [T]scalafx.scene.chart.AxisSpec[T] } in trait TestSuiteMixin class AxisSpec[T]
This comment has been minimized.
This comment has been minimized.
@jpsacha |
This comment has been minimized.
This comment has been minimized.
All things compile and tests are now passing, including Travis CI. Snapshot release is published as |
This comment has been minimized.
This comment has been minimized.
Scala 2.13 support is working. |