Skip to content

Commit

Permalink
Merge pull request #582 from scalacenter/topic/prepare-rc1
Browse files Browse the repository at this point in the history
Add release notes for RC1 and use `-O` to mean optimize
  • Loading branch information
jvican authored Jul 6, 2018
2 parents c5e24b6 + 5752bba commit 8e34021
Show file tree
Hide file tree
Showing 3 changed files with 180 additions and 9 deletions.
44 changes: 37 additions & 7 deletions config/src/test/scala/bloop/config/JsonSpec.scala
Original file line number Diff line number Diff line change
@@ -1,27 +1,57 @@
package bloop.config

import java.net.URLClassLoader

import bloop.config.Config.File
import org.junit.{Assert, Test}

class JsonSpec {
def parseConfig(config: File): Unit = {
def parseConfig(jsonConfig: String): Config.File = {
import io.circe.parser
import ConfigEncoderDecoders._
val jsonConfig = toStr(config)
val parsed = parser.parse(jsonConfig).getOrElse(sys.error("error parsing"))
allDecoder.decodeJson(parsed) match {
case Right(parsedConfig) => Assert.assertEquals(parsedConfig, config)
case Right(parsedConfig) => parsedConfig
case Left(failure) => throw failure
}
}

def parseFile(config: File): Unit = {
val jsonConfig = toStr(config)
val parsedConfig = parseConfig(jsonConfig)
Assert.assertEquals(parsedConfig, config)
}

@Test def testEmptyConfigJson(): Unit = {
parseConfig(File.empty)
parseFile(File.empty)
}

@Test def testSimpleConfigJson(): Unit = {
parseConfig(File.dummyForTests)
parseFile(File.dummyForTests)
}

@Test def testIdea(): Unit = {
val jsonConfig =
"""
|{
| "version" : "1.0.0",
| "project" : {
| "name" : "",
| "directory" : "",
| "sources" : [
| ],
| "dependencies" : [
| ],
| "classpath" : [
| ],
| "out" : "",
| "classesDir" : "",
| "hello": 1,
| "iAmBinaryCompatible": [
| 1, 2, 3, 4
| ]
| }
|}
""".stripMargin
parseConfig(jsonConfig)
()
}
}
4 changes: 2 additions & 2 deletions frontend/src/main/scala/bloop/cli/Commands.scala
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ object Commands {
@ExtraName("w")
@HelpMessage("If set, run the command whenever projects' source files change.")
watch: Boolean = false,
@ExtraName("o")
@ExtraName("O")
@HelpMessage(
"If an optimizer is used (e.g. Scala Native or Scala.js), run it in `debug` or `release` mode. Defaults to `debug`.")
optimize: Option[OptimizerConfig] = None,
Expand All @@ -176,7 +176,7 @@ object Commands {
@ExtraName("w")
@HelpMessage("If set, run the command whenever projects' source files change.")
watch: Boolean = false,
@ExtraName("o")
@ExtraName("O")
@HelpMessage(
"Optimization level of the linker. Valid options: `debug` or `release` mode. Defaults to `debug`.")
optimize: Option[OptimizerConfig] = None,
Expand Down
141 changes: 141 additions & 0 deletions notes/v1.0.0-RC1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
**This milestone of Bloop includes changes to the configuration files; you'll need to re-generate
your configuration files if you used a previous version of Bloop. See the [installation
instructions][installation instructions].**

# Install the latest release :candy:

If you're on Mac OS X, upgrade to the latest version with:

```sh
$ brew install scalacenter/bloop/bloop
```

Otherwise, run:

```
$ curl -L https://github.com/scalacenter/bloop/releases/download/v1.0.0-RC1/install.py | python
```

Read the complete instructions in our [Installation page][installation instructions].


# Highlights :books:

## [Final version of the configuration format][#529] (by [Jorge Vicente Cantero][@jvican])

Check the finished configuration file format JSON Schema [here](https://github.com/scalacenter/bloop/blob/c5e24b6616d3515e9685ffb145995051b8d8a744/website/static/bloop-schema.json#L1).

The configuration file format is now considered frozen. All the release candidates will work
with the new configuration file format, meaning that upgrades to 1.0.0-RC2 will not require a
re-generation of the configuration file format.

After 1.0.0, it will be our focus to make *forward and backwards* source compatible changes in the
configuration file format so that users can painlessly upgrade to newer versions of Bloop without:

1. The need to upgrade the bloop version in their build tool integrations.
2. The need to upgrade the bloop server versions to use configuration files generated by newer build
tool integrations.

Any change to the configuration file format that breaks these invariants will go into a 2.x release.

## Features :building_construction:

### [Set the default main class](https://github.com/scalacenter/bloop/pull/551)

You can now set the default main class for Scala.js or Scala Native projects in the configuration file format.

### [Enable users to disable color](https://github.com/scalacenter/bloop/pull/555) (by [@shamsak58](https://github.com/shamsak58))

Disable colors in your logs by using the `--no-color` CLI flag or exporting the `NO_COLOR`
environment variable. [@shamsak58](https://github.com/shamsak58) was also one of our contributors in
the Scala Center spree.

## Usability improvements

### [Use `-O` as a shorthand syntax for `--optimize`](https://github.com/scalacenter/bloop/pull/582) (by [Jorge Vicente Cantero][@jvican])

Replace `-o` by `-O` as the default shorthand syntax for `--optimize` because the uppercase `O` is
traditionally used to mean optimization in a large array of tools (for example, Clang or gcc).

## Bugfixes :bug:

### [Upgrade to the latest nailgun version](https://github.com/scalacenter/bloop/pull/555) (by [Paweł Bartkiewicz][@tues])

The latest nailgun version includes [Pawel's change](https://github.com/scalacenter/nailgun/pull/7)
to flush output coming from the server ealier than before. This is important so that scripts that
use pipes can see the data as soon as possible.

### [Update systemd instructions](https://github.com/scalacenter/bloop/pull/560) (by [David Barri][@japgolly])

David has kindly updated our systemd instructions with a few improvements to make sure that the
services are always up-to-date with the latest Bloop systemd services.

### [Fix total count in test report](https://github.com/scalacenter/bloop/pull/557/files) (by [Samantha Li](https://github.com/samantha-li))

Samantha is a contributor that attended our [Scala Center
spree](https://github.com/scalacenter/sprees/blob/6dc21c0081a39ba698f808deb68017e554e5a8c3/README.md)
in New York. Samantha contributed a fix to the test reporter because the reporter was not correctly
printing the total number of executed tests.

### [Use Scala 2.10 in Maven plugin](https://github.com/scalacenter/bloop/pull/577/files) (by [Eugene Platonov](https://github.com/jozic))

The Maven plugin for Bloop now uses Scala 2.10 to avoid a conflict with the Scala 2.10 jars coming
from the [`scala-maven-plugin`](https://github.com/davidB/scala-maven-plugin/) dependency.

## Contributors :busts_in_silhouette:

According to `git shortlog -sn --no-merges v1.0.0-M11..1.0.0-RC1`, 8 people contributed to this
release: Jorge Vicente Cantero, Tim NIeradzik, David Barri, Eugene Platonov, Martin Duhem, Samantha
Li, Sean Sullivan and shamsak58.

Thank you to the community behind Bloop :sparkles:!

[installation instructions]: https://scalacenter.github.io/bloop/docs/installation
[configuration]: https://scalacenter.github.io/bloop/docs/configuration-format/

[#540]: https://github.com/scalacenter/bloop/pull/540
[#538]: https://github.com/scalacenter/bloop/pull/538
[#537]: https://github.com/scalacenter/bloop/pull/537
[#532]: https://github.com/scalacenter/bloop/pull/532
[#535]: https://github.com/scalacenter/bloop/pull/535
[#530]: https://github.com/scalacenter/bloop/pull/530
[#529]: https://github.com/scalacenter/bloop/pull/529
[#528]: https://github.com/scalacenter/bloop/pull/528
[#527]: https://github.com/scalacenter/bloop/pull/527
[#526]: https://github.com/scalacenter/bloop/pull/526
[#457]: https://github.com/scalacenter/bloop/pull/457
[#525]: https://github.com/scalacenter/bloop/pull/525
[#524]: https://github.com/scalacenter/bloop/pull/524
[#523]: https://github.com/scalacenter/bloop/pull/523
[#521]: https://github.com/scalacenter/bloop/pull/521
[#513]: https://github.com/scalacenter/bloop/pull/513
[#517]: https://github.com/scalacenter/bloop/pull/517
[#512]: https://github.com/scalacenter/bloop/pull/512
[#511]: https://github.com/scalacenter/bloop/pull/511
[#479]: https://github.com/scalacenter/bloop/pull/479
[#499]: https://github.com/scalacenter/bloop/pull/499
[#509]: https://github.com/scalacenter/bloop/pull/509
[#502]: https://github.com/scalacenter/bloop/pull/502
[#503]: https://github.com/scalacenter/bloop/pull/503
[#495]: https://github.com/scalacenter/bloop/pull/495
[#494]: https://github.com/scalacenter/bloop/pull/494
[#489]: https://github.com/scalacenter/bloop/pull/489
[#488]: https://github.com/scalacenter/bloop/pull/488
[#487]: https://github.com/scalacenter/bloop/pull/487
[#486]: https://github.com/scalacenter/bloop/pull/486

[scala-native-pr-1234]: https://github.com/scala-native/scala-native/pull/1234
[nuprocess]: https://github.com/brettwooldridge/NuProcess

[@asamsig]: https://github.com/asamsig
[@Baccata]: https://github.com/Baccata
[@Duhemm]: https://github.com/Duhemm
[@gabro]: https://github.com/gabro
[@jvican]: https://github.com/jvican
[@lefou]: https://github.com/lefou
[@msvaljek]: https://github.com/msvaljek
[@tindzk]: https://github.com/tindzk
[@stephennancekivell]: https://github.com/stephennancekivell
[@travisltq]: https://github.com/travisltq
[@tues]: https://github.com/tues
[@japgolly]: https://github.com/japgollly

0 comments on commit 8e34021

Please sign in to comment.