summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers+gitlab@digital-scurf.org>2021-10-21 08:26:16 +0000
committerDaniel Silverstone <dsilvers+gitlab@digital-scurf.org>2021-10-21 08:26:16 +0000
commit15b88423c0dd54101f1883213fe520b53178c2a6 (patch)
treebadabb6f54d980ac4b4f847974d0d71e6919407a
parent5280dc012961537a10407382a5f4d3b6caf583c6 (diff)
parent5587eea4e9d2b4afecf8922406f1921a8f961561 (diff)
downloadsubplot-15b88423c0dd54101f1883213fe520b53178c2a6.tar.gz
Merge branch 'release-prep' into 'main'
Prepare release 0.3.0 See merge request subplot/subplot!226
-rw-r--r--Cargo.lock150
-rw-r--r--Cargo.toml2
-rw-r--r--NEWS.md120
-rw-r--r--debian/changelog6
-rw-r--r--subplot-build/Cargo.toml2
5 files changed, 234 insertions, 46 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 6a6f7f9..b6beef4 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -87,9 +87,9 @@ dependencies = [
[[package]]
name = "bstr"
-version = "0.2.16"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279"
+checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
dependencies = [
"memchr",
]
@@ -108,9 +108,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "cc"
-version = "1.0.70"
+version = "1.0.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0"
+checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd"
[[package]]
name = "cfg-if"
@@ -133,12 +133,24 @@ dependencies = [
[[package]]
name = "chrono-tz"
-version = "0.5.3"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2554a3155fec064362507487171dcc4edc3df60cb10f3a1fb10ed8094822b120"
+checksum = "64c01c1c607d25c71bbaa67c113d6c6b36c434744b4fd66691d711b5b1bc0c8b"
dependencies = [
"chrono",
+ "chrono-tz-build",
+ "phf",
+]
+
+[[package]]
+name = "chrono-tz-build"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db058d493fb2f65f41861bfed7e3fe6335264a9f0f92710cab5bdf01fef09069"
+dependencies = [
"parse-zoneinfo",
+ "phf",
+ "phf_codegen",
]
[[package]]
@@ -457,9 +469,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.102"
+version = "0.2.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103"
+checksum = "7b2f96d100e1cf1929e7719b7edb3b90ab5298072638fccd77be9ce942ecdfce"
[[package]]
name = "linked-hash-map"
@@ -478,15 +490,17 @@ dependencies = [
[[package]]
name = "loom"
-version = "0.5.1"
+version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2111607c723d7857e0d8299d5ce7a0bf4b844d3e44f8de136b13da513eaf8fc4"
+checksum = "b2b9df80a3804094bf49bb29881d18f6f05048db72127e84e09c26fc7c2324f5"
dependencies = [
"cfg-if",
"generator",
"scoped-tls",
"serde",
"serde_json",
+ "tracing",
+ "tracing-subscriber",
]
[[package]]
@@ -656,6 +670,45 @@ dependencies = [
]
[[package]]
+name = "phf"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9fc3db1018c4b59d7d582a739436478b6035138b6aecbce989fc91c3e98409f"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+ "uncased",
+]
+
+[[package]]
name = "pikchr"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -673,9 +726,9 @@ checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
[[package]]
name = "ppv-lite86"
-version = "0.2.10"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+checksum = "c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741"
[[package]]
name = "proc-macro-error"
@@ -703,9 +756,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.29"
+version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d"
+checksum = "edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70"
dependencies = [
"unicode-xid",
]
@@ -724,9 +777,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.9"
+version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
dependencies = [
"proc-macro2",
]
@@ -967,9 +1020,9 @@ dependencies = [
[[package]]
name = "sharded-slab"
-version = "0.1.3"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "740223c51853f3145fe7c90360d2d4232f2b62e3449489c207eccde818979982"
+checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
dependencies = [
"lazy_static",
]
@@ -981,6 +1034,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6fa3938c99da4914afedd13bf3d79bcb6c277d1b2c398d23257a304d9e1b074"
[[package]]
+name = "siphasher"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "533494a8f9b724d33625ab53c6c4800f7cc445895924a8ef649222dcb76e938b"
+
+[[package]]
name = "slug"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -991,9 +1050,9 @@ dependencies = [
[[package]]
name = "smallvec"
-version = "1.6.1"
+version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309"
[[package]]
name = "state"
@@ -1012,9 +1071,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "structopt"
-version = "0.3.23"
+version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa"
+checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c"
dependencies = [
"clap",
"lazy_static",
@@ -1023,9 +1082,9 @@ dependencies = [
[[package]]
name = "structopt-derive"
-version = "0.4.16"
+version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba"
+checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
dependencies = [
"heck",
"proc-macro-error",
@@ -1036,7 +1095,7 @@ dependencies = [
[[package]]
name = "subplot"
-version = "0.2.2"
+version = "0.3.0"
dependencies = [
"anyhow",
"base64",
@@ -1106,9 +1165,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.76"
+version = "1.0.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84"
+checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194"
dependencies = [
"proc-macro2",
"quote",
@@ -1142,9 +1201,9 @@ dependencies = [
[[package]]
name = "tera"
-version = "1.12.1"
+version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf95b0d8a46da5fe3ea119394a6c7f1e745f9de359081641c99946e2bf55d4f2"
+checksum = "ed0c0eee8fbbbaab449287574b292f21ca53224b92a07b4a23266b77376f0ce7"
dependencies = [
"chrono",
"chrono-tz",
@@ -1173,18 +1232,18 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.29"
+version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88"
+checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.29"
+version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c"
+checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
dependencies = [
"proc-macro2",
"quote",
@@ -1212,9 +1271,9 @@ dependencies = [
[[package]]
name = "tracing"
-version = "0.1.28"
+version = "0.1.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84f96e095c0c82419687c20ddf5cb3eadb61f4e1405923c9dc8e53a1adacbda8"
+checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105"
dependencies = [
"cfg-if",
"pin-project-lite",
@@ -1235,9 +1294,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.16"
+version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98863d0dd09fa59a1b79c6750ad80dbda6b75f4e71c437a6a1a8cb91a8bcbd77"
+checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e"
dependencies = [
"proc-macro2",
"quote",
@@ -1246,9 +1305,9 @@ dependencies = [
[[package]]
name = "tracing-core"
-version = "0.1.20"
+version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46125608c26121c81b0c6d693eab5a420e416da7e43c426d2e8f7df8da8a3acf"
+checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4"
dependencies = [
"lazy_static",
]
@@ -1276,9 +1335,9 @@ dependencies = [
[[package]]
name = "tracing-subscriber"
-version = "0.2.23"
+version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56c42e73a9d277d4d2b6a88389a137ccf3c58599660b17e8f5fc39305e490669"
+checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71"
dependencies = [
"ansi_term 0.12.1",
"chrono",
@@ -1309,6 +1368,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
[[package]]
+name = "uncased"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5baeed7327e25054889b9bd4f975f32e5f4c5d434042d59ab6cd4142c0a76ed0"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
name = "unescape"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/Cargo.toml b/Cargo.toml
index 2823b1b..4b3414f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "subplot"
-version = "0.2.2"
+version = "0.3.0"
authors = [
"Lars Wirzenius <liw@liw.fi>",
"Daniel Silverstone <dsilvers@digital-scurf.org>",
diff --git a/NEWS.md b/NEWS.md
index 4215406..26a2357 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -3,7 +3,121 @@ title: Release notes for Subplot
...
This file summarises the changes between released versions of Subplot and its
-associated libraries.
+associated libraries, especially with regards to changes visible to
+the user of the Subplot software.
+
+# Version 0.3.0, released 2021-10-20
+
+This is still an ALPHA quality release, and includes breaking changes.
+
+## Breaking changes
+
+You definitely need to pay attention to these changes.
+
+* Subplot is moving to libraries and subplots being able to support
+ multiple step implementation languages at once. In this release,
+ bindings can indicate different functions for each language. Note
+ that a binding only needs to support one language. The new binding
+ format is:
+
+```yaml
+- given: foo
+ impl:
+ python:
+ function: foo
+ cleanup: foo_cleanup
+ rust:
+ function: somelib::foo
+ cleanup: somelib::foo_cleanup
+```
+
+* The Subplot code generator now uses the `pulldown-cmark` crate for
+ parsing Markdown input. The reason for this change is to not have to
+ have Pandoc installed in a CI or other environment that only
+ generates and runs test programs.
+
+ The document generator still uses Pandoc for this, but it, too, will
+ migrate to `pulldown-cmark` so that all parsing is done in the same
+ way.
+
+ The parsing crate should support the same Markdown variants as
+ Pandoc does, more or less.
+
+ Unfortunately, the YAML document metadata block is less forgiving
+ now. The new metadata parser doesn't accept everything Pandoc does,
+ and there will be a need to change input documents. The next release
+ of Subplot is likely to introduce further changes, and we will
+ document the new metadata format then.
+
+* The generated test programs no longer clear the environment
+ variables before running scenarios. This is partly to allow Subplot
+ to be more easily ported to operating systems other than Debian
+ (such as NixOS, but also Windows and macOS), but also because
+ clearing the environment variables is not a good way to make sure
+ the tests run in a known environment. Subplot now makes it the
+ responsibility of the person running the test program to control
+ where it is run: what software is installed, what services are
+ available, etc.
+
+* Subplot code generation now refuses documents that have no
+ scenarios. Document generation still accepts them so that Subplot
+ can be used to produce typeset documents and web pages.
+
+## General
+
+The changes in this section should not break any existing Subplot
+documents. They affect all uses of Subplot, regardless of step
+implementation language and whether Subplot code or document
+generation is used.
+
+* After a bug fix, Subplot now handles better the input files being
+ elsewhere than the current directory. If the Markdown input file is
+ in `foo/bar/yo.md`, the files referred to from the input file are
+ looked up relative to `foo/bar` instead of the current working
+ directory.
+
+* Subplot now has initial support for logging to make it easier to
+ find out what it's doing, when it's doing something surprising. The
+ environment variables `SUBPLOT_LOG`, `SUBPLOT_LOG_FILE`, and
+ `SUBPLOT_LOG_FORMAT` (`oneline`, `json`, or `pretty`). What Subplot
+ logs is still rudimentary but will be improved over time. We'd
+ welcome suggestions.
+
+* The Subplot Debian package now builds in the resource into the
+ Subplot binary.
+
+* Document titles can now use markup to indicate `literal` text.
+
+* Subplot now automatically handles versions of Pandoc that don't have
+ a separate `pandoc-citeproc` binary, and want the `--citeproc`
+ option instead.
+
+* Subplot now works with version 1.48.0 of the Rust language and
+ toolchain, in order to make it possible for the Sequoia-PGP project
+ to use Subplot.
+
+## Python support
+
+* The generated Python test program now supports the `--run-all`
+ (`-k`) option to run all scenarios even if one or more fail.
+
+## Rust support
+
+* Subplot now provides the `subplot-build` crate, for using Subplot
+ code generation from another project's `build.rs` script.
+
+* We are in the process of elevating Rust into a supported language,
+ so that it will be on par with Python. This release does not get
+ there, but starts the process.
+
+## Bash support
+
+* We've not made much effort to improve the Bash support (modulo the
+ environment cleanup). Compared to Python and Rust it is not a
+ well-support language in Subplot. Lars and Daniel do not feel it is
+ a target worth spending much of their free time one, but would
+ welcome help with that.
+
# Version 0.2.2, released 2021-08-07
@@ -37,7 +151,7 @@ breaking changes in future releases.
* The documentation now makes it clearer that the `files_get`
function returns the contents of the embedded file and not a
filename. (By Richard Maw)
-
+
* Some spelling and other language mistakes have been fixed in the
documentation for Bash support. (By Richard Maw)
@@ -47,7 +161,7 @@ breaking changes in future releases.
* The generated Bash test program now supports the `--env` option to
let the user pass in environment variables when invoking the test
program. (By Richard Maw)
-
+
* Assertion functions now return an error rather then terminating the
test program. This lets cleanups run. (By Richard Maw)
diff --git a/debian/changelog b/debian/changelog
index 0f2ee06..40e778f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+subplot (0.3.0-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Lars Wirzenius <liw@liw.fi> Thu, 21 Oct 2021 11:07:02 +0300
+
subplot (0.2.2-1) unstable; urgency=medium
* New upstream release.
diff --git a/subplot-build/Cargo.toml b/subplot-build/Cargo.toml
index 40e4bac..c4fe932 100644
--- a/subplot-build/Cargo.toml
+++ b/subplot-build/Cargo.toml
@@ -14,6 +14,6 @@ repository = "https://gitlab.com/subplot/subplot"
[dependencies]
-subplot = { version="0.2.2", path = ".." }
+subplot = { version="0.3.0", path = ".." }
tracing = "0.1"
tempfile = "3.1.0"