Releases: crystal-lang/shards
Releases · crystal-lang/shards
v0.13.0
Fixes:
- Fix outdated command for dependencies with no releases. (#455, thanks @straight-shoota)
- Fix outdated command with non-release installed. (#456, thanks @straight-shoota)
- Write lockfile even when there are no dependencies. (#453, thanks @straight-shoota)
- Touch install_path and lockfile to express dependency. (#444, thanks @straight-shoota)
- Improve git reliability by retrying on failures. (#450, thanks @fudanchii)
- Allow empty scalar for mappings/sequences. (#451, thanks @straight-shoota)
- Fix working directory in
capture
. (#457, thanks @f-fr)
Features:
Others:
- Use git's
checkout
feature directly to write out repo files. (#435, thanks @oprypin) - Use
Process.quote
instead of the old platform-specific helper. (#437, thanks @oprypin) - Don't use POSIX-specific shell constructs. (#436, thanks @oprypin)
- Don't use compile-time shell commands to determine build timestamp. (#438, thanks @oprypin)
- Expand Windows support + fix all specs. (#447, thanks @oprypin)
- Add continuous testing (including Windows) using GitHub Actions. (#448, thanks @oprypin)
- Cleanup unused code. (#460, thanks @f-fr)
- Fix outdated content in the
README.md
andSPEC.md
. (#434, #461, #462, thanks @kojix2, @straight-shoota, @kimburgess)
v0.12.0
Fixes:
- Disable interactive credential prompt for git resolver. (#411, thanks @straight-shoota)
- Display dependency name on parsing errors of
shard.yml
. (#408, thanks @straight-shoota) - Handle ambiguous dependencies and update
shard.lock
if source of dependency change. (#419, #429, thanks @bcardiff) - Reinstall when resolver changes. (#425, thanks @waj)
Features:
- Shards overrides. (#422, #429, thanks @bcardiff)
- Add
--ignore-crystal-version
related suggestion and warnings to guide user. (#418, thanks @bcardiff) - Allow shards to read
SHARDS_OPTS
for addition command options. (#417, #420, thanks @bcardiff) - Add convenient makefile arguments for packaging. (#414, thanks @bcardiff)
Others:
- Bump required Crystal to 0.35. (#424, thanks @bcardiff)
- Refactor: Move install responsibilities from
Resolver
toPackage
. (#426, thanks @waj) - Refactor: Use
Package
for locks and installed shards. (#428, thanks @waj) - Spec: Add
stdout
andstderr
toFailedCommand
message. (#410, thanks @straight-shoota) - Spec: Fix failure under 32-bit Linux. (#416, thanks @lugia-kun)
- Fix builds. (#421, #423, thanks @bcardiff)
v0.11.1
v0.11.0
Features:
- (breaking-change) Use
crystal:
property to filter candidates version. (#395, thanks @waj, @bcardiff) - Introduce
shard.lock
2.0 format, runshards install
to migrate. (#349, #400, thanks @waj) - Support intersection in requirements
version: >= 1.0.0, < 2.0
. (#394, thanks @waj) - Install dependencies in reverse topological order. (#369, thanks @waj)
- Use less bright colors for output. (#373, thanks @waj)
- Add error on duplicate arguments in
shard.yml
. (#387, thanks @straight-shoota) - Replace
.sha1
files with a single.shards.info
. (#349, #366, #368, #401, thanks @waj)
Fixes:
- Improve
GitRef
dependencies and locks. (#388, #389, thanks @waj, @straight-shoota) - Fix crash when a shard version didn't contain a
shard.yml
. (#362, thanks @waj) - Avoid
shard.lock
being overwritten when dependencies are up to date. (#370, thanks @waj) - Detect version mismatches between
shard.yml
and git tags . (#341, thanks @RX14)
Others:
- Add compatibility with Crystal 0.35. Drop compatibility with < 0.34. (#379, #391, #397, thanks @waj, @bcardiff)
- Explicitly state build_options in help output. (#364, thanks @Darwinnn)
- Use YAML parser for
Dependency
andTarget
. (#306, thanks @straight-shoota) - Add lib to Makefile. (#344, #380, thanks @straight-shoota, @waj)
- Allow Makefile envvars to be overwritten from a command line. (#378, thanks @anatol)
- Rework of dependency and requirements. (#354, #358, thanks @waj)
- Add spec to check when there is a version mismatch. (#361, thanks @waj)
- Make sure tags in specs aren't signed. (#382, thanks @repomaa)
- Code clean-up. (#356, #375, thanks @straight-shoota)
v0.10.0
Features:
- Use crystal-molinillo to resolve dependencies, drop the SAT solver. #322, #329, #336.
- Automatic unlock on install and update. #337
- Show the shard's name when running scripts. #326
- Support shard renames. #327
- Add SPEC for repository, homepage, documentation properties. #265
Fixes:
- Allow changes in the source protocol without triggering an actual change in the source. #315
- Make shards reproducible via
SOURCE_DATE_EPOCH
environment variable. #314 - Check non hidden files are not pruned. #330
- Validation of changes in production mode for dependencies referenced by commit. #340
Others:
v0.9.0 Magnificent Duck
Fixes:
- Allow resolving pre-release when installing git refs;
- Report all available versions (Git resolver);
- Don't prune everything in lib directory.
v0.9.0.rc2 Flaky Duck
Fixes:
- Exit with non-zero status on dependency resolve error;
- Install dependency at HEAD when no version tags are defined;
- Install executables using
shard.yml
at commit (not version).
v0.9.0.rc1 Corpulent Duck
Breaking changes:
- Dependency solver was overhauled, it may resolve dependencies in a
completely different way, succeed better, or just fail; - Git tag refs that match a version number are now an actual version (i.e.
tag: v1.0.0
is converted toversion: 1.0.0
).
Features:
- Update specified shards only, trying to keep other shards to their locked
version if possible; - Add
--local
argument to use the cache as-is, allowing to skip git fetches
when you know the cache is up-to-date; - Add the outdated command to list dependencies that could be updated
(matching constraints) as well as their latest version; including pre-release
versions on demand. - Add the lock command that behaves like the install and update commands
but that only creates a lockfile, and doesn't install anything.
Fixes:
- Transitive dependencies are now available to all installed shards, allowing
postinstall scripts to compile any Crystal application; - Don't consider metadata when considering a pre-release version number.
v0.9.0.beta - Monumental Duck
This is pre-release for the next version of Shards that will support pre-releases! See the v0.9.0 milestone for what's still missing (e.g. --local
and the outdated
command).
The version number resolver got an overhaul and fixed some issues (see below). Please check that everything is still working fine and report any issues you may have!
Breaking changes:
- A
shard.yml
spec is now required in libraries. - Drop support for obsolete Projectfile.
Features:
- Experimental support for prereleases. Add a letter to a version number to declare a pre-release. For example
1.2.3.alpha
or1.0.0-rc1
. Note that semver whole number prereleases such as1.0.0-1
aren't supported, and even have higher precedence (1.0-1 > 1.0
). - Ignore semver metadata (
1.0+abc
has same precedence than1.0
).
Fixes:
- Approximate operator used to match invalid version numbers (e.g.
~> 0.1.0
wrongly matched0.10.0
). - Unbalanced version numbers, such as
1.0.0
and1.0.0.1
are now correctly ordered and compared as1.0.0.1 > 1.0.0
. - Force the 'v' prefix in version tags.
install -t
isn't supported on macOS.
v0.8.1 - Amusing Muskrat
Fixes:
- Git repositories cloned with v0.8.0 can't fetch new remote refs anymore, which totally broke the
update
command. - The Path resolver incorrectly handled invalid symlinks.