initial focus on single application for development #327

Closed
opened 2025-05-06 14:45:48 +02:00 by kiara · 6 comments
Owner

As a developer,
I want for our code-base to focus on a single application (until things mature - see #350),
so that development may be sped up until best practices materialize.

notes

c.f. #369, which attempts to challenge concerns here by delegating implementation details to SelfHostBlocks.

potential application-specific concerns here included:

  • PoC:
    • compartmentalising state for backups/portability/redundancy (#123)
    • migration actions such as rewrites of connections/URLs (#78)
    • integration with single sign-on (#212) and LDAP (#337) for user management (or as a stop-gap, provisioning of initial user, see #178)
  • MVP:
    • handling application upgrades (#159)
    • creating schemas of (identified relevant) settings (c.f. #195)
    • documentation (#86)
    • hardening (#291)
  • post-MVP:
  • if missing first-class Nix support:
    • packaging for Nix
    • creating NixOS service module
    • integrating with identified contracts (see #369)
    • maintaining the above on version updates (#127)
    • coordinating with upstream developers on immutable-friendly development, particularly in case of applications written in PHP
**As** a developer, **I want** for our code-base to focus on a single application (until things mature - see #350), **so that** development may be sped up until best practices materialize. ## notes c.f. #369, which attempts to challenge concerns here by delegating implementation details to SelfHostBlocks. potential application-specific concerns here included: - PoC: - compartmentalising state for backups/portability/redundancy (#123) - migration actions such as rewrites of connections/URLs (#78) - integration with single sign-on (#212) and LDAP (#337) for user management (or as a stop-gap, provisioning of initial user, see #178) - MVP: - handling application upgrades (#159) - creating schemas of (identified relevant) settings (c.f. #195) - documentation (#86) - hardening (#291) - post-MVP: - handling backward-incompatible setting interface changes (https://git.fediversity.eu/Fediversity/Fediversity/issues/159#issuecomment-4548) - coordinating with end-users to improve the user experience (c.f. #289) - if missing first-class Nix support: - [packaging](https://github.com/NixOS/nixpkgs/tree/master/pkgs) for Nix - creating NixOS [service module](https://github.com/NixOS/nixpkgs/tree/master/nixos/modules) - integrating with identified contracts (see #369) - maintaining the above on version updates (#127) - coordinating with upstream developers on immutable-friendly development, particularly in case of applications written in PHP
kiara changed title from development process slowed down by use of multiple applications to first focus on single application for development 2025-05-06 14:46:14 +02:00
Author
Owner

in case we are to try this, i'm a bit on the fence still what to prioritize (tho i totally agree on @niols's idea to focus on just cowsay in tests first):

  • mastodon (test broken - see #34) seems sorta lightweight (at least compared to our current pixelfed test), has mature permissions (custom roles), fairly standard setup (postgres/redis/elasticsearch), oidc/ldap built-in
  • pixelfed (test broken - see #33) koen has pushed over having their creator on board
  • peertube we have a working test for (currently - see #318)
in case we are to try this, i'm a bit on the fence still what to prioritize (tho i totally agree on @niols's idea to focus on just `cowsay` in tests first): - mastodon (test broken - see #34) seems sorta lightweight (at least compared to our current pixelfed test), has mature permissions (custom roles), fairly standard setup (postgres/redis/elasticsearch), oidc/ldap built-in - pixelfed (test broken - see #33) koen has pushed over having their creator on board - peertube we have a working test for (currently - see #318)
Author
Owner

this would also clean up the issue tracker a bit for now, see e.g. dependencies of #178 (i.e. #189 #190 #191 #192 #193 #194)

this would also clean up the issue tracker a bit for now, see e.g. dependencies of #178 (i.e. #189 #190 #191 #192 #193 #194)
kiara added this to the Fediversity project 2025-05-06 15:50:38 +02:00
Owner

Also, Procolix has a working cluster of machines serving a HA Pixelfed, so we could just nixify that and think of how to deploy it automatically. (If Procolix were willing to share the infrastructure of the cluster in one form or another.) Mastodon and Peertube are also slightly more complicated to deal with because they have notions of front-end, workers, and things like that.

That being said, Procolix has the knowledge so it seems perfectly feasible to make a cluster for Mastodon or Peertube, and their documentation and communities (especially Mastodon) are much bigger and better, which would help a lot.

Also, Procolix has a working cluster of machines serving a HA Pixelfed, so we could just nixify that and think of how to deploy it automatically. (If Procolix were willing to share the infrastructure of the cluster in one form or another.) Mastodon and Peertube are also slightly more complicated to deal with because they have notions of front-end, workers, and things like that. That being said, Procolix has the knowledge so it seems perfectly feasible to make a cluster for Mastodon or Peertube, and their documentation and communities (especially Mastodon) are much bigger and better, which would help a lot.
Author
Owner

i wonder if perhaps Forgejo itself would make for a good initial application given:

  1. it's in SelfHostBlocks, potentially reducing application-specific code (see #369)
  2. we needed it for our own infra anyway (#370)
  3. as per the above, it allows our dev team to own #225 as our own initial client
  4. relevant features are merged upstream (c.f. vaultwarden where SSO is still a PR)
  5. it doesn't hinge on a language as unsafe as PHP like Nextcloud does
i wonder if perhaps [Forgejo](https://forgejo.org/) itself would make for a good initial application given: 1. it's in SelfHostBlocks, potentially reducing application-specific code (see #369) 1. we needed it for our own infra anyway (#370) 1. as per the above, it allows our dev team to own #225 as our own initial client 1. relevant features are merged upstream (c.f. vaultwarden where SSO is still a PR) 1. it doesn't hinge on a language as unsafe as PHP like Nextcloud does
kiara changed title from first focus on single application for development to initial focus on single application for development 2025-06-01 13:13:00 +02:00
kiara referenced this issue from a commit 2025-06-01 19:54:36 +02:00
kiara removed this from the Fediversity project 2025-06-10 19:06:36 +02:00
Author
Owner

maybe this is a bit moot to some extent if we approach things from the other direction and focus on developing the functionality from tests

maybe this is a bit moot to some extent if we approach things from the other direction and focus on developing the functionality from tests

Yes, also this is not a refined user-story. I'd prefer closing it.

Yes, also this is not a refined user-story. I'd prefer closing it.
kiara closed this issue 2025-07-14 14:11:01 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks
#224 automated dev-ops workflows
fediversity/fediversity
Reference: fediversity/fediversity#327
No description provided.