add ticket dependencies

Signed-off-by: cinereal <cinereal@riseup.net>
This commit is contained in:
Kiara Grouwstra 2025-12-01 19:31:54 +01:00
parent 218ecc7fa6
commit 1a683feb6b
Signed by: kiara
SSH key fingerprint: SHA256:COspvLoLJ5WC5rFb9ZDe5urVCkK4LJZOsjfF4duRJFU
3 changed files with 933 additions and 0 deletions

View file

@ -0,0 +1,905 @@
flowchart LR
classDef any stroke-width:3px;
%% ticket type
classDef objective stroke:#0052cc;
classDef key_result stroke:#eb6420;
classDef user_story stroke:#70c24a;
classDef task stroke:#5319e7;
classDef bug stroke:#e11d21;
%% scrum fibonacci complexity estimation
classDef points_0 font-size:8pt;
classDef points_05 font-size:10pt;
classDef points_1 font-size:12pt;
classDef points_2 font-size:14pt;
classDef points_3 font-size:17pt;
classDef points_5 font-size:20pt;
classDef points_8 font-size:24pt;
classDef points_13 font-size:28pt;
classDef points_21 font-size:34pt;
classDef points_34 font-size:40pt;
classDef points_55 font-size:48pt;
classDef points_inf font-size:60pt;
classDef points_unestimated font-size:25pt;
i13["#13: Beefier Forgejo actions machines"]:::task;
click i13 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/13" "Beefier Forgejo actions machines";
class i13 any;
class i13 points_3;
i24["#24: Disable root SSH authentication altogether"]:::task;
click i24 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/24" "Disable root SSH authentication altogether";
class i24 any;
class i24 points_13;
i29["#29: Backups for Forgejo"]:::task;
click i29 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/29" "Backups for Forgejo";
class i29 any;
class i29 points_2;
i33["#33: Get the Pixelfed tests to run in CI"]:::task;
click i33 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/33" "Get the Pixelfed tests to run in CI";
class i33 any;
class i33 points_2;
i50["#50: [D2.7] Analyze investment on Fediverse"]:::task;
click i50 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/50" "[D2.7] Analyze investment on Fediverse";
class i50 any;
class i50 points_34;
i65["#65: Automated dependency updates"]:::task;
click i65 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/65" "Automated dependency updates";
class i65 any;
class i65 points_3;
i68["#68: Describe the hardware infrastructure needed to run Fediversity yourself"]:::task;
click i68 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/68" "Describe the hardware infrastructure needed to run Fediversity yourself";
class i68 any;
class i68 points_05;
i69["#69: Separate test environments for staging vs. production"]:::task;
click i69 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/69" "Separate test environments for staging vs. production";
class i69 any;
class i69 points_3;
i75["#75: Receive a notification when deployment finishes"]:::user_story;
click i75 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/75" "Receive a notification when deployment finishes";
class i75 any;
class i75 points_5;
i76["#76: Deployed services are accessible"]:::user_story;
click i76 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/76" "Deployed services are accessible";
class i76 any;
class i76 points_8;
i77["#77: Create a deployment migration string"]:::task;
click i77 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/77" "Create a deployment migration string";
class i77 any;
class i77 points_3;
i78["#78: Start deployment migration"]:::task;
click i78 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/78" "Start deployment migration";
class i78 any;
class i78 points_13;
i86["#86: Update documentation on services"]:::task;
click i86 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/86" "Update documentation on services";
class i86 any;
class i86 points_2;
i87["#87: Replace snakeoil-key with proper secret"]:::task;
click i87 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/87" "Replace snakeoil-key with proper secret";
class i87 any;
class i87 points_2;
i89["#89: Generate documentation on the deployments from the code"]:::task;
click i89 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/89" "Generate documentation on the deployments from the code";
class i89 any;
class i89 points_1;
i92["#92: Continuous Integration builds available in a public cache"]:::task;
click i92 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/92" "Continuous Integration builds available in a public cache";
class i92 any;
class i92 points_5;
i98["#98: docs: document having to load nix dev shell for pre-commit hook"]:::task;
click i98 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/98" "docs: document having to load nix dev shell for pre-commit hook";
class i98 any;
class i98 points_0;
i99["#99: applications deployed on command"]:::user_story;
click i99 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/99" "applications deployed on command";
class i99 any;
class i99 points_5;
i100["#100: migrating application data between hosting providers"]:::user_story;
click i100 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/100" "migrating application data between hosting providers";
class i100 any;
class i100 points_8;
i110["#110: desired subdomains are assigned to deployed services"]:::user_story;
click i110 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/110" "desired subdomains are assigned to deployed services";
class i110 any;
class i110 points_13;
i111["#111: Shared file storage is provisioned to ensure persistence of data"]:::user_story;
click i111 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/111" "Shared file storage is provisioned to ensure persistence of data";
class i111 any;
class i111 points_3;
i115["#115: Databases are provisioned so that services can use a central storage"]:::user_story;
click i115 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/115" "Databases are provisioned so that services can use a central storage";
class i115 any;
class i115 points_5;
i116["#116: Proxmox resources are provisioned to deploy services to"]:::user_story;
click i116 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/116" "Proxmox resources are provisioned to deploy services to";
class i116 any;
class i116 points_21;
i117["#117: SMTP service is provisioned so that applications can send emails"]:::user_story;
click i117 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/117" "SMTP service is provisioned so that applications can send emails";
class i117 any;
class i117 points_5;
i118["#118: Relevant email accounts are provisioned such that the operator may be contacted"]:::user_story;
click i118 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/118" "Relevant email accounts are provisioned such that the operator may be contacted";
class i118 any;
class i118 points_3;
i119["#119: ProxmoX deployment allows scaling resources assigned to a VM"]:::user_story;
click i119 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/119" "ProxmoX deployment allows scaling resources assigned to a VM";
class i119 any;
class i119 points_13;
i123["#123: enable back-ups of application"]:::user_story;
click i123 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/123" "enable back-ups of application";
class i123 any;
class i123 points_21;
i124["#124: enable back-ups of application database"]:::task;
click i124 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/124" "enable back-ups of application database";
class i124 any;
class i124 points_3;
i125["#125: enable back-ups of applications' immutable storage"]:::task;
click i125 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/125" "enable back-ups of applications' immutable storage";
class i125 any;
class i125 points_2;
i126["#126: Operator can make back-ups of applications' mutable file systems"]:::user_story;
click i126 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/126" "Operator can make back-ups of applications' mutable file systems";
class i126 any;
class i126 points_3;
i136["#136: panel staging/production configuration"]:::task;
click i136 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/136" "panel staging/production configuration";
class i136 any;
class i136 points_2;
i138["#138: VMs use central file storage"]:::task;
click i138 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/138" "VMs use central file storage";
class i138 any;
class i138 points_3;
i142["#142: Users can configure their desired sub-domains in the online panel, so that the deployed services are assigned the desired sub-domains"]:::user_story;
click i142 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/142" "Users can configure their desired sub-domains in the online panel, so that the deployed services are assigned the desired sub-domains";
class i142 any;
class i142 points_8;
i143["#143: View difference between configured and deployed state"]:::user_story;
click i143 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/143" "View difference between configured and deployed state";
class i143 any;
class i143 points_21;
i155["#155: Address CI friction between security and caching"]:::task;
click i155 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/155" "Address CI friction between security and caching";
class i155 any;
class i155 points_2;
i158["#158: users can update their deployment configurations"]:::user_story;
click i158 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/158" "users can update their deployment configurations";
class i158 any;
class i158 points_5;
i159["#159: Hosting providers can update their operators' deployments"]:::user_story;
click i159 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/159" "Hosting providers can update their operators' deployments";
class i159 any;
class i159 points_34;
i161["#161: connecting an existing identity management service"]:::user_story;
click i161 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/161" "connecting an existing identity management service";
class i161 any;
class i161 points_unestimated;
i178["#178: admin accounts provisioned for deployed services"]:::user_story;
click i178 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/178" "admin accounts provisioned for deployed services";
class i178 any;
class i178 points_1;
i180["#180: update or remove VMs"]:::user_story;
click i180 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/180" "update or remove VMs";
class i180 any;
class i180 points_5;
i181["#181: update virtualization parameters"]:::user_story;
click i181 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/181" "update virtualization parameters";
class i181 any;
class i181 points_8;
i184["#184: show indicator of actual deployment progress"]:::user_story;
click i184 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/184" "show indicator of actual deployment progress";
class i184 any;
class i184 points_21;
i185["#185: use immutable buckets from VMs"]:::task;
click i185 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/185" "use immutable buckets from VMs";
class i185 any;
class i185 points_2;
i186["#186: allow disabling service while retaining data"]:::user_story;
click i186 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/186" "allow disabling service while retaining data";
class i186 any;
class i186 points_8;
i187["#187: provision immutable buckets"]:::user_story;
click i187 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/187" "provision immutable buckets";
class i187 any;
class i187 points_1;
i188["#188: garbage collection of unallocated resources"]:::user_story;
click i188 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/188" "garbage collection of unallocated resources";
class i188 any;
class i188 points_8;
i189["#189: Wire up passing credentials from FediPanel to the Mastodon configuration"]:::user_story;
click i189 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/189" "Wire up passing credentials from FediPanel to the Mastodon configuration";
class i189 any;
class i189 points_3;
i190["#190: Wire up passing credentials from FediPanel to the Pixelfed configuration"]:::user_story;
click i190 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/190" "Wire up passing credentials from FediPanel to the Pixelfed configuration";
class i190 any;
class i190 points_3;
i191["#191: Wire up passing credentials from FediPanel to the Peertube configuration"]:::task;
click i191 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/191" "Wire up passing credentials from FediPanel to the Peertube configuration";
class i191 any;
class i191 points_3;
i195["#195: NixOS modules' options exposed"]:::user_story;
click i195 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/195" "NixOS modules' options exposed";
class i195 any;
class i195 points_3;
i199["#199: derive users and their keys from the `keys` directory"]:::task;
click i199 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/199" "derive users and their keys from the `keys` directory";
class i199 any;
class i199 points_05;
i200["#200: reproduce DNS VM"]:::task;
click i200 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/200" "reproduce DNS VM";
class i200 any;
class i200 points_5;
i210["#210: Document the semantics of our various domains"]:::task;
click i210 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/210" "Document the semantics of our various domains";
class i210 any;
class i210 points_0;
i212["#212: single sign-on (SSO) for services"]:::user_story;
click i212 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/212" "single sign-on (SSO) for services";
class i212 any;
class i212 points_13;
i213["#213: visualise schema changes"]:::user_story;
click i213 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/213" "visualise schema changes";
class i213 any;
class i213 points_21;
i214["#214: aid needed actions on schema update"]:::user_story;
click i214 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/214" "aid needed actions on schema update";
class i214 any;
class i214 points_55;
i223["#223: resource monitoring for operators"]:::user_story;
click i223 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/223" "resource monitoring for operators";
class i223 any;
class i223 points_13;
i224["#224: automated dev-ops workflows"]:::key_result;
click i224 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/224" "automated dev-ops workflows";
class i224 any;
class i224 points_unestimated;
i225["#225: kick-started initial feedback cycle"]:::key_result;
click i225 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/225" "kick-started initial feedback cycle";
class i225 any;
class i225 points_unestimated;
i228["#228: [D2.3] brought into production"]:::key_result;
click i228 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/228" "[D2.3] brought into production";
class i228 any;
class i228 points_unestimated;
i241["#241: user can have multiple deployments"]:::user_story;
click i241 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/241" "user can have multiple deployments";
class i241 any;
class i241 points_3;
i242["#242: enqueuing deployment syncs"]:::user_story;
click i242 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/242" "enqueuing deployment syncs";
class i242 any;
class i242 points_13;
i243["#243: knowledge base"]:::task;
click i243 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/243" "knowledge base";
class i243 any;
class i243 points_05;
i248["#248: Nix package overlays upstreamed"]:::task;
click i248 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/248" "Nix package overlays upstreamed";
class i248 any;
class i248 points_1;
i272["#272: support password-protected personal SSH keys for deploying services in development"]:::task;
click i272 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/272" "support password-protected personal SSH keys for deploying services in development";
class i272 any;
class i272 points_3;
i288["#288: external developers empowered to contribute"]:::key_result;
click i288 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/288" "external developers empowered to contribute";
class i288 any;
class i288 points_unestimated;
i289["#289: key features improving user experience supported"]:::key_result;
click i289 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/289" "key features improving user experience supported";
class i289 any;
class i289 points_unestimated;
i291["#291: code passes security check"]:::key_result;
click i291 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/291" "code passes security check";
class i291 any;
class i291 points_unestimated;
i295["#295: limit security impact of SSH access to service VMs"]:::task;
click i295 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/295" "limit security impact of SSH access to service VMs";
class i295 any;
class i295 points_8;
i302["#302: code reviewers can suggest changes"]:::task;
click i302 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/302" "code reviewers can suggest changes";
class i302 any;
class i302 points_21;
i304["#304: reference front-end is decoupled from version of configuration module"]:::task;
click i304 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/304" "reference front-end is decoupled from version of configuration module";
class i304 any;
class i304 points_21;
i309["#309: port infra to terraform"]:::task;
click i309 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/309" "port infra to terraform";
class i309 any;
class i309 points_5;
i313["#313: ProxmoX back-end supports multiple users"]:::task;
click i313 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/313" "ProxmoX back-end supports multiple users";
class i313 any;
class i313 points_3;
i314["#314: ephemeral state is automatically provisioned"]:::task;
click i314 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/314" "ephemeral state is automatically provisioned";
class i314 any;
class i314 points_34;
i322["#322: pooling instances to shared VMs"]:::user_story;
click i322 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/322" "pooling instances to shared VMs";
class i322 any;
class i322 points_8;
i331["#331: pydantic enum warning: Expected `enum` but got `str`"]:::bug;
click i331 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/331" "pydantic enum warning: Expected `enum` but got `str`";
class i331 any;
class i331 points_05;
i332["#332: nix-less bootstrap"]:::user_story;
click i332 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/332" "nix-less bootstrap";
class i332 any;
class i332 points_13;
i333["#333: module upstreamed to nixpkgs"]:::task;
click i333 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/333" "module upstreamed to nixpkgs";
class i333 any;
class i333 points_13;
i334["#334: specification published"]:::user_story;
click i334 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/334" "specification published";
class i334 any;
class i334 points_13;
i335["#335: sign-up for external developers"]:::task;
click i335 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/335" "sign-up for external developers";
class i335 any;
class i335 points_2;
i336["#336: reproducible project infrastructure"]:::task;
click i336 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/336" "reproducible project infrastructure";
class i336 any;
class i336 points_1;
i337["#337: operator can delegate user management"]:::user_story;
click i337 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/337" "operator can delegate user management";
class i337 any;
class i337 points_13;
i339["#339: NixOS configuration as a first-class abstraction"]:::task;
click i339 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/339" "NixOS configuration as a first-class abstraction";
class i339 any;
class i339 points_13;
i341["#341: on migration, allow reconfiguring monolithic vs distributed"]:::user_story;
click i341 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/341" "on migration, allow reconfiguring monolithic vs distributed";
class i341 any;
class i341 points_13;
i342["#342: panel bundled into Fediversity configuration"]:::task;
click i342 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/342" "panel bundled into Fediversity configuration";
class i342 any;
class i342 points_5;
i347["#347: implement a way to run online services emphasising user autonomy and data portability"]:::objective;
click i347 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/347" "implement a way to run online services emphasising user autonomy and data portability";
class i347 any;
class i347 points_unestimated;
i348["#348: disseminate our results by engaging the open-source community to further expand on work in this direction"]:::objective;
click i348 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/348" "disseminate our results by engaging the open-source community to further expand on work in this direction";
class i348 any;
class i348 points_unestimated;
i349["#349: exploit our work by enabling reproducible deployments of an initial set of portable applications"]:::objective;
click i349 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/349" "exploit our work by enabling reproducible deployments of an initial set of portable applications";
class i349 any;
class i349 points_unestimated;
i366["#366: use dedicated Nix builder"]:::task;
click i366 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/366" "use dedicated Nix builder";
class i366 any;
class i366 points_8;
i368["#368: REST API available"]:::user_story;
click i368 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/368" "REST API available";
class i368 any;
class i368 points_34;
i369["#369: application offering delegated"]:::key_result;
click i369 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/369" "application offering delegated";
class i369 any;
class i369 points_unestimated;
i370["#370: fediversity apps reused in infra"]:::task;
click i370 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/370" "fediversity apps reused in infra";
class i370 any;
class i370 points_3;
i372["#372: refactor environment variables to typed django settings"]:::task;
click i372 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/372" "refactor environment variables to typed django settings";
class i372 any;
class i372 points_1;
i377["#377: Integration tests for MVP"]:::key_result;
click i377 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/377" "Integration tests for MVP";
class i377 any;
class i377 points_unestimated;
i378["#378: Present results on at least 3 conferences"]:::key_result;
click i378 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/378" "Present results on at least 3 conferences";
class i378 any;
class i378 points_unestimated;
i379["#379: At least 5 applications compatible with Fediversity thanks to external contributions by 2027-03"]:::key_result;
click i379 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/379" "At least 5 applications compatible with Fediversity thanks to external contributions by 2027-03";
class i379 any;
class i379 points_unestimated;
i380["#380: initial Fediversity applications"]:::key_result;
click i380 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/380" "initial Fediversity applications";
class i380 any;
class i380 points_unestimated;
i382["#382: panel nix package allows declaring users"]:::task;
click i382 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/382" "panel nix package allows declaring users";
class i382 any;
class i382 points_2;
i383["#383: panel allows specifying SSH key"]:::task;
click i383 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/383" "panel allows specifying SSH key";
class i383 any;
class i383 points_1;
i384["#384: CA certificates in NixOS tests generated declaratively"]:::task;
click i384 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/384" "CA certificates in NixOS tests generated declaratively";
class i384 any;
class i384 points_2;
i386["#386: deprecate wiki"]:::task;
click i386 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/386" "deprecate wiki";
class i386 any;
class i386 points_0;
i433["#433: deployment provisions host infra"]:::user_story;
click i433 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/433" "deployment provisions host infra";
class i433 any;
class i433 points_21;
i459["#459: can't download repository archives from forgejo"]:::bug;
click i459 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/459" "can't download repository archives from forgejo";
class i459 any;
class i459 points_2;
i463["#463: secrets may be scoped to prevent use in PRs"]:::task;
click i463 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/463" "secrets may be scoped to prevent use in PRs";
class i463 any;
class i463 points_5;
i467["#467: Integration-tested progress reports"]:::task;
click i467 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/467" "Integration-tested progress reports";
class i467 any;
class i467 points_5;
i483["#483: [D2.2, month 24] Software release beta version"]:::key_result;
click i483 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/483" "[D2.2, month 24] Software release beta version";
class i483 any;
class i483 points_unestimated;
i493["#493: portable ephemeral state"]:::task;
click i493 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/493" "portable ephemeral state";
class i493 any;
class i493 points_21;
i494["#494: data model used"]:::task;
click i494 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/494" "data model used";
class i494 any;
class i494 points_34;
i496["#496: standardize casing conventions"]:::task;
click i496 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/496" "standardize casing conventions";
class i496 any;
class i496 points_1;
i514["#514: data model: migrations"]:::task;
click i514 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/514" "data model: migrations";
class i514 any;
class i514 points_2;
i515["#515: orchestrator state persisted"]:::task;
click i515 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/515" "orchestrator state persisted";
class i515 any;
class i515 points_8;
i517["#517: all tests exposed through flake"]:::task;
click i517 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/517" "all tests exposed through flake";
class i517 any;
class i517 points_3;
i518["#518: facilitate use without flakes"]:::task;
click i518 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/518" "facilitate use without flakes";
class i518 any;
class i518 points_2;
i527["#527: rename codebase"]:::task;
click i527 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/527" "rename codebase";
class i527 any;
class i527 points_05;
i528["#528: retire `flake-parts`"]:::task;
click i528 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/528" "retire `flake-parts`";
class i528 any;
class i528 points_1;
i529["#529: avoid referencing parent directories"]:::task;
click i529 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/529" "avoid referencing parent directories";
class i529 any;
class i529 points_13;
i560["#560: in-source patches"]:::task;
click i560 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/560" "in-source patches";
class i560 any;
class i560 points_unestimated;
i574["#574: improve developer experience (DX)"]:::task;
click i574 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/574" "improve developer experience (DX)";
class i574 any;
class i574 points_8;
i598["#598: ensure application resilience"]:::user_story;
click i598 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/598" "ensure application resilience";
class i598 any;
class i598 points_8;
i599["#599: diagnosing services"]:::user_story;
click i599 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/599" "diagnosing services";
class i599 any;
class i599 points_21;
i600["#600: NixOS service version update migration scripts standardized"]:::task;
click i600 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/600" "NixOS service version update migration scripts standardized";
class i600 any;
class i600 points_8;
i601["#601: applications imported from contract-based implementations"]:::task;
click i601 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/601" "applications imported from contract-based implementations";
class i601 any;
class i601 points_13;
i602["#602: contracts available in nixpkgs"]:::task;
click i602 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/602" "contracts available in nixpkgs";
class i602 any;
class i602 points_21;
i603["#603: contracts useable across nodes"]:::task;
click i603 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/603" "contracts useable across nodes";
class i603 any;
class i603 points_34;
i604["#604: contracts handle generation of ephemeral state"]:::task;
click i604 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/604" "contracts handle generation of ephemeral state";
class i604 any;
class i604 points_21;
i605["#605: contracts provide single sign-on (SSO) integration"]:::task;
click i605 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/605" "contracts provide single sign-on (SSO) integration";
class i605 any;
class i605 points_13;
i606["#606: contracts provide LDAP integration"]:::task;
click i606 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/606" "contracts provide LDAP integration";
class i606 any;
class i606 points_21;
i607["#607: NixOS service service portability scripts standardized"]:::task;
click i607 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/607" "NixOS service service portability scripts standardized";
class i607 any;
class i607 points_21;
i608["#608: web host application implements API"]:::task;
click i608 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/608" "web host application implements API";
class i608 any;
class i608 points_34;
i609["#609: Install selected applications"]:::key_result;
click i609 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/609" "Install selected applications";
class i609 any;
class i609 points_unestimated;
i610["#610: Configure applications"]:::key_result;
click i610 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/610" "Configure applications";
class i610 any;
class i610 points_unestimated;
i611["#611: Update applications"]:::key_result;
click i611 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/611" "Update applications";
class i611 any;
class i611 points_unestimated;
i612["#612: Switch to a different host"]:::key_result;
click i612 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/612" "Switch to a different host";
class i612 any;
class i612 points_unestimated;
i613["#613: User management"]:::key_result;
click i613 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/613" "User management";
class i613 any;
class i613 points_unestimated;
i614["#614: catch up on nixpkgs updates"]:::task;
click i614 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/614" "catch up on nixpkgs updates";
class i614 any;
class i614 points_21;
i615["#615: applications integrated with user management"]:::task;
click i615 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/615" "applications integrated with user management";
class i615 any;
class i615 points_21;
i616["#616: operator may manage users"]:::user_story;
click i616 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/616" "operator may manage users";
class i616 any;
class i616 points_5;
i617["#617: operator can restart nodes"]:::user_story;
click i617 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/617" "operator can restart nodes";
class i617 any;
class i617 points_5;
i618["#618: rights management streamlined across applications"]:::task;
click i618 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/618" "rights management streamlined across applications";
class i618 any;
class i618 points_34;
i619["#619: kubernetes set up"]:::task;
click i619 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/619" "kubernetes set up";
class i619 any;
class i619 points_21;
i620["#620: generate kubernetes container from portable service"]:::task;
click i620 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/620" "generate kubernetes container from portable service";
class i620 any;
class i620 points_13;
i621["#621: applications' NixOS modules use portable services"]:::task;
click i621 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/621" "applications' NixOS modules use portable services";
class i621 any;
class i621 points_21;
i622["#622: NixOS modules wrap portable services"]:::task;
click i622 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/622" "NixOS modules wrap portable services";
class i622 any;
class i622 points_5;
i623["#623: applications use portable services"]:::task;
click i623 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/623" "applications use portable services";
class i623 any;
class i623 points_8;
i624["#624: application definitions use service-level containers"]:::task;
click i624 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/624" "application definitions use service-level containers";
class i624 any;
class i624 points_34;
i625["#625: contracts coordinated across pods"]:::task;
click i625 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/625" "contracts coordinated across pods";
class i625 any;
class i625 points_34;
i626["#626: nix to json schema coverage"]:::task;
click i626 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/626" "nix to json schema coverage";
class i626 any;
class i626 points_21;
i627["#627: expose applications' configuration options"]:::task;
click i627 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/627" "expose applications' configuration options";
class i627 any;
class i627 points_55;
i628["#628: render option forms"]:::task;
click i628 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/628" "render option forms";
class i628 any;
class i628 points_55;
i629["#629: schema updates automated"]:::task;
click i629 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/629" "schema updates automated";
class i629 any;
class i629 points_55;
i630["#630: nix option modules from TF"]:::task;
click i630 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/630" "nix option modules from TF";
class i630 any;
class i630 points_13;
i631["#631: use schemas to generate TF types"]:::task;
click i631 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/631" "use schemas to generate TF types";
class i631 any;
class i631 points_13;
i633["#633: nodes can identify one another"]:::task;
click i633 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/633" "nodes can identify one another";
class i633 any;
class i633 points_21;
i634["#634: resources are versioned"]:::task;
click i634 href "https://git.fediversity.eu/Fediversity/Fediversity/issues/634" "resources are versioned";
class i634 any;
class i634 points_34;
i116 --> i69
i309 --> i69
i123 --> i77
i125 --> i77
i493 --> i77
i515 --> i77
i77 --> i78
i110 --> i78
i123 --> i78
i75 --> i99
i76 --> i99
i110 --> i99
i116 --> i99
i313 --> i99
i515 --> i99
i77 --> i100
i78 --> i100
i110 --> i100
i123 --> i100
i493 --> i100
i514 --> i100
i515 --> i100
i309 --> i116
i110 --> i118
i117 --> i118
i124 --> i123
i125 --> i123
i126 --> i123
i185 --> i125
i138 --> i126
i111 --> i138
i87 --> i155
i92 --> i155
i493 --> i155
i180 --> i158
i181 --> i158
i313 --> i158
i212 --> i161
i228 --> i161
i99 --> i178
i189 --> i178
i190 --> i178
i191 --> i178
i615 --> i178
i187 --> i185
i180 --> i186
i228 --> i186
i180 --> i188
i331 --> i195
i626 --> i195
i116 --> i200
i309 --> i200
i228 --> i212
i159 --> i213
i143 --> i214
i159 --> i214
i213 --> i214
i228 --> i214
i13 --> i224
i29 --> i224
i33 --> i224
i65 --> i224
i69 --> i224
i199 --> i224
i248 --> i224
i272 --> i224
i302 --> i224
i314 --> i224
i366 --> i224
i370 --> i224
i372 --> i224
i382 --> i224
i383 --> i224
i384 --> i224
i467 --> i224
i517 --> i224
i529 --> i224
i560 --> i224
i115 --> i225
i116 --> i225
i117 --> i225
i136 --> i225
i138 --> i225
i142 --> i225
i158 --> i225
i178 --> i225
i185 --> i225
i200 --> i225
i313 --> i225
i314 --> i225
i370 --> i225
i433 --> i225
i118 --> i228
i159 --> i228
i188 --> i228
i225 --> i228
i291 --> i228
i304 --> i228
i334 --> i228
i368 --> i228
i608 --> i228
i617 --> i228
i228 --> i242
i614 --> i248
i68 --> i288
i86 --> i288
i89 --> i288
i92 --> i288
i98 --> i288
i210 --> i288
i224 --> i288
i243 --> i288
i302 --> i288
i333 --> i288
i335 --> i288
i336 --> i288
i339 --> i288
i342 --> i288
i370 --> i288
i386 --> i288
i459 --> i288
i496 --> i288
i527 --> i288
i528 --> i288
i574 --> i288
i100 --> i289
i119 --> i289
i143 --> i289
i161 --> i289
i184 --> i289
i186 --> i289
i195 --> i289
i212 --> i289
i213 --> i289
i214 --> i289
i223 --> i289
i228 --> i289
i241 --> i289
i242 --> i289
i322 --> i289
i337 --> i289
i341 --> i289
i383 --> i289
i598 --> i289
i599 --> i289
i609 --> i289
i610 --> i289
i611 --> i289
i612 --> i289
i613 --> i289
i628 --> i289
i629 --> i289
i24 --> i291
i87 --> i291
i155 --> i291
i272 --> i291
i295 --> i291
i463 --> i291
i614 --> i291
i633 --> i291
i309 --> i302
i123 --> i309
i494 --> i309
i116 --> i313
i228 --> i322
i463 --> i335
i200 --> i336
i309 --> i336
i370 --> i336
i433 --> i336
i212 --> i337
i616 --> i337
i100 --> i341
i228 --> i341
i100 --> i347
i377 --> i347
i607 --> i347
i347 --> i348
i378 --> i348
i379 --> i348
i99 --> i349
i119 --> i349
i332 --> i349
i380 --> i349
i242 --> i368
i334 --> i368
i600 --> i369
i601 --> i369
i602 --> i369
i603 --> i369
i604 --> i369
i605 --> i369
i606 --> i369
i607 --> i369
i99 --> i370
i100 --> i370
i100 --> i377
i100 --> i378
i100 --> i379
i99 --> i380
i100 --> i380
i69 --> i433
i309 --> i433
i494 --> i433
i69 --> i483
i116 --> i483
i313 --> i483
i314 --> i483
i314 --> i493
i528 --> i518
i494 --> i528
i619 --> i598
i620 --> i598
i621 --> i598
i622 --> i598
i623 --> i598
i624 --> i598
i625 --> i598
i159 --> i600
i494 --> i601
i601 --> i602
i601 --> i603
i601 --> i604
i601 --> i605
i601 --> i606
i100 --> i607
i601 --> i607
i602 --> i607
i368 --> i608
i75 --> i609
i99 --> i609
i608 --> i609
i158 --> i610
i195 --> i610
i213 --> i610
i214 --> i610
i627 --> i610
i628 --> i610
i629 --> i610
i65 --> i611
i123 --> i611
i159 --> i611
i214 --> i611
i100 --> i612
i304 --> i612
i634 --> i612
i178 --> i613
i212 --> i613
i337 --> i613
i615 --> i613
i616 --> i613
i615 --> i616
i116 --> i617
i615 --> i618
i623 --> i620
i621 --> i623
i620 --> i624
i623 --> i624
i603 --> i625
i624 --> i625
i331 --> i626
i626 --> i627
i159 --> i628
i627 --> i629
i630 --> i631
i100 --> i634

