Monorepo aggregating all astrophotography pipeline projects as git submodules.
This repository serves three primary functions:
- Standards Enforcement - Define and maintain consistent standards across all projects
- Coordinated Changes - Make synchronized updates across multiple repositories
- Centralized Documentation - Provide overarching documentation for the entire pipeline
ap-base/
├── ap-common/ # Shared utilities and common code
├── ap-copy-master-to-blink/ # Master calibration frame distribution
├── ap-cull-light/ # Light frame selection/culling
├── ap-create-master/ # Master calibration frame creation
├── ap-empty-directory/ # Directory cleanup utility
├── ap-move-light-to-data/ # Light frame data migration
├── ap-move-master-to-library/ # Calibration frame organization
├── ap-move-raw-light-to-blink/ # Light frame organization
├── ap-preserve-header/ # FITS header management
├── docs/ # Centralized documentation (includes docs/standards/)
├── Makefile # Submodule management
└── CLAUDE.md # Claude Code workflow instructions
# Clone the repository
git clone <repository-url>
cd ap-base
# Initialize and update all submodules
make initTo reset all submodules to a clean state:
make deinit # Deinitialize submodules and clear cache
make init # Reinitialize fresh submodulesAP-specific standards live in docs/standards/:
- ap-common Usage - Use shared constants from ap-common
For general software-engineering standards (project structure, README format, Makefile, GitHub workflows, testing, CLI, naming, etc.), see jewzaam/standards.
When making changes to submodule projects:
- Review AP-specific standards in
docs/standards/and general standards at jewzaam/standards - Ensure changes conform to established conventions
- Update standards documentation if introducing new patterns
- Apply changes consistently across all affected submodules
This repository enables synchronized updates across multiple projects:
- Identify affected submodules - Determine which projects need updates
- Review standards - Ensure changes align with project conventions
- Make changes locally - Update each submodule in your working directory
- Test across projects - Verify changes work correctly in all contexts
- Commit and push - Push changes to each submodule's repository
- Update submodule references - Commit updated submodule pointers in ap-base
# Start with fresh submodules
make deinit
make init
# Make changes to each submodule's README
cd ap-common
# Edit README.md to match the README format standard at https://github.com/jewzaam/standards
git add README.md
git commit -m "Update README to match ap-base standards"
git push
# Repeat for other submodules
cd ../ap-cull-light
# ... make similar changes ...
# Update ap-base to reference new commits
cd ..
git add ap-common ap-cull-light # ... other updated submodules
git commit -m "Update submodule references after README standardization"
git pushCentralized documentation lives in docs/:
- Documentation Index - Overview of available documentation
- Directory Structure - Pipeline directory layout
- Workflow - Processing workflow documentation
- Tools - Tool-specific documentation
This documentation provides high-level context that spans multiple projects and doesn't belong in individual submodule READMEs.
make init # Initialize and update all submodules to latest
make deinit # Deinitialize submodules and clear cache
make help # Show available targetsWhen contributing changes that affect multiple projects:
- Check standards documentation for existing conventions
- Make coordinated changes across relevant submodules
- Update ap-base documentation if introducing new patterns
- Test changes in context of the full pipeline
- Update this README if workflow or structure changes