Build System
The Vedic Numerology-Astrology Integration System uses a comprehensive build system designed for research software development.
Build Scripts
Primary Build Scripts:
build.sh # Single-format builds
build-all.sh # Comprehensive builds with quality gates
Makefile # Development shortcuts
Usage Examples:
# Quick HTML build
./build.sh html
# Full build with all checks
./build-all.sh
# Development shortcuts
make build # Build all formats
make test # Run tests
make docs # Build documentation
Build Formats
HTML Format: - Interactive features enabled - Responsive design - Web-optimized assets
PDF Format: - Print-ready layout - High-resolution figures - LaTeX-based rendering
DOCX Format: - Microsoft Word compatible - Editable content - Office integration
EPUB Format: - E-reader optimized - Mobile-friendly - Standards compliant
Quarto Configuration
Main Configuration: _quarto.yml
Key features: - Multi-format output - Custom styling and themes - Conditional content rendering - Advanced cross-referencing
Custom Filters: - Format-specific processing - Interactive content handling - Content adaptation
Styling System: - Custom CSS for HTML output - LaTeX templates for PDF - Responsive design patterns
Automated Builds
GitHub Actions Workflows:
.github/workflows/
├── ci.yml # Main CI/CD pipeline
├── docs.yml # Documentation builds
├── research-pdf.yml # Research manuscript builds
├── publish-research.yml # Research publication
└── data-analysis.yml # Data analysis workflows
CI/CD Pipeline Stages:
Quality Gates - Code formatting (Black) - Import sorting (isort) - Linting (flake8) - Type checking (mypy) - Security scanning (Bandit, Safety)
Testing - Unit tests across Python versions - Integration tests - Coverage reporting - Performance benchmarks
Building - Multi-format manuscript compilation - API documentation generation - Artifact packaging
Publishing - PyPI package publishing - GitHub releases - Documentation deployment
Local Development
Development Setup:
# One-command setup
make setup-dev
# Manual setup
pip install -r requirements.txt
pip install -e ".[dev]"
Development Workflow:
# Continuous development
quarto preview manuscript.qmd # Live preview
make test # Run tests
make quality-gate # Code quality
Build Optimization:
# Quick iteration
./build.sh html # Fast HTML builds
# Full validation
make build-all # Complete build pipeline
# Clean rebuild
make clean && make build-all
Build Artifacts
Output Structure:
_book/
├── html/ # Web version
│ ├── manuscript.html
│ ├── styles/
│ └── assets/
├── pdf/ # Print version
│ └── manuscript.pdf
├── docx/ # Office version
│ └── manuscript.docx
└── epub/ # E-reader version
└── manuscript.epub
docs/_build/html/ # API documentation
htmlcov/ # Test coverage reports
Artifact Management:
Automatic retention policies
Versioned artifact naming
Download links in CI/CD
Integration with GitHub releases
Build Configuration
Environment Variables:
# Version information
export VERSION="v1.0.0"
# Build options
export BUILD_DOCS=true
export BUILD_NOTEBOOKS=false
# Quarto options
export QUARTO_PROFILE="production"
Configuration Files:
pyproject.toml- Python packaging_quarto.yml- Quarto configurationstyles/- Custom stylingMakefile- Build shortcuts
Troubleshooting
Common Build Issues:
Quarto Not Found: .. code-block:: bash
# Install Quarto # Visit: https://quarto.org/docs/get-started/
Missing Dependencies: .. code-block:: bash
# Install all dependencies pip install -r requirements.txt pip install -e “.[dev]”
PDF Build Failures: .. code-block:: bash
# Install TinyTeX quarto install tinytex
Permission Errors: .. code-block:: bash
# Fix script permissions chmod +x build.sh build-all.sh
Cache Issues: .. code-block:: bash
# Clear caches make clean quarto render –clean
Debug Builds:
# Verbose output
./build-all.sh --verbose
# Debug specific format
quarto render manuscript.qmd --to html --log-level debug
# Check Quarto configuration
quarto check
Performance Optimization
Build Speed Improvements:
Caching: Quarto and pip caching enabled
Parallel Processing: Multiple format builds in parallel
Incremental Builds: Only rebuild changed content
Selective Builds: Build only required formats
Resource Optimization:
Memory-efficient processing
Disk space management
Network optimization for CI/CD
Artifact compression
Monitoring:
Build time tracking
Resource usage monitoring
Failure analysis and reporting
Advanced Features
Custom Build Scripts:
Create custom build configurations for specific needs:
#!/bin/bash
# custom-build.sh
# Custom build logic
quarto render manuscript.qmd \
--to html \
--profile custom \
--metadata title="Custom Title"
Build Hooks:
Integrate with external tools and services:
# build-hooks.py
import subprocess
import os
def pre_build():
"""Run before build starts."""
# Custom pre-build logic
pass
def post_build():
"""Run after build completes."""
# Custom post-build logic
# e.g., upload to CDN, send notifications
pass
CI/CD Integration:
Automated deployment to GitHub Pages
Integration with external documentation hosts
Notification systems for build status
Integration with project management tools