glossarist 2.5.0 → 2.5.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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop_todo.yml +50 -146
  4. data/CLAUDE.md +33 -7
  5. data/Gemfile +20 -19
  6. data/README.adoc +383 -7
  7. data/TODO.integration/01-gcr-package-cli.md +180 -0
  8. data/exe/glossarist +1 -53
  9. data/glossarist.gemspec +1 -0
  10. data/lib/glossarist/asset.rb +1 -1
  11. data/lib/glossarist/citation.rb +1 -1
  12. data/lib/glossarist/cli/package_command.rb +32 -0
  13. data/lib/glossarist/cli/upgrade_command.rb +34 -0
  14. data/lib/glossarist/cli/validate_command.rb +56 -0
  15. data/lib/glossarist/cli.rb +105 -0
  16. data/lib/glossarist/collection_config.rb +23 -0
  17. data/lib/glossarist/collections.rb +15 -8
  18. data/lib/glossarist/concept.rb +1 -1
  19. data/lib/glossarist/concept_collector.rb +153 -0
  20. data/lib/glossarist/concept_data.rb +3 -1
  21. data/lib/glossarist/concept_date.rb +1 -1
  22. data/lib/glossarist/concept_document.rb +29 -0
  23. data/lib/glossarist/concept_enricher.rb +34 -0
  24. data/lib/glossarist/concept_manager.rb +31 -49
  25. data/lib/glossarist/concept_reference.rb +45 -0
  26. data/lib/glossarist/concept_source.rb +1 -1
  27. data/lib/glossarist/concept_validator.rb +114 -0
  28. data/lib/glossarist/custom_locality.rb +1 -1
  29. data/lib/glossarist/dataset_validator.rb +69 -0
  30. data/lib/glossarist/designation/abbreviation.rb +1 -1
  31. data/lib/glossarist/designation/base.rb +11 -4
  32. data/lib/glossarist/designation/expression.rb +1 -1
  33. data/lib/glossarist/designation/grammar_info.rb +1 -1
  34. data/lib/glossarist/designation/graphical_symbol.rb +1 -1
  35. data/lib/glossarist/designation/letter_symbol.rb +1 -1
  36. data/lib/glossarist/designation/symbol.rb +2 -2
  37. data/lib/glossarist/detailed_definition.rb +1 -1
  38. data/lib/glossarist/gcr_metadata.rb +87 -0
  39. data/lib/glossarist/gcr_package.rb +223 -0
  40. data/lib/glossarist/gcr_statistics.rb +35 -0
  41. data/lib/glossarist/gcr_validator.rb +98 -0
  42. data/lib/glossarist/locality.rb +1 -1
  43. data/lib/glossarist/localized_concept.rb +12 -1
  44. data/lib/glossarist/managed_concept.rb +1 -1
  45. data/lib/glossarist/managed_concept_data.rb +5 -2
  46. data/lib/glossarist/non_verb_rep.rb +1 -1
  47. data/lib/glossarist/reference_extractor.rb +227 -0
  48. data/lib/glossarist/reference_resolver.rb +169 -0
  49. data/lib/glossarist/register_data.rb +39 -0
  50. data/lib/glossarist/related_concept.rb +1 -1
  51. data/lib/glossarist/resolution_adapter/local.rb +73 -0
  52. data/lib/glossarist/resolution_adapter/package.rb +22 -0
  53. data/lib/glossarist/resolution_adapter/remote.rb +60 -0
  54. data/lib/glossarist/resolution_adapter/route.rb +34 -0
  55. data/lib/glossarist/resolution_adapter.rb +14 -0
  56. data/lib/glossarist/schema_migration.rb +334 -0
  57. data/lib/glossarist/urn_resolver.rb +71 -0
  58. data/lib/glossarist/v1/concept.rb +81 -0
  59. data/lib/glossarist/v1/cross_references.rb +41 -0
  60. data/lib/glossarist/v1/register.rb +50 -0
  61. data/lib/glossarist/v1.rb +9 -0
  62. data/lib/glossarist/validation_result.rb +38 -0
  63. data/lib/glossarist/version.rb +1 -1
  64. data/lib/glossarist.rb +29 -4
  65. metadata +53 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a0f63a8b75f3e01fdceeaadbadac4359e59721396224ba34932f17b49f631b6
