1
1
mirror of https://github.com/tweag/nickel.git synced 2024-07-07 08:26:29 +03:00

[release.sh] update to 1.7.0 (#1951)

This commit is contained in:
Yann Hamdaoui 2024-06-11 15:19:21 +01:00 committed by GitHub
parent 7f9eb5ab2a
commit 03cf743c5c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 91 additions and 9 deletions

10
Cargo.lock generated
View File

@ -1649,7 +1649,7 @@ dependencies = [
[[package]]
name = "nickel-lang-cli"
version = "1.6.0"
version = "1.7.0"
dependencies = [
"clap 4.5.2",
"clap_complete",
@ -1667,7 +1667,7 @@ dependencies = [
[[package]]
name = "nickel-lang-core"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"ansi_term",
"assert_matches",
@ -1722,7 +1722,7 @@ dependencies = [
[[package]]
name = "nickel-lang-lsp"
version = "1.6.0"
version = "1.7.0"
dependencies = [
"anyhow",
"assert_cmd",
@ -1770,7 +1770,7 @@ dependencies = [
[[package]]
name = "nickel-wasm-repl"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"nickel-lang-core",
]
@ -2121,7 +2121,7 @@ dependencies = [
[[package]]
name = "pyckel"
version = "1.6.0"
version = "1.7.0"
dependencies = [
"codespan-reporting",
"nickel-lang-core",

View File

@ -11,7 +11,7 @@ members = [
resolver = "2"
[workspace.package]
version = "1.6.0"
version = "1.7.0"
authors = ["The Nickel Team <nickel-lang@protonmail.com>"]
license = "MIT"
edition = "2021"
@ -21,7 +21,7 @@ homepage = "https://nickel-lang.org"
readme = "README.md"
[workspace.dependencies]
nickel-lang-core = { version = "0.7.0", path = "./core", default-features = false }
nickel-lang-core = { version = "0.8.0", path = "./core", default-features = false }
nickel-lang-utils = { version = "0.1.0", path = "./utils" }
lsp-harness = { version = "0.1.0", path = "./lsp/lsp-harness" }

View File

@ -1,3 +1,85 @@
Version 1.7 (2024-06-11)
========================
Nickel 1.7 ships with several extensions to pattern matching which was
introduced in Nickel 1.5 but had a number of limitations. See below for further details.
Additionally, the publication of [Topiary](https://topiary.tweag.io/) to the
crates registry makes it so that all versions of Nickel from 1.7 and onward,
however they are built, ship with `nickel format` and the language server
formatting command working out of the box without needing a separate
installation of Topiary (which was previously required when installing from
crates.io using `cargo install nickel-lang-cli` or `cargo install
nickel-lang-lsp`).
Breaking changes
----------------
* Although primitive operators are internal and aren't officially part of any
stability guarantee, some libraries sometimes need to resort to using them,
when there's no equivalent in the stdlib. Nickel 1.7 had a big primop
refactoring, amounting mostly to renaming. If you're using primops, please
look at the corresponding [pull
request](https://github.com/tweag/nickel/pull/1937)
* The behavior of destructuring has been changed to match exactly the behavior
of pattern matching. While there should be no difference on well-behaving
programs, this change makes destructuring stricter and can lead to some
programs that were running fine before 1.7 to now fail with `unmatched
pattern`. The typical example is when destructuring a record with a field
that is not present: `let {x,y, ..} = import "lib.ncl" in`. If `x` is absent
from the `lib.ncl` but is never used anywhere, this used to work fine before
1.7 (the error would only trigger upon usage of `x`) but will now fail eagerly.
If you need to fix a large codebase with long import destructuring chains
and you don't know which fields are the offending ones, one possible
technique is to open the importing file in an editor and use the `goto
definition` command of the NLS on each field of a faulty
pattern. If it works, the field is present, but if it doesn't, the field
might be faulty.
Core language
-------------
* Patterns now support constant values (`1`, `null`, `"a"`, etc.), array
patterns (`[fst, snd, ..tail]`), pattern guards (`'Foo x if std.is_number
x`), wildcard patterns (`_` placeholder) and or-patterns (`('Foo x) or ('Bar
x) or ('Baz x)`): (see the syntax section on of the manual for more details)
* Implement wildcard patterns by @yannham in https://github.com/tweag/nickel/pull/1904
* Implement constant patterns by @yannham in https://github.com/tweag/nickel/pull/1897
* Implement pattern guards by @yannham in https://github.com/tweag/nickel/pull/1910
* Implement array patterns by @yannham in https://github.com/tweag/nickel/pull/1912
* Implement or-patterns by @yannham in https://github.com/tweag/nickel/pull/1916
* Uniformize destruct and pattern matching logic by @yannham in https://github.com/tweag/nickel/pull/1907
* Opaque values by @jneem in https://github.com/tweag/nickel/pull/1913
Stdlib
------
* Add `record.get_or` to get value from record supplying default value by @olorin37 in https://github.com/tweag/nickel/pull/1920
* [Fix] Avoid `record.get_or` failing on field without definition by @yannham in https://github.com/tweag/nickel/pull/1946
* Add stdlib function `array.at_or` by @olorin37 in https://github.com/tweag/nickel/pull/1927
* Add `std.enum.(from/to)_tag_and_arg` and `std.enum.map` to dynamically decompose and recompose an enum by @yannham in https://github.com/tweag/nickel/pull/1939
Documentation
-------------
* Fix typo in BlameError documentation by @ErinvanderVeen in https://github.com/tweag/nickel/pull/1899
* Update README.md for nix profile install by @cloudyluna in https://github.com/tweag/nickel/pull/1918
LSP
---
* Tell NLS about variable bindings in match statements by @jneem in https://github.com/tweag/nickel/pull/1926
* Add --version support to NLS and fix feature unification issues by @yannham in https://github.com/tweag/nickel/pull/1936
* Fix NLS crash and better refresh diagnostics by @jneem in https://github.com/tweag/nickel/pull/1944
Tooling
-------
* Include field path in non serializable error by @yannham in https://github.com/tweag/nickel/pull/1905
* Allow single input to `nickel xxx` command to be JSON, YAML or TOML as well by @olorin37 in https://github.com/tweag/nickel/pull/1902
* Use Topiary's published crates over git to always enable formatting by @ErinvanderVeen in https://github.com/tweag/nickel/pull/1919
Version 1.6 (2024-04-25)
========================

View File

@ -1,6 +1,6 @@
[package]
name = "nickel-lang-core"
version = "0.7.0"
version = "0.8.0"
description = "Programmable configuration files."
authors.workspace = true
edition.workspace = true

View File

@ -1,6 +1,6 @@
[package]
name = "nickel-wasm-repl"
version = "0.7.0"
version = "0.8.0"
description = "WebAssembly REPL for the Nickel programming language."
authors.workspace = true
edition.workspace = true