2016-02-17 17:43:23 +01:00
|
|
|
$# This file is part of Vervis.
|
|
|
|
$#
|
2024-04-10 16:27:19 +02:00
|
|
|
$# Written in 2016, 2018, 2019, 2022, 2023, 2024
|
2023-06-26 21:02:54 +02:00
|
|
|
$# by fr33domlover <fr33domlover@riseup.net>.
|
2016-02-17 17:43:23 +01:00
|
|
|
$#
|
|
|
|
$# ♡ Copying is an act of love. Please copy, reuse and share.
|
|
|
|
$#
|
|
|
|
$# The author(s) have dedicated all copyright and related and neighboring
|
|
|
|
$# rights to this software to the public domain worldwide. This software is
|
|
|
|
$# distributed without any warranty.
|
|
|
|
$#
|
|
|
|
$# You should have received a copy of the CC0 Public Domain Dedication along
|
|
|
|
$# with this software. If not, see
|
|
|
|
$# <http://creativecommons.org/publicdomain/zero/1.0/>.
|
|
|
|
|
2016-02-16 12:41:13 +01:00
|
|
|
<p>
|
2019-04-07 01:06:46 +02:00
|
|
|
Vervis is a work-in-progress federated project and repository hosting and
|
|
|
|
collaboration platform. Its development is meant to help form the ForgeFed
|
|
|
|
specification for project hosting platform federation, and hopefully get
|
2023-11-21 09:56:09 +01:00
|
|
|
existing platforms (such as Forgejo, Gitea, GitLab CE, etc.) to support it.
|
2018-06-11 13:25:10 +02:00
|
|
|
|
|
|
|
<p>
|
2024-04-27 10:13:04 +02:00
|
|
|
Vervis is meant to be just a backend. We're working on the
|
2023-11-21 09:56:09 +01:00
|
|
|
<a href="https://codeberg.org/Anvil/Anvil">
|
|
|
|
Anvil
|
2024-04-27 10:13:04 +02:00
|
|
|
frontend application.
|
2018-06-11 13:25:10 +02:00
|
|
|
|
|
|
|
<p>
|
|
|
|
Vervis is a web application written in the Haskell programming language and
|
2019-03-25 01:01:06 +01:00
|
|
|
the Yesod web framework. It's free as in freedom, under AGPLv3. It's being
|
2024-04-27 10:13:04 +02:00
|
|
|
developed primarily by Pere (he/him), who can be found in the
|
|
|
|
<a href="https://matrix.to/#/#general-forgefed:matrix.batsense.net">
|
|
|
|
Forge Federation Matrix room
|
|
|
|
and on the
|
|
|
|
<a href="https://micro.towards.vision/@pere">
|
|
|
|
Fediverse.
|
2018-06-11 13:25:10 +02:00
|
|
|
|
|
|
|
<p>
|
|
|
|
Vervis currently supports Git and Darcs repositories.
|
2016-02-16 12:41:13 +01:00
|
|
|
|
2024-04-27 10:13:04 +02:00
|
|
|
<p>
|
|
|
|
Contributions very welcome!
|
|
|
|
|
2019-04-07 01:06:46 +02:00
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
Vervis web app
|
2023-11-21 09:56:09 +01:00
|
|
|
<a href="https://vervis.peers.community/repos/rjQ3E">
|
|
|
|
Git repository
|
|
|
|
with the source code
|
|
|
|
<li>
|
|
|
|
<a href="https://codeberg.org/ForgeFed/Vervis">
|
|
|
|
Mirror on Codeberg
|
2024-04-27 10:13:04 +02:00
|
|
|
$# <li>
|
|
|
|
$# IRC:
|
|
|
|
$# <a href="https://web.libera.chat/#forgefed">
|
|
|
|
$# #forgefed @ Libera Chat
|
2019-04-07 01:06:46 +02:00
|
|
|
<li>
|
|
|
|
Matrix:
|
2023-11-21 09:56:09 +01:00
|
|
|
<a href="https://matrix.to/#/#general-forgefed:matrix.batsense.net">
|
|
|
|
#general-forgefed:matrix.batsense.net
|
2019-04-07 01:06:46 +02:00
|
|
|
<li>
|
|
|
|
ForgeFed
|
2022-06-24 07:48:54 +02:00
|
|
|
<a href="https://forgefed.org">website
|
2019-04-07 01:06:46 +02:00
|
|
|
|
2024-04-27 10:13:04 +02:00
|
|
|
<p>
|
|
|
|
This project is funded through
|
|
|
|
<a href="https://nlnet.nl/entrust">NGI0 Entrust</a>, a fund established by
|
|
|
|
<a href="https://nlnet.nl">NLnet</a> with financial support from the European
|
|
|
|
Commission's <a href="https://ngi.eu">Next Generation Internet</a> program.
|
|
|
|
Learn more at the
|
|
|
|
<a href="https://nlnet.nl/project/ForgeFed-RPC">NLnet project page</a>.
|
|
|
|
|
Switch to new actor layout
This is such a huge patch, it's probably impossible to tell what it does by
looking at the code. One thing is clear: It changes *everything* :P so here's
an overview:
- There are now 5 types of actors, each having its own top-level route
- So projects, repos, etc. are no longer "under" sharers
- Actor routes are now based on their KeyHashid, there are no "idents" anymore,
i.e. URLs look random and don't contain user or repo names
- No sharers anymore; people and groups are distinct entities not sharing a
common namespace or anything like that
- Project has been renamed to Deck and it simply means a ticket tracker; repos
are no longer "under" projects
- In addition to Person, Group, Repo and Deck, there's a new actor type Loom,
which is a patch tracker; i.e. Repo actors don't manage MRs anymore
- All C2S and S2S is temporarily disabled, because huge changes to the whole
code are required and I'll do them gradually in the next patches
- Since form-based actions are implemented using C2S, they're disabled as well,
so Vervis is now essentially read-only
- Some views have been temporarily removed, e.g. repo history and commit view
- A huge set of DB migrations has been added to adapt the DB to these changes;
I haven't tested them yet on a read DB so there may be errors there; I'll fix
them in the next patches if I find any (probably going to test on the main
instance where Vervis itself is hosted...)
- Some modules got tech upgrades, e.g. LocalActor became a higher-kinded type
and a similar pattern is probably relevant for several other types
- There's an 'Actor' entity in the DB schema now, and all 5 actor types use it
for common things like inbox and outbox
- Although inbox and outbox are used only by Actor, so essentially could be
removed, I haven't removed them; that's because I wonder if at some point
users can have a tree of inboxes much like in email; I don't have an excuse
for Outbox, but anyway, leaving them as is for now
- Workflows, roles and collaborators are partially removed/unused until I
figure out a sane federated way to provide these features
- Since repo routes don't contain a "sharer" anymore, SSH URIs are now simpler,
they already look like user@host/repo regardless of who "controls" that repo
2022-08-15 15:57:42 +02:00
|
|
|
<h2>People
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
$forall (Entity personID person, Entity _ actor) <- people
|
2022-09-26 14:47:50 +02:00
|
|
|
<li>
|
2024-08-02 17:31:06 +02:00
|
|
|
$if canCreateFactories person
|
|
|
|
<span>👑
|
2022-09-26 14:47:50 +02:00
|
|
|
<a href=@{PersonR $ hashPerson personID}>
|
|
|
|
~#{username2text $ personUsername person} #{actorName actor}
|
Switch to new actor layout
This is such a huge patch, it's probably impossible to tell what it does by
looking at the code. One thing is clear: It changes *everything* :P so here's
an overview:
- There are now 5 types of actors, each having its own top-level route
- So projects, repos, etc. are no longer "under" sharers
- Actor routes are now based on their KeyHashid, there are no "idents" anymore,
i.e. URLs look random and don't contain user or repo names
- No sharers anymore; people and groups are distinct entities not sharing a
common namespace or anything like that
- Project has been renamed to Deck and it simply means a ticket tracker; repos
are no longer "under" projects
- In addition to Person, Group, Repo and Deck, there's a new actor type Loom,
which is a patch tracker; i.e. Repo actors don't manage MRs anymore
- All C2S and S2S is temporarily disabled, because huge changes to the whole
code are required and I'll do them gradually in the next patches
- Since form-based actions are implemented using C2S, they're disabled as well,
so Vervis is now essentially read-only
- Some views have been temporarily removed, e.g. repo history and commit view
- A huge set of DB migrations has been added to adapt the DB to these changes;
I haven't tested them yet on a read DB so there may be errors there; I'll fix
them in the next patches if I find any (probably going to test on the main
instance where Vervis itself is hosted...)
- Some modules got tech upgrades, e.g. LocalActor became a higher-kinded type
and a similar pattern is probably relevant for several other types
- There's an 'Actor' entity in the DB schema now, and all 5 actor types use it
for common things like inbox and outbox
- Although inbox and outbox are used only by Actor, so essentially could be
removed, I haven't removed them; that's because I wonder if at some point
users can have a tree of inboxes much like in email; I don't have an excuse
for Outbox, but anyway, leaving them as is for now
- Workflows, roles and collaborators are partially removed/unused until I
figure out a sane federated way to provide these features
- Since repo routes don't contain a "sharer" anymore, SSH URIs are now simpler,
they already look like user@host/repo regardless of who "controls" that repo
2022-08-15 15:57:42 +02:00
|
|
|
|
2022-09-26 16:19:49 +02:00
|
|
|
<h2>Teams
|
Switch to new actor layout
This is such a huge patch, it's probably impossible to tell what it does by
looking at the code. One thing is clear: It changes *everything* :P so here's
an overview:
- There are now 5 types of actors, each having its own top-level route
- So projects, repos, etc. are no longer "under" sharers
- Actor routes are now based on their KeyHashid, there are no "idents" anymore,
i.e. URLs look random and don't contain user or repo names
- No sharers anymore; people and groups are distinct entities not sharing a
common namespace or anything like that
- Project has been renamed to Deck and it simply means a ticket tracker; repos
are no longer "under" projects
- In addition to Person, Group, Repo and Deck, there's a new actor type Loom,
which is a patch tracker; i.e. Repo actors don't manage MRs anymore
- All C2S and S2S is temporarily disabled, because huge changes to the whole
code are required and I'll do them gradually in the next patches
- Since form-based actions are implemented using C2S, they're disabled as well,
so Vervis is now essentially read-only
- Some views have been temporarily removed, e.g. repo history and commit view
- A huge set of DB migrations has been added to adapt the DB to these changes;
I haven't tested them yet on a read DB so there may be errors there; I'll fix
them in the next patches if I find any (probably going to test on the main
instance where Vervis itself is hosted...)
- Some modules got tech upgrades, e.g. LocalActor became a higher-kinded type
and a similar pattern is probably relevant for several other types
- There's an 'Actor' entity in the DB schema now, and all 5 actor types use it
for common things like inbox and outbox
- Although inbox and outbox are used only by Actor, so essentially could be
removed, I haven't removed them; that's because I wonder if at some point
users can have a tree of inboxes much like in email; I don't have an excuse
for Outbox, but anyway, leaving them as is for now
- Workflows, roles and collaborators are partially removed/unused until I
figure out a sane federated way to provide these features
- Since repo routes don't contain a "sharer" anymore, SSH URIs are now simpler,
they already look like user@host/repo regardless of who "controls" that repo
2022-08-15 15:57:42 +02:00
|
|
|
|
|
|
|
<ul>
|
2024-05-12 20:46:34 +02:00
|
|
|
$forall (Entity groupID _, Entity _ actor, parents) <- groups
|
2022-09-26 14:47:50 +02:00
|
|
|
<li>
|
|
|
|
<a href=@{GroupR $ hashGroup groupID}>
|
|
|
|
&#{keyHashidText $ hashGroup groupID} #{actorName actor}
|
2024-05-12 20:46:34 +02:00
|
|
|
<ul>
|
|
|
|
$if not $ null parents
|
|
|
|
<li>Parents
|
|
|
|
<ul>
|
|
|
|
$forall p <- parents
|
|
|
|
<li>
|
|
|
|
^{groupLinkFedW p}
|
Switch to new actor layout
This is such a huge patch, it's probably impossible to tell what it does by
looking at the code. One thing is clear: It changes *everything* :P so here's
an overview:
- There are now 5 types of actors, each having its own top-level route
- So projects, repos, etc. are no longer "under" sharers
- Actor routes are now based on their KeyHashid, there are no "idents" anymore,
i.e. URLs look random and don't contain user or repo names
- No sharers anymore; people and groups are distinct entities not sharing a
common namespace or anything like that
- Project has been renamed to Deck and it simply means a ticket tracker; repos
are no longer "under" projects
- In addition to Person, Group, Repo and Deck, there's a new actor type Loom,
which is a patch tracker; i.e. Repo actors don't manage MRs anymore
- All C2S and S2S is temporarily disabled, because huge changes to the whole
code are required and I'll do them gradually in the next patches
- Since form-based actions are implemented using C2S, they're disabled as well,
so Vervis is now essentially read-only
- Some views have been temporarily removed, e.g. repo history and commit view
- A huge set of DB migrations has been added to adapt the DB to these changes;
I haven't tested them yet on a read DB so there may be errors there; I'll fix
them in the next patches if I find any (probably going to test on the main
instance where Vervis itself is hosted...)
- Some modules got tech upgrades, e.g. LocalActor became a higher-kinded type
and a similar pattern is probably relevant for several other types
- There's an 'Actor' entity in the DB schema now, and all 5 actor types use it
for common things like inbox and outbox
- Although inbox and outbox are used only by Actor, so essentially could be
removed, I haven't removed them; that's because I wonder if at some point
users can have a tree of inboxes much like in email; I don't have an excuse
for Outbox, but anyway, leaving them as is for now
- Workflows, roles and collaborators are partially removed/unused until I
figure out a sane federated way to provide these features
- Since repo routes don't contain a "sharer" anymore, SSH URIs are now simpler,
they already look like user@host/repo regardless of who "controls" that repo
2022-08-15 15:57:42 +02:00
|
|
|
|
2016-02-17 17:43:23 +01:00
|
|
|
<h2>Repos
|
2016-02-16 12:41:13 +01:00
|
|
|
|
Switch to new actor layout
This is such a huge patch, it's probably impossible to tell what it does by
looking at the code. One thing is clear: It changes *everything* :P so here's
an overview:
- There are now 5 types of actors, each having its own top-level route
- So projects, repos, etc. are no longer "under" sharers
- Actor routes are now based on their KeyHashid, there are no "idents" anymore,
i.e. URLs look random and don't contain user or repo names
- No sharers anymore; people and groups are distinct entities not sharing a
common namespace or anything like that
- Project has been renamed to Deck and it simply means a ticket tracker; repos
are no longer "under" projects
- In addition to Person, Group, Repo and Deck, there's a new actor type Loom,
which is a patch tracker; i.e. Repo actors don't manage MRs anymore
- All C2S and S2S is temporarily disabled, because huge changes to the whole
code are required and I'll do them gradually in the next patches
- Since form-based actions are implemented using C2S, they're disabled as well,
so Vervis is now essentially read-only
- Some views have been temporarily removed, e.g. repo history and commit view
- A huge set of DB migrations has been added to adapt the DB to these changes;
I haven't tested them yet on a read DB so there may be errors there; I'll fix
them in the next patches if I find any (probably going to test on the main
instance where Vervis itself is hosted...)
- Some modules got tech upgrades, e.g. LocalActor became a higher-kinded type
and a similar pattern is probably relevant for several other types
- There's an 'Actor' entity in the DB schema now, and all 5 actor types use it
for common things like inbox and outbox
- Although inbox and outbox are used only by Actor, so essentially could be
removed, I haven't removed them; that's because I wonder if at some point
users can have a tree of inboxes much like in email; I don't have an excuse
for Outbox, but anyway, leaving them as is for now
- Workflows, roles and collaborators are partially removed/unused until I
figure out a sane federated way to provide these features
- Since repo routes don't contain a "sharer" anymore, SSH URIs are now simpler,
they already look like user@host/repo regardless of who "controls" that repo
2022-08-15 15:57:42 +02:00
|
|
|
<ul>
|
|
|
|
$forall (Entity repoID _, Entity _ actor) <- repos
|
2022-09-26 14:47:50 +02:00
|
|
|
<li>
|
|
|
|
<a href=@{RepoR $ hashRepo repoID}>
|
|
|
|
^#{keyHashidText $ hashRepo repoID} #{actorName actor}
|
2019-12-28 19:04:05 +01:00
|
|
|
|
2022-09-26 16:19:49 +02:00
|
|
|
<h2>Ticket Trackers
|
2016-02-17 17:43:23 +01:00
|
|
|
|
Switch to new actor layout
This is such a huge patch, it's probably impossible to tell what it does by
looking at the code. One thing is clear: It changes *everything* :P so here's
an overview:
- There are now 5 types of actors, each having its own top-level route
- So projects, repos, etc. are no longer "under" sharers
- Actor routes are now based on their KeyHashid, there are no "idents" anymore,
i.e. URLs look random and don't contain user or repo names
- No sharers anymore; people and groups are distinct entities not sharing a
common namespace or anything like that
- Project has been renamed to Deck and it simply means a ticket tracker; repos
are no longer "under" projects
- In addition to Person, Group, Repo and Deck, there's a new actor type Loom,
which is a patch tracker; i.e. Repo actors don't manage MRs anymore
- All C2S and S2S is temporarily disabled, because huge changes to the whole
code are required and I'll do them gradually in the next patches
- Since form-based actions are implemented using C2S, they're disabled as well,
so Vervis is now essentially read-only
- Some views have been temporarily removed, e.g. repo history and commit view
- A huge set of DB migrations has been added to adapt the DB to these changes;
I haven't tested them yet on a read DB so there may be errors there; I'll fix
them in the next patches if I find any (probably going to test on the main
instance where Vervis itself is hosted...)
- Some modules got tech upgrades, e.g. LocalActor became a higher-kinded type
and a similar pattern is probably relevant for several other types
- There's an 'Actor' entity in the DB schema now, and all 5 actor types use it
for common things like inbox and outbox
- Although inbox and outbox are used only by Actor, so essentially could be
removed, I haven't removed them; that's because I wonder if at some point
users can have a tree of inboxes much like in email; I don't have an excuse
for Outbox, but anyway, leaving them as is for now
- Workflows, roles and collaborators are partially removed/unused until I
figure out a sane federated way to provide these features
- Since repo routes don't contain a "sharer" anymore, SSH URIs are now simpler,
they already look like user@host/repo regardless of who "controls" that repo
2022-08-15 15:57:42 +02:00
|
|
|
<ul>
|
|
|
|
$forall (Entity deckID _, Entity _ actor) <- decks
|
2022-09-26 14:47:50 +02:00
|
|
|
<li>
|
|
|
|
<a href=@{DeckR $ hashDeck deckID}>
|
|
|
|
=#{keyHashidText $ hashDeck deckID} #{actorName actor}
|
Switch to new actor layout
This is such a huge patch, it's probably impossible to tell what it does by
looking at the code. One thing is clear: It changes *everything* :P so here's
an overview:
- There are now 5 types of actors, each having its own top-level route
- So projects, repos, etc. are no longer "under" sharers
- Actor routes are now based on their KeyHashid, there are no "idents" anymore,
i.e. URLs look random and don't contain user or repo names
- No sharers anymore; people and groups are distinct entities not sharing a
common namespace or anything like that
- Project has been renamed to Deck and it simply means a ticket tracker; repos
are no longer "under" projects
- In addition to Person, Group, Repo and Deck, there's a new actor type Loom,
which is a patch tracker; i.e. Repo actors don't manage MRs anymore
- All C2S and S2S is temporarily disabled, because huge changes to the whole
code are required and I'll do them gradually in the next patches
- Since form-based actions are implemented using C2S, they're disabled as well,
so Vervis is now essentially read-only
- Some views have been temporarily removed, e.g. repo history and commit view
- A huge set of DB migrations has been added to adapt the DB to these changes;
I haven't tested them yet on a read DB so there may be errors there; I'll fix
them in the next patches if I find any (probably going to test on the main
instance where Vervis itself is hosted...)
- Some modules got tech upgrades, e.g. LocalActor became a higher-kinded type
and a similar pattern is probably relevant for several other types
- There's an 'Actor' entity in the DB schema now, and all 5 actor types use it
for common things like inbox and outbox
- Although inbox and outbox are used only by Actor, so essentially could be
removed, I haven't removed them; that's because I wonder if at some point
users can have a tree of inboxes much like in email; I don't have an excuse
for Outbox, but anyway, leaving them as is for now
- Workflows, roles and collaborators are partially removed/unused until I
figure out a sane federated way to provide these features
- Since repo routes don't contain a "sharer" anymore, SSH URIs are now simpler,
they already look like user@host/repo regardless of who "controls" that repo
2022-08-15 15:57:42 +02:00
|
|
|
|
2022-09-26 16:19:49 +02:00
|
|
|
<h2>Merge Request Trackers
|
Switch to new actor layout
This is such a huge patch, it's probably impossible to tell what it does by
looking at the code. One thing is clear: It changes *everything* :P so here's
an overview:
- There are now 5 types of actors, each having its own top-level route
- So projects, repos, etc. are no longer "under" sharers
- Actor routes are now based on their KeyHashid, there are no "idents" anymore,
i.e. URLs look random and don't contain user or repo names
- No sharers anymore; people and groups are distinct entities not sharing a
common namespace or anything like that
- Project has been renamed to Deck and it simply means a ticket tracker; repos
are no longer "under" projects
- In addition to Person, Group, Repo and Deck, there's a new actor type Loom,
which is a patch tracker; i.e. Repo actors don't manage MRs anymore
- All C2S and S2S is temporarily disabled, because huge changes to the whole
code are required and I'll do them gradually in the next patches
- Since form-based actions are implemented using C2S, they're disabled as well,
so Vervis is now essentially read-only
- Some views have been temporarily removed, e.g. repo history and commit view
- A huge set of DB migrations has been added to adapt the DB to these changes;
I haven't tested them yet on a read DB so there may be errors there; I'll fix
them in the next patches if I find any (probably going to test on the main
instance where Vervis itself is hosted...)
- Some modules got tech upgrades, e.g. LocalActor became a higher-kinded type
and a similar pattern is probably relevant for several other types
- There's an 'Actor' entity in the DB schema now, and all 5 actor types use it
for common things like inbox and outbox
- Although inbox and outbox are used only by Actor, so essentially could be
removed, I haven't removed them; that's because I wonder if at some point
users can have a tree of inboxes much like in email; I don't have an excuse
for Outbox, but anyway, leaving them as is for now
- Workflows, roles and collaborators are partially removed/unused until I
figure out a sane federated way to provide these features
- Since repo routes don't contain a "sharer" anymore, SSH URIs are now simpler,
they already look like user@host/repo regardless of who "controls" that repo
2022-08-15 15:57:42 +02:00
|
|
|
|
|
|
|
<ul>
|
|
|
|
$forall (Entity loomID _, Entity _ actor) <- looms
|
2022-09-26 14:47:50 +02:00
|
|
|
<li>
|
|
|
|
<a href=@{LoomR $ hashLoom loomID}>
|
|
|
|
+#{keyHashidText $ hashLoom loomID} #{actorName actor}
|
2023-06-26 21:02:54 +02:00
|
|
|
|
|
|
|
<h2>Projects
|
|
|
|
|
|
|
|
<ul>
|
2024-04-10 16:27:19 +02:00
|
|
|
$forall (Entity projectID _, Entity _ actor, components, children) <- projects
|
2023-06-26 21:02:54 +02:00
|
|
|
<li>
|
|
|
|
<a href=@{ProjectR $ hashProject projectID}>
|
2023-06-26 22:40:43 +02:00
|
|
|
\$#{keyHashidText $ hashProject projectID} #{actorName actor}
|
2023-11-21 09:56:09 +01:00
|
|
|
<ul>
|
2024-04-10 16:27:19 +02:00
|
|
|
$if not $ null components
|
|
|
|
<li>Components
|
|
|
|
<ul>
|
|
|
|
$forall c <- components
|
|
|
|
<li>
|
|
|
|
^{componentLinkFedW c}
|
|
|
|
$if not $ null children
|
|
|
|
<li>Children
|
|
|
|
<ul>
|
|
|
|
$forall c <- children
|
|
|
|
<li>
|
|
|
|
^{projectLinkFedW c}
|