1.. _feature-tracking: 2 3Feature Tracking 4################# 5 6For feature tracking we use Github labels to classify new features and 7enhancements. The following is the description of each category: 8 9Enhancement 10 Changes to existing features that are not considered a bug and would not 11 block a release. This is an incremental enhancement to a feature that already 12 exists in Zephyr. 13 14Feature request 15 A request for the implementation or inclusion of a new unit of functionality 16 that is not part of any release plans yet, that has not been vetted, and needs 17 further discussion and details. 18 19Feature 20 A committed and planned unit of functionality with a detailed design and 21 implementation proposal and an owner. Features must go through an RFC process 22 and must be vetted and discussed in the TSC before a target milestone is set. 23 24Hardware Support 25 A request or plan to port an existing feature or enhancement to a particular 26 hardware platform. This ranges from porting Zephyr itself to a new 27 architecture, SoC or board to adding an implementation of a peripheral driver 28 API for an existing hardware platform. 29 30Meta 31 A label to group other GitHub issues that are part of a single feature or unit 32 of work. 33 34The following workflow should be used to process features:. 35 36This is the formal way for asking for a new feature in Zephyr and indicating its 37importance to the project. Often, the requester may have a readiness and 38willingness to drive implementation of the feature in an upcoming release, and 39should assign the request to themselves. 40If not though, an owner will be assigned after evaluation by the TSC. 41A feature request can also have a companion RFC with more details on the feature 42and a proposed design or implementation. 43 44- Label new features requests as ``feature-request`` 45- The TSC discusses new ``feature-request`` items regularly and triages them. 46 Items are examined for similarity with existing features, how they fit with 47 the project goals and other timeline considerations. The priority is 48 determined as follows: 49 50 - High = Next milestone 51 - Medium = As soon as possible 52 - Low = Best effort 53 54- After the initial discussion and triaging, the label is moved from 55 ``feature-request`` to ``feature`` with the target milestone and an assignee. 56 57All items marked as ``feature-request`` are non-binding and those without an 58assignee are open for grabs, meaning that they can be picked up and implemented 59by any project member or the community. You should contact an assigned owner if 60you'd like to discuss or contribute to that feature's implementation 61 62 63Roadmap and Release Plans 64************************* 65 66Project roadmaps and release plans are both important tools for the project, but 67they have very different purposes and should not be confused. A project roadmap 68communicates the high-level overview of a project's strategy, while a release 69plan is a tactical document designed to capture and track the features planned 70for upcoming releases. 71 72- The project roadmap communicates the why; a release plan details the what 73- A release plan spans only a few months; a product roadmap might cover a year 74 or more 75 76 77Project Roadmap 78================ 79 80The project roadmap should serve as a high-level, visual summary of the 81project's strategic objectives and expectations. 82 83If built properly, the roadmap can be a valuable tool for several reasons. It 84can help the project present its plan in a compelling way to existing and new 85stakeholders, to help recruit new members and it can be a helpful resource the 86team and community can refer to throughout the project's development, to ensure 87they are still executing according to plan. 88 89As such, the roadmap should contain only strategic-level details, major project 90themes, epics, and goals. 91 92 93Release Plans 94============== 95 96The release plan comes into play when the project roadmap's high-level strategy 97is translated into an actionable plan built on specific features, enhancements, 98and fixes that need to go into a specific release or milestone. 99 100The release plan communicates those features and enhancements slated for your 101project' next release (or the next few releases). So it acts as more of a 102project plan, breaking the big ideas down into smaller projects the community 103and main stakeholders of the project can make progress on. 104 105Items labeled as ``features`` are short or long term release items that shall 106have an assignee and a milestone set. 107