Developer Guide

Welcome to the Jobmon Developer Guide. This section is for contributors who want to develop, extend, or maintain Jobmon itself.

If you’re looking to use Jobmon for your workflows, see the User Guide instead.

Getting Started

New to Jobmon development? Start here:

  1. General - Set up your development environment

  2. Testing - Run and write tests

  3. Continuous Integration - CI/CD pipeline overview

Development Workflow

The standard workflow for contributing to Jobmon:

  1. Create a feature branch from the release branch

  2. Make your changes

  3. Add or modify unit tests

  4. Run tests: nox -s tests

  5. Lint code: nox -s lint

  6. Type check: nox -s typecheck

  7. Create a pull request

  8. Gain approval from reviewers

Quick Commands

# Run all tests
nox -s tests -- tests/

# Run specific test file
nox -s tests -- tests/integration/client/test_workflow.py

# Lint and format
nox -s lint
nox -s format

# Type checking
nox -s typecheck

# Generate ERD diagram
nox -s schema_diagram

Repository Structure

jobmon/
├── jobmon_core/      # Core library (config, requester, etc.)
├── jobmon_client/    # Python client (Tool, Workflow, Task)
├── jobmon_server/    # REST API server
├── jobmon_gui/       # React frontend
├── tests/            # Test suite
├── docsource/        # This documentation
└── design/           # Design documents

Sections

See Also