Skip to content

Commit 339b547

Browse files
authored
Merge branch 'main' into issue-482
2 parents e5d8386 + caf410f commit 339b547

File tree

8 files changed

+232
-323
lines changed

8 files changed

+232
-323
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Add comment to explain Needs FEP label
2+
on:
3+
issues:
4+
types:
5+
- labeled
6+
7+
jobs:
8+
add-comment:
9+
if: github.event.label.name == 'needs-fep'
10+
runs-on: ubuntu-latest
11+
permissions:
12+
issues: write
13+
steps:
14+
- name: Add comment
15+
run: gh issue comment "$NUMBER" --body "$BODY"
16+
env:
17+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
GH_REPO: ${{ github.repository }}
19+
NUMBER: ${{ github.event.issue.number }}
20+
BODY: >
21+
This issue has been labelled as potentially needing a FEP, and contributors are welcome to [submit a FEP](https://codeberg.org/fediverse/fep/src/branch/main#submitting-a-fep) on the topic.
22+
23+
Note that issues may be closed without the FEP being created; that does not mean that the FEP is no longer needed.

ERRATA.md

Lines changed: 72 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ This document includes errata for the [Activity Streams](https://www.w3.org/TR/a
2525
are only allowed on `Link` objects. One alternative is to use `Link` objects
2626
with the correct `height` and `width` as the `url` property for each `Image`
2727
object.
28-
28+
2929
```json
3030
{
3131
"@context": "https://www.w3.org/ns/activitystreams",
@@ -60,14 +60,14 @@ This document includes errata for the [Activity Streams](https://www.w3.org/TR/a
6060
- The range of the `units` property is given as an enumerated set of values.
6161
Due to a formatting error, some of these values are shown with an incorrect
6262
leading space character. The correct range is:
63-
63+
6464
```text
6565
"cm" | "feet" | "inches" | "km" | "m" | "miles" | xsd:anyURI
6666
```
6767

6868
- Example 58 includes a `summary` property on a `Mention` object, which is
6969
not allowed. A corrected example:
70-
70+
7171
```json
7272
{
7373
"@context": "https://www.w3.org/ns/activitystreams",
@@ -79,6 +79,33 @@ This document includes errata for the [Activity Streams](https://www.w3.org/TR/a
7979

8080
- Unlike `latitude` and `longitude`, the domain of the `altitude` term is the `Object` type. The `altitude` term should be included in the list of properties of an `Object`. Because `altitude` is primarily documented as a property of a `Place`, publishers should not include `altitude` on objects that are not of type `Place`, and consumers should accept objects with this property that aren't of type `Place`.
8181

82+
- Example 60, for the `Tombstone` type, is missing the `@context` property. The correct example should be:
83+
84+
```json
85+
{
86+
"@context": "https://www.w3.org/ns/activitystreams",
87+
"type": "OrderedCollection",
88+
"totalItems": 3,
89+
"name": "Vacation photos 2016",
90+
"orderedItems": [
91+
{
92+
"type": "Image",
93+
"id": "http://image.example/1"
94+
},
95+
{
96+
"type": "Tombstone",
97+
"formerType": "Image",
98+
"id": "http://image.example/2",
99+
"deleted": "2016-03-17T00:00:00Z"
100+
},
101+
{
102+
"type": "Image",
103+
"id": "http://image.example/3"
104+
}
105+
]
106+
}
107+
```
108+
82109
- The domain of the `attributedTo` property is both `Link` and `Object`. `attributedTo` should be included in the list of properties of a `Link`.
83110

84111
- The Notes for the `to` property do not correctly identify the functionality (one or more) of the values of the property. The notes should read: "Identifies one or more entities that are part of the public primary audience of this Object."
@@ -89,3 +116,45 @@ This document includes errata for the [Activity Streams](https://www.w3.org/TR/a
89116

90117
- The Notes for the `bcc` property do not correctly define the range of the property, limiting it to only the `Object` type. The notes should read: "Identifies one or more entities that are part of the private secondary audience of this Object."
91118

119+
- The description of the `audience` property should read "Identifies one or more entities that represent the total population of entities for which the object can be considered to be relevant."
120+
121+
- Example 157 is not valid JSON because the `content` property extends over multiple lines. The correct example is:
122+
123+
```json
124+
{
125+
"@context": "https://www.w3.org/ns/activitystreams",
126+
"name": "A thank-you note",
127+
"type": "Note",
128+
"content": "Thank you <a href='http://sally.example.org'>@sally</a> for all your hard work! <a href='http://example.org/tags/givingthanks'>#givingthanks</a>",
129+
"to": {
130+
"name": "Sally",
131+
"type": "Person",
132+
"id": "http://sally.example.org"
133+
},
134+
"tag": {
135+
"id": "http://example.org/tags/givingthanks",
136+
"name": "#givingthanks"
137+
}
138+
}
139+
```
140+
141+
- Example 102 is missing a `type` property on the `Link` value of the `url` property. For clarity, the example should read:
142+
143+
```json
144+
{
145+
"@context": "https://www.w3.org/ns/activitystreams",
146+
"type": "Video",
147+
"name": "Cool New Movie",
148+
"duration": "PT2H30M",
149+
"preview": {
150+
"type": "Video",
151+
"name": "Trailer",
152+
"duration": "PT1M",
153+
"url": {
154+
"type": "Link",
155+
"href": "http://example.org/trailer.mkv",
156+
"mediaType": "video/mkv"
157+
}
158+
}
159+
}
160+
```

LICENSE.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
This work is being provided by the copyright holders under the following license.
2+
3+
# License
4+
5+
By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
6+
7+
Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications:
8+
9+
- The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
10+
- Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
11+
- Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright (c) [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)."
12+
13+
# Disclaimers
14+
15+
THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
16+
17+
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
18+
19+
The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders.

README.md

Lines changed: 99 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,103 @@
1-
# Activity Streams 2.0 Editor's Drafts
1+
# Activity Streams 2.0
22

3-
Contributions to this specification are governed by the W3C
4-
IPR Policy. Pull requests will be accepted only if the
5-
submitter is a current member of the W3C Social WG but
6-
issues can be opened by anyone.
3+
Activity Streams 2.0 (AS2) is a social data format. Its types represent activities, content objects, and actors like people or groups on the social web.
74

8-
## Implementations
5+
It is an extensible format; the Activity Vocabulary provides a structure for social applications, but more focused or innovative objects can be represented in AS2 by extending the vocabulary.
96

10-
Recent implementation summary: https://www.w3.org/2017/02/social/implementations/as2/
7+
## Key Links
118

12-
Please report your implementations and test results as a pull request on a new file in [implementation-reports](https://github.com/w3c/activitystreams/tree/master/implementation-reports), using the format of [template.md](https://github.com/w3c/activitystreams/blob/master/implementation-reports/template.md).
9+
* The [Core specification](https://www.w3.org/TR/activitystreams-core/) describes the basic structure of AS2 and the core classes like `Object` and `Link`.
10+
* The [Vocabulary specification](https://www.w3.org/TR/activitystreams-vocabulary/) expands on the core specification with definitions of several dozen activity and object types, as well as many properties of those types.
11+
* The [SocialCG](https://www.w3.org/Social/WG) is the W3C Social Web Working Group, which is the home of AS2.
12+
* [ActivityPub](https://www.w3.org/TR/activitypub/) is a protocol that uses AS2 for communication between social systems.
13+
* The [Activity Streams Primer](https://www.w3.org/wiki/Activity_Streams/Primer) includes some expanded examples and explanations of AS2. If it's unclear how to use a type or property, the primer is a good place to start.
14+
* The [Extensions registry](https://www.w3.org/wiki/Activity_Streams/Extensions) lists known extensions to AS2.
15+
* Popular extensions can be integrated into the AS2 vocabulary document, making them practically part of the spec. The [Extensions Policy](https://swicg.github.io/extensions-policy/) describes how to propose extensions for inclusion in AS2.
16+
17+
## Editors
18+
19+
The currently active editors of the AS2 specification(s) are:
20+
21+
- [Evan Prodromou](https://github.com/evanp)
22+
23+
## Supported deliverables
24+
25+
These files are maintained by the editor(s) under the supervision of the SocialCG:
26+
27+
* The Core specification.
28+
* The Vocabulary specification.
29+
* The JSON-LD context document.
30+
* The OWL ontology document.
31+
32+
The documentation is primary; the JSON-LD context and OWL ontology follow from the documentation.
33+
34+
Other documents included here are informational and provided on a best-effort basis, or to support the processes of the W3C.
35+
36+
## Contributions
37+
38+
Because AS2 is a W3C Recommendation, its published documents are stable and changes are highly controlled. If you'd like to contribute, the best way is to open a [GitHub issue](https://github.com/w3c/activitystreams/issues) or join the [SocialCG](https://www.w3.org/Social/WG) and participate in discussions there.
39+
40+
Pull requests are generally *not* helpful, unless you're an editor or have been asked to submit a pull request by an editor. The editors are responsible for the content of the documents, and they will make changes based on the issues and discussions.
41+
42+
AS2 provides the vocabulary for ActivityPub, but many of the protocol details are not part of AS2. Issues with the protocol and ActivityPub API should be created in the [ActivityPub repository](https://github.com/w3c/activitypub). If you're not sure, it's okay to open an issue in the AS2 repository and the editors will navigate it to the right place.
43+
44+
## Processes
45+
46+
### Questions and clarifications
47+
48+
If you have a question about the specification(s), including text or terms that are unclear or ambiguous, please open a [GitHub issue](https://github.com/w3c/activitystreams/issues).
49+
50+
Clarifying questions may influence future versions of the document, but they aren't usually treated as errors that need to be updated as errata. A typical resolution for a clarifying question is to add a page to the [Activity Streams Primer](https://www.w3.org/wiki/Activity_Streams/Primer).
51+
52+
### Editorial changes
53+
54+
If you find a textual error in the specification(s), please open a [GitHub issue](https://github.com/w3c/activitystreams/issues). Examples of textual errors:
55+
56+
- Spelling mistakes
57+
- Grammar mistakes
58+
- Broken links
59+
- Incorrect references to other parts of the document
60+
- Semantic mistakes
61+
- Misleading or confusing language
62+
- Syntax errors in the JSON-LD of examples in the documents
63+
64+
The process for making editorial changes is as follows:
65+
66+
1. A GitHub issue is opened.
67+
2. Participants discuss the issue in the comments.
68+
3. The editor(s) open a pull request to add the correction to the ERRATA document.
69+
4. At a future meeting of the SocialCG, the editor(s) propose to accept the pull request. The SocialCG discusses the proposal and votes to accept or reject it.
70+
5. If it's accepted, the editor(s) merge the pull request and close the issue.
71+
6. The editor(s) update the editor's draft of the document to include the correction.
72+
7. Periodically, updated non-normative editorial changes are published as a new version of the document at the canonical URL.
73+
74+
### Backwards-compatible changes
75+
76+
Social networking changes every year, and AS2 is designed to be keep up with that pace of change. Backwards-compatible changes are those that don't break existing implementations of AS2.
77+
78+
The most important type of backwards-compatible normative change is adding types and properties to the vocabulary.
79+
80+
The primary way to create a backwards-compatible change is to create a new extension to Activity Streams 2.0. You can create a GitHub issue to discuss the extension idea, which can help with building consensus around the change.
81+
82+
Extensions are documented on the [Extensions registry](https://www.w3.org/wiki/Activity_Streams/Extensions). Before starting a new extension, it's a good idea to check the registry to see if someone else has already created a similar extension.
83+
84+
The [Fediverse Enhancement Proposals](https://codeberg.org/fediverse/fep) process is a lightweight collaboration process for creating and documenting Activity Streams 2.0 extensions (and other changes to the Fediverse). It's a good place to start if you're considering a backwards-compatible change.
85+
86+
There are many ideas for backwards-compatible changes to ActivityPub that have not yet been written up as a FEP or other document. These are marked [Needs FEP](https://github.com/w3c/activitystreams/issues?q=is%3Aissue+label%3A%22needs-fep%22) in the ActivityPub GitHub issue repository, and contributors are welcome to [submit a FEP](https://codeberg.org/fediverse/fep/src/branch/main#submitting-a-fep) on the topic. Note that issues may be closed without the FEP being created; that does not mean that the FEP is no longer needed.
87+
88+
Extensions that become popular can be integrated into the AS2 vocabulary document, making them practically part of the spec. The [Extensions Policy](https://swicg.github.io/extensions-policy/) describes how to propose extensions for inclusion in AS2.
89+
90+
Future versions of the AS2 specification(s) may include popular extensions as part of the core specs; see below.
91+
92+
### Non-backwards-compatible changes
93+
94+
Non-backwards-compatible changes to the specification require chartering a new working group at the W3C. They also require making changes in dozens of ActivityPub implementations and tens of thousands of running servers. This is a lot of work and is not done lightly.
95+
96+
Non-backwards-compatible changes include:
97+
98+
- Making optional behaviour mandatory
99+
- Loosening requirements for existing types or properties
100+
- Deprecating types or properties
101+
- Removing types or properties from the vocabulary
102+
103+
If you think a non-backwards-compatible change is necessary, please open a [GitHub issue](https://github.com/w3c/activitystreams/issues) to discuss it. It will be marked as a "next version" issue, so when a new working group is chartered, the issue can be considered for the new version of the specification(s).

0 commit comments

Comments
 (0)