forgefed.md 2.9 KB

forgefed implementation

Key Requirements

  1. Implement the forgefed specification using ActivityPub for a common web server deployment, eg a LAMP server, cgi, fastcgi, or nodejs.
  2. If using a persistent process, such as the node daemon, implement a cronjob that starts/stops the process on a cycle.
  3. Must use one of the following frameworks: yesod, django, laravel, or react/react-native w/ redux on top of nodejs.
  4. Users on one instance can interact with users of another instance for issue tracking, pull/merge requests, knowledge of public forks, and comments related to each.
  5. Support at least git, though the forge doesn't necessarily need to pass the repository, just reference to the repository, eg the location and when necessary the commit hashes.
  6. Import and export of a project from one instance to another.
  7. Must have either the MIT, Apache 2, AGPLv3 or GPLv3, or compatible license.

Why

  1. Sometimes servers crash, have network outages, or get bought out.
  2. Not all code repos can exist in a public facing
  3. Need help managing projects from multiple repositories or issue trackers.

Stories

  1. Users create a high level task in the WBS and link to other issue trackers that contain lower level details.
  2. Users can examine or determine critical paths.

Nice-to-haves

  • All primary features work without client side JavaScript.
  • Include a CLI interface at the server or for clients.
  • Implement features from Project Management Tool.
  • Support other version control systems such as hg, darcs, fossil, svn.
  • Pass an accessibility audit, eg UI has markup and style that allows screenreaders.
  • Add one-way federation for tracking existing projects already in github, bitbucket, gogs, gitlab.
  • Create a module for existing gogs, gitlab, redmine, or trac to join the federation.
  • Add comment support from other ActivityPub apps.
  • Add comment support from fediverse apps in general, for example OStatus.
  • Use OpenID for login (already off the shelf if using yesod).
  • Since federated, implement a way to use with org-mode and magit in emacs.

Suggestions/Ideas

  • Review [WikiPedia ActivityPub][ActivityPub articles] and other implementations such as Mastodon.
  • Perhaps instead of using a persistent process, add a manual or lazy feature to let the user get and then review changes to import.

FAQ

TBD


References