Skip to content

Commit e816eb4

Browse files
authored
Introduce the javy-release crate (#1169)
* Introduce the `javy-release` crate This commit introduces the `javy-release` crate. The idea behind this crate is to provide a utility to partially automate our release process, at least initially. In its current form, this crate adds the necessary functionality to toggle the release/dev versions according to our versioning system. Even though publishing to crates.io should be possible, I've opted exclude such functionality in the initial state of this crate mostly for simplicity. Said functionality can be added as a follow-up if this crate gets adopted. Furthermore, the principal motivation for this change is to ease the release process, which is currently manual and potentially error prone. I've gone through this process twice, and in every instance it's unclear to me the order of operations that I need to follow to start a successful release. * Add documentation entry * Avoid using `std::env::current_dir` to avoid race conditions in tests
1 parent cfbb421 commit e816eb4

File tree

14 files changed

+853
-3
lines changed

14 files changed

+853
-3
lines changed

Cargo.lock

Lines changed: 51 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ members = [
1212
"crates/test-plugin-wasip2",
1313
"crates/runner",
1414
"fuzz",
15+
"release",
1516
]
1617
resolver = "2"
1718

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ lint-wasip1-targets:
2222
--exclude=javy-runner \
2323
--exclude=javy-test-plugin-wasip2 \
2424
--exclude=javy-fuzz \
25+
--exclude=javy-release \
2526
--target=wasm32-wasip1 --all-targets --all-features -- -D warnings
2627

2728
lint-wasip2-targets:
@@ -33,6 +34,7 @@ lint-wasip2-targets:
3334
--exclude=javy-runner \
3435
--exclude=javy-test-plugin-wasip1 \
3536
--exclude=javy-fuzz \
37+
--exclude=javy-release \
3638
--target=wasm32-wasip2 --all-targets --all-features -- -D warnings
3739

3840
test-wasi-targets: test-wasip1-targets test-wasip2-targets
@@ -44,6 +46,7 @@ test-wasip1-targets:
4446
--exclude=javy-plugin-processing \
4547
--exclude=javy-runner \
4648
--exclude=javy-fuzz \
49+
--exclude=javy-release \
4750
--exclude=javy-test-plugin-wasip1 \
4851
--exclude=javy-test-plugin-wasip2 \
4952
--exclude=javy-test-invalid-plugin \
@@ -57,6 +60,7 @@ test-wasip2-targets:
5760
--exclude=javy-plugin-processing \
5861
--exclude=javy-runner \
5962
--exclude=javy-fuzz \
63+
--exclude=javy-release \
6064
--exclude=javy-test-plugin-wasip1 \
6165
--exclude=javy-test-plugin-wasip2 \
6266
--exclude=javy-test-invalid-plugin \

docs/docs-contributing.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,23 @@ version `3.0.0` has not been published yet so version `3.0.0` can contain
5454
a mixture of additive and breaking changes from the last `2.x.x` version
5555
published.
5656

57+
#### Toggling development/relese versions automatically
58+
59+
Before making a release, you can set the release versions
60+
automatically by running the following command from the root of the
61+
repository
62+
63+
./scripts/release.sh set-release-versions
64+
65+
After the release is complete, you can set the development versions
66+
automatically by running the following command from the root of the
67+
repository
68+
69+
./scripts/release.sh set-dev-versions
70+
71+
Note that the previous script requires having
72+
[`jq`](https://github.com/jqlang/jq) installed.
73+
5774
## Web platform tests (WPT)
5875

5976
We run a subset of the web platform test suite during continuous integration. We

0 commit comments

Comments
 (0)