Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 141 lines (87 sloc) 5.287 kb
d59b9d3 Added README file
Iulian Dragos authored
1 Migration Manager for Scala
2 ==============
3
4 A tool for diagnosing and fixing migration problems for Scala libraries.
19d93fa merged tag v0.1.0 back into master
Mirco authored
5 =======
29f22de Josh Suereth Minor cleanup
jsuereth authored
6 The Migration Manager for Scala (MiMa in short) is a tool for diagnosing and fixing binary incompatibilities for Scala libraries. The OSS version includes only
7 features which allow inspecting binary compatibility.
9871813 updated README
Mirco authored
8
9 MiMa's Modules
10 -------
11
29f22de Josh Suereth Minor cleanup
jsuereth authored
12 MiMa is split into Several modules:
9871813 updated README
Mirco authored
13
29f22de Josh Suereth Minor cleanup
jsuereth authored
14 - Core: Classes that are used for both migrations and reporting.
15 - Core-UI: UI Classes that can be re-used between the migrator and the reporter.
16 - Reporter: Raw reporting classes and the command line interface.
17 - Reporter-UI: Swing interface to the reporter.
0442b01 Josh Suereth Added usage help for SBT plugin.
jsuereth authored
18 - SBT Plugin: The SBT plugin for usage inside SBT builds.
19
20
21 SBT Plugin
22 ----------
23
24 Although not released, you can still try it out. To do so:
25
26 1. Add the following to your `project/project/build.scala` file:
27
28 import sbt._
29 object PluginDef extends Build {
30 override def projects = Seq(root)
31 lazy val root = Project("plugins", file(".")) dependsOn(mima)
32
33 lazy val mima = ProjectRef(file("/path/to/checkedout/mima"), "sbtplugin")
34 }
35
36 2. Add the following to your `build.sbt` file:
37
38 import ssol.tools.mima.plugin.MimaPlugin.{mimaDefaultSettings, previousArtifact}
39
40 seq(mimaDefaultSettings:_*))
41
42 previousArtifact := Some("com.jsuereth" % "scala-arm_2.9.1" % "1.2")
43
44 But replacing the scala-arm example with your own artifact.
45
9871813 updated README
Mirco authored
46
47 Eclipse
48 -------
49
250f358 Mirco Dotta Updated README with sbteclipse information.
dotta authored
50 In order to create Eclipse metadata files (i.e., .classpath and .project) we recomend to use [sbteclipse][sbteclipse]. Once done, to set up the three modules in Eclipse just click on `File > Import > General > Exisiting Projects Into Workspace`, and select the MiMa project's root folder, the three modules should be correctly loaded.
9871813 updated README
Mirco authored
51
29f22de Josh Suereth Minor cleanup
jsuereth authored
52 In the `reporter-ui` folders you can also find a `*.launch` file configuration, which can be imported in Eclipse and can be used to start the programs.
9871813 updated README
Mirco authored
53
d59b9d3 Added README file
Iulian Dragos authored
54
250f358 Mirco Dotta Updated README with sbteclipse information.
dotta authored
55 [sbteclipse]: https://github.com/typesafehub/sbteclipse/
56
d59b9d3 Added README file
Iulian Dragos authored
57 Build
58 -------
59
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
60 Using [the xsbt tool][xsbt].
b03f83b Added README file
Iulian Dragos authored
61
9871813 updated README
Mirco authored
62 $ xsbt clean update compile
b03f83b Added README file
Iulian Dragos authored
63
64
29f22de Josh Suereth Minor cleanup
jsuereth authored
65 Make sure to use tag 0.11.2, installation notes can be found [here][xsbt].
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
66
29f22de Josh Suereth Minor cleanup
jsuereth authored
67 [xsbt]: https://github.com/harrah/xsbt/tree/v0.11.2
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
68
9871813 updated README
Mirco authored
69 This will recompile all MiMa's modules.
35fb00b update README with Launch section
Mirco authored
70
9871813 updated README
Mirco authored
71
29f22de Josh Suereth Minor cleanup
jsuereth authored
72 Launch MiMa Reporter UI
35fb00b update README with Launch section
Mirco authored
73 -------
9871813 updated README
Mirco authored
74 Type the following command to run the MiMa Reporter
35fb00b update README with Launch section
Mirco authored
75
29f22de Josh Suereth Minor cleanup
jsuereth authored
76 $ xsbt reporter-ui/run
d59b9d3 Added README file
Iulian Dragos authored
77
29f22de Josh Suereth Minor cleanup
jsuereth authored
78 Launch MiMa Reporter CLI
9871813 updated README
Mirco authored
79 -------
29f22de Josh Suereth Minor cleanup
jsuereth authored
80 Type the following command to run the MiMa Reporter command-line
c9981b7 updated README with FAQ section
Mirco authored
81
29f22de Josh Suereth Minor cleanup
jsuereth authored
82 $ xsbt reporter/run
9871813 updated README
Mirco authored
83
84 MiMa Reporter: Functional Tests
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
85 -------
86
9871813 updated README
Mirco authored
87 The directory containing the MiMa Reporter module ('reporter') there is a 'functional-tests' folder that contains several functional tests exercising the system. All tests are executed as part of the build, therefore when running
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
88
29f22de Josh Suereth Minor cleanup
jsuereth authored
89 $ xsbt test-functional
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
90
9871813 updated README
Mirco authored
91 if one (or more) test fails the build is stop and no jar will not be produced.
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
92
05034d0 Updated Readme
Mirco authored
93 To add a new functional test to the suite, create a new folder within 'functional-tests' directory with the following structure:
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
94
95 functional-tests
96 |
05034d0 Updated Readme
Mirco authored
97 | --> <your-new-test-folder> (folder for your new test)
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
98 |
99 |-----> problems.txt (the expected list of reported errors - 1 line per error)
100 |-----> v1 (folder containing sources @ version 1)
101 |-----> v2 (folder containing sources @ version 2)
102
05034d0 Updated Readme
Mirco authored
103 After doing that, `reload` if you are in a `xsbt` console session (if that makes nosense to you, it means you are fine and you can run the test as usual).
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
104
250f358 Mirco Dotta Updated README with sbteclipse information.
dotta authored
105 Tests within the `functional-tests` folder should always pass.
05034d0 Updated Readme
Mirco authored
106
107 Note: The `problems.txt` is the test oracle. Expected errors are declared using the Mima's reporting output (i.e., the output of the tool and the expected errors should match perfectly). Admittedly, this coupling is an issue since the testing framework is highly coupled with the tool output used to report errors to the user. We should improve this and make the two independent. Until then, mind that by changing the output of the tool you will likely have to update some of the test oracles (i.e., problems.txt file).
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
108
c9981b7 updated README with FAQ section
Mirco authored
109 FAQ
110 -------
111
9dca535 Cleaned SBT Build file. Moved resources
Mirco authored
112 `java.lang.OutOfMemoryError - Java heap space:` If you are experiencing out of memory exception you may need to increase the VM arguments for the initial heap size and the maximum heap size. The default values are `-Xms64m` for for the initial heap size and `-Xmx256m` for the maximum heap size.
c9981b7 updated README with FAQ section
Mirco authored
113
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
114 Bugs and Feature requests
115 -------
d59b9d3 Added README file
Iulian Dragos authored
116
f24137b Updated README.md. Created new functional-tests. Updated sbt Build.scala...
Mirco authored
117 Use the [Assembla project page][mima-assembla] for filing new tickets.
d59b9d3 Added README file
Iulian Dragos authored
118
35fb00b update README with Launch section
Mirco authored
119 [mima-assembla]: https://www.assembla.com/spaces/mima/tickets
7d17898 Josh Suereth Added a MiMa sbt plugin. Appears to work well.
jsuereth authored
120
bd4753e Josh Suereth Adding licensing and CLA information for OSS releasing
jsuereth authored
121
122 Contributing
123 ------------
124 If you'd like to contribute to the MiMa project, please sign the [contributor's licensing agreement](http://www.typesafe.com/contribute/cla).
125
7d17898 Josh Suereth Added a MiMa sbt plugin. Appears to work well.
jsuereth authored
126 License
127 -------
bd4753e Josh Suereth Adding licensing and CLA information for OSS releasing
jsuereth authored
128 Copyright 2012 Typesafe, Inc.
129
130 Licensed under the Apache License, Version 2.0 (the "License");
131 you may not use this file except in compliance with the License.
132 You may obtain a copy of the License at
133
134 [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
7d17898 Josh Suereth Added a MiMa sbt plugin. Appears to work well.
jsuereth authored
135
bd4753e Josh Suereth Adding licensing and CLA information for OSS releasing
jsuereth authored
136 Unless required by applicable law or agreed to in writing, software
137 distributed under the License is distributed on an "AS IS" BASIS,
138 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139 See the License for the specific language governing permissions and
140 limitations under the License.
Something went wrong with that request. Please try again.