Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
9367568
Update README.md
liangsteve Jun 14, 2025
f70a713
standard template upload
Jun 18, 2025
4a14907
Update README.md
liangsteve Jun 18, 2025
93931e5
Update clause_0_front_material.adoc
liangsteve Jun 18, 2025
97b70cb
Update standard_document.adoc
liangsteve Jun 18, 2025
0994bcc
Update standard_document.adoc
liangsteve Jun 18, 2025
c5e5a9d
first UML diagram snapshot upload
liangsteve Jun 20, 2025
a51d483
add Mechanism definition
Jul 4, 2025
7a41740
format update
Jul 4, 2025
0272a19
added definitions, Emission Event, Feature, Measurement, Observation,…
Jul 4, 2025
8e96c50
Update README.md
liangsteve Jul 4, 2025
1ac8ec2
Update README.md
liangsteve Jul 4, 2025
735ff28
Create core-emissionml-class-2025-07-16.md
liangsteve Jul 16, 2025
3d7b4cd
Update README.md
liangsteve Jul 16, 2025
f0aeb69
update
Oct 30, 2025
6e83753
Create core-emissionml-class-2025-10-29.md
Oct 30, 2025
0fc2dda
Update core-emissionml-class-2025-10-29.md
liangsteve Oct 30, 2025
a176798
Create core-emissionml-class-2026-01-19.md
Jan 20, 2026
eaeede1
Update core-emissionml-class-2026-01-19.md
liangsteve Jan 20, 2026
6c3dd69
Update core-emissionml-class-2026-01-19.md
liangsteve Jan 20, 2026
52a1105
Update README.md
Jan 27, 2026
aa88349
Update README.md
liangsteve Jan 27, 2026
892a8aa
Update README.md
Jan 27, 2026
9e24b55
Update core-emissionml-class-2026-01-19.md
liangsteve Jan 27, 2026
da7336f
Create core-emissionml-class-2026-02-03.md
Feb 3, 2026
003e2b8
Update clause_4_terms_and_definitions.adoc
Feb 3, 2026
ebb6631
Update clause_7_normative_text.adoc
Feb 3, 2026
439dc32
updated compiled standard
Feb 3, 2026
04f5734
Update requirements_class.adoc
Feb 3, 2026
004c76d
Update clause_4_terms_and_definitions.adoc
Feb 3, 2026
8ecdb49
Update core-emissionml-class-2026-02-03.md
Feb 3, 2026
a420e81
Remove experimental code from OGC tracking, update .gitignore
Feb 16, 2026
00c4855
Align requirements_class.adoc to clause_7 normative text
Feb 16, 2026
eb21549
Rename OM_Observation to Observation (OMS 3.0 class name)
Feb 17, 2026
1fa1f44
Update core-emissionml-class-2026-02-04.md
liangsteve Feb 17, 2026
219afed
Add PlantUML source and rendered SVG/PNG for class diagram
Feb 17, 2026
d8c7add
Document structural model changes from Feb-03 to Feb-04
Feb 17, 2026
4181af0
Add 2026-02-04 UML diagram to top of UML/README.md
Feb 17, 2026
c547064
Rename DeterminationMethod to DeterminationProcedure, add Procedure b…
Feb 17, 2026
4ad1527
Recompile standard document after DeterminationProcedure rename
Feb 17, 2026
6c36aad
Align clause_4 and clause_7 definitions across all 12 terms
Feb 17, 2026
9049a92
Remove duplicate NOTEs from clause_4, keep in clause_7 only
Feb 17, 2026
79bb032
Recompile standard document after clause_4/clause_7 definition alignment
Feb 17, 2026
f5c1ea7
Use inline images for UML symbols in Table 2, fix NOTE admonition syntax
Feb 17, 2026
d5295aa
Remove placeholder term entry from clause_4
Feb 17, 2026
7b93d97
Draft abstract for EmissionML standard
Feb 17, 2026
15d9994
Add keywords for EmissionML standard
Feb 17, 2026
b2a7dc2
Fill in standard boilerplate: scope, conformance, references, convent…
Feb 18, 2026
5e00ccd
Add table titles, fix document structure, and update bibliography
Feb 18, 2026
9fc78fa
Add relaton/ to .gitignore, remove stray REQ01.adoc copy
Feb 18, 2026
100b586
Draft informative clause 6: background, motivation, and cross-domain …
Feb 18, 2026
56bf5ef
Redesign UML class diagram layout with centered EmissionEvent
Feb 18, 2026
a327b73
Recompile standard document
Feb 18, 2026
5805f94
Update submitting organizations and add contributors table
Feb 18, 2026
38a452c
Recompile standard document after submitters update
Feb 18, 2026
ec5bc65
Sync submitting organizations in header metadata, fix typo
Feb 18, 2026
02b9323
Fix Contributors table column separators
Feb 18, 2026
7bbae81
Fix Contributors table rendering with explicit column spec
Feb 18, 2026
af23529
Migrate to Metanorma template with structured requirements and abstra…
Mar 2, 2026
e487994
Merge main into template-upgrade, resolve README.md conflict
Mar 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Auto-generated by Cimas: Do not edit it manually!
# See https://github.com/metanorma/cimas
name: docker

