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