Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
3ca3465
Introduce sandboxing and new conda environment to replace LCG stack d…
tvoigtlaender Feb 12, 2026
2243654
Add local testing script for CROWN executables that works with sandbo…
tvoigtlaender Feb 13, 2026
5bba7bb
Add CROWN as KingMaker submodule
tvoigtlaender Feb 13, 2026
19dda97
Simplify compile scripts. Move setup_sandbox script to processor dir.
tvoigtlaender Feb 13, 2026
b664756
Remove old init.sh script from tasks as it is no longer needed at run…
tvoigtlaender Feb 13, 2026
821c662
Remove os dependent image usage.
tvoigtlaender Feb 14, 2026
1cedbc3
black
tvoigtlaender Feb 14, 2026
bd42cdf
black
tvoigtlaender Feb 14, 2026
0aebdd2
move sandboxing to common class
tvoigtlaender Feb 14, 2026
861cddb
Bugfix
tvoigtlaender Feb 16, 2026
c83356b
Replace HTCondor docker setup with cvmfs unpacked apptainer image. Up…
tvoigtlaender Feb 17, 2026
3fa1c8d
bugfix
tvoigtlaender Feb 17, 2026
fefcc04
Move container info from submodule to ordinary directory as setup has…
tvoigtlaender Feb 19, 2026
9c3396e
Adjust setup script to env file location change. Temporarily add King…
tvoigtlaender Feb 19, 2026
e8c4868
Update CROWN submodule
tvoigtlaender Feb 19, 2026
e8e2e0d
Cleanup after local cvmfs env was patched
tvoigtlaender Feb 20, 2026
4f71047
more cleanup
tvoigtlaender Feb 20, 2026
8b15c93
Replace jit calls with proper dict parsing lib
tvoigtlaender Feb 22, 2026
83498b6
Move default ccache dir to CROWN/.cache/ccache
tvoigtlaender Feb 23, 2026
c3252f5
Generalize sandboxing. Allows for nosandboxing and run in local envir…
tvoigtlaender Feb 23, 2026
5558b71
Black
tvoigtlaender Feb 23, 2026
28dde3d
Generalize ccache location for when non-CROWN workflow uses sandboxin…
tvoigtlaender Feb 23, 2026
a4306d6
Generalize sandbox_pre_setup_cmds setup for easier adding of env vari…
tvoigtlaender Feb 23, 2026
d113b3f
Add helper function for sandbox setup
tvoigtlaender Feb 23, 2026
540fbca
Update CROWN github CI checks. Update container initilization. Update…
tvoigtlaender Feb 25, 2026
2a6c040
Update KingMakerStandalone env file with pinned versions
tvoigtlaender Feb 25, 2026
91a1292
Bugfix
tvoigtlaender Feb 25, 2026
63a1cb3
Add lxplus variant
tvoigtlaender Feb 27, 2026
b2e9899
Allow for mixed compilation/execution between local and container
tvoigtlaender Feb 28, 2026
69b3a4a
Update CROWN. Remove tedious shell check from setup.
tvoigtlaender Mar 1, 2026
3ab2880
Clean up config files
tvoigtlaender Mar 1, 2026
2ca6f3b
Merge pull request #79 from KIT-CMS/lxplus_compatible
tvoigtlaender Mar 1, 2026
dd0ecf5
propagate CROWN changes
tvoigtlaender Mar 1, 2026
9e01aa9
Fix lxplus sandboxing by setting forward_law to False in [singularity…
Mar 2, 2026
34b5600
Use local scheduler for lxplus as central scheduler is inconsistent.
Mar 2, 2026
227f6cf
Update container path to cvmfs unpacked. Add apptainer to base KingMa…
tvoigtlaender Mar 3, 2026
575b96f
Add missing dep.
tvoigtlaender Mar 3, 2026
830de26
black
tvoigtlaender Mar 3, 2026
fd80635
Move 'ANA_NAME' env variable export to sandbox to defaults
tvoigtlaender Mar 3, 2026
bfc67ea
Apply the same python formatting check as for CROWN
tvoigtlaender Mar 3, 2026
7704322
Add black to Kingmaker env
tvoigtlaender Mar 3, 2026
1d175a9
Apply python formatting
tvoigtlaender Mar 3, 2026
8d72cff
Re-add ignore for samples.txt and similar
tvoigtlaender Mar 3, 2026
e0b0b2e
Update CROWN
tvoigtlaender Mar 9, 2026
d09a285
Resolve conflict
tvoigtlaender Mar 14, 2026
86d7df3
fast-forward CROWN changes
tvoigtlaender Mar 14, 2026
8b8a64b
Resolve merge conflicts
tvoigtlaender Mar 16, 2026
d4f1aa7
Update README
tvoigtlaender Mar 16, 2026
40a46dd
Merge pull request #84 from KIT-CMS/main
tvoigtlaender Mar 24, 2026
0839d4c
Allow to run setup script from non KingMaker dir
tvoigtlaender Apr 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 8 additions & 25 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,15 @@ on:
- main

jobs:
python_format:
code_formatting:
runs-on: ubuntu-24.04
container:
image: rootproject/root:6.32.00-ubuntu24.04
options: --user 0 # run as root

image: tvoigtlaender/kingmaker_standalone:V1.5
options: --user 0
steps:
- uses: actions/checkout@v3

- name: apt update
run: apt-get -y update

- name: Install missing software
run: apt-get install -y git python3-pip python3-venv

- name: Create venv
shell: bash
run: |
cd $GITHUB_WORKSPACE
python3 -m venv venv
source venv/bin/activate
pip install black==24.4.2

- name: Check Python formatting
shell: bash
- name: Clone project
uses: actions/checkout@v4
- name: Run all formatting checks
run: |
cd $GITHUB_WORKSPACE
source venv/bin/activate
bash scripts/python-formatting.sh
git config --global --add safe.directory '*'
bash ./checks/python-formatting.sh
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,12 @@ tarballs/
workdir/
logs/
*.tar.gz
*.txt
miniconda/
miniforge/
quantities_map/
output/
CROWN/
.nfs*
*.txt

#luigid pickle
luigid_state.pickle
Expand All @@ -34,6 +33,7 @@ dist/
downloads/
eggs/
.eggs/
.conda/
lib/
lib64/
parts/
Expand Down
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
[submodule "sample_database"]
path = sample_database
url = git@github.com:KIT-CMS/KingMaker_sample_database.git
[submodule "kingmaker-images"]
path = kingmaker-images
url = git@github.com:KIT-CMS/kingmaker-images.git
[submodule "CROWN"]
path = CROWN
url = https://github.com/KIT-CMS/CROWN.git
1 change: 1 addition & 0 deletions CROWN
Submodule CROWN added at 403eb1
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
# KingMaker


[![Analysis Containers](https://github.com/KIT-CMS/kingmaker-images/actions/workflows/deploy-base-images.yml/badge.svg?branch=main)](https://github.com/KIT-CMS/kingmaker-images/actions/workflows/deploy-base-images.yml)

KingMaker is the workflow management for producing ntuples with the [CROWN](https://github.com/KIT-CMS/CROWN) framework. The workflow management is based on [law](https://github.com/riga/law), which is using [luigi](https://github.com/spotify/luigi) as backend.

**⚠ Important: A detailed description of the KingMaker workflow to produce NTuples can be found in the [CROWN documentation](https://crown.readthedocs.io/en/latest/kingmaker.html#).**


## 🛠 Infrastructure & Containers

KingMaker can runs within container environments to ensure reproducibility.

* **Container Images and Environments**: Dockerfiles and Conda environment specifications are located in the [`/containers`](./containers) directory.
* **Usage**: For instructions on building custom images or using existing ones from CVMFS, see the [Container Documentation](./containers/README.md).
Empty file added checks/format_ignore.txt
Empty file.
47 changes: 47 additions & 0 deletions checks/python-formatting.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/bin/bash

# Configuration
APPLY_FIXES=false

# Parse CLI arguments
while [[ "$#" -gt 0 ]]; do
case $1 in
--apply) APPLY_FIXES=true ;;
*) echo "Unknown parameter: $1"; exit 1 ;;
esac
shift
done

echo "🔍 Finding Python files ..."

# Find tracked python files
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
FILES=$(git ls-files | grep -E '\.py$' | grep -vEf "$SCRIPT_DIR/format_ignore.txt")

if [[ -z "$FILES" ]]; then
echo "No Python files found."
exit 0
fi

if [ "$APPLY_FIXES" = true ]; then
echo "🛠 Running black to fix formatting..."
# Black formats in-place by default
echo "$FILES" | xargs black
echo "✅ Python formatting complete."
else
echo "🧪 Checking Python formatting (Dry Run)..."

# --check: return exit code 1 if files need formatting
# --diff: show what would change
# --quiet: reduce noise, we only want the diffs/errors
if echo "$FILES" | xargs black --check --diff; then
echo "✨ Python code is looking good!"
exit 0
else
echo "------------------------------------------------------"
echo "❌ ERROR: Python formatting violations found."
echo "Run this script with --apply to fix them."
echo "------------------------------------------------------"
exit 1
fi
fi
Loading
Loading