Skip to content

Commit 5b3923d

Browse files
authored
Merge pull request #770 from rust-embedded/db-triage
discovery book triage rfc version 2
2 parents 83deec8 + 34c1850 commit 5b3923d

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed

rfcs/0770-discovery-book-triage.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
- Feature Name: Embedded Discovery Book Triage
2+
- Start Date: 2024-05-21
3+
- RFC PR: #770
4+
- Rust Issue: (leave this empty)
5+
6+
# Summary
7+
[summary]: #summary
8+
9+
Triage the current Embedded Discovery Books; a single BBC micro:bit v2
10+
Embedded Discovery Book becomes the current active working version.
11+
12+
# Motivation
13+
[motivation]: #motivation
14+
15+
Right now there are two "official" versions of the Embedded
16+
Discovery Book (EDB) in a single repo. The older and
17+
slightly more complete version is the original STM32
18+
Embedded Discovery Book
19+
([EDB-STM](https://docs.rust-embedded.org/discovery/f3discovery/))
20+
for the [STM 32F303VC Discovery
21+
Board](https://www.st.com/en/evaluation-tools/stm32f3discovery.html). The
22+
newer version is the BBC micro:bit Embedded Discovery Book
23+
([EDB-MB](https://docs.rust-embedded.org/discovery/microbit/)),
24+
which covers both the micro:bit v1.5
25+
([MB1](https://tech.microbit.org/hardware/1-5-revision/))
26+
and the micro:bit v2.2X
27+
([MB2](https://tech.microbit.org/hardware/)). (There are
28+
also v1.00 and v2.00 Microbit boards, but the differences in
29+
minor revisions are pretty negligible; EDB-MB ignores them.)
30+
31+
EDB-STM is not well-maintained. The underlying hardware was
32+
not easily available during the pandemic. Further, there are
33+
[reports](https://github.com/rubberduck203/stm32f3-discovery/issues/42)
34+
that the IMU used in current versions of the STM 32F303VC
35+
Discovery Board has been upgraded, meaning work would be
36+
needed to distinguish the old and new boards and update
37+
EDB-STM for the new board. What would happen to the docs for
38+
the old board is questionable.
39+
40+
Having both MB1 and MB2 in EDB-MB is confusing. Futher, MB1
41+
is no longer readily available, and there appear to be very
42+
few of them in the wild. There are no known advantages to
43+
working with an MB1 over an MB2, and both boards are very
44+
cheap.
45+
46+
Finally, the EDB-MB also needs both some maintenance and an
47+
ongoing maintenance plan and infrastructure.
48+
49+
Dealing with all of this is best suited to a multi-phase
50+
project. This RFC proposes a "triage" phase in which things
51+
are brought to a good current state. A later "development"
52+
RFC will cover EDB improvements and an ongoing maintenance
53+
plan.
54+
55+
# Detailed design
56+
[design]: #detailed-design
57+
58+
1. Deprecate EDB-STM.
59+
60+
* Close as many open EDB-STM issues as possible with
61+
either fixes or WONTFIX tags and an explanation.
62+
63+
* Close all open EDB-STM PRs by either accepting or
64+
rejecting them with an explanation.
65+
66+
2. Do a minimum-effort split of the EDB repo into two book
67+
repos: a legacy repo and a new MB2-only repo.
68+
69+
* Fork the EDB repo to create a separate EDB-MB2 repo. In
70+
this repo, remove the STM book and examples; remove all
71+
MB1 material and patch all example code to be
72+
MB2-specific.
73+
74+
* Clearly mark the legacy repo as deprecated in the
75+
README; clearly mark EDB-STM and EDB-MB as deprecated
76+
on the first page; post an open issue explaining
77+
the deprecation.
78+
79+
* Provide clear instructions on where to go for the
80+
current EDB-MB2 book.
81+
82+
# How We Teach This
83+
[how-we-teach-this]: #how-we-teach-this
84+
85+
Once this work is substantially completed (at least phases 1
86+
and 2), we should publicize what we are doing widely. This
87+
will increase the chances of a good initial developer
88+
experience.
89+
90+
# Drawbacks
91+
[drawbacks]: #drawbacks
92+
93+
* There will be some confusion about which book to use for
94+
MB2. Adequate signposting will be necessary.
95+
96+
* Issues and PRs for MB2 will continue to be posted on the
97+
legacy repo. This will necessitate redirecting people.
98+
99+
# Alternatives
100+
[alternatives]: #alternatives
101+
102+
* Continue to maintain a Discovery Book for all three
103+
currently-documented boards. This could be done by
104+
continuing as-is, with a MB1/MB2 split, or with a merge to
105+
create a single EDB. A single EDB might be harder to
106+
navigate than a board-specific one.
107+
108+
This is a lot of effort to do and maintain: it would
109+
probably require sustained work by a large team.
110+
111+
* Do some fancier repo split. This is what was originally
112+
proposed, but drawbacks with this approach emerged,
113+
including potential loss of legacy material and breaking
114+
existing documewtation links.
115+
116+
* Do a new EDB or other beginner book "from scratch". This
117+
is a great long-term goal, but leaves things in a
118+
less-than-perfect state for the time being. It is also
119+
huge work.
120+
121+
# Unresolved questions
122+
[unresolved]: #unresolved-questions
123+
124+
The proposed upcoming "development" RFC will address larger
125+
issues with the EDB. This "triage" RFC is intended to put
126+
things in a good place for that discussion.

0 commit comments

Comments
 (0)