-
Notifications
You must be signed in to change notification settings - Fork 3
/
ChangeLog.txt
370 lines (318 loc) · 16.6 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
SBuild 0.7.7 - 2014-12-17:
* Fixed parallel classloading, now also for the first created classloader
instance.
* Improved theading behaviour in ForkSupport.
SBuild 0.7.6 - 2014-05-31:
* Corrected parallel classloading according to Java ClassLoader spec.
* Fixed sbuild.bat script. The SBUILD_HOME environment variable is no longer
needed.
* Support for HTTP proxies in HTTP and MVN scheme handlers.
* Automatically use http_proxy environment variable if present.
SBuild 0.7.5 - 2014-04-04:
* Disabled parallel classloading in plugin classloader. This effectivly speeds
up initialization time and avoids some not that well understood linkage
errors.
* Removed doc submodule. Documentation of SBuild is in project
https://github.com/SBuild-org/site-sbuild-org.
* Various spelling typos fixed.
SBuild 0.7.4 - 2014-03-20:
SBuild Runner
* Re-enabled parallel loading of classes in project class loader which should
finally fix the deadlock issue introduced with 0.7.2. With this fix, SBuild
requires Java 7 to build, but at runtime Java 6 should be sufficient.
SBuild 0.7.3 - 2014-03-18:
SBuild Runner
* Fixed a sporadically deadlock when running parallel jobs introduced in
0.7.2.
* Fixed output of names for phony targets.
* Output of `--help` now uses the full terminal width but falls back to 80
columns if the width can not be evaluated.
SBuild 0.7.2 - 2014-03-06:
SBuild API
* ZipSchemeHandler: Added new regex parameter, to support extraction of
multiple resources based on that regex.
* Plugins can now express dependencies to other plugins with the new
PluginWithDependencies trait.
* Plugins can now react on configuration changes by implementing the
PluginConfigureAware trait. This is especially useful for meta-plugins that
want to push their own configuration to other plugins.
* Experimental: Added Plugin.postConfigure to have an very late configuration
phase, after the body of the buildscript and other plugins have been applied.
SBuild Runner
* Added new --search-targets commandline option to search for targets with a
regular expression pattern.
* This version again work with a Java 6 Runtime (0.7.0 and 0.7.1 do not).
* In --list-targets (and related) show files relative to the project directory
if possible.
SBuild 0.7.1 - 2013-12-20:
SBuild core
* Plugin API: Renamed Plugin.PluginConfigurer to Plugin.PluginHandle and
changed the configure method to support and encourage immutable plugin
configuration instances.
* Extended Plugin.PluginHandle by get and isModified methods.
* Check minimal required SBuild versions of plugins.
SBuild Addons
* ForkSupport: Changed default of parameter 'failOnError' to true in methods
runAndWait and runJavaAndWait.
* ForkSupport: Added directory parameter to runJavaAndWait.
SBuild 0.7.0 - 2013-12-06:
SBuild core and SBuild Runner
* Plugin system with isolated plugin class loading and hierarchical dependency
resolving.
* @classpath annotation not handles all entries as plugins (the JAR manifest
will be scanned for SBuild header entries). This can be disabled by adding
the prefix "raw:" to the entry.
* Extended Project API to support Plugins, mostly for internal use.
* Added Plugin trait/object to SBuild API to activate and interact with
plugins.
* Project resources (@classpath, @include) will be resolved in parallel.
* Added Logger API.
* Replaced internal SBuildLogger by SBuildMonitor API.
* Support for localized output and a partial German translation.
* Check and warn for identical module definitions in a project.
* ZipSchemeHandler: When an to-be-extracted resource already exists, but has
an older modification date than the zip file, re-extract it and set the
modification date accordingly.
* The cmdline shortcuts support is now able to also match hyphen-delimited
target names, e.g. "uS" would match "update-site".
* The project runtime classpath does include the scala library only once.
* New RichFile API with contains so filerealted methdod and can be used in
implicit conversion.
* Some API cleanups.
* New --keep-going commandline option to continue to build unaffected targets
even if some targets failed. At the end, a summary of all failed and skipped
targets is shown. This might be useful e.g. to run all test targets (in a CI
server) which otherwise might fail the build to early.
* Lock mechanism to avoid compilation of buildfiles concurrently.
* Various cleanups and package reorganizations.
* Started documentatio in AsciiDoc format.
* Added --list-plugins and --list-available-plugin commandline options to show
used and unused but available plugins.
SBuild Addons
* New TestNG addon.
* ScalaTest: Allow configuration of more than one reporter. Added new
parameters: graphicalOutputSettings, standardOutputSettings,
standardErrorSettings, outputFile, outputFileSettings, xmlOutputDir,
reporterClass, additionalScalaTestArgs. Deprecated parameter: reporter.
* ForkSupport: Added new parameters "failOnError" and "env" to
ForkSupport.runAndWait.
SBuild 0.6.0 - 2013-09-19:
* Fixed a bug in SBuildEmbedded concerning incomplete file lists for local
file dependencies.
* New ResolveFiles API to eagerly resolve dependencies, e.g. to fulfil
additional dependencies of a scheme handler.
* Changed SchemeHandler API again. Replaced the type String of the path
parameter by the new type SchemeContext. With this change, a scheme handler
is able to retrieve the effectively used scheme.
* Refactored initialization logic of ProjectTarget into Project. ProjectTarget
is now free of any SchemeHandler logic.
* Download methods of util, HttpSchemeHandler and MvnSchemeHandler set an
SBuild specific user agent. This fixed 403 Forbidden issues for some Maven
repositories (e.g. Central).
* Updated dependencies: Jansi 1.11, CmdOption 0.3.1
* Added new cmdline option --jobs, -j to configure the number of targets to run
in parallel.
* Improved error handling for parallel builds. A failed target now fails the
complete build instantly.
* Handle invalid commandline options properly.
* Better download progress (percent, content length, url) and failure handling
(resume, retry).
* Moved SBuild runner into separate project de.tototec.sbuild.runner to keep
the SBuild API as small as possible.
* Improved error messages of ScanSchemeHandler.
* Added new commandline option --repeat to let SBuild repeat an action after
a given time interval.
* Build script compiler now records scala compiler output, e.g. for later use
in IDEs. Created new scriptcompiler project.
* Added support for sequential dependencies, which will be executed
sequentially. You have to use "~~" instead of "~".
* Various internal cleanups.
SBuild 0.5.0 - 2013-07-12:
* Updated dependencies: Scala 2.10.2, Jansi 1.10.
* Added support to reference scheme handlers of other projects/modules.
* Added parameters useArgsFile, jvmArgs and sourcePath to Scalac addon.
* Added Scalac.scalaClasspath(version) classpath factory.
* Fix FileNotFoundException in execution of cacheable targets with path
separators in it's name.
* Allow to evict caches per cacheable target.
* Huge speed up in up-to-date detection algorithm.
* Added SchemeHandler.replace method to make the intend to replace a already
registered scheme handler explicit (and checked).
* New MapperSchemeHandler to translate schemes and/or pathes, to be used in
"source" and "javadoc" scheme.
* New experimental default schemes "source" and "javadoc", that will try to
provided sources and javadoc for any given dependency, e.g.
"source:mvn:a.b.1" will be translated to "mvn:a.b.1;classifier=sources"
* Fixed --fsc option.
* Fixed colored output under windows.
* Bash Completion support.
* BndJar addon creates now the target directory, if it does not exists.
* New experimental scheme handler to access 'val's and 'def's in projects in
new project de.tototec.sbuild.experimental.
* Added mechanism to locate files relative to included scala files, via
Path[Config]("path/relative/to/Config.scala").
* Removed deprecated code: IfNotUpToDate, PersistentUpToDateChecker. Their
functionality is now provided via phony cacheable targets
(Target.cacheable, Target.evictCache).
* Deprecated Pathes and added Paths object.
SBuild 0.4.0 - 2013-03-09
* Fixed --dependencyTree not showing up on when not used with --verbose.
* Added new commandline option --list-modules to show a list of all involved
modules (sub-projects).
* Based up-to-date detection of phony targets on virtual last modified time
stamps instead of boolean marker.
* Reworked preorder dependency algorithm.
* Improved internally used download function, which now handles successful
download more efficiently and does not leave temp file on download failures.
This improves all scheme handlers as well.
* Added new commandline options --check and --check-recursive to check all
defined targets for cycles and potentially missing scheme handlers. This
will also detect projects with cacheable targets, that do not define an
evictCache target.
* Added new class Module which can be used to easily create target references
to targets in that module with Module.targetRef(String) and
Module.targetRefs(String*).
* Module() and Modules() now return a Module resp. Seq[Module].
* Deprecated Module.apply(String*) as the return value differs from
Module.apply(String), which is not obvious. Use Modules.apply() instead.
* Build script compiler now emits deprecation warnings.
* SBuild now has slightly colored output based on jansi.fusesource.org, which
can be disabled with --no-color commandline option.
* Improved error reporting on the commandline.
* Added TargetContext.attachFile to attach additional files to a target. Those
files are now also included via TargetRef.files.
* TargetRef.files can now only be used inside a Target execution, and only on
dependencies that are declared in dependsOn of that executing target.
* Added TargetContext.prerequisitesLastModified to retrieve the effective
lastModified value of all declared dependencies.
* New ScanSchemeHandler, to scan a directory, based on a pattern and attach
all found files to the TargetContext. That way, one can depend on a set of
files, considering their up-to-dateness.
* New (experimental) embedded API, dedicated to SBuild embedding, e.g. in
SBuild Eclipse Plugin
* Fixed return value handling in shell wrapper, resulting in sbuild command
line application always returning 0.
* Updated German translations.
* Improved tolerance for truncated last modified time stamps of files.
* Also print the target self description when executing, if any.
* Added support for additional commandline options via environment variable
SBUILD_OPTS.
* Added new command line options --just-clean and --just-clean-recursive to
delete all .sbuild state directories (recursive) without checking and reading
any SBuild build file.
* Cache Scala compiler instance when reading projects, to improve compilation
speed for build files.
* Dramatic speedup of dependency tree traversal.
* New Javac addon.
* Support for newer bndlib in BndJar addon.
* Added method Module.apply to construct TargetRef.
* Empty phony targets now automatically attach their dependencies files to
their own target context.
SBuild 0.3.2 - 2013-01-26
* Common scheme handlers (mvn, http, zip) are now registered by default, but
can be overridden as usual.
* All by-default registered scheme handler can now be used in @classpath and
@include elements.
* Changed behavior of --version command line option. It now exists the
application as expected.
* Added new AntZipFileSet for conveniene when using AntZip.
* Added new ScalaRepl addon providing access to the interactive Scala console.
* Fixed issues in parser for @classpath and @include.
SBuild 0.3.1 - 2013-01-17
* Added ability to translate/resolve (any) target ref(s) to files.
* Changed default to not use fsc when compiling build files and added new
commandline option "--fsc" to enable fsc.
* Pathes and file dependencies pointing to symbolic links will be no longer
implicitly resolved.
* ZipSchemeHandler: Fixed up-to-date detected issue, when a ZIP entry gets
always reextracted.
* ZipSchemeHandler: Fixed bug, where extraction of files, that don't exists in
ZIP file, were silently ignored.
* New BndJar Addon to generate OSGi Bundles based on bndlib.
* Fixed Windows start script.
SBuild 0.3.0 - 2013-01-04
* SBuild is now based on Scala 2.10
* ZipSchemeHandler: Fixed issue with fail of unpacking of some zip files.
* New Scalac Addon which is independent of SBuild Scalac Runtime. Thus, it is
now possible to compile for Scala versions different than SBuild's one.
* ScalaTest Addon: Added fork option.
SBuild 0.2.0 - 2012-11-08
* A buildfile can now include other scala files. Added @include to share common
configuration and functionality.
* Added project accessor to TargetContext.
* Added --quiet command line option to suppress percentage calculation and
status messages. This will drastically speed up SBuild's initialization time
for larger multi-projects, as the dependency tree is not walked trough in
advance.
* Added arguments parameter to AntJava, as args is deprecated.
* Added more options/parameters to ScalaTest addon.
* Command line option --create-stub now tries to copy a stub from SBuild's home
directory ($SBUILD_HOME/stub/SBuild.scala) if such one exists, before using
a hardcoded one.
SBuild 0.1.5 - 2012-10-26
* Fixed NPE bug in AntCopy.
SBuild 0.1.4 - 2012-10-23
* Added parameters to AntZip Ant wrapper: compress, keepCompression, filesOnly,
fileSet, fileSets
* Added parameters to AntJar Ant wrapper: compress, keepCompression, filesOnly,
metaInf, fileSet, fileSets, manifestEntries, manifestSectionEntries, service,
services
* Added parameter to AntCopy Ant wrapper: fileSet
* Added @configuration annotation, to declare required configuration parameters
in a project
* Eclipse plugin: Fixed an problem with an incomplete project classpath that
could break loading of projects in some situations.
* Eclipse plugin: Handle errors while reading the build file and retrieving
dependencies
* Improved ZipSchemeHandler: The targetFile parameter now treats its argument
as path relative the to project directory.
* Internal changes in classpath handling. The various classpathes SBuild needs
when reading, compiling and executing projects are now read from a properties
file in the installation directory, which decouples embedded solutions like
the Eclipse Plugin and allows them to load different SBuild versions.
* Added get method to Prop object, to easily test, if an property is set.
* Eclipse plugin: Decoupled plugin version from SBuild JARs. Plugin no longer
includes core packages and load SBuild JARs from it installation directory.
* Ensure, ZipSchemeHandler does not overwrite files with same name from
different archives.
SBuild 0.1.3 - 2012-10-18
* Improved classloading for ScalaTest and JUnit addons.
* Incompatible API change: SchemeHandler can now have dependencies, when
implementing the trait SchemeHandlerWithDependencies and have access to them
through the TargetContext, which will be given as parameter into resolve
method.
* Added new ZipSchemeHandler to reference zipped resources, a typical use case
for original online dependencies like TestNG, JUnit or SWT.
* Fixed a bug, where the self-evaluated up-to-date state of phony targets was
lost causing some unnecessary executions.
SBuild 0.1.2 - 2012-10-04
* Fixed cross-project dependency resolution problem for file targets.
SBuild 0.1.1 - 2012-09-26
* SBuild now builds itself. SBuild-0.1.0 is required. :-)
* SchemeHandler API changed: Return value of resolve-method changed to
ResolveResult.
* Added new parameter forceDownload to HttpSchemeHandler.
* Improved/fixed up-to-date detection for prerequisites/dependencies from
different projects.
* Only targets defined in buildfiles will be shown with --list and
--list-recursive, implicitly create targets will be not.
* Improved error messages.
* Improved logging.
* Added new commandline option --dependency-tree to show the dependency tree
for the requested targets.
* Better cycle-detecting in target dependencies.
* Better detection, if the buildfile needs recompilation in case that different
versions of SBuild are used.
* Run SBuild JVM with more PermGemSpace to avoid OutOfMemoryErrors.
* New Eclipse Plugin that is able the provide a classpath container based on
an SBuild buildfile. Therefore the function ExportDependencies was added.
* Removed parameter dir:String from AntMkDir.
* Added parameter fileSets to AntCopy.
* Added parameter jvmArgs to AntScalac.
* Added parameter failOnError to AntJava.
* Added a lot of new parameter to AntJavac.
* Added parameter envs to AntEcec.
* Added addon ScalaTest.
* Added addon JUnit.
SBuild 0.1.0 - 2012-07-29
* Initial public release.