A campaign manager to execute SO mapmaking campaign
Project description
SO Campaign Manager
This repository holds the code of the software tools that will run the mapmaking campaign on Tiger 3.
The project has three big aspects:
- Providing a method to submit new workflows, update existing ones and delete via configuration or a series of commands
- Based on the workflow configuration set the resource requirement accordingly and submit it to SLURM. Resource configuration can be based on:
- Total size of observations and their file distribution
- A specific observation mapping between processes and files
- Node memory and node processor performance.
- Use a workflow management tool to execute all workflows in the minimum amount of time.
Documentation
📚 Full Documentation - Complete documentation including:
- Installation Guide - Setup and installation instructions
- Quick Start - Get started quickly with examples
- User Guide - Comprehensive usage guide
- API Reference - Complete API documentation
- Workflow Guide - Available workflows and how to use them
- Developer Guide - Contributing and development setup
Building Documentation
To build the HTML documentation locally:
cd docs
pip install sphinx sphinx-rtd-theme
make html
The documentation will be available in docs/_build/html/index.html.
Quick Start
Install the package:
pip install so_campaign_manager
Create a configuration file (campaign.toml):
[campaign]
deadline = "2d"
[campaign.resources]
nodes = 4
cores-per-node = 112
[campaign.ml-mapmaking]
context = "file:///path/to/context.yaml"
output_dir = "/path/to/output"
bands = "f090"
# ... other parameters
Run your campaign:
socm -t campaign.toml
For detailed examples and configuration options, see the documentation.
Development guide
Branching model
- the latest development is in the
mainbranch. - bug fixes:
- branch of
main, naming convention:fix/issue_1234(reference github issue).hotfix/issue_1234if it is a major issue that needs resolution as soon as possible. - fix in that branch, and test
- create pull request toward
main - code review, then merge
- branch of
- major development activities go into feature branches
- branch
mainintofeature/feature_name - work on that feature branch
- on completion, merge
maininto the feature branch. - test the feature branch
- create a pull request for merging the feature branch into
main(that should be a fast-forward now) - merging of feature branches into
mainshould be only after code review
- branch
- documentation changes are handled like fix or feature branches, depending on size and impact, similar to code changes
Branch Naming
main: never commit directlyfeature/abc: development of new featuresfix/abc_123: referring to ticket 123hotfix/abc_123: referring to ticket 123, to be released right after merge to mastertmp/abc: temporary branch, will be deleted soontest/abc: test some integration, like a merge of two feature branches
For the latter: assume you want to test how feature/a works in combination with feature/b, then:
git checkout feature/agit checkout -b test/a_bgit merge feature/b- do tests
Branching Policies
All branches are short living. To support this, only a limited number of branches should be open at any point in time. Only N branches for fixes and M << N branches for features should be open for each developer - other features / issues have to wait.
Ensure PEP8 compliance (mandatory) and format your code with Darker (optional)
darker is a partial formatting tool that helps to reformat new or modified code lines so the codebase progressively adapts a code style instead of doing a full reformat, which would be a big commitment. It was designed with the black formatter in mind, hence the name.
In this repo we only require PEP8 compliance, so if you want to make sure that your PR passes the darker bot, you'll need both darker and flake8:
pip install darker flake8
You'll also need the original codebase so darker can first get a diff between the current develop branch and your code.
After making your changes to your local branch, check your modifications on the package:
darker --diff -r origin/develop package/src -L flake8
Darker will first suggest changes so that the new code lines comply with black's rules, and then show flake8 errors and warnings.
You are free to skip the diffs and then manually fix the PEP8 faults. Or if you're ok with the suggested formatting changes, just apply the suggested fixes: ::
darker -r origin/develop package/scr -L flake8
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file so_campaign_manager-0.0.4.tar.gz.
File metadata
- Download URL: so_campaign_manager-0.0.4.tar.gz
- Upload date:
- Size: 104.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b0881ce820e97e750c4de21c82381cf7bd6947ed8a3daea68f5b2e5415ab36a
|
|
| MD5 |
ef370c05cfb24f57231ccf7eedb65472
|
|
| BLAKE2b-256 |
1639be97b464c74895ed3f6363cba7255deebd33f7466ccf27924d05b979974e
|
Provenance
The following attestation bundles were made for so_campaign_manager-0.0.4.tar.gz:
Publisher:
release.yaml on simonsobs/so_campaign_manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
so_campaign_manager-0.0.4.tar.gz -
Subject digest:
3b0881ce820e97e750c4de21c82381cf7bd6947ed8a3daea68f5b2e5415ab36a - Sigstore transparency entry: 913704752
- Sigstore integration time:
-
Permalink:
simonsobs/so_campaign_manager@3b3e814c6a0d03940e948a364379e7a9e4d157eb -
Branch / Tag:
refs/tags/v0.0.4 - Owner: https://github.com/simonsobs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@3b3e814c6a0d03940e948a364379e7a9e4d157eb -
Trigger Event:
release
-
Statement type:
File details
Details for the file so_campaign_manager-0.0.4-py3-none-any.whl.
File metadata
- Download URL: so_campaign_manager-0.0.4-py3-none-any.whl
- Upload date:
- Size: 55.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
846c52f26dfa178d4a9ca00644c641b59ec9173867ab60ad110d9ea2fb88663b
|
|
| MD5 |
3a67072d059322173c7335b0c78a5d83
|
|
| BLAKE2b-256 |
927db9c8b10da2d61041065d1e75ae7a0dd773babc397d665256b6a3cfbbc905
|
Provenance
The following attestation bundles were made for so_campaign_manager-0.0.4-py3-none-any.whl:
Publisher:
release.yaml on simonsobs/so_campaign_manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
so_campaign_manager-0.0.4-py3-none-any.whl -
Subject digest:
846c52f26dfa178d4a9ca00644c641b59ec9173867ab60ad110d9ea2fb88663b - Sigstore transparency entry: 913704793
- Sigstore integration time:
-
Permalink:
simonsobs/so_campaign_manager@3b3e814c6a0d03940e948a364379e7a9e4d157eb -
Branch / Tag:
refs/tags/v0.0.4 - Owner: https://github.com/simonsobs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@3b3e814c6a0d03940e948a364379e7a9e4d157eb -
Trigger Event:
release
-
Statement type: