Skip to content

Enhancing the SPDX License Submission Online Tool: Improving Streamlined License Compliance, Google Summer of Code 2023

Vedant Jolly edited this page Aug 16, 2023 · 1 revision

Hey,

During the summer, as my GSoC 2023 project, the project aims to enhance the SPDX Online Tool by improving its functionality and efficiency for license submissions. The project proposes adding features such as the automatic creation of pull requests and .txt test files, improving error handling, adding unit tests and GitHub API interaction tests with mock, and creating a base reusable Django app to reduce development efforts. The objective is to streamline the license submission process, reduce manual effort, save time, and enhance productivity. The project proposes clear deliverables such as generating a .txt test file, differentiating exceptions from license submissions, adding or fixing unit tests, and improving error handling. The project will contribute to the open-source community and will provide a learning experience for the software engineering student working on the project. The choice of SPDX as the organization to work with is motivated by its mission to create a standard format for communicating the components, licenses, and copyrights of software packages and its strong community of developers, contributors, and users committed to driving innovation in the field of software licensing.

About SPDX

Choosing SPDX as the organization to work with during summers was a choice motivated by multiple but two major factors. Firstly, SPDX is an open-source organization that is dedicated to creating a standard format for communicating the components, licenses, and copyrights of software packages. SPDX's mission to create a standard format for communicating the components, licenses, and copyrights associated with a software package resonates with me. This is an area that I am passionate about, and I believe that my skills in software development and project management will enable me to make a meaningful contribution to the organization.

Project Overview

The primary objective of this project is to improve the functionality of the existing online tool, thereby increasing the efficiency of license submissions. By doing so, we intend to reduce the workload of the SPDX-legal team and ensure that the entire process is streamlined and hassle-free. Our ultimate goal is to create a user-friendly platform that simplifies license submission, saves time, and enhances overall productivity.

  • Improving Management Efficiency
    Adding the proposed functionality will greatly increase the efficiency of license submissions, as it reduces the manual effort required to create and submit new licenses to the SPDX License List repository. The automatic creation of PRs and files such as the .txt test file can save significant time for the SPDX-legal team and contributors.
  • Improved Error Handling
    By improving error handling, the online tool will be better equipped to handle exceptions and failures that occur during license submissions. This can reduce the time and effort required to troubleshoot and fix errors and can lead to smoother and more efficient workflows.
  • Better Testing
    The addition of unit tests and GitHub API interaction tests with mock can improve the quality of the codebase and reduce the likelihood of errors or bugs. This can lead to a more robust and reliable online tool, which can benefit the SPDX-legal team and contributors in the long run.
  • Reusable Base App and Better UI
    Creating a base reusable Django app can streamline development efforts and reduce the time and effort required to develop new features or functionality. This can lead to a more efficient and productive development workflow, which can benefit the SPDX legal team and contributors in the long run. Making a better and more efficient UI will help the application be more user friendly and will make the app more accessible.

Proposed Deliverables

  1. Generate the .txt test file in the pull request (PR) along with the XML file: This feature will enhance the current capability of the tool to create the XML file by also creating a .txt test file in the PR, thus making the submission process more efficient.
  2. Differentiate exceptions from license submissions: The tool will be able to differentiate between exceptions and license submissions, which will improve the overall efficiency of the process.
  3. Add or fix unit tests & Improve error handling: This feature will ensure that the tool is functioning properly, and any errors are caught early in the process. Error handling will be improved, especially when GitHub pull requests fail, which will reduce manual intervention and increase the tool's efficiency.
    i) Write GitHub tests with mocks
    ii) Separate tests in multiple files
    iii) Adding tests for edge
    iv) Tests for UI on browser e.g.: Chrome
  4. Add linters to the project - python/js/html/css linters: This will ensure that the code adheres to the coding standards and best practices, leading to better code quality.
  5. General UI Improvements: This will help the application be more user-friendly and will make the app more accessible. Issues which I have planned to cover in this:
  • Redirect on Successful License Submission
  • Improving the Toast Messages
  • Improving the License Text Display on GitHub Issue Section

My Work

Here is the list of commits to spdx-online-tools and here is the list of merged pull request made in spdx-online-tools by me during Google Summer of Code 2023.

You can find more about the tool with installation instruction from this README