metanorma-cli 1.16.10 → 1.18.0.pre.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +59 -4
- data/bin/font-test +24 -1
- data/lib/metanorma/cli/command.rb +42 -12
- data/lib/metanorma/cli/commands/diff.rb +159 -0
- data/lib/metanorma/cli/flavor.rb +18 -2
- data/lib/metanorma/cli/git_template.rb +0 -1
- data/lib/metanorma/cli/version.rb +1 -1
- data/lib/metanorma/flavor.rb +66 -4
- data/metanorma-cli.gemspec +22 -20
- metadata +116 -70
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 94c9a92bb16abb8d00e65ec4145f8a2ab759514e6105c4aa17a298f52e359c75
|
|
4
|
+
data.tar.gz: 6b313e7db3f21f40d95da8583d59fdb4b4bf142de95eab5544e57bb0700dc957
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 25d1deaa50eeb65a021062a2e05639a784467d452e76f5bfc5c1f5b97698121f4dab68377ff66091126a6efab2894cd4f3ca46a85864a6f55121ac5dd50fbd90
|
|
7
|
+
data.tar.gz: f926bad3a7fe1ab65abaab0fd4560d1bd2dbe9d8f3cdfc76afc4105ebe16e232aca080079e28e1eab3a2ab5200147f0b1d1742fe66d75cd52bf77803c49e6cba
|
data/Gemfile
CHANGED
|
@@ -4,13 +4,47 @@ Encoding.default_internal = Encoding::UTF_8
|
|
|
4
4
|
source "https://rubygems.org"
|
|
5
5
|
git_source(:github) { |repo| "https://github.com/#{repo}" }
|
|
6
6
|
|
|
7
|
-
source "https://rubygems.pkg.github.com/metanorma" do
|
|
8
|
-
gem "metanorma-nist"
|
|
9
|
-
gem "metanorma-bsi"
|
|
10
|
-
end
|
|
11
7
|
|
|
12
8
|
gemspec
|
|
13
9
|
|
|
10
|
+
# Remaining cross-PR pins for the flavor-table restructure wave.
|
|
11
|
+
# document#45 metanorma#591 iso#1618 standoc#1232 itu/iec/ogc migration
|
|
12
|
+
# PRs and isodoc#825 all merged: those pins below are carried by the
|
|
13
|
+
# canonical zoo at the foot of this file.
|
|
14
|
+
gem "metanorma-core",
|
|
15
|
+
github: "metanorma/metanorma-core",
|
|
16
|
+
branch: "main"
|
|
17
|
+
gem "metanorma-taste",
|
|
18
|
+
github: "metanorma/metanorma-taste",
|
|
19
|
+
branch: "main"
|
|
20
|
+
|
|
21
|
+
# Private flavors (nist, bsi) are intentionally absent: their sources are
|
|
22
|
+
# not readable without credentials, so any unauthenticated fresh resolve
|
|
23
|
+
# fails. The flavor loader is still tested against them via stubbed
|
|
24
|
+
# specs, and the grammar census installs them with GitHub Packages auth.
|
|
25
|
+
|
|
26
|
+
gem "relaton-cli", ">= 2.2.0.pre.alpha.1"
|
|
27
|
+
gem "relaton-bib", "~> 2.2.0.pre.alpha.1"
|
|
28
|
+
gem "pubid",
|
|
29
|
+
github: "pubid/pubid",
|
|
30
|
+
branch: "main"
|
|
31
|
+
|
|
32
|
+
# Cap lutaml-model < 0.8.20: 0.8.20 relocates the XML adapter directory
|
|
33
|
+
# (xmi and other transitive gems still require the old path). The wave's
|
|
34
|
+
# other gems (document/iso) also pin ~> 0.8.0; this avoids the imminent
|
|
35
|
+
# 0.8.20 yank.
|
|
36
|
+
# Force newer xmi (lutaml 0.9.43 pins xmi ~> 0.3.20; xmi 0.7+ moved
|
|
37
|
+
# the XML adapter to a path compatible with lutaml-model 0.8.x).
|
|
38
|
+
# Conflict with lutaml's pin is resolved by also pinning lutaml to a
|
|
39
|
+
# version that no longer enforces it.
|
|
40
|
+
gem "xmi", "~> 0.7"
|
|
41
|
+
gem "lutaml", ">= 0.11.2"
|
|
42
|
+
gem "ogc-gml", "1.1.0"
|
|
43
|
+
gem "lutaml-model", "0.8.114" # relaton a.15 declares singular_tolerance (needs 0.8.113+); glossarist 0.5 needs >= 0.8.22
|
|
44
|
+
# Pin glossarist plugin: 0.3.10 freezes its preprocessor after
|
|
45
|
+
# initialization, breaking Asciidoctor compile in the cli suite.
|
|
46
|
+
gem "metanorma-plugin-glossarist", "~> 0.5" # standoc main needs the 0.5 preprocessor
|
|
47
|
+
|
|
14
48
|
group :development do
|
|
15
49
|
gem "debug"
|
|
16
50
|
gem "pry"
|
|
@@ -35,3 +69,24 @@ begin
|
|
|
35
69
|
rescue StandardError
|
|
36
70
|
nil
|
|
37
71
|
end
|
|
72
|
+
gem "metanorma-standoc", github: "metanorma/metanorma-standoc", branch: "main"
|
|
73
|
+
gem "metanorma-iso", github: "metanorma/metanorma-iso", branch: "main" # released 3.5.0 conflicts with metanorma-document main # released 3.4.2 still caps relaton-cli ~> 2.1
|
|
74
|
+
gem "metanorma-document", github: "metanorma/metanorma-document", branch: "main" # standoc main references Document::Components constants
|
|
75
|
+
gem "metanorma-utils", github: "metanorma/metanorma-utils", branch: "main" # released utils lacks GcBudget/deep_symbolize (main-only)
|
|
76
|
+
gem "isodoc", github: "metanorma/isodoc", branch: "main" # released isodoc caps relaton-render ~> 1.3
|
|
77
|
+
|
|
78
|
+
# the metagem's flavor zoo on mains: released flavors reference the retired 1.x render API
|
|
79
|
+
gem "metanorma", github: "metanorma/metanorma", branch: "main"
|
|
80
|
+
gem "metanorma-bipm", github: "metanorma/metanorma-bipm", branch: "main"
|
|
81
|
+
gem "metanorma-cc", github: "metanorma/metanorma-cc", branch: "main"
|
|
82
|
+
gem "metanorma-iec", github: "metanorma/metanorma-iec", branch: "main"
|
|
83
|
+
gem "metanorma-ieee", github: "metanorma/metanorma-ieee", branch: "main"
|
|
84
|
+
gem "metanorma-ietf", github: "metanorma/metanorma-ietf", branch: "main"
|
|
85
|
+
gem "metanorma-gb", github: "metanorma/metanorma-gb", branch: "main"
|
|
86
|
+
gem "metanorma-generic", github: "metanorma/metanorma-generic", branch: "main"
|
|
87
|
+
gem "metanorma-iho", github: "metanorma/metanorma-iho", branch: "main"
|
|
88
|
+
gem "metanorma-itu", github: "metanorma/metanorma-itu", branch: "main"
|
|
89
|
+
gem "metanorma-jis", github: "metanorma/metanorma-jis", branch: "main"
|
|
90
|
+
gem "metanorma-ogc", github: "metanorma/metanorma-ogc", branch: "main"
|
|
91
|
+
gem "metanorma-plateau", github: "metanorma/metanorma-plateau", branch: "main"
|
|
92
|
+
gem "metanorma-ribose", github: "metanorma/metanorma-ribose", branch: "main"
|
data/bin/font-test
CHANGED
|
@@ -13,10 +13,33 @@ end
|
|
|
13
13
|
|
|
14
14
|
Fontist::Formula.update_formulas_repo
|
|
15
15
|
|
|
16
|
+
def taste_fonts(flavor)
|
|
17
|
+
require "metanorma-taste"
|
|
18
|
+
config = Metanorma::TasteRegister.get_config(flavor.to_sym)
|
|
19
|
+
fonts = config&.base_override&.value_attributes&.fonts
|
|
20
|
+
fonts&.split(";")&.map(&:strip)&.reject(&:empty?)
|
|
21
|
+
rescue Metanorma::TasteRegister::UnknownTasteError, LoadError
|
|
22
|
+
nil
|
|
23
|
+
end
|
|
24
|
+
|
|
16
25
|
flavors.each do |flavor|
|
|
17
26
|
flavor_name = (flavor == "jcgm") ? "bipm" : flavor
|
|
18
27
|
gem_name = "metanorma-#{flavor_name}"
|
|
19
|
-
|
|
28
|
+
begin
|
|
29
|
+
require gem_name
|
|
30
|
+
rescue LoadError
|
|
31
|
+
# A taste has no gem of its own: install the fonts its config declares
|
|
32
|
+
if (fonts = taste_fonts(flavor_name))
|
|
33
|
+
puts "Processing fonts for taste '#{flavor_name}' (metanorma-taste)..."
|
|
34
|
+
fonts.each do |font|
|
|
35
|
+
Fontist::Font.install(font, confirmation: "yes")
|
|
36
|
+
puts "- #{font}"
|
|
37
|
+
end
|
|
38
|
+
puts "Done."
|
|
39
|
+
next
|
|
40
|
+
end
|
|
41
|
+
raise
|
|
42
|
+
end
|
|
20
43
|
|
|
21
44
|
# Determine the processor class based on the flavor
|
|
22
45
|
processor_class = "Metanorma::#{flavor_name.capitalize}::Processor"
|
|
@@ -8,6 +8,8 @@ require "metanorma/cli/thor_with_config"
|
|
|
8
8
|
require "metanorma/cli/commands/config"
|
|
9
9
|
require "metanorma/cli/commands/template_repo"
|
|
10
10
|
require "metanorma/cli/commands/site"
|
|
11
|
+
require "metanorma/cli/commands/diff"
|
|
12
|
+
require "metanorma/release/cli"
|
|
11
13
|
require "mnconvert"
|
|
12
14
|
require_relative "flavor"
|
|
13
15
|
|
|
@@ -15,8 +17,8 @@ module Metanorma
|
|
|
15
17
|
module Cli
|
|
16
18
|
class Command < ThorWithConfig
|
|
17
19
|
class_option :progress, aliases: "-s", type: :boolean, default: false,
|
|
18
|
-
desc: "Show progress for long running tasks" \
|
|
19
|
-
"
|
|
20
|
+
desc: "Show progress for long running tasks " \
|
|
21
|
+
"(like download)"
|
|
20
22
|
|
|
21
23
|
desc "new NAME", "Create new Metanorma document"
|
|
22
24
|
option :type, aliases: "-t", required: true, desc: "Document type"
|
|
@@ -40,28 +42,28 @@ module Metanorma
|
|
|
40
42
|
option :wrapper, aliases: "-w", type: :boolean,
|
|
41
43
|
desc: "Create wrapper folder for HTML output"
|
|
42
44
|
option :asciimath, aliases: "-a", type: :boolean,
|
|
43
|
-
desc: "Keep Asciimath in XML output instead of" \
|
|
44
|
-
"
|
|
45
|
+
desc: "Keep Asciimath in XML output instead of " \
|
|
46
|
+
"converting it to MathM"
|
|
45
47
|
option :datauriimage, aliases: "-d", type: :boolean,
|
|
46
48
|
desc: "Encode HTML output images as data URIs"
|
|
47
49
|
option :relaton, aliases: "-R",
|
|
48
|
-
desc: "Export Relaton XML for document to nominated" \
|
|
49
|
-
"
|
|
50
|
+
desc: "Export Relaton XML for document to nominated " \
|
|
51
|
+
"filename"
|
|
50
52
|
option :extract, aliases: "-e",
|
|
51
|
-
desc: "Export sourcecode fragments from this document" \
|
|
52
|
-
"
|
|
53
|
+
desc: "Export sourcecode fragments from this document " \
|
|
54
|
+
"to nominated directory"
|
|
53
55
|
option :version, aliases: "-v",
|
|
54
56
|
desc: "Print version of code (accompanied with -t)"
|
|
55
57
|
option :log_messages, aliases: "-L",
|
|
56
58
|
desc: "Display available log messages " \
|
|
57
|
-
|
|
59
|
+
"(accompanied with -t)"
|
|
58
60
|
option :output_dir, aliases: "-o",
|
|
59
61
|
desc: "Directory to save compiled files"
|
|
60
62
|
option :strict, aliases: "-S", type: :boolean,
|
|
61
63
|
desc: "Strict compilation: abort if there are any errors"
|
|
62
64
|
option :agree_to_terms,
|
|
63
65
|
type: :boolean,
|
|
64
|
-
desc: "Agree / Disagree with all third-party licensing terms "\
|
|
66
|
+
desc: "Agree / Disagree with all third-party licensing terms " \
|
|
65
67
|
"presented (WARNING: do know what you are agreeing with!)"
|
|
66
68
|
option :install_fonts, type: :boolean, default: true,
|
|
67
69
|
desc: "Install required fonts"
|
|
@@ -99,14 +101,14 @@ module Metanorma
|
|
|
99
101
|
option :coverpage, aliases: "-c", desc: "Liquid template"
|
|
100
102
|
option :agree_to_terms,
|
|
101
103
|
type: :boolean,
|
|
102
|
-
desc: "Agree / Disagree with all third-party licensing terms "\
|
|
104
|
+
desc: "Agree / Disagree with all third-party licensing terms " \
|
|
103
105
|
"presented (WARNING: do know what you are agreeing with!)"
|
|
104
106
|
option :install_fonts, type: :boolean, default: true,
|
|
105
107
|
desc: "Install required fonts"
|
|
106
108
|
option :continue_without_fonts,
|
|
107
109
|
type: :boolean,
|
|
108
110
|
desc: "Continue processing even when fonts are missing"
|
|
109
|
-
option :strict, aliases: "-S", type: :boolean,
|
|
111
|
+
option :strict, aliases: "-S", type: :boolean,
|
|
110
112
|
desc: "Strict compilation: abort if there are any errors"
|
|
111
113
|
|
|
112
114
|
def collection(filename = nil)
|
|
@@ -151,6 +153,31 @@ module Metanorma
|
|
|
151
153
|
UI.say e.message
|
|
152
154
|
end
|
|
153
155
|
|
|
156
|
+
desc "diff FILE1 FILE2", "Semantic diff of two Metanorma XML documents"
|
|
157
|
+
option :format, type: :string, default: "text",
|
|
158
|
+
desc: "Output format: text or json"
|
|
159
|
+
option :profile, type: :string,
|
|
160
|
+
desc: "canon configuration profile (built-in name " \
|
|
161
|
+
"or YAML path; default: metanorma)"
|
|
162
|
+
option :match_profile, type: :string,
|
|
163
|
+
desc: "canon match profile override, e.g. " \
|
|
164
|
+
"strict or spec_friendly"
|
|
165
|
+
option :show_diffs, type: :string,
|
|
166
|
+
desc: "Which differences to show: " \
|
|
167
|
+
"all|normative|informative"
|
|
168
|
+
option :context_lines, type: :numeric,
|
|
169
|
+
desc: "Context lines around each difference"
|
|
170
|
+
option :color, type: :boolean, default: true,
|
|
171
|
+
desc: "Colorise the text report"
|
|
172
|
+
option :input_format, type: :string,
|
|
173
|
+
desc: "Input format override: xml|html|json|yaml " \
|
|
174
|
+
"(default: by file extension)"
|
|
175
|
+
|
|
176
|
+
def diff(file1, file2)
|
|
177
|
+
status = Commands::Diff.new(file1, file2, options).run
|
|
178
|
+
exit(status) unless status.zero?
|
|
179
|
+
end
|
|
180
|
+
|
|
154
181
|
desc "version", "Version of the code"
|
|
155
182
|
option :type, aliases: "-t", required: false,
|
|
156
183
|
desc: "Type of standard to generate"
|
|
@@ -202,6 +229,9 @@ module Metanorma
|
|
|
202
229
|
desc "site", "Manage site for metanorma collections"
|
|
203
230
|
subcommand :site, Metanorma::Cli::Commands::Site
|
|
204
231
|
|
|
232
|
+
desc "release SUBCOMMAND ...", "Document registry commands (metanorma-release)"
|
|
233
|
+
subcommand :release, Metanorma::Release::CLI
|
|
234
|
+
|
|
205
235
|
desc "config", "Manage configuration file"
|
|
206
236
|
subcommand :config, Metanorma::Cli::Commands::Config
|
|
207
237
|
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
module Metanorma
|
|
4
|
+
module Cli
|
|
5
|
+
module Commands
|
|
6
|
+
# Semantic diff of two Metanorma XML documents, with lutaml/canon
|
|
7
|
+
# as the diff engine (metanorma-cli#442, iso-10303
|
|
8
|
+
# drift-tracking). Returns an exit status instead of exiting, so
|
|
9
|
+
# in-process callers (and specs) stay alive; the Thor command
|
|
10
|
+
# decides the process exit.
|
|
11
|
+
class Diff
|
|
12
|
+
EXIT_EQUIVALENT = 0
|
|
13
|
+
EXIT_DIFFERENT = 1
|
|
14
|
+
EXIT_ERROR = 2
|
|
15
|
+
|
|
16
|
+
# the canon LIBRARY does not auto-detect input format (its CLI
|
|
17
|
+
# does, from extensions) — detect here, overridable via
|
|
18
|
+
# --input-format
|
|
19
|
+
FORMAT_BY_EXT = {
|
|
20
|
+
".xml" => :xml, ".html" => :html, ".htm" => :html,
|
|
21
|
+
".json" => :json, ".yaml" => :yaml, ".yml" => :yaml
|
|
22
|
+
}.freeze
|
|
23
|
+
|
|
24
|
+
def initialize(file1, file2, options = {})
|
|
25
|
+
@file1 = file1
|
|
26
|
+
@file2 = file2
|
|
27
|
+
@options = options
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @return [Integer] exit status (0 equivalent / 1 different /
|
|
31
|
+
# 2 error); output goes to the given IO (default $stdout)
|
|
32
|
+
def run(out = $stdout)
|
|
33
|
+
return EXIT_ERROR unless files_exist?
|
|
34
|
+
|
|
35
|
+
require "canon"
|
|
36
|
+
format = input_format
|
|
37
|
+
return reject_format unless format
|
|
38
|
+
|
|
39
|
+
configure_canon
|
|
40
|
+
report(compare_documents(format), out)
|
|
41
|
+
rescue StandardError => e
|
|
42
|
+
warn "metanorma diff: #{e.class}: #{e.message}"
|
|
43
|
+
EXIT_ERROR
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
|
|
48
|
+
def files_exist?
|
|
49
|
+
[@file1, @file2].all? do |f|
|
|
50
|
+
File.file?(f) ||
|
|
51
|
+
(warn("metanorma diff: no such file: #{f}") && false)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# The canon "metanorma" configuration profile is the default:
|
|
56
|
+
# spec-friendly matching, metanorma whitespace element lists,
|
|
57
|
+
# normative-only display. --profile selects another canon
|
|
58
|
+
# profile (built-in name or a YAML path).
|
|
59
|
+
def configure_canon
|
|
60
|
+
Canon::Config.reset!
|
|
61
|
+
Canon::Config.instance.profile = @options[:profile] || :metanorma
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# rubocop:disable Naming/PredicateMethod -- verbose: true makes
|
|
65
|
+
# equivalent? return a full ComparisonResult, not a boolean
|
|
66
|
+
def report(result, out)
|
|
67
|
+
out.puts render(result)
|
|
68
|
+
result.equivalent? ? EXIT_EQUIVALENT : EXIT_DIFFERENT
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def reject_format
|
|
72
|
+
warn "metanorma diff: unsupported input format for " \
|
|
73
|
+
"#{File.extname(@file1)} — semantic diff handles " \
|
|
74
|
+
"#{FORMAT_BY_EXT.keys.join(', ')} (or pass --input-format)"
|
|
75
|
+
EXIT_ERROR
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def input_format
|
|
79
|
+
if (f = @options[:input_format])
|
|
80
|
+
return f.to_sym
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
FORMAT_BY_EXT[File.extname(@file1).downcase]
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def compare_documents(format)
|
|
87
|
+
opts = { verbose: true, format: format }
|
|
88
|
+
if (mp = @options[:match_profile])
|
|
89
|
+
opts[:match_profile] = mp.to_sym
|
|
90
|
+
end
|
|
91
|
+
Canon::Comparison.equivalent?(
|
|
92
|
+
File.read(@file1, encoding: "UTF-8"),
|
|
93
|
+
File.read(@file2, encoding: "UTF-8"),
|
|
94
|
+
opts,
|
|
95
|
+
)
|
|
96
|
+
end
|
|
97
|
+
# rubocop:enable Naming/PredicateMethod
|
|
98
|
+
|
|
99
|
+
def render(result)
|
|
100
|
+
case @options[:format]&.downcase
|
|
101
|
+
when "json" then render_json(result)
|
|
102
|
+
else render_text(result)
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def render_text(result)
|
|
107
|
+
return result.diff(**text_diff_opts) unless result.equivalent?
|
|
108
|
+
|
|
109
|
+
info = result.informative_differences.size
|
|
110
|
+
return "Equivalent" if info.zero?
|
|
111
|
+
|
|
112
|
+
msg = "Equivalent (#{info} informative difference(s) — " \
|
|
113
|
+
"rerun with --show-diffs informative to view)"
|
|
114
|
+
if @options[:show_diffs].to_s == "informative"
|
|
115
|
+
"#{msg}\n#{result.diff(**text_diff_opts)}"
|
|
116
|
+
else
|
|
117
|
+
msg
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def text_diff_opts
|
|
122
|
+
diff_opts = { use_color: color? }
|
|
123
|
+
if (cl = @options[:context_lines])
|
|
124
|
+
diff_opts[:context_lines] = cl.to_i
|
|
125
|
+
end
|
|
126
|
+
if (sd = @options[:show_diffs])
|
|
127
|
+
diff_opts[:show_diffs] = sd.to_sym
|
|
128
|
+
end
|
|
129
|
+
diff_opts
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def color?
|
|
133
|
+
return false if @options[:color] == false
|
|
134
|
+
|
|
135
|
+
$stdout.tty?
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# canon has no machine-readable report; serialise its DiffNode
|
|
139
|
+
# list ourselves — the shape iso-10303 CI can consume
|
|
140
|
+
def diff_to_h(diff)
|
|
141
|
+
{ dimension: diff.dimension, reason: diff.reason,
|
|
142
|
+
path: diff.path, normative: diff.normative?,
|
|
143
|
+
before: diff.serialized_before, after: diff.serialized_after }
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def render_json(result)
|
|
147
|
+
diffs = result.differences.map { |d| diff_to_h(d) }
|
|
148
|
+
JSON.pretty_generate(
|
|
149
|
+
files: { a: @file1, b: @file2 },
|
|
150
|
+
equivalent: result.equivalent?,
|
|
151
|
+
normative_count: diffs.count { |d| d[:normative] },
|
|
152
|
+
informative_count: diffs.count { |d| !d[:normative] },
|
|
153
|
+
differences: diffs,
|
|
154
|
+
)
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
end
|
data/lib/metanorma/cli/flavor.rb
CHANGED
|
@@ -6,7 +6,7 @@ module Metanorma
|
|
|
6
6
|
metanorma-core metanorma-plugin-glossarist metanorma-plugin-lutaml
|
|
7
7
|
metanorma-taste relaton-cli pubid glossarist fontist
|
|
8
8
|
plurimath expressir xmi lutaml-model emf2svg unitsml
|
|
9
|
-
vectory ogc-gml oscal suma).freeze
|
|
9
|
+
vectory ogc-gml oscal suma canon).freeze
|
|
10
10
|
|
|
11
11
|
EXPORT_CONFIG_FLAVOR_FILES = [
|
|
12
12
|
"metanorma/*/*.adoc",
|
|
@@ -16,6 +16,8 @@ module Metanorma
|
|
|
16
16
|
"isodoc/*/*.yaml",
|
|
17
17
|
"relaton/render/*.yml",
|
|
18
18
|
"relaton/render/*.yaml",
|
|
19
|
+
"relaton/render-isodoc/**/*.yml",
|
|
20
|
+
"metanorma/*/*-style.yml",
|
|
19
21
|
].freeze
|
|
20
22
|
|
|
21
23
|
private
|
|
@@ -45,8 +47,22 @@ module Metanorma
|
|
|
45
47
|
end
|
|
46
48
|
|
|
47
49
|
def flavor_dictionary_taste(ret)
|
|
48
|
-
|
|
50
|
+
# Tastes come from the core flavor table (metanorma-core#18)
|
|
51
|
+
# when available; fall back to TasteRegister for contexts where
|
|
52
|
+
# the table has no taste entries registered yet (load-order or
|
|
53
|
+
# version-skew). Same output shape either way — the specs are
|
|
54
|
+
# the contract.
|
|
55
|
+
tastes = if defined?(Metanorma::Core::Flavors) &&
|
|
56
|
+
Metanorma::Core::Flavors.available_tastes.any?
|
|
57
|
+
Metanorma::Core::Flavors.available_tastes
|
|
58
|
+
else
|
|
59
|
+
Metanorma::TasteRegister.instance.available_tastes
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
tastes.each do |taste|
|
|
49
63
|
format_keys, base_flavor = taste_format_keys(taste)
|
|
64
|
+
next unless ret[base_flavor]
|
|
65
|
+
|
|
50
66
|
ret[taste] = { format_keys: format_keys, base_flavor: base_flavor,
|
|
51
67
|
native_keys: ret[base_flavor][:format_keys],
|
|
52
68
|
input: ret[base_flavor][:input] }
|
|
@@ -92,7 +92,6 @@ module Metanorma
|
|
|
92
92
|
iho: "https://github.com/metanorma/mn-templates-iho",
|
|
93
93
|
cc: "https://github.com/metanorma/mn-templates-cc",
|
|
94
94
|
un: "https://github.com/metanorma/mn-templates-un",
|
|
95
|
-
nist: "https://github.com/metanorma/mn-templates-nist",
|
|
96
95
|
m3aawg: "https://github.com/metanorma/mn-templates-m3aawg",
|
|
97
96
|
}
|
|
98
97
|
end
|
data/lib/metanorma/flavor.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "bundler"
|
|
3
4
|
require "metanorma/cli/ui"
|
|
4
5
|
|
|
5
6
|
module Metanorma
|
|
@@ -26,9 +27,26 @@ module Metanorma
|
|
|
26
27
|
PRIVATE_SUPPORTED_GEMS = [
|
|
27
28
|
"metanorma-ribose",
|
|
28
29
|
# "metanorma-mpfa",
|
|
29
|
-
"metanorma-nist",
|
|
30
30
|
].freeze
|
|
31
31
|
|
|
32
|
+
# Bundled metanorma-* gems that are not flavors; they are never
|
|
33
|
+
# require'd by the loader. Everything bundled outside this list and
|
|
34
|
+
# the flavor lists above loads generically, so fully private flavor
|
|
35
|
+
# gems (nist, bsi, ...) work by mere presence in the consumer's
|
|
36
|
+
# bundle — open CLI code never names them.
|
|
37
|
+
NON_FLAVOR_GEMS = %w(
|
|
38
|
+
metanorma
|
|
39
|
+
metanorma-cli
|
|
40
|
+
metanorma-core
|
|
41
|
+
metanorma-standoc
|
|
42
|
+
metanorma-document
|
|
43
|
+
metanorma-utils
|
|
44
|
+
metanorma-mirror
|
|
45
|
+
metanorma-taste
|
|
46
|
+
metanorma-release
|
|
47
|
+
metanorma-acme
|
|
48
|
+
).freeze
|
|
49
|
+
|
|
32
50
|
def self.activate
|
|
33
51
|
new.activate
|
|
34
52
|
end
|
|
@@ -46,10 +64,54 @@ module Metanorma
|
|
|
46
64
|
end
|
|
47
65
|
|
|
48
66
|
def load_flavors
|
|
49
|
-
|
|
67
|
+
require_tastes
|
|
68
|
+
(flavors + bundled_private_flavor_gems).each do |flavor_name|
|
|
50
69
|
require(flavor_name)
|
|
51
|
-
rescue LoadError => _e
|
|
52
|
-
|
|
70
|
+
rescue LoadError, NameError => _e
|
|
71
|
+
# NameError: released flavor gems predating the relaton-render 3
|
|
72
|
+
# line raise at require time (e.g. metanorma-ogc 2.x subclassing
|
|
73
|
+
# Relaton::Render::Parse); degrade them like absent flavors
|
|
74
|
+
# instead of crashing every corpus run that bundles them.
|
|
75
|
+
if SUPPORTED_GEMS.include?(flavor_name)
|
|
76
|
+
gem_loading_error(flavor_name)
|
|
77
|
+
else
|
|
78
|
+
# Bundled-but-not-supported metanorma-* gems load best-effort:
|
|
79
|
+
# the bundle pulls in data gems with no top-level entry file
|
|
80
|
+
# (metanorma-ietf-data) and stale releases awaiting their
|
|
81
|
+
# entry-file fix (metanorma-mko 1.1.1 predates the mko entry).
|
|
82
|
+
# Their absence is not the user's error, so stay quiet.
|
|
83
|
+
Metanorma::Cli::UI.debug("#{flavor_name} is not present!")
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
private
|
|
89
|
+
|
|
90
|
+
# Tastes register into Metanorma::Core::Flavors at require time; the
|
|
91
|
+
# registry is the single extension point behind the CLI's taste
|
|
92
|
+
# lookups (flavor dictionary, export-config, compile). Absence of the
|
|
93
|
+
# gem degrades silently, like an absent flavor.
|
|
94
|
+
def require_tastes
|
|
95
|
+
require "metanorma-taste"
|
|
96
|
+
rescue LoadError, NameError
|
|
97
|
+
Metanorma::Cli::UI.debug("metanorma-taste is not present!")
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Bundled metanorma-* gems outside the public flavor lists and the
|
|
101
|
+
# non-flavor helpers: fully private flavors. Names are discovered
|
|
102
|
+
# from the bundle, never listed here.
|
|
103
|
+
def bundled_private_flavor_gems
|
|
104
|
+
named = flavors + NON_FLAVOR_GEMS
|
|
105
|
+
specs = begin
|
|
106
|
+
Bundler.load.specs
|
|
107
|
+
rescue StandardError
|
|
108
|
+
Gem::Specification.find_all do |spec|
|
|
109
|
+
spec.name.start_with?("metanorma-")
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
specs.map(&:name).uniq.select do |name|
|
|
113
|
+
name.start_with?("metanorma-") && !name.start_with?("metanorma-plugin-") &&
|
|
114
|
+
!named.include?(name)
|
|
53
115
|
end
|
|
54
116
|
end
|
|
55
117
|
|
data/metanorma-cli.gemspec
CHANGED
|
@@ -25,32 +25,34 @@ Gem::Specification.new do |spec|
|
|
|
25
25
|
spec.require_paths = ["lib"]
|
|
26
26
|
spec.required_ruby_version = Gem::Requirement.new(">= 3.3.0")
|
|
27
27
|
|
|
28
|
-
spec.add_dependency "metanorma-ietf", "
|
|
29
|
-
spec.add_dependency "metanorma-iso", "
|
|
30
|
-
spec.add_dependency "mnconvert"
|
|
28
|
+
spec.add_dependency "metanorma-ietf", ">= 3.7.0"
|
|
29
|
+
spec.add_dependency "metanorma-iso", ">= 3.5.0"
|
|
30
|
+
spec.add_dependency "mnconvert", "~> 1.89"
|
|
31
|
+
spec.add_dependency "metanorma-release", "~> 0.2"
|
|
31
32
|
# spec.add_dependency "thor", "~> 1.0" # inherited from vectory
|
|
32
33
|
# spec.add_dependency "metanorma-gb", "~> 1.5.0"
|
|
33
|
-
spec.add_dependency "metanorma-bipm", "
|
|
34
|
-
spec.add_dependency "metanorma-cc", "
|
|
35
|
-
spec.add_dependency "metanorma-generic", "
|
|
36
|
-
spec.add_dependency "metanorma-iec", "
|
|
37
|
-
spec.add_dependency "metanorma-ribose", "
|
|
38
|
-
spec.add_dependency "metanorma-standoc", "
|
|
34
|
+
spec.add_dependency "metanorma-bipm", ">= 2.9.0"
|
|
35
|
+
spec.add_dependency "metanorma-cc", ">= 2.9.0"
|
|
36
|
+
spec.add_dependency "metanorma-generic", ">= 3.5.0"
|
|
37
|
+
spec.add_dependency "metanorma-iec", ">= 2.9.0"
|
|
38
|
+
spec.add_dependency "metanorma-ribose", ">= 2.9.0"
|
|
39
|
+
spec.add_dependency "metanorma-standoc", ">= 3.5.0"
|
|
40
|
+
spec.add_dependency "metanorma-taste", "~> 1.1"
|
|
39
41
|
# spec.add_dependency 'metanorma-mpfa', "~> 0.9.0"
|
|
40
42
|
spec.add_dependency "git", ">= 3.0"
|
|
41
|
-
spec.add_dependency "lutaml-model"
|
|
42
|
-
spec.add_dependency "metanorma", "
|
|
43
|
-
spec.add_dependency "metanorma-iho", "
|
|
44
|
-
spec.add_dependency "metanorma-itu", "
|
|
45
|
-
# spec.add_dependency "metanorma-nist", "~> 2.7.0"
|
|
43
|
+
spec.add_dependency "lutaml-model", "~> 0.8"
|
|
44
|
+
spec.add_dependency "metanorma", ">= 2.5.1"
|
|
45
|
+
spec.add_dependency "metanorma-iho", ">= 1.4.0"
|
|
46
|
+
spec.add_dependency "metanorma-itu", ">= 2.9.0"
|
|
46
47
|
spec.add_dependency "liquid", "~> 5"
|
|
47
|
-
spec.add_dependency "metanorma-ieee", "
|
|
48
|
-
spec.add_dependency "metanorma-jis", "
|
|
49
|
-
spec.add_dependency "metanorma-ogc", "
|
|
50
|
-
spec.add_dependency "metanorma-plateau", "
|
|
51
|
-
spec.add_dependency "
|
|
48
|
+
spec.add_dependency "metanorma-ieee", ">= 1.7.0"
|
|
49
|
+
spec.add_dependency "metanorma-jis", ">= 1.2.0"
|
|
50
|
+
spec.add_dependency "metanorma-ogc", ">= 2.10.0"
|
|
51
|
+
spec.add_dependency "metanorma-plateau", ">= 1.3.0"
|
|
52
|
+
spec.add_dependency "canon", ">= 0.2.12"
|
|
53
|
+
spec.add_dependency "relaton-cli", ">= 3.0.0.pre.alpha"
|
|
52
54
|
spec.add_dependency "socksify"
|
|
53
|
-
spec.add_dependency "suma", "~> 0.5
|
|
55
|
+
spec.add_dependency "suma", "~> 0.5"
|
|
54
56
|
# spec.metadata["rubygems_mfa_required"] = "true"
|
|
55
57
|
# NOBODY UNCOMMENTS THIS WITHOUT EXPLAINING TO ME HOW TO USE MFA
|
|
56
58
|
end
|
metadata
CHANGED
|
@@ -1,140 +1,169 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: metanorma-cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.18.0.pre.alpha.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: exe
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-10-22 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: metanorma-ietf
|
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
|
15
16
|
requirements:
|
|
16
|
-
- - "
|
|
17
|
+
- - ">="
|
|
17
18
|
- !ruby/object:Gem::Version
|
|
18
19
|
version: 3.7.0
|
|
19
20
|
type: :runtime
|
|
20
21
|
prerelease: false
|
|
21
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
23
|
requirements:
|
|
23
|
-
- - "
|
|
24
|
+
- - ">="
|
|
24
25
|
- !ruby/object:Gem::Version
|
|
25
26
|
version: 3.7.0
|
|
26
27
|
- !ruby/object:Gem::Dependency
|
|
27
28
|
name: metanorma-iso
|
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
|
29
30
|
requirements:
|
|
30
|
-
- - "
|
|
31
|
+
- - ">="
|
|
31
32
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 3.
|
|
33
|
+
version: 3.5.0
|
|
33
34
|
type: :runtime
|
|
34
35
|
prerelease: false
|
|
35
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
37
|
requirements:
|
|
37
|
-
- - "
|
|
38
|
+
- - ">="
|
|
38
39
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 3.
|
|
40
|
+
version: 3.5.0
|
|
40
41
|
- !ruby/object:Gem::Dependency
|
|
41
42
|
name: mnconvert
|
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
|
43
44
|
requirements:
|
|
44
|
-
- - "
|
|
45
|
+
- - "~>"
|
|
45
46
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '
|
|
47
|
+
version: '1.89'
|
|
47
48
|
type: :runtime
|
|
48
49
|
prerelease: false
|
|
49
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
51
|
requirements:
|
|
51
|
-
- - "
|
|
52
|
+
- - "~>"
|
|
52
53
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
54
|
+
version: '1.89'
|
|
54
55
|
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: metanorma-
|
|
56
|
+
name: metanorma-release
|
|
56
57
|
requirement: !ruby/object:Gem::Requirement
|
|
57
58
|
requirements:
|
|
58
59
|
- - "~>"
|
|
59
60
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: 2
|
|
61
|
+
version: '0.2'
|
|
61
62
|
type: :runtime
|
|
62
63
|
prerelease: false
|
|
63
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
65
|
requirements:
|
|
65
66
|
- - "~>"
|
|
66
67
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: 2
|
|
68
|
+
version: '0.2'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: metanorma-bipm
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 2.9.0
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 2.9.0
|
|
68
83
|
- !ruby/object:Gem::Dependency
|
|
69
84
|
name: metanorma-cc
|
|
70
85
|
requirement: !ruby/object:Gem::Requirement
|
|
71
86
|
requirements:
|
|
72
|
-
- - "
|
|
87
|
+
- - ">="
|
|
73
88
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 2.
|
|
89
|
+
version: 2.9.0
|
|
75
90
|
type: :runtime
|
|
76
91
|
prerelease: false
|
|
77
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
93
|
requirements:
|
|
79
|
-
- - "
|
|
94
|
+
- - ">="
|
|
80
95
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 2.
|
|
96
|
+
version: 2.9.0
|
|
82
97
|
- !ruby/object:Gem::Dependency
|
|
83
98
|
name: metanorma-generic
|
|
84
99
|
requirement: !ruby/object:Gem::Requirement
|
|
85
100
|
requirements:
|
|
86
|
-
- - "
|
|
101
|
+
- - ">="
|
|
87
102
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: 3.
|
|
103
|
+
version: 3.5.0
|
|
89
104
|
type: :runtime
|
|
90
105
|
prerelease: false
|
|
91
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
107
|
requirements:
|
|
93
|
-
- - "
|
|
108
|
+
- - ">="
|
|
94
109
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 3.
|
|
110
|
+
version: 3.5.0
|
|
96
111
|
- !ruby/object:Gem::Dependency
|
|
97
112
|
name: metanorma-iec
|
|
98
113
|
requirement: !ruby/object:Gem::Requirement
|
|
99
114
|
requirements:
|
|
100
|
-
- - "
|
|
115
|
+
- - ">="
|
|
101
116
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: 2.
|
|
117
|
+
version: 2.9.0
|
|
103
118
|
type: :runtime
|
|
104
119
|
prerelease: false
|
|
105
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
121
|
requirements:
|
|
107
|
-
- - "
|
|
122
|
+
- - ">="
|
|
108
123
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: 2.
|
|
124
|
+
version: 2.9.0
|
|
110
125
|
- !ruby/object:Gem::Dependency
|
|
111
126
|
name: metanorma-ribose
|
|
112
127
|
requirement: !ruby/object:Gem::Requirement
|
|
113
128
|
requirements:
|
|
114
|
-
- - "
|
|
129
|
+
- - ">="
|
|
115
130
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: 2.
|
|
131
|
+
version: 2.9.0
|
|
117
132
|
type: :runtime
|
|
118
133
|
prerelease: false
|
|
119
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
135
|
requirements:
|
|
121
|
-
- - "
|
|
136
|
+
- - ">="
|
|
122
137
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 2.
|
|
138
|
+
version: 2.9.0
|
|
124
139
|
- !ruby/object:Gem::Dependency
|
|
125
140
|
name: metanorma-standoc
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - ">="
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: 3.5.0
|
|
146
|
+
type: :runtime
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - ">="
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: 3.5.0
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: metanorma-taste
|
|
126
155
|
requirement: !ruby/object:Gem::Requirement
|
|
127
156
|
requirements:
|
|
128
157
|
- - "~>"
|
|
129
158
|
- !ruby/object:Gem::Version
|
|
130
|
-
version:
|
|
159
|
+
version: '1.1'
|
|
131
160
|
type: :runtime
|
|
132
161
|
prerelease: false
|
|
133
162
|
version_requirements: !ruby/object:Gem::Requirement
|
|
134
163
|
requirements:
|
|
135
164
|
- - "~>"
|
|
136
165
|
- !ruby/object:Gem::Version
|
|
137
|
-
version:
|
|
166
|
+
version: '1.1'
|
|
138
167
|
- !ruby/object:Gem::Dependency
|
|
139
168
|
name: git
|
|
140
169
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -153,58 +182,58 @@ dependencies:
|
|
|
153
182
|
name: lutaml-model
|
|
154
183
|
requirement: !ruby/object:Gem::Requirement
|
|
155
184
|
requirements:
|
|
156
|
-
- - "
|
|
185
|
+
- - "~>"
|
|
157
186
|
- !ruby/object:Gem::Version
|
|
158
|
-
version: '0'
|
|
187
|
+
version: '0.8'
|
|
159
188
|
type: :runtime
|
|
160
189
|
prerelease: false
|
|
161
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
162
191
|
requirements:
|
|
163
|
-
- - "
|
|
192
|
+
- - "~>"
|
|
164
193
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: '0'
|
|
194
|
+
version: '0.8'
|
|
166
195
|
- !ruby/object:Gem::Dependency
|
|
167
196
|
name: metanorma
|
|
168
197
|
requirement: !ruby/object:Gem::Requirement
|
|
169
198
|
requirements:
|
|
170
|
-
- - "
|
|
199
|
+
- - ">="
|
|
171
200
|
- !ruby/object:Gem::Version
|
|
172
201
|
version: 2.5.1
|
|
173
202
|
type: :runtime
|
|
174
203
|
prerelease: false
|
|
175
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
176
205
|
requirements:
|
|
177
|
-
- - "
|
|
206
|
+
- - ">="
|
|
178
207
|
- !ruby/object:Gem::Version
|
|
179
208
|
version: 2.5.1
|
|
180
209
|
- !ruby/object:Gem::Dependency
|
|
181
210
|
name: metanorma-iho
|
|
182
211
|
requirement: !ruby/object:Gem::Requirement
|
|
183
212
|
requirements:
|
|
184
|
-
- - "
|
|
213
|
+
- - ">="
|
|
185
214
|
- !ruby/object:Gem::Version
|
|
186
|
-
version: 1.
|
|
215
|
+
version: 1.4.0
|
|
187
216
|
type: :runtime
|
|
188
217
|
prerelease: false
|
|
189
218
|
version_requirements: !ruby/object:Gem::Requirement
|
|
190
219
|
requirements:
|
|
191
|
-
- - "
|
|
220
|
+
- - ">="
|
|
192
221
|
- !ruby/object:Gem::Version
|
|
193
|
-
version: 1.
|
|
222
|
+
version: 1.4.0
|
|
194
223
|
- !ruby/object:Gem::Dependency
|
|
195
224
|
name: metanorma-itu
|
|
196
225
|
requirement: !ruby/object:Gem::Requirement
|
|
197
226
|
requirements:
|
|
198
|
-
- - "
|
|
227
|
+
- - ">="
|
|
199
228
|
- !ruby/object:Gem::Version
|
|
200
|
-
version: 2.
|
|
229
|
+
version: 2.9.0
|
|
201
230
|
type: :runtime
|
|
202
231
|
prerelease: false
|
|
203
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
204
233
|
requirements:
|
|
205
|
-
- - "
|
|
234
|
+
- - ">="
|
|
206
235
|
- !ruby/object:Gem::Version
|
|
207
|
-
version: 2.
|
|
236
|
+
version: 2.9.0
|
|
208
237
|
- !ruby/object:Gem::Dependency
|
|
209
238
|
name: liquid
|
|
210
239
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -223,72 +252,86 @@ dependencies:
|
|
|
223
252
|
name: metanorma-ieee
|
|
224
253
|
requirement: !ruby/object:Gem::Requirement
|
|
225
254
|
requirements:
|
|
226
|
-
- - "
|
|
255
|
+
- - ">="
|
|
227
256
|
- !ruby/object:Gem::Version
|
|
228
|
-
version: 1.
|
|
257
|
+
version: 1.7.0
|
|
229
258
|
type: :runtime
|
|
230
259
|
prerelease: false
|
|
231
260
|
version_requirements: !ruby/object:Gem::Requirement
|
|
232
261
|
requirements:
|
|
233
|
-
- - "
|
|
262
|
+
- - ">="
|
|
234
263
|
- !ruby/object:Gem::Version
|
|
235
|
-
version: 1.
|
|
264
|
+
version: 1.7.0
|
|
236
265
|
- !ruby/object:Gem::Dependency
|
|
237
266
|
name: metanorma-jis
|
|
238
267
|
requirement: !ruby/object:Gem::Requirement
|
|
239
268
|
requirements:
|
|
240
|
-
- - "
|
|
269
|
+
- - ">="
|
|
241
270
|
- !ruby/object:Gem::Version
|
|
242
|
-
version: 1.
|
|
271
|
+
version: 1.2.0
|
|
243
272
|
type: :runtime
|
|
244
273
|
prerelease: false
|
|
245
274
|
version_requirements: !ruby/object:Gem::Requirement
|
|
246
275
|
requirements:
|
|
247
|
-
- - "
|
|
276
|
+
- - ">="
|
|
248
277
|
- !ruby/object:Gem::Version
|
|
249
|
-
version: 1.
|
|
278
|
+
version: 1.2.0
|
|
250
279
|
- !ruby/object:Gem::Dependency
|
|
251
280
|
name: metanorma-ogc
|
|
252
281
|
requirement: !ruby/object:Gem::Requirement
|
|
253
282
|
requirements:
|
|
254
|
-
- - "
|
|
283
|
+
- - ">="
|
|
255
284
|
- !ruby/object:Gem::Version
|
|
256
|
-
version: 2.
|
|
285
|
+
version: 2.10.0
|
|
257
286
|
type: :runtime
|
|
258
287
|
prerelease: false
|
|
259
288
|
version_requirements: !ruby/object:Gem::Requirement
|
|
260
289
|
requirements:
|
|
261
|
-
- - "
|
|
290
|
+
- - ">="
|
|
262
291
|
- !ruby/object:Gem::Version
|
|
263
|
-
version: 2.
|
|
292
|
+
version: 2.10.0
|
|
264
293
|
- !ruby/object:Gem::Dependency
|
|
265
294
|
name: metanorma-plateau
|
|
266
295
|
requirement: !ruby/object:Gem::Requirement
|
|
267
296
|
requirements:
|
|
268
|
-
- - "
|
|
297
|
+
- - ">="
|
|
269
298
|
- !ruby/object:Gem::Version
|
|
270
|
-
version: 1.
|
|
299
|
+
version: 1.3.0
|
|
271
300
|
type: :runtime
|
|
272
301
|
prerelease: false
|
|
273
302
|
version_requirements: !ruby/object:Gem::Requirement
|
|
274
303
|
requirements:
|
|
275
|
-
- - "
|
|
304
|
+
- - ">="
|
|
276
305
|
- !ruby/object:Gem::Version
|
|
277
|
-
version: 1.
|
|
306
|
+
version: 1.3.0
|
|
307
|
+
- !ruby/object:Gem::Dependency
|
|
308
|
+
name: canon
|
|
309
|
+
requirement: !ruby/object:Gem::Requirement
|
|
310
|
+
requirements:
|
|
311
|
+
- - ">="
|
|
312
|
+
- !ruby/object:Gem::Version
|
|
313
|
+
version: 0.2.12
|
|
314
|
+
type: :runtime
|
|
315
|
+
prerelease: false
|
|
316
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
317
|
+
requirements:
|
|
318
|
+
- - ">="
|
|
319
|
+
- !ruby/object:Gem::Version
|
|
320
|
+
version: 0.2.12
|
|
278
321
|
- !ruby/object:Gem::Dependency
|
|
279
322
|
name: relaton-cli
|
|
280
323
|
requirement: !ruby/object:Gem::Requirement
|
|
281
324
|
requirements:
|
|
282
325
|
- - ">="
|
|
283
326
|
- !ruby/object:Gem::Version
|
|
284
|
-
version: 0.
|
|
327
|
+
version: 3.0.0.pre.alpha
|
|
285
328
|
type: :runtime
|
|
286
329
|
prerelease: false
|
|
287
330
|
version_requirements: !ruby/object:Gem::Requirement
|
|
288
331
|
requirements:
|
|
289
332
|
- - ">="
|
|
290
333
|
- !ruby/object:Gem::Version
|
|
291
|
-
version: 0.
|
|
334
|
+
version: 3.0.0.pre.alpha
|
|
292
335
|
- !ruby/object:Gem::Dependency
|
|
293
336
|
name: socksify
|
|
294
337
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -309,14 +352,14 @@ dependencies:
|
|
|
309
352
|
requirements:
|
|
310
353
|
- - "~>"
|
|
311
354
|
- !ruby/object:Gem::Version
|
|
312
|
-
version: 0.5
|
|
355
|
+
version: '0.5'
|
|
313
356
|
type: :runtime
|
|
314
357
|
prerelease: false
|
|
315
358
|
version_requirements: !ruby/object:Gem::Requirement
|
|
316
359
|
requirements:
|
|
317
360
|
- - "~>"
|
|
318
361
|
- !ruby/object:Gem::Version
|
|
319
|
-
version: 0.5
|
|
362
|
+
version: '0.5'
|
|
320
363
|
description: Executable to process any Metanorma standard.
|
|
321
364
|
email:
|
|
322
365
|
- open.source@ribose.com
|
|
@@ -325,9 +368,9 @@ executables:
|
|
|
325
368
|
- metanorma-manifest
|
|
326
369
|
extensions: []
|
|
327
370
|
extra_rdoc_files:
|
|
328
|
-
- CODE_OF_CONDUCT.md
|
|
329
|
-
- LICENSE
|
|
330
371
|
- README.adoc
|
|
372
|
+
- LICENSE
|
|
373
|
+
- CODE_OF_CONDUCT.md
|
|
331
374
|
files:
|
|
332
375
|
- CODE_OF_CONDUCT.md
|
|
333
376
|
- Gemfile
|
|
@@ -349,6 +392,7 @@ files:
|
|
|
349
392
|
- lib/metanorma/cli/collection.rb
|
|
350
393
|
- lib/metanorma/cli/command.rb
|
|
351
394
|
- lib/metanorma/cli/commands/config.rb
|
|
395
|
+
- lib/metanorma/cli/commands/diff.rb
|
|
352
396
|
- lib/metanorma/cli/commands/site.rb
|
|
353
397
|
- lib/metanorma/cli/commands/template_repo.rb
|
|
354
398
|
- lib/metanorma/cli/compiler.rb
|
|
@@ -371,6 +415,7 @@ homepage: https://www.metanorma.com
|
|
|
371
415
|
licenses:
|
|
372
416
|
- BSD-2-Clause
|
|
373
417
|
metadata: {}
|
|
418
|
+
post_install_message:
|
|
374
419
|
rdoc_options: []
|
|
375
420
|
require_paths:
|
|
376
421
|
- lib
|
|
@@ -385,7 +430,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
385
430
|
- !ruby/object:Gem::Version
|
|
386
431
|
version: '0'
|
|
387
432
|
requirements: []
|
|
388
|
-
rubygems_version:
|
|
433
|
+
rubygems_version: 3.5.22
|
|
434
|
+
signing_key:
|
|
389
435
|
specification_version: 4
|
|
390
436
|
summary: Metanorma is the standard of standards; the metanorma gem allows you to create
|
|
391
437
|
any standard document type supported by Metanorma.
|