]> Git — Sourcephile - tmp/julm/literate-invoice.git/blob - tests/Tests/Work.hs
update(log): up to today
[tmp/julm/literate-invoice.git] / tests / Tests / Work.hs
1 {-# LANGUAGE DeriveAnyClass #-}
2 {-# LANGUAGE OverloadedLists #-}
3 {-# LANGUAGE OverloadedStrings #-}
4
5 module Tests.Work where
6
7 import Literate.Document qualified as Doc
8 import Literate.Invoice
9 import Literate.Prelude
10
11 data ScopeId
12 = Scope_BEAM
13 | Scope_Bonfire
14 | Scope_CollaboraDesktop
15 | Scope_DNSvizor
16 | Scope_Funkwhale
17 | Scope_Mirage
18 | Scope_NGIpkgs
19 | Scope_NGIpkgs_Manuals
20 | Scope_NgiNixForge
21 | Scope_Nixpkgs
22 | Scope_Nimi
23 | Scope_OpamNix
24 | Scope_OpenCV
25 | Scope_Seppo
26 | Scope_Sylk
27 deriving (Eq, Ord, Show, Generic, NFData)
28 instance Doc.ToInline ScopeId where
29 toInline = \case
30 Scope_BEAM -> "BEAM"
31 Scope_Bonfire -> "Bonfire"
32 Scope_CollaboraDesktop -> "Collabora Desktop"
33 Scope_DNSvizor -> "DNSvizor"
34 Scope_Funkwhale -> "Funkwhale"
35 Scope_Mirage -> "Mirage"
36 Scope_NGIpkgs -> "NGIpkgs"
37 Scope_NGIpkgs_Manuals -> "NGIpkgs Manuals"
38 Scope_NgiNixForge -> "NGI Nix Forge"
39 Scope_Nimi -> "nimi"
40 Scope_Nixpkgs -> "Nixpkgs"
41 Scope_OpamNix -> "opam-nix"
42 Scope_OpenCV -> "OpenCV"
43 Scope_Seppo -> "Seppo"
44 Scope_Sylk -> "Sylk"
45
46 data ActionId
47 = Action_Debug
48 | Action_Develop
49 | Action_Document
50 | Action_Review
51 | Action_Organize
52 deriving (Eq, Ord, Show, Generic, Enum, NFData)
53 instance Doc.ToInline ActionId where
54 toInline = \case
55 Action_Debug -> "debug"
56 Action_Develop -> "develop"
57 Action_Document -> "document"
58 Action_Organize -> "organize"
59 Action_Review -> "review"
60
61 -- From notion.so: export to CSV from the menu in the top right corner
62 -- <,'>s:\([^ (]*\)(\([^ )]*\))\:\? *\([^,]*\),\([0-9.]*\),\([^, ]*\) *[^,]*,\([^,]*\),\([^,]*\).*: , Work\n { workDate = "\7", workDuration = \4, workAction = Action_\u\1, workScope = [Scope_\u\2], workReferences = ["\6"], workDescription = "\3" }:
63 works :: [Work ScopeId ActionId]
64 works =
65 [ Work
66 { workDate = "2025-11-06"
67 , workDuration = 0.5
68 , workAction = Action_Organize
69 , workScope = [Scope_NGIpkgs]
70 , workReferences = ["https://meet.google.com/hii-druc-tjp"]
71 , workDescription = "first meeting"
72 }
73 , Work
74 { workDate = "2025-11-06"
75 , workDuration = 4
76 , workAction = Action_Develop
77 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
78 , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"]
79 , workDescription = "focus on the hardest part first"
80 }
81 , Work
82 { workDate = "2025-11-07"
83 , workDuration = 8
84 , workAction = Action_Develop
85 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
86 , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"]
87 , workDescription = "continuing to package Bonfire deps"
88 }
89 , Work
90 { workDate = "2025-11-08"
91 , workDuration = 0.1
92 , workAction = Action_Develop
93 , workScope = [Scope_Nixpkgs, Scope_OpenCV]
94 , workReferences = ["https://github.com/NixOS/nixpkgs/pull/459592"]
95 , workDescription = "fix opencv in nixpkgs"
96 }
97 , Work
98 { workDate = "2025-11-09"
99 , workDuration = 8
100 , workAction = Action_Develop
101 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
102 , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"]
103 , workDescription = "continue to fix deps"
104 }
105 , Work
106 { workDate = "2025-11-09"
107 , workDuration = 4
108 , workAction = Action_Develop
109 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
110 , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"]
111 , workDescription = "continue to fix deps"
112 }
113 , Work
114 { workDate = "2025-11-11"
115 , workDuration = 6
116 , workAction = Action_Develop
117 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
118 , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"]
119 , workDescription = "continue to fix deps"
120 }
121 , Work
122 { workDate = "2025-11-12"
123 , workDuration = 4
124 , workAction = Action_Develop
125 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
126 , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"]
127 , workDescription = "continue to fix deps"
128 }
129 , Work
130 { workDate = "2025-11-14"
131 , workDuration = 5
132 , workAction = Action_Develop
133 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
134 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1812"]
135 , workDescription = "continue to fix deps and move into ngipkgs"
136 }
137 , Work
138 { workDate = "2025-11-14"
139 , workDuration = 1
140 , workAction = Action_Organize
141 , workScope = [Scope_NGIpkgs]
142 , workReferences = ["https://www.notion.so/nixos-foundation/Nix-NGI-weekly-review-34-2ab59d49e1be80939503c655b009e934"]
143 , workDescription = "weekly meeting"
144 }
145 , Work
146 { workDate = "2025-11-15"
147 , workDuration = 6
148 , workAction = Action_Develop
149 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
150 , workReferences = []
151 , workDescription = "finish to build Bonfire and start to fix runtime bugs"
152 }
153 , Work
154 { workDate = "2025-11-16"
155 , workDuration = 4
156 , workAction = Action_Develop
157 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
158 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1812#issuecomment-3537609170"]
159 , workDescription = "workaround and contribute upstream"
160 }
161 , Work
162 { workDate = "2025-11-17"
163 , workDuration = 8
164 , workAction = Action_Develop
165 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
166 , workReferences = []
167 , workDescription = "add updateScript and fix opencv"
168 }
169 , Work
170 { workDate = "2025-11-19"
171 , workDuration = 8
172 , workAction = Action_Develop
173 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
174 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1812#issuecomment-3554376221"]
175 , workDescription = "continue to fix startup crashes"
176 }
177 , Work
178 { workDate = "2025-11-21"
179 , workDuration = 4
180 , workAction = Action_Develop
181 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
182 , workReferences = []
183 , workDescription = "begin to package yarn assets. Upstream likes convoluted code and fake libraries."
184 }
185 , Work
186 { workDate = "2025-11-21"
187 , workDuration = 1
188 , workAction = Action_Organize
189 , workScope = [Scope_NGIpkgs]
190 , workReferences = []
191 , workDescription = "weekly meeting"
192 }
193 , Work
194 { workDate = "2025-11-21"
195 , workDuration = 4
196 , workAction = Action_Develop
197 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
198 , workReferences = []
199 , workDescription = "continue to package assets"
200 }
201 , Work
202 { workDate = "2025-11-23"
203 , workDuration = 4
204 , workAction = Action_Develop
205 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
206 , workReferences = []
207 , workDescription = "continue to package assets and try to get Bonfire to work"
208 }
209 , Work
210 { workDate = "2025-11-24"
211 , workDuration = 10
212 , workAction = Action_Develop
213 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
214 , workReferences = ["https://github.com/surface-ui/surface/issues/762#issuecomment-3577030748"]
215 , workDescription = "continue to solve problems with Bonfire packaging"
216 }
217 , Work
218 { workDate = "2025-11-27"
219 , workDuration = 8
220 , workAction = Action_Develop
221 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
222 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1812#issuecomment-3584319056"]
223 , workDescription = "successfully auto-update and build Bonfire"
224 }
225 , Work
226 { workDate = "2025-11-28"
227 , workDuration = 1
228 , workAction = Action_Organize
229 , workScope = [Scope_NGIpkgs]
230 , workReferences = ["https://www.notion.so/nixos-foundation/Nix-NGI-weekly-review-36-2b959d49e1be80fa823cd4d83581fda5#2b959d49e1be80fc85eed38c9a9dca86"]
231 , workDescription = "weekly meeting"
232 }
233 , Work
234 { workDate = "2025-11-29"
235 , workDuration = 5
236 , workAction = Action_Develop
237 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
238 , workReferences = []
239 , workDescription = "begin the service module"
240 }
241 , Work
242 { workDate = "2025-12-02"
243 , workDuration = 4
244 , workAction = Action_Develop
245 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
246 , workReferences = []
247 , workDescription = "continue the service module"
248 }
249 , Work
250 { workDate = "2025-12-03"
251 , workDuration = 8
252 , workAction = Action_Develop
253 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
254 , workReferences = []
255 , workDescription = "first working service module"
256 }
257 , Work
258 { workDate = "2025-12-04"
259 , workDuration = 5
260 , workAction = Action_Develop
261 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
262 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1871"]
263 , workDescription = "improve service module"
264 }
265 , Work
266 { workDate = "2025-12-05"
267 , workDuration = 1
268 , workAction = Action_Organize
269 , workScope = [Scope_NGIpkgs]
270 , workReferences = ["https://www.notion.so/nixos-foundation/Nix-NGI-weekly-review-36-2b959d49e1be80fa823cd4d83581fda5"]
271 , workDescription = "weekly meeting"
272 }
273 , Work
274 { workDate = "2025-12-05"
275 , workDuration = 0.5
276 , workAction = Action_Document
277 , workScope = [Scope_NGIpkgs_Manuals]
278 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1954"]
279 , workDescription = "meeting"
280 }
281 , Work
282 { workDate = "2025-12-06"
283 , workDuration = 2
284 , workAction = Action_Document
285 , workScope = [Scope_NGIpkgs_Manuals]
286 , workReferences = []
287 , workDescription = "prepare wednesday meeting"
288 }
289 , Work
290 { workDate = "2025-12-07"
291 , workDuration = 4
292 , workAction = Action_Document
293 , workScope = [Scope_NGIpkgs_Manuals]
294 , workReferences = []
295 , workDescription = "prepare demo for wednesday meeting"
296 }
297 , Work
298 { workDate = "2025-12-08"
299 , workDuration = 4
300 , workAction = Action_Document
301 , workScope = [Scope_NGIpkgs_Manuals]
302 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1891"]
303 , workDescription = "prepare demo for wednesday meeting"
304 }
305 , Work
306 { workDate = "2025-12-09"
307 , workDuration = 4
308 , workAction = Action_Document
309 , workScope = [Scope_NGIpkgs_Manuals]
310 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1891"]
311 , workDescription = "continue to document"
312 }
313 , Work
314 { workDate = "2025-12-10"
315 , workDuration = 2
316 , workAction = Action_Review
317 , workScope = [Scope_NGIpkgs]
318 , workReferences = ["https://www.notion.so/nixos-foundation/Nix-NGI-best-practices-for-NixOS-modules-implementation-2c559d49e1be80a8a499f21abb203d6f"]
319 , workDescription = "visio on “best practices”"
320 }
321 , Work
322 { workDate = "2025-12-12"
323 , workDuration = 1
324 , workAction = Action_Organize
325 , workScope = [Scope_NGIpkgs]
326 , workReferences = []
327 , workDescription = "weekly visio meeting"
328 }
329 , Work
330 { workDate = "2025-12-11"
331 , workDuration = 8
332 , workAction = Action_Document
333 , workScope = [Scope_NGIpkgs_Manuals]
334 , workReferences = []
335 , workDescription = "continue to document"
336 }
337 , Work
338 { workDate = "2025-12-12"
339 , workDuration = 4
340 , workAction = Action_Document
341 , workScope = [Scope_NGIpkgs_Manuals]
342 , workReferences = []
343 , workDescription = "continue to document"
344 }
345 , Work
346 { workDate = "2025-12-13"
347 , workDuration = 2
348 , workAction = Action_Document
349 , workScope = [Scope_NGIpkgs_Manuals]
350 , workReferences = []
351 , workDescription =
352 [ "setup sphinx like "
353 , Doc.InlineLink
354 { Doc.inlineLinkTarget = "https://nix.dev"
355 , Doc.inlineLinkText = "nix.dev"
356 }
357 , " for the manuals"
358 ]
359 }
360 , Work
361 { workDate = "2025-12-13"
362 , workDuration = 5
363 , workAction = Action_Develop
364 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
365 , workReferences = ["https://github.com/bonfire-networks/bonfire-app/issues/1670#issuecomment-3650762914"]
366 , workDescription = "update to latest; overcoming new bugs introduced by upstream"
367 }
368 , Work
369 { workDate = "2025-12-15"
370 , workDuration = 4
371 , workAction = Action_Develop
372 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
373 , workReferences = []
374 , workDescription = "improving the update script and still overcoming upstream bugs"
375 }
376 , Work
377 { workDate = "2025-12-16"
378 , workDuration = 3
379 , workAction = Action_Develop
380 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
381 , workReferences = []
382 , workDescription = "overcoming bugs, again"
383 }
384 , Work
385 { workDate = "2025-12-16"
386 , workDuration = 2
387 , workAction = Action_Review
388 , workScope = [Scope_NGIpkgs]
389 , workReferences = []
390 , workDescription = "visio to review PRs"
391 }
392 , Work
393 { workDate = "2025-12-16"
394 , workDuration = 2
395 , workAction = Action_Review
396 , workScope = [Scope_NGIpkgs]
397 , workReferences = []
398 , workDescription = "visio to review PRs"
399 }
400 , Work
401 { workDate = "2025-12-17"
402 , workDuration = 1.5
403 , workAction = Action_Review
404 , workScope = [Scope_NGIpkgs]
405 , workReferences = []
406 , workDescription = "visio to review PRs"
407 }
408 , Work
409 { workDate = "2025-12-18"
410 , workDuration = 1
411 , workAction = Action_Review
412 , workScope = [Scope_NGIpkgs, Scope_DNSvizor]
413 , workReferences = []
414 , workDescription = "review linj’s PR"
415 }
416 , Work
417 { workDate = "2025-12-19"
418 , workDuration = 1.5
419 , workAction = Action_Organize
420 , workScope = [Scope_NGIpkgs]
421 , workReferences = []
422 , workDescription = "weekly meeting"
423 }
424 , Work
425 { workDate = "2025-12-21"
426 , workDuration = 4
427 , workAction = Action_Develop
428 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
429 , workReferences = []
430 , workDescription =
431 [ "fix bug using "
432 , "__structuredAttrs" & Doc.InlineCode
433 ]
434 }
435 , Work
436 { workDate = "2025-12-23"
437 , workDuration = 4
438 , workAction = Action_Document
439 , workScope = [Scope_NGIpkgs_Manuals]
440 , workReferences = []
441 , workDescription = "improve building the manuals"
442 }
443 , Work
444 { workDate = "2025-12-23"
445 , workDuration = 2
446 , workAction = Action_Develop
447 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
448 , workReferences = []
449 , workDescription = "address reviewers’ concerns"
450 }
451 , Work
452 { workDate = "2025-12-24"
453 , workDuration = 4
454 , workAction = Action_Develop
455 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
456 , workReferences = []
457 , workDescription = "update Bonfire and report issues upstream"
458 }
459 , Work
460 { workDate = "2025-12-24"
461 , workDuration = 4
462 , workAction = Action_Document
463 , workScope = [Scope_NGIpkgs_Manuals]
464 , workReferences = []
465 , workDescription = "document"
466 }
467 , Work
468 { workDate = "2025-12-24"
469 , workDuration = 2
470 , workAction = Action_Develop
471 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
472 , workReferences = []
473 , workDescription = "update Bonfire to fix bugs"
474 }
475 , Work
476 { workDate = "2025-12-25"
477 , workDuration = 2
478 , workAction = Action_Document
479 , workScope = [Scope_NGIpkgs_Manuals]
480 , workReferences = []
481 , workDescription = "document"
482 }
483 , Work
484 { workDate = "2025-12-25"
485 , workDuration = 6
486 , workAction = Action_Develop
487 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
488 , workReferences = ["https://github.com/bonfire-networks/bonfire-app/issues/1698#issuecomment-3692147409"]
489 , workDescription = "update and fix bugs"
490 }
491 , Work
492 { workDate = "2025-12-26"
493 , workDuration = 1
494 , workAction = Action_Develop
495 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
496 , workReferences = []
497 , workDescription = "update to fix bugs"
498 }
499 , Work
500 { workDate = "2025-12-28"
501 , workDuration = 6
502 , workAction = Action_Document
503 , workScope = [Scope_NGIpkgs_Manuals]
504 , workReferences = []
505 , workDescription = "document"
506 }
507 , Work
508 { workDate = "2025-12-29"
509 , workDuration = 2
510 , workAction = Action_Develop
511 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
512 , workReferences = []
513 , workDescription = "add more tests"
514 }
515 , Work
516 { workDate = "2025-12-29"
517 , workDuration = 0.5
518 , workAction = Action_Review
519 , workScope = [Scope_NGIpkgs, Scope_Funkwhale] -- goes into NGI Review
520 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1707#discussion_r2651644145"]
521 , workDescription = ""
522 }
523 , Work
524 { workDate = "2025-12-30"
525 , workDuration = 4
526 , workAction = Action_Develop
527 , workScope = [Scope_NGIpkgs, Scope_BEAM]
528 , workReferences = []
529 , workDescription = ["improve ", Doc.InlineCode "buildMix", " & ", Doc.InlineCode "mixRelease", " for packaging Elixir software"]
530 }
531 , Work
532 { workDate = "2026-01-01"
533 , workDuration = 4
534 , workAction = Action_Develop
535 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
536 , workReferences = []
537 , workDescription = "support other flavours"
538 }
539 , Work
540 { workDate = "2026-01-03"
541 , workDuration = 4
542 , workAction = Action_Develop
543 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
544 , workReferences = []
545 , workDescription = "support other flavours, and make update more resilient"
546 }
547 , Work
548 { workDate = "2026-01-04"
549 , workDuration = 2
550 , workAction = Action_Develop
551 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
552 , workReferences = []
553 , workDescription = "provide upstream with reproducers"
554 }
555 , Work
556 { workDate = "2026-01-05"
557 , workDuration = 2
558 , workAction = Action_Develop
559 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
560 , workReferences = []
561 , workDescription = "update to latest version"
562 }
563 , Work
564 { workDate = "2026-01-07"
565 , workDuration = 5
566 , workAction = Action_Develop
567 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
568 , workReferences = []
569 , workDescription = "fix updating"
570 }
571 , Work
572 { workDate = "2026-01-07"
573 , workDuration = 1
574 , workAction = Action_Document
575 , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core
576 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1891"]
577 , workDescription = "address reviewer’s comment"
578 }
579 , Work
580 { workDate = "2026-01-09"
581 , workDuration = 2
582 , workAction = Action_Document
583 , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core
584 , workReferences = []
585 , workDescription = "address reviewer’s comments"
586 }
587 , Work
588 { workDate = "2026-01-09"
589 , workDuration = 2
590 , workAction = Action_Develop
591 , workScope = [Scope_NGIpkgs, Scope_Bonfire]
592 , workReferences = ["https://github.com/bonfire-networks/bonfire-app/issues/1730"]
593 , workDescription = "answer upstream’s questions"
594 }
595 , Work
596 { workDate = "2026-01-11"
597 , workDuration = 5
598 , workAction = Action_Develop
599 , workScope = [Scope_NGIpkgs, Scope_DNSvizor]
600 , workReferences = []
601 , workDescription = ["replace ", Doc.InlineCode "hillingar", " to package MirageOS unikernels"]
602 }
603 , Work
604 { workDate = "2026-01-09"
605 , workDuration = 2
606 , workAction = Action_Organize
607 , workScope = [Scope_NGIpkgs]
608 , workReferences = []
609 , workDescription = "weekly meeting"
610 }
611 , Work
612 { workDate = "2026-01-12"
613 , workDuration = 5
614 , workAction = Action_Develop
615 , workScope = [Scope_NGIpkgs, Scope_DNSvizor]
616 , workReferences = ["https://github.com/ju1m/ngipkgs/commits/dnsvizor/"]
617 , workDescription = ["remove the need for ", Doc.InlineCode "--allow-import-from-derivation"]
618 }
619 , Work
620 { workDate = "2026-01-12"
621 , workDuration = 6
622 , workAction = Action_Document
623 , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core
624 , workReferences = []
625 , workDescription = "render options"
626 }
627 , Work
628 { workDate = "2026-01-13"
629 , workDuration = 1
630 , workAction = Action_Document
631 , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core
632 , workReferences = []
633 , workDescription = "update"
634 }
635 , Work
636 { workDate = "2026-01-16"
637 , workDuration = 2
638 , workAction = Action_Organize
639 , workScope = [Scope_NGIpkgs]
640 , workReferences = []
641 , workDescription = "weekly meeting"
642 }
643 , Work
644 { workDate = "2026-01-19"
645 , workDuration = 2
646 , workAction = Action_Document
647 , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core
648 , workReferences = []
649 , workDescription = "split into several PDF"
650 }
651 , Work
652 { workDate = "2026-01-22"
653 , workDuration = 4
654 , workAction = Action_Develop
655 , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core
656 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2010"]
657 , workDescription = "address reviewers’ concerns"
658 }
659 , Work
660 { workDate = "2026-01-23"
661 , workDuration = 1.5
662 , workAction = Action_Organize
663 , workScope = [Scope_NGIpkgs]
664 , workReferences = []
665 , workDescription = "weekly meeting"
666 }
667 , Work
668 { workDate = "2026-01-25"
669 , workDuration = 4
670 , workAction = Action_Develop
671 , workScope = [Scope_NGIpkgs, Scope_Seppo]
672 , workReferences = []
673 , workDescription = "begin packaging"
674 }
675 , Work
676 { workDate = "2026-01-26"
677 , workDuration = 5
678 , workAction = Action_Develop
679 , workScope = [Scope_NGIpkgs, Scope_Seppo]
680 , workReferences = []
681 , workDescription = "continue packaging"
682 }
683 , Work
684 { workDate = "2026-01-27"
685 , workDuration = 5
686 , workAction = Action_Develop
687 , workScope = [Scope_NGIpkgs, Scope_Seppo]
688 , workReferences = []
689 , workDescription = "continue packaging"
690 }
691 , {- Counted as work on Seppo
692 , Work
693 { workDate = "2026-01-28"
694 , workDuration = 1
695 , workAction = Action_Develop
696 , workScope = [Scope_DNSvizor]
697 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2018"]
698 , workDescription = "rebase"
699 }
700 , Work
701 { workDate = "2026-01-28"
702 , workDuration = 0.5
703 , workAction = Action_Develop
704 , workScope = [Scope_DNSvizor, Scope_OpamNix]
705 , workReferences = ["https://github.com/tweag/opam-nix/pull/149"]
706 , workDescription = "push upstream what’s needed for MirageOS unikernels"
707 }
708 , Work
709 { workDate = "2026-01-29"
710 , workDuration = 3
711 , workAction = Action_Review
712 , workScope = [Scope_DNSvizor]
713 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1944"]
714 , workDescription = ""
715 }
716 , Work
717 { workDate = "2026-01-29"
718 , workDuration = 1
719 , workAction = Action_Develop
720 , workScope = [Scope_DNSvizor, Scope_OpamNix]
721 , workReferences = ["https://github.com/tweag/opam-nix/pull/149"]
722 , workDescription = "address upstream’s concerns"
723 }
724 , Work
725 { workDate = "2026-01-29"
726 , workDuration = 2
727 , workAction = Action_Develop
728 , workScope = [Scope_Bonfire]
729 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1871"]
730 , workDescription = "address reviewers’ concerns"
731 }
732 -}
733 Work
734 { workDate = "2026-01-30"
735 , workDuration = 1
736 , workAction = Action_Organize
737 , workScope = [Scope_NGIpkgs]
738 , workReferences = []
739 , workDescription = "weekly meeting"
740 }
741 , Work
742 { workDate = "2026-01-30"
743 , workDuration = 1
744 , workAction = Action_Review
745 , workScope = [Scope_DNSvizor]
746 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1944"]
747 , workDescription = "second round of discussion"
748 }
749 , Work
750 { workDate = "2026-02-04"
751 , workDuration = 3
752 , workAction = Action_Debug
753 , workScope = [Scope_DNSvizor]
754 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1907#issuecomment-3845347501"]
755 , workDescription = "blame Thread-Local Storage (TLS) for runtime crash of DNSvizor built with Nix"
756 }
757 , Work
758 { workDate = "2026-02-04"
759 , workDuration = 0.5
760 , workAction = Action_Develop
761 , workScope = [Scope_DNSvizor]
762 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2018"]
763 , workDescription = "address reviewer concerns"
764 }
765 , Work
766 { workDate = "2026-02-05"
767 , workDuration = 3
768 , workAction = Action_Develop
769 , workScope = [Scope_DNSvizor]
770 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2018"]
771 , workDescription = "workaround longstanding runtime failure due to Thread-Local Storage in Solo5"
772 }
773 , Work
774 { workDate = "2026-02-06"
775 , workDuration = 3
776 , workAction = Action_Develop
777 , workScope = [Scope_DNSvizor]
778 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2018"]
779 , workDescription = "address reviewer’s concern about closure size"
780 }
781 , Work
782 { workDate = "2026-02-04"
783 , workDuration = 0.5
784 , workAction = Action_Document
785 , workScope = [Scope_OpamNix]
786 , workReferences = ["https://github.com/tweag/opam-nix/pull/149"]
787 , workDescription = "address upstream concerns"
788 }
789 , Work
790 { workDate = "2026-02-06"
791 , workDuration = 2.5
792 , workAction = Action_Organize
793 , workScope = [Scope_NGIpkgs]
794 , workReferences = []
795 , workDescription = "weekly meeting"
796 }
797 , Work
798 { workDate = "2026-02-10"
799 , workDuration = 3
800 , workAction = Action_Develop
801 , workScope = [Scope_DNSvizor, Scope_Mirage]
802 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2063"]
803 , workDescription = "standardization of the build helper"
804 }
805 , Work
806 { workDate = "2026-02-11"
807 , workDuration = 2
808 , workAction = Action_Develop
809 , workScope = [Scope_DNSvizor, Scope_Mirage]
810 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2063"]
811 , workDescription = "address reviewer’s concerns"
812 }
813 , Work
814 { workDate = "2026-02-11"
815 , workDuration = 1
816 , workAction = Action_Develop
817 , workScope = [Scope_DNSvizor, Scope_Mirage]
818 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2063"]
819 , workDescription = "address reviewers’ concerns"
820 }
821 , Work
822 { workDate = "2026-02-11"
823 , workDuration = 5
824 , workAction = Action_Develop
825 , workScope = [Scope_Bonfire]
826 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2155"]
827 , workDescription = "update to 1.0.2-alpha.23"
828 }
829 , Work
830 { workDate = "2026-02-11"
831 , workDuration = 1
832 , workAction = Action_Develop
833 , workScope = [Scope_OpamNix]
834 , workReferences = ["https://github.com/tweag/opam-nix"]
835 , workDescription = "address upstream-s concern"
836 }
837 , Work
838 { workDate = "2026-02-13"
839 , workDuration = 1
840 , workAction = Action_Organize
841 , workScope = [Scope_NGIpkgs]
842 , workReferences = []
843 , workDescription = "weekly meeting"
844 }
845 , Work
846 { workDate = "2026-02-16"
847 , workDuration = 3
848 , workAction = Action_Develop
849 , workScope = [Scope_DNSvizor, Scope_Mirage]
850 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2063"]
851 , workDescription = "address reviewer’s concerns"
852 }
853 , Work
854 { workDate = "2026-02-19"
855 , workDuration = 5
856 , workAction = Action_Develop
857 , workScope = [Scope_Bonfire]
858 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2155"]
859 , workDescription = "update to 1.0.2-alpha.32"
860 }
861 , Work
862 { workDate = "2026-02-21"
863 , workDuration = 2
864 , workAction = Action_Organize
865 , workScope = [Scope_NGIpkgs]
866 , workReferences = []
867 , workDescription = "weekly meeting"
868 }
869 , Work
870 { workDate = "2026-02-21"
871 , workDuration = 1
872 , workAction = Action_Organize
873 , workScope = [Scope_NGIpkgs]
874 , workReferences = []
875 , workDescription = "meeting with Ivan Mincik to understand his vision for NGIpkgs App Store"
876 }
877 , Work
878 { workDate = "2026-02-24"
879 , workDuration = 1.5
880 , workAction = Action_Organize
881 , workScope = [Scope_NGIpkgs]
882 , workReferences = [""]
883 , workDescription = "meeting with Valentin Gagarin and the Nix@NGI team to discuss Ivan’s Nix App Store"
884 }
885 , Work
886 { workDate = "2026-02-23"
887 , workDuration = 2
888 , workAction = Action_Develop
889 , workScope = [Scope_Bonfire]
890 , workReferences = [""]
891 , workDescription = "fix upstream lock file (again)"
892 }
893 , Work
894 { workDate = "2026-02-23"
895 , workDuration = 1
896 , workAction = Action_Review
897 , workScope = [Scope_Sylk]
898 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2203"]
899 , workDescription = "resurrect and improve fixes dropped by original author"
900 }
901 , Work
902 { workDate = "2026-02-23"
903 , workDuration = 0.1
904 , workAction = Action_Develop
905 , workScope = [Scope_DNSvizor]
906 , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2063"]
907 , workDescription = "rebase due to conflicts"
908 }
909 , Work
910 { workDate = "2026-02-26"
911 , workDuration = 2.5
912 , workAction = Action_Organize
913 , workScope = [Scope_NgiNixForge]
914 , workReferences = [""]
915 , workDescription = "discuss with Ivan and the Nix@NGI team about Ivan’s vision"
916 }
917 , Work
918 { workDate = "2026-02-27"
919 , workDuration = 1.75
920 , workAction = Action_Organize
921 , workScope = [Scope_NGIpkgs]
922 , workReferences = [""]
923 , workDescription = "weekly meeting"
924 }
925 , Work
926 { workDate = "2026-02-28"
927 , workDuration = 2
928 , workAction = Action_Review
929 , workScope = [Scope_CollaboraDesktop]
930 , workReferences = ["https://github.com/NixOS/nixpkgs/pull/485564#issuecomment-3977899035"]
931 , workDescription = "try to reproduce and investigate failing checks"
932 }
933 , Work
934 { workDate = "2026-02-28"
935 , workDuration = 2
936 , workAction = Action_Review
937 , workScope = [Scope_CollaboraDesktop]
938 , workReferences = ["https://github.com/NixOS/nixpkgs/pull/485564#issuecomment-3977899035"]
939 , workDescription = "try to reproduce and investigate failing checks"
940 }
941 , Work
942 { workDate = "2026-03-02"
943 , workDuration = 3
944 , workAction = Action_Review
945 , workScope = [Scope_NgiNixForge]
946 , workReferences = ["https://github.com/ju1m/nix-forge/tree/understanding"]
947 , workDescription = "understand by rewriting from scratch"
948 }
949 , Work
950 { workDate = "2026-03-02"
951 , workDuration = 3
952 , workAction = Action_Develop
953 , workScope = [Scope_NgiNixForge]
954 , workReferences = ["https://github.com/ju1m/nix-forge/tree/understanding"]
955 , workDescription = "package elm-watch"
956 }
957 , Work
958 { workDate = "2026-03-03"
959 , workDuration = 3
960 , workAction = Action_Develop
961 , workScope = [Scope_NgiNixForge]
962 , workReferences = ["https://github.com/ju1m/nix-forge/tree/understanding"]
963 , workDescription = "improve dev environment"
964 }
965 , Work
966 { workDate = "2026-03-03"
967 , workDuration = 1
968 , workAction = Action_Organize
969 , workScope = [Scope_NgiNixForge]
970 , workReferences = ["@nix-forge-development:matrix.org"]
971 , workDescription = "answer questions"
972 }
973 , Work
974 { workDate = "2026-03-04"
975 , workDuration = 4
976 , workAction = Action_Develop
977 , workScope = [Scope_NgiNixForge]
978 , workReferences = ["https://github.com/ju1m/nix-forge/tree/understanding"]
979 , workDescription = "assess code quality of the UI"
980 }
981 , Work
982 { workDate = "2026-03-04"
983 , workDuration = 2.5
984 , workAction = Action_Organize
985 , workScope = [Scope_NgiNixForge]
986 , workReferences = [""]
987 , workDescription = "share progress and open issues"
988 }
989 , Work
990 { workDate = "2026-03-05"
991 , workDuration = 4
992 , workAction = Action_Review
993 , workScope = [Scope_NgiNixForge]
994 , workReferences = ["https://github.com/eljamm/nix-forge/commits/explore/"]
995 , workDescription = "review Fedi’s work"
996 }
997 , Work
998 { workDate = "2026-03-06"
999 , workDuration = 1.5
1000 , workAction = Action_Organize
1001 , workScope = [Scope_NgiNixForge]
1002 , workReferences = [""]
1003 , workDescription = "discuss nix-forge"
1004 }
1005 , Work
1006 { workDate = "2026-03-07"
1007 , workDuration = 4
1008 , workAction = Action_Develop
1009 , workScope = [Scope_NgiNixForge]
1010 , workReferences = ["https://github.com/eljamm/nix-forge/pull/1"]
1011 , workDescription = "track down and fix bug in Fedi’s branch"
1012 }
1013 , Work
1014 { workDate = "2026-03-08"
1015 , workDuration = 1
1016 , workAction = Action_Develop
1017 , workScope = [Scope_Nimi]
1018 , workReferences = ["https://github.com/weyl-ai/nimi/pull/15"]
1019 , workDescription = "improve performance"
1020 }
1021 , Work
1022 { workDate = "2026-03-09"
1023 , workDuration = 7
1024 , workAction = Action_Develop
1025 , workScope = [Scope_NgiNixForge]
1026 , workReferences = [""]
1027 , workDescription = "rewrite in a more type-safe and idiomatic way"
1028 }
1029 , Work
1030 { workDate = "2026-03-09"
1031 , workDuration = 2
1032 , workAction = Action_Organize
1033 , workScope = [Scope_NgiNixForge]
1034 , workReferences = ["https://www.notion.so/nixos-foundation/Nix-NGI-spike-review-31e59d49e1be809f9192d42a2862d7e5"]
1035 , workDescription = "assess design"
1036 }
1037 , Work
1038 { workDate = "2026-03-10"
1039 , workDuration = 2
1040 , workAction = Action_Organize
1041 , workScope = [Scope_NgiNixForge]
1042 , workReferences = [""]
1043 , workDescription = "discuss UI design"
1044 }
1045 , Work
1046 { workDate = "2026-03-10"
1047 , workDuration = 10
1048 , workAction = Action_Develop
1049 , workScope = [Scope_NgiNixForge]
1050 , workReferences = [""]
1051 , workDescription = "implement discussed design"
1052 }
1053 , Work
1054 { workDate = "2026-03-16"
1055 , workDuration = 2
1056 , workAction = Action_Organize
1057 , workScope = [Scope_NgiNixForge]
1058 , workReferences = [""]
1059 , workDescription = "weekly meeting"
1060 }
1061 , Work
1062 { workDate = "2026-03-13"
1063 , workDuration = 2
1064 , workAction = Action_Organize
1065 , workScope = [Scope_NgiNixForge]
1066 , workReferences = [""]
1067 , workDescription = "weekly meeting"
1068 }
1069 , Work
1070 { workDate = "2026-03-13"
1071 , workDuration = 4
1072 , workAction = Action_Develop
1073 , workScope = [Scope_NgiNixForge]
1074 , workReferences = [""]
1075 , workDescription = "try to support browser history"
1076 }
1077 , Work
1078 { workDate = "2026-03-11"
1079 , workDuration = 3
1080 , workAction = Action_Develop
1081 , workScope = [Scope_NgiNixForge]
1082 , workReferences = [""]
1083 , workDescription = "address review comments"
1084 }
1085 , Work
1086 { workDate = "2026-03-15"
1087 , workDuration = 10
1088 , workAction = Action_Develop
1089 , workScope = [Scope_NgiNixForge]
1090 , workReferences = ["https://github.com/ngi-nix/ngi-nix-forge/pull/55"]
1091 , workDescription = "fix routing bugs"
1092 }
1093 , Work
1094 { workDate = "2026-03-16"
1095 , workDuration = 1
1096 , workAction = Action_Review
1097 , workScope = [Scope_NgiNixForge]
1098 , workReferences = ["https://github.com/ngi-nix/ngi-nix-forge/pull/67"]
1099 , workDescription = "review Phani’s work"
1100 }
1101 , Work
1102 { workDate = "2026-03-16"
1103 , workDuration = 6
1104 , workAction = Action_Develop
1105 , workScope = [Scope_NgiNixForge]
1106 , workReferences = [""]
1107 , workDescription = "improve underlying model or the UI"
1108 }
1109 , Work
1110 { workDate = "2026-03-17"
1111 , workDuration = 2.5
1112 , workAction = Action_Organize
1113 , workScope = [Scope_NgiNixForge]
1114 , workReferences = [""]
1115 , workDescription = "design discussion with Ivan and Phani"
1116 }
1117 , Work
1118 { workDate = "2026-03-17"
1119 , workDuration = 6
1120 , workAction = Action_Develop
1121 , workScope = [Scope_NgiNixForge]
1122 , workReferences = [""]
1123 , workDescription = "implement routing for all pages"
1124 }
1125 , Work
1126 { workDate = "2026-03-17"
1127 , workDuration = 4
1128 , workAction = Action_Organize
1129 , workScope = [Scope_NgiNixForge]
1130 , workReferences = [""]
1131 , workDescription = "review Phani’s work with Phani"
1132 }
1133 , Work
1134 { workDate = "2026-03-19"
1135 , workDuration = 1
1136 , workAction = Action_Develop
1137 , workScope = [Scope_NgiNixForge]
1138 , workReferences = [""]
1139 , workDescription = "implement options listing for packager"
1140 }
1141 , Work
1142 { workDate = "2026-03-20"
1143 , workDuration = 1.5
1144 , workAction = Action_Organize
1145 , workScope = [Scope_NgiNixForge]
1146 , workReferences = [""]
1147 , workDescription = "weekly meeting"
1148 }
1149 , Work
1150 { workDate = "2026-03-22"
1151 , workDuration = 5
1152 , workAction = Action_Develop
1153 , workScope = [Scope_NgiNixForge]
1154 , workReferences = ["https://github.com/ngi-nix/ngi-nix-forge/pull/108"]
1155 , workDescription = "init options browsing"
1156 }
1157 , Work
1158 { workDate = "2026-03-23"
1159 , workDuration = 5
1160 , workAction = Action_Develop
1161 , workScope = [Scope_NgiNixForge]
1162 , workReferences = ["https://github.com/ngi-nix/ngi-nix-forge/pull/108"]
1163 , workDescription = "multiple fixes related to the UI"
1164 }
1165 , Work
1166 { workDate = "2026-03-25"
1167 , workDuration = 2
1168 , workAction = Action_Develop
1169 , workScope = [Scope_NgiNixForge]
1170 , workReferences = ["https://github.com/ngi-nix/forge/pull/108"]
1171 , workDescription = "address reviewer’s concerns"
1172 }
1173 , Work
1174 { workDate = "2026-03-26"
1175 , workDuration = 2
1176 , workAction = Action_Develop
1177 , workScope = [Scope_NgiNixForge]
1178 , workReferences = ["https://github.com/ngi-nix/forge/pull/133"]
1179 , workDescription = "address reviewer’s concerns"
1180 }
1181 , Work
1182 { workDate = "2026-03-26"
1183 , workDuration = 2
1184 , workAction = Action_Develop
1185 , workScope = [Scope_NgiNixForge]
1186 , workReferences = ["https://github.com/ngi-nix/forge/pull/144"]
1187 , workDescription = "address reliability concerns of the dev environment"
1188 }
1189 , Work
1190 { workDate = "2026-03-27"
1191 , workDuration = 2
1192 , workAction = Action_Develop
1193 , workScope = [Scope_NgiNixForge]
1194 , workReferences = [""]
1195 , workDescription = "implement pagination for /recipe/options"
1196 }
1197 , Work
1198 { workDate = "2026-03-27"
1199 , workDuration = 2.5
1200 , workAction = Action_Organize
1201 , workScope = [Scope_NgiNixForge]
1202 , workReferences = [""]
1203 , workDescription = "weekly meeting"
1204 }
1205 , Work
1206 { workDate = "2026-03-27"
1207 , workDuration = 0.5
1208 , workAction = Action_Develop
1209 , workScope = [Scope_NgiNixForge]
1210 , workReferences = ["https://github.com/ngi-nix/forge/pull/144"]
1211 , workDescription = "address reviewer’s concerns"
1212 }
1213 ]