Skip to content

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.

  1. Sign up for a Techpass account. This account is used to login across all GCC services and tooling.

  2. Request to join our GCC tenancy using your Techpass account. Approach an xData AIDE team member for this step.

  3. 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.

  4. 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.

  5. 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.

  6. To ease development with Git, we recommend a folder-specific .gitconfig file to automatically use your SSH and GPG keys for Git repositories associated with SHIP-HATS.

    An example .gitconfig within 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 key
    

    Then, within your main .gitconfig in your user folder, you can refer to the folder-specific .gitconfig as 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 .gitconfig is a common .gitconfig for all your Git commands, while your folder-specific .gitconfig contains 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.