From 852947decc0c4ed568877bd68a4210caa4857200 Mon Sep 17 00:00:00 2001 From: "Brian J. Cardiff" Date: Fri, 5 Jun 2020 14:23:42 -0300 Subject: [PATCH] Release 0.11.0 (#402) --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ SPEC.md | 23 ++++++++++++++++++----- VERSION | 2 +- shard.yml | 2 +- 4 files changed, 51 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f823801..92efa36b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # CHANGELOG +## v0.11.0 - 2020-06-05 + +Features: + +- **(breaking-change)** Use `crystal:` property to filter candidates version. ([#395](https://github.com/crystal-lang/shards/pull/395), thanks @waj, @bcardiff) +- Introduce `shard.lock` 2.0 format, run `shards install` to migrate. ([#349](https://github.com/crystal-lang/shards/pull/349), [#400](https://github.com/crystal-lang/shards/pull/400), thanks @waj) +- Support intersection in requirements `version: >= 1.0.0, < 2.0`. ([#394](https://github.com/crystal-lang/shards/pull/394), thanks @waj) +- Install dependencies in reverse topological order. ([#369](https://github.com/crystal-lang/shards/pull/369), thanks @waj) +- Use less bright colors for output. ([#373](https://github.com/crystal-lang/shards/pull/373), thanks @waj) +- Add error on duplicate arguments in `shard.yml`. ([#387](https://github.com/crystal-lang/shards/pull/387), thanks @straight-shoota) +- Replace `.sha1` files with a single `.shards.info`. ([#349](https://github.com/crystal-lang/shards/pull/349), [#366](https://github.com/crystal-lang/shards/pull/366), [#368](https://github.com/crystal-lang/shards/pull/368), [#401](https://github.com/crystal-lang/shards/pull/401), thanks @waj) + +Fixes: + +- Improve `GitRef` dependencies and locks. ([#388](https://github.com/crystal-lang/shards/pull/388), [#389](https://github.com/crystal-lang/shards/pull/389), thanks @waj, @straight-shoota) +- Fix crash when a shard version didn't contain a `shard.yml`. ([#362](https://github.com/crystal-lang/shards/pull/362), thanks @waj) +- Avoid `shard.lock` being overwritten when dependencies are up to date. ([#370](https://github.com/crystal-lang/shards/pull/370), thanks @waj) +- Detect version mismatches between `shard.yml` and git tags . ([#341](https://github.com/crystal-lang/shards/pull/341), thanks @RX14) + +Others: + +- Add compatibility with Crystal 0.35. Drop compatibility with < 0.34. ([#379](https://github.com/crystal-lang/shards/pull/379), [#391](https://github.com/crystal-lang/shards/pull/391), [#397](https://github.com/crystal-lang/shards/pull/397), thanks @waj, @bcardiff) +- Explicitly state build_options in help output. ([#364](https://github.com/crystal-lang/shards/pull/364), thanks @Darwinnn) +- Use YAML parser for `Dependency` and `Target`. ([#306](https://github.com/crystal-lang/shards/pull/306), thanks @straight-shoota) +- Add lib to Makefile. ([#344](https://github.com/crystal-lang/shards/pull/344), [#380](https://github.com/crystal-lang/shards/pull/380), thanks @straight-shoota, @waj) +- Allow Makefile envvars to be overwritten from a command line. ([#378](https://github.com/crystal-lang/shards/pull/378), thanks @anatol) +- Rework of dependency and requirements. ([#354](https://github.com/crystal-lang/shards/pull/354), [#358](https://github.com/crystal-lang/shards/pull/358), thanks @waj) +- Add spec to check when there is a version mismatch. ([#361](https://github.com/crystal-lang/shards/pull/361), thanks @waj) +- Make sure tags in specs aren't signed. ([#382](https://github.com/crystal-lang/shards/pull/382), thanks @repomaa) +- Code clean-up. ([#356](https://github.com/crystal-lang/shards/pull/356), [#375](https://github.com/crystal-lang/shards/pull/375), thanks @straight-shoota) + ## v0.10.0 - 2020-04-01 Features: diff --git a/SPEC.md b/SPEC.md index 0fdae6d2..a39de50c 100644 --- a/SPEC.md +++ b/SPEC.md @@ -115,14 +115,27 @@ An [OSI license](http://opensource.org/) name or an URL to a license file ### crystal -The last known Crystal version that is capable to compile the Shard (String). +A restriction to indicate which are the supported crystal versions. This will +usually express a lower and upper-bound constraints. -Purely informational, this may help developers to understand why a Shard is no -longer compatible, or help tools to choose a compatible version of Crystal to -work with the project (e.g., an automated documentation generator). +When resolving dependencies, only the versions that comply with the current +crystal will be candidates. You can pass `--ignore-crystal-version` to disregard this +behavior. + +The valid values are the same as [dependencies.version](#version-1): + +- It may be a version number. +- It may be `"*"` if any version will do. +- The version number may be prefixed by an operator: `<`, `<=`, `>`, `>=` or `~>`. +- Multiple requirements can be separated by commas. + +When just a version number is used it has a different semantic compared to dependencies: +`x.y.z` will be interpreted as `~> x.y, >= x.y.z` (ie: `>= x.y.z, < (x+1).0.0`) honoring semver. + +If this property is not included it will be treated as `< 1.0.0`. ```yaml -crystal: 0.19.2 +crystal: 0.34.0 ``` ### repository diff --git a/VERSION b/VERSION index 78bc1abd..d9df1bbc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.10.0 +0.11.0 diff --git a/shard.yml b/shard.yml index 93bb6f3e..f4af4070 100644 --- a/shard.yml +++ b/shard.yml @@ -1,5 +1,5 @@ name: shards -version: 0.10.0 +version: 0.11.0 authors: - Julien Portalier