Logo
Edition: u-parejkoj-lsstDebug-linkfix
  • Change edition

Team

  • Onboarding Checklist
  • Team Culture and Conduct Standards
  • Focus Friday
  • Meeting Free Weeks
  • Empowerment of DM team members
  • Data Release Production

Communications

  • Slack Culture
  • Configuring your GitHub username in your Slack profile
  • Request for comments (RFC)
  • Request for discussion (RFD)
  • Policy on DM Confluence Use
  • Mailing lists
  • Attending and Presenting at Conferences
  • Providing Support to the Community
  • DM Calendars

Project docs

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

Work

  • DM Development Workflow with Git, GitHub, JIRA and Jenkins
  • Backporting Tickets to a Release Branch
  • 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
  • Creating a compilation database

Python

  • DM Python Style Guide
  • Formatting Python Code Automatically
  • Python Unit Testing
  • Documenting Python APIs with docstrings
  • Using Astropy
  • Python performance profiling
  • Python Command Line Interfaces

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
  • Deprecating Interfaces
  • Logging
  • Debugging Tasks with lsstDebug
  • Overview of the Stack documentation system
  • Layout of the doc/ directory
  • Topic types for package documentation
  • How to add a package to pipelines.lsst.io
  • Building single-package documentation locally
  • Building the pipelines.lsst.io site locally
  • Building pipelines.lsst.io with Jenkins (sqre/infra/documenteer)
  • 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
  • Moving to GitHub Actions from Travis
  • Managing license and copyright in Stack packages
  • Distributing Third-Party Packages with EUPS
  • Renaming a Stack package
  • Conda and rubin-env

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
  • Visual Studio Code Configuration for LSST Development

Legal

  • Licensing LSST DM source code and content
  • Copyrights for LSST DM work and the COPYRIGHT file
    • Continuously update copyrights during development
    • Copyright holders
      • DM institutions
      • External contributors
      • LSST Corporation and preconstruction era
    • Formatting copyright statements
    • Where to record copyright information
    • The COPYRIGHT file
      • How to implement COPYRIGHT files
      • Background
    • Related pages

User docs

  • User documentation style guide

IT Overview

  • LSST Information Technology Services Committee (ITSC)

Jenkins

  • Jenkins ci.lsst.codes Overview

IDF

  • Interim Data Facility Overview

USDF

  • SLAC Onboarding Procedure
  • S3DF: SLAC Shared Science Data Facility Hosts USDF
  • SLAC Kubernetes Overview
  • Data Access: Storage Locations and Butler
  • Batch Resources
  • Stack Access
  • Common Dataset Organization and Policy
  • Data Access: Object Store
LSST DM Developer Guide
  • Copyrights for LSST DM work and the COPYRIGHT file
  • Edit on GitHub

Copyrights for LSST DM work and the COPYRIGHT file¶

This page describes how copyrights are assigned and managed for LSST DM source code and documentation.

Continuously update copyrights during development¶

All DM developers should participate in keeping copyright statements up to date as you work on the DM codebase. There is no automated process for updating copyright statements at the moment.

If you move source files between different source repositories, remember to also audit and move copyright assignments as necessary.

Copyright holders¶

DM institutions¶

LSST Data Management is a collaboration of multiple institutions. The contracts allow these institutions to retain the copyright for the intellectual property they generate.

Use these legal names when assigning copyright for work you contribute on behalf of your institution:

  • Association of Universities for Research in Astronomy, Inc. (AURA)

  • University of Washington

  • The Trustees of Princeton University

  • The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory

  • University of Illinois Board of Trustees

  • California Institute of Technology

External contributors¶

Contributions from institutions or individuals outside of DM are accepted and the relevant copyright statement should be included in the file if appropriate.

Important

We do not require copyright assignment to AURA on external code contributions. However, small patches are not generally sufficient to grant copyright to the contributor.

LSST Corporation and preconstruction era¶

Prior to the start of LSST construction (before August 2014) all copyright was granted to the LSST Corporation. LSST Corporation have transferred those copyrights to AURA and any remaining references to the LSST Corporation owning copyright should be corrected.

Note

Since the beginning of construction (August 2014) some copyrights have been erroneously granted to the LSST Corporation because of a lack of policy communication. Any remaining statement of code being owned by the LSST Corporation should be changed to AURA.

Formatting copyright statements¶

Copyright statements have the following format:

Copyright {{years}} {{institution}}

When there is more than one institution, include each institution on a separate line. Lines for each institution are formatted using the above template.

Here is an example of a copyright statement with two contributing institutions:

Copyright 2012-2017 Association of Universities for Research in Astronomy, Inc. (AURA)
Copyright 2016-2017 University of Washington

The “years” in a copyright statement must reflect when contributions were made:

  • A single year:

    Copyright 2015 Association of Universities for Research in Astronomy, Inc. (AURA)
    
  • A continuous span of years:

    Copyright 2015-2018 Association of Universities for Research in Astronomy, Inc. (AURA)
    
  • A sequence of multiple single years and spans of years:

    Copyright 2015-2016, 2018 Association of Universities for Research in Astronomy, Inc. (AURA)
    
    Copyright 2015, 2017 Association of Universities for Research in Astronomy, Inc. (AURA)
    

Important

Don’t use spans to cover years when no contributions were made.

For example, if the code in a package has not been touched since 2015 and you are working on it in 2018, do not say 2012-2018 but instead write 2012-2015, 2018. You can determine this by looking at the repository change history.

Where to record copyright information¶

Where you record copyright information depends on the license that the project is using. Some licenses, such as the MIT license, provide a place to record the copyright in the license file itself.

For licenses where it’s common to record copyrights in individual source files (such as GPL-3.0), Data Management uses a centralized COPYRIGHT instead. See the next section.

In some types of projects it’s natural to record copyrights in other places, such as READMEs, package metadata, and documentation configuration files. If you do this, ensure that the extra copyright statements are always updated in step with the legally-binding copyright statement in the LICENSE or COPYRIGHT files. For READMEs, it’s usually best to just link to the LICENSE and COPYRIGHT files instead of duplicating information.

The COPYRIGHT file¶

For projects whose license requires per-file license preambles (such as GPL-3.0), we record copyright information in a centralized COPYRIGHT file, instead of in individual source files. Stack packages use COPYRIGHT files.

How to implement COPYRIGHT files¶

The COPYRIGHT is located at the root of the repository, just like LICENSE.

Format the copyright statements as described above, with one line per copyright holder. For example:

Copyright 2016, 2018 University of Washington
Copyright 2012-2018 Association of Universities for Research in Astronomy, Inc. (AURA)

The COPYRIGHT file does not contain any other content.

Tip

Create a COPYRIGHT file from Slack. Open a direct message with @sqrbot-jr and type:

create file

Then select General > COPYRIGHT file.

A template for COPYRIGHT files is also available.

Background¶

Using a COPYRIGHT file allows us to maintain copyright information more effectively than in source code comments.

See also

See this article from the Software Freedom Law Center for background on this policy, which was proposed in RFC-45.

COPYRIGHT files are designed to be robotically refreshed, though this automation does not currently exist. In the meantime, copyright.py is a script that may help maintain COPYRIGHT files. Automatically updating the files requires people committing to the repository to use their institutional email address.

Related pages¶

  • Licensing LSST DM source code and content

  • Managing license and copyright in Stack packages

  • COPYRIGHT file template

Next Previous

© Copyright 2016-2021 Association of Universities for Research in Astronomy, Inc. (AURA).

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).