LSST DM Developer Guide¶
This is an internal guide for LSST DM staff. It’s also openly available so that others can understand how we’re building the LSST’s data management subsystem.
This guide includes a mix of normative requirements and helpful, descriptive, pages. When it’s particularly important that you closely follow a standard, we include an annotation box at the top of the page.
Any member of DM can contribute to this guide. It’s published from the https://github.com/lsst-dm/dm_dev_guide GitHub repo. Check out the README to get started.
Jump to: Team · Communications · Project documentation · Work management
Development guides: Overview · C++ · Python · Pybind11 · JavaScript · ReStructuredText · DM Stack · Git · Editors
Services: Overview · Jenkins · LSST Data Facility
Team¶
Basic information about the LSST Data Management Subsystem and our culture. Learn more about the Data Management Subsystem in LDM-294.
Team-specific pages:
Communications¶
How to use DM’s communication channels.
- Configuring your GitHub username in your Slack profile
- Request for comments (RFC)
- Request for discussion (RFD)
- Policy on DM Wiki Use
- Attending and Presenting at Conferences
Work management¶
How DM coordinates work and gets things done.
Development guides¶
Overview of Code Style Guides & Policies¶
C++¶
- DM C++ Style Guide
- Documenting C++ Code
- Using clang-format for LSST Development
- Unit-Testing Private C++ Functions
- Using C++ Templates
- Using Boost
- Using Eigen
- C++ performance profiling
Python¶
- DM Python Style Guide
- Python Unit Testing
- Documenting Python APIs with Docstrings
- Using Astropy
- Python performance profiling
DM Stack¶
General policies and procedures.
Development.
Testing.
Packaging.
- EUPS Tutorial
- The LSST Software Build Tool
- Adding a New Package to the Build
- Distributing Third-Party Packages with EUPS
- Renaming a Stack package
Git¶
- Git Configuration Standards & Recommendations
- Using Git LFS (Large File Storage) for data repositories
Editors¶
Crowd-sourced recommendations for configuring editors for LSST development (listed alphabetically)