LSST DM Developer Guide
Edition: billglick-identity-lsst-org
  • Change edition

Team

  • Onboarding Checklist
  • Team Culture and Conduct Standards
  • Empowerment of DM team members
  • Data Release Production

Communications

  • 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

Project docs

  • Writing change-controlled documentation
  • Publishing Papers and Proceedings
  • Technotes for Stand-Alone Technical Documentation

Work

  • DM Development Workflow with Git, GitHub, JIRA and Jenkins
  • Project Planning for Software Development
  • JIRA Agile Usage
  • JIRA Work Management Recipes

Code Style Guides

  • Introduction to DM’s Code Style Guides
  • Software Unit Test Policy

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

Pybind11

  • DM Pybind11 Style Guide
  • Python wrappers for C++ with pybind11

JavaScript

  • Documenting JavaScript APIs with JSDoc

ReStructuredText

  • ReStructuredText Style Guide

DM Stack

  • Supported Platforms
  • Transferring Code Between Packages
  • Documenting Stack Packages
  • Logging
  • Debugging Tasks with lsstDebug
  • Testing the LSST DM Stack with the Jenkins stack-os-matrix Job
  • Coverage Analysis
  • EUPS Tutorial
  • The LSST Software Build Tool
  • Adding a New Package to the Build
  • Managing license and copyright in Stack packages
    • The LICENSE file
    • The COPYRIGHT file
    • License preambles in source files
      • Python preamble
      • C++ preamble
  • 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

  • Emacs Configuration for LSST Development
  • SublimeText Configuration for LSST Development
  • Vim Configuration for LSST Development

Legal

  • Licensing LSST DM source code and content
  • Copyrights for LSST DM work and the COPYRIGHT file

IT Overview

  • LSST Information Technology Services Committee (ITSC)

Jenkins

  • Jenkins ci.lsst.codes Overview

LDF Services

  • Using the lsst-dev Server
  • 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
LSST DM Developer Guide
  • Docs »
  • Managing license and copyright in Stack packages
  • Edit on GitHub

Managing license and copyright in Stack packages¶

All packages in the LSST Stack (EUPS-distributed packages installed with lsst_distrib and qserv_distrib, for example) are licensed under GPL-3.0 terms. This page describes the three aspects developers need to know to properly implement the GPL-3.0 license in Stack packages:

  1. The LICENSE file
  2. The COPYRIGHT file
  3. License preambles in source files

For additional background information on licenses and copyright for LSST DM work, see the pages Licensing LSST DM source code and content and Copyrights for LSST DM work and the COPYRIGHT file.

The LICENSE file¶

Each Stack package must have a file called LICENSE at its root. You can find the LICENSE file in the stack_package template.

Be careful not to modify the LICENSE file.

The COPYRIGHT file¶

Each Stack package must have a file called COPYRIGHT at its root where we record copyright assignments. See The COPYRIGHT file for information on how to format the COPYRIGHT file.

All DM developers are expected to participate in maintaining the COPYRIGHT file on behalf of your institution. Include additions to COPYRIGHT files as part of your regular pull requests.

License preambles in source files¶

The GPL-3.0 license requires each source file to have a preamble comment containing a license statement. This is the generic license preamble:

This file is part of {{ cookiecutter.package_name }}.

Developed for the LSST Data Management System.
This product includes software developed by the LSST Project
(https://www.lsst.org).
See the COPYRIGHT file at the top-level directory of this distribution
for details of code ownership.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Replace {{ cookiecutter.package_name }} with the repository’s name (afw, for example).

This preamble is available as a template.

Python preamble¶

The license preamble specifically for use in Python files is:

# This file is part of {{ cookiecutter.package_name }}.
#
# Developed for the LSST Data Management System.
# This product includes software developed by the LSST Project
# (https://www.lsst.org).
# See the COPYRIGHT file at the top-level directory of this distribution
# for details of code ownership.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

Replace {{ cookiecutter.package_name }} with the repository’s name (afw, for example).

See also: Each Python file MUST contain the standard license preamble in the LSST DM Python Style Guide.

This preamble is available as a template.

C++ preamble¶

The license preamble specifically for use in C++ source and header files is:

/*
 * This file is part of {{ cookiecutter.package_name }}.
 *
 * Developed for the LSST Data Management System.
 * This product includes software developed by the LSST Project
 * (https://www.lsst.org).
 * See the COPYRIGHT file at the top-level directory of this distribution
 * for details of code ownership.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

Replace {{ cookiecutter.package_name }} with the repository’s name (afw, for example).

This preamble is available as a template.

Next Previous

© Copyright 2016-2018 Association of Universities for Research in Astronomy.

Creative Commons License
LSST DM Developer Guide by the LSST Project is licensed under a Creative Commons Attribution 4.0 International License.

LSST documentation is delivered by Fastly.

Built with Sphinx using a theme provided by Read the Docs.

Financial support for LSST comes from the National Science Foundation (NSF) through Cooperative Agreement No. 1258333, the Department of Energy (DOE) Office of Science under Contract No. DE-AC02-76SF00515, and private funding raised by the LSST Corporation. The NSF-funded LSST Project Office for construction was established as an operating center under management of the Association of Universities for Research in Astronomy (AURA). The DOE-funded effort to build the LSST camera is managed by the SLAC National Accelerator Laboratory (SLAC).