sbt-release icon indicating copy to clipboard operation
sbt-release copied to clipboard

Need better error messages, earlier failure

Open dwalend opened this issue 10 years ago • 0 comments

I'm getting this unhelpful message when something goes wrong. (I haven't figured out what -- local Ivy cache problems maybe? But that's not the point.) (And this might be a problem with sbt-publish. If so, sorry about the static.)

[info] Packaging /Users/dwalend/projects/ScalaGraphMinimizer/target/scala-2.11/scalagraphminimizer_2.11-0.1.1.jar ... [info] Done packaging. [trace] Stack trace suppressed: run last *:publish for the full output. error java.io.IOException: destination file exists and overwrite == false [error] Total time: 2 s, completed Sep 30, 2014 11:49:42 PM

Better, earlier error messages when something just isn't going to work would help a lot.

Another example: to reproduce this error, I have to remove local and remote git tags by hand, then try again.

The plug-in could save me a lot of time with an error message that tells me which file. I'd also value a diagnostic check early that reported all the problems it could figure out.

Thanks,

Dave

(Full stack is

last *:publish java.io.IOException: destination file exists and overwrite == false at org.apache.ivy.plugins.repository.url.URLRepository.put(URLRepository.java:75) at org.apache.ivy.plugins.repository.AbstractRepository.put(AbstractRepository.java:130) at sbt.ConvertResolver$ChecksumFriendlyURLResolver$class.put(ConvertResolver.scala:78) at sbt.ConvertResolver$PluginCapableResolver$1.put(ConvertResolver.scala:103) at org.apache.ivy.plugins.resolver.RepositoryResolver.publish(RepositoryResolver.java:216) at sbt.IvyActions$$anonfun$publish$3.apply(IvyActions.scala:287) at sbt.IvyActions$$anonfun$publish$3.apply(IvyActions.scala:286) at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772) at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47) at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771) at sbt.IvyActions$.publish(IvyActions.scala:286) at sbt.IvyActions$$anonfun$publish$1$$anonfun$apply$1.apply$mcV$sp(IvyActions.scala:113) at sbt.IvyActions$$anonfun$publish$1$$anonfun$apply$1.apply(IvyActions.scala:113) at sbt.IvyActions$$anonfun$publish$1$$anonfun$apply$1.apply(IvyActions.scala:113) at sbt.IvyActions$.withChecksums(IvyActions.scala:122) at sbt.IvyActions$.sbt$IvyActions$$withChecksums(IvyActions.scala:117) at sbt.IvyActions$$anonfun$publish$1.apply(IvyActions.scala:113) at sbt.IvyActions$$anonfun$publish$1.apply(IvyActions.scala:106) at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:147) at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:147) at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:124) at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:56) at sbt.IvySbt$$anon$3.call(Ivy.scala:64) at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:93) at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:78) at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:97) at xsbt.boot.Using$.withResource(Using.scala:10) at xsbt.boot.Using$.apply(Using.scala:9) at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58) at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48) at xsbt.boot.Locks$.apply0(Locks.scala:31) at xsbt.boot.Locks$.apply(Locks.scala:28) at sbt.IvySbt.withDefaultLogger(Ivy.scala:64) at sbt.IvySbt.withIvy(Ivy.scala:119) at sbt.IvySbt.withIvy(Ivy.scala:116) at sbt.IvySbt$Module.withModule(Ivy.scala:147) at sbt.IvyActions$.publish(IvyActions.scala:106) at sbt.Classpaths$$anonfun$publishTask$1.apply(Defaults.scala:1215) at sbt.Classpaths$$anonfun$publishTask$1.apply(Defaults.scala:1214) at scala.Function3$$anonfun$tupled$1.apply(Function3.scala:35) at scala.Function3$$anonfun$tupled$1.apply(Function3.scala:34) at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40) at sbt.std.Transform$$anon$4.work(System.scala:63) at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226) at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226) at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17) at sbt.Execute.work(Execute.scala:235) at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226) at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226) at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159) at sbt.CompletionService$$anon$2.call(CompletionService.scala:28) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) error java.io.IOException: destination file exists and overwrite == false

)

dwalend avatar Oct 01 '14 18:10 dwalend