To ensure that permanent URLs to an attachment for a specification are readable and permanent follow the best practices listed below.
|For the entire project|
|For a specific version (where <VERSION> is a TAG)|
|For a folder within the project|
|For a file in the mode|
|Including the tool (Gitlab) in the tool|
|Including the version in the name of the file|
|Using a link containing the word master (unless you know what you are doing)|
Tool independent link
Remember to use the tool independent link:
Once the interim or final version of the work is accomplished and uploaded to the repository (see here how to do it), you should create a GIT Tag with the correct version (e.g. the version of the ETSI Deliverable).
To do so, simply visit the tags page in your project/repository (e.g.
forge.etsi.org/rep/<GROUP>/<REPO>/tags ) by clicking on the Repository menu item.
In details, follow the steps:
- Go to the repository
- In the menu on the left, select
- Click on the Create Tag green button
- Fill in the following information
- Tag name: the version in a short version, e.g. v2.1.1 or TS-XYZ-ABC-v1.1.1
- Create from: Select the correct branch or a specific revision number. Please take extra care in this selection.
- Message: You should add a description of the version.
- Release notes: (Optional) In case you want to provide the complete change log.
Pretty view vs Raw view
When clicking on file in a repository, the repository manager app (Gitlab) will show the contents presented in a framed box, with syntax highlighting (if supported). This is a "prettyfied" view.
In order to view the file in a "standalone" mode, i.e. the direct file only, you may want to have a "raw" view of the file. The raw view can be reached with the button at the top of the content frame as show in the figure below.
Do not encode versioning in the files
Do not hard code the version in the file name, e.g. DO NOT:
and let the GIT system manage and provide the licensing information.
In the same way, it is very bad practice to keep a list of folders such as (example based on fictitious ASN.1 modules for TB XYZ):
TB_XYZ_ASN.1_modules_v1 TB_XYZ_ASN.1_modules_v2 TB_XYZ_ASN.1_modules_v3 TB_XYZ_ASN.1_modules_v4 etc.