From b5611facdba16f57e3dc66a2b4a76b10eca9e063 Mon Sep 17 00:00:00 2001 From: Viktor Sonesten Date: Wed, 1 Dec 2021 15:16:15 +0100 Subject: [PATCH 1/5] rfcs: add move_itm_crate --- rfcs/0000-move-itm-crate.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 rfcs/0000-move-itm-crate.md diff --git a/rfcs/0000-move-itm-crate.md b/rfcs/0000-move-itm-crate.md new file mode 100644 index 00000000..87403fe8 --- /dev/null +++ b/rfcs/0000-move-itm-crate.md @@ -0,0 +1,36 @@ +- Feature Name: move_itm_crate +- Start Date: 2021-12-01 +- RFC PR: (leave this empty) +- Rust Issue: (leave this empty) + +# Summary +[summary]: #summary + +Disown from the Cortex-M Working Group (henceforth referred to as the "WG") and move the [`itm`](https://github.com/rust-embedded/itm) repo and [crates.io registery entry](https://crates.io/crates/itm) to @tmplt. + +# Motivation +[motivation]: #motivation + +The `itm` crate has been effectively superseeded by [`itm-decode`](https://crates.io/crates/itm-decode), specifially the [`rtic-scope:master`](https://github.com/rust-embedded/itm/pull/41) fork. +This fork offers, in addition to the functionality of the `itm` crate, an `Iterator`-based design, more granular error enums, synchronization packet support, and timestamp generation of trace packets. +Planned future functionality at the time of writing is +- arbitration of instrumentation and extension packets such that payloads written on the target device via `cortex_m::iprint("message/payload")` can be trivially decodede by the library end-user; and +- an asynchronous API. + +This fork also offers an `itm-decode` CLI tool that replaces `itmdump`. + +The pull-request replacing `itm` with the fork under the umbrella of the WG was discussed during [yesterday's (2021-11-31) Matrix chat meeting](https://matrix.to/#/!BHcierreUuwCMxVqOf:matrix.org/$OcmpjhKy4iOk_5uQyhUpfVDA5_MtnNc1PkHVUDodSc8?via=matrix.org&via=psion.agg.io&via=beeper.com). +Merging this pull-request would require the WG to support a new code base and vet any future changes to its implementation and API. +As the library has yet to stabilize rapid changes can thus be expected which may cause release friction due to the vetting required by at least one WG member that is not proposing the changes themselves. +Questions whether host-side ITM software should be handled under the WG also arose. +A consensus regarding the merge was not reached. + +An inbetween approach is thus proposed: +disown from the WG and move ownership of the `itm` repo and crate to @tmplt such that development can continue without friction, and so that there is one canonical ITM decoding crate to avoid end-user confusion. +After the pull-request discussed above have been merged and the crate has stabilized discussion on whether to adopt the crate into the WG again can resume. +The crate is unlikely to stabilize before Q1 2022. + +# Unresolved questions +[unresolved]: #unresolved-questions + +Whether the `itm` crate should ultimately be maintained by the WG. From 238c90f20f145f6035eaf99f44c73bf97ecfd238 Mon Sep 17 00:00:00 2001 From: Jonathan Pallant Date: Wed, 1 Dec 2021 16:02:16 +0000 Subject: [PATCH 2/5] Replace Cortex-M Working Group with Rust Embedded Working Group --- rfcs/0000-move-itm-crate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcs/0000-move-itm-crate.md b/rfcs/0000-move-itm-crate.md index 87403fe8..2be5d46c 100644 --- a/rfcs/0000-move-itm-crate.md +++ b/rfcs/0000-move-itm-crate.md @@ -6,7 +6,7 @@ # Summary [summary]: #summary -Disown from the Cortex-M Working Group (henceforth referred to as the "WG") and move the [`itm`](https://github.com/rust-embedded/itm) repo and [crates.io registery entry](https://crates.io/crates/itm) to @tmplt. +Disown from the Rust-Embedded Working Group (henceforth referred to as the "WG") and move the [`itm`](https://github.com/rust-embedded/itm) repo and [crates.io registery entry](https://crates.io/crates/itm) to @tmplt. # Motivation [motivation]: #motivation From 130c1c2669a1c032fddd4b6cdd85a84f4223f20c Mon Sep 17 00:00:00 2001 From: Viktor Vilhelm Sonesten Date: Tue, 14 Dec 2021 14:30:25 +0100 Subject: [PATCH 3/5] move_itm_crate: spelling Co-authored-by: Daniel Egger --- rfcs/0000-move-itm-crate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcs/0000-move-itm-crate.md b/rfcs/0000-move-itm-crate.md index 2be5d46c..008a7681 100644 --- a/rfcs/0000-move-itm-crate.md +++ b/rfcs/0000-move-itm-crate.md @@ -14,7 +14,7 @@ Disown from the Rust-Embedded Working Group (henceforth referred to as the "WG") The `itm` crate has been effectively superseeded by [`itm-decode`](https://crates.io/crates/itm-decode), specifially the [`rtic-scope:master`](https://github.com/rust-embedded/itm/pull/41) fork. This fork offers, in addition to the functionality of the `itm` crate, an `Iterator`-based design, more granular error enums, synchronization packet support, and timestamp generation of trace packets. Planned future functionality at the time of writing is -- arbitration of instrumentation and extension packets such that payloads written on the target device via `cortex_m::iprint("message/payload")` can be trivially decodede by the library end-user; and +- arbitration of instrumentation and extension packets such that payloads written on the target device via `cortex_m::iprint("message/payload")` can be trivially decoded by the library end-user; and - an asynchronous API. This fork also offers an `itm-decode` CLI tool that replaces `itmdump`. From 11e93219cc70e037cd754600a12e47cf6b55d97c Mon Sep 17 00:00:00 2001 From: Viktor Sonesten Date: Tue, 14 Dec 2021 14:50:30 +0100 Subject: [PATCH 4/5] move_itm_crate: simplify, amend --- rfcs/0000-move-itm-crate.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rfcs/0000-move-itm-crate.md b/rfcs/0000-move-itm-crate.md index 008a7681..6523a588 100644 --- a/rfcs/0000-move-itm-crate.md +++ b/rfcs/0000-move-itm-crate.md @@ -6,28 +6,28 @@ # Summary [summary]: #summary -Disown from the Rust-Embedded Working Group (henceforth referred to as the "WG") and move the [`itm`](https://github.com/rust-embedded/itm) repo and [crates.io registery entry](https://crates.io/crates/itm) to @tmplt. +Archive [`rust-embedded/itm`](https://github.com/rust-embedded/itm) with a deprecation notice in favour of [`rtic-scope/itm`](https://github.com/rtic-scope/itm). # Motivation [motivation]: #motivation -The `itm` crate has been effectively superseeded by [`itm-decode`](https://crates.io/crates/itm-decode), specifially the [`rtic-scope:master`](https://github.com/rust-embedded/itm/pull/41) fork. -This fork offers, in addition to the functionality of the `itm` crate, an `Iterator`-based design, more granular error enums, synchronization packet support, and timestamp generation of trace packets. +`rust-embedded/itm` has been effectively superseded by the `rtic-scope/itm` fork. +This fork offers, in addition to the functionality of the previous implementation (v0.3), an `Iterator`-based design, more granular error enums, synchronization packet support, and timestamp generation of trace packets. Planned future functionality at the time of writing is -- arbitration of instrumentation and extension packets such that payloads written on the target device via `cortex_m::iprint("message/payload")` can be trivially decoded by the library end-user; and +- arbitration of instrumentation and extension packets such that payloads written on the target device via `cortex_m::iprint("message/payload")` (or similar API) can be trivially decoded by the library end-user; and - an asynchronous API. This fork also offers an `itm-decode` CLI tool that replaces `itmdump`. -The pull-request replacing `itm` with the fork under the umbrella of the WG was discussed during [yesterday's (2021-11-31) Matrix chat meeting](https://matrix.to/#/!BHcierreUuwCMxVqOf:matrix.org/$OcmpjhKy4iOk_5uQyhUpfVDA5_MtnNc1PkHVUDodSc8?via=matrix.org&via=psion.agg.io&via=beeper.com). +[A pull-request replacing `rust-embedded/itm`](https://github.com/rust-embedded/itm/pull/41) with the fork under the umbrella of the Rust-Embedded Working Group (WG) was discussed during [a Matrix chat meeting (held 2021-11-31)](https://matrix.to/#/!BHcierreUuwCMxVqOf:matrix.org/$OcmpjhKy4iOk_5uQyhUpfVDA5_MtnNc1PkHVUDodSc8?via=matrix.org&via=psion.agg.io&via=beeper.com). Merging this pull-request would require the WG to support a new code base and vet any future changes to its implementation and API. As the library has yet to stabilize rapid changes can thus be expected which may cause release friction due to the vetting required by at least one WG member that is not proposing the changes themselves. Questions whether host-side ITM software should be handled under the WG also arose. A consensus regarding the merge was not reached. -An inbetween approach is thus proposed: -disown from the WG and move ownership of the `itm` repo and crate to @tmplt such that development can continue without friction, and so that there is one canonical ITM decoding crate to avoid end-user confusion. -After the pull-request discussed above have been merged and the crate has stabilized discussion on whether to adopt the crate into the WG again can resume. +A compromise is thus proposed: +archive `rust-embedded/itm` with a deprecation notice that points to the fork's repository at `https://github.com/rtic-scope/itm`, and give its maintainer (@tmplt) publish access to [the crates.io registery entry of `itm`](https://crates.io/crates/itm). +After the fork has stabilized discussion on whether to adopt the crate back into the WG again can resume. The crate is unlikely to stabilize before Q1 2022. # Unresolved questions From df468ced2faf716928efee81bd20d96fd57d8ea9 Mon Sep 17 00:00:00 2001 From: Viktor Sonesten Date: Tue, 14 Dec 2021 14:55:45 +0100 Subject: [PATCH 5/5] move_itm_crate: add note to release an itm v0.4.0 --- rfcs/0000-move-itm-crate.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rfcs/0000-move-itm-crate.md b/rfcs/0000-move-itm-crate.md index 6523a588..1657f96b 100644 --- a/rfcs/0000-move-itm-crate.md +++ b/rfcs/0000-move-itm-crate.md @@ -27,6 +27,7 @@ A consensus regarding the merge was not reached. A compromise is thus proposed: archive `rust-embedded/itm` with a deprecation notice that points to the fork's repository at `https://github.com/rtic-scope/itm`, and give its maintainer (@tmplt) publish access to [the crates.io registery entry of `itm`](https://crates.io/crates/itm). +After publisher access has been granted, `itm v0.4.0` shall be releases that breaks compatibility with previous releases. After the fork has stabilized discussion on whether to adopt the crate back into the WG again can resume. The crate is unlikely to stabilize before Q1 2022.