@@ -82,7 +82,7 @@ In your `project/plugins.sbt` file, add the GitHub Packages resolver and the plu
8282// GitHub Packages resolver for sbt-ossuminc
8383resolvers += " GitHub Packages" at " https://maven.pkg.github.com/ossuminc/sbt-ossuminc"
8484
85- addSbtPlugin(" com.ossuminc" % " sbt-ossuminc" % " 1.1 .0" )
85+ addSbtPlugin(" com.ossuminc" % " sbt-ossuminc" % " 1.2 .0" )
8686```
8787
8888### ~ /sbt/1.0/github.sbt
@@ -225,15 +225,16 @@ then your commands get passed down to the sub-projects.
225225
226226For example, this:
227227
228- ``` scala
228+ ``` scala
229229lazy val riddl : Project = Root (
230230 ghRepoName = " my-project" ,
231231 ghOrgName = " my-organization" ,
232232 orgPackage = " com.my_org.my_proj" ,
233233 orgName = " My Organization" ,
234234 orgPage = url(" https://my_org.com/" ),
235- maintainerEmail = " somebody@my_org.com" ,
236- startYr = 2024 )
235+ startYr = 2024 ,
236+ projectId = " root" // Optional: customize sbt project ID (default: "root")
237+ )
237238 .configure(With .noPublishing, With .git, With .dynver)
238239 .aggregate(
239240 module0, // a sub-component of your project
@@ -412,6 +413,10 @@ These helpers take no parameters (or use all defaults):
412413* ** ` With.scalajs ` ** - Enable Scala.js compilation (default configuration)
413414* ** ` With.noMiMa ` ** - Disable binary compatibility checking
414415* ** ` With.noPublishing ` ** - Disable artifact publishing (useful for root aggregator projects)
416+ * ** ` With.ScalaJavaTime() ` ** - Add ` scala-java-time ` dependency for cross-platform ` java.time ` API
417+ * ** ` With.ClassPathJar ` ** - Use classpath JAR for packaging (reduces command line length)
418+ * ** ` With.UnmanagedJars ` ** - Use unmanaged JAR files from ` libs/ ` directory
419+ * ** ` With.ShellPrompt ` ** - Custom shell prompt showing project name, git branch, and version
415420* ** ` With.release ` ** - Enable ` sbt-release ` plugin
416421* ** ` With.resolvers ` ** - Add standard resolvers (Maven Local, JCenter, Typesafe)
417422* ** ` With.scala2 ` ** - Configure for Scala 2.13 (latest)
@@ -420,10 +425,13 @@ These helpers take no parameters (or use all defaults):
420425
421426### Publishing Helpers
422427
423- * ** ` With.GithubPublishing ` ** - Configure publishing to GitHub Packages
424- * ** ` With.SonatypePublishing ` ** - Configure publishing to Sonatype/Maven Central
428+ * ** ` With.Publishing ` ** - Configure publishing (defaults to GitHub Packages)
429+ * ** ` With.Publishing.github ` ** - Explicitly configure GitHub Packages publishing
430+ * ** ` With.Publishing.sonatype ` ** - Configure publishing to Sonatype/Maven Central
431+ * ** ` With.GithubPublishing ` ** - Alias for ` With.Publishing.github `
432+ * ** ` With.SonatypePublishing ` ** - Alias for ` With.Publishing.sonatype `
425433
426- > ** Note** : Do not combine GithubPublishing and SonatypePublishing in the same project.
434+ > ** Note** : Do not combine GitHub and Sonatype publishing in the same project.
427435
428436### Composite Helpers
429437
@@ -521,13 +529,16 @@ Configure Scala.js compilation.
521529- ** ` hasMain ` ** : Enable main module initializer
522530- ** ` forProd ` ** : Enable optimizer (production mode)
523531- ** ` withCommonJSModule ` ** : Use CommonJS modules instead of ES modules
532+ - ** ` scalaJavaTimeVersion ` ** : Override scala-java-time version (default: ` "2.6.0" ` )
533+ - ** ` scalatestVersion ` ** : Override scalatest version (default: ` "3.2.19" ` )
524534
525535``` scala
526536CrossModule (" my-ui" , " ui" )(JVM , JS )
527537 .jsConfigure(With .ScalaJS (
528538 header = " My App UI v1.0" ,
529539 hasMain = true ,
530- forProd = true
540+ forProd = true ,
541+ scalaJavaTimeVersion = " 2.6.0"
531542 ))
532543```
533544
@@ -573,12 +584,14 @@ Configure Scala Native compilation.
573584- ** ` verbose ` ** : Verbose compilation output
574585- ** ` targetTriple ` ** : Target platform triple (optional)
575586- ** ` linkOptions ` ** : Additional linker options
587+ - ** ` scalatestVersion ` ** : Override scalatest version (default: ` "3.2.19" ` )
576588
577589``` scala
578590CrossModule (" cli-tool" , " tool" )(JVM , Native )
579591 .nativeConfigure(With .Native (
580592 mode = " release" ,
581- buildTarget = " application"
593+ buildTarget = " application" ,
594+ scalatestVersion = " 3.2.19"
582595 ))
583596```
584597
@@ -684,6 +697,42 @@ DocSite(
684697)
685698```
686699
687-
700+ ## Migration Notes
701+
702+ ### Migrating from 1.1.0 to 1.2.0
703+
704+ #### Breaking Change: CrossModule Dependencies Now Opt-In
705+
706+ In 1.1.0, ` CrossModule ` automatically included testing and time dependencies. In 1.2.0, these are now opt-in for cleaner, more explicit builds.
707+
708+ ``` scala
709+ // Old (1.1.0) - dependencies were automatic
710+ CrossModule (" foo" , " bar" )(JVM , JS )
711+
712+ // New (1.2.0) - explicitly add what you need
713+ CrossModule (" foo" , " bar" )(JVM , JS )
714+ .configure(With .Scalatest ()) // Add if you need testing
715+ .configure(With .ScalaJavaTime ()) // Add if you need java.time API
716+ ```
717+
718+ #### New Helpers in 1.2.0
719+
720+ * ** ` With.Publishing ` ** - Generic publishing helper (defaults to GitHub Packages)
721+ - Use ` With.Publishing ` for default (GitHub) publishing
722+ - Use ` With.Publishing.github ` to explicitly use GitHub Packages
723+ - Use ` With.Publishing.sonatype ` for Sonatype/Maven Central
724+
725+ * ** ` With.ScalaJavaTime() ` ** - Add ` scala-java-time ` dependency for cross-platform date/time support
726+
727+ * ** ` With.ClassPathJar ` ** - Use classpath JAR to reduce command line length on Windows
728+
729+ * ** ` With.UnmanagedJars ` ** - Configure unmanaged JAR files from ` libs/ ` directory
730+
731+ * ** ` With.ShellPrompt ` ** - Custom sbt shell prompt with project, branch, and version info
732+
733+ #### Other Changes
734+
735+ * ** ` Root() ` project ID is now configurable** - Use ` projectId ` parameter to customize (default: ` "root" ` )
736+ * ** Parameterized versions** - ` With.ScalaJS() ` and ` With.Native() ` now accept version parameters to override defaults
688737
689738
0 commit comments