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
|
||||
|
||||
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`
|
||||
|
||||
```json
|
||||
|
@ -884,7 +950,7 @@ TODO:
|
|||
, "updated": "2019-06-01T12:30:36Z"
|
||||
, "context": "https://dev.federated.coop/luke/text-adventure"
|
||||
, "name": "#113"
|
||||
, "summary": "Game crashes when tasting the coconut cream"
|
||||
, "summary": "<p>Game crashes when tasting the coconut cream</p>"
|
||||
, "content": "..."
|
||||
, "mediaType": "text/html"
|
||||
, "source":
|
||||
|
@ -892,7 +958,8 @@ TODO:
|
|||
, "mediaType": "text/markdown"
|
||||
}
|
||||
, "replies":
|
||||
[ ...
|
||||
[ https://dev.federated.coop/users/luke/posts/vr7mnt9
|
||||
, https://dev.community/jerry/outbox/n3y0rk
|
||||
]
|
||||
, "assignedTo": "https://dev.community/jerry"
|
||||
, "isResolved": false
|
||||
|
@ -904,19 +971,18 @@ TODO:
|
|||
]
|
||||
, "dependedBy": "https://dev.federated.coop/luke/text-adventure/issues/87"
|
||||
, "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 content/source and media types (ForgeFed #11)
|
||||
|
||||
TODO Offer activity
|
||||
|
||||
#### (5) Patches
|
||||
|
||||
#### (6) Merge requests
|
||||
|
|
Loading…
Reference in a new issue