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 · Legal · User documentation style
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
- DM Calendars
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.
- Building a package with the installed Science Pipelines stack
- Developing packages on the LSST Science Platform
- Logging
- Debugging Tasks with lsstDebug
Documentation.
- Overview of the Stack documentation system
- Documentation in packages:
- Documentation in the main repository:
- Building docs:
Testing.
Packaging.
- EUPS Tutorial
- The LSST Software Build Tool
- Adding a New Package to the Build
- Managing license and copyright in Stack packages
- 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)
- Emacs Configuration for LSST Development
- SublimeText Configuration for LSST Development
- Vim Configuration for LSST Development
User documentation style¶
Service guides¶
LSST Data Facility services¶
- Using the lsst-dev Server
- Using the lsst-login Servers
- Using the lsst-dev-db Server
- Using the Verification Cluster
- Common Dataset Organization and Policy
- LSST Data Protection Policy
- Using the Bulk Transfer Server at NCSA
- NCSA Nebula OpenStack User Guide
- NCSA Orchestration User Guide
- Creating LDF Jira Tickets
- Overall Resources
- Storage Resources
- Service Integration with the LDF Monitoring Stack