Skip to content

Commit 9d01d26

Browse files
committed
add concurrency control
1 parent 9c609a4 commit 9d01d26

30 files changed

+1056
-990
lines changed
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
name: Add pull requests and issues to projects
2-
3-
on:
4-
pull_request_target:
5-
types:
6-
- opened
7-
issues:
8-
types:
9-
- opened
10-
11-
jobs:
12-
add-to-project:
13-
name: Add PR and issues to project
14-
runs-on: ubuntu-latest
15-
steps:
16-
- uses: actions/[email protected]
17-
with:
18-
project-url: https://github.com/orgs/w3c/projects/153
19-
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
1+
name: Add pull requests and issues to projects
2+
3+
on:
4+
pull_request_target:
5+
types:
6+
- opened
7+
issues:
8+
types:
9+
- opened
10+
11+
jobs:
12+
add-to-project:
13+
name: Add PR and issues to project
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/[email protected]
17+
with:
18+
project-url: https://github.com/orgs/w3c/projects/153
19+
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}

.pr-preview.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{
2-
"src_file": "spec/index.html",
3-
"type": "respec"
4-
}
1+
{
2+
"src_file": "spec/index.html",
3+
"type": "respec"
4+
}

CODE_OF_CONDUCT.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
# Code of Conduct
2-
3-
All documentation, code and communication under this repository are covered by the [W3C Code of Conduct](https://www.w3.org/policies/code-of-conduct/).
1+
# Code of Conduct
2+
3+
All documentation, code and communication under this repository are covered by the [W3C Code of Conduct](https://www.w3.org/policies/code-of-conduct/).

CONTRIBUTING.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
# Linked Web Storage Working Group
2-
3-
Contributions to this repository are intended to become part of Recommendation-track documents governed by the
4-
[W3C Patent Policy](https://www.w3.org/Consortium/Patent-Policy/) and
5-
[Document License](https://www.w3.org/copyright/document-license/). To make substantive contributions to specifications, you must either participate
6-
in the relevant W3C Working Group or make a non-member patent licensing commitment.
7-
8-
If you are not the sole contributor to a contribution (pull request), please identify all
9-
contributors in the pull request comment.
10-
11-
To add a contributor (other than yourself, that's automatic), mark them one per line as follows:
12-
13-
```
14-
+@github_username
15-
```
16-
17-
If you added a contributor by mistake, you can remove them in a comment with:
18-
19-
```
20-
-@github_username
21-
```
22-
23-
If you are making a pull request on behalf of someone else but you had no part in designing the
24-
feature, you can remove yourself with the above syntax.
1+
# Linked Web Storage Working Group
2+
3+
Contributions to this repository are intended to become part of Recommendation-track documents governed by the
4+
[W3C Patent Policy](https://www.w3.org/Consortium/Patent-Policy/) and
5+
[Document License](https://www.w3.org/copyright/document-license/). To make substantive contributions to specifications, you must either participate
6+
in the relevant W3C Working Group or make a non-member patent licensing commitment.
7+
8+
If you are not the sole contributor to a contribution (pull request), please identify all
9+
contributors in the pull request comment.
10+
11+
To add a contributor (other than yourself, that's automatic), mark them one per line as follows:
12+
13+
```
14+
+@github_username
15+
```
16+
17+
If you added a contributor by mistake, you can remove them in a comment with:
18+
19+
```
20+
-@github_username
21+
```
22+
23+
If you are making a pull request on behalf of someone else but you had no part in designing the
24+
feature, you can remove yourself with the above syntax.

LICENSE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
All documents in this Repository are licensed by contributors
2-
under the
3-
[W3C Document License](https://www.w3.org/copyright/document-license/).
4-
1+
All documents in this Repository are licensed by contributors
2+
under the
3+
[W3C Document License](https://www.w3.org/copyright/document-license/).
4+

README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
# Specification 'lws-protocol'
2-
3-
This is the repository for lws-protocol. You're welcome to contribute! Let's make the Web rock our socks
4-
off!
5-
6-
## Contribution Guidelines:
7-
8-
The following etiquette is followed for managing PRs submitted to this repository. In the below table we refer to the official [W3C Correction Classes](https://www.w3.org/policies/process/#correction-classes).
9-
10-
| Class | No. Editor Approval | Time PR must be open | Requires WG Call Discussion |
11-
| ----- | ------------------- | -------------------- | --------------------------- |
12-
| 1 | 1 | 0 buisness days | No |
13-
| 2 | 2 | 3 buisness days | No |
14-
| 3 | 2 | 5 buisness days | Yes - formal vote not required |
15-
| 4 | 2 | 5 buisness days | Yes - formal vote required[^1] |
16-
17-
[^1]: Vote will be a resolution of the group made during the meeting. The vote will be announced in the agenda.
1+
# Specification 'lws-protocol'
2+
3+
This is the repository for lws-protocol. You're welcome to contribute! Let's make the Web rock our socks
4+
off!
5+
6+
## Contribution Guidelines:
7+
8+
The following etiquette is followed for managing PRs submitted to this repository. In the below table we refer to the official [W3C Correction Classes](https://www.w3.org/policies/process/#correction-classes).
9+
10+
| Class | No. Editor Approval | Time PR must be open | Requires WG Call Discussion |
11+
| ----- | ------------------- | -------------------- | --------------------------- |
12+
| 1 | 1 | 0 buisness days | No |
13+
| 2 | 2 | 3 buisness days | No |
14+
| 3 | 2 | 5 buisness days | Yes - formal vote not required |
15+
| 4 | 2 | 5 buisness days | Yes - formal vote required[^1] |
16+
17+
[^1]: Vote will be a resolution of the group made during the meeting. The vote will be announced in the agenda.

spec/Operations/create-resource.md

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
1-
The *create resource* operation requests the creation of a new resource on the server. The resource can be a non-container (data) resource or a container (collection) resource. The operation can either let the server assign a new identifier within a target container (like creating a new file in a folder), or use a client-specified identifier (creating or overwriting at a specific path).
2-
3-
**Inputs:**
4-
5-
* **Target location:** Either a *target container identifier* (when the client wants the server to assign a name within that container) **or** a *full target resource identifier* (when the client specifies the exact desired identifier for the new resource).
6-
7-
* **Resource content:** The content to store in the resource (binary or text). This is optional to allow creation of an empty container or an empty resource.
8-
9-
* **Suggested name:** An optional hint for naming (when the server will assign the identifier). For example, the client may propose a filename or resource name, which the server may use or adjust.
10-
11-
* **Media type:** The MIME media type or format of the content (e.g., `text/plain`, `application/json`). This helps the server understand how to store and serve the content. It may be mandatory for some protocols when content is provided (and may be omitted if creating an empty container with no content).
12-
13-
**Behavior:**
14-
15-
* If a *target container* is provided, the server will create a new resource as a member of that container. The server determines the new resource’s identifier (often incorporating the suggested name, if provided and allowed). The new resource is then added to the specified container’s member list.
16-
17-
* If a *full target identifier* (including the desired name/path) is provided, the server will attempt to create a resource at that exact identifier. If a full target identifier is provided and a resource already exists at that identifier, the server **MUST** fail with a Conflict response, unless the client explicitly indicates that overwriting is acceptable.
18-
19-
* The server **MAY** enforce additional constraints on creation. For example, it may have size limits, quota checks, or restrictions on allowed media types or file extensions. If any such constraint is violated (e.g., the content is too large or an unsupported type), the server will reject the operation with an appropriate error.
20-
21-
* Upon successful creation, the new resource is persistently stored and linked into the logical container hierarchy. The server will assign an identifier, if needed, and make the resource available for future operations. The identifier (e.g., a URI or path) of the newly created resource **MUST** be returned to the client (so the client knows how to refer to it). The creation is atomic — if any step fails, no new resource is created (or any partial resource is cleaned up).
22-
23-
**Possible Responses:** *(on the abstract operation level, not tied to a specific protocol)*
24-
25-
* **Created:** The operation succeeded in creating a new resource. The response includes the new resource’s identifier and possibly a minimal representation or metadata (e.g., an ETag or version number).
26-
27-
* **Bad Request:** The request was malformed or violated constraints (e.g., missing required inputs, invalid identifier, disallowed media type, or size limits exceeded). The resource was not created.
28-
29-
* **Not Permitted:** The client is not authorized to create a resource in the target location.
30-
31-
* **Conflict:** A resource at the target identifier already exists and the server does not allow overwrite (or a naming conflict occurred). No new resource was created, and any existing resource remains unchanged.
32-
33-
* **Not Found:** (If applicable) The specified target container does not exist or cannot be found. This could also be treated as a type of Bad Request or Not Permitted, depending on the cause (e.g., if the container is missing or the client lacks access permission).
34-
1+
The *create resource* operation requests the creation of a new resource on the server. The resource can be a non-container (data) resource or a container (collection) resource. The operation can either let the server assign a new identifier within a target container (like creating a new file in a folder), or use a client-specified identifier (creating or overwriting at a specific path).
2+
3+
**Inputs:**
4+
5+
* **Target location:** Either a *target container identifier* (when the client wants the server to assign a name within that container) **or** a *full target resource identifier* (when the client specifies the exact desired identifier for the new resource).
6+
7+
* **Resource content:** The content to store in the resource (binary or text). This is optional to allow creation of an empty container or an empty resource.
8+
9+
* **Suggested name:** An optional hint for naming (when the server will assign the identifier). For example, the client may propose a filename or resource name, which the server may use or adjust.
10+
11+
* **Media type:** The MIME media type or format of the content (e.g., `text/plain`, `application/json`). This helps the server understand how to store and serve the content. It may be mandatory for some protocols when content is provided (and may be omitted if creating an empty container with no content).
12+
13+
**Behavior:**
14+
15+
* If a *target container* is provided, the server will create a new resource as a member of that container. The server determines the new resource’s identifier (often incorporating the suggested name, if provided and allowed). The new resource is then added to the specified container’s member list.
16+
17+
* If a *full target identifier* (including the desired name/path) is provided, the server will attempt to create a resource at that exact identifier. If a full target identifier is provided and a resource already exists at that identifier, the server **MUST** fail with a Conflict response, unless the client explicitly indicates that overwriting is acceptable.
18+
19+
* The server **MAY** enforce additional constraints on creation. For example, it may have size limits, quota checks, or restrictions on allowed media types or file extensions. If any such constraint is violated (e.g., the content is too large or an unsupported type), the server will reject the operation with an appropriate error.
20+
21+
* Upon successful creation, the new resource is persistently stored and linked into the logical container hierarchy. The server will assign an identifier, if needed, and make the resource available for future operations. The identifier (e.g., a URI or path) of the newly created resource **MUST** be returned to the client (so the client knows how to refer to it). The creation is atomic — if any step fails, no new resource is created (or any partial resource is cleaned up).
22+
23+
**Possible Responses:** *(on the abstract operation level, not tied to a specific protocol)*
24+
25+
* **Created:** The operation succeeded in creating a new resource. The response includes the new resource’s identifier and possibly a minimal representation or metadata (e.g., an ETag or version number).
26+
27+
* **Bad Request:** The request was malformed or violated constraints (e.g., missing required inputs, invalid identifier, disallowed media type, or size limits exceeded). The resource was not created.
28+
29+
* **Not Permitted:** The client is not authorized to create a resource in the target location.
30+
31+
* **Conflict:** A resource at the target identifier already exists and the server does not allow overwrite (or a naming conflict occurred). No new resource was created, and any existing resource remains unchanged.
32+
33+
* **Not Found:** (If applicable) The specified target container does not exist or cannot be found. This could also be treated as a type of Bad Request or Not Permitted, depending on the cause (e.g., if the container is missing or the client lacks access permission).
34+
3535
* **Unknown Error:** An internal server error occurred, or some unexpected condition prevented the creation. This is a catch-all for failures not covered by more specific errors. The response would indicate that the server failed the operation (and ideally include an error message or code).

0 commit comments

Comments
 (0)