Skip to content

Commit d5be5f4

Browse files
anerminaronaldtse
authored andcommitted
Encode cc-vpatch
1 parent a3afdbc commit d5be5f4

33 files changed

Lines changed: 2376 additions & 0 deletions

README.adoc

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
= CalConnect Standard: The iCalendar VPATCH Component
2+
3+
This work item belongs to CalConnect CALENDAR TC.
4+
5+
image:https://github.com/CalConnect/cc-vpatch/workflows/generate/badge.svg["Build Status", link="https://github.com/CalConnect/cc-vpatch/actions?workflow=generate"]
6+
7+
This document is available in its rendered forms here:
8+
9+
* https://calconnect.github.io/cc-vpatch/[CalConnect: The iCalendar VPATCH Component]
10+
11+
== General
12+
13+
This document specifies The iCalendar VPATCH Component.
14+
15+
The document is published as the following:
16+
17+
* CalConnect CC 58020
18+
* IETF draft-calconnect-vpatch
19+
20+
21+
== Fetching the document
22+
23+
[source,sh]
24+
----
25+
git clone https://github.com/CalConnect/cc-vpatch/
26+
----
27+
28+
29+
== Installing build tools
30+
31+
See https://www.metanorma.com/author/topics/install/
32+
33+
34+
== Running via Docker or locally
35+
36+
If you have installed the build tools locally, and wish to run the
37+
locally-installed compilation tools, there is nothing further to set.
38+
39+
If you don't want to deal with local dependencies, use the docker:
40+
41+
[source,sh]
42+
----
43+
docker run -v "$(pwd)":/metanorma -w /metanorma -it metanorma/mn metanorma site generate --agree-to-terms
44+
----
45+
46+
47+
== Building the document
48+
49+
[source,sh]
50+
----
51+
metanorma site generate --agree-to-terms
52+
----
53+
54+
The generated documents are accessible under `_site/`.
55+
56+
57+
== Iterating the document
58+
59+
[source,sh]
60+
----
61+
metanorma site generate --agree-to-terms
62+
open _site/index.html
63+
----
64+
65+
66+
== IETF: Checking against idnits
67+
68+
https://tools.ietf.org/tools/idnits/[idnits] is the RFC checking tool prior to
69+
submissions.
70+
71+
[source,sh]
72+
----
73+
idnits {filename}.nits
74+
----
75+
76+
77+
== License
78+
79+
Copyright its respective authors and CalConnect.

metanorma.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
metanorma:
3+
source:
4+
files:
5+
- sources/cc-58020.adoc
6+
- sources/draft-calconnect-vpatch.adoc
7+
8+
collection:
9+
name: iCalendar VPATCH Component
10+
organization: CalConnect

