FEDERATION.md: More detail about ticket creation
This commit is contained in:
parent
ade24bb534
commit
8e01f9b416
1 changed files with 72 additions and 6 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue