{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} module Tests.Work where import Literate.Document qualified as Doc import Literate.Invoice import Literate.Prelude data ScopeId = Scope_BEAM | Scope_Bonfire | Scope_DNSvizor | Scope_Funkwhale | Scope_NGIpkgs | Scope_NGIpkgs_Manuals | Scope_Nixpkgs | Scope_OpenCV | Scope_Seppo deriving (Eq, Ord, Show, Generic, NFData) instance Doc.ToInline ScopeId where toInline = \case Scope_BEAM -> "BEAM" Scope_Bonfire -> "Bonfire" Scope_DNSvizor -> "DNSvizor" Scope_Funkwhale -> "Funkwhale" Scope_NGIpkgs -> "NGIpkgs" Scope_NGIpkgs_Manuals -> "NGIpkgs Manuals" Scope_Nixpkgs -> "Nixpkgs" Scope_OpenCV -> "OpenCV" Scope_Seppo -> "Seppo" data ActionId = Action_Organization | Action_Development | Action_Documentation | Action_Review deriving (Eq, Ord, Show, Generic, Enum, NFData) instance Doc.ToInline ActionId where toInline = \case Action_Development -> "development" Action_Documentation -> "documentation" Action_Organization -> "organization" Action_Review -> "review" works :: [Work ScopeId ActionId] works = [ Work { workDate = "2025-11-06" , workDuration = 0.5 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = ["https://meet.google.com/hii-druc-tjp"] , workDescription = "first meeting" } , Work { workDate = "2025-11-06" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"] , workDescription = "focus on the hardest part first" } , Work { workDate = "2025-11-07" , workDuration = 8 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"] , workDescription = "continuing to package Bonfire deps" } , Work { workDate = "2025-11-08" , workDuration = 0.1 , workAction = Action_Development , workScope = [Scope_Nixpkgs, Scope_OpenCV] , workReferences = ["https://github.com/NixOS/nixpkgs/pull/459592"] , workDescription = "fix opencv in nixpkgs" } , Work { workDate = "2025-11-09" , workDuration = 8 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"] , workDescription = "continue to fix deps" } , Work { workDate = "2025-11-09" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"] , workDescription = "continue to fix deps" } , Work { workDate = "2025-11-11" , workDuration = 6 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"] , workDescription = "continue to fix deps" } , Work { workDate = "2025-11-12" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ju1m/bonfire-app/commits/nix"] , workDescription = "continue to fix deps" } , Work { workDate = "2025-11-14" , workDuration = 5 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1812"] , workDescription = "continue to fix deps and move into ngipkgs" } , Work { workDate = "2025-11-14" , workDuration = 1 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = ["https://www.notion.so/nixos-foundation/Nix-NGI-weekly-review-34-2ab59d49e1be80939503c655b009e934"] , workDescription = "weekly meeting" } , Work { workDate = "2025-11-15" , workDuration = 6 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "finish to build Bonfire and start to fix runtime bugs" } , Work { workDate = "2025-11-16" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1812#issuecomment-3537609170"] , workDescription = "workaround and contribute upstream" } , Work { workDate = "2025-11-17" , workDuration = 8 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "add updateScript and fix opencv" } , Work { workDate = "2025-11-19" , workDuration = 8 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1812#issuecomment-3554376221"] , workDescription = "continue to fix startup crashes" } , Work { workDate = "2025-11-21" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "begin to package yarn assets. Upstream likes convoluted code and fake libraries." } , Work { workDate = "2025-11-21" , workDuration = 1 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = [] , workDescription = "weekly meeting" } , Work { workDate = "2025-11-21" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "continue to package assets" } , Work { workDate = "2025-11-23" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "continue to package assets and try to get Bonfire to work" } , Work { workDate = "2025-11-24" , workDuration = 10 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/surface-ui/surface/issues/762#issuecomment-3577030748"] , workDescription = "continue to solve problems with Bonfire packaging" } , Work { workDate = "2025-11-27" , workDuration = 8 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1812#issuecomment-3584319056"] , workDescription = "successfully auto-update and build Bonfire" } , Work { workDate = "2025-11-28" , workDuration = 1 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = ["https://www.notion.so/nixos-foundation/Nix-NGI-weekly-review-36-2b959d49e1be80fa823cd4d83581fda5#2b959d49e1be80fc85eed38c9a9dca86"] , workDescription = "weekly meeting" } , Work { workDate = "2025-11-29" , workDuration = 5 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "begin the service module" } , Work { workDate = "2025-12-02" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "continue the service module" } , Work { workDate = "2025-12-03" , workDuration = 8 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "first working service module" } , Work { workDate = "2025-12-04" , workDuration = 5 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1871"] , workDescription = "improve service module" } , Work { workDate = "2025-12-05" , workDuration = 1 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = ["https://www.notion.so/nixos-foundation/Nix-NGI-weekly-review-36-2b959d49e1be80fa823cd4d83581fda5"] , workDescription = "weekly meeting" } , Work { workDate = "2025-12-05" , workDuration = 0.5 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1954"] , workDescription = "meeting" } , Work { workDate = "2025-12-06" , workDuration = 2 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = [] , workDescription = "prepare wednesday meeting" } , Work { workDate = "2025-12-07" , workDuration = 4 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = [] , workDescription = "prepare demo for wednesday meeting" } , Work { workDate = "2025-12-08" , workDuration = 4 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1891"] , workDescription = "prepare demo for wednesday meeting" } , Work { workDate = "2025-12-09" , workDuration = 4 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1891"] , workDescription = "continue to document" } , Work { workDate = "2025-12-10" , workDuration = 2 , workAction = Action_Review , workScope = [Scope_NGIpkgs] , workReferences = ["https://www.notion.so/nixos-foundation/Nix-NGI-best-practices-for-NixOS-modules-implementation-2c559d49e1be80a8a499f21abb203d6f"] , workDescription = "visio on “best practices”" } , Work { workDate = "2025-12-12" , workDuration = 1 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = [] , workDescription = "weekly visio meeting" } , Work { workDate = "2025-12-11" , workDuration = 8 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = [] , workDescription = "continue to document" } , Work { workDate = "2025-12-12" , workDuration = 4 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = [] , workDescription = "continue to document" } , Work { workDate = "2025-12-13" , workDuration = 2 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = [] , workDescription = [ "setup sphinx like " , Doc.InlineLink { Doc.inlineLinkTarget = "https://nix.dev" , Doc.inlineLinkText = "nix.dev" } , " for the manuals" ] } , Work { workDate = "2025-12-13" , workDuration = 5 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/bonfire-networks/bonfire-app/issues/1670#issuecomment-3650762914"] , workDescription = "update to latest; overcoming new bugs introduced by upstream" } , Work { workDate = "2025-12-15" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "improving the update script and still overcoming upstream bugs" } , Work { workDate = "2025-12-16" , workDuration = 3 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "overcoming bugs, again" } , Work { workDate = "2025-12-16" , workDuration = 2 , workAction = Action_Review , workScope = [Scope_NGIpkgs] , workReferences = [] , workDescription = "visio to review PRs" } , Work { workDate = "2025-12-16" , workDuration = 2 , workAction = Action_Review , workScope = [Scope_NGIpkgs] , workReferences = [] , workDescription = "visio to review PRs" } , Work { workDate = "2025-12-17" , workDuration = 1.5 , workAction = Action_Review , workScope = [Scope_NGIpkgs] , workReferences = [] , workDescription = "visio to review PRs" } , Work { workDate = "2025-12-18" , workDuration = 1 , workAction = Action_Review , workScope = [Scope_NGIpkgs, Scope_DNSvizor] , workReferences = [] , workDescription = "review linj’s PR" } , Work { workDate = "2025-12-19" , workDuration = 1.5 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = [] , workDescription = "weekly meeting" } , Work { workDate = "2025-12-21" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = [ "fix bug using " , "__structuredAttrs" & Doc.InlineCode ] } , Work { workDate = "2025-12-23" , workDuration = 4 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = [] , workDescription = "improve building the manuals" } , Work { workDate = "2025-12-23" , workDuration = 2 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "address reviewers’ concerns" } , Work { workDate = "2025-12-24" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "update Bonfire and report issues upstream" } , Work { workDate = "2025-12-24" , workDuration = 4 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = [] , workDescription = "document" } , Work { workDate = "2025-12-24" , workDuration = 2 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "update Bonfire to fix bugs" } , Work { workDate = "2025-12-25" , workDuration = 2 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = [] , workDescription = "document" } , Work { workDate = "2025-12-25" , workDuration = 6 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/bonfire-networks/bonfire-app/issues/1698#issuecomment-3692147409"] , workDescription = "update and fix bugs" } , Work { workDate = "2025-12-26" , workDuration = 1 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "update to fix bugs" } , Work { workDate = "2025-12-28" , workDuration = 6 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] , workReferences = [] , workDescription = "document" } , Work { workDate = "2025-12-29" , workDuration = 2 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "add more tests" } , Work { workDate = "2025-12-29" , workDuration = 0.5 , workAction = Action_Review , workScope = [Scope_NGIpkgs, Scope_Funkwhale] -- goes into NGI Review , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1707#discussion_r2651644145"] , workDescription = "" } , Work { workDate = "2025-12-30" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_BEAM] , workReferences = [] , workDescription = ["improve ", Doc.InlineCode "buildMix", " & ", Doc.InlineCode "mixRelease", " for packaging Elixir software"] } , Work { workDate = "2026-01-01" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "support other flavours" } , Work { workDate = "2026-01-03" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "support other flavours, and make update more resilient" } , Work { workDate = "2026-01-04" , workDuration = 2 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "provide upstream with reproducers" } , Work { workDate = "2026-01-05" , workDuration = 2 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "update to latest version" } , Work { workDate = "2026-01-07" , workDuration = 5 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = [] , workDescription = "fix updating" } , Work { workDate = "2026-01-07" , workDuration = 1 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/1891"] , workDescription = "address reviewer’s comment" } , Work { workDate = "2026-01-09" , workDuration = 2 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core , workReferences = [] , workDescription = "address reviewer’s comments" } , Work { workDate = "2026-01-09" , workDuration = 2 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Bonfire] , workReferences = ["https://github.com/bonfire-networks/bonfire-app/issues/1730"] , workDescription = "answer upstream’s questions" } , Work { workDate = "2026-01-11" , workDuration = 5 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_DNSvizor] , workReferences = [] , workDescription = ["replace ", Doc.InlineCode "hillingar", " to package MirageOS unikernels"] } , Work { workDate = "2026-01-09" , workDuration = 2 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = [] , workDescription = "weekly meeting" } , Work { workDate = "2026-01-12" , workDuration = 5 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_DNSvizor] , workReferences = ["https://github.com/ju1m/ngipkgs/commits/dnsvizor/"] , workDescription = ["remove the need for ", Doc.InlineCode "--allow-import-from-derivation"] } , Work { workDate = "2026-01-12" , workDuration = 6 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core , workReferences = [] , workDescription = "render options" } , Work { workDate = "2026-01-13" , workDuration = 1 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core , workReferences = [] , workDescription = "update" } , Work { workDate = "2026-01-16" , workDuration = 2 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = [] , workDescription = "weekly meeting" } , Work { workDate = "2026-01-19" , workDuration = 2 , workAction = Action_Documentation , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core , workReferences = [] , workDescription = "split into several PDF" } , Work { workDate = "2026-01-22" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs_Manuals] -- goes into NGI Core , workReferences = ["https://github.com/ngi-nix/ngipkgs/pull/2010"] , workDescription = "address reviewers’ concerns" } , Work { workDate = "2026-01-23" , workDuration = 1.5 , workAction = Action_Organization , workScope = [Scope_NGIpkgs] , workReferences = [] , workDescription = "weekly meeting" } , Work { workDate = "2026-01-25" , workDuration = 4 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Seppo] , workReferences = [] , workDescription = "begin packaging" } , Work { workDate = "2026-01-26" , workDuration = 5 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Seppo] , workReferences = [] , workDescription = "continue packaging" } , Work { workDate = "2026-01-27" , workDuration = 5 , workAction = Action_Development , workScope = [Scope_NGIpkgs, Scope_Seppo] , workReferences = [] , workDescription = "continue packaging" } ]