The Giga DataOps Platform project follows the concept of Trunk-Based Development,
wherein User Stories are worked on PRs. PRs then get merged to main
once approved by
another developer.
The main
branch serves as the most up-to-date version of the code base.
Refer to Conventional Commits.
[<Feature/Fix/Release/Hotfix>](<issue-id>) <Short desc>
- Branch off from
main
to ensure you get the latest code. - Name your branch according to the Naming Conventions.
- Keep your commits self-contained and your PRs small and tailored to a specific feature as much as possible.
- Push your commits, open a PR and fill in the PR template.
- Request a review from 1 other developer.
- Once approved, rebase/squash your commits into
main
. Rule of thumb:- If the PR contains 1 or 2 commits, perform a Rebase.
- If the PR contains several commits that build toward a larger feature, perform a Squash.
- If the PR contains several commits that are relatively unrelated (e.g., an assortment of bug fixes), perform a Rebase.
azure/
- Contains all configuration for Azure DevOps pipelines.api/
- Contains all custom backend API code.docs/
- This folder contains all Markdown files for documentation.email/
- Contains all custom email API code.infra/
- Contains all Kubernetes & Helm configuration.ui/
- Contains all custom frontend code.
- Kubernetes
- If you are using Docker Desktop on Windows, you can use the bundled Kubernetes distribution.
- Helm
Refer to the Development section in the docs of unicef/giga-dagster.
Additional setup:
- Install Node
asdf add plugin nodejs asdf install nodejs 20.10.0
- Update package manager
npm i -g npm
git clone
the repository to your workstation.- Run initial setup:
task setup
API, and UI have their own respective .env
files. The
contents of these files can be provided upon request. There are also .env.example
files which you can use as reference. Copy the contents of this file into a new file
named .env
in the same directory, then supply your own values.
Ensure that the Pre-requisites have already been set up and all the necessary
command-line executables are in your PATH
.
# spin up Docker containers
task
# Follow Docker logs
task logs
# List all tasks (inspect Taskfile.yml to see the actual commands being run)
task -l
At the end of your development tasks, stop the containers to free resources:
task stop