Welcome to LightcurveDB’s documentation!

LightcurveDB is a PostgreSQL-backed system for storing and retrieving astronomical time-series data from the TESS (Transiting Exoplanet Survey Satellite) mission.

Installation

To install the latest version from GitHub:

pip install git+https://github.com/mit-kavli-institute/lightcurvedb.git

See other installation steps for specific computer contexts.

Development

Clone the repository and set up the development environment:

git clone https://github.com/mit-kavli-institute/lightcurvedb.git
cd lightcurvedb
pip install -e ".[dev]"

The project uses pyproject.toml for dependency management. Development dependencies include testing, linting, and documentation tools.

Docker Development

A Docker environment is provided for consistent development:

docker-compose up -d
docker-compose exec tester bash

Testing

The project uses nox for test automation across Python versions (3.9-3.12). Tests require a PostgreSQL database.

Local testing:

nox  # Run all test sessions
pytest  # Run tests directly

Docker testing:

docker-compose exec tester nox

Tests use pytest-xdist for parallel execution with per-worker database isolation.

Continuous Integration

The project uses GitHub Actions for automated testing and deployment:

  • Tests: Run automatically on all pushes and pull requests across Python 3.9-3.12

  • Documentation: Built and deployed to GitHub Pages on pushes to main branches

  • Semantic Release: Automated versioning based on commit messages

Contributing

This project follows the Angular commit convention for automatic semantic versioning:

  • feat:: New features (minor version bump)

  • fix:: Bug fixes (patch version bump)

  • feat!: or BREAKING CHANGE:: Breaking changes (major version bump)

  • docs:, style:, refactor:, test:, chore:: No version bump

Documentation

Build locally:

nox -s docs
# or
sphinx-build -b html docs/source/ docs/build/html

View online: Documentation is automatically published to GitHub Pages.

Submodule Documentation

Indices and tables