sources/cc-58020.adoc

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
= The iCalendar VPATCH Component
2+
:docnumber: 58020
3+
:copyright-year: 2016
4+
:language: en
5+
:doctype: standard
6+
:edition: 1
7+
:status: working-draft
8+
:revdate: 2016-10-28
9+
:published-date: 2016-10-28
10+
:technical-committee: VCARD
11+
:fullname: Cyrus Daboo
12+
:surname: Daboo
13+
:givenname: Cyrus
14+
:affiliation: Apple Inc.
15+
:fullname_2: Kenneth Murchison
16+
:surname_2: Murchison
17+
:givenname_2: Kenneth
18+
:affiliation_2: Carnegie Mellon University
19+
:mn-document-class: cc
20+
:mn-output-extensions: xml,html,pdf,rxl
21+
:local-cache-only:
22+
:data-uri-image:
23+
24+
include::sections/00-abstract.adoc[]
25+
26+
include::sections/01-intro.adoc[]
27+
28+
include::sections/01-scope.adoc[]
29+
30+
include::sections/02-normative-references.adoc[]
31+
32+
include::sections/03-terms.adoc[]
33+
34+
include::sections/03-overview.adoc[]
35+
36+
include::sections/04-patch.adoc[]
37+
38+
include::sections/05-icalendar-path.adoc[]
39+
40+
include::sections/06-add-update-comp.adoc[]
41+
42+
include::sections/07-add-update-prop.adoc[]
43+
44+
include::sections/08-delete.adoc[]
45+
46+
include::sections/09-add-update-propp.adoc[]
47+
48+
include::sections/10-icalendar-ext.adoc[]
49+
50+
include::sections/11-additional.adoc[]
51+
52+
include::sections/12-itip.adoc[]
53+
54+
include::sections/13-caldav.adoc[]
55+
56+
include::sections/14-security.adoc[]
57+
58+
include::sections/15-privacy.adoc[]
59+
60+
include::sections/16-iana.adoc[]
61+
62+
include::sections/97-examples.adoc[]
63+
64+
include::sections/17-remove-value.adoc[]
65+
66+
include::sections/98-references.adoc[]
67+
68+
include::sections/99-acknowledgements.adoc[]
69+
70+
include::sections/ac-vpatch-examples.adoc[]
71+
72+
include::sections/ad-remove-value.adoc[]
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
= The iCalendar VPATCH Component
2+
:doctype: internet-draft
3+
:name: draft-daboo-icalendar-vpatch
4+
:status: standard
5+
:ipr: trust200902
6+
:area: Applications
7+
:updates: IETF RFC 5545, IETF RFC 6321
8+
:intended-series: full-standard
9+
:workgroup: Network Working Group
10+
:published-date: 2016-10-28
11+
:fullname: Cyrus Daboo
12+
:lastname: Daboo
13+
:forename_initials: C.
14+
:affiliation: Apple Inc.
15+
:address: 1 Infinite Loop + \
16+
Cupertino, CA 95014 + \
17+
United States of America
18+
:email: cyrus@daboo.name
19+
:contributor-uri: http://www.apple.com/
20+
:fullname_2: Kenneth Murchison
21+
:lastname_2: Murchison
22+
:forename_initials_2: K.
23+
:affiliation_2: Carnegie Mellon University
24+
:address_2: 5000 Forbes Avenue + \
25+
Pittsburgh, PA 15213 + \
26+
USA
27+
:email_2: murch@andrew.cmu.edu
28+
:contributor-uri_2: https://www.cmu.edu
29+
:mn-document-class: ietf
30+
:mn-output-extensions: xml,rfc,txt,html,rxl
31+
:local-cache-only:
32+
:data-uri-image:
33+
34+
include::sections-ietf/00-abstract.adoc[]
35+
36+
include::sections/01-intro.adoc[]
37+
38+
include::sections-ietf/02-conventions.adoc[]
39+
40+
include::sections/03-overview.adoc[]
41+
42+
include::sections/04-patch.adoc[]
43+
44+
include::sections/05-icalendar-path.adoc[]
45+
46+
include::sections/06-add-update-comp.adoc[]
47+
48+
include::sections/07-add-update-prop.adoc[]
49+
50+
include::sections/08-delete.adoc[]
51+
52+
include::sections/09-add-update-propp.adoc[]
53+
54+
include::sections/10-icalendar-ext.adoc[]
55+
56+
include::sections/11-additional.adoc[]
57+
58+
include::sections/12-itip.adoc[]
59+
60+
include::sections/13-caldav.adoc[]
61+
62+
include::sections/14-security.adoc[]
63+
64+
include::sections/15-privacy.adoc[]
65+
66+
include::sections/16-iana.adoc[]
67+
68+
include::sections/97-examples.adoc[]
69+
70+
include::sections/17-remove-value.adoc[]
71+
72+
include::sections-ietf/98-references.adoc[]
73+
74+
include::sections/99-acknowledgements.adoc[]
75+
76+
include::sections-ietf/aa-change-history.adoc[]
77+
78+
include::sections/ac-vpatch-examples.adoc[]
79+
80+
include::sections/ad-remove-value.adoc[]
81+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[abstract]
2+
== Abstract
3+
4+
This document defines a new iCalendar <<RFC5545>> component that allows small "patches" to be applied to
5+
large iCalendar data objects, to allow for efficient data updates. It also describes how this
6+
new component can be used with the CalDAV calendar data access protocol <<RFC4791>>.
7+
8+
[NOTE,title=Open Issues]
9+
====
10+
* Do we need/want to handle individual values in multi-valued properties/parameters?
11+
* What media type do we advertise in `Accept-Patch` header? Just `text/calendar`? Currently using `text/calendar; component=VPATCH; optinfo=PATCH-VERSION:1`
12+
====
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[[conventions-used-in-this-document]]
2+
== Conventions Used in This Document
3+
4+
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
5+
"RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in
6+
<<RFC2119>>.
7+
8+
The notation used in this memo is the ABNF notation of <<RFC5234>> as used by iCalendar <<RFC5545>>. Any
9+
syntax elements shown below that are not explicitly defined in this specification come from
10+
iCalendar <<RFC5545>> and Calendar Availability <<RFC7953>>.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
[bibliography]
2+
== References
3+
4+
[bibliography]
5+
=== Normative References
6+
7+
* [[[RFC2119,IETF RFC 2119]]]
8+
9+
* [[[RFC5545,IETF RFC 5545]]]
10+
11+
* [[[RFC7953,IETF RFC 7953]]]
12+
13+
[bibliography]
14+
=== Informative References
15+
16+
* [[[CALCONNECT,CALCONNECT]]], The Calendaring and Scheduling Consortium, "CalConnect", May 2017, <https://www.calconnect.org>.
17+
18+
* [[[RFC4791,IETF RFC 4791]]]
19+
20+
* [[[RFC5234,IETF RFC 5234]]]
21+
22+
* [[[RFC5546,IETF RFC 5546]]]
23+
24+
* [[[RFC5789,IETF RFC 5789]]]
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[appendix]
2+
== metanorma-extension
3+
4+
=== document history
5+
6+
[EDITOR]
7+
====
8+
To be removed by RFC Editor before publication
9+
====
10+
11+
[source,yaml]
12+
----
13+
- date:
14+
- type: updated
15+
edition: draft-daboo-icalendar-vpatch-00
16+
amend:
17+
- description: |
18+
Allow PATCH-TARGET to use comp-path relative paths.
19+
20+
Fix uid-match to use escaped values.
21+
----

sources/sections/00-abstract.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[abstract]
2+
== Abstract
3+
4+
This document defines a new iCalendar <<RFC5545>> component that allows small "patches" to be applied to
5+
large iCalendar data objects, to allow for efficient data updates. It also describes how this
6+
new component can be used with the CalDAV calendar data access protocol <<RFC4791>>.

sources/sections/01-intro.adoc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[[introduction]]
2+
== Introduction
3+
4+
The iCalendar <<RFC5545>> data format is in widespread use to represent calendar data. iCalendar data can
5+
grow large (e.g., a family calendar containing events over a period of several years). Updating
6+
large resources over the network currently requires the entire data to be sent - even if the
7+
change itself is minor.
8+
9+
This specification defines a new iCalendar component that can be used to "patch" (incrementally
10+
update) iCalendar data in an efficient manner. When combined with the HTTP PATCH method <<RFC5789>>, it can
11+
be used to update calendar object resources on a CalDAV <<RFC4791>> server, or any resource on an HTTP
12+
server that contains iCalendar data.

0 commit comments

Comments
 (0)