FEDERATION.md: More detail about ticket creation

This commit is contained in:
fr33domlover 2019-06-16 14:47:33 +00:00
parent ade24bb534
commit 8e01f9b416

View file

@ -842,6 +842,72 @@ TODO:
#### (4) Tickets #### (4) Tickets
While comments are published and hosted by the actors who write them, a
project's tickets are hosted by the project. Actors may still host their
original copy of a ticket. I suppose in general we could allow tickets to be
published first, and then offered in a separate activity, and we could allow
projects to list tickets hosted on other servers. TODO discuss these two
things. In Vervis, at the time of writing, a ticket is offered without a prior
publishing activity, and projects all host their tickets.
A ticket is published using an Offer activity. The author actor may address the
project's followers, but the server may decide not to deliver to them (or
perhaps deliver to them only if the ticket is accepted). In Vervis, project
followers get delivered to. Also in Vervis, a ticket's deps and rdeps can only
be tickets under the same project, but this restriction will hopefully be
relaxed in the future.
The Offer activity looks more-or-less like this:
`GET /aviva/activities/c8lrd0`
```json
{ "@context":
[ "https://www.w3.org/ns/activitystreams"
, { "forge": "https://forgefed.peers.community/ns#"
, "Ticket": "forge:Ticket"
, "isResolved": "forge:isResolved"
, "dependsOn":
{ "@id": "forge:dependsOn"
, "@type": "@id"
}
}
]
, "id": "https://https://poetry.space/aviva/activities/c8lrd0"
, "type": "Offer"
, "to":
[ https://poetry.space/aviva/followers
, https://dev.federated.coop/luke/text-adventure
, https://dev.federated.coop/luke/text-adventure/team
, https://dev.federated.coop/luke/text-adventure/followers
]
, "summary": "<p>Aviva offered a ticket to project text-adventure.</p>"
, "target": "https://dev.federated.coop/luke/text-adventure"
, "object":
{ "type": "Ticket"
, "attributedTo": "https://poetry.space/aviva"
, "published": "2019-02-17T11:31:33Z"
, "summary": "<p>Game crashes when tasting the coconut cream</p>"
, "content": "..."
, "mediaType": "text/html"
, "source":
{ "content": "..."
, "mediaType": "text/markdown"
}
, "isResolved": false
, "dependsOn":
[ "https://dev.federated.coop/luke/text-adventure/issues/106"
, "https://dev.community/jerry/text-game-engine/issues/1219"
]
}
}
```
If the ticket is accepted (which may happen automatically or manually, in
Vervis currently always happens automatically), the project's server gives it
an ID and hosts a copy in the project's ticket tracker. The Ticket object may
look like this:
`GET /luke/text-adventure/issues/113` `GET /luke/text-adventure/issues/113`
```json ```json
@ -884,7 +950,7 @@ TODO:
, "updated": "2019-06-01T12:30:36Z" , "updated": "2019-06-01T12:30:36Z"
, "context": "https://dev.federated.coop/luke/text-adventure" , "context": "https://dev.federated.coop/luke/text-adventure"
, "name": "#113" , "name": "#113"
, "summary": "Game crashes when tasting the coconut cream" , "summary": "<p>Game crashes when tasting the coconut cream</p>"
, "content": "..." , "content": "..."
, "mediaType": "text/html" , "mediaType": "text/html"
, "source": , "source":
@ -892,7 +958,8 @@ TODO:
, "mediaType": "text/markdown" , "mediaType": "text/markdown"
} }
, "replies": , "replies":
[ ... [ https://dev.federated.coop/users/luke/posts/vr7mnt9
, https://dev.community/jerry/outbox/n3y0rk
] ]
, "assignedTo": "https://dev.community/jerry" , "assignedTo": "https://dev.community/jerry"
, "isResolved": false , "isResolved": false
@ -904,19 +971,18 @@ TODO:
] ]
, "dependedBy": "https://dev.federated.coop/luke/text-adventure/issues/87" , "dependedBy": "https://dev.federated.coop/luke/text-adventure/issues/87"
, "history": , "history":
[ ... [ "https://https://poetry.space/aviva/activities/c8lrd0"
, "https://dev.federated.coop/luke/text-adventure/outbox/b3r1shv4"
] ]
} }
``` ```
TODO list actual examples under the "history" property (proposal B.7) TODO turn replies and history into URIS pointing to separate Collections
TODO replies and depends (ForgeFed #12) TODO replies and depends (ForgeFed #12)
TODO content/source and media types (ForgeFed #11) TODO content/source and media types (ForgeFed #11)
TODO Offer activity
#### (5) Patches #### (5) Patches
#### (6) Merge requests #### (6) Merge requests