aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2025-08-15 15:30:14 +0200
committerUlf Lilleengen <[email protected]>2025-08-25 19:44:50 +0200
commit9f12852c389d65a8b2e252e027f69dfef2383736 (patch)
tree8dc1f32170a62d2a82e033f57ccf423b648b93e5
parent3f21c9022396fb2f77b4521dda67728520b999a9 (diff)
Read crate configs from metadata.
-rw-r--r--cyw43-pio/Cargo.toml5
-rw-r--r--cyw43/Cargo.toml11
-rw-r--r--embassy-boot-nrf/Cargo.toml11
-rw-r--r--embassy-boot-rp/Cargo.toml6
-rw-r--r--embassy-boot-stm32/Cargo.toml6
-rw-r--r--embassy-embedded-hal/Cargo.toml7
-rw-r--r--embassy-executor/Cargo.toml20
-rw-r--r--embassy-imxrt/Cargo.toml6
-rw-r--r--embassy-mspm0/Cargo.toml16
-rw-r--r--embassy-net/Cargo.toml15
-rw-r--r--embassy-nrf/Cargo.toml30
-rw-r--r--embassy-nxp/Cargo.toml7
-rw-r--r--embassy-rp/Cargo.toml11
-rw-r--r--embassy-stm32/Cargo.toml93
-rw-r--r--embassy-sync/Cargo.toml5
-rw-r--r--embassy-time-queue-utils/Cargo.toml6
-rw-r--r--embassy-time/Cargo.toml6
-rw-r--r--embassy-usb/Cargo.toml11
-rw-r--r--release/Cargo.toml7
-rw-r--r--release/config.toml46
-rw-r--r--release/src/main.rs55
-rw-r--r--release/src/semver_check.rs14
-rw-r--r--release/src/types.rs27
23 files changed, 325 insertions, 96 deletions
diff --git a/cyw43-pio/Cargo.toml b/cyw43-pio/Cargo.toml
index a45adeccb..91b1df5fa 100644
--- a/cyw43-pio/Cargo.toml
+++ b/cyw43-pio/Cargo.toml
@@ -15,6 +15,11 @@ embassy-rp = { version = "0.7.0", path = "../embassy-rp" }
15fixed = "1.23.1" 15fixed = "1.23.1"
16defmt = { version = "1.0.1", optional = true } 16defmt = { version = "1.0.1", optional = true }
17 17
18[package.metadata.embassy]
19build = [
20 {target = "thumbv6m-none-eabi", features = ["embassy-rp/rp2040"]},
21]
22
18[package.metadata.embassy_docs] 23[package.metadata.embassy_docs]
19src_base = "https://github.com/embassy-rs/embassy/blob/cyw43-pio-v$VERSION/cyw43-pio/src/" 24src_base = "https://github.com/embassy-rs/embassy/blob/cyw43-pio-v$VERSION/cyw43-pio/src/"
20src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/cyw43-pio/src/" 25src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/cyw43-pio/src/"
diff --git a/cyw43/Cargo.toml b/cyw43/Cargo.toml
index 94d9ef3eb..74660b1d9 100644
--- a/cyw43/Cargo.toml
+++ b/cyw43/Cargo.toml
@@ -38,6 +38,17 @@ heapless = "0.8.0"
38embedded-io-async = { version = "0.6.0", optional = true } 38embedded-io-async = { version = "0.6.0", optional = true }
39bt-hci = { version = "0.4.0", optional = true } 39bt-hci = { version = "0.4.0", optional = true }
40 40
41[package.metadata.embassy]
42build = [
43 {target = "thumbv6m-none-eabi", features = []},
44 {target = "thumbv6m-none-eabi", features = ["log"]},
45 {target = "thumbv6m-none-eabi", features = ["defmt"]},
46 {target = "thumbv6m-none-eabi", features = ["firmware-logs", "log"]},
47 {target = "thumbv6m-none-eabi", features = ["defmt", "firmware-logs"]},
48 {target = "thumbv6m-none-eabi", features = ["bluetooth", "firmware-logs", "log"]},
49 {target = "thumbv6m-none-eabi", features = ["bluetooth", "defmt", "firmware-logs"]},
50]
51
41[package.metadata.embassy_docs] 52[package.metadata.embassy_docs]
42src_base = "https://github.com/embassy-rs/embassy/blob/cyw43-v$VERSION/cyw43/src/" 53src_base = "https://github.com/embassy-rs/embassy/blob/cyw43-v$VERSION/cyw43/src/"
43src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/cyw43/src/" 54src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/cyw43/src/"
diff --git a/embassy-boot-nrf/Cargo.toml b/embassy-boot-nrf/Cargo.toml
index f89561066..017eadab9 100644
--- a/embassy-boot-nrf/Cargo.toml
+++ b/embassy-boot-nrf/Cargo.toml
@@ -12,6 +12,17 @@ categories = [
12 "asynchronous", 12 "asynchronous",
13] 13]
14 14
15[package.metadata.embassy]
16build = [
17 {target = "thumbv7em-none-eabi", features = ["embassy-nrf/nrf52840"]},
18 {target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf5340-app-s"]},
19 {target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9160-ns"]},
20 {target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9120-ns"]},
21 {target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9151-ns"]},
22 {target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9161-ns"]},
23]
24
25
15[package.metadata.embassy_docs] 26[package.metadata.embassy_docs]
16src_base = "https://github.com/embassy-rs/embassy/blob/embassy-boot-nrf-v$VERSION/embassy-boot-nrf/src/" 27src_base = "https://github.com/embassy-rs/embassy/blob/embassy-boot-nrf-v$VERSION/embassy-boot-nrf/src/"
17src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-boot-nrf/src/" 28src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-boot-nrf/src/"
diff --git a/embassy-boot-rp/Cargo.toml b/embassy-boot-rp/Cargo.toml
index 5fe376645..aee5d670d 100644
--- a/embassy-boot-rp/Cargo.toml
+++ b/embassy-boot-rp/Cargo.toml
@@ -12,6 +12,12 @@ categories = [
12 "asynchronous", 12 "asynchronous",
13] 13]
14 14
15[package.metadata.embassy]
16build = [
17 {target = "thumbv6m-none-eabi", features = ["embassy-rp/rp2040"]},
18]
19
20
15[package.metadata.embassy_docs] 21[package.metadata.embassy_docs]
16src_base = "https://github.com/embassy-rs/embassy/blob/embassy-boot-rp-v$VERSION/src/" 22src_base = "https://github.com/embassy-rs/embassy/blob/embassy-boot-rp-v$VERSION/src/"
17src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-boot-rp/src/" 23src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-boot-rp/src/"
diff --git a/embassy-boot-stm32/Cargo.toml b/embassy-boot-stm32/Cargo.toml
index b1087da1c..c2cf0c596 100644
--- a/embassy-boot-stm32/Cargo.toml
+++ b/embassy-boot-stm32/Cargo.toml
@@ -12,6 +12,12 @@ categories = [
12 "asynchronous", 12 "asynchronous",
13] 13]
14 14
15[package.metadata.embassy]
16build = [
17 {target = "thumbv7em-none-eabi", features = ["embassy-stm32/stm32l496zg"]},
18]
19
20
15[package.metadata.embassy_docs] 21[package.metadata.embassy_docs]
16src_base = "https://github.com/embassy-rs/embassy/blob/embassy-boot-stm32-v$VERSION/embassy-boot-stm32/src/" 22src_base = "https://github.com/embassy-rs/embassy/blob/embassy-boot-stm32-v$VERSION/embassy-boot-stm32/src/"
17src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-boot-stm32/src/" 23src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-boot-stm32/src/"
diff --git a/embassy-embedded-hal/Cargo.toml b/embassy-embedded-hal/Cargo.toml
index 73eb19c39..a1f9e168b 100644
--- a/embassy-embedded-hal/Cargo.toml
+++ b/embassy-embedded-hal/Cargo.toml
@@ -12,6 +12,13 @@ categories = [
12 "asynchronous", 12 "asynchronous",
13] 13]
14 14
15[package.metadata.embassy]
16build = [
17 {target = "thumbv7em-none-eabi", features = []},
18 {target = "thumbv7em-none-eabi", features = ["time"]},
19]
20
21
15[package.metadata.embassy_docs] 22[package.metadata.embassy_docs]
16src_base = "https://github.com/embassy-rs/embassy/blob/embassy-embedded-hal-v$VERSION/embassy-embedded-hal/src/" 23src_base = "https://github.com/embassy-rs/embassy/blob/embassy-embedded-hal-v$VERSION/embassy-embedded-hal/src/"
17src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-embedded-hal/src/" 24src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-embedded-hal/src/"
diff --git a/embassy-executor/Cargo.toml b/embassy-executor/Cargo.toml
index bff13de56..7da807906 100644
--- a/embassy-executor/Cargo.toml
+++ b/embassy-executor/Cargo.toml
@@ -12,6 +12,26 @@ categories = [
12 "asynchronous", 12 "asynchronous",
13] 13]
14 14
15[package.metadata.embassy]
16build = [
17 {target = "thumbv7em-none-eabi", features = []},
18 {target = "thumbv7em-none-eabi", features = ["log"]},
19 {target = "thumbv7em-none-eabi", features = ["defmt"]},
20 {target = "thumbv6m-none-eabi", features = ["defmt"]},
21 {target = "thumbv6m-none-eabi", features = ["arch-cortex-m", "defmt", "executor-interrupt", "executor-thread"]},
22 {target = "thumbv7em-none-eabi", features = ["arch-cortex-m"]},
23 {target = "thumbv7em-none-eabi", features = ["arch-cortex-m", "rtos-trace"]},
24 {target = "thumbv7em-none-eabi", features = ["arch-cortex-m", "executor-thread"]},
25 {target = "thumbv7em-none-eabi", features = ["arch-cortex-m", "executor-interrupt"]},
26 {target = "thumbv7em-none-eabi", features = ["arch-cortex-m", "executor-interrupt", "executor-thread"]},
27 {target = "armv7a-none-eabi", features = ["arch-cortex-ar", "executor-thread"]},
28 {target = "armv7r-none-eabi", features = ["arch-cortex-ar", "executor-thread"]},
29 {target = "armv7r-none-eabihf", features = ["arch-cortex-ar", "executor-thread"]},
30 {target = "riscv32imac-unknown-none-elf", features = ["arch-riscv32"]},
31 {target = "riscv32imac-unknown-none-elf", features = ["arch-riscv32", "executor-thread"]},
32]
33
34
15[package.metadata.embassy_docs] 35[package.metadata.embassy_docs]
16src_base = "https://github.com/embassy-rs/embassy/blob/embassy-executor-v$VERSION/embassy-executor/src/" 36src_base = "https://github.com/embassy-rs/embassy/blob/embassy-executor-v$VERSION/embassy-executor/src/"
17src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-executor/src/" 37src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-executor/src/"
diff --git a/embassy-imxrt/Cargo.toml b/embassy-imxrt/Cargo.toml
index 466d5dc2c..5e94dbbc4 100644
--- a/embassy-imxrt/Cargo.toml
+++ b/embassy-imxrt/Cargo.toml
@@ -9,6 +9,12 @@ categories = ["embedded", "hardware-support", "no-std", "asynchronous"]
9repository = "https://github.com/embassy-rs/embassy" 9repository = "https://github.com/embassy-rs/embassy"
10documentation = "https://docs.embassy.dev/embassy-imxrt" 10documentation = "https://docs.embassy.dev/embassy-imxrt"
11 11
12[package.metadata.embassy]
13build = [
14 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "mimxrt633s", "time", "time-driver-rtc", "unstable-pac"]},
15 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "mimxrt685s", "time", "time-driver-rtc", "unstable-pac"]},
16]
17
12[package.metadata.embassy_docs] 18[package.metadata.embassy_docs]
13src_base = "https://github.com/embassy-rs/embassy/blob/embassy-imxrt-v$VERSION/embassy-imxrt/src/" 19src_base = "https://github.com/embassy-rs/embassy/blob/embassy-imxrt-v$VERSION/embassy-imxrt/src/"
14src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-imxrt/src/" 20src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-imxrt/src/"
diff --git a/embassy-mspm0/Cargo.toml b/embassy-mspm0/Cargo.toml
index 221026b26..d13f16eff 100644
--- a/embassy-mspm0/Cargo.toml
+++ b/embassy-mspm0/Cargo.toml
@@ -9,6 +9,22 @@ categories = ["embedded", "hardware-support", "no-std", "asynchronous"]
9repository = "https://github.com/embassy-rs/embassy" 9repository = "https://github.com/embassy-rs/embassy"
10documentation = "https://docs.embassy.dev/embassy-mspm0" 10documentation = "https://docs.embassy.dev/embassy-mspm0"
11 11
12[package.metadata.embassy]
13build = [
14 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0c1104dgs20", "time-driver-any"]},
15 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0g3507pm", "time-driver-any"]},
16 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0g3519pz", "time-driver-any"]},
17 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0l1306rhb", "time-driver-any"]},
18 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0l2228pn", "time-driver-any"]},
19 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0l1345dgs28", "time-driver-any"]},
20 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0l1106dgs28", "time-driver-any"]},
21 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0l1228pm", "time-driver-any"]},
22 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0g1107ycj", "time-driver-any"]},
23 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0g3105rhb", "time-driver-any"]},
24 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0g1505pt", "time-driver-any"]},
25 {target = "thumbv6m-none-eabi", features = ["defmt", "mspm0g1519rhb", "time-driver-any"]},
26]
27
12[package.metadata.embassy_docs] 28[package.metadata.embassy_docs]
13src_base = "https://github.com/embassy-rs/embassy/blob/embassy-mspm0-v$VERSION/embassy-mspm0/src/" 29src_base = "https://github.com/embassy-rs/embassy/blob/embassy-mspm0-v$VERSION/embassy-mspm0/src/"
14src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-mspm0/src/" 30src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-mspm0/src/"
diff --git a/embassy-net/Cargo.toml b/embassy-net/Cargo.toml
index babd63157..446e58489 100644
--- a/embassy-net/Cargo.toml
+++ b/embassy-net/Cargo.toml
@@ -13,6 +13,21 @@ categories = [
13 "network-programming", 13 "network-programming",
14] 14]
15 15
16[package.metadata.embassy]
17build = [
18 {target = "thumbv7em-none-eabi", features = ["defmt", "dns", "medium-ethernet", "packet-trace", "proto-ipv4", "tcp", "udp"]},
19 {target = "thumbv7em-none-eabi", features = ["defmt", "dns", "medium-ethernet", "multicast", "proto-ipv4", "tcp", "udp"]},
20 {target = "thumbv7em-none-eabi", features = ["defmt", "dhcpv4", "dns", "medium-ethernet", "tcp", "udp"]},
21 {target = "thumbv7em-none-eabi", features = ["defmt", "dhcpv4", "dhcpv4-hostname", "dns", "medium-ethernet", "tcp", "udp"]},
22 {target = "thumbv7em-none-eabi", features = ["defmt", "dns", "medium-ethernet", "proto-ipv6", "tcp", "udp"]},
23 {target = "thumbv7em-none-eabi", features = ["defmt", "dns", "medium-ieee802154", "proto-ipv6", "tcp", "udp"]},
24 {target = "thumbv7em-none-eabi", features = ["defmt", "dns", "medium-ethernet", "medium-ieee802154", "proto-ipv6", "tcp", "udp"]},
25 {target = "thumbv7em-none-eabi", features = ["defmt", "dns", "medium-ethernet", "proto-ipv4", "proto-ipv6", "tcp", "udp"]},
26 {target = "thumbv7em-none-eabi", features = ["defmt", "dns", "medium-ip", "proto-ipv4", "proto-ipv6", "tcp", "udp"]},
27 {target = "thumbv7em-none-eabi", features = ["defmt", "dns", "medium-ethernet", "medium-ip", "proto-ipv4", "proto-ipv6", "tcp", "udp"]},
28 {target = "thumbv7em-none-eabi", features = ["defmt", "dns", "medium-ethernet", "medium-ieee802154", "medium-ip", "proto-ipv4", "proto-ipv6", "tcp", "udp"]},
29]
30
16[package.metadata.embassy_docs] 31[package.metadata.embassy_docs]
17src_base = "https://github.com/embassy-rs/embassy/blob/embassy-net-v$VERSION/embassy-net/src/" 32src_base = "https://github.com/embassy-rs/embassy/blob/embassy-net-v$VERSION/embassy-net/src/"
18src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net/src/" 33src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net/src/"
diff --git a/embassy-nrf/Cargo.toml b/embassy-nrf/Cargo.toml
index 98013aa5b..ed701dac8 100644
--- a/embassy-nrf/Cargo.toml
+++ b/embassy-nrf/Cargo.toml
@@ -9,6 +9,36 @@ categories = ["embedded", "hardware-support", "no-std", "asynchronous"]
9repository = "https://github.com/embassy-rs/embassy" 9repository = "https://github.com/embassy-rs/embassy"
10documentation = "https://docs.embassy.dev/embassy-nrf" 10documentation = "https://docs.embassy.dev/embassy-nrf"
11 11
12[package.metadata.embassy]
13build = [
14 {target = "thumbv6m-none-eabi", features = ["gpiote", "nrf51", "time", "time-driver-rtc1"]},
15 {target = "thumbv7em-none-eabi", features = ["gpiote", "nrf52805", "time", "time-driver-rtc1"]},
16 {target = "thumbv7em-none-eabi", features = ["gpiote", "nrf52810", "time", "time-driver-rtc1"]},
17 {target = "thumbv7em-none-eabi", features = ["gpiote", "nrf52811", "time", "time-driver-rtc1"]},
18 {target = "thumbv7em-none-eabi", features = ["gpiote", "nrf52820", "time", "time-driver-rtc1"]},
19 {target = "thumbv7em-none-eabi", features = ["gpiote", "nrf52832", "reset-pin-as-gpio", "time", "time-driver-rtc1"]},
20 {target = "thumbv7em-none-eabi", features = ["gpiote", "nfc-pins-as-gpio", "nrf52833", "time", "time-driver-rtc1"]},
21 {target = "thumbv8m.main-none-eabihf", features = ["gpiote", "nrf9160-s", "time", "time-driver-rtc1"]},
22 {target = "thumbv8m.main-none-eabihf", features = ["gpiote", "nrf9160-ns", "time", "time-driver-rtc1"]},
23 {target = "thumbv8m.main-none-eabihf", features = ["gpiote", "nrf5340-app-s", "time", "time-driver-rtc1"]},
24 {target = "thumbv8m.main-none-eabihf", features = ["gpiote", "nrf5340-app-ns", "time", "time-driver-rtc1"]},
25 {target = "thumbv8m.main-none-eabihf", features = ["gpiote", "nrf5340-net", "time", "time-driver-rtc1"]},
26 {target = "thumbv8m.main-none-eabihf", features = ["gpiote", "nrf54l15-app-s", "time", "time-driver-rtc1"]},
27 {target = "thumbv8m.main-none-eabihf", features = ["gpiote", "nrf54l15-app-ns", "time", "time-driver-rtc1"]},
28 {target = "thumbv7em-none-eabi", features = ["gpiote", "nrf52840", "time"]},
29 {target = "thumbv7em-none-eabi", features = ["gpiote", "nrf52840", "time-driver-rtc1"]},
30 {target = "thumbv7em-none-eabi", features = ["gpiote", "nrf52840", "time", "time-driver-rtc1"]},
31 {target = "thumbv7em-none-eabi", features = ["gpiote", "log", "nrf52840", "time"]},
32 {target = "thumbv7em-none-eabi", features = ["gpiote", "log", "nrf52840", "time-driver-rtc1"]},
33 {target = "thumbv7em-none-eabi", features = ["gpiote", "log", "nrf52840", "time", "time-driver-rtc1"]},
34 {target = "thumbv7em-none-eabi", features = ["defmt", "gpiote", "nrf52840", "time"]},
35 {target = "thumbv7em-none-eabi", features = ["defmt", "gpiote", "nrf52840", "time-driver-rtc1"]},
36 {target = "thumbv7em-none-eabi", features = ["defmt", "gpiote", "nrf52840", "time", "time-driver-rtc1"]},
37 {target = "thumbv6m-none-eabi", features = ["defmt", "nrf51", "time", "time-driver-rtc1"]},
38 {target = "thumbv6m-none-eabi", features = ["defmt", "nrf51", "time"]},
39 {target = "thumbv6m-none-eabi", features = ["nrf51", "time"]},
40]
41
12[package.metadata.embassy_docs] 42[package.metadata.embassy_docs]
13src_base = "https://github.com/embassy-rs/embassy/blob/embassy-nrf-v$VERSION/embassy-nrf/src/" 43src_base = "https://github.com/embassy-rs/embassy/blob/embassy-nrf-v$VERSION/embassy-nrf/src/"
14src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-nrf/src/" 44src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-nrf/src/"
diff --git a/embassy-nxp/Cargo.toml b/embassy-nxp/Cargo.toml
index 3303cabdb..68f5c98b2 100644
--- a/embassy-nxp/Cargo.toml
+++ b/embassy-nxp/Cargo.toml
@@ -3,6 +3,13 @@ name = "embassy-nxp"
3version = "0.1.0" 3version = "0.1.0"
4edition = "2021" 4edition = "2021"
5 5
6[package.metadata.embassy]
7build = [
8 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "lpc55"]},
9 {target = "thumbv7em-none-eabihf", features = ["defmt", "mimxrt1011", "rt", "time-driver-pit"]},
10 {target = "thumbv7em-none-eabihf", features = ["defmt", "mimxrt1062", "rt", "time-driver-pit"]},
11]
12
6[package.metadata.embassy_docs] 13[package.metadata.embassy_docs]
7src_base = "https://github.com/embassy-rs/embassy/blob/embassy-nxp-v$VERSION/embassy-nxp/src/" 14src_base = "https://github.com/embassy-rs/embassy/blob/embassy-nxp-v$VERSION/embassy-nxp/src/"
8src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-nxp/src/" 15src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-nxp/src/"
diff --git a/embassy-rp/Cargo.toml b/embassy-rp/Cargo.toml
index 7f2167f90..a5f84944e 100644
--- a/embassy-rp/Cargo.toml
+++ b/embassy-rp/Cargo.toml
@@ -9,6 +9,17 @@ categories = ["embedded", "hardware-support", "no-std", "asynchronous"]
9repository = "https://github.com/embassy-rs/embassy" 9repository = "https://github.com/embassy-rs/embassy"
10documentation = "https://docs.embassy.dev/embassy-rp" 10documentation = "https://docs.embassy.dev/embassy-rp"
11 11
12[package.metadata.embassy]
13build = [
14 {target = "thumbv6m-none-eabi", features = ["defmt", "rp2040", "time-driver"]},
15 {target = "thumbv6m-none-eabi", features = ["log", "rp2040", "time-driver"]},
16 {target = "thumbv6m-none-eabi", features = ["intrinsics", "rp2040", "time-driver"]},
17 {target = "thumbv6m-none-eabi", features = ["qspi-as-gpio", "rp2040", "time-driver"]},
18 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "rp235xa", "time-driver"]},
19 {target = "thumbv8m.main-none-eabihf", features = ["log", "rp235xa", "time-driver"]},
20 {target = "thumbv8m.main-none-eabihf", features = ["binary-info", "rp235xa", "time-driver"]},
21]
22
12[package.metadata.embassy_docs] 23[package.metadata.embassy_docs]
13src_base = "https://github.com/embassy-rs/embassy/blob/embassy-rp-v$VERSION/embassy-rp/src/" 24src_base = "https://github.com/embassy-rs/embassy/blob/embassy-rp-v$VERSION/embassy-rp/src/"
14src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-rp/src/" 25src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-rp/src/"
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml
index 45b351acf..92d2e7fda 100644
--- a/embassy-stm32/Cargo.toml
+++ b/embassy-stm32/Cargo.toml
@@ -9,6 +9,99 @@ categories = ["embedded", "hardware-support", "no-std", "asynchronous"]
9repository = "https://github.com/embassy-rs/embassy" 9repository = "https://github.com/embassy-rs/embassy"
10documentation = "https://docs.embassy.dev/embassy-stm32" 10documentation = "https://docs.embassy.dev/embassy-stm32"
11 11
12[package.metadata.embassy]
13build = [
14 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "dual-bank", "exti", "stm32l552ze", "time", "time-driver-any"]},
15 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "dual-bank", "stm32l552ze", "time", "time-driver-any"]},
16 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "dual-bank", "exti", "stm32l552ze", "time"]},
17 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "dual-bank", "stm32l552ze", "time"]},
18 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "dual-bank", "exti", "stm32l552ze"]},
19 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "dual-bank", "stm32l552ze"]},
20 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "single-bank", "stm32l552ze"]},
21 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32c071rb", "time", "time-driver-any"]},
22 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32c051f6", "time", "time-driver-any"]},
23 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32c091gb", "time", "time-driver-any"]},
24 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32c092rc", "time", "time-driver-any"]},
25 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f038f6", "time", "time-driver-any"]},
26 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f030c6", "time", "time-driver-any"]},
27 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f058t8", "time", "time-driver-any"]},
28 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f030r8", "time", "time-driver-any"]},
29 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f031k6", "time", "time-driver-any"]},
30 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f030rc", "time", "time-driver-any"]},
31 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f070f6", "time", "time-driver-any"]},
32 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f078vb", "time", "time-driver-any"]},
33 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f042g4", "time", "time-driver-any"]},
34 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32f072c8", "time", "time-driver-any"]},
35 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f401ve", "time-driver-any"]},
36 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f405zg", "time-driver-any"]},
37 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f407zg", "time-driver-any"]},
38 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f401ve", "time", "time-driver-any"]},
39 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f405zg", "time", "time-driver-any"]},
40 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f407zg", "time", "time-driver-any"]},
41 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f410tb", "time", "time-driver-any"]},
42 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f411ce", "time", "time-driver-any"]},
43 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f412zg", "time", "time-driver-any"]},
44 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f413vh", "time", "time-driver-any"]},
45 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f415zg", "time", "time-driver-any"]},
46 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f417zg", "time", "time-driver-any"]},
47 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f423zh", "time", "time-driver-any"]},
48 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f427zi", "time", "time-driver-any"]},
49 {target = "thumbv7em-none-eabi", features = ["exti", "log", "stm32f429zi", "time", "time-driver-any"]},
50 {target = "thumbv7em-none-eabi", features = ["exti", "log", "stm32f437zi", "time", "time-driver-any"]},
51 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f439zi", "time", "time-driver-any"]},
52 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f446ze", "time", "time-driver-any"]},
53 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f469zi", "time", "time-driver-any"]},
54 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f479zi", "time", "time-driver-any"]},
55 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f730i8", "time", "time-driver-any"]},
56 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32h753zi", "time", "time-driver-any"]},
57 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32h735zg", "time", "time-driver-any"]},
58 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "split-pc2", "split-pc3", "stm32h755zi-cm7", "time", "time-driver-any"]},
59 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32h725re", "time", "time-driver-any"]},
60 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32h7b3ai", "time", "time-driver-any"]},
61 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32h7b3ai", "time", "time-driver-tim1"]},
62 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32h7r3z8", "time", "time-driver-tim1"]},
63 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32h7r7a8", "time", "time-driver-tim1"]},
64 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32h7s3a8", "time", "time-driver-tim1"]},
65 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32h7s7z8", "time", "time-driver-tim1"]},
66 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32l431cb", "time", "time-driver-any"]},
67 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32l476vg", "time", "time-driver-any"]},
68 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32l422cb", "time", "time-driver-any"]},
69 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32wb15cc", "time", "time-driver-any"]},
70 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32l072cz", "time", "time-driver-any"]},
71 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32l041f6", "time", "time-driver-any"]},
72 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32l051k8", "time", "time-driver-any"]},
73 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "low-power", "stm32l073cz", "time", "time-driver-any"]},
74 {target = "thumbv7m-none-eabi", features = ["defmt", "exti", "stm32l151cb-a", "time", "time-driver-any"]},
75 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f303c8", "time", "time-driver-any"]},
76 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f398ve", "time", "time-driver-any"]},
77 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32f378cc", "time", "time-driver-any"]},
78 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32g0b0ce", "time", "time-driver-any"]},
79 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32g0c1ve", "time", "time-driver-any"]},
80 {target = "thumbv7m-none-eabi", features = ["defmt", "exti", "stm32f217zg", "time", "time-driver-any"]},
81 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "dual-bank", "exti", "low-power", "stm32l552ze", "time", "time-driver-any"]},
82 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32wl54jc-cm0p", "time", "time-driver-any"]},
83 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32wle5jb", "time", "time-driver-any"]},
84 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32g431kb", "time", "time-driver-any"]},
85 {target = "thumbv7em-none-eabi", features = ["defmt", "dual-bank", "exti", "stm32g474pe", "time", "time-driver-any"]},
86 {target = "thumbv7m-none-eabi", features = ["defmt", "exti", "stm32f107vc", "time", "time-driver-any"]},
87 {target = "thumbv7m-none-eabi", features = ["defmt", "exti", "stm32f103re", "time", "time-driver-any"]},
88 {target = "thumbv7m-none-eabi", features = ["defmt", "exti", "stm32f100c4", "time", "time-driver-any"]},
89 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "exti", "stm32h503rb", "time", "time-driver-any"]},
90 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "exti", "stm32h523cc", "time", "time-driver-any"]},
91 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "exti", "stm32h562ag", "time", "time-driver-any"]},
92 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "exti", "stm32wba50ke", "time", "time-driver-any"]},
93 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "exti", "stm32wba55ug", "time", "time-driver-any"]},
94 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "exti", "stm32wba62cg", "time", "time-driver-any"]},
95 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "exti", "low-power", "stm32wba65ri", "time", "time-driver-any"]},
96 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "exti", "stm32u5f9zj", "time", "time-driver-any"]},
97 {target = "thumbv8m.main-none-eabihf", features = ["defmt", "exti", "stm32u5g9nj", "time", "time-driver-any"]},
98 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "stm32wb35ce", "time", "time-driver-any"]},
99 {target = "thumbv7em-none-eabi", features = ["defmt", "exti", "low-power", "stm32wb55rg", "time", "time-driver-any"]},
100 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32u031r8", "time", "time-driver-any"]},
101 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32u073mb", "time", "time-driver-any"]},
102 {target = "thumbv6m-none-eabi", features = ["defmt", "exti", "stm32u083rc", "time", "time-driver-any"]},
103]
104
12[package.metadata.embassy_docs] 105[package.metadata.embassy_docs]
13src_base = "https://github.com/embassy-rs/embassy/blob/embassy-stm32-v$VERSION/embassy-stm32/src/" 106src_base = "https://github.com/embassy-rs/embassy/blob/embassy-stm32-v$VERSION/embassy-stm32/src/"
14src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-stm32/src/" 107src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-stm32/src/"
diff --git a/embassy-sync/Cargo.toml b/embassy-sync/Cargo.toml
index e60f5e34c..e31c9a674 100644
--- a/embassy-sync/Cargo.toml
+++ b/embassy-sync/Cargo.toml
@@ -14,6 +14,11 @@ categories = [
14 "asynchronous", 14 "asynchronous",
15] 15]
16 16
17[package.metadata.embassy]
18build = [
19 {target = "thumbv6m-none-eabi", features = ["defmt"]},
20]
21
17[package.metadata.embassy_docs] 22[package.metadata.embassy_docs]
18src_base = "https://github.com/embassy-rs/embassy/blob/embassy-sync-v$VERSION/embassy-sync/src/" 23src_base = "https://github.com/embassy-rs/embassy/blob/embassy-sync-v$VERSION/embassy-sync/src/"
19src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-sync/src/" 24src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-sync/src/"
diff --git a/embassy-time-queue-utils/Cargo.toml b/embassy-time-queue-utils/Cargo.toml
index 8991da66c..2a659548e 100644
--- a/embassy-time-queue-utils/Cargo.toml
+++ b/embassy-time-queue-utils/Cargo.toml
@@ -52,6 +52,12 @@ generic-queue-128 = ["_generic-queue"]
52 52
53_generic-queue = [] 53_generic-queue = []
54 54
55[package.metadata.embassy]
56build = [
57 {target = "thumbv6m-none-eabi", features = []},
58 {target = "thumbv6m-none-eabi", features = ["generic-queue-8"]},
59]
60
55[package.metadata.embassy_docs] 61[package.metadata.embassy_docs]
56src_base = "https://github.com/embassy-rs/embassy/blob/embassy-time-queue-utils-v$VERSION/embassy-time-queue-utils/src/" 62src_base = "https://github.com/embassy-rs/embassy/blob/embassy-time-queue-utils-v$VERSION/embassy-time-queue-utils/src/"
57src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-time-queue-utils/src/" 63src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-time-queue-utils/src/"
diff --git a/embassy-time/Cargo.toml b/embassy-time/Cargo.toml
index 163dbe95f..eff8e2975 100644
--- a/embassy-time/Cargo.toml
+++ b/embassy-time/Cargo.toml
@@ -14,6 +14,12 @@ categories = [
14 "asynchronous", 14 "asynchronous",
15] 15]
16 16
17[package.metadata.embassy]
18build = [
19 {target = "thumbv6m-none-eabi", features = ["defmt", "defmt-timestamp-uptime", "mock-driver"]},
20 {features = ["defmt", "std"]},
21]
22
17[package.metadata.embassy_docs] 23[package.metadata.embassy_docs]
18src_base = "https://github.com/embassy-rs/embassy/blob/embassy-time-v$VERSION/embassy-time/src/" 24src_base = "https://github.com/embassy-rs/embassy/blob/embassy-time-v$VERSION/embassy-time/src/"
19src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-time/src/" 25src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-time/src/"
diff --git a/embassy-usb/Cargo.toml b/embassy-usb/Cargo.toml
index 93e3e1e31..89b3c318d 100644
--- a/embassy-usb/Cargo.toml
+++ b/embassy-usb/Cargo.toml
@@ -9,6 +9,17 @@ categories = ["embedded", "hardware-support", "no-std", "asynchronous"]
9repository = "https://github.com/embassy-rs/embassy" 9repository = "https://github.com/embassy-rs/embassy"
10documentation = "https://docs.embassy.dev/embassy-usb" 10documentation = "https://docs.embassy.dev/embassy-usb"
11 11
12[package.metadata.embassy]
13build = [
14 {target = "thumbv6m-none-eabi", features = []},
15 {target = "thumbv6m-none-eabi", features = ["log"]},
16 {target = "thumbv6m-none-eabi", features = ["defmt"]},
17 {target = "thumbv6m-none-eabi", features = ["usbd-hid"]},
18 {target = "thumbv6m-none-eabi", features = ["max-interface-count-1"]},
19 {target = "thumbv6m-none-eabi", features = ["max-interface-count-8"]},
20 {target = "thumbv6m-none-eabi", features = ["max-handler-count-8"]},
21]
22
12[package.metadata.embassy_docs] 23[package.metadata.embassy_docs]
13src_base = "https://github.com/embassy-rs/embassy/blob/embassy-usb-v$VERSION/embassy-usb/src/" 24src_base = "https://github.com/embassy-rs/embassy/blob/embassy-usb-v$VERSION/embassy-usb/src/"
14src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-usb/src/" 25src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-usb/src/"
diff --git a/release/Cargo.toml b/release/Cargo.toml
index 461021e0a..3e4094eed 100644
--- a/release/Cargo.toml
+++ b/release/Cargo.toml
@@ -19,5 +19,8 @@ simple_logger = "5.0.0"
19temp-file = "0.1.9" 19temp-file = "0.1.9"
20flate2 = "1.1.1" 20flate2 = "1.1.1"
21 21
22[patch.crates-io] 22#[patch.crates-io]
23cargo-semver-checks = { path = "../../cargo-semver-checks" } 23#cargo-semver-checks = { path = "../../cargo-semver-checks" }
24
25[package.metadata.embassy]
26skip = true
diff --git a/release/config.toml b/release/config.toml
deleted file mode 100644
index 014c73a91..000000000
--- a/release/config.toml
+++ /dev/null
@@ -1,46 +0,0 @@
1
2embassy-stm32 = { features = ["defmt", "unstable-pac", "exti", "time-driver-any", "time", "stm32h755zi-cm7", "dual-bank"], target = "thumbv7em-none-eabi" }
3embassy-nrf = { features = ["nrf52840", "time", "defmt", "unstable-pac", "gpiote", "time-driver-rtc1"], target = "thumbv7em-none-eabihf" }
4
5embassy-rp = { features = ["defmt", "unstable-pac", "time-driver", "rp2040"], target = "thumbv6m-none-eabi" }
6cyw43 = { features = ["defmt", "firmware-logs"], target = "thumbv6m-none-eabi" }
7cyw43-pio = { features = ["defmt", "embassy-rp/rp2040"], target = "thumbv6m-none-eabi" }
8
9embassy-boot = { features = ["defmt"] }
10embassy-boot-nrf = { features = ["defmt", "embassy-nrf/nrf52840"], target = "thumbv7em-none-eabihf" }
11embassy-boot-rp = { features = ["defmt", "embassy-rp/rp2040"], target = "thumbv6m-none-eabi" }
12embassy-boot-stm32 = { features = ["defmt", "embassy-stm32/stm32f429zi"], target = "thumbv7em-none-eabi" }
13
14embassy-time = { features = ["defmt", "std"] }
15embassy-time-driver = { }
16embassy-time-queue-utils = { features = ["defmt"] }
17
18embassy-futures = { }
19embassy-embedded-hal = { features = ["time"] }
20embassy-hal-internal = { }
21embassy-executor = { features = ["defmt", "arch-cortex-m", "executor-thread", "executor-interrupt"], target = "thumbv7em-none-eabi" }
22embassy-executor-macros = { }
23embassy-sync = { }
24
25embassy-net = { features = ["defmt", "tcp", "udp", "raw", "dns", "icmp", "dhcpv4", "proto-ipv6", "medium-ethernet", "medium-ip", "medium-ieee802154", "multicast", "dhcpv4-hostname"] }
26embassy-net-ppp = { }
27embassy-net-esp-hosted = {}
28embassy-net-driver-channel = {}
29embassy-net-wiznet = {}
30embassy-net-nrf91 = { features = ["defmt", "nrf-pac/nrf9160"] }
31embassy-net-driver = {}
32embassy-net-tuntap = {}
33embassy-net-adin1110 = {}
34embassy-net-enc28j60 = {}
35
36embassy-usb-driver = { }
37embassy-usb-dfu = { features = ["dfu"] }
38embassy-usb-synopsys-otg = { }
39embassy-usb = { features = ["defmt", "usbd-hid"] }
40embassy-usb-logger = { }
41
42# Unreleased
43# embassy-stm32-wpan = {}
44# embassy-imxrt = {}
45# embassy-nxp = {}
46# embassy-mspm0 = {}
diff --git a/release/src/main.rs b/release/src/main.rs
index 0dbcc5d45..a49d8f36c 100644
--- a/release/src/main.rs
+++ b/release/src/main.rs
@@ -1,4 +1,3 @@
1use simple_logger::SimpleLogger;
2use std::collections::{BTreeMap, HashMap}; 1use std::collections::{BTreeMap, HashMap};
3use std::fs; 2use std::fs;
4use std::path::{Path, PathBuf}; 3use std::path::{Path, PathBuf};
@@ -6,9 +5,11 @@ use std::process::Command as ProcessCommand;
6 5
7use anyhow::{anyhow, Result}; 6use anyhow::{anyhow, Result};
8use clap::{Parser, Subcommand}; 7use clap::{Parser, Subcommand};
8use log::info;
9use petgraph::graph::{Graph, NodeIndex}; 9use petgraph::graph::{Graph, NodeIndex};
10use petgraph::visit::Bfs; 10use petgraph::visit::Bfs;
11use petgraph::{Directed, Direction}; 11use petgraph::{Directed, Direction};
12use simple_logger::SimpleLogger;
12use toml_edit::{DocumentMut, Item, Value}; 13use toml_edit::{DocumentMut, Item, Value};
13use types::*; 14use types::*;
14 15
@@ -63,15 +64,6 @@ enum Command {
63 }, 64 },
64} 65}
65 66
66fn load_release_config(repo: &Path) -> ReleaseConfig {
67 let config_path = repo.join("release/config.toml");
68 if !config_path.exists() {
69 return HashMap::new();
70 }
71 let content = fs::read_to_string(&config_path).expect("Failed to read release/config.toml");
72 toml::from_str(&content).expect("Invalid TOML format in release/config.toml")
73}
74
75fn update_version(c: &mut Crate, new_version: &str) -> Result<()> { 67fn update_version(c: &mut Crate, new_version: &str) -> Result<()> {
76 let path = c.path.join("Cargo.toml"); 68 let path = c.path.join("Cargo.toml");
77 c.version = new_version.to_string(); 69 c.version = new_version.to_string();
@@ -122,12 +114,10 @@ fn update_versions(to_update: &Crate, dep: &CrateId, new_version: &str) -> Resul
122 114
123fn list_crates(root: &PathBuf) -> Result<BTreeMap<CrateId, Crate>> { 115fn list_crates(root: &PathBuf) -> Result<BTreeMap<CrateId, Crate>> {
124 let d = std::fs::read_dir(root)?; 116 let d = std::fs::read_dir(root)?;
125 let release_config = load_release_config(root);
126 let mut crates = BTreeMap::new(); 117 let mut crates = BTreeMap::new();
127 for c in d { 118 for c in d {
128 let entry = c?; 119 let entry = c?;
129 let name = entry.file_name().to_str().unwrap().to_string(); 120 if entry.file_type()?.is_dir() {
130 if entry.file_type()?.is_dir() && name.starts_with("embassy-") {
131 let path = root.join(entry.path()); 121 let path = root.join(entry.path());
132 let entry = path.join("Cargo.toml"); 122 let entry = path.join("Cargo.toml");
133 if entry.exists() { 123 if entry.exists() {
@@ -135,6 +125,8 @@ fn list_crates(root: &PathBuf) -> Result<BTreeMap<CrateId, Crate>> {
135 let parsed: ParsedCrate = toml::from_str(&content)?; 125 let parsed: ParsedCrate = toml::from_str(&content)?;
136 let id = parsed.package.name; 126 let id = parsed.package.name;
137 127
128 let metadata = &parsed.package.metadata.embassy;
129
138 let mut dependencies = Vec::new(); 130 let mut dependencies = Vec::new();
139 for (k, _) in parsed.dependencies { 131 for (k, _) in parsed.dependencies {
140 if k.starts_with("embassy-") { 132 if k.starts_with("embassy-") {
@@ -142,18 +134,19 @@ fn list_crates(root: &PathBuf) -> Result<BTreeMap<CrateId, Crate>> {
142 } 134 }
143 } 135 }
144 136
145 if let Some(config) = release_config.get(&id) { 137 crates.insert(
146 crates.insert( 138 id.clone(),
147 id.clone(), 139 Crate {
148 Crate { 140 name: id,
149 name: id, 141 version: parsed.package.version,
150 version: parsed.package.version, 142 path,
151 path, 143 dependencies,
152 dependencies, 144 config: metadata.build.first().cloned().unwrap_or_else(|| BuildConfig {
153 config: config.clone(), 145 features: vec![],
154 }, 146 target: None,
155 ); 147 }),
156 } 148 },
149 );
157 } 150 }
158 } 151 }
159 } 152 }
@@ -313,10 +306,8 @@ fn main() -> Result<()> {
313 c.path.join("Cargo.toml").display().to_string(), 306 c.path.join("Cargo.toml").display().to_string(),
314 ]; 307 ];
315 308
316 if let Some(features) = &c.config.features { 309 args.push("--features".into());
317 args.push("--features".into()); 310 args.push(c.config.features.join(","));
318 args.push(features.join(","));
319 }
320 311
321 if let Some(target) = &c.config.target { 312 if let Some(target) = &c.config.target {
322 args.push("--target".into()); 313 args.push("--target".into());
@@ -376,10 +367,8 @@ fn publish_release(_repo: &Path, c: &Crate, push: bool) -> Result<()> {
376 c.path.join("Cargo.toml").display().to_string(), 367 c.path.join("Cargo.toml").display().to_string(),
377 ]; 368 ];
378 369
379 if let Some(features) = &c.config.features { 370 args.push("--features".into());
380 args.push("--features".into()); 371 args.push(c.config.features.join(","));
381 args.push(features.join(","));
382 }
383 372
384 if let Some(target) = &c.config.target { 373 if let Some(target) = &c.config.target {
385 args.push("--target".into()); 374 args.push("--target".into());
diff --git a/release/src/semver_check.rs b/release/src/semver_check.rs
index 7b2e50672..96f8ebe2e 100644
--- a/release/src/semver_check.rs
+++ b/release/src/semver_check.rs
@@ -23,11 +23,9 @@ pub fn minimum_update(krate: &Crate) -> Result<ReleaseType, anyhow::Error> {
23 semver_check.with_default_features(); 23 semver_check.with_default_features();
24 semver_check.set_baseline(baseline); 24 semver_check.set_baseline(baseline);
25 semver_check.set_packages(vec![package_name]); 25 semver_check.set_packages(vec![package_name]);
26 if let Some(features) = &krate.config.features { 26 let extra_current_features = krate.config.features.clone();
27 let extra_current_features = features.clone(); 27 let extra_baseline_features = krate.config.features.clone();
28 let extra_baseline_features = features.clone(); 28 semver_check.set_extra_features(extra_current_features, extra_baseline_features);
29 semver_check.set_extra_features(extra_current_features, extra_baseline_features);
30 }
31 if let Some(target) = &krate.config.target { 29 if let Some(target) = &krate.config.target {
32 semver_check.set_build_target(target.clone()); 30 semver_check.set_build_target(target.clone());
33 } 31 }
@@ -70,11 +68,7 @@ pub(crate) fn build_doc_json(krate: &Crate) -> Result<PathBuf, anyhow::Error> {
70 .join(format!("{}.json", krate.name.to_string().replace("-", "_"))); 68 .join(format!("{}.json", krate.name.to_string().replace("-", "_")));
71 69
72 std::fs::remove_file(&current_path).ok(); 70 std::fs::remove_file(&current_path).ok();
73 let features = if let Some(features) = &krate.config.features { 71 let features = krate.config.features.clone();
74 features.clone()
75 } else {
76 vec![]
77 };
78 72
79 log::info!("Building doc json for {} with features: {:?}", krate.name, features); 73 log::info!("Building doc json for {} with features: {:?}", krate.name, features);
80 74
diff --git a/release/src/types.rs b/release/src/types.rs
index 56a886e6f..39e8e9f48 100644
--- a/release/src/types.rs
+++ b/release/src/types.rs
@@ -1,7 +1,8 @@
1use serde::Deserialize;
2use std::collections::{BTreeMap, HashMap}; 1use std::collections::{BTreeMap, HashMap};
3use std::path::PathBuf; 2use std::path::PathBuf;
4 3
4use serde::Deserialize;
5
5#[derive(Debug, Deserialize)] 6#[derive(Debug, Deserialize)]
6pub struct ParsedCrate { 7pub struct ParsedCrate {
7 pub package: ParsedPackage, 8 pub package: ParsedPackage,
@@ -12,15 +13,31 @@ pub struct ParsedCrate {
12pub struct ParsedPackage { 13pub struct ParsedPackage {
13 pub name: String, 14 pub name: String,
14 pub version: String, 15 pub version: String,
16 #[serde(default)]
17 pub metadata: Metadata,
18}
19
20#[derive(Debug, Deserialize, Default)]
21pub struct Metadata {
22 #[serde(default)]
23 pub embassy: MetadataEmbassy,
24}
25
26#[derive(Debug, Deserialize, Default)]
27pub struct MetadataEmbassy {
28 #[serde(default)]
29 pub skip: bool,
30 #[serde(default)]
31 pub build: Vec<BuildConfig>,
15} 32}
16 33
17#[derive(Debug, Clone, Deserialize)] 34#[derive(Debug, Clone, Deserialize)]
18pub struct CrateConfig { 35pub struct BuildConfig {
19 pub features: Option<Vec<String>>, 36 #[serde(default)]
37 pub features: Vec<String>,
20 pub target: Option<String>, 38 pub target: Option<String>,
21} 39}
22 40
23pub type ReleaseConfig = HashMap<String, CrateConfig>;
24pub type CrateId = String; 41pub type CrateId = String;
25 42
26#[derive(Debug, Clone)] 43#[derive(Debug, Clone)]
@@ -28,6 +45,6 @@ pub struct Crate {
28 pub name: String, 45 pub name: String,
29 pub version: String, 46 pub version: String,
30 pub path: PathBuf, 47 pub path: PathBuf,
31 pub config: CrateConfig,
32 pub dependencies: Vec<CrateId>, 48 pub dependencies: Vec<CrateId>,
49 pub config: BuildConfig, // TODO make this a vec.
33} 50}