FEDERATION.md: Document actor choice in Vervis/ForgeFed
This commit is contained in:
parent
e4ca79c28f
commit
c12977c13d
1 changed files with 48 additions and 0 deletions
|
@ -469,6 +469,54 @@ trivial to do.
|
||||||
|
|
||||||
#### (1) Actors
|
#### (1) Actors
|
||||||
|
|
||||||
|
How to decide which types of objects are actors and which aren't?
|
||||||
|
|
||||||
|
The proposal here is that the following types be actors:
|
||||||
|
|
||||||
|
- Person
|
||||||
|
- Project
|
||||||
|
- Repository
|
||||||
|
- Group/Organization/Team
|
||||||
|
|
||||||
|
And other types such as these not be actors:
|
||||||
|
|
||||||
|
- Ticket
|
||||||
|
- Merge request
|
||||||
|
- Patch
|
||||||
|
- Diff
|
||||||
|
- Discussion thread
|
||||||
|
|
||||||
|
The lists above are just an example of the proposed rule for determining which
|
||||||
|
objects should be actors and which not. It's not necessarily always obvious,
|
||||||
|
but the proposed guideline is:
|
||||||
|
|
||||||
|
- If the object needs to be able to publish activities, it should be an actor
|
||||||
|
- If the object is stand-alone and its meaning is self-contained, it should be
|
||||||
|
an actor
|
||||||
|
- If the object's meaning and context are semantically inherently tied to some
|
||||||
|
parent object, it shouldn't be an actor
|
||||||
|
- If an object doesn't need to send or receive activities, even if it's self
|
||||||
|
contained, there's probably no need to make it an actor, because it
|
||||||
|
practically doesn't participate in actor-model communication
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
- A ticket/issue/bug is created with respect to some project, repo, software,
|
||||||
|
system, the ticket is inherently a part of that parent object, so tickets
|
||||||
|
would generally not be actors
|
||||||
|
- A project or repository are generally self-contained entities, and even if
|
||||||
|
some forge has users as top-level namespace and repos are created under
|
||||||
|
users, the user managing/owning/sharing a repo is just a matter of access
|
||||||
|
control and authority, *it isn't a part of the meaning of the repo itself*,
|
||||||
|
and the repo could easily change hands and change maintainers while remaining
|
||||||
|
the same repo, same software, same content, same meaning. So, repos and
|
||||||
|
projects would generally be actors.
|
||||||
|
- A group/organization/team is a self-contained object, a set of users along
|
||||||
|
with access control and roles and so on, and it needs to be able to receive
|
||||||
|
update activities that update the team members list, structure and access and
|
||||||
|
so on, even though a team isn't a user and probably doesn't publish
|
||||||
|
activities. So, teams would generally be actors.
|
||||||
|
|
||||||
#### (2) Authorization and roles
|
#### (2) Authorization and roles
|
||||||
|
|
||||||
#### (3) Comments
|
#### (3) Comments
|
||||||
|
|
Loading…
Reference in a new issue