Skip to content

Additional guidelines for contributing to Apra‐Labs vcpkg

zaki kochargi edited this page Dec 26, 2023 · 1 revision
  1. Create a dev branch in vcpkg submodule. eg: Apra-Labs/vcpkg/initials/dev-branch
  2. Create a dev branch in Apra-Labs/ApraPipes/initial/dev-branch. You can experiment with changes in this dev-branch and point the vcpkg submodule to whatever you have created in "1". You do not have to update the submodule as a commit. So in your local branch you will be pointing to Apra-Labs/vcpkg/initials/dev-branch. When you commit just make sure you do not commit the submodule pointer.
  3. After all experimentation is done and build is stable, raise PRs a. Apra-Labs/vcpkg/initials/dev-branch -> Apra-Labs/vcpkg/ApraPipesBuild b. Apra-Labs/ApraPipes/intials/dev-branch ->Apra-Labs/ApraPipes/main. Remember that the submodule pointer will not be updates.
  4. Reviewers will first merge the vcpkg PR and then merge the ApraPipes PR. We can add another step in the build pipeline that will automatically update the submodule to point to the latest Apra-Labs/vcpkg/ApraPipesBuild. This way, nobody has to worry about updating this.
  • Suggested workflow to add a custom port "new-lib" in Vcpkg -
  1. Create a fork of that project in Apra-Labs organization. Apra-Labs/new-lib
  2. Create a branch in the fork (if it doesn't exist) - "ApraPipesBuild". This branch will be the one which will be used for the stable build. Apra-Labs/new-lib/ApraPipesBuild
  3. Create a development branch if you need to make any changes in the new-lib repo. Apra-labs/new-lib/initials/dev-branch.
  4. In Apra-labs/new-lib/initials/dev-branch/CMakeList.txt make changes (if needed) such that you can use find_package in ApraPipes CMakeLists to use it as a dependency. eg: find_package(new-lib CONFIG REQUIRED)
  5. Add the port files etc. in thirdparty/custom-overlays. Lets maintain special custom ports for Aprapipes in this folder so that we do not dirty the vcpkg/ports folder.
  6. Update vcpkg.json - Override section and add your new library as part of the dependency.
  7. In your own fork of vcpkg, you can copy the custom port you just created and raise a PR against microsft/vcpkg.
  8. After you are comfortable with your custom port, raise a PR in the fork Apra-Labs/new-lib/initials/dev-branch -> Apra-Labs/new- lib/ApraPipesBuild.
  9. Reviewers need to merge 8. We can probably just have self reviews here since this is mainly to create a port in vcpkg.
  10. Rest all steps are as per "Suggested workflow to make changes to vcpkg dependecy in ApraPipes".