Skip to main content

A CLI for licensing your project

Project description

licensr

A command-line interface for easily licensing your project and make it compliant to the REUSE-Initiative's guidelines


reuse compliant PyPI PyPI

Making your project compliant to the guidelines of the REUSE Initiative i.e. adding license and copyright information to every file in your project is an annoying process and can be quite tedious.

Licensr allows you to quickly add your chosen to your project from the command line. You just have to download the full license texts of your chosen licenses (and the one of your project's dependencies) and configure the config file to make the tool match your needs.

Don't see what you need? Open an issue to suggest any changes or improvements!

Prerequisites

  • Python 3.4+

Installation

$ pip install licensr

Alternatively, grab the zip!

Usage

From the command line:

$ licensr -c "config file" -p "project name"

The arguments are optional and will default to "config.json" and the current working directory.

Configuration

#license_text The path to the file with the full license text. This file itself will be excluded from the licensing process. You are responsible for removing afterwards from your project. Don't place your license_text files into the LICENSES folder, because it will be rewritten during the licensing.

#SPDX The short identifier of the license.

Source Code Header

#src_extensions_and_comment You are required to add a comment-header to every source code file in your project. Therefore you have to specify under src_extensions_and_comment the src_extensions and the corresponding comment characters for every programming language used. For the comments you can put either one (single-line comment), two (opening and closing) or three (opening - middle - closing) strings into a list.

#header The header has to include a copyright notice and the SPDX Identifier of the license. In the config file it can be given as a path to a file or as string of the full header (be sure to include "\n")

For the src files this information is sufficient. However we often don't have the ability to add the necessary information to every file for several reasons (e.g. binary files). The REUSE Initiative's practices specify two other possibilities to add the licensing and copyright information also for those files.

  • Debian File a file in the DEP-5/copyright file format
  • .license File a file with the same name but the .license extension, containing the header.

Debian File

For this method in addition to the SPDX we need: #copyright Year and Name of the copyright holder(s)

.license File

For this method we only need the header.

#exceptions If we have different licenses or copyright holders, we have to consider them in the exceptions. Here we have to specify the "path" variable for the desired directory or file. For the rest, based on which of the three preceding methods you want to use, you have to specify exactly the same options like before (except for the license_text, if the license is the same)

If more that one licensing-method is possible the order in which the methods are used is:

  1. Source Code Header
  2. Debian File
  3. .license File

ATTENTION: The tool overwrites all old headers with the new ones. Be sure to save them if you need them.

Contributing

I accept pull requests;

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

licensr-0.1.1.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

licensr-0.1.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file licensr-0.1.1.tar.gz.

File metadata

  • Download URL: licensr-0.1.1.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2

File hashes

Hashes for licensr-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c67dd06064e823357a3f68e6a432dcc4651045c23060fb2363d6e6ce85360793
MD5 f372f98e81869ee4ebc6f2a05da522b7
BLAKE2b-256 7faa537658d3f74feed1ecbdf797990a0186d49da50a340b556f62d12ed55267

See more details on using hashes here.

File details

Details for the file licensr-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: licensr-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2

File hashes

Hashes for licensr-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 647755ad9943e5a439a6f206323f6f06e46f221557a04aba46e71742467076d0
MD5 9eaaf04ee4b46a416e888388a73fdd2f
BLAKE2b-256 155fd2051a6b5357417601d24da8ccd7b118b167d10925b542f51e30f13bf4cc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page