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

Fix travis build #52

Closed
wants to merge 1 commit into from
Closed

Fix travis build #52

wants to merge 1 commit into from

Conversation

note
Copy link
Contributor

@note note commented Oct 28, 2019

Seems like sbt 1.3.3 changed resolution mechanism and by bumping up sbt we downgraded sshj
Downgrading sbt to 1.2.8 fixes that issue

Seems like sbt 1.3.3 changed resolution mechanism and we by bumping up sbt we downgraded sshj
Downgrading sbt to 1.2.8 fixes that issue
@@ -49,5 +50,5 @@ abstract class ScpTransferable {
def download(remotePath: String, localPath: String)(implicit l: TransferListener = defaultListener): Try[Unit] =
fileTransfer(_.download(remotePath, localPath))(l)

private def defaultListener = new LoggingTransferListener
private def defaultListener = new LoggingTransferListener(LoggerFactory.DEFAULT)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The fact that downgrading sbt caused that scala file to not compile any more is a proof that resolution mechanism has changed between sbt 1.2.8 and 1.3.3

Copy link
Owner

Choose a reason for hiding this comment

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

Yeah, this is weird.

@@ -1 +1 @@
sbt.version=1.3.3
Copy link
Owner

Choose a reason for hiding this comment

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

Well, I don't really want to downgrade to 1.2.8.
There must be a way to make things work with 1.3.3 as well...

@sirthias
Copy link
Owner

Ok, thank you for investigating, even though downgrading to 1.2.8 is not the way forward, I'm afraid. I'll look into things as well...

@sirthias
Copy link
Owner

Ok, the difference between SBT 1.2.8 and 1.3.3 comes from the former relying on Ivy, while the latter uses courier for resolution. These both appear to deal differently with certain conflicts, namely the one that our jsch.agentproxy.sshj dependency is ancient and requires sshj-0.8.1+.

In the presence of this conflict Ivy decides to put sshj-0.8.1 on the dependency classpath, while courier, for whatever reason, goes for sshj-0.10.0.
In both cases this is in addition to sshj-0.27.0.

Clearly that is not good thing in either case.

The proper solution would be to have jsch.agentproxy.sshj properly depend on a compatible sshj version. There is ticket for that (ymnk/jsch-agent-proxy#28) but I'm afraid that is not going to be closed since jsch.agentproxy.sshj is unmaintained.

So, one way would be to fork jsch.agentproxy.sshj and release a custom build under our own group id that we can then depend on.

@note
Copy link
Contributor Author

note commented Oct 29, 2019

Thanks for that write up, it explains it well.

I opened that PR so the problem is narrowed down and you have some quick fix available :)

On the long run forking jsch.agentproxy.sshj sounds like more appropriate solution. I just made a quick check and jsch.agentproxy.sshj builds and passes tests locally with sshj upgraded to 0.27.0

@ajozwik
Copy link

ajozwik commented Dec 4, 2019

Please add to build.sbt:

ThisBuild / useCoursier := false

or try sbt 1.3.4 - with issue 4688 solved

@sirthias
Copy link
Owner

Fixed by 3ee9ead.

@sirthias sirthias closed this Dec 16, 2019
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.

None yet

3 participants