P.S.  I've been meaning to pass along another useful Scala ecosystem article I 
read recently [1].  Library writers are being asked to define a `ThisBuild / 
versionScheme` setting to declare a library's semantic versioning scheme (like 
Daffodil's in our case) so that sbt can issue more reliable (no false 
positives) warnings about conflicts between incompatible versions of transitive 
library dependencies.  I think we should define this setting to tell downstream 
applications which semantic versioning scheme we use for Daffodil's version 
numbers.

[1] 
https://scala-lang.org/blog/2021/02/16/preventing-version-conflicts-with-versionscheme.html

-----Original Message-----
From: Steve Lawrence <slawre...@apache.org> 
Sent: Thursday, March 4, 2021 1:10 PM
To: dev@daffodil.apache.org
Subject: EXT: Scala Steward for dependency updates?

I just stumbled across Scala Steward [1]. From their website, "Scala Steward is 
a bot that helps you keep library dependencies and sbt plugins up-to-date."

This bot periodical checks to see if there are any newer versions of 
dependencies, and if detected will create a pull request to update that 
dependency in the project/Dependencies.scala file.

I've enabled it on my fork as a test, and it just created a bunch of pull 
requests, so you can see what it looks like at my fork:

  https://github.com/stevedlawrence/daffodil/pulls

The benefit here is we can rely on this bot to keep our deps updated so we 
don't fall behind, and can rely on our GitHub actions to test if anything 
breaks for a particular dependency. So much of the process becomes automated.

Some parts are still manual, like checking that the license for the dependency 
hasn't changed, and updating the bin.NOTICE file which mentions library  
versions, so there's still some work. But it it at least automates part of the 
process.

It also has a config file if needed to do things like pin certain dependencies 
to a version if needed, configure pull request messages, etc. My fork above 
just uses the default configuration.

If we do want to enable this, all we need to do is create a pull request to add 
"apache/daffodil" to to scala steward repo's file--pretty simple change.


Thoughts?

[1] https://github.com/scala-steward-org/scala-steward

Reply via email to