If you've just joined project orange🟠, first of all - welcome! Please familiarise with all the information on this meta repo as well as any specific repos you've been assigned to. Currently, most repos lack technical documentation due to their infancy - however, we've put together a general set-up guide to get you up and running as quickly as possible, no matter which repo you've been assigned to work on.
Most of the software in the orange🟠 stack is written for Node.Js so you can develop on pretty much any platform that supports Node.Js such as:
- Microsoft Windows
- Most GNU/Linux distributions
- Apple macOS
Our target operating system is typically Ubuntu Server or any RHEL-based server operating system such as Oracle Linux, CentOS, Fedora, etc running on both
linux/amd64
andlinux/arm64
platforms. But this shouldn't matter in most cases as most of the code is portable.
You can choose which IDE to use, however we'd recommend using VSCode (or a FOSS alternative such as VSCodium). You will need to #to the GitHub extension to be able to use the version control features to sync your work with the repository. Instructions on how to setup the GitHub integration can be found here.
- Make sure you have the latest version of Node.Js installed.
- Open a new VSCode window and select Clone git repository.
- Select Clone from GitHub OR Git: Clone (Recursive)
- Select the intended repository. For our example we'll use
orange-bot
.
- Once the repo is cloned, and you are prompted to open the folder, click Open.
- If you are prompted with a security message asking to trust the author(s), choose Trust.
- Open the built-in VSCode terminal emulator by choosing Terminal and then New Terminal (or press
CTRL
+SHIFT
+'
). - In the terminal window, run the setup script by typing
npm run setup
. - You can then run
npm run build
to build all the dependencies (you need to do this at least once). - From now on, any time you make a change to the code, use
npm run dev
to build and run the current project. If you make any changes to the dependencies, you must runnpm run build
to recompile them.
It is highly recommended that when working on a new feature, you create your own branch and make your changes there instead of committing to main
. You can do this by selecting the main
branch icon at the bottom of VSCode like so:
Then click on Create new branch and name it accordingly.
When you've completed a feature, simply let us know and we'll merge it into the main branch accordingly. If there's any merge conflicts or problems, we'll let you know.
Make sure the commit and sync order is correct to ensure the repo refs do not get corrupted! (I learnt this the hard way, thanks Topias for helping me btw).
Always COMMIT and SYNC the submodules FIRST and only then commit and sync the main repo. (i.e. commit and sync from the bottom-up).
⚠️ Make sure to select a branch for the modules as well, usuallymain
is fine. Make sure you can see main instead of the 5857... and cbc3... hashes otherwise you won't be able to sync to the origin.
If you're not sure on something, please ask and we'll help you figure it out.
Team member | Actively working on repo |
---|---|
Topias | orange🟠 Discord Bot (Base repository), orange🟠 Discord Bot, orange🟠 Common Library and Functions |
Alex | orange🟠 Discord Bot, orange🟠 Common Library and Functions, orange🟠 Code Runner Server, orange🟠 Dash |