@@ -17,28 +17,78 @@ A Shipwright Improvement Proposal (SHIP) is a way to propose, communicate, and c
1717
1818## SHIP Lifecycle
1919
20- * ** Draft** : SHIPs start their lifecycle as a pull request, copying the proposal template.
21- They graduate to the _ provisional_ or _ implementable_ phase when the pull request is merged.
22- * ** Provisional** : SHIPs that reach this phase focus on the _ why_ .
23- The objective is to agree that an idea addresses a need for the community.
24- The summary, motivation, and goals should be clearly articulated.
25- Drawbacks and alternatives may not need to be identified at this phase, though the community may ask that these be included during review.
26- Merging a SHIP as provisional does not imply that the community will implement a feature within any reasonable timeframe.
27- * ** Implementable** : SHIPs that reach this phase focus on the _ how_ .
28- To graduate to this phase, the proposal needs to provide details on how the feature will be implemented and any new APIs that are introduced.
29- The proposal must also highlight the risks, drawbacks, and alternatives considered for this feature.
30- Test and release plans do not need to be fully articulated, though the community may suggest ways to test or release the feature at this stage.
31- Implementable proposals indicate that the community agrees to a feature and related code can be merged.
32- * ** Implemented** : SHIPs that reach this phase focus on _ what_ and _ when_ .
33- At this point the feature may have related code pull requests that are under review or merged.
34- Implemented proposals should have test and release plans identified.
35- At this point the propsosal is considered "done."
36-
37- Other phases in the proposal lifecycle can be:
38-
39- * ** Rejected** : Used if a provisional or implementable proposal is later rejected by the community.
40- * ** Withdrawn** : Used if the author of a provisional or implementable proposal later withdraws it from consideration.
41- * ** Replaced** : Used if a subsequent proposal is used to implement the same set of functionality.
20+ ``` mermaid
21+ flowchart LR
22+ Draft ---> Provisional
23+ Draft ---> Implementable
24+ Draft ---> Declined
25+
26+ Provisional ---> Implementable
27+ Provisional ---> Declined
28+
29+ Implementable ---> Implemented
30+ Implementable ---> Replaced
31+
32+ Implemented -.-> Replaced
33+ ```
34+
35+ ### 0. Draft
36+
37+ SHIPs start their lifecycle as a pull request, copying the proposal template. They graduate to the
38+ _ provisional_ or _ implementable_ phase when the pull request is merged.
39+
40+ ### 1. Provisional
41+
42+ SHIPs that reach this phase focus on the _ why_ :
43+
44+ - The objective is to agree that an idea addresses a need for the community.
45+ - The summary, motivation, and goals should be clearly articulated.
46+ - Drawbacks and alternatives may not need to be identified at this phase, though the community may
47+ ask that these be included during review.
48+ - Merging a SHIP as provisional does not imply that the community will implement a feature within
49+ any reasonable timeframe.
50+
51+ ### 2. Implementable
52+
53+ SHIPs that reach this phase focus on the _ how_ :
54+
55+ - The proposal needs to provide details on how the feature will be implemented and any new APIs
56+ that are introduced.
57+ - The proposal must also highlight the risks, drawbacks, and alternatives considered for this feature.
58+ - Test and release plans do not need to be fully articulated, though the community may suggest ways
59+ to test or release the feature at this stage.
60+
61+ Implementable proposals indicate that the community agrees to a feature and related code can be
62+ merged. Once an implementable proposal is accepted, Shipwright project maintainers should do the
63+ following:
64+
65+ - Create a "feature tracker" GitHub issue in the ` community ` repository, documenting the desired
66+ functionality and providing links to the relevant SHIP proposal. Feature trackers should link to
67+ sub-issues that target tasks in specific code repositories. See [ community #282 ] ( https://github.com/shipwright-io/community/issues/282 )
68+ for an example feature tracker.
69+ - Add the feature tracker to the project [ Roadmap] , which communicates that this
70+ approved is approved and seeking contributions.
71+
72+ ### 3. Implemented
73+
74+ Implemented SHIPs that reach this phase focus on _ what_ and _ when_ :
75+
76+ - All code and documentation related to the feature should be merged.
77+ - All contributions should be linked to specific releases thorough associated GitHub issues and
78+ pull requests.
79+ - Implemented proposals should have test and release plans identified.
80+
81+ At this point the propsosal is considered "done." Related feature trackers should be closed in
82+ GitHub and the feature should be marked "done" on the [ Roadmap] . Completed features can be removed
83+ frm the [ Roadmap] at the discretion of project maintainers.
84+
85+ ### Other Lifecycle Phases
86+
87+ * ** Declined** : Used if the community decides to not implement a feature at any phase of its
88+ lifecycle (outside of ` implemented ` ). ` implementable ` proposals with code contributions should
89+ not move to the ` declined ` state.
90+ * ** Replaced** : Used if a subsequent proposal is used to implement the same set of functionality,
91+ or is used to deprecate and remove this feature.
4292
4393## FAQs
4494
@@ -59,3 +109,6 @@ You do not have to complete every section of the proposal template - different s
59109** My FAQ isn't answered here!**
60110
61111Open an issue and ask or even better open a PR with a question and proposed answer.
112+
113+
114+ [ Roadmap ] : ./../ROADMAP.md
0 commit comments