Skip to main content

Developer Documentation

Welcome to the starward developer documentation. This section provides technical insight into the project's architecture, testing infrastructure, and contribution guidelines.

Project Philosophy

starward is built on a few core principles:

  • Zero external astronomy dependencies — All calculations are implemented from first principles
  • Educational value — Code should teach as well as compute
  • Professional quality — Production-ready with comprehensive testing
  • CLI-first design — Beautiful terminal output with rich formatting

Architecture Overview

starward/
├── src/starward/
│ ├── cli/ # Click-based CLI commands
│ ├── core/ # Core astronomical calculations
│ │ ├── angles.py # Angular measurements and conversions
│ │ ├── coords.py # Coordinate systems (ICRS, Galactic, Horizontal)
│ │ ├── time.py # Julian Date and sidereal time
│ │ ├── sun.py # Solar position and phenomena
│ │ ├── moon.py # Lunar position and phases
│ │ ├── planets.py # Planetary ephemerides
│ │ ├── visibility.py # Observability calculations
│ │ └── constants.py # Astronomical constants
│ └── output/ # Rich console formatters
├── tests/ # Comprehensive test suite (872 tests)
├── docs/ # Docusaurus documentation
└── website/ # Documentation website
TopicDescription
TestingTest suite architecture, Allure reporting, markers
ContributingHow to contribute code and documentation
DependenciesRuntime and development dependencies
CheatsheetQuick reference for common operations
LicenseMIT License details
MaintainersProject maintainers and history

Development Setup

# Clone the repository
git clone https://github.com/oddurs/starward.git
cd starward

# Install with development dependencies
pip install -e ".[dev]"

# Run the test suite
pytest

# Generate Allure report
make report

Version History

VersionCodenameHighlights
v0.4.1Allure test reporting, educational test comments
v0.4.0Deep SkyMessier, NGC, IC, Caldwell, Hipparcos catalogs
v0.3.0PlanetsPlanetary positions and visibility
v0.2.0CelestialSun and Moon calculations
v0.1.0GenesisCore time and coordinate systems