Setting up¶
There are many parts in Axon, each of which with different requirements and tooling. Here, we provide a general setting up guide to get your environment ready for contributing to Axon's development.
Operating system¶
In general, it is recommended to work with a Unix based operating system. MacOS is fine, as well as Linux distros. If you are on Windows, developing using WSL 2.0 is recommended, although Windows should work as well for the most part.
Accounts and networking¶
We are currently building Axon on GCC. To access it, you must set up a few things.
-
Sign up for a Techpass account. This account is used to login across all GCC services and tooling.
-
Request to join our GCC tenancy using your Techpass account. Approach an xData AIDE team member for this step.
-
Request to join our SHIP-HATS tenancy using your Techpass account. Approach an xData AIDE team member for this step. We use SHIP-HATS for our Git repositories, issue tracking and more.
-
Set up SEED for your development device. This enables you to access GCC and SHIP-HATS on your own personal or internet-enabled device.
Warning
Do note that SEED installs tracking and monitoring tools on your computer. Do not install on your personal device if you think it violates your privacy. Approach an xData AIDE team member to request a dedicated development laptop for SEEDing.
Alternatively, you may choose to use the "work from home" setup, which involves accessing SHIP-HATS and GCC via your GSIB (VPN), and doing normal development using your own personal non-SEEDed computer, which can push and pull from Git via the internet.
-
To connect to our Git repository, you need to set up SSH to connect to Gitlab, and GPG to sign your commits. Generate your SSH key, and add it to your Gitlab account. Next, generate your PGP key and add it to your Gitlab account.
-
To ease development with Git, we recommend a folder-specific
.gitconfigfile to automatically use your SSH and GPG keys for Git repositories associated with SHIP-HATS.An example
.gitconfigwithin your HTX development folder is as follows:.gitconfig[user] email = "<your_ship_hats_email>" signingKey = "<your_gpg_signing_key>" [core] sshCommand = ssh -i "<path_to_your_SSH_key>" [commit] gpgSign = true # Automatically signs all commits with your GPG keyThen, within your main
.gitconfigin your user folder, you can refer to the folder-specific.gitconfigas follows:.gitconfig[user] name = "<your_name_here>" [push] autoSetupRemote = true # Automatically creates new branches on remote on push # Use folder-specific .gitconfig if at this path, merging the main and folder-specific gitconfigs together [includeIf "gitdir:<path_to_your_specific_HTX_development_folder>"] path = "<path_to_your_specific_HTX_development_folder>/.gitconfig"In essence, your main
.gitconfigis a common.gitconfigfor all your Git commands, while your folder-specific.gitconfigcontains specific configuration targeting your connection to SHIP-HATS's self managed Gitlab instance.
Collaboration and management¶
We are using Microsoft Teams and Loop to track tasks and collaborate. Approach an xData AIDE team member to be added into the Teams group.
You can access our Teams group here.
Common tools¶
The following is a non-exhaustive list of common tooling and their use cases that we use in Axon's development. You may need to set up some or all of these tools to contribute effectively to Axon's development.
| Tool | Use case |
|---|---|
| AWS CLI | To view and get Kube context for our EKS cluster and other AWS resources |
| Kubectl | Kubecontrol CLI to explore Kubernetes cluster resources |
| OpenTofu | Handles the base IaC for our clusters and networking on AWS |
| Terragrunt | Wrapper around OpenTofu to keep IaC DRY and modular |
| VSCode | Most of us use this code editor, linting (if any) is typically set up with it |
See something outdated, wrong or a possible improvement? Suggest a change here.