Skip to content

Commit 2b6a0f8

Browse files
bors[bot]tmpltjonathanpallant
authored
Merge #589
589: rfcs: add move_itm_crate r=therealprof a=tmplt As discussed in [the Matrix chat (from 2021-11-31--2021-12-01)](https://matrix.to/#/!BHcierreUuwCMxVqOf:matrix.org/$OcmpjhKy4iOk_5uQyhUpfVDA5_MtnNc1PkHVUDodSc8?via=matrix.org&via=psion.agg.io&via=beeper.com) here is an RFC proposing the disown/move of the [`itm`](https://crates.io/crates/itm) crate and repo for continued development outside of the WG. [Rendered RFC](https://github.com/tmplt/wg/blob/move-itm-crate/rfcs/0000-move-itm-crate.md) Co-authored-by: Viktor Sonesten <v@tmplt.dev> Co-authored-by: Jonathan Pallant <jonathan.pallant@ferrous-systems.com> Co-authored-by: Viktor Vilhelm Sonesten <v@tmplt.dev>
2 parents 292ef1f + df468ce commit 2b6a0f8

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

rfcs/0000-move-itm-crate.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
- Feature Name: move_itm_crate
2+
- Start Date: 2021-12-01
3+
- RFC PR: (leave this empty)
4+
- Rust Issue: (leave this empty)
5+
6+
# Summary
7+
[summary]: #summary
8+
9+
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).
10+
11+
# Motivation
12+
[motivation]: #motivation
13+
14+
`rust-embedded/itm` has been effectively superseded by the `rtic-scope/itm` fork.
15+
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.
16+
Planned future functionality at the time of writing is
17+
- 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
18+
- an asynchronous API.
19+
20+
This fork also offers an `itm-decode` CLI tool that replaces `itmdump`.
21+
22+
[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).
23+
Merging this pull-request would require the WG to support a new code base and vet any future changes to its implementation and API.
24+
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.
25+
Questions whether host-side ITM software should be handled under the WG also arose.
26+
A consensus regarding the merge was not reached.
27+
28+
A compromise is thus proposed:
29+
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).
30+
After publisher access has been granted, `itm v0.4.0` shall be releases that breaks compatibility with previous releases.
31+
After the fork has stabilized discussion on whether to adopt the crate back into the WG again can resume.
32+
The crate is unlikely to stabilize before Q1 2022.
33+
34+
# Unresolved questions
35+
[unresolved]: #unresolved-questions
36+
37+
Whether the `itm` crate should ultimately be maintained by the WG.

0 commit comments

Comments
 (0)