This document outlines the process for contributing to apbs-azure-job-queue-function, which is the Azure Function responsible for job handling in the APBS system.
apbs-azure-job-queue-function serves as the middleware between the frontend and the backend processing system. It handles job submissions, manages the processing queue, and facilitates result retrieval.
- Azure Functions Core Tools
- Azure CLI
- Git
- GitHub account
- Python
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/apbs-azure-job-queue-function.git cd apbs-azure-job-queue-function - Install dependencies:
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt - Set up local configuration:
- Create a
local.settings.jsonfile with required settings for testing
- Create a
main: Production branch - deployed to the production slotdev: Development branch - deployed to the development slot- Feature branches should be created from
dev
-
Create a feature branch from
dev:git checkout dev git pull origin dev git checkout -b feature/your-feature-name
-
Make your changes
-
Commit your changes:
git commit -m "Description of changes"
-
Push your feature branch to your fork:
git push origin feature/your-feature-name
-
Create a pull request to the
devbranch of the main repository -
Your PR should include:
- A description of changes
- Any relevant issue numbers
- Updates to documentation if you changed functionality
-
Changes will go through code review by project maintainers
-
Infrastructure changes will be reviewed with extra scrutiny
- PRs merged to
devare automatically deployed to the development slot - After testing in the development slot, changes are promoted to production by merging
devintomainor by performing a slot swap in Azure
The function app uses deployment slots to manage different environments:
- Production slot: Receives traffic from the production frontend
- Development slot: Receives traffic from the development frontend
Each slot has its own configuration settings that direct traffic to the appropriate backend services.
- Do not commit sensitive information (keys, tokens, etc.) to the repository
- Environment-specific configuration is handled through deployment slot settings
- Function app uses managed identities for accessing Azure resources where possible
If you have questions or need help, please open an issue in the repository or contact the project maintainers.