14 Developer notes
Margen67 edited this page 2021-06-11 13:08:12 -10:00

Developer environment

Cxbx-Reloaded is developed in C++ using Microsoft Visual Studio 2019 Community.

Debugging during emulation

Since Cxbx-Reloaded launches another process instance of itself for emulation, debugging in Visual Studio doesn't work out of the box.

Follow the developer debugging guide to get started.

How to properly send your code contributions (git)

This is a step-by-step guide to keep your forked copy of Cxbx-Reloaded updated, to create a branch for your work and to send a PR.

If you want more information about git commands, you can read this free book.

First time setup (aka adding the upstream remote)

You have to follow these steps only the first time you fork Cxbx-Reloaded:

  1. Fork mainline Cxbx-Reloaded repository on GitHub by clicking the "Fork" button (upper-right) and clone it to a local folder.
  2. Open a git shell in the root folder of your cloned repository and run this command: git remote add upstream https://github.com/Cxbx-Reloaded/Cxbx-Reloaded.git
  3. Run git remote -v. If you see two "origin" and two "upstream"; Congratulations, you have completed the first-time setup!

Keep your fork updated

You have to follow these steps anytime you want to update your forked Cxbx-Reloaded repository:

  1. Open a git shell in the root folder of your cloned repository and run these commands:
    1. git fetch upstream
    2. git checkout master
  2. Then run git rebase -i upstream/master and check if every commit looks good.
  3. You may need to run git push origin master --force to update your repository on GitHub.

Create a branch for your new contribution

You must keep the master branch of your forked repository clean, and instead create a new branch for every contribution you want to send.

Before creating a branch, MAKE SURE YOUR FORK IS UP-TO-DATE!

Change "name_of_new_branch" to something meaningful like "fixing-issue-X".

  1. Create a branch using this command: git checkout -b name_of_new_branch
  2. Switch to your new branch with: git checkout name_of_new_branch
  3. Push your new branch on GitHub running: git push origin name_of_new_branch
  4. Now do your work. Once done send a Pull Request directly from GitHub (go to your branch and click "Pull Request")
  5. When your work is merged in mainline, you can safely remove your branch by typing:
    1. git checkout master
    2. git branch -d name_of_new_branch
    3. git push origin :name_of_new_branch