You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a question about Scala Steward's implementation.
I'm writing a dependency updating solution similar to Scala Steward, but it's pretty barebones.
My updater gets available version bumps for dependencies from sbt-updates and looks for version strings (like "1.2.3") in files like project/Settings.scala, project/Dependencies.scala, build.sbt, etc. If those version strings are unambiguous (only defined in one place, for one dependency), it updates them with simple string manipulation.
But my solution can't disambiguate between two different dependencies which happen to be on the same version (like "1.2.3"), because it's only doing a basic string-matching algorithm over the configuration source code. If dependency A is updating to "1.2.4", but dependency B is updating to "1.3.0", how is it possible to know which String, defined at which line in Settings.scala, to update?
I was wondering if Scala Steward has solved this problem, and how? Surely it doesn't compile a project and inspect build artifacts... does it do some more sophisticated analysis of the configuration files?
Any information anyone could provide would be very helpful.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I have a question about Scala Steward's implementation.
I'm writing a dependency updating solution similar to Scala Steward, but it's pretty barebones.
My updater gets available version bumps for dependencies from
sbt-updates
and looks for version strings (like"1.2.3"
) in files likeproject/Settings.scala
,project/Dependencies.scala
,build.sbt
, etc. If those version strings are unambiguous (only defined in one place, for one dependency), it updates them with simple string manipulation.But my solution can't disambiguate between two different dependencies which happen to be on the same version (like
"1.2.3"
), because it's only doing a basic string-matching algorithm over the configuration source code. If dependency A is updating to"1.2.4"
, but dependency B is updating to"1.3.0"
, how is it possible to know whichString
, defined at which line inSettings.scala
, to update?I was wondering if Scala Steward has solved this problem, and how? Surely it doesn't compile a project and inspect build artifacts... does it do some more sophisticated analysis of the configuration files?
Any information anyone could provide would be very helpful.
Beta Was this translation helpful? Give feedback.
All reactions