xref: /aosp_15_r20/external/pigweed/seed/0002.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker.. _seed-0002:
2*61c4878aSAndroid Build Coastguard Worker
3*61c4878aSAndroid Build Coastguard Worker===================
4*61c4878aSAndroid Build Coastguard Worker0002: SEED Template
5*61c4878aSAndroid Build Coastguard Worker===================
6*61c4878aSAndroid Build Coastguard Worker.. seed::
7*61c4878aSAndroid Build Coastguard Worker   :number: 2
8*61c4878aSAndroid Build Coastguard Worker   :name: SEED Template
9*61c4878aSAndroid Build Coastguard Worker   :status: Open for Comments
10*61c4878aSAndroid Build Coastguard Worker   :proposal_date: 2022-11-30
11*61c4878aSAndroid Build Coastguard Worker   :cl: 123090
12*61c4878aSAndroid Build Coastguard Worker   :authors: The Pigweed Team
13*61c4878aSAndroid Build Coastguard Worker   :facilitator: Unassigned
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Worker-------
16*61c4878aSAndroid Build Coastguard WorkerSummary
17*61c4878aSAndroid Build Coastguard Worker-------
18*61c4878aSAndroid Build Coastguard WorkerWrite a brief paragraph outlining your proposal. If the SEED supersedes another,
19*61c4878aSAndroid Build Coastguard Workermention it here.
20*61c4878aSAndroid Build Coastguard Worker
21*61c4878aSAndroid Build Coastguard Worker----------
22*61c4878aSAndroid Build Coastguard WorkerMotivation
23*61c4878aSAndroid Build Coastguard Worker----------
24*61c4878aSAndroid Build Coastguard WorkerDescribe the purpose of this proposal. What problem is it trying to solve?
25*61c4878aSAndroid Build Coastguard WorkerInclude any relevant background information.
26*61c4878aSAndroid Build Coastguard Worker
27*61c4878aSAndroid Build Coastguard Worker--------
28*61c4878aSAndroid Build Coastguard WorkerProposal
29*61c4878aSAndroid Build Coastguard Worker--------
30*61c4878aSAndroid Build Coastguard WorkerIn this section, provide a detailed treatment of your proposal, and the
31*61c4878aSAndroid Build Coastguard Workeruser-facing impacts if the proposal were to be accepted. Treat it as a
32*61c4878aSAndroid Build Coastguard Workerreference for the new feature, describing the changes to a user without
33*61c4878aSAndroid Build Coastguard Workerbackground context on the proposal, with explanations of key concepts and
34*61c4878aSAndroid Build Coastguard Workerexamples.
35*61c4878aSAndroid Build Coastguard Worker
36*61c4878aSAndroid Build Coastguard WorkerFor example, if the proposal adds a new library, this section should describe
37*61c4878aSAndroid Build Coastguard Workerits public API, and be written in the style of API documentation.
38*61c4878aSAndroid Build Coastguard Worker
39*61c4878aSAndroid Build Coastguard Worker---------------------
40*61c4878aSAndroid Build Coastguard WorkerProblem investigation
41*61c4878aSAndroid Build Coastguard Worker---------------------
42*61c4878aSAndroid Build Coastguard WorkerThis section contains detailed research into the problem at hand. Crucially, the
43*61c4878aSAndroid Build Coastguard Workerfocus here is on the problem itself --- *not* the proposed solution. The purpose
44*61c4878aSAndroid Build Coastguard Workeris to convince stakeholders that the proposal is addressing the right issues:
45*61c4878aSAndroid Build Coastguard Workerthere needs to be agreement on the *why* before they can think about the *how*.
46*61c4878aSAndroid Build Coastguard Worker
47*61c4878aSAndroid Build Coastguard WorkerGenerally, this section should be the primary focus of the proposal.
48*61c4878aSAndroid Build Coastguard Worker
49*61c4878aSAndroid Build Coastguard WorkerConsiderations which should be made in the investigation include:
50*61c4878aSAndroid Build Coastguard Worker
51*61c4878aSAndroid Build Coastguard Worker- How does this problem currently impact stakeholders?
52*61c4878aSAndroid Build Coastguard Worker
53*61c4878aSAndroid Build Coastguard Worker- What kinds of use cases, both specific and general, are being addressed? What
54*61c4878aSAndroid Build Coastguard Worker  are their priorities? What use cases are *not* being considered, and why?
55*61c4878aSAndroid Build Coastguard Worker
56*61c4878aSAndroid Build Coastguard Worker- Examination of any "prior art". Are there existing solutions to this problem
57*61c4878aSAndroid Build Coastguard Worker  elsewhere? What attempts have previously been made, and how do they compare to
58*61c4878aSAndroid Build Coastguard Worker  this proposal? What are the benefits and drawbacks of each?
59*61c4878aSAndroid Build Coastguard Worker
60*61c4878aSAndroid Build Coastguard Worker- Is there a workaround for this problem currently in use? If so, how does it
61*61c4878aSAndroid Build Coastguard Worker  work, and what are its drawbacks?
62*61c4878aSAndroid Build Coastguard Worker
63*61c4878aSAndroid Build Coastguard Worker- Are there existing Pigweed decisions or policies which are relevant to this
64*61c4878aSAndroid Build Coastguard Worker  issue, and can anything be learned from them?
65*61c4878aSAndroid Build Coastguard Worker
66*61c4878aSAndroid Build Coastguard Worker- If the problem involves data not under Pigweed's control, consider the
67*61c4878aSAndroid Build Coastguard Worker  security and privacy implications.
68*61c4878aSAndroid Build Coastguard Worker
69*61c4878aSAndroid Build Coastguard WorkerThe depth of the problem investigation should increase proportionally to the
70*61c4878aSAndroid Build Coastguard Workerscope and impact of the problem.
71*61c4878aSAndroid Build Coastguard Worker
72*61c4878aSAndroid Build Coastguard Worker---------------
73*61c4878aSAndroid Build Coastguard WorkerDetailed design
74*61c4878aSAndroid Build Coastguard Worker---------------
75*61c4878aSAndroid Build Coastguard WorkerIf the proposal includes code changes, the detailed design section should
76*61c4878aSAndroid Build Coastguard Workerexplain the implementation at a technical level. It should be sufficiently
77*61c4878aSAndroid Build Coastguard Workerdetailed for a developer to understand how to implement the proposal.
78*61c4878aSAndroid Build Coastguard Worker
79*61c4878aSAndroid Build Coastguard WorkerAny of the following should be discussed in the design, if applicable:
80*61c4878aSAndroid Build Coastguard Worker
81*61c4878aSAndroid Build Coastguard Worker- API design.
82*61c4878aSAndroid Build Coastguard Worker- Internal data storage / layout.
83*61c4878aSAndroid Build Coastguard Worker- Interactions with existing systems.
84*61c4878aSAndroid Build Coastguard Worker- Similar existing Pigweed APIs: consider framework-wide consistency.
85*61c4878aSAndroid Build Coastguard Worker- Testing strategies.
86*61c4878aSAndroid Build Coastguard Worker- Performance.
87*61c4878aSAndroid Build Coastguard Worker- Code / memory size requirements.
88*61c4878aSAndroid Build Coastguard Worker- If an existing implementation is being changed, will there be backwards
89*61c4878aSAndroid Build Coastguard Worker  compatibility?
90*61c4878aSAndroid Build Coastguard Worker
91*61c4878aSAndroid Build Coastguard WorkerThis section may also choose to link to a prototype implementation if one is
92*61c4878aSAndroid Build Coastguard Workerwritten.
93*61c4878aSAndroid Build Coastguard Worker
94*61c4878aSAndroid Build Coastguard Worker------------
95*61c4878aSAndroid Build Coastguard WorkerAlternatives
96*61c4878aSAndroid Build Coastguard Worker------------
97*61c4878aSAndroid Build Coastguard WorkerDescribe what alternative solutions to the problem were considered, referencing
98*61c4878aSAndroid Build Coastguard Workerthe problem investigation as necessary.
99*61c4878aSAndroid Build Coastguard Worker
100*61c4878aSAndroid Build Coastguard WorkerAdditionally, consider the outcome if the proposal were not to be accepted.
101*61c4878aSAndroid Build Coastguard Worker
102*61c4878aSAndroid Build Coastguard Worker--------------
103*61c4878aSAndroid Build Coastguard WorkerOpen questions
104*61c4878aSAndroid Build Coastguard Worker--------------
105*61c4878aSAndroid Build Coastguard WorkerAre there any areas of the problem that are not addressed by this proposal, and
106*61c4878aSAndroid Build Coastguard Workeris there a plan to resolve them? Does this proposal have implications beyond its
107*61c4878aSAndroid Build Coastguard Workerdescribed scope?
108*61c4878aSAndroid Build Coastguard Worker
109*61c4878aSAndroid Build Coastguard WorkerIf there are anticipated to be additional SEEDs to address outstanding issues,
110*61c4878aSAndroid Build Coastguard Workerreference them here, linking to them if they already exist.
111