THE SPDX WIKI IS NO LONGER ACTIVE. ALL CONTENT HAS BEEN MOVED TO https://github.com/spdx
GSOC/GSOC ProjectIdeas
Contents
Google Summer of Code Project Ideas
A key enabler to adoption of any open source software package is the easy communication and understanding of the open source license requirements (a.k.a. compliance).
The software package data exchange (SPDX) is a Linux Foundation organization intended to develop and promote adoption of a specification. SPDX helps to enable any party in a software supply chain, from the original author to the final end user, to accurately communicate the licensing information for any piece of copyrightable material. SPDX supports practices such that any party may create, alter, combine, pass on, or receive license information available in a consistent, understandable, and re-usable fashion, with the aim of facilitating open source compliance.
Contributing to one of the SPDX projects below will provide a valuable contribution to developers and/or users of open source software.
Getting Involved
We highly encourage students who select one of these projects to get involved with the SPDX community via our technical working group.
To learn more about the technical specifications and current work in progress, join the SPDX tech mailing list, visit the SPDX website and visit the SPDX wiki.
The SPDX organization provides and maintains Open Source tooling for users of the SPDX specification. The current set of open source tools are described on the SPDX Workgroup Tools webpage.
2017 Projects
SPDX Workgroup Tooling Projects
These projects are aimed at contributing to the SPDX tools to help reduce the effort to create SPDX and increase the accuracy of the SPDX documents.
Update Parser Libraries to SPDX 2.0
Update one of the SPDX language libraries to the SPDX 2.0 specification. The SPDX 2.0 specification is a major upgrade from SPDX 1.2 supporting relationships between SPDX documents and SPDX elements.
Skills Needed
- Development skills in the language of choice
- Experience with parser development
- Understanding of RDF and XML
Background Information
SPDX currently provides libraries supporting the reading and writing of SPDX document. Currently, only Java libraries support the new SPDX 2.0 specification. The Python and GO libraries support version 1.2 of the spec. The libraries must support both RDF/XML import/export as well as tag/value import/export. The SPDX git repository SPDX Tools project contains the source code for the libraries.
Available Mentors
Online Validation Tools
Create a web accessible tool for validating SPDX documents.
Skills Needed
- Software development skills for Web based applications
- Good user interface design skills
Background Information
An online form which allows the uploading, parsing, and validation of SPDX would provide immediate benefit to the SPDX community. There is no specific programming language requirement, but there is an existing Java library which could be used in the project. Some of the technical challenges for this project include having to handle long running operations and implementing a very robust parser implementation able to handle any input. Additional online tools could also be added, such as document format conversion and reporting/pretty printing.
Available Mentors
Source Code License Identifier Parser
Create a tool which will parse source code and create an SPDX document based on SPDX standard license identifiers found in the source code.
Skills Needed
- Experience developing parser/scanners
- Understanding of various programming languages
- Java development experience a plus
Background Information
There is a proposal to add Meta Tags in source code comments. Once these license ID's have been produced, this tool could scan the source code for the meta tags and create the appropriate SPDX document. There is no language requirement, however there are existing Java libraries which could help build the SPDX document.