mirror of
https://github.com/tweag/nickel.git
synced 2024-09-11 11:47:03 +03:00
[release.sh] update to 1.7.0 (#1951)
This commit is contained in:
parent
7f9eb5ab2a
commit
03cf743c5c
10
Cargo.lock
generated
10
Cargo.lock
generated
@ -1649,7 +1649,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nickel-lang-cli"
|
name = "nickel-lang-cli"
|
||||||
version = "1.6.0"
|
version = "1.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap 4.5.2",
|
"clap 4.5.2",
|
||||||
"clap_complete",
|
"clap_complete",
|
||||||
@ -1667,7 +1667,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nickel-lang-core"
|
name = "nickel-lang-core"
|
||||||
version = "0.7.0"
|
version = "0.8.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term",
|
"ansi_term",
|
||||||
"assert_matches",
|
"assert_matches",
|
||||||
@ -1722,7 +1722,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nickel-lang-lsp"
|
name = "nickel-lang-lsp"
|
||||||
version = "1.6.0"
|
version = "1.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"assert_cmd",
|
"assert_cmd",
|
||||||
@ -1770,7 +1770,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nickel-wasm-repl"
|
name = "nickel-wasm-repl"
|
||||||
version = "0.7.0"
|
version = "0.8.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"nickel-lang-core",
|
"nickel-lang-core",
|
||||||
]
|
]
|
||||||
@ -2121,7 +2121,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyckel"
|
name = "pyckel"
|
||||||
version = "1.6.0"
|
version = "1.7.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"codespan-reporting",
|
"codespan-reporting",
|
||||||
"nickel-lang-core",
|
"nickel-lang-core",
|
||||||
|
@ -11,7 +11,7 @@ members = [
|
|||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "1.6.0"
|
version = "1.7.0"
|
||||||
authors = ["The Nickel Team <nickel-lang@protonmail.com>"]
|
authors = ["The Nickel Team <nickel-lang@protonmail.com>"]
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
@ -21,7 +21,7 @@ homepage = "https://nickel-lang.org"
|
|||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
||||||
[workspace.dependencies]
|
[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" }
|
nickel-lang-utils = { version = "0.1.0", path = "./utils" }
|
||||||
lsp-harness = { version = "0.1.0", path = "./lsp/lsp-harness" }
|
lsp-harness = { version = "0.1.0", path = "./lsp/lsp-harness" }
|
||||||
|
|
||||||
|
82
RELEASES.md
82
RELEASES.md
@ -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)
|
Version 1.6 (2024-04-25)
|
||||||
========================
|
========================
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nickel-lang-core"
|
name = "nickel-lang-core"
|
||||||
version = "0.7.0"
|
version = "0.8.0"
|
||||||
description = "Programmable configuration files."
|
description = "Programmable configuration files."
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "nickel-wasm-repl"
|
name = "nickel-wasm-repl"
|
||||||
version = "0.7.0"
|
version = "0.8.0"
|
||||||
description = "WebAssembly REPL for the Nickel programming language."
|
description = "WebAssembly REPL for the Nickel programming language."
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
|
Loading…
Reference in New Issue
Block a user