mirror of
https://github.com/forgefed/forgefed
synced 2024-11-25 13:20:18 +00:00
I also renamed COPYING to LICENSE since that seems to be a more typical name for it, and removed a lot of unneeded entries from the .gitignore. For the README and website, index.md, I mostly replaced the website's contents with text from the README and deleted a lot of old or duplicated information. For instance, I removed the project links at the bottom of the website since there are links to them at the top. Overall, I tried to make the website itself to be non-technical and a good introduction to what ForgeFed is, and then keep technical information in the README of the repo. This also (hopefully) fixes #132, the missing emojis issue. You can see a live demo of this PR at https://forgefed.exozy.me to verify for yourself if the emojis are working now. Co-authored-by: Anthony Wang <a@exozy.me> Reviewed-on: https://codeberg.org/ForgeFed/ForgeFed/pulls/187 Co-authored-by: Anthony Wang <xy@noreply.codeberg.org> Co-committed-by: Anthony Wang <xy@noreply.codeberg.org>
This commit is contained in:
parent
9d37710764
commit
467dfe8467
5 changed files with 90 additions and 185 deletions
40
.gitignore
vendored
40
.gitignore
vendored
|
@ -1,36 +1,4 @@
|
|||
*
|
||||
!.gitignore
|
||||
!.woodpecker/
|
||||
!.woodpecker/*
|
||||
!COPYING
|
||||
!README.md
|
||||
|
||||
!doc
|
||||
doc/*
|
||||
!doc/README.md
|
||||
!doc/EXAMPLE_WORKFLOWS.md
|
||||
|
||||
!html
|
||||
!html/*
|
||||
|
||||
!logo*
|
||||
|
||||
!python/
|
||||
python/*
|
||||
!python/forgefed_constants.py
|
||||
!python/forgefed_model.py
|
||||
!python/forgefed_controller.py
|
||||
!python/forgefed_wsgi.py
|
||||
!python/run-dev-server
|
||||
|
||||
!spec/
|
||||
!spec/*
|
||||
|
||||
!vocabulary/
|
||||
!vocabulary/*
|
||||
!vocabulary/COMMENT.md
|
||||
!vocabulary/ISSUE.md
|
||||
!vocabulary/PULL-REQUEST.md
|
||||
!vocabulary/README.md
|
||||
!vocabulary/REPOSITORY.md
|
||||
!vocabulary/VOCABULARY.md
|
||||
# Website build files
|
||||
html/*.html
|
||||
html/ns
|
||||
!html/template.html
|
||||
|
|
130
README.md
130
README.md
|
@ -1,92 +1,34 @@
|
|||
# ForgeFed - Federation Protocol for Forge Services
|
||||
# ForgeFed
|
||||
|
||||
<a href="https://codeberg.org/ForgeFed/ForgeFed">
|
||||
<img alt="Get it on Codeberg" src="https://codeberg.org/Codeberg/GetItOnCodeberg/media/branch/main/get-it-on-neon-blue.png" height="60">
|
||||
</a>
|
||||
|
||||
---
|
||||
ForgeFed is an ActivityPub-based federation protocol for software forges. You
|
||||
can read more about ForgeFed and the protocol specification on our
|
||||
[website][Website].
|
||||
|
||||
[ForgeFed][] is a **federation protocol for software forges** and other web
|
||||
services dealing with version control repositories, project tracking and other
|
||||
aspects of the software development lifecycle and ecosystem. This includes
|
||||
repository hosting websites, issue trackers, code review management
|
||||
applications and more.
|
||||
## Contributing
|
||||
|
||||
**Federation** means that these websites can interact, allowing the humans
|
||||
using them to interact too, despite being registered on different websites. For
|
||||
example, imagine you could host your Git repos anywhere you want, perhaps even
|
||||
your own personal website, but still be able to open issues and submit pull
|
||||
requests against other people's repos hosted elsewhere, without having to
|
||||
create accounts on those other websites!
|
||||
|
||||
Without federation, we end up having to choose between:
|
||||
|
||||
- Centralizing into huge profit-oriented websites, where we're powerless
|
||||
- Hosting our code on a small website where we're in control and freedom but
|
||||
isolated from the community
|
||||
|
||||
With federation, all the websites now communicate with each other to form
|
||||
**a network and community of collaboration** in which we're all both free and
|
||||
connected. It puts the power back into our hands to create tools and
|
||||
collaborate in ways that are aligned with human needs, powerful and safe ways
|
||||
that allow us to include everyone and that don't depend on some big company's
|
||||
policies or some website suddenly shutting down. Let's create the future
|
||||
together!
|
||||
|
||||
# How does it work?
|
||||
|
||||
ForgeFed is an [ActivityPub][] extension. ActivityPub is an actor-model based
|
||||
protocol for federation of web services and applications.
|
||||
|
||||
It's a bit like e-mail, except the data sent is JSON objects (i.e. structured
|
||||
computer-readable data), and not only humans have inboxes where they can be
|
||||
contacted, but also repositories and issue trackers have inboxes through which
|
||||
they can be remotely and safely interacted with.
|
||||
|
||||
On top of ActivityPub's vocabulary (common language for websites to use for
|
||||
communicating) and protocol, ForgeFed defines new vocabulary terms related to
|
||||
repositories, commits, patches, issues, etc. and the protocol for creating and
|
||||
interacting with such objects across servers.
|
||||
|
||||
# So how do I use it?
|
||||
|
||||
ForgeFed is a protocol, i.e. instructions for how websites can communicate with each other. For
|
||||
forge federation to really happen, we need to code it into forge software. This
|
||||
is still in progress, but there are demos and prototypes you can play with if
|
||||
you're curious :-) See below for ways to get updates on the latest work on this.
|
||||
|
||||
# What's the status? Where do I talk with you and ask questions?
|
||||
|
||||
The ForgeFed protocol specification is on the [website][ForgeFed]. The website
|
||||
is generated from the Markdown sources found in this repository. There are
|
||||
links there to Matrix and IRC chat, our [forum][], issue tracker, list of
|
||||
ForgeFed implementations and their status, and more. You can also follow our
|
||||
progress on the [fediverse][Mastodon].
|
||||
|
||||
Come talk with us :-)
|
||||
|
||||
# How can I contribute?
|
||||
|
||||
There's so much variety of tasks to do! Come talk with us on the chat/forum.
|
||||
|
||||
More eyes going over the spec are always welcome! And feel free to open issue
|
||||
if you notice missing details or unclear text or have improvement suggestions
|
||||
or requests!
|
||||
There's a huge variety of tasks to do! Come talk with us on the [forum][] or
|
||||
[chat][]. More eyes going over the spec are always welcome! And feel free to
|
||||
open an issue if you notice missing details or unclear text or have improvement
|
||||
suggestions or requests.
|
||||
|
||||
However, to maintain a manageable working environment, we do reserve the issue
|
||||
tracker for *practical, actionable work items*. If you want to talk first to
|
||||
achieve more clarity, we prefer you write to us on the [forum][] or chat, and
|
||||
achieve more clarity, we prefer you write to us on the [forum][] or [chat][], and
|
||||
opening an issue may come later.
|
||||
|
||||
If you wish to join the work on the ForgeFed specification, here are some
|
||||
technical but important details:
|
||||
|
||||
- We don't push commits to the master branch, we always open a pull request
|
||||
- We don't push commits to the main branch, we always open a pull request
|
||||
- Pull requests making changes to the specification content must have at least
|
||||
2 reviews and then they wait for a cooldown period of 2 weeks during which
|
||||
more people can provide feedback, raise challenges and conflicts, improve the
|
||||
proposed changes etc.
|
||||
- So if you wish to continuously participate in shaping the specification, it
|
||||
- If you wish to continuously participate in shaping the specification, it
|
||||
would be useful to go over the open PRs once a week or so, to make sure you
|
||||
have a chance to communicate your needs, ideas and thoughts before changes
|
||||
get merged into the spec
|
||||
|
@ -98,44 +40,40 @@ Important files in this repo to know about:
|
|||
- The actual specification source texts are in the `spec/` directory
|
||||
- JSON-LD context files are in the `rdf/` directory
|
||||
|
||||
# Repo mirrors
|
||||
## Repo mirrors
|
||||
|
||||
This repo is mirrored at:
|
||||
* [ForgeFed on Notabug][Notabug]
|
||||
* [ForgeFed on Pagure][Pagure]
|
||||
* [ForgeFed on GitHub][GitHub]
|
||||
|
||||
* [ForgeFed on Notabug][notabug-repo]
|
||||
* [ForgeFed on Pagure][pagure-repo]
|
||||
* [ForgeFed on GitHub][github-repo]
|
||||
## Website build instructions
|
||||
|
||||
# Website build instructions
|
||||
The ForgeFed website is generated via a script using the Markdown files in this
|
||||
repository. See `./build.sh` for more details.
|
||||
|
||||
./build.sh
|
||||
## License
|
||||
|
||||
# License
|
||||
|
||||
All artifacts produced by the ForgeFed work-group are freely available under
|
||||
the [CC0 1.0 Universal (CC0 1.0) Public Domain Dedication][cc0]. All
|
||||
contributions to the wiki must also be offered freely as such.
|
||||
All contents of this repository are are freely available under the
|
||||
[CC0 1.0 Universal (CC0 1.0) Public Domain Dedication][cc0].
|
||||
|
||||
The ForgeFed logo was created by [iko][].
|
||||
|
||||
# Historical resources
|
||||
## Historical resources
|
||||
|
||||
ForgeFed started its life on a mailing list, [here's the archive][Mail].
|
||||
ForgeFed started its life on a [mailing list][Mailing-list]. The old ForgeFed forum at
|
||||
talk.feneas.org can be viewed via the Internet Archive's
|
||||
[Wayback Machine][Old-forum].
|
||||
|
||||
The ForgeFed forum, now at a [new location][forum], used to be at
|
||||
`talk.feneas.org`, the old forum and posts can be viewed via the Internet
|
||||
Archive's [wayback machine][old-forum].
|
||||
|
||||
[ActivityPub]: https://www.w3.org/TR/activitypub/
|
||||
[ForgeFed]: https://forgefed.org
|
||||
[Website]: https://forgefed.org
|
||||
[Forum]: https://socialhub.activitypub.rocks/c/software/forgefed
|
||||
[Mail]: https://framalistes.org/sympa/arc/git-federation
|
||||
[Mastodon]: https://floss.social/@forgefed
|
||||
[Old-forum]: https://web.archive.org/web/20210306224235/https://talk.feneas.org/c/forgefed/10
|
||||
[Chat]: https://matrix.to/#/#forgefed:libera.chat
|
||||
|
||||
[notabug-repo]: https://notabug.org/peers/forgefed/
|
||||
[pagure-repo]: https://pagure.io/forge-fed/forge-fed
|
||||
[github-repo]: https://github.com/forgefed/forgefed
|
||||
[Notabug]: https://notabug.org/peers/forgefed/
|
||||
[Pagure]: https://pagure.io/forge-fed/forge-fed
|
||||
[Github]: https://github.com/forgefed/forgefed
|
||||
|
||||
[Mailing-list]: https://framalistes.org/sympa/arc/git-federation
|
||||
[Old-forum]: https://web.archive.org/web/20210306224235/https://talk.feneas.org/c/forgefed/10
|
||||
|
||||
[cc0]: https://creativecommons.org/publicdomain/zero/1.0/
|
||||
[iko]: https://iko.im/
|
||||
|
|
|
@ -2,67 +2,66 @@
|
|||
title: ForgeFed
|
||||
---
|
||||
|
||||
ForgeFed is an upcoming federation protocol for enabling interoperability
|
||||
between version control services. It's built as an extension to the
|
||||
[ActivityPub] protocol, allowing users of any ForgeFed-compliant service to
|
||||
interact with the repositories hosted on other instances.
|
||||
ForgeFed is a **federation protocol for software forges** and code collaboration
|
||||
tools for the software development lifecycle and ecosystem. This includes
|
||||
repository hosting websites, issue trackers, code review applications, and more.
|
||||
ForgeFed provides a common substrate for people to create interoperable code
|
||||
collaboration websites and applications.
|
||||
|
||||
The goal of the project is to support all of the major activities connected to
|
||||
project management, including bug reports, merge requests, and notifications
|
||||
across instances.
|
||||
**Federation** means that these websites can interact, allowing the humans
|
||||
using them to interact too, despite being registered on different websites. For
|
||||
example, imagine you could host your Git repos anywhere you want, perhaps even
|
||||
your own personal website, but still be able to open issues and submit pull
|
||||
requests against other people's repos hosted elsewhere, without having to
|
||||
create accounts on those other websites!
|
||||
|
||||
Without federation, we end up having to choose between:
|
||||
|
||||
# Why ForgeFed?
|
||||
- Centralizing into huge profit-oriented websites, where we're powerless
|
||||
- Hosting our code on a small website where we're in control and freedom but
|
||||
isolated from the community
|
||||
|
||||
The current state of code collaboration is dominated by centralized, proprietary
|
||||
platforms. Free alternatives to these platforms exist (for example [NotABug] and
|
||||
[Pagure]) but they do not solve the problem of centralization.
|
||||
With federation, all the websites now communicate with each other to form
|
||||
**a network and community of collaboration** in which we're all both free and
|
||||
connected. It puts the power back into our hands to create tools and
|
||||
collaborate in ways that are aligned with human needs, powerful and safe ways
|
||||
that allow us to include everyone and that don't depend on some big company's
|
||||
policies or some website suddenly shutting down. Let's create the future
|
||||
together!
|
||||
|
||||
This project tries to address exactly this problem. Our wish is to devise a free
|
||||
and standardized mechanism for enabling collaboration across any version control
|
||||
platform.
|
||||
## How does it work?
|
||||
|
||||
ForgeFed is an [ActivityPub][] extension. ActivityPub is an actor-model based
|
||||
protocol for federation of web services and applications.
|
||||
|
||||
# Project status
|
||||
It's a bit like e-mail, except the data sent is JSON objects (i.e. structured
|
||||
computer-readable data), and not only humans have inboxes where they can be
|
||||
contacted, but also repositories and issue trackers have inboxes through which
|
||||
they can be remotely and safely interacted with.
|
||||
|
||||
The best way to keep track of our progress is to follow us on the
|
||||
[Fediverse](https://floss.social/@forgefed). Our roadmap is
|
||||
[here](https://codeberg.org/forgefed/forgefed/issues/87).
|
||||
You can join our chat using [Matrix][] or on [Libera.Chat](https://libera.chat/) at #forgefed.
|
||||
On top of ActivityPub's vocabulary (common language for websites to use for
|
||||
communicating) and protocol, ForgeFed defines new vocabulary terms related to
|
||||
repositories, commits, patches, issues, etc. and the protocol for creating and
|
||||
interacting with such objects across servers.
|
||||
|
||||
We publish specification drafts, implement them in our reference
|
||||
implementation, and publish demos that demonstrate ForgeFed federation
|
||||
features.
|
||||
You can find more technical details in our [repository][Codeberg].
|
||||
|
||||
*As of June 2022*: After a long period of inactivity, new people are joining
|
||||
the team and federation is being implemented in Gitea. There are also new
|
||||
projects such as ForgeFriends, which are implementing ForgeFed.
|
||||
## Project status
|
||||
|
||||
The best way to keep track of our progress is to follow us on the [Fediverse][].
|
||||
You can also join our chat using [Matrix][] or Libera.Chat at #forgefed.
|
||||
|
||||
# Implementations
|
||||
|
||||
- *[Vervis]* is the reference implementation of ForgeFed. It serves as a demo
|
||||
platform for testing the protocol and trying new features
|
||||
- [Gitea][] is implementing federation
|
||||
- *[mcfi]* is another command line implementation for testing the protocol
|
||||
|
||||
# Project links
|
||||
|
||||
- [Issues tracker](https://codeberg.org/ForgeFed/ForgeFed/issues)
|
||||
- [Forum](https://socialhub.activitypub.rocks/c/software/forgefed)
|
||||
- [Funding plan](/funding-plan.html)
|
||||
- Specifications:
|
||||
* [Behavior](/behavior.html)
|
||||
* [Modeling](/modeling.html)
|
||||
* [Vocabulary](/vocabulary.html)
|
||||
- <a rel="me" href="https://floss.social/@forgefed">Fediverse</a>
|
||||
## Implementations
|
||||
|
||||
- [Vervis][] is the reference implementation of ForgeFed. It serves as a demo
|
||||
platform for testing the protocol and new features.
|
||||
- [Forgejo][] is implementing federation.
|
||||
- Pagure has an unmaintained [ForgeFed plugin][Pagure].
|
||||
|
||||
[ActivityPub]: https://www.w3.org/TR/activitypub/
|
||||
[NotABug]: https://notabug.org
|
||||
[Pagure]: https://pagure.io
|
||||
[Vervis]: https://vervis.peers.community/
|
||||
[mcfi]: https://notabug.org/zPlus/mcfi
|
||||
[ForgeFed Forum]: https://talk.feneas.org/c/forgefed
|
||||
[Gitea]: https://gitea.io
|
||||
[Codeberg]: https://codeberg.org/ForgeFed/ForgeFed
|
||||
[Fediverse]: https://floss.social/@forgefed
|
||||
[Matrix]: https://matrix.to/#/#forgefed:libera.chat
|
||||
[Vervis]: https://vervis.peers.community/
|
||||
[Forgejo]: https://forgejo.org
|
||||
[Pagure]: https://pagure.io/forge-fed/forge-fed
|
||||
|
|
|
@ -22,15 +22,15 @@
|
|||
</h1>
|
||||
<nav class="nav" id="site-nav">
|
||||
<a class="nav__link"
|
||||
href="/behavior$suffix$">🗲 behavior</a>
|
||||
href="/behavior$suffix$">⚡ behavior</a>
|
||||
<a class="nav__link"
|
||||
href="/modeling$suffix$">🛠 modeling</a>
|
||||
href="/modeling$suffix$">🛠️ modeling</a>
|
||||
<a class="nav__link"
|
||||
href="/vocabulary$suffix$">📓 vocabulary</a>
|
||||
<a class="nav__link"
|
||||
href="https://codeberg.org/ForgeFed/ForgeFed/issues">🐞 issues</a>
|
||||
<a class="nav__link"
|
||||
href="https://socialhub.activitypub.rocks/c/software/forgefed/60">🗪 forum</a>
|
||||
href="https://socialhub.activitypub.rocks/c/software/forgefed/60">🗒️ forum</a>
|
||||
<a class="nav__link"
|
||||
href="https://matrix.to/#/#forgefed:libera.chat">💬 chat</a>
|
||||
</nav>
|
||||
|
|
Loading…
Reference in a new issue