- A group is created for each CE
- CE coordinators are Maintainer of the CE group and can
- Fork VTM/BMS 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.
- (create an account)
- Contact SW coordinators to get CE maintainer status
- Log in into your account
Forking the main repository:
- Depending on whether the CE uses BMS or VTM as it's basis go to
- the jvet/VVCSoftware_VTM repository page for VTM
- the jvet/VVCSoftware_BMS repository page for BMS
- Press the fork button
- Select the correct CE group as destination
- You will automatically be redirected to new fork
- On the CE project page (e.g. JEVT-K-CE1/VVCSoftware_BMS) 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
- 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
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 and BMS.
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:
git config --global user.name "John Doe" git config --global user.email firstname.lastname@example.org
Also enable proper automatic handling of line endings:
git config --global core.autocrlf input
For more details see https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup
To clone the CE repository, type
git clone <url> [target_path]
<url> of the repository that can be found in the web page of your CE repository. It can be found on the project page of the CE:
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_BMS_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.:
To list available branches type
git branch --remote
To switch into the appropriate branch type
git checkout CE1.1
assuming the branch is named CE1.1
Make the required modifications. New files have to be added using the command:
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:
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
git checkout -- <file>. If the changes look great, stage them with
Commit all changes to the local repository with:
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.
Push to the remote repository: