@@ -7,6 +7,9 @@ import com.typesafe.sbt.osgi.SbtOsgi._
7
7
import com .typesafe .sbt .SbtPgp ._
8
8
import org .scalajs .sbtplugin .ScalaJSPlugin
9
9
import org .scalajs .sbtplugin .ScalaJSPlugin .autoImport ._
10
+ import com .typesafe .tools .mima .plugin .MimaKeys .{mimaPreviousArtifacts , mimaCurrentClassfiles , mimaBinaryIssueFilters }
11
+ import com .typesafe .tools .mima .core ._
12
+ import com .typesafe .tools .mima .core .ProblemFilters ._
10
13
11
14
object ScalatestBuild extends Build {
12
15
@@ -21,7 +24,8 @@ object ScalatestBuild extends Build {
21
24
// > ++ 2.10.5
22
25
val buildScalaVersion = " 2.12.4"
23
26
24
- val releaseVersion = " 3.0.1"
27
+ val releaseVersion = " 3.1.0"
28
+ val previousReleaseVersion = " 3.0.5"
25
29
26
30
val scalacheckVersion = " 1.13.5"
27
31
val easyMockVersion = " 3.2"
@@ -31,7 +35,7 @@ object ScalatestBuild extends Build {
31
35
val junitVersion = " 4.12"
32
36
val pegdownVersion = " 1.4.2"
33
37
34
- val githubTag = " release-3.0.1 " // for scaladoc source urls
38
+ val githubTag = " release-3.1.0 " // for scaladoc source urls
35
39
36
40
val scalatestDocSourceUrl =
37
41
" https://github.com/scalatest/scalatest/tree/" + githubTag +
@@ -321,12 +325,15 @@ object ScalatestBuild extends Build {
321
325
publishLocal := {}
322
326
)
323
327
328
+ lazy val deleteJsDependenciesTask = taskKey[Unit ](" Delete JS_DEPENDENCIES" )
329
+
324
330
lazy val scalacticMacroJS = Project (" scalacticMacroJS" , file(" scalactic-macro.js" ))
325
331
.settings(sharedSettings : _* )
326
332
.settings(
327
333
projectTitle := " Scalactic Macro.js" ,
328
334
organization := " org.scalactic" ,
329
335
sourceGenerators in Compile += {
336
+ // We'll delete JS_DEPENDENCIES in scalactic-macro.js
330
337
Def .task{
331
338
GenScalacticJS .genMacroScala((sourceManaged in Compile ).value, version.value, scalaVersion.value) ++
332
339
ScalacticGenResourcesJSVM .genResources((sourceManaged in Compile ).value / " org" / " scalactic" , version.value, scalaVersion.value) ++
@@ -335,7 +342,13 @@ object ScalatestBuild extends Build {
335
342
},
336
343
// Disable publishing macros directly, included in scalactic main jar
337
344
publish := {},
338
- publishLocal := {}
345
+ publishLocal := {},
346
+ deleteJsDependenciesTask <<= (classDirectory in Compile ) map { jsDependenciesFile =>
347
+ (jsDependenciesFile/ " JS_DEPENDENCIES" ).delete()
348
+ ()
349
+ // val loader: ClassLoader = ClasspathUtilities.toLoader(classpath.map(_.data).map(_.getAbsoluteFile))
350
+ // loader.loadClass("your.class.Here").newInstance()
351
+ } triggeredBy(compile in Compile )
339
352
).enablePlugins(ScalaJSPlugin )
340
353
341
354
lazy val scalactic = Project (" scalactic" , file(" scalactic" ))
@@ -356,7 +369,9 @@ object ScalatestBuild extends Build {
356
369
// include the macro sources in the main source jar
357
370
mappings in (Compile , packageSrc) ++= mappings.in(scalacticMacro, Compile , packageSrc).value,
358
371
scalacticDocSourcesSetting,
359
- docTaskSetting
372
+ docTaskSetting,
373
+ mimaPreviousArtifacts := Set (organization.value %% name.value % previousReleaseVersion),
374
+ mimaCurrentClassfiles := (classDirectory in Compile ).value.getParentFile / (name.value + " _" + scalaBinaryVersion.value + " -" + releaseVersion + " .jar" )
360
375
).settings(osgiSettings : _* ).settings(
361
376
OsgiKeys .exportPackage := Seq (
362
377
" org.scalactic" ,
@@ -396,7 +411,13 @@ object ScalatestBuild extends Build {
396
411
Def .task {
397
412
GenScalacticJS .genResource((resourceManaged in Compile ).value, version.value, scalaVersion.value)
398
413
}.taskValue
399
- }
414
+ },
415
+ // include the macro classes and resources in the main jar
416
+ mappings in (Compile , packageBin) ++= mappings.in(scalacticMacroJS, Compile , packageBin).value,
417
+ // include the macro sources in the main source jar
418
+ mappings in (Compile , packageSrc) ++= mappings.in(scalacticMacroJS, Compile , packageSrc).value,
419
+ mimaPreviousArtifacts := Set (organization.value %%% moduleName.value % previousReleaseVersion),
420
+ mimaCurrentClassfiles := (classDirectory in Compile ).value.getParentFile / (moduleName.value + " _" + " sjs0.6_" + scalaBinaryVersion.value + " -" + releaseVersion + " .jar" )
400
421
).settings(osgiSettings : _* ).settings(
401
422
OsgiKeys .exportPackage := Seq (
402
423
" org.scalactic" ,
@@ -500,7 +521,15 @@ object ScalatestBuild extends Build {
500
521
ScalaTestGenResourcesJVM .genFailureMessages((sourceManaged in Compile ).value / " org" / " scalatest" , version.value, scalaVersion.value)
501
522
}.taskValue
502
523
},
503
- docTaskSetting
524
+ docTaskSetting,
525
+ mimaPreviousArtifacts := Set (organization.value %% name.value % previousReleaseVersion),
526
+ mimaCurrentClassfiles := (classDirectory in Compile ).value.getParentFile / (name.value + " _" + scalaBinaryVersion.value + " -" + releaseVersion + " .jar" ),
527
+ mimaBinaryIssueFilters ++= {
528
+ Seq (
529
+ exclude[MissingClassProblem ](" org.scalatest.tools.SbtCommandParser$" ),
530
+ exclude[MissingClassProblem ](" org.scalatest.tools.SbtCommandParser" )
531
+ )
532
+ }
504
533
).settings(osgiSettings : _* ).settings(
505
534
OsgiKeys .exportPackage := Seq (
506
535
" org.scalatest" ,
@@ -610,7 +639,9 @@ object ScalatestBuild extends Build {
610
639
// GenSafeStyles.genMainForScalaJS((sourceManaged in Compile).value / "org" / "scalatest", version.value, scalaVersion.value)
611
640
}.taskValue
612
641
},
613
- scalatestJSDocTaskSetting
642
+ scalatestJSDocTaskSetting,
643
+ mimaPreviousArtifacts := Set (organization.value %%% moduleName.value % previousReleaseVersion),
644
+ mimaCurrentClassfiles := (classDirectory in Compile ).value.getParentFile / (moduleName.value + " _" + " sjs0.6_" + scalaBinaryVersion.value + " -" + releaseVersion + " .jar" )
614
645
).settings(osgiSettings : _* ).settings(
615
646
OsgiKeys .exportPackage := Seq (
616
647
" org.scalatest" ,
@@ -701,7 +732,9 @@ object ScalatestBuild extends Build {
701
732
Seq .empty[File ]
702
733
}.taskValue
703
734
},
704
- unmanagedResourceDirectories in Compile += baseDirectory.value / " scalatest" / " src" / " main" / " resources"
735
+ unmanagedResourceDirectories in Compile += baseDirectory.value / " scalatest" / " src" / " main" / " resources" ,
736
+ mimaPreviousArtifacts := Set (organization.value %% name.value % previousReleaseVersion),
737
+ mimaCurrentClassfiles := (classDirectory in Compile ).value.getParentFile / (name.value + " _" + scalaBinaryVersion.value + " -" + releaseVersion + " .jar" )
705
738
).settings(osgiSettings : _* ).settings(
706
739
OsgiKeys .exportPackage := Seq (
707
740
" org.scalatest" ,
@@ -773,7 +806,9 @@ object ScalatestBuild extends Build {
773
806
(new File (crossTarget.value, " classes" )).mkdirs()
774
807
Seq .empty[File ]
775
808
}.taskValue
776
- }
809
+ },
810
+ mimaPreviousArtifacts := Set (organization.value %%% moduleName.value % previousReleaseVersion),
811
+ mimaCurrentClassfiles := (classDirectory in Compile ).value.getParentFile / (moduleName.value + " _" + " sjs0.6_" + scalaBinaryVersion.value + " -" + releaseVersion + " .jar" )
777
812
).settings(osgiSettings : _* ).settings(
778
813
OsgiKeys .exportPackage := Seq (
779
814
" org.scalatest" ,
0 commit comments