Skip to content
This repository has been archived by the owner on Sep 19, 2022. It is now read-only.

Latest commit

 

History

History
94 lines (58 loc) · 3.52 KB

development.md

File metadata and controls

94 lines (58 loc) · 3.52 KB

Development

Configuration

The version of Python is defined in the file .python-version.

Install the dependencies :

sudo apt update
sudo apt install -y mpich libmpich-dev libxml2-dev libxslt1-dev
python -m pip install --user --upgrade pip setuptools wheel

mpich, libmpich-dev, libxml2-dev and libxslt1-dev are necessary for Simulation Generator.

Set up the venv and install the requirements :

python3 -m venv env &&  # Create the `venv`, if necessary
source ./env/bin/activate &&
pip install -r requirements.txt &&
pip install --editable .  # Install the project in develop mode

Conventions

See conventions

GitHub workflows

Create Issue Branch

The Create Issue Branch GitHub Action and actual GitHub workflow automates the creation of issue branches after assigning an issue.

Its workflow is located at .github/workflows/create-issue-branch.yml. Its configuration is located at .github/issue-branch.yml.

The issue branches created are named with the following pattern: ${lowercased label}/issue-${number}/${lowercased issue title in which unsafe characters are replaced by the character "-"} .

The supported labels are bug, and feature, doc and QA. As an exception, the bug label actually generates the prefix fix in created branches. Any other label exclude the assigned issue from automatic branch creation.

The Create Issue Branch GitHub Action also automatically closes issue which its PR was merged to the dev/ branch.

The GitHub Action creates an open draft PR when an issue is assigned and labelled correctly. The issue's description and labels are copied to the automatically created PR.

Dependent Issues

The Dependent Issues GitHub Action and actual GitHub workflow allows issues and PRs dependency management through keywords in descriptions.

Its workflow and configuration is located at .github/workflows/dependent-issues.yml.

The keywords are depends on and blocked by, according to the configuration. Also, the Dependent Issues GitHub Action labels issues and PRs that are dependent on others with the label dependent, according to the configuration. Finally, the GitHub Action adds itself to the list of status checks required to pass before merging PRs.

Sync LINUM mirror repository

Project repository

When a push event is triggered on the prod branch, the repository is synchronized with its respective LINUM mirror repository. Once the remote is synchronized, every git refs, tags and branches from that repository are pruned and replaced by the ones from this repository.

Simulation Generator temporary fork

When a push event is triggered on the master branch of the Simulation Generator temporary fork, the repository is synchronized with its respective LINUM mirror repository. Once the remote is synchronized, every git refs, tags and branches from that repository are pruned and replaced by the ones from this repository.

Tools

Simulation Generator

Simulation Generator runs only on Linux due to its dependency to Singularity. See benoit-dubreuil / inf6200-h2022 / guides / outils.md # simulation generator .