4
- data.tar.gz: d674b921051ca918c0d08ae57953ae8f7c92c66e57d2ad55ad128a93f8bbcfa0
3
+ metadata.gz: 37d088868a3cacb2d02ec05fb6498cc3b053e8663e3e23e20f8b5ac0f5687dd2
4
+ data.tar.gz: bb1a08101aaaa0400332b9d4bb4c10383386a30e2b5624a612c5abbc1d23ca12
5
5
  SHA512:
6
- metadata.gz: abf0fdfa59b35dd22c412e21ba4b84bde7e24aa7e36ddba608deef1d5ead0f6c5f1ae462be05a1c30cfa38ca824471b77ed9b89ef5bfdcacd692e9dc6122cd5b
7
- data.tar.gz: 937ad7ae0b777b9b882f0806292c2b5578d0c91e1e4b1cc1127c40e4caa51ef662539570f235224e4ebcc61fa9a749bc7a272a88bbf29aece1ba28a4c404220b
6
+ metadata.gz: df4af9ceee95f45084e27d38d4430040f1f9620b7a71f6a669c1db508b6bb99a14440238289c81dc273d2de792fed42fb3615960b1f831c9bae0722245d5ef03
7
+ data.tar.gz: edf63cb34ed349a15870412f078bf576326cdb62614d730650779f782452fa24c6de682b156e0ad1a9b7fce5a9a76b6fd803c41a5f092af0e8c84a430c78d10f
data/.gitignore CHANGED
@@ -21,3 +21,4 @@ localcache
21
21
 
22
22
  .vscode
23
23
 
24
+ TODO*
data/.rubocop_todo.yml CHANGED
@@ -1,125 +1,23 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2026-03-24 03:31:43 UTC using RuboCop version 1.86.0.
3
+ # on 2026-05-04 09:39:17 UTC using RuboCop version 1.86.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 1
10
- # This cop supports safe autocorrection (--autocorrect).
11
- Gemspec/RequireMFA:
12
- Exclude:
13
- - 'glossarist.gemspec'
14
-
15
9
  # Offense count: 1
16
10
  Gemspec/RequiredRubyVersion:
17
11
  Exclude:
18
12
  - 'glossarist.gemspec'
19
13
 
20
- # Offense count: 13
21
- # This cop supports safe autocorrection (--autocorrect).
22
- # Configuration parameters: EnforcedStyle, IndentationWidth.
23
- # SupportedStyles: with_first_argument, with_fixed_indentation
24
- Layout/ArgumentAlignment:
25
- Exclude:
26
- - 'lib/glossarist/concept.rb'
27
- - 'lib/glossarist/concept_data.rb'
28
- - 'lib/glossarist/concept_manager.rb'
29
- - 'lib/glossarist/designation/grammar_info.rb'
30
- - 'lib/glossarist/managed_concept.rb'
31
- - 'spec/features/v2_serialization_spec.rb'
32
- - 'spec/unit/locality_spec.rb'
33
-
34
- # Offense count: 2
35
- # This cop supports safe autocorrection (--autocorrect).
36
- # Configuration parameters: EnforcedStyleAlignWith.
37
- # SupportedStylesAlignWith: either, start_of_block, start_of_line
38
- Layout/BlockAlignment:
39
- Exclude:
40
- - 'spec/features/v2_serialization_spec.rb'
41
-
42
- # Offense count: 2
43
- # This cop supports safe autocorrection (--autocorrect).
44
- Layout/BlockEndNewline:
45
- Exclude:
46
- - 'spec/features/v2_serialization_spec.rb'
47
-
48
- # Offense count: 2
49
- # This cop supports safe autocorrection (--autocorrect).
50
- Layout/ClosingParenthesisIndentation:
51
- Exclude:
52
- - 'spec/features/multi_content_yaml_serialization_spec.rb'
53
- - 'spec/features/v2_serialization_spec.rb'
54
-
55
- # Offense count: 2
56
- # This cop supports safe autocorrection (--autocorrect).
57
- # Configuration parameters: EnforcedStyle, IndentationWidth.
58
- # SupportedStyles: consistent, consistent_relative_to_receiver, special_for_inner_method_call, special_for_inner_method_call_in_parentheses
59
- Layout/FirstArgumentIndentation:
60
- Exclude:
61
- - 'spec/features/multi_content_yaml_serialization_spec.rb'
62
- - 'spec/features/v2_serialization_spec.rb'
63
-
64
- # Offense count: 10
65
- # This cop supports safe autocorrection (--autocorrect).
66
- # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
67
- # SupportedHashRocketStyles: key, separator, table
68
- # SupportedColonStyles: key, separator, table
69
- # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
70
- Layout/HashAlignment:
71
- Exclude:
72
- - 'exe/glossarist'
73
- - 'lib/glossarist/concept_data.rb'
74
- - 'lib/glossarist/designation/grammar_info.rb'
75
- - 'spec/unit/locality_spec.rb'
76
-
77
- # Offense count: 1
78
- # This cop supports safe autocorrection (--autocorrect).
79
- # Configuration parameters: EnforcedStyle.
80
- # SupportedStyles: normal, indented_internal_methods
81
- Layout/IndentationConsistency:
82
- Exclude:
83
- - 'glossarist.gemspec'
84
-
85
- # Offense count: 4
86
- # This cop supports safe autocorrection (--autocorrect).
87
- # Configuration parameters: Width, EnforcedStyleAlignWith, AllowedPatterns.
88
- # SupportedStylesAlignWith: start_of_line, relative_to_receiver
89
- Layout/IndentationWidth:
90
- Exclude:
91
- - 'spec/features/v2_serialization_spec.rb'
92
-
93
- # Offense count: 90
14
+ # Offense count: 196
94
15
  # This cop supports safe autocorrection (--autocorrect).
