Skip to content

Commit

Permalink
Add landing page and ideas list for GSoC'24
Browse files Browse the repository at this point in the history
Add general information and ideas list, part of the Unikraft application
for Google Summer of Code 2024.

Signed-off-by: Razvan Deaconescu <[email protected]>
  • Loading branch information
razvand committed Feb 6, 2024
1 parent dbe899f commit 84c1e40
Show file tree
Hide file tree
Showing 2 changed files with 402 additions and 0 deletions.
86 changes: 86 additions & 0 deletions gsoc-2024/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Unikraft at Google Summer of Code 2024 (GSoC'24)

Make your way into open source development with operating systems, cloud, virtualization and low-level topics.
Apply to [GSoC24](https://summerofcode.withgoogle.com/) with [Unikraft](https://summerofcode.withgoogle.com/programs/2024/organizations/unikraft).

[Google Summer of Code 2024](https://summerofcode.withgoogle.com/) (GSoC'24) is a global online program focused on bringing new contributors into open source software development.
GSoC Contributors work with an open source organization, such as Unikraft, on a 12+ week programming project under the guidance of mentors.

[Unikraft](https://unikraft.org/) is a fast, secure and open-source Unikernel Development Kit.
By tailoring the operating system, libraries and configuration to the particular needs of your application, it vastly reduces virtual machine and container image sizes to a few KBs, provides blazing performance, and drastically cuts down your software stack’s attack surface.

Before you apply, see the [GSoC contributor eligibility](https://summerofcode.withgoogle.com/get-started).

## How to Apply[^1]

* Connect to the community
* Get accustomed to the Unikraft development ecosystem
* Make a small contribution
* Decide on a GSoC project
* Fill out an application

### Connect to the community

First join our [Discord server](https://bit.ly/UnikraftDiscord).
This is where all (text) discussion and (live video) meetings take place.
You will find multiple channels, each for a particular topic of the Unikraft ecosystem.

As a newcomer, start by presenting yourself (name, university / occupation, interest in Unikraft, current experience).
It's best if you use a `Firstname Lastname` nickname to make it easy for others to get in touch with you.

Ask any questions, worry not about anything, we're happy to assist you in feeling at home in the Unikraft community.
In particular, use the `#gsoc` and the `#support` channels.

### Get accustomed to the Unikraft development ecosystem

Unikraft development happens on the [Unikraft GitHub organization](https://github.com/unikraft/).

For starters, check the [guides](https://unikraft.org/guides) on using the [`catalog` repository](https://github.com/unikraft/catalog).
These give you a very nice set of initial hands-on tasks to get you started with grabbing, configuring, building and running Unikraft.
Look into other [guides](https://unikraft.org/guides) as well.j

### Make a small contribution

The best way to prepare your application is to make small contributions.

First off, browse the [Unikraft Contribution Guidelines](https://unikraft.org/docs/contributing/).
This gives you an overview of how we expect you to write your code, create commits and make contributions and GitHub pull requests (PRs).

Then aim for small, easy to do contributions.
Look for items such as:

* Removing build warnings for any of the repositories in the [Unikraft GitHub organization](https://github.com/unikraft/).
* Fixing inconsistencies or adding missing information in the [documentation](https://github.com/unikraft/docs) (rendered on the [main Unikraft website](https://unikraft.org/)).
* Adding [tests](https://unikraft.org/docs/develop/writing-tests/) to Unikraft components.
* Tasks in the [`Hackathons` GitHub project](https://github.com/orgs/unikraft/projects/29).
* Issues marked with the [`good-first-issue` label](https://github.com/unikraft/unikraft/issues?q=is%3Aissue+is%3Aopen+label%3Agood-first-issue+).
* Adding documentation as `README.md` files and [Doxygen](https://www.doxygen.nl/)-style comments to [internal libraries](https://github.com/unikraft/unikraft/tree/staging/lib).

### Decide on a GSoC project

We put together a [list of project ideas](https://github.com/unikraft/gsoc/blob/staging/gsoc-2024/ideas.md) that you can choose from.

Note that this is not an exclusive list.
You can suggest new project ideas to the Unikraft GSoC mentors on the `#gsoc` channel on [Discord](https://bit.ly/UnikraftDiscord).
If your idea has been vetted by a mentor (or more) in the community, then you can submit it as part of your application.

If you fancy a given project idea, ask about that on the `#gsoc` channel on [Discord](https://bit.ly/UnikraftDiscord).
A mentor will reply and give you extra information.
If that is indeed a project you want to work on, then you can submit it as part of your application.

Also see the [Unikraft OSS Roadmap](https://hackmd.io/@unikraft/HyNdSyAki).

### Fill out an application

Once the application period has opened (in the March 18 - April 2, 2024 period), you have to submit your application on the [Google Summer of Code website](https://summerofcode.withgoogle.com/).
Your application must be written in English.
It should contain a detailed description of your project proposal.

The application is a document that you will submit and that summarizes your motivation and suitability for the project.
We recommend you copy our [Google Document template](https://docs.google.com/document/d/1TjoRgWMTjB114QlRVc7N5rZ6rswUzEN-JS-G_gB0Bso/edit?usp=sharing) and make sure you answer all the questions.

### Still have some doubts/questions?

Ask away on [Discord](https://bit.ly/UnikraftDiscord), on the `#gsoc` channel.

[^1]: Based on the excellent guide from [GNOME](https://gsoc.gnome.org/)
Loading

0 comments on commit 84c1e40

Please sign in to comment.