* CE coordinators are Maintainer of the CE group and can
* Fork VTM into their group
* Create branches
* Assign Developer (write) or Reporter (read) access to users.
Workflow for CE coordinators
----------------------------
**Note:** CE development does not require an internal account.
First steps:
* (create an account)
* Contact SW coordinators to get CE maintainer status
* Log in into your account
Forking the main repository:
* Go to
* the [jvet/VVCSoftware_VTM](https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM) repository page for VTM
* Press the **fork** button
* Select the correct CE group as destination
* You will automatically be redirected to new fork
Creating branches:
* On the CE project page (e.g. JEVT-L-CE1/VVCSoftware_VTM) on the left side menu bar hover over "Repository" and select "Branches" from the pop-up menu
* In the upper right corner select "New Branch"
* Name the branch appropriately (e.g. CE1.1)
* Repeat branch creation as necessary
Adding users:
* On the CE project page hover over "Settings" on the left side menu and select "Members"
* Select the user to be added (typing parts of the user name works as search)
* Select "Reporter" for read access or "Developer" for write access
* Repeat adding users as necessary
CE read access for JVET members
-------------------------------
Accounts with read access were created for MPEG and VCEG members. For MPEG use the usual MPEG credentials. VCEG account information can be found in the [TIES system](https://www.itu.int/ifa/t/2017/sg16/exchange/wp3/q06/vceg_account.txt)
Workflow for CE members (writing)
---------------------------------
**Note:** CE development does not require an internal account. So you may skip the step for requesting account conversion in the registration instructions. An internal account is still helpful for providing patches and improvements for the main repository of VTM.
If you don't have a GitLab account, register at https://vcgit.hhi.fraunhofer.de
For more details on registration see the [VVC software development workflow](VVC-Software-Development-Workflow)
The following steps require git to be installed and accessible from the command line.
If you did not use git before, set up your work environment using the **git config** tool using your name and email address:
```target_path``` is an optional parameter. If you are working on multiple CEs, it may be helpful to clone different CEs into different directories named after the CE, e.g. *VVCSoftware_VTM_CE1*
**Note:** The CE repository should have something like "JVET-?-CE?" in it's URL. Make sure to clone the correct CE.
Change into the cloned copy of the repository and create a branch for checking in software, e.g.:
```bash
cd VVCSoftware_VTM
```
To list available branches type
```bash
git branch --remote
```
To switch into the appropriate branch type
```bash
git checkout CE1.1
```
assuming the branch is named CE1.1
Make the required modifications. New files have to be added using the command:
```bash
git add <file(s)>
```
It is good practice to run ```git diff``` before adding the files, such as to check
what changes are actually being added. If listed changes are not the ones you made,
then you shouldn't proceed.
Optionally (for advanced users), automated formatting can then be applied
using the command:
```bash
git clang-format
```
Note that this requires clang-format to be installed on your system. A list of
modified files (if any) is printed. If files are modified, please check the
changes with git diff. If the changes go beyond what you expected
(for example parts that you didn't edit got reformatted), you should revert individual
files with ```git checkout -- <file>```. If the changes look great, stage them with
git add.
Commit all changes to the local repository with:
```bash
git commit -a
```
Make sure to write a proper comment.
If you need to add changes, these can be committed using the `--amend` flag to add them to the previous commit. `--amend` should only be used, if the previous change was not pushed to the remote repository yet.