LSST DM Developer Guide¶
LSST Data Management (DM) is building the software that will enable scientific discovery with the Large Synoptic Survey Telescope (LSST). LSST will collect over 50 PB of raw data, resulting in over 30 trillion observations of 40 billion astronomical sources.
All LSST DM code is open source and available on GitHub. Our LSST Science Pipelines will implement the core image processing and data analysis algorithms needed to process optical survey imaging data at low latency and unprecedented scale and accuracy. Qserv is a distributed, shared-nothing SQL database query system to efficiently store, query, and analyze catalogs running into trillions of rows and petabytes of data the LSST will generate. Firefly, and other tools, will enable astronomers to query, download, visualize, and analyze LSST data.
This Guide will help you in contributing to the DM development effort.
DM Developers can make this guide better by contributing to the https://github.com/lsst-dm/dm_dev_guide repo. The README will get you started.
Getting Started¶
Processes¶
- Team Culture and Conduct Standards
- DM Development Workflow with Git, GitHub, JIRA and Jenkins
- Discussion and Decision Making Process (RFC, RFD)
- Transferring Code Between Packages
- Project Planning for Software Development
- JIRA Agile Usage
- Policy on DM Wiki Use
- Attending and Presenting at Conferences
- Publishing Papers and Proceedings
Coding Guides¶
- Introduction to DM’s Code Style Guides
- DM Python Style Guide
- DM C++ Style Guide
- DM Pybind11 Style Guide
- Using C++ Templates
- Using Boost
- Using Astropy
- Using Eigen
- Software Unit Test Policy
- Python Unit Testing
- Unit-Testing Private C++ Functions
- Coverage Analysis
- Profiling
- Logging
- Debugging Tasks with
lsstDebug
- Python wrappers for C++ with pybind11
Writing Docs¶
Developer Tools¶
- Configuring your GitHub username in your Slack profile
- Git Configuration Standards & Recommentations
- Using Git LFS (Large File Storage) for data repositories
- JIRA Work Management Recipes
- Using clang-format for LSST Development
- SublimeText Configuration for LSST Development
- Emacs Configuration for LSST Development
- Vim Configuration for LSST Development
Build, Test, Release¶
Developer Services¶
Team Specific Information¶