This project re-implements the central server and astronaut flight software for Dr. Magwood's 'Orbit' suite of software written for OCESS.
For a guide on if and how you should contribute, read CONTRIBUTING.md
For a guide on how to set up your text editor to edit code, read DEVELOPING.md
For a guide on how the actual OrbitX codebase is structured, read ARCHITECTURE.md
This project is maintained by
- Patrick
- Gavin McDowell
Furthermore, OCESS and UWaterloo CS494 members have contribued:
- Ye Qin
- Sean
- Cesare Corazza
- Jamie Tait
- Jonah Hamer-Wilson
- Calum Wheaton
- Stefan DeYoung
- Nicholas Fry
- Blakely Haughton
If you're a first-time contributor to OrbitX, take a look at CONTRIBUTING.md
,
especially if you don't recognize the git clone
command in the Project Setup
section. The CONTRIBUTING.md
has helpful tips for first-time contributors.
If you run into any issues during setup, feel free to email me,
patrick.melanstone on gmail. For step-by-step explanations of these
instructions, read CONTRIBUTING.md
.
It's recommended you develop and run in a virtualenv. Setup is as follows:
First, fork your own copy of orbitx
on GitHub (you'll need a GitHub account
for this). See below for windows-specific changes. Then,
git clone https://github.com/your-github-username/orbitx
cd orbitx
python3 -m venv venv # or however you can create a python3 virtualenv
source venv/bin/activate
python -m pip install --upgrade pip # not required, but a good idea
./generate-protobufs.sh # use ./generate-protobufs.ps1 on windows
And when you want to restart development, just do:
cd orbitx
source venv/bin/activate
If you get an error referencing "Microsoft Visual C++ Build Tools", especially when
installing yappi
, install the build tools
(choose Windows 10 SDK and C++ x64/x86 build tools in the installer).
This project is mostly python, which does not require you to build a new binary
after making changes to .py
files. However, making changes to the
orbitx.proto
file requires building your changes.
If you change orbitx.proto
, you will have to run the following command from your
topmost orbitx
directory:
./generate-protobufs.sh # on linux
./generate-protobufs.ps1 # on windows
orbitx.py
Is an executable python script. Run python orbitx.py --help
for
the CLI args, or just run python orbitx.py
for a graphical launcher.
If you get errors, make sure you have the pip packages in requirements.txt
installed. If the setup instructions completed without errors, this is as easy
as running source bin/activate
.
- orbitx # Root project directory
\- data # This contains savefiles and binary data
\- doc # This contains various text files and documentation
\- logs # This contains logs generated during orbitx runtime
\- orbitx # The most important directory! Contains basically all orbitx code
\- orbitx.py # The 'main' function of orbitx, this script can be executed
\- test.py # The orbitx test suite, run this to run all orbitx tests