From 337c8ab030ac0ebb1ec6316324c25a7b46aad481 Mon Sep 17 00:00:00 2001 From: Ronald Tse Date: Tue, 10 Dec 2024 01:03:31 +0100 Subject: [PATCH] chore: update structure --- .bundle/config | 3 - .github/workflows/docker.yml | 64 --------- .github/workflows/generate.yml | 46 +++++++ .gitignore | 14 +- Makefile | 196 --------------------------- README.adoc | 92 +++++++++---- metanorma.yml | 10 +- sources/cc-51006.adoc | 42 ++++-- sources/draft-ietf-calext-vpoll.adoc | 17 ++- sources/sections/02-normrefs.adoc | 57 +++----- 10 files changed, 181 insertions(+), 360 deletions(-) delete mode 100644 .bundle/config delete mode 100644 .github/workflows/docker.yml create mode 100644 .github/workflows/generate.yml delete mode 100644 Makefile diff --git a/.bundle/config b/.bundle/config deleted file mode 100644 index b572b09..0000000 --- a/.bundle/config +++ /dev/null @@ -1,3 +0,0 @@ ---- -BUNDLE_RETRY: "3" -BUNDLE_JOBS: "4" diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index ef285a5..0000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,64 +0,0 @@ -name: docker - -on: - push: - branches: [ master ] - pull_request: - paths-ignore: - repository_dispatch: - types: [ metanorma/metanorma-docker ] - -jobs: - test-docker: - runs-on: ubuntu-latest - container: docker://metanorma/mn - steps: - - name: Checkout code - uses: actions/checkout@v2 - - name: Setup fonts - run: | - metanorma setup --agree-to-terms - - uses: actions/setup-go@v2-beta - with: - go-version: '^1.13.1' - - name: Install yq - run: | - GO111MODULE=on go get github.com/mikefarah/yq/v3 - ln -s $GOPATH/bin/yq /usr/local/bin/yq - - name: Instal gems from local Gemfile - run: | - curl -L --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/gemfile-to-bundle-add.sh | bash - - name: Build document in the Metanorma container - env: - LC_ALL: C.UTF-8 - LANG: C.UTF-8 - LANGUAGE: C.UTF-8 - run: | - make clean all publish - - uses: actions/upload-artifact@master - with: - name: published - path: published - - deploy-gh-pages: - if: github.ref == 'refs/heads/master' - runs-on: ubuntu-latest - needs: test-docker - steps: - - uses: actions/checkout@master - - uses: actions/download-artifact@v1 - with: - name: published - - name: Deploy to GH Pages - uses: peaceiris/actions-gh-pages@v3 - with: - deploy_key: ${{ secrets.GH_DEPLOY_KEY }} - publish_dir: ./published - force_orphan: true - user_name: ${{ github.actor }} - user_email: ${{ format('{0}@users.noreply.github.com', github.actor) }} - commit_message: "${{ format('Deploy to GitHub Pages: {0}', github.sha) }}" - - uses: kolpav/purge-artifacts-action@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - expire-in: 0 diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml new file mode 100644 index 0000000..041bb15 --- /dev/null +++ b/.github/workflows/generate.yml @@ -0,0 +1,46 @@ +name: generate + +on: + push: + branches: [ main ] + pull_request: + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + container: + image: metanorma/metanorma:latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Cache Metanorma assets + uses: actions-mn/cache@v1 + + - name: Metanorma generate site + uses: actions-mn/build-and-publish@main + with: + token: ${{ secrets.GITHUB_TOKEN }} + agree-to-terms: true + + deploy: + if: ${{ github.ref == 'refs/heads/main' }} + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/.gitignore b/.gitignore index a72574f..5ed969f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ .DS_Store -.swp -.tmp.xml - -# Deploy key -deploy_key -/.idea +*.abort +*.err +relaton/ +.vscode/ +.ruby-lsp/ +Gemfile.lock +iev/ +_site/ diff --git a/Makefile b/Makefile deleted file mode 100644 index 43cb74c..0000000 --- a/Makefile +++ /dev/null @@ -1,196 +0,0 @@ -# Auto-generated by Cimas: Do not edit it manually! -# See https://github.com/metanorma/cimas -#!make -SHELL := /bin/bash -# Ensure the xml2rfc cache directory exists locally -IGNORE := $(shell mkdir -p $(HOME)/.cache/xml2rfc) - -SRC := $(shell yq r metanorma.yml metanorma.source.files | cut -c 3-) - -ifeq ($(SRC),null) -SRC := -endif -ifeq ($(SRC),ll) -SRC := -endif - -ifeq ($(SRC),) -BUILT := $(shell yq r metanorma.yml metanorma.source.built_targets | cut -d ':' -f 1 | tr -s '\n' ' ') - -ifeq ($(BUILT),null) -SRC := -endif -ifeq ($(BUILT),ll) -SRC := -endif - -ifeq ($(BUILT),) -SRC := $(filter-out README.adoc, $(wildcard sources/*.adoc)) -else -XML := $(patsubst sources/%,documents/%,$(BUILT)) -endif -endif - -FORMATS := $(shell yq r metanorma.yml metanorma.formats | tr -d '[:space:]' | tr -s '-' ' ') -ifeq ($(FORMATS),) -FORMAT_MARKER := mn-output- -FORMATS := $(shell grep "$(FORMAT_MARKER)" $(SRC) | cut -f 2 -d " " | tr "," "\\n" | sort | uniq | tr "\\n" " ") -endif - -XML ?= $(patsubst sources/%,documents/%,$(patsubst %.adoc,%.xml,$(SRC))) -HTML := $(patsubst %.xml,%.html,$(XML)) - -ifdef METANORMA_DOCKER - PREFIX_CMD := echo "Running via docker..."; docker run -v "$$(pwd)":/metanorma/ $(METANORMA_DOCKER) -else - ifdef SKIP_BUNDLE - PREFIX_CMD := echo "Running locally..."; - else - PREFIX_CMD := echo "Running locally via bundle ..."; bundle exec - endif -endif - -_OUT_FILES := $(foreach FORMAT,$(FORMATS),$(shell echo $(FORMAT) | tr '[:lower:]' '[:upper:]')) -OUT_FILES := $(foreach F,$(_OUT_FILES),$($F)) - -define print_vars - $(info "src $(SRC)") - $(info "xml $(XML)") - $(info "formats $(FORMATS)") -endef - -all: documents.html - $(call print_vars) - -documents: - mkdir -p $@ - -documents/%.html: documents/%.xml | documents - ${PREFIX_CMD} metanorma $< - -documents/%.xml: sources/%.xml | documents - mkdir -p $(dir $@) - mv $< $@ - -# Build canonical XML output -# If XML file is provided, copy it over -# Otherwise, build the xml using adoc -sources/%.xml: | bundle - BUILT_TARGET="$(shell yq r metanorma.yml metanorma.source.built_targets[$@])"; \ - if [ "$$BUILT_TARGET" = "" ] || [ "$$BUILT_TARGET" = "null" ]; then \ - BUILT_TARGET=$@; \ - $(PREFIX_CMD) metanorma -x xml "$${BUILT_TARGET//xml/adoc}"; \ - else \ - if [ -f "$$BUILT_TARGET" ] && [ "$${BUILT_TARGET##*.}" == "xml" ]; then \ - cp "$$BUILT_TARGET" $@; \ - else \ - $(PREFIX_CMD) metanorma -x xml $$BUILT_TARGET; \ - cp "$${BUILT_TARGET//adoc/xml}" $@; \ - fi \ - fi - -documents.rxl: $(XML) $(HTML) - ${PREFIX_CMD} relaton concatenate \ - -t "$(shell yq r metanorma.yml relaton.collection.name)" \ - -g "$(shell yq r metanorma.yml relaton.collection.organization)" \ - documents $@ - -documents.html: documents.rxl - $(PREFIX_CMD) relaton xml2html documents.rxl - -%.adoc: - -define FORMAT_TASKS -OUT_FILES-$(FORMAT) := $($(shell echo $(FORMAT) | tr '[:lower:]' '[:upper:]')) - -open-$(FORMAT): - open $$(OUT_FILES-$(FORMAT)) - -clean-$(FORMAT): - rm -f $$(OUT_FILES-$(FORMAT)) - -$(FORMAT): clean-$(FORMAT) $$(OUT_FILES-$(FORMAT)) - -.PHONY: clean-$(FORMAT) - -endef - -$(foreach FORMAT,$(FORMATS),$(eval $(FORMAT_TASKS))) - -open: open-html - -clean: - rm -rf documents documents.{html,rxl} published *_images $(OUT_FILES) - -bundle: -ifndef METANORMA_DOCKER -ifndef SKIP_BUNDLE - bundle install --jobs 4 --retry 3 -endif -endif - $(call print_vars) - -.PHONY: bundle all open clean - -# -# Watch-related jobs -# - -.PHONY: watch serve watch-serve - -NODE_BINS := onchange live-serve run-p -NODE_BIN_DIR := node_modules/.bin -NODE_PACKAGE_PATHS := $(foreach PACKAGE_NAME,$(NODE_BINS),$(NODE_BIN_DIR)/$(PACKAGE_NAME)) - -$(NODE_PACKAGE_PATHS): package.json - npm i - -watch: $(NODE_BIN_DIR)/onchange - make all - $< $(ALL_SRC) -- make all - -define WATCH_TASKS -watch-$(FORMAT): $(NODE_BIN_DIR)/onchange - make $(FORMAT) - $$< $$(SRC_$(FORMAT)) -- make $(FORMAT) - -.PHONY: watch-$(FORMAT) -endef - -$(foreach FORMAT,$(FORMATS),$(eval $(WATCH_TASKS))) - -serve: $(NODE_BIN_DIR)/live-server revealjs-css reveal.js - export PORT=$${PORT:-8123} ; \ - port=$${PORT} ; \ - for html in $(HTML); do \ - $< --entry-file=$$html --port=$${port} --ignore="*.html,*.xml,Makefile,Gemfile.*,package.*.json" --wait=1000 & \ - port=$$(( port++ )) ;\ - done - -watch-serve: $(NODE_BIN_DIR)/run-p - $< watch serve - -# -# Deploy jobs -# - -publish: published - -published: documents.html - mkdir -p $@ && \ - cp -a documents $@/ && \ - cp $< $@/index.html; - -# -# PDF -# - -PDFTEXT := $(patsubst %.pdf,%.txt,$(subst /pdfs,/text,$(wildcard reference-docs/pdfs/*.pdf))) - -pdf2text: $(PDFTEXT) - -reference-docs/text: - mkdir -p $@ - -reference-docs/text/%.txt: reference-docs/pdfs/%.pdf | reference-docs/text - ps2ascii "$<" "$@" diff --git a/README.adoc b/README.adoc index adcda9e..895cede 100644 --- a/README.adoc +++ b/README.adoc @@ -1,25 +1,58 @@ -:repo-name: csd-vpoll - = CalConnect Standard: Calendaring and scheduling -- Consensus scheduling -- iCalendar VPOLL component This work item belongs to TC FREEBUSY. -image:https://travis-ci.com/CalConnect/csd-vpoll.svg?branch=master["Build Status", link="https://travis-ci.com/calconnect/csd-vpoll"] +image:https://github.com/CalConnect/cc-vpoll/actions/workflows/generate.yml/badge.svg["Build Status", link="https://github.com/CalConnect/cc-vpoll/actions/workflows/generate.yml"] This document is available in its rendered forms here: -* https://calconnect.github.io/csd-vpoll/[CalConnect+IETF: Calendaring and scheduling -- Consensus scheduling -- iCalendar VPOLL component (HTML)] +* https://calconnect.github.io/cc-vpoll/[CalConnect+IETF: Calendaring and scheduling -- Consensus scheduling -- iCalendar VPOLL component] + + +== General + +This document specifies an integrity checking mechanism and related +properties for: + +* vObject (I-D.calconnect-vobject-vformat) +* vCard version 4 (vCard v4) (RFC 6350); and +* iCalendar (Internet Calendaring and Scheduling Core Object + Specification) (RFC 5545) + +This work is produced by the CalConnect TC-VCARD and TC-CALENDAR committees. + +The document is published as the following: + +* CalConnect CC 51006 +* IETF draft-ietf-calext-vpoll + + +== Structure + +`script.rb`:: + + +`sources/`:: +source of documents and models + +`sources/cc-51006.adoc`:: +CalConnect CC 51006 standard. + +`sources/draft-ietf-calext-vpoll.adoc`:: +IETF draft-ietf-calext-vpoll, dual-published from CC 51006. + +`_site/`:: +(automatically generated using `metanorma site generate`) published document. + == Fetching the document -[source,sh] ----- -git clone https://github.com/CalConnect/csd-vpoll/ ----- +Click on "Code > Local" to clone this repository. + -== Installing Build Tools +== Installing build tools -See https://www.metanorma.com/author/topics/install/ +See https://www.metanorma.org/install/ == Running via Docker or locally @@ -27,38 +60,45 @@ See https://www.metanorma.com/author/topics/install/ If you have installed the build tools locally, and wish to run the locally-installed compilation tools, there is nothing further to set. -If you don't want to deal with local dependencies, use the docker -version by: +If you don't want to deal with local dependencies, use the docker: [source,sh] ---- -export METANORMA_DOCKER=1 +docker run -v "$(pwd)":/metanorma -w /metanorma -it metanorma/mn metanorma site generate --agree-to-terms ---- -The `Makefile` will automatically choose the proper command to -execute. - -== Building The Document +== Building the document [source,sh] ---- -make clean all +metanorma site generate --agree-to-terms ---- -The following outputs will be built: - -* CSD XML (https://github.com/calconnect/metanorma-model-csd) (`[filename].xml`) -* HTML (`[filename].html`) -* PDF (`[filename].pdf`) -* Word DOC (`[filename].doc`) +The generated documents are accessible under `_site/`. == Iterating the document [source,sh] ---- -make html -open csd-*.html +metanorma site generate --agree-to-terms +open _site/index.html +---- + + +== IETF: Checking against idnits + +https://tools.ietf.org/tools/idnits/[idnits] is the RFC checking tool prior to +submissions. + +[source,sh] +---- +idnits draft-ietf-calext-subscription-upgrade.nits ---- + +== License + +Copyright its respective authors and CalConnect. + diff --git a/metanorma.yml b/metanorma.yml index 4dcee04..f0c6728 100644 --- a/metanorma.yml +++ b/metanorma.yml @@ -1,8 +1,10 @@ --- metanorma: - deploy: - email: "travis-ci@metanorma.org" -relaton: + source: + files: + - sources/cc-51006.adoc + - sources/draft-ietf-calext-vpoll.adoc + collection: - name: Calendaring and scheduling -- Consensus scheduling -- iCalendar VPOLL component + name: Consensus scheduling -- iCalendar VPOLL component organization: CalConnect diff --git a/sources/cc-51006.adoc b/sources/cc-51006.adoc index 9c1558f..c972708 100644 --- a/sources/cc-51006.adoc +++ b/sources/cc-51006.adoc @@ -1,13 +1,13 @@ = CalConnect Standard: Calendaring and scheduling -- Consensus scheduling -- iCalendar VPOLL component :title: Calendaring and scheduling -- Consensus scheduling -- iCalendar VPOLL component :docnumber: 51006 -:copyright-year: 2018 +:copyright-year: 2024 :language: en :doctype: standard :edition: 1 :status: committee-draft -:revdate: 2018-11-19 -:published-date: 2018-11-19 +:revdate: 2024-04-22 +:published-date: 2024-04-22 :script: Latn :technical-committee: FREEBUSY :fullname: Eric York @@ -21,8 +21,7 @@ :givenname_3: Michael :xrefstyle: short :imagesdir: images -:docfile: cc-51006.adoc -:mn-document-class: csd +:mn-document-class: cc :mn-output-extensions: xml,html,pdf,rxl :local-cache-only: :data-uri-image: @@ -57,26 +56,41 @@ Email: douglm@rpi.edu URI:: http://www.rpi.edu/ //// - - include::sections/00-abstract.adoc[] + include::sections/00-foreword.adoc[] + include::sections/00-intro.adoc[] include::sections/01-scope.adoc[] + include::sections/02-normrefs.adoc[] + include::sections/03-terms.adoc[] + include::sections/04-consensus.adoc[] -include::sections/05-icalendar-extensions.adoc[] -include::sections/06-poll-modes.adoc[] -include::sections/07-itip-extensions.adoc[] -include::sections/08-caldav-extensions.adoc[] -include::sections/09-security.adoc[] -include::sections/10-iana.adoc[] + +include::sections/30-icalendar-extensions.adoc[] + +include::sections/40-poll-modes.adoc[] + +include::sections/44-new-participant-properties.adoc[] + +include::sections/45-itip-with-participants.adoc[] + +include::sections/50-itip-extensions.adoc[] + +include::sections/60-caldav-extensions.adoc[] + +include::sections/70-security.adoc[] + +include::sections/80-iana.adoc[] + +// include::sections-ietf/50-acknowledgements.adoc[] include::sections/99-bibliography.adoc[] include::sections/xa-open-issues.adoc[] -include::sections/xb-change-log.adoc[] +include::sections/xb-change-log.adoc[] diff --git a/sources/draft-ietf-calext-vpoll.adoc b/sources/draft-ietf-calext-vpoll.adoc index 04a87ea..e77621f 100644 --- a/sources/draft-ietf-calext-vpoll.adoc +++ b/sources/draft-ietf-calext-vpoll.adoc @@ -34,35 +34,40 @@ :mn-output-extensions: xml,txt,html :technical-committee: TC Freebusy -:sectnums!: - include::sections/00-abstract.adoc[] // CSD Foreword is not used in IETF //include::sections/00-foreword.adoc[] include::sections/00-intro.adoc[] -:sectnums: - // CSD: these sections are not used in IETF //include::sections/01-scope.adoc[] //include::sections/02-normrefs.adoc[] include::sections/03-terms.adoc[] + include::sections/04-consensus.adoc[] + include::sections/30-icalendar-extensions.adoc[] + include::sections/40-poll-modes.adoc[] + include::sections/44-new-participant-properties.adoc[] + include::sections/45-itip-with-participants.adoc[] + include::sections/50-itip-extensions.adoc[] + include::sections/60-caldav-extensions.adoc[] + include::sections/70-security.adoc[] + include::sections/80-iana.adoc[] include::sections-ietf/50-acknowledgements.adoc[] + // IETF uses special references include::sections-ietf/98-references.adoc[] include::sections/xa-open-issues.adoc[] -include::sections/xb-change-log.adoc[] - +include::sections/xb-change-log.adoc[] diff --git a/sources/sections/02-normrefs.adoc b/sources/sections/02-normrefs.adoc index a901431..1a6ca86 100644 --- a/sources/sections/02-normrefs.adoc +++ b/sources/sections/02-normrefs.adoc @@ -2,44 +2,19 @@ [bibliography] == Normative references -// These references are unused... -//// -* [[[RFC2119,IETF RFC 2119]]], _AUTOFILL_ -// Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . - -* [[[RFC2434,IETF RFC 2434]]], _AUTOFILL_ -// Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", RFC 2434, DOI 10.17487/RFC2434, October 1998, . - -* [[[RFC3688,IETF RFC 3688]]], _AUTOFILL_ -// Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, . - -* [[[RFC4589,IETF RFC 4589]]], _AUTOFILL_ -// Schulzrinne, H. and H. Tschofenig, "Location Types Registry", RFC 4589, DOI 10.17487/RFC4589, July 2006, . - -* [[[W3C.REC-xml-20060816,W3C REC-xml-20060816]]], Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fourth Edition)", World Wide Web Consortium Recommendation REC-xml-20060816, August 2006, . -//// - -* [[[RFC2518,IETF RFC 2518]]], _AUTOFILL_ -// Goland, Y., Whitehead, E., Faizi, A., Carter, S., and D. Jensen, "HTTP Extensions for Distributed Authoring -- WEBDAV", RFC 2518, DOI 10.17487/RFC2518, February 1999, . - -* [[[RFC3986,IETF RFC 3986]]], _AUTOFILL_ -// Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, January 2005, . - -* [[[RFC4791,IETF RFC 4791]]], _AUTOFILL_ -// Daboo, C., Desruisseaux, B., and L. Dusseault, "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, DOI 10.17487/RFC4791, March 2007, . - -* [[[RFC5234,IETF RFC 5234]]], _AUTOFILL_ - -* [[[RFC5545,IETF RFC 5545]]], _AUTOFILL_ -// Desruisseaux, B., Ed., "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", RFC 5545, DOI 10.17487/RFC5545, September 2009, . - -* [[[RFC5546,IETF RFC 5546]]], _AUTOFILL_ -// Daboo, C., Ed., "iCalendar Transport-Independent Interoperability Protocol (iTIP)", RFC 5546, DOI 10.17487/RFC5546, December 2009, . - -* [[[RFC6047,IETF RFC 6047]]], _AUTOFILL_ -// Melnikov, A., Ed., "iCalendar Message-Based Interoperability Protocol (iMIP)", RFC 6047, DOI 10.17487/RFC6047, December 2010, . - -* [[[RFC6638,IETF RFC 6638]]], _AUTOFILL_ -//Daboo, C. and B. Desruisseaux, "Scheduling Extensions to CalDAV", RFC 6638, DOI 10.17487/RFC6638, June 2012, . - -* [[[RFC9073,IETF RFC 9073]]], _AUTOFILL_ +* [[[RFC2119,IETF RFC 2119]]] +* [[[RFC2518,IETF RFC 2518]]] +//* [[[RFC3864,IETF RFC 3864]]] +* [[[RFC3986,IETF RFC 3986]]] +* [[[RFC4791,IETF RFC 4791]]] +* [[[RFC5234,IETF RFC 5234]]] +* [[[RFC5545,IETF RFC 5545]]] +* [[[RFC5546,IETF RFC 5546]]] +* [[[RFC5646,IETF RFC 5646]]] +* [[[RFC6047,IETF RFC 6047]]] +//* [[[RFC6057,IETF RFC 6057]]] +* [[[RFC6638,IETF RFC 6638]]] +//* [[[RFC7240,IETF RFC 7240]]] +* [[[RFC8984,IETF RFC 8984]]] +* [[[RFC9073,IETF RFC 9073]]] +* [[[RFC9253,IETF RFC 9253]]]