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:

  1. Quality Gates - Code formatting (Black) - Import sorting (isort) - Linting (flake8) - Type checking (mypy) - Security scanning (Bandit, Safety)

  2. Testing - Unit tests across Python versions - Integration tests - Coverage reporting - Performance benchmarks

  3. Building - Multi-format manuscript compilation - API documentation generation - Artifact packaging

  4. 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 configuration

  • styles/ - Custom styling

  • Makefile - Build shortcuts

Troubleshooting

Common Build Issues:

  1. Quarto Not Found: .. code-block:: bash

    # Install Quarto # Visit: https://quarto.org/docs/get-started/

  2. Missing Dependencies: .. code-block:: bash

    # Install all dependencies pip install -r requirements.txt pip install -e “.[dev]”

  3. PDF Build Failures: .. code-block:: bash

    # Install TinyTeX quarto install tinytex

  4. Permission Errors: .. code-block:: bash

    # Fix script permissions chmod +x build.sh build-all.sh

  5. 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:

  1. Caching: Quarto and pip caching enabled

  2. Parallel Processing: Multiple format builds in parallel

  3. Incremental Builds: Only rebuild changed content

  4. 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