Are you new to Scancode-Toolkit?

This is the perfect place to start, if you are new to ScanCode-Toolkit. Have a quick look at the table of contents below, as these are the main sections you might need help on. These sections have extensive links to other important documentation pages, and make sure you go through them all.

Try ScanCode Toolkit

This section is about using the Scancode-Toolkit, i.e. Performing a scan on a codebase/files to determine their license, copyrights and other information, according to your requirements.

  1. The Scan a Codebase section helps you with configuring your virtual environment, installing Scancode and performing a basic scan, and subsequently visualize the results.

  2. The Use ScanCode Better section helps you customize the scan according to your requirements, and better understand the advanced features you can use.

  3. The All Tutorials/How-Tos is essentially an exhaustive list of all Tutorials and How To’s with a brief description on what they help you to achieve.

Installing ScanCode

Scancode-Toolkit can be installed in 3 different methods.

Note

Please note that different for different install methods, scan commands vary.

The basic command to perform a scan, in case of a download and configure installation (on Linux/MacOS) is:

path/to/scancode [OPTIONS] <OUTPUT FORMAT OPTION(s)> <SCAN INPUT>

The basic usage, if Scancode is installed from pip, or in Windows:

scancode [OPTIONS] <OUTPUT FORMAT OPTION(s)> <SCAN INPUT>

For more information on how the Scan Command varies for Various Installation Methods/Operating Systems, refer Commands Variation.

  1. The Scan a Codebase section helps you with configuring your virtual environment, installing Scancode and performing a basic scan, and subsequently visualize the results.

  2. The Use ScanCode Better section helps you customize the scan according to your requirements, and better understand the advanced features you can use.

  3. The All Tutorials/How-Tos is essentially an exhaustive list of all Tutorials and How To’s with a brief description.

Before you start using Scancode

  1. You need to make sure Prerequisites are installed, and a virtualenv is created.

Installation as an Application: Downloading Releases Installation via Docker: Installation as a library: via pip Installation from Source Code: Git Clone

  1. Now you can either follow the instructions for the recommended Installation as an Application: Downloading Releases method , or run pip install scancode-toolkit[full] like that in the Installation as a library: via pip documentation. Alternatively, you can also Installation from Source Code: Git Clone.

  2. Run scancode -h to make sure Scancode was installed properly. If this shows any Error, refer the Common Installation Errors Issue for common errors. The documentation also has tips on IDE Configuration.

Note

Refer Quickstart to make sure you are using the scan command correctly.

Scan a Codebase

Once you are all set up with Scancode Toolkit, i.e. Running scancode -h shows the Help text, you can start scanning files or a codebase.

  1. Refer Quickstart for commonly used scan commands, and commonly used Output Formats. (The recommended output format is JSON)

  2. Refer this section for Extractcode Options.

  3. How to Run a Scan is a sample tutorial for absolute beginners, to walk them through the process of running a scan. Follow this tutorial and perform a scan on the sample folder distributed with ScanCode, or any file/folder of your choice. Avoid advanced options, and just follow the basic instructions.

  4. ScanCode generates output files with scan results. You can visualize JSON result files using Scancode Workbench. Follow this tutorial How to Visualize Scan results to visualize the scan results.

Use ScanCode Better

  1. Go through all the options in the page All Available Options, to know about Scancode Command Line options. You can then modify the Scan according to your requirements.

ScanCode Versions

  1. You can see all Scancode Toolkit versions on the GitHub release page.

  2. Refer What’s New in This Release? to know more about the latest release.

  3. You can also refer the CHANGELOG for more information on specific releases.

  4. If you want to use/test a specific version of Scancode Toolkit, you can follow the instructions in Installation from Source Code: Git Clone docs.


Learn more about ScanCode Toolkit

Here we give an introduction on the Scancode Toolkit Documentation Sections that can help you to learn more about Scancode Toolkit.

CLI Reference

This section contains a complete guide to ScanCode Toolkit Command Line options, i.e. What the command-line options are, how different options affect the scan and outputs, how to use these options and examples of their use cases.

Now this section has three types of pages:

  1. The Synopsis page and the How to Run a Scan page as summaries.

  2. An exhaustive list of all Command Line Options at All Available Options

  3. All the other pages detailing the Type of Options

Note that the page for one type of options also has a short list of all the options detailed on that page in the beginning. The All Available Options page just has all of them together, and also the extractcode options.

How Scancode Works

This section has documentation on How does ScanCode work?.

Plugins

Plugins are an integral part of ScanCode Toolkit in the sense they are used to easily extend Scancode capabilities, and developers can code their own plugins according to their requirements.

This section has documentation on:

  1. The Plugin Architecture

  2. The License Policy Plugin

  3. All Plugin Tutorials


Contribute

If you are looking to Contribute to Scancode Toolkit, this is where you start.

General Information

  1. Also refer the Contribution page here.

  2. For more Project Ideas, refer Contributor Project Ideas (old).

  3. Before committing your work, make sure you have read this post on Writing good Commit Messages.

Contribute Code

If you haven’t contributed to Scancode Toolkit refer Good First Issues.

To determine where to contribute, you can refer:

  1. ScanCode Toolkit tracks issues via the GitHub Issue tracker

  2. Broad milestones for upcoming versions are also maintained.

And documentation related to contributing code can be referred at Contributing to Code Development. The main sections are:

  1. Code layout and conventions

  2. Running tests

  3. pip requirements and the configure script

Good First Issues

A good first issue means it’s recommended for people who haven’t contributed to Scancode Toolkit before.

  1. Refer the detailed documentation for Good First Issue.

  2. Important Links for Good First issues are also compiled.

  3. What you should understand before Solving a Good First Issue

  4. Step by Step Workflow : Contributor’s Tasks

A first timers only issue means we’ve worked to make it more legible to folks who either haven’t contributed to our codebase before, or even folks who haven’t contributed to open source before.

Refer the detailed documentation for First Timers Only.

Add new Functionality/Enhancement to ScanCode

There are two main paths you can follow to add a new functionality to Scancode. They are:

  1. Add the functionality to Scancode itself.

  2. Add plugins if the functionality is very much application dependent.

Refer enhancement issues for the first type of enhancements. If you want to add a plugin to implement the functionality, refer all the Plugin Tutorials.

Update our Documentation

Maintaining a comprehensive, accurate, updated and effective documentation is very important as that directly affects the acceptability of Scancode Toolkit.

To contribute to Scancode Toolkit Documentation, first refer the Contributing to the Documentation section.

The sections in this page cover the following:

  1. Setup Local Build

  2. Share Document Improvements

  3. Continuous Integration system for the Documentation

  4. Style Checks Using Doc8

  5. Interspinx

  6. Style Conventions for the Documentaion

You can contribute to the following Open Issues on documentation.

  1. Issues with label Documentation

  2. Documentation Inconsistencies Tracker

  3. ScanCode Toolkit Documentation Roadmap

  4. First Timers Only Issues List

Note

Refer Something Missing? to report Documentation Errors or to request Improvements.

Also, consider contributing to other Aboutcode Project Documentations, as they need more support.

Participate in GSoC/GSoD

If you want to participate in any of the two programs:

Then:

  1. Keep an eye out for Application Timelines.

  2. Solve multiple of these Good First Issue to demonstrate your skills, and improve your chances of selection.

  3. Refer the Projects Ideas list for details on tentative projects.

  4. Remain active in Gitter and talk with the organization mentors well ahead of the deadlines.

  5. Select projects according to your skills and finalize project proposals.

  6. Discuss your proposals extensively with corresponding mentors.

  7. Apply for the Programs well before the Deadline.