View file

@ -0,0 +1,27 @@
# usage: cat dependencies.sh | ssh root@git.fediversity.eu /run/current-system/sw/bin/bash | cat > dependencies.mmd; nix-shell -p mermaid-cli --command 'mmdc -i dependencies.mmd -o dependencies.svg -b aaa'
pw=$(cat /run/credentials/forgejo.service/FORGEJO__DATABASE__PASSWD__FILE)
echo "flowchart LR
classDef any stroke-width:3px;
%% ticket type
classDef objective stroke:#0052cc;
classDef key_result stroke:#eb6420;
classDef user_story stroke:#70c24a;
classDef task stroke:#5319e7;
classDef bug stroke:#e11d21;
%% scrum fibonacci complexity estimation
classDef points_0 font-size:8pt;
classDef points_05 font-size:10pt;
classDef points_1 font-size:12pt;
classDef points_2 font-size:14pt;
classDef points_3 font-size:17pt;
classDef points_5 font-size:20pt;
classDef points_8 font-size:24pt;
classDef points_13 font-size:28pt;
classDef points_21 font-size:34pt;
classDef points_34 font-size:40pt;
classDef points_55 font-size:48pt;
classDef points_inf font-size:60pt;
classDef points_unestimated font-size:25pt;
"
mysql -u forgejo -D forgejo --password=$pw -BNe 'SELECT CONCAT(" i", issue.index, "[\"#", issue.index, ": ", REPLACE(issue.name, "\"", ""), "\"]:::", CASE WHEN type_label.label_id = 52 THEN "bug" WHEN type_label.label_id = 57 THEN "objective" WHEN type_label.label_id = 58 THEN "key_result" WHEN type_label.label_id = 24 THEN "user_story" WHEN type_label.label_id = 60 THEN "task" ELSE "untyped" END, ";\n click i", issue.index, " href \"https://git.fediversity.eu/Fediversity/Fediversity/issues/", `index`, "\" \"", REPLACE(issue.name, "\"", ""), "\";\n class i", `index`, " any;\n class i", `index`, " points_", CASE WHEN points_label.label_id = 66 THEN "0" WHEN points_label.label_id = 67 THEN "05" WHEN points_label.label_id = 68 THEN "1" WHEN points_label.label_id = 69 THEN "2" WHEN points_label.label_id = 70 THEN "3" WHEN points_label.label_id = 71 THEN "5" WHEN points_label.label_id = 72 THEN "8" WHEN points_label.label_id = 73 THEN "13" WHEN points_label.label_id = 74 THEN "21" WHEN points_label.label_id = 75 THEN "34" WHEN points_label.label_id = 76 THEN "55" WHEN points_label.label_id = 77 THEN "inf" ELSE "unestimated" END, ";") FROM issue LEFT JOIN (SELECT * FROM issue_label WHERE label_id in (52, 57, 58, 24, 60)) AS type_label ON issue.id = type_label.issue_id LEFT JOIN (SELECT * FROM issue_label WHERE label_id in (66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77)) AS points_label ON issue.id = points_label.issue_id WHERE NOT issue.is_pull AND NOT issue.is_closed AND issue.repo_id = 18 ORDER BY issue.index;' | sed 's/\\n/\n/g'
mysql -u forgejo -D forgejo --password=$pw -BNe 'SELECT CONCAT(" i", i2.`index`, " --> i", i1.`index`) FROM issue_dependency d, (SELECT * FROM issue WHERE NOT is_pull AND NOT is_closed AND repo_id = 18) i1, (SELECT * FROM issue WHERE NOT is_pull AND NOT is_closed AND repo_id = 18) i2 WHERE d.issue_id = i1.id AND d.dependency_id = i2.id ORDER BY i1.id, i2.id;'

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 439 KiB