Forking project#

The general rule of thumb can be answering positive to one of below questions:

Also it’s worth to mention that some pipelines, like C++ one, have though limitations that can be overcome by caching packages but you still might decide to fork this project and change some lines.

Note

Cookbook for GitLab forks can be found in official documentation. There you can find how to fork a project and how to maintain it.

TODO list#

Mandatory actions#

  1. Create a separate git branch.

    Note

    It’s worth to mention - this is a rather personal choice. However, if you are not planning to integrate your changes into parent project, it’s better to have a separate branch which contains only your changes.

  2. Change project path in CI external files from bproto/cicd to your own.

  3. Change macro prefix clang-tidy config file from BPROTO to your own.

  4. Change include guards prefix from BPROTO to your own in an appropriate shell script.

  5. Add project specific python packages to pyproject.toml.

  6. Update conan profiles accordingly to your needs.

    Note

    Current profiles set c++17 standard.

  7. Add project specific conan packages to conanfile.txt.

Optional actions#

  1. Update clang-format config file to your needs.

  2. Update clang-tidy config file to your needs.

Automation#

There is a simple shell script that can automate some of mentioned actions. You can find it under scripts/fork.sh path.

If you’ve forked bproto/cicd into https://gitlab.com/supercoder/cicd, you can run script as follows:

bash scripts/fork.sh -p MY_PREFIX -r supercoder/cicd

More information you can get by reading the script code, which is pretty straight forward.