In KaiCode’24, we received 412 applications. After a three-phased review of them, the jury made a decision to reward three projects:

perfect The vprusso/toqito project (129★), a Python library for studying various objects in quantum information, demonstrated to us what we call perfect quality of coding and repository organization, with elegant coding practices, linters in CI, high coverage percentage, code documentation, issues, and pull requests as part of development discipline. $2048 was the reward.

excellent The orhun/git-cliff project (8.3K★), a customizable changelog generator, impressed us with its excellent easy-to-read source code, build pipeline organization, integration testing, and active issue triaging. However, code coverage is rather low, some functions are too long, there is a lack of peer reviews, and a lack of clarity in the repository structure. $1024 was the reward.

awesome The codedredd/pinia-orm project (429★), a type-safe ORM for Pinia, showed us awesome coding practices, static analysis in CI, good test coverage, active bug tracking, and pull request organization. However, there are some pretty large source code files, utility classes, a lack of peer reviews, no licensing information in source files, and a pretty weak static analysis. $512 was the reward.

Jury

These programmers are in the jury (in alphabetic order of their GitHub nicknames):

alex-semenyuk @alex-semenyuk

alphamikle @alphamikle

asomsiko @asomsiko

Swastik Baranwal @Delta456

EpicStep @EpicStep

gvencadze @gvencadze

h1alexbel @h1alexbel

Ivan Ivanchuk @l3r8yJ

Max Petrov @mximp

Gleb Alfutin @MowlCoder

Natalia Pozhidaeva @pnatashap

SlDo @SlDo

Sunagatov @Sunagatov

Vatavuk @Vatavuk

Important Dates

Project submission:
31 May 2024 (Anywhere on Earth)

Authors notification:
1 7 July 2024

Rules

This is how it worked.

First, you submit your open-source product to us. Then, our jury will review it. If your product wins, we give you a monetary reward and a laurel badge that you can attach to your README file.

In order to get into the competition, your product must be:

To win, your product must demonstrate the highest quality of code and development processes. In particular, the jury pays attention to the following (in no particular order):

This doesn’t matter:

One GitHub user may submit up to three projects.

We reserve the right to reject any product without explanation.

Participants

We received 412 applications (excluding duplicates and broken submissions).

Then, we semi-automatically split the list into three groups. The first group contained XXX that didn’t match the criteria of the competition or were obviously not qualified for the winning (we created a software that calculated repository age, size, the presence of CI, the number of issues, pull requests, commits, etc):

The software we created for filtering repositories works as follows.

  1. First it uses GitHub Rest API:
  2. Then it manually clone every repository using git clone and checks if:
    • amount of directories >= 10
    • amount of files >= 50
    • amount of files with more than 1k lines < 10

    Ignored file formats are:

    • .png
    • .jpg
    • .jpeg
    • .svg
    • .eot
    • .ttf
    • .woff
    • .pdf
    • .ico
    • .rst
    • .gif
    • .webp
  3. Then it excludes all the repositories that are not matching the criteria

The second group consisted of XXX that were manually reviewed by one of jury members and were classified as “not enough quality” to compete for the trophy:

The third group contained XXX, which we considered as candidates for the prize:

Then, we excluded the projects that were submitted by jury members and festival organizers. It was a tough decision but we had to make it. Some of the projects were indeed of a high quality, but for the sake of objectivity we had to remove them from the competition:

Then, we asked our jury to review all projects manually. Every project was reviewed by two jury members. The details are here: kaicode-2024.xlsx

Sponsors

yegor256 @yegor256

Organizers

These people organized KaiCode (in alphabetic order):

maxonfjvipon @maxonfjvipon

volodya-lombrozo @volodya-lombrozo