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

Switch to original Apache Ivy #28

Open
twogee opened this issue Mar 21, 2018 · 5 comments
Open

Switch to original Apache Ivy #28

twogee opened this issue Mar 21, 2018 · 5 comments
Labels
uncategorized Used for Waffle integration

Comments

@twogee
Copy link

twogee commented Mar 21, 2018

Would you consider switching to Apache Ivy if we would graft easyant-integration, 2.3.x-sbt and 2.4.x-sbt branches?

@eed3si9n
Copy link
Member

Are you suggesting that sbt uses Apache Ivy repository (https://svn.apache.org/repos/asf/ant/ivy/core/) and continue the unofficial fork? Is the motivation to avoid duplication of development (for example to adopt to JDK 9/10)?

@twogee
Copy link
Author

twogee commented Mar 22, 2018

The fork appeared because EasyAnt project has created a clone of Ivy SVN repo in GitHub. Meanwhile, Ant project (which Ivy is a part of) converted to Git (https://git.apache.org/ant-ivy.git/) a couple of years ago. All Apache Git repos are cloned at GitHub, inclusive Ivy (https://github.com/apache/ant-ivy). Since Ant project has been discussing a new release of Ivy (tentatively called 2.5.0), maybe there's a chance to merge the development history. We would appreciate your input choosing the baseline for the next release. The current plan is to release 2.5.0 for Java 7 and target Java 8 for next release in order to align the development with Ant.

@eed3si9n
Copy link
Member

sbt uses a fork off of 2.3.x apache/ant-ivy@a83df76, which we call 2.3.x-sbt.
In sbt 1.x, library management feature is modularized in librarymanagement repo (LM API) - https://github.com/sbt/librarymanagement/blob/v1.1.3/project/Dependencies.scala#L43
At the time when I started patching 2.3.x in 2014 I tried 2.4.x, but it wasn't quite stable. There's been a handful of people interested in 2.4.x (sbt/sbt#1920, sbt/sbt#3976) but 2.3.x has been working mostly ok.

I should probably note that there are overwhelming number of people who want to switch the library management implementation away from Ivy, and migrate to Scala based engine called Coursier. sbt/sbt#2997 for example has 172 likes atm. Since Coursier doesn't implement all features of Ivy, we will likely continue to depend on Ivy for a long time, but I as an sbt maintainer would like Ivy to stay as stable LM API implementation; and Coursier implementation can do the cooler things.

As per Java is concerned. I am ok with supporting Java 7 as the minimum version, but it's essential that we support Java versions 10 and 11.

@twogee
Copy link
Author

twogee commented Mar 23, 2018

Thanks for the pointer. I am aware of Coursier, and I'm fine with sbt moving to pure Scala. My intent was to understand whether it would make sense to add sbt branch to Apache Ivy in order to make it easier to port improvements.

@eed3si9n
Copy link
Member

My intent was to understand whether it would make sense to add sbt branch to Apache Ivy in order to make it easier to port improvements.

Yes, I think that makes sense.

@eed3si9n eed3si9n added the uncategorized Used for Waffle integration label Sep 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
uncategorized Used for Waffle integration
Projects
None yet
Development

No branches or pull requests

2 participants