Thanks for your interest. Here's how to get set up and submit changes.
- Python 3.9+
- ffmpeg (
brew install ffmpegon Mac,apt install ffmpegon Linux) - pipx or pip
git clone https://github.com/JoeKarlsson/adult-swim-bumper.git
cd adult-swim-bumper
pip install -e ".[dev]" # installs package in editable modeVerify it works:
bumper --version
bumper --helpadult_swim_bumper/
__init__.py version string
cli.py all CLI logic — commands, rendering, config loading
bumper thin local entry point (calls cli.main)
bumpers.example.yaml example config shipped with the repo
samples/
videos/README.md CC0 video sources
music/README.md CC0 music sources
pyproject.toml package metadata and entry point
Everything lives in adult_swim_bumper/cli.py. It's intentionally a single file — keep it that way unless there's a strong reason to split.
- Fork the repo and create a branch:
git checkout -b your-feature - Make your changes
- Smoke test manually — bumper is a rendering tool, so run it:
mkdir /tmp/test-bumpers && cd /tmp/test-bumpers bumper init # add a music file to music/, then: bumper add bumper render
- Make sure
bumper --versionandbumper --helpstill work - Open a PR against
main
- Bug fixes and clear improvements are always welcome
- New commands or config options: open an issue first to discuss
- Keep the single-file structure — resist splitting into modules unless it's unavoidable
- No new dependencies without a strong reason (Pillow + PyYAML + ffmpeg is the whole stack)
GitHub Actions runs on every push and PR. It installs the package and checks that imports, --version, and --help all work. If CI is red, fix it before requesting review.