@@ -17,84 +17,59 @@ breadcrumbs:
17
17
- participants : Participants
18
18
---
19
19
20
- KaiCode is an annual open source festival,
21
- started in [ 2015] ( https://www.yegor256.com/award.html ) .
22
-
23
- This is how it works: First, you submit your open-source repository to us.
24
- Then, our jury will review it. If your repository wins, we give you
25
- a monetary reward and a laurel badge that you can attach to your
26
- [ README file] [ readme ] .
27
-
28
- In order to get into the competition, your repository must be:
29
-
30
- * Hosted on [ GitHub] ( https://github.com )
31
- * Larger than 4,000 [ SLOC] ( https://en.wikipedia.org/wiki/Source_lines_of_code )
32
- * Older than 12 months (since the first commit)
33
- * Younger than 60 months (since the first commit)
34
- * Not yet a winner of KaiCode
35
-
36
- To win, your repository must demonstrate the highest
37
- quality of code and development processes.
38
- In particular, the jury pays attention to the following
39
- (in no particular order):
40
-
41
- * Clean code
42
- * Design choices
43
- * [ Coding conventions] ( https://en.wikipedia.org/wiki/Coding_conventions ) control
44
- * [ Static analysis] ( https://en.wikipedia.org/wiki/Static_program_analysis )
45
- * [ Unit testing] ( https://en.wikipedia.org/wiki/Unit_testing )
46
- * [ Integration testing] ( https://en.wikipedia.org/wiki/Integration_testing )
47
- * [ Code coverage control] ( https://en.wikipedia.org/wiki/Code_coverage )
48
- * [ Requirements] ( https://en.wikipedia.org/wiki/Requirements_engineering )
49
- * Documentation
50
- * [ Git branching] ( https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell )
51
- * [ Bug] ( https://en.wikipedia.org/wiki/Bug_tracking_system )
52
- and [ issue] ( https://en.wikipedia.org/wiki/Issue_tracking_system ) tracking
53
- * [ Code reviews] ( https://en.wikipedia.org/wiki/Code_review )
54
- * [ Continuous Integration] ( https://en.wikipedia.org/wiki/Continuous_integration )
55
- * [ Releases] ( https://en.wikipedia.org/wiki/Software_release_life_cycle )
56
- and [ semantic versioning] ( https://semver.org/ )
57
- * [ Licensing] ( https://en.wikipedia.org/wiki/Open-source_license )
58
-
59
- This doesn't matter:
60
-
61
- * How popular is your product?
62
- * What programming languages do you use?
63
- * What is the license?
64
- * What is the programming paradigm (OOP, FP, etc.)?
65
-
66
- One GitHub user may submit only one project.
67
-
68
- Neither jury members nor festival organizers are
69
- allowed to submit their projects.
70
-
71
- We reserve the right to reject any submission without an explanation.
72
-
73
- ## Rewards
74
-
75
- There are three nominations:
76
-
77
- ![ perfect] ( images/laurel-perfect.svg )
78
- Perfect Product:\
79
- $2,048
80
- {: .laurel}
81
-
82
- ![ excellent] ( images/laurel-excellent.svg )
83
- Excellent Product:\
84
- $1,024
85
- {: .laurel}
86
-
87
- ![ awesome] ( images/laurel-awesome.svg )
88
- Awesome Product:\
89
- $512
90
- {: .laurel}
91
-
92
- The money will be sent to you in Bitcoins.
20
+ In KaiCode'25, we received ** 112 applications** .
21
+ After a three-phase review of them, the jury
22
+ made a decision to reward three projects and the steering committee agreed:
23
+
24
+ ![ perfect] ( images/2025/faststream.svg )
25
+ The [ ag2ai/faststream] ( https://github.com/ag2ai/faststream ) project (4.3K★),
26
+ a Python library that simplifies the process of writing producers and consumers for message queues,
27
+ demonstrated ** perfect** software development practices:
28
+ code style control,
29
+ continuous integration,
30
+ automated testing,
31
+ versioning and releases,
32
+ issue triaging,
33
+ and contribution management discipline.
34
+ Source files are small, well formatted, and properly documented.
35
+ However, licensing is not under control according to SPDX requirements.
36
+ ** $2048** was the reward.
37
+ {: .winner}
38
+
39
+ ![ excellent] ( images/2025/pytorch_optimizer.svg )
40
+ The [ kozistr/pytorch_optimizer] ( https://github.com/kozistr/pytorch_optimizer ) project (319★),
41
+ an optimizer for PyTorch written in Python,
42
+ showed us an ** excellent** codebase:
43
+ well formatted and documented code,
44
+ CI,
45
+ automated testing,
46
+ coverage control.
47
+ However,
48
+ style checking is not part of CI,
49
+ build pipeline is rather weak,
50
+ there is a lack of clarity in package management,
51
+ and no license control of source files.
52
+ ** $1024** was the reward.
53
+ {: .winner}
54
+
55
+ ![ awesome] ( images/2025/novops.svg )
56
+ The [ PierreBeucher/novops] ( https://github.com/PierreBeucher/novops ) project (418★),
57
+ a universal secret and configuration manager written in Rust,
58
+ showed us ** awesome** coding practices:
59
+ issue triaging and community support,
60
+ continuous deployment,
61
+ automated testing.
62
+ However,
63
+ they don't have a style checker in the CI pipeline,
64
+ module placement is a bit chaotic,
65
+ PRs don't go through the full build pipeline,
66
+ branching is a bit messy,
67
+ and no badges in the README.
68
+ ** $512** was the reward.
69
+ {: .winner}
93
70
94
71
## Steering Committee
95
72
96
- These people help us decide who deserves the rewards:
97
-
98
73
![ iakunin] ( https://github.com/iakunin.png )
99
74
[ @iakunin ] ( https://github.com/iakunin )
100
75
{: .jury}
@@ -109,11 +84,6 @@ These people help us decide who deserves the rewards:
109
84
110
85
## Jury
111
86
112
- Each member of the jury reviews up to four projects. In
113
- each review we expect to see "good", "average", or "bad" mark in front
114
- of every quality dimension listed above.
115
- The sum of all marks constitutes the final mark of a project.
116
-
117
87
![ h1alexbel] ( https://github.com/h1alexbel.png )
118
88
[ @h1alexbel ] ( https://github.com/h1alexbel )
119
89
{: .jury}
@@ -154,22 +124,6 @@ The sum of all marks constitutes the final mark of a project.
154
124
[ @maxonfjvipon ] ( https://github.com/maxonfjvipon )
155
125
{: .jury}
156
126
157
- ## Important Dates # {#dates}
158
-
159
- Project submission:\
160
- ~~ 31 May~~ 9 June 2025 ([ Anywhere on Earth] [ AoE ] )
161
-
162
- Authors notification:\
163
- ~~ 1~~ ~~ 10 July 2025~~ 30 July 2025
164
-
165
- ## How to Submit # {#submit}
166
-
167
- Submission is closed. See you [ next year] ( /2026.html ) .
168
-
169
- You may submit more than one repository, but only one of them may win.
170
- We may reject some repositories without review, if they are coming from the
171
- same owner.
172
-
173
127
## Participants
174
128
175
129
We received ** 112 applications** (excluding duplicates and broken submissions).
@@ -279,7 +233,7 @@ The software we created for filtering repositories works as follows.
279
233
* [ for repository action workflows] ( https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#list-repository-workflows )
280
234
where it checks if amount of action workflows >= 1
281
235
282
- 2 . Then it manually clone every repository using ` git clone ` and checks if:
236
+ 2 . Then it manually clones every repository using ` git clone ` and checks if:
283
237
* amount of directories >= 10
284
238
* amount of files >= 50
285
239
* amount of files with more than 1k lines < 10
@@ -301,7 +255,7 @@ The software we created for filtering repositories works as follows.
301
255
3 . Then it excludes all the repositories that are not matching the criteria
302
256
303
257
The second group consisted of XXX that were manually reviewed
304
- by one of jury members and were classified as "not enough quality" to
258
+ by one of the jury members and were classified as "not enough quality" to
305
259
compete for the trophy:
306
260
{: .count-them}
307
261
@@ -351,23 +305,18 @@ candidates for the prize:
351
305
* [ TrianguloY/URLCheck] ( https://github.com/TrianguloY/URLCheck )
352
306
353
307
Then, we asked our jury to review all projects manually. Every project
354
- was reviewed by two jury members.
355
- The results of reviewing will be published soon.
356
- If you think that your project was disqualified by mistake or undeservedly underestimated - email us, we'll review it once again with special attention.
308
+ was reviewed by two jury members. The details are here:
309
+ [ kaicode-2025.xlsx] ( /xlsx/kaicode-2025.xlsx )
357
310
358
311
## Sponsors
359
312
360
313
![ yegor256] ( https://github.com/yegor256.png )
361
314
[ @yegor256 ] ( https://github.com/yegor256 )
362
315
{: .jury}
363
316
364
- We are still forming the board of sponsors.
365
- If you are interested in joining, please
[ email us
] ( mailto:[email protected] ) .
366
- {: .firebrick}
367
-
368
317
## Organizers
369
318
370
- These people organize KaiCode (in alphabetic order):
319
+ These people organized KaiCode (in alphabetic order):
371
320
372
321
![ maxonfjvipon] ( https://github.com/maxonfjvipon.png )
373
322
[ @maxonfjvipon ] ( https://github.com/maxonfjvipon )
@@ -377,8 +326,6 @@ These people organize KaiCode (in alphabetic order):
377
326
[ @volodya-lombrozo ] ( https://github.com/volodya-lombrozo )
378
327
{: .jury}
379
328
380
- If you are ready to help, please
[ email
] ( mailto:[email protected] ) .
381
-
382
329
[ form ] : https://docs.google.com/forms/d/1nUlL2xvL1OOy3LoVF-g7MfB-9yeG68XB2wXW4MAoWrY
383
330
[ AoE ] : https://en.wikipedia.org/wiki/Anywhere_on_Earth
384
331
[ readme ] : https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes
0 commit comments