GSoC 2023
This project aims to enhance the SPDX Online Tool by improving its functionality and efficiency for license submissions. The project proposes adding features such as 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.
Mentor: Jilayne Lovejoy and Rohit
Lodha
Contributor: Vedant Jolly
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.
To achieve this, we would need to modify the following files:
Linters are tools that help identify and report errors in code, helping to ensure that the codebase is
of a high quality and follows best practices. The SPDX Online Tools project could benefit from the
addition of linters for Python, JavaScript, HTML, and CSS, which would help to identify and fix issues
in the codebase.
Python linters such as Pylint, Flake8, and Pyflakes can help to identify errors, potential bugs, and
code smells in Python code. JavaScript linters like ESLint can detect issues such as unused variables,
missing semicolons, and incorrect variable scoping. HTML linters like HTMLHint can check for issues such
as invalid markup and accessibility errors. Finally, CSS linters like Stylelint can help identify errors
such as invalid selectors, unused styles, and syntax errors.
The linters could be integrated into the development process, either through the use of pre-commit hooks
or as part of a continuous integration (CI) pipeline. When a developer commits code, the linters would
run and report any issues. This would help to catch errors early in the development process, before they
become larger problems.
The use of linters can also help to improve the readability and maintainability of the codebase. By
enforcing consistent coding styles and conventions, the codebase becomes easier to read and understand,
and easier to maintain over time.
Overall, the addition of linters to the SPDX Online Tools project would help to ensure that the codebase
is of a high quality and follows best practices, while also improving the readability and
maintainability of the codebase.
The current Product has been approved by the Mentor and all the code is checked in. The current product
requirements and specifications is as agreed with the Mentor. The details as below:
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
I idenitified below items as part of Future scope, and could be incorporated:-