sbt / sbt-dependency-graph

sbt plugin to create a dependency graph for your project
Apache License 2.0
1.25k stars 113 forks source link

Plugin doesn't work with sbt 1.3.0-RC1 #178

Closed anilkumarmyla closed 4 years ago

anilkumarmyla commented 5 years ago

Original issue filed at https://github.com/sbt/sbt/issues/4688

This plugin seems to use sbt's internal APIs which are no longer exposed in 1.3.x series. This issue is to fix the same

jrudolph commented 5 years ago

This might have already been fixed in master in #163. I'll have to check and make a new release.

jrudolph commented 5 years ago

Turns out, the immediate issue in sbt/sbt#4688 is already fixed in master but other incompatibilities still prevent sbt-dependency-graph from working correctly. I'll try to track them down and file issues in sbt, let's hope they can be fixed before 1.3.0 is released.

anilkumarmyla commented 5 years ago

thanks @jrudolph for looking into it, appreciate it

jrudolph commented 5 years ago

To set expectations, I don't have time to debug the behavior changes in sbt 1.3. From my current point, there's nothing to fix in sbt-dependency-graph master at this point. I could make a new release to get rid of the exception but the results would still be inaccurate in sbt.1.3.0-RC1 so I'm going to delay any further work here until the compatibility story of sbt 1.3 has been clarified.

anilkumarmyla commented 5 years ago

can we make a new release that gets rid of internal sbt api usage?

anilkumarmyla commented 5 years ago

@jrudolph i've tested the basic commands dependencyList, dependencyTree, whatDependsOn using the latest code on master against sbt-1.3.0-RC3 and they all work.

Can we make a new release from the code on master? version 0.9.2 is 14 commits behind master. sbt-1.3.0 is slated to release this week and we'd like basic support from this plugin rather than complete breakage

jrudolph commented 5 years ago

Released 0.10.0-RC1 which doesn't crash but the above sbt issues are still open and not completely resolved with sbt 0.13.0-RC3.

anilkumarmyla commented 5 years ago

thanks a ton!

BardurArantsson commented 5 years ago

I'm kind of surprised that this functionality doesn't exist natively in SBT. Are there major obstacles to just merging it in? (which could hopefully help resolve some of the uses-internal-api nags)

dwijnand commented 5 years ago

I've not followed sbt-dependency-graph's development closely, but from afar it seems to have stabilised. So, yes, I'd say it should be merged into sbt/sbt.

eed3si9n commented 4 years ago

See also https://github.com/coursier/coursier/issues/1375

mado-m commented 4 years ago

With sbt1.3.4, sbt support seems to have been completed. Is sbt-dependency-graph still compatible?

anilkumarmyla commented 4 years ago

@nhiguchi It does compile with sbt-1.3.4, but there are few scripted failures that need careful audit and fixes. Someone with expertise in dependency management can submit a PR to resolve these

jrudolph commented 4 years ago

Interesting, I didn't yet get to check those remaining failures. Hopefully, I find time soon.

Anil Kumar Myla notifications@github.com schrieb am Di., 10. Dez. 2019, 15:10:

@nhiguchi https://github.com/nhiguchi It does compile with sbt-1.3.4, but there are few scripted failures that need careful audit and fixes. Someone with expertise in dependency management can submit a PR to resolve these

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jrudolph/sbt-dependency-graph/issues/178?email_source=notifications&email_token=AAACNDGJ7QLNRZSG3XPL52TQX6PPHA5CNFSM4HNXRYDKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGPLOHY#issuecomment-564049695, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAACNDFQFENON5QNMDTWAHDQX6PPHANCNFSM4HNXRYDA .

alexanderkyte commented 4 years ago

It leads to

[error] sbt.librarymanagement.ResolveException: unresolved dependency: com.dwijnand#sbt-compat;1.2.6: not found

When I try to add it to a Hello World project.

dwijnand commented 4 years ago

That's weird. sbt-compat 1.2.6 is at https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.dwijnand/sbt-compat/scala_2.12/sbt_1.0/1.2.6/jars/, like it always has been. Either it's not looking in the sbt-plugin-releases repo, or it's lost the scala version (2.12) / sbt version (1.0) parts? The string output is ambiguous.

jeroentervoorde commented 4 years ago

I got the same error when i added the the plugin the a .sbt file in the wrong location (.sbt/1.0/plugins.sbt instead of .sbt/1.0/plugins/plugins.sbt)

SethTisue commented 4 years ago

it's certainly not a full substitute, but I'm adjusting somewhat to life without sbt-dependency-graph by using cs resolve -t more: https://chris-kipp.io/useful-cs-commands.html

marko-asplund commented 4 years ago

Any progress in getting sbt-dependency-graph to work with sbt v1.3?

anilkumarmyla commented 4 years ago

Any progress in getting sbt-dependency-graph to work with sbt v1.3?

There is version 0.10.0-RC1 which works with sbt v1.3, it does the job for us

SethTisue commented 4 years ago

There is version 0.10.0-RC1 which works with sbt v1.3, it does the job for us

does anyone know what the remaining issues are, then? why is this ticket still open?

perhaps it should be closed and replaced with one or more tickets documenting any remaining problems?

jatcwang commented 4 years ago

