Skip to content

Google Summer of Code 2021 Ideas

R. Judge edited this page Mar 12, 2021 · 2 revisions

Participation in GSoC 2021

We expect to participate in GSoC 2021 as a sub organization under the Python Software Foundation. It's a great opportunity to contribute to Tern and earn some money and software development in the process. We look forward to mentoring you this year!

About Tern

Tern analyzes container images for license information. It will tell you the OS that your container is based on, what packages were installed, their versions and their associated licenses. It can also work with other license scanners to find this information at the file level. You can also provide it a Dockerfile, which it will use to build a container image and analyze it with information about what line in the Dockerfile brought in what packages so engineers can make decisions on how to best write their Dockerfile to containerize their applications.

It supports a number of reporting formats including SPDX. This feature is used to generate a Software Bill of Materials (known as SBoM) for container images.

Project Ideas

Design and Implement a backend database for image data (Intermediate/Advanced)

Some projects use a large number of container images which in turn contain a large amount of data, so much so that loading data from the cache becomes time consuming. To get around this, we would like to give the option to host a centralized database where all the data collected can be stored. This project will require the design of a CRUD API based on Tern's data model and cache structure, the implementation of a database, and a sync mechanism between local caches and the database.

See https://github.com/tern-tools/tern/issues/50

Getting Started

Development requires a Linux distro (we typically use Ubuntu) with Docker installed. Once you are ready, you can follow the README and see if you can run Tern on a docker image of your choice. You can find images to play with on hub.docker.com.

Talk to the Tern team

The maintainers and contributors are on a Slack channel. Follow these instructions to get access. Once you are in, join the channel #tern. We're looking forward to seeing you!

Discussions on issues happen on the GitHub issues. You can also file an issue to ask a question or propose an idea you would like to work on.

How to Apply

Instructions on how to apply are found on the Python GSoC website. Our sub-org name is "tern". Don't forget to include it your application title!