02_process.md 3.61 KB
Newer Older
## Contributions process to deliverables when the software is hosted in ETSI Forge

### Overview of the process

The steps below describe the process for contribution and integration of software hosted on ETSI Forge repository.

#### 1. Contributor reserves a contribution number (optional)

The contributor reserves a contribution number on the ETSI Portal, so that it can be included in the preparation of the Merge Request.

#### 2. Contributor creates a new branch for changes

The contributor creates a new branch for the contribution. See [Gitlab's branching documentation for more details](https://docs.gitlab.com/ee/user/project/repository/branches/).

#### 3. Contributor commits changes to the branch

The contributor makes a set of changes (either modifications or additions) to the Forge platform using the newly-created branch.

This activity can be executed in several ways:

*  Via the web interface of Gitlab (either the "Edit" button or the "Web IDE")
*  Via Git (by using a Git client locally)

#### 4. Contributor creates and submits a merge request

The contributor raises a Merge Request from the branch containing their changes.

The submitted Merge Request shall include:

* Motivation, rationale or purpose of the changes, and the description of changes

It may also include:
* The contribution number reserved at step 1 (if any)
* A link to a Bugzilla issue or Gitlab issue (if any)

#### 5. Contributor prepares and makes available a contribution on the Portal.

The submitted contribution shall include:

* A link to the Merge Request
* Reference in the text to the location of the changed software i.e. the changes in the target deliverable which include the links to the new version of the software in the named branch linked to the MR. For example;

> Merge request XYZ proposes to merge branch FEAT1 into branch v1.1.x and is to be approved in contribution (19)00000ABC. The contribution will contain the changes in the base deliverable with the URLs updated to point to forge.etsi.org/rep/TB/DOCNUM/tree/FEAT1
 
The submitted contribution may include
* The tag to be applied after the MR is merged
* Changes to other elements of the deliverable (e.g. textual descriptions, tables, figures, etc.) required to maintain consistency with the changes proposed in the Merge Request.

#### 5. Contribution approval process is held leading to the approval of the contribution on the Portal;

If the proposed changes need revisions – either due to email discussion , or discussion during a meeting – the software on the Forge will be changed first (generating a new version) and the related contribution needs to be revised to include the pointer to the latest changes. 

#### 6. The rapporteur merges the Merge request(s?) related to the approved contributions.

NOTE: This activity may be automated in the future but needs to take into the account the possibility of conflicts thus requiring manual intervention.

#### 7. Rapporteur applies the appropriate tag to the repository

This is done with the version number of the Draft deliverable that will reference the tag
Note: This may be automated

#### 8. Rapporteur updates the draft of the deliverable

All temporary links are replaced with the link to the tagged version.
Other elements in the approved contributions are incorporated following the usual process for updating documents.

#### 9. ETSI Secretariat receives the final draft ready for publication

#### 10. ETSI Secretariat finalizes the repository, applies the publication tag and finalizes the document

### Picture

![Proposed process](C:/Users/carignani/Documents/forge_gitlab/cti/forge-contributions-documentation/imgs/process1.png "Proposed process")