Had a look around, seems like https://github.com/sbt/sbt/issues/4707 is still open. I'll try to confirm the issue myself today. Personally I've been using 1.3.10+ with RC1 with no issues (though I don't use stuff like withMissingOk)

SethTisue commented 4 years ago

seems like sbt/sbt#4707 is still open

and with 115 thumbs 😆 😱

eed3si9n commented 4 years ago

Here's my PR to fix it - https://github.com/sbt/sbt/pull/5634

jrudolph commented 4 years ago

Thanks a lot for tackling that, @eed3si9n :+1:

The main problem is that there are a few failing tests that point to other differences in reported data. In general, there are too few tests to be sure currently. To say the plugin works with 1.3.x would mean writing and validating a bigger test suite, etc. E.g. dependencyLicenseInfo seems completely broken but there's no failing test for it.

For family reasons, I didn't have the time or energy in the last year to dig into these issues. With all the added unknowns and restrictions of current times, this won't change in the near future.

I'm sorry that I let myself become the bottleneck of any progress here. It's also unfortunate that this biggest change in recent sbt history happened during a time where I cannot react in time (wow, a year has already passed since this issue was filed). But since I cannot currently change the situation, the best would probably be to give the project in new hands. @jatcwang approached me a while ago and offered help which was much appreciated but also somewhat futile since, with me mostly out of the picture, there was no one else to coordinate with.

I guess the easiest way to get me out of the picture would be fork or migrate the project to the sbt organization and change the maven organization (and maybe the package names). Most of the new features of the recent years were contributed, so I would hope that a team could be found to care for the project in the future.

WDYT?

jatcwang commented 4 years ago

@jrudolph thanks a lot for all the work you've done already :) As you said I didn't really do much except triaging some issues and it'll having this under the sbt org umbrella will be great :+1: Seems like there are some interest in getting this into core sbt too. I think there are a few UX improvements I'd like to add before we stabilize (e.g. around tracking down where evicted deps are coming from) so having someone to collaborate with and review PRs will help

dwijnand commented 4 years ago

If you're comfortable with it, moving this (IMO) essential plugin to the sbt org would be a positive step in the right direction. I think if you add me or Eugene as admins of the repo we can transfer it into the sbt org.

I don't think it's worth the breaking change of changing groupId and package name. I think it's best to keep those things as is, and see if it can be merged into sbt/sbt.

eed3si9n commented 4 years ago

@jrudolph Thanks for all your work. I've be happy to help transition sbt-dependency-graph to sbt organization, and bring the code base into sbt/sbt.

jesinity commented 4 years ago

The dependency graph plugin is by far the most useful SBT plugin out there, and it should really be part of the SBT itself. I think we all owe @jrudolph at least one beer, I I probably I owe you much much more given how many times this plugin has helped me saving HOURS of work, transforming wild dependency trees into quiet bonsai. thank you @jrudolph for your plugin and I really would like to see this plugin as a core package of sbt itself. In the while I will keep using the 1.2.8 until this regression is not fixed :-)

jrudolph commented 4 years ago

Thanks for the support, @jatcwang, @dwijnand, @eed3si9n (and sorry for yet another delay).

If you're comfortable with it, moving this (IMO) essential plugin to the sbt org would be a positive step in the right direction. I think if you add me or Eugene as admins of the repo we can transfer it into the sbt org.

I sent invites, though not sure if anyone else than the owner can transfer a repository, let me know if I need to do it, in that case, I need enough permission in the sbt organization to create a repo there.

I don't think it's worth the breaking change of changing groupId and package name. I think it's best to keep those things as is, and see if it can be merged into sbt/sbt.

I'd be fine with that as a temporary solution if the goal is to move the functionality into sbt/sbt. If that cannot be done in a reasonable time frame (e.g. a year), I'd prefer the project to change the groupId, so the project can move out of my namespace.

Thanks also to everyone adding positive reactions here, that means a lot :)

eed3si9n commented 4 years ago

Could you give me the admin right or transfer it to eed3si9n/sbt-dependency-graph? I don't see Settings tab currently to initiate the transfer.

jfuentescpp commented 4 years ago

Hi all and thanks for such useful plugin. With so many kind words already written I can only add a simple big Thank you to @jrudolph.

Can someone clarify what is the current status of this issue? I didn't see any error for dependencyTree in a project with sbt.version=1.3.9 using 0.10.0-RC1.

I read the comment:

Released 0.10.0-RC1 which doesn't crash but the above sbt issues are still open and not completely resolved with sbt 0.13.0-RC3.

What is not resolved? Would be good to clarify this.

jrudolph commented 4 years ago

I read the comment:

Released 0.10.0-RC1 which doesn't crash but the above sbt issues are still open and not completely resolved with sbt 0.13.0-RC3.

What is not resolved? Would be good to clarify this.

It's basically still unknown. Lots of stuff works like dependencyTree and related tasks in general but it isn't clear if the results are complete or correct in most cases.

jrudolph commented 4 years ago

I toned down the note in the README to avoid further confusion.

mirelon commented 4 years ago

Just a note, there is already 1.4.0 in beta: http://eed3si9n.com/sbt-1.4.0-beta

eed3si9n commented 4 years ago

I just in-sourced sbt-dependency-graph in https://github.com/sbt/sbt/pull/5880, so I'm closing this issue. As noted by Johannes and others not all features work correctly but we can deal with them separately. Feel free to open issues under sbt/sbt.