<p>Project features go through a discussion and approval process.
To propose a New Feature, TFS uses the issues on its GitLab code repository.</p>
<p><strong>Important</strong>: A feature request is about functionality, not about implementation details.</p>
<ul>
<li>Describe WHAT you are proposing, and WHY it is important.</li>
<li>DO NOT describe HOW to do it. This is done when the new feature is approved by TSC by populating the design details.</li>
</ul>
<p>Two kind of requests are considered in this procedure:</p>
<ul>
<li><strong>New Feature</strong>: a big change that potentially affects a number of components and requires an appropriate design phase.</li>
<li><strong>Enhancement</strong>: a relatively small change enhancing TFS that does not require a design phase.</li>
</ul>
<h3><u>Steps:</h3>
<p></u></p>
<ol>
<li>
<p>Go to <ahref="https://labs.etsi.org/rep/tfs/controller/-/issues/new">New Issue</a> page <code>https://labs.etsi.org/rep/tfs/controller/-/issues/new</code>.</p>
<ul>
<li>You need to be authenticated.</li>
</ul>
</li>
<li>
<p>Create a New Issue for your feature</p>
<ul>
<li>Title: A concise high level description of your feature (see some other examples in GitLab)</li>
<li>Type: Issue</li>
<li>Description: Choose the "new-feature" or "enhancement" project templates and fill-in the auto-generated template describing the feature/enhancement.</li>
<li>Labels:<ul>
<li>Select the type of request: <code>type::new-feature</code> / <code>type::enhancement</code></li>
<li>If you foresee the components affected by the request, pick the appropriate labels for them.<ul>
<li>Component labels have the form <code>comp-<component-name></code>.</li>
</ul>
</li>
<li>PLEASE: Do not set other types of labels (to be set by TSC).</li>
</ul>
</li>
<li>PLEASE: Do not set the following fields (to be set by TSC): EPIC, Assignee, Milestone, Weight, Due Date</li>
<li>Submit the Issue</li>
</ul>
</li>
<li>
<p>Interact with the TSC and the Community through the issue.</p>
<ul>
<li>TSC will review your request. If it makes sense and its purpose is clear, it will be approved. Otherwise, TSC will provide questions for clarification.</li>
</ul>
</li>
</ol>
<h3><u>Designing a Feature:</h3>
<p></u></p>
<p>Once a feature has been approved, the design phase starts.
The design should be included within the description of the feature (GitLab issue description) by concatenating the Design Feature Template (see below) and properly filling it in. In case the feature description becomes too long, attached files could be included to the feature.</p>
<p>The design is expected to be socialized with the relevant stakeholders (e.g. MDLs and TSC).
Dedicated slots can be allocated in the TECH calls on a per-request basis to discuss and refine it.</p>
<p>For writing the design, you can check the design of existing features or use the design template below.</p>
<li>the particular sequence of actions that resulted in the bug</li>
<li>the TFS components affected by the bug (if you know them)</li>
<li>the expected behavior (if you know it)</li>
</ul>
<p>Without this minimal information, it will/might be difficult to reproduce and resolve the bug, as well as validating the completeness of the solution.</p>
<h3><u>Steps:</h3>
<p></u></p>
<ol>
<li>
<p>Go to <ahref="https://labs.etsi.org/rep/tfs/controller/-/issues/new">New Issue</a> page <code>https://labs.etsi.org/rep/tfs/controller/-/issues/new</code>.</p>
<ul>
<li>You need to be authenticated.</li>
</ul>
</li>
<li>
<p>Create a New Issue for your bug</p>
<ul>
<li>Title: A concise high level description of your bug (see some other examples in GitLab)</li>
<li>Type: Issue</li>
<li>Description: Choose the "bug" project template and fill-in the auto-generated template describing the bug.</li>
<li>Labels:<ul>
<li>Select the type of request: <code>type::bug</code></li>
<li>If you foresee the components affected by the bug, pick the appropriate labels for them.<ul>
<li>Component labels have the form <code>comp-<component-name></code>.</li>
</ul>
</li>
<li>PLEASE: Do not set other types of labels (to be set by TSC).</li>
</ul>
</li>
<li>PLEASE: Do not set the following fields (to be set by TSC): EPIC, Assignee, Milestone, Weight, Due Date</li>
<li>Submit the Issue</li>
</ul>
</li>
<li>
<p>Interact with the TSC and the Community through the issue.</p>
<ul>
<li>TSC will review your reported bug and try to reproduce it. If we succeed in reproducing it, we will mark it as confirmed, and include its resolution in the development plans. Otherwise, TSC will provide questions for clarification.</li>
<p><strong>Important</strong>: An approved feature is not a guarantee for implementation.
Implementing a feature requires resources, and resources come from the members, participants and individual contributors integrating the TFS Community, which might have prioritized the development of other features based on their own interests and the interests expressed by the LG, the TSC, and the MDGs.</p>
<p>Once a Feature is mature, e.g., Testing, Review, Completed, it can be accepted for inclusion in a specific Release. This is accomplished by including the issue ticket in the respective EPIC "<em>ReleaseX.Y</em>". For instance, to see the Features included in Release X.Y, check EPIC "<em>ReleaseX.Y</em>".</p>