on:
push:
branches: [ master, main ]
pull_request:
paths-ignore:
- .gitlab-ci.yml
- .github/workflows/test.yml
- .github/workflows/generate.yml
repository_dispatch:
types: [ metanorma/metanorma-docker ]

jobs:
test-docker:
runs-on: ubuntu-latest
container: docker://metanorma/mn
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.METANORMA_CI_PAT_TOKEN || github.token }}
submodules: true

- uses: actions/cache@v2
with:
path: /config/fonts
key: fontist-docker
restore-keys: fontist-docker

- uses: actions/cache@v2
with:
path: ~/.metanorma-ietf-workgroup-cache.json
key: metanorma-ietf-workgroup-cache
restore-keys: metanorma-ietf-workgroup-cache

- uses: metanorma/metanorma-build-scripts/gh-rubygems-setup-action@master
with:
token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}

- run: |
curl -L --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/gemfile-to-bundle-add.sh | bash

- uses: actions-mn/cli/site-gen@main
with:
agree-to-terms: true

- uses: actions/upload-artifact@master
with:
name: site
path: site

deploy-gh-pages:
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
needs: test-docker
steps:
- uses: actions/checkout@v2

- uses: actions/download-artifact@v1
with:
name: site

- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ github.token }}
publish_dir: ./site
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: ${{ github.token }}
expire-in: 0
54 changes: 54 additions & 0 deletions .github/workflows/generate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Auto-generated by Cimas: Do not edit it manually!
# See https://github.com/metanorma/cimas
name: generate

on:
push:
branches: [ master, main ]
pull_request:
paths-ignore:
- .gitlab-ci.yml
- .github/workflows/test.yml
- .github/workflows/docker.yml
workflow_dispatch:

jobs:
test-linux:
name: Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.METANORMA_CI_PAT_TOKEN || github.token }}
submodules: true

- uses: actions/cache@v2
with:
path: ~/.cache/xml2rfc
key: xml2rfc
restore-keys: xml2rfc

- uses: actions/cache@v2
with:
path: ~/.fontist
key: fontist-${{ runner.os }}
restore-keys: fontist-${{ runner.os }}

- uses: actions/cache@v2
with:
path: ~/.metanorma-ietf-workgroup-cache.json
key: metanorma-ietf-workgroup-cache
restore-keys: metanorma-ietf-workgroup-cache

- if: matrix.os == 'windows-latest'
run: rm Gemfile

- uses: actions-mn/setup@master

- uses: actions-mn/cli/site-gen@main
with:
agree-to-terms: true
47 changes: 47 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# IDE and editor
.vscode/
.idea/

# Claude Code
.agent/
.claude/

# Python
__pycache__/
*.pyc
*.pyo

# OS files
.DS_Store
.swp

# Metanorma / template
.tmp.xml
deploy_key
*.asciidoc.log.txt

# Compiled outputs (regenerated by Metanorma)
document.html
document.pdf
document.doc
document.xml
document.presentation.xml
document.err.html
~$*.doc

# Experimental code (not for OGC standard)
code/

# UML working files (keep only core-emissionml-class-*.md and images)
UML/*.ttl
UML/*.puml
UML/emissionml-json-encoding-*

# Metanorma cache
relaton/

# Reference documents (local context only)
context/

# Local notes (optional - remove if you want to track)
Todo.md
4 changes: 4 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
source "https://rubygems.org"

gem "metanorma-cli"
gem "relaton-cli"
196 changes: 196 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
# 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 "$<" "$@"
Loading
Loading