95
16
  # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
96
17
  # URISchemes: http, https
97
18
  Layout/LineLength:
98
19
  Enabled: false
99
20
 
100
- # Offense count: 2
101
- # This cop supports safe autocorrection (--autocorrect).
102
- # Configuration parameters: EnforcedStyle.
103
- # SupportedStyles: symmetrical, new_line, same_line
104
- Layout/MultilineMethodCallBraceLayout:
105
- Exclude:
106
- - 'spec/features/multi_content_yaml_serialization_spec.rb'
107
- - 'spec/features/v2_serialization_spec.rb'
108
-
109
- # Offense count: 20
110
- # This cop supports safe autocorrection (--autocorrect).
111
- # Configuration parameters: AllowInHeredoc.
112
- Layout/TrailingWhitespace:
113
- Exclude:
114
- - 'exe/glossarist'
115
- - 'lib/glossarist/concept.rb'
116
- - 'lib/glossarist/concept_data.rb'
117
- - 'lib/glossarist/concept_manager.rb'
118
- - 'lib/glossarist/designation/grammar_info.rb'
119
- - 'lib/glossarist/managed_concept.rb'
120
- - 'spec/features/v2_serialization_spec.rb'
121
- - 'spec/unit/locality_spec.rb'
122
-
123
21
  # Offense count: 1
124
22
  # Configuration parameters: AllowedMethods.
125
23
  # AllowedMethods: enums
@@ -132,53 +30,72 @@ Lint/DuplicateMethods:
132
30
  Exclude:
133
31
  - 'lib/glossarist/managed_concept.rb'
134
32
 
135
- # Offense count: 3
136
- # This cop supports unsafe autocorrection (--autocorrect-all).
137
- Lint/NonAtomicFileOperation:
33
+ # Offense count: 1
34
+ # This cop supports safe autocorrection (--autocorrect).
35
+ # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
36
+ # NotImplementedExceptions: NotImplementedError
37
+ Lint/UnusedMethodArgument:
138
38
  Exclude:
139
- - 'lib/glossarist/concept_manager.rb'
39
+ - 'lib/glossarist/dataset_validator.rb'
140
40
 
141
- # Offense count: 4
41
+ # Offense count: 18
142
42
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
143
43
  Metrics/AbcSize:
144
44
  Exclude:
45
+ - 'lib/glossarist/cli/package_command.rb'
46
+ - 'lib/glossarist/cli/validate_command.rb'
145
47
  - 'lib/glossarist/concept_manager.rb'
48
+ - 'lib/glossarist/gcr_metadata.rb'
49
+ - 'lib/glossarist/gcr_package.rb'
50
+ - 'lib/glossarist/reference_extractor.rb'
51
+ - 'lib/glossarist/reference_resolver.rb'
52
+ - 'lib/glossarist/resolution_adapter/local.rb'
53
+ - 'lib/glossarist/schema_migration.rb'
146
54
  - 'lib/glossarist/utilities/uuid.rb'
55
+ - 'spec/unit/concept_collector_spec.rb'
147
56
 
148
- # Offense count: 2
57
+ # Offense count: 1
58
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
59
+ # AllowedMethods: refine
60
+ Metrics/BlockLength:
61
+ Max: 28
62
+
63
+ # Offense count: 15
149
64
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
150
65
  Metrics/CyclomaticComplexity:
151
66
  Exclude:
67
+ - 'lib/glossarist/concept_validator.rb'
152
68
  - 'lib/glossarist/designation/expression.rb'
69
+ - 'lib/glossarist/gcr_metadata.rb'
153
70
  - 'lib/glossarist/managed_concept.rb'
71
+ - 'lib/glossarist/reference_extractor.rb'
72
+ - 'lib/glossarist/reference_resolver.rb'
73
+ - 'lib/glossarist/resolution_adapter/local.rb'
74
+ - 'lib/glossarist/schema_migration.rb'
154
75
 
155
- # Offense count: 9
76
+ # Offense count: 31
156
77
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
157
78
  Metrics/MethodLength:
158
- Max: 19
79
+ Max: 42
159
80
 
160
- # Offense count: 1
81
+ # Offense count: 12
161
82
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
162
83
  Metrics/PerceivedComplexity:
163
84
  Exclude:
85
+ - 'lib/glossarist/concept_validator.rb'
164
86
  - 'lib/glossarist/designation/expression.rb'
87
+ - 'lib/glossarist/gcr_metadata.rb'
88
+ - 'lib/glossarist/reference_extractor.rb'
89
+ - 'lib/glossarist/reference_resolver.rb'
90
+ - 'lib/glossarist/resolution_adapter/local.rb'
91
+ - 'lib/glossarist/schema_migration.rb'
165
92
 
166
- # Offense count: 1
167
- # This cop supports safe autocorrection (--autocorrect).
168
- Performance/StringIdentifierArgument:
169
- Exclude:
170
- - 'spec/unit/collection_spec.rb'
171
-
172
- # Offense count: 3
173
- # This cop supports safe autocorrection (--autocorrect).
174
- # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
175
- # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
176
- # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
177
- # FunctionalMethods: let, let!, subject, watch
178
- # AllowedMethods: lambda, proc, it
179
- Style/BlockDelimiters:
93
+ # Offense count: 6
94
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
95
+ # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
96
+ Naming/MethodParameterName:
180
97
  Exclude:
181
- - 'spec/features/v2_serialization_spec.rb'
98
+ - 'lib/glossarist/schema_migration.rb'
182
99
 
183
100
  # Offense count: 6
184
101
  # This cop supports safe autocorrection (--autocorrect).
@@ -188,28 +105,15 @@ Style/FormatStringToken:
188
105
  EnforcedStyle: unannotated
189
106
 
190
107
  # Offense count: 1
191
- # This cop supports unsafe autocorrection (--autocorrect-all).
192
- Style/MapIntoArray:
108
+ # Configuration parameters: AllowedClasses.
109
+ Style/OneClassPerFile:
193
110
  Exclude:
194
- - 'spec/unit/collection_spec.rb'
111
+ - 'spec/**/*'
112
+ - 'test/**/*'
113
+ - 'lib/glossarist.rb'
195
114
 
196
115
  # Offense count: 1
197
116
  # Configuration parameters: Max.
198
117
  Style/SafeNavigationChainLength:
199
118
  Exclude:
200
119
  - 'lib/glossarist/managed_concept.rb'
201
-
202
- # Offense count: 2
203
- # This cop supports safe autocorrection (--autocorrect).
204
- # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
205
- # SupportedStyles: single_quotes, double_quotes
206
- Style/StringLiterals:
207
- Exclude:
208
- - 'glossarist.gemspec'
209
-
210
- # Offense count: 2
211
- # This cop supports safe autocorrection (--autocorrect).
212
- Style/SuperArguments:
213
- Exclude:
214
- - 'lib/glossarist/designation/base.rb'
215
- - 'lib/glossarist/designation/expression.rb'
data/CLAUDE.md CHANGED
@@ -15,9 +15,9 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
15
15
 
16
16
  Glossarist is a Ruby gem implementing the [Glossarist concept model](https://github.com/glossarist/concept-model) (ISO 10241-1). It provides classes for managing terminology glossaries with multi-language support, serialization to/from YAML, and bibliography integration via Relaton.
17
17
 
18
- ### Core Model Hierarchy
18
+ All model classes use `Lutaml::Model::Serializable` for serialization.
19
19
 
20
- All model classes use `Lutaml::Model::Serializable` for serialization. Key classes:
20
+ ### Core Model Hierarchy
21
21
 
22
22
  - **`ManagedConceptCollection`** (`managed_concept_collection.rb`) — top-level enumerable collection of ManagedConcepts. Entry point for loading/saving glossaries via `ConceptManager`.
23
23
  - **`ManagedConcept`** (`managed_concept.rb`) — a managed concept with `ManagedConceptData` (groups, localized_concepts map, sources), related concepts, dates, and status. Delegates localization via `add_l10n`/`localization(lang)`.
@@ -26,9 +26,13 @@ All model classes use `Lutaml::Model::Serializable` for serialization. Key class
26
26
  - **`ConceptData`** (`concept_data.rb`) — the data payload inside `Concept`: definition, terms, examples, notes, sources, language_code. Uses `DetailedDefinition` collections for definition/examples/notes.
27
27
  - **`ManagedConceptData`** (`managed_concept_data.rb`) — the data payload inside `ManagedConcept`: id, localized_concepts hash (lang_code => uuid), groups, sources.
28
28
 
29
+ ### UUID Generation
30
+
31
+ Concepts use deterministic UUID v5 (SHA-1) derived from their serialized YAML content and the OID namespace (`Utilities::UUID`). This means a concept's UUID is stable across sessions as long as its data doesn't change.
32
+
29
33
  ### Designation (STI-like pattern)
30
34
 
31
- `Designation::Base` (`designation/base.rb`) uses a self-referencing factory pattern (`of_yaml`) that dispatches to subclasses based on `type` field: `Expression`, `Symbol`, `Abbreviation`, `GraphicalSymbol`, `LetterSymbol`. The mapping is in `SERIALIZED_TYPES`.
35
+ `Designation::Base` (`designation/base.rb`) uses a self-referencing factory pattern (`of_yaml`) that dispatches to subclasses based on `type` field: `Expression`, `Symbol`, `Abbreviation`, `GraphicalSymbol`, `LetterSymbol`. The bi-directional mapping is in `SERIALIZED_TYPES` (`designation.rb`).
32
36
 
33
37
  ### YAML Serialization
34
38
 
@@ -46,14 +50,36 @@ All model classes use `Lutaml::Model::Serializable` for serialization. Key class
46
50
 
47
51
  ### Collections
48
52
 
49
- `collections/` contains `BibliographyCollection` (extends `Relaton::Db` for bibliography caching), `AssetCollection`, `Collection` (base enumerable), and `DesignationCollection`.
53
+ Custom collection classes in `collections/` extend `Lutaml::Model::Collection`:
54
+ - **`LocalizationCollection`** — keyed by `language_code`, used for `ManagedConceptData#localizations`.
55
+ - **`DetailedDefinitionCollection`**, **`ConceptSourceCollection`** — typed collections for ConceptData fields.
56
+ - **`BibliographyCollection`** — extends `Relaton::Db` for bibliography caching with cache version checking.
57
+ - **`AssetCollection`**, **`Collection`** (base enumerable), **`DesignationCollection`**.
58
+
59
+ ### GCR Packaging
60
+
61
+ Three classes handle glossary concept registry (GCR) ZIP packages:
62
+ - **`GcrPackage`** (`gcr_package.rb`) — creates/loads/validates ZIP archives containing `metadata.yaml`, `register.yaml`, and `concepts/*.yaml` entries.
63
+ - **`GcrMetadata`** (`gcr_metadata.rb`) — package metadata (shortname, version, languages, statistics). Built from concepts via `GcrMetadata.from_concepts`.
64
+ - **`GcrStatistics`** (`gcr_statistics.rb`) — computes stats (total concepts, languages, concepts by status) from concept data.
65
+ - **`SchemaMigration`** (`schema_migration.rb`) — migrates concepts from v0 (legacy IEV format) to v1, normalizing definitions, dates, entry statuses, and extracting inline references.
66
+ - **`ValidationResult`** (`validation_result.rb`) — simple errors/warnings container for package validation.
67
+
68
+ ### CLI
69
+
70
+ The `exe/glossarist` executable uses Thor. Currently provides `generate_latex` which converts concepts to LaTeX glossary entries via `ConceptSet`.
50
71
 
51
72
  ### Dependencies
52
73
 
53
74
  - `lutaml-model` (~> 0.8) — serialization framework (YAML/XML)
54
75
  - `relaton` (>= 2.0.0, < 3) — bibliography database integration
55
- - `thor` — CLI commands (e.g., `glossarist generate_latex`)
76
+ - `thor` — CLI commands
56
77
 
57
- ## Branch Notes
78
+ ## Gemfile Notes
58
79
 
59
- The `lutaml-model-0.8` branch upgrades from an earlier lutaml-model to 0.8, which requires explicit types on all attributes. Some upstream relaton-* gems (cen, ieee) haven't been updated yet; a compatibility patch is in `bibliography_collection.rb` that prepends `RelatonRegistryPatch` to gracefully skip incompatible backends.
80
+ The Gemfile overrides relaton gems from git branches for lutaml-model 0.8 compatibility:
81
+ - 5 repos use `fix/lutaml-model-0.8` branches (relaton-bib, relaton-iso, relaton-3gpp, relaton-bipm, relaton-bsi)
82
+ - 5 repos use `lutaml-integration` branches (relaton-calconnect, relaton-ccsds, relaton-cen, relaton-iec, relaton-itu)
83
+ - Released 2.0.0 gems have untyped lutaml-model attributes that fail with 0.8+
84
+ - relaton-bib 2.1.0 is released but sub-gems pin `~> 2.0.0`, blocking 2.1.0 adoption until upstream updates constraints
85
+ - Remove git overrides once relaton gems release versions with lutaml-model 0.8 support
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ source "https://rubygems.org"
5
5
  gemspec
6
6
 
7
7
  gem "canon"
8
- gem "lutaml-model", github: "lutaml/lutaml-model", ref: "main"
8
+ gem "lutaml-model", "~> 0.8.0"
9
9
  gem "rake", "~> 13.0"
10
10
  gem "rspec", "~> 3.0"
11
11
  gem "rubocop"
@@ -13,21 +13,22 @@ gem "rubocop-performance"
13
13
  gem "rubocop-rake"
14
14
  gem "rubocop-rspec"
15
15
 
16
- # Use lutaml-model 0.8 compatible branches for all relaton gems.
17
- # These branches add explicit types to all lutaml-model attributes,
18
- # which is required by lutaml-model 0.8+.
19
- # TODO: Remove these once relaton gems release versions with lutaml-model 0.8 support.
20
- %w[
21
- relaton relaton-bib relaton-iso
22
- relaton-3gpp relaton-bipm relaton-bsi relaton-calconnect
23
- relaton-ccsds relaton-cen relaton-cie relaton-doi relaton-ecma
24
- relaton-etsi relaton-gb relaton-iana relaton-iec relaton-ieee
25
- relaton-ietf relaton-iho relaton-isbn relaton-itu relaton-jis
26
- relaton-nist relaton-oasis relaton-ogc relaton-omg relaton-plateau
27
- relaton-un relaton-w3c relaton-xsf
28
- ].each do |g|
29
- ref = g == "relaton-bib" ? "upd-lutaml-model-to-0-8-0" : "upd-lutaml-model-to-0.8.0"
30
- gem g, github: "relaton/#{g}", ref: ref
31
- end
32
-
33
- gemspec
16
+ # Override relaton gems with lutaml-model 0.8 compatible versions.
17
+ # Released 2.0.0 gems have untyped lutaml-model attributes that fail with 0.8+.
18
+ # fix/lutaml-model-0.8 branches keep version 2.0.0 (compatible) + lutaml-model ~> 0.8.
19
+ # lutaml-integration branches also have typed attributes and work with relaton-bib ~> 2.0.0.
20
+ # TODO: Remove once relaton gems release versions with lutaml-model 0.8 support.
21
+ gem "relaton-3gpp", github: "relaton/relaton-3gpp",
22
+ branch: "fix/lutaml-model-0.8"
23
+ gem "relaton-bib", github: "relaton/relaton-bib", branch: "fix/lutaml-model-0.8"
24
+ gem "relaton-bipm", github: "relaton/relaton-bipm",
25
+ branch: "fix/lutaml-model-0.8"
26
+ gem "relaton-bsi", github: "relaton/relaton-bsi", branch: "fix/lutaml-model-0.8"
27
+ gem "relaton-calconnect", github: "relaton/relaton-calconnect",
28
+ branch: "lutaml-integration"
29
+ gem "relaton-ccsds", github: "relaton/relaton-ccsds",
30
+ branch: "lutaml-integration"
31
+ gem "relaton-cen", github: "relaton/relaton-cen", branch: "lutaml-integration"
32
+ gem "relaton-iec", github: "relaton/relaton-iec", branch: "lutaml-integration"
33
+ gem "relaton-iso", github: "relaton/relaton-iso", branch: "fix/lutaml-model-0.8"
34
+ gem "relaton-itu", github: "relaton/relaton-itu", branch: "lutaml-integration"