Fix #173: Move redundant README content to website index.md (#187)

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:
Anthony Wang 2023-02-06 12:07:18 +00:00 committed by fr33domlover
parent 9d37710764
commit 467dfe8467
5 changed files with 90 additions and 185 deletions

40
.gitignore vendored
View file

@ -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

View file

130
README.md
View file

@ -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].
[Website]: https://forgefed.org
[Forum]: https://socialhub.activitypub.rocks/c/software/forgefed
[Chat]: https://matrix.to/#/#forgefed:libera.chat
[ActivityPub]: https://www.w3.org/TR/activitypub/
[ForgeFed]: 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
[Notabug]: https://notabug.org/peers/forgefed/
[Pagure]: https://pagure.io/forge-fed/forge-fed
[Github]: https://github.com/forgefed/forgefed
[notabug-repo]: https://notabug.org/peers/forgefed/
[pagure-repo]: https://pagure.io/forge-fed/forge-fed
[github-repo]: 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/

View file

@ -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
## 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
- [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].
# 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>
[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
[Matrix]: https://matrix.to/#/#forgefed:libera.chat
[ActivityPub]: https://www.w3.org/TR/activitypub/
[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

View file

@ -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>