Commit ae234cb0 authored by Michele Carignani's avatar Michele Carignani
Browse files

structure the document, add ci script, add diagrams in mermaid language

parent f76dd342
Loading
Loading
Loading
Loading
Loading

.gitlab-ci.yml

0 → 100644
+13 −0
Original line number Diff line number Diff line
compose:
        script:
                - cat 0*.md > full-document.md
        artifacts:
                paths:
                        - full-document.md

doc:
        script:
               - pandoc -o Forge-contribution-process.docx full-document.md
        artifacts:
                paths:
                        - Forge-contribution-process.md

00_header.md

0 → 100644
+4 −0
Original line number Diff line number Diff line
# Contribution process for ETSI Forge

Contribute at: https://forge.etsi.org/rep/etsi-cti-admin/forge-contributions-documentation
+0 −0

File moved.

02_process.md

0 → 100644
+65 −0
Original line number Diff line number Diff line
## 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.  Reserve contribution 

This activity is 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. Submit changes

Contributor uploads a set of changes (either modifications or additions) to the Forge platform.

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)

#### 3. Contributor creates and submits a merge request in the appropriate project on ETSI Forge

  - The submitted Merge Request shall include:
    - The changes uploaded to a branch in the repository with a given temporary name (the branch will be deleted after the merge),
    - Motivation, rationale or purpose of the changes, and the description of changes;
  - It may also include:
    - a contribution number (if any),
    - a link to a Bugzilla issue or Gitlab issue.

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

  - The submitted contribution shall include:
    - 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
      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
      b.	It may include
      i.	The tag to be applied after the MR is merged
      ii.	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;

a.	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.

a.	NOTE: this activity may be automatized 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

a.	With the version number of the Draft deliverable that will reference the tag
b.	Note: This may be automatized

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

a.	All temporary links replaced with the link to the tagged version;
b.	The other elements in the approved contributions are incorporated as well, as usual.

#### 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")
 No newline at end of file

03_templates.md

0 → 100644
+30 −0
Original line number Diff line number Diff line
## Templates of a contribution for software

The high-level content required or optional in a merge request and the related contribution is described in the clauses below.

###  Merge request

| Id   | Field                                                        | Provision | Description                                                |
| ---- | ------------------------------------------------------------ | :-------- | :--------------------------------------------------------- |
| M01  | Unique URL                                                   | Mandatory | E.g. `forge`/`my-group`/`my-project`/`merge_requests`/`ID` |
| M02  | Diff : Changes in the software                               | Mandatory |                                                            |
| M03  | Motivation, rationale or purpose of the changes              |           |                                                            |
| M04  | Description of the changes                                   | Mandatory |                                                            |
| M05  | Green light from CI Validation                               | Mandatory |                                                            |
| M06  | Software version URL                                         | Mandatory | E.g. `<forge>`/`<my-group>`/`<my-repo>`/0.0.x              |
| M07  | Reserved contribution number in the Merge request documentation | Optional  |                                                            |
| M08  | Link to Bugzilla or Gitlab issue                             | Optional  |                                                            |

### Contribution to the Portal

| Id   | Field                                                        | Provision           | Description                                                  |
| ---- | ------------------------------------------------------------ | ------------------- | ------------------------------------------------------------ |
| C01  | Link to MR so that software can be reviewed                  | Mandatory           |                                                              |
| C02  | Reason for Change                                            | Mandatory           | If the contribution does not propose any change beyond those in the Merge Request, this field can refer to the Reason for Change of the Merge Request. |
| C03  | Description of the Change                                    | Mandatory           | If the contribution does not propose any change beyond those in the Merge Request, this field can refer to the Description of  Change of the Merge Request. |
| C04  | Number of the latest commit in the merge request             | Mandatory           |                                                              |
| C05  | Changes in the text pointing to the software                 | Mandatory           | E.g.:Data model A is available at `<forge>`/`<my-group>`/` <my-project>`/ `<my-title>`/ A.yaml |
| C06  | Changes in other elements of the deliverable required to maintain consistency with the changes proposed by the MR | Optional (see note) | E.g. <br />- Changes to a normative textual statement that explicitly calls out an attribute being removed by the Merge Request.<br />- Changes to an example that illustrates the use of an attribute whose syntax is being changed by the Merge Request.<br />NOTE: If the changes made to the “software” do not impact other elements, this shall be explicitly stated. |


Editor’s note: a mapping to the CR form could be done with guidance.
 No newline at end of file
Loading