cocina-models 0.95.0 → 0.96.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -0
- data/Gemfile.lock +28 -30
- data/README.md +9 -7
- data/lib/cocina/models/citation_only_access.rb +1 -0
- data/lib/cocina/models/mapping/from_mods/note.rb +1 -6
- data/lib/cocina/models/release_tag.rb +1 -1
- data/lib/cocina/models/version.rb +1 -1
- data/lib/cocina/models.rb +1 -1
- data/openapi.yml +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da05dda48140bb467d82b84614b44beea26884fcd4cd0891a507a53e6f967e5b
|
4
|
+
data.tar.gz: 322900e86d817d5d65820389fb7a6a13c92d98e4b9d6f2150e49de4ddd34785a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce287a4da425257a40eb13e68f7eb7c2819fcd4658cef4d1fa81dae961d4e47df7a33ed2fe385e69a122c5542f73e42a441064e8d4f36fdafa8fdf6cc1bdaa84
|
7
|
+
data.tar.gz: cf060d2984d736229e2fbd68ba28e7b3b68efae7e4f393ca0c6bdf7d09fa6ccaa8cfc6c2c0924b37c498b2d762b5817c36a74f31953a72550cd68b748ecdd355
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cocina-models (0.
|
4
|
+
cocina-models (0.96.0)
|
5
5
|
activesupport
|
6
6
|
deprecation
|
7
7
|
dry-struct (~> 1.0)
|
@@ -21,7 +21,7 @@ PATH
|
|
21
21
|
GEM
|
22
22
|
remote: https://rubygems.org/
|
23
23
|
specs:
|
24
|
-
activesupport (7.1.3)
|
24
|
+
activesupport (7.1.3.2)
|
25
25
|
base64
|
26
26
|
bigdecimal
|
27
27
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
@@ -34,7 +34,7 @@ GEM
|
|
34
34
|
ast (2.4.2)
|
35
35
|
attr_extras (7.1.0)
|
36
36
|
base64 (0.2.0)
|
37
|
-
bigdecimal (3.1.
|
37
|
+
bigdecimal (3.1.7)
|
38
38
|
byebug (11.1.3)
|
39
39
|
committee (5.0.0)
|
40
40
|
json_schema (~> 0.14, >= 0.14.3)
|
@@ -45,10 +45,9 @@ GEM
|
|
45
45
|
connection_pool (2.4.1)
|
46
46
|
deprecation (1.1.0)
|
47
47
|
activesupport
|
48
|
-
diff-lcs (1.5.
|
48
|
+
diff-lcs (1.5.1)
|
49
49
|
docile (1.4.0)
|
50
|
-
drb (2.2.
|
51
|
-
ruby2_keywords
|
50
|
+
drb (2.2.1)
|
52
51
|
dry-core (1.0.1)
|
53
52
|
concurrent-ruby (~> 1.0)
|
54
53
|
zeitwerk (~> 2.6)
|
@@ -73,7 +72,7 @@ GEM
|
|
73
72
|
activesupport (>= 3.0, < 8.0)
|
74
73
|
equivalent-xml (0.6.0)
|
75
74
|
nokogiri (>= 1.4.3)
|
76
|
-
i18n (1.14.
|
75
|
+
i18n (1.14.4)
|
77
76
|
concurrent-ruby (~> 1.0)
|
78
77
|
ice_nine (0.11.2)
|
79
78
|
json (2.7.1)
|
@@ -82,10 +81,10 @@ GEM
|
|
82
81
|
multi_json
|
83
82
|
language_server-protocol (3.17.0.3)
|
84
83
|
mini_portile2 (2.8.5)
|
85
|
-
minitest (5.
|
84
|
+
minitest (5.22.3)
|
86
85
|
multi_json (1.15.0)
|
87
86
|
mutex_m (0.2.0)
|
88
|
-
nokogiri (1.16.
|
87
|
+
nokogiri (1.16.3)
|
89
88
|
mini_portile2 (~> 2.8.2)
|
90
89
|
racc (~> 1.4)
|
91
90
|
openapi3_parser (0.9.2)
|
@@ -99,29 +98,29 @@ GEM
|
|
99
98
|
patience_diff (1.2.0)
|
100
99
|
optimist (~> 3.0)
|
101
100
|
racc (1.7.3)
|
102
|
-
rack (3.0.
|
101
|
+
rack (3.0.10)
|
103
102
|
rainbow (3.1.1)
|
104
103
|
rake (13.1.0)
|
105
104
|
regexp_parser (2.9.0)
|
106
105
|
rexml (3.2.6)
|
107
|
-
rspec (3.
|
108
|
-
rspec-core (~> 3.
|
109
|
-
rspec-expectations (~> 3.
|
110
|
-
rspec-mocks (~> 3.
|
111
|
-
rspec-core (3.
|
112
|
-
rspec-support (~> 3.
|
113
|
-
rspec-expectations (3.
|
106
|
+
rspec (3.13.0)
|
107
|
+
rspec-core (~> 3.13.0)
|
108
|
+
rspec-expectations (~> 3.13.0)
|
109
|
+
rspec-mocks (~> 3.13.0)
|
110
|
+
rspec-core (3.13.0)
|
111
|
+
rspec-support (~> 3.13.0)
|
112
|
+
rspec-expectations (3.13.0)
|
114
113
|
diff-lcs (>= 1.2.0, < 2.0)
|
115
|
-
rspec-support (~> 3.
|
116
|
-
rspec-mocks (3.
|
114
|
+
rspec-support (~> 3.13.0)
|
115
|
+
rspec-mocks (3.13.0)
|
117
116
|
diff-lcs (>= 1.2.0, < 2.0)
|
118
|
-
rspec-support (~> 3.
|
119
|
-
rspec-support (3.
|
117
|
+
rspec-support (~> 3.13.0)
|
118
|
+
rspec-support (3.13.1)
|
120
119
|
rspec_junit_formatter (0.6.0)
|
121
120
|
rspec-core (>= 2, < 4, != 2.12.0)
|
122
121
|
rss (0.3.0)
|
123
122
|
rexml
|
124
|
-
rubocop (1.
|
123
|
+
rubocop (1.62.1)
|
125
124
|
json (~> 2.3)
|
126
125
|
language_server-protocol (>= 3.17.0)
|
127
126
|
parallel (~> 1.10)
|
@@ -129,38 +128,37 @@ GEM
|
|
129
128
|
rainbow (>= 2.2.2, < 4.0)
|
130
129
|
regexp_parser (>= 1.8, < 3.0)
|
131
130
|
rexml (>= 3.2.5, < 4.0)
|
132
|
-
rubocop-ast (>= 1.
|
131
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
133
132
|
ruby-progressbar (~> 1.7)
|
134
133
|
unicode-display_width (>= 2.4.0, < 3.0)
|
135
|
-
rubocop-ast (1.
|
136
|
-
parser (>= 3.
|
134
|
+
rubocop-ast (1.31.2)
|
135
|
+
parser (>= 3.3.0.4)
|
137
136
|
rubocop-capybara (2.20.0)
|
138
137
|
rubocop (~> 1.41)
|
139
138
|
rubocop-factory_bot (2.25.1)
|
140
139
|
rubocop (~> 1.41)
|
141
140
|
rubocop-rake (0.6.0)
|
142
141
|
rubocop (~> 1.0)
|
143
|
-
rubocop-rspec (2.
|
142
|
+
rubocop-rspec (2.27.1)
|
144
143
|
rubocop (~> 1.40)
|
145
144
|
rubocop-capybara (~> 2.17)
|
146
145
|
rubocop-factory_bot (~> 2.22)
|
147
146
|
ruby-progressbar (1.13.0)
|
148
|
-
ruby2_keywords (0.0.5)
|
149
147
|
simplecov (0.22.0)
|
150
148
|
docile (~> 1.1)
|
151
149
|
simplecov-html (~> 0.11)
|
152
150
|
simplecov_json_formatter (~> 0.1)
|
153
151
|
simplecov-html (0.12.3)
|
154
152
|
simplecov_json_formatter (0.1.4)
|
155
|
-
super_diff (0.
|
153
|
+
super_diff (0.11.0)
|
156
154
|
attr_extras (>= 6.2.4)
|
157
155
|
diff-lcs
|
158
156
|
patience_diff
|
159
|
-
thor (1.3.
|
157
|
+
thor (1.3.1)
|
160
158
|
tzinfo (2.0.6)
|
161
159
|
concurrent-ruby (~> 1.0)
|
162
160
|
unicode-display_width (2.5.0)
|
163
|
-
zeitwerk (2.6.
|
161
|
+
zeitwerk (2.6.13)
|
164
162
|
|
165
163
|
PLATFORMS
|
166
164
|
ruby
|
data/README.md
CHANGED
@@ -83,7 +83,7 @@ export DATABASE_HOSTNAME=$DOR_SERVICES_DB_PROD_HOST
|
|
83
83
|
export DATABASE_PASSWORD=$DOR_SERVICES_DB_PROD_PWD
|
84
84
|
```
|
85
85
|
|
86
|
-
4. Run `bin/validate-cocina
|
86
|
+
4. Run `bin/validate-cocina` (_NOTE:_ You likely want to run this in a screen session, as it can take many hours to complete, especially against prod):
|
87
87
|
```
|
88
88
|
export RUBYOPT='-W:no-deprecated -W:no-experimental'
|
89
89
|
RAILS_ENV=production bin/validate-cocina -p 8
|
@@ -143,7 +143,7 @@ which pushes the gem to rubygems.org.
|
|
143
143
|
|
144
144
|
### Step 2: Update client gems coupled to the models
|
145
145
|
|
146
|
-
Release new versions of [sdr-client](https://github.com/sul-dlss/sdr-client), [dor-services-client](https://github.com/sul-dlss/dor-services-client/), and [dor_indexing](https://github.com/sul-dlss/dor_indexing/) pinned to use the new cocina-models version because applications such as [Argo](https://github.com/sul-dlss/argo) and [Dor-Services-App](https://github.com/sul-dlss/dor-services-app)depend on these gems using the same models.
|
146
|
+
Release new versions of [sdr-client](https://github.com/sul-dlss/sdr-client), [dor-services-client](https://github.com/sul-dlss/dor-services-client/), and [dor_indexing](https://github.com/sul-dlss/dor_indexing/) pinned to use the new cocina-models version because applications such as [Argo](https://github.com/sul-dlss/argo) and [Dor-Services-App](https://github.com/sul-dlss/dor-services-app) depend on these gems using the same models.
|
147
147
|
|
148
148
|
### Step 3: Update services directly coupled to the models
|
149
149
|
|
@@ -164,9 +164,9 @@ This can be accomplished by copying and pasting the cocina-models schemas to the
|
|
164
164
|
|
165
165
|
If step 3A was needed, use the same PRs to also bump the versions of cocina-models, sdr-client, and dor-services-client in these applications/services. Why? When [dor-services-app](https://github.com/sul-dlss/dor-services-app), for example, is updated to use the new models (via the auto-update script), these clients should be updated at the same time or there is risk of models produced by dor-services-app not being acceptable to the clients.
|
166
166
|
|
167
|
-
With or without step 3A, perform `bundle update` for cocina-models, sdr-client, dor-services-client and dor_indexing
|
167
|
+
With or without step 3A, perform `bundle update` for cocina-models, sdr-client, dor-services-client and dor_indexing gems in the listed services and then make PRs for those repos. You may need to update how these gems are pinned in the `Gemfile` in order to bump them.
|
168
168
|
|
169
|
-
|
169
|
+
NOTE: dor_indexing gem is used by dor-services-app and dor_indexing_app only. dor_indexing_app does NOT need to be updated in this step.
|
170
170
|
|
171
171
|
#### Step 3C: Merge 'em
|
172
172
|
|
@@ -182,12 +182,14 @@ There are scripts to help with updating other dependent applications:
|
|
182
182
|
|
183
183
|
There is a Jenkins CI job that you can run manually to create all the PRs you need. Head to https://sul-ci-prod.stanford.edu/job/SUL-DLSS/job/access-update-scripts/job/cocina-level2-updates/ and then click `Build Now`. Click the new build that is created and then `Console Output` to watch the build. Once it has completed, you can proceed with the next step.
|
184
184
|
|
185
|
-
If for some reason the above method does not work, the sul-dlss/access-update-scripts repo has a script for this: `cocina_level2_prs.rb
|
185
|
+
If for some reason the above method does not work, the sul-dlss/access-update-scripts repo has a script for this: [`cocina_level2_prs.rb`](https://github.com/sul-dlss/access-update-scripts/blob/master/cocina_level2_prs.rb). You will need a github access token with scopes of "read:org" and "repo" (see https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) to run it, as noted in the comments at the top of that script.
|
186
186
|
|
187
187
|
#### Step 4B: Merge the Cocina Level 2 PRs
|
188
188
|
|
189
|
-
[sul-dlss/access-update-scripts](https://github.com/sul-dlss/access-update-scripts) has a switch in the `merge-all.rb` script for this, as noted in the comments at the top of that script.
|
190
|
-
|
189
|
+
[sul-dlss/access-update-scripts](https://github.com/sul-dlss/access-update-scripts) has a switch in the `merge-all.rb` script for this, as noted in the comments at the top of that script.
|
190
|
+
```
|
191
|
+
REPOS_PATH=infrastructure GH_ACCESS_TOKEN=abc123 COCINA_LEVEL2= ./merge-all.rb
|
192
|
+
```
|
191
193
|
### Step 5: Deploy all affected applications together
|
192
194
|
|
193
195
|
[sul-dlss/sdr-deploy](https://github.com/sul-dlss/sdr-deploy) has a flag (-c) in the deploy script to limit deploys to cocina dependent applications. Refer to instructions in the [sdr-deploy/README](https://github.com/sul-dlss/sdr-deploy/blob/main/README.md#only-deploy-repos-related-to-cocina-models-update).
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
module Cocina
|
4
4
|
module Models
|
5
|
+
# A type of access for an object wherein users can see the metadata and a list of files, but the files will not have view or download access
|
5
6
|
class CitationOnlyAccess < Struct
|
6
7
|
# Access level.
|
7
8
|
attribute :view, Types::Strict::String.enum('citation-only')
|
@@ -141,12 +141,7 @@ module Cocina
|
|
141
141
|
}.tap do |attributes|
|
142
142
|
value_language = LanguageScript.build(node: node)
|
143
143
|
attributes[:valueLanguage] = value_language if value_language
|
144
|
-
|
145
|
-
if value_parts.size == 1
|
146
|
-
attributes[:value] = node.content
|
147
|
-
elsif value_parts.present?
|
148
|
-
attributes[:structuredValue] = value_parts.map { |value_part| { value: value_part } }
|
149
|
-
end
|
144
|
+
attributes[:value] = node.content if node.content.present?
|
150
145
|
end.compact
|
151
146
|
end
|
152
147
|
|
@@ -9,7 +9,7 @@ module Cocina
|
|
9
9
|
attribute? :who, Types::Strict::String
|
10
10
|
# What is being released. This item or the whole collection.
|
11
11
|
# example: self
|
12
|
-
attribute
|
12
|
+
attribute :what, Types::Strict::String.enum('self', 'collection')
|
13
13
|
# When did this action happen
|
14
14
|
attribute? :date, Types::Params::DateTime
|
15
15
|
# What platform is it released to
|
data/lib/cocina/models.rb
CHANGED
@@ -85,7 +85,7 @@ module Cocina
|
|
85
85
|
when *DRO::TYPES
|
86
86
|
has_metadata?(dyn) ? DROWithMetadata : DRO
|
87
87
|
when *Collection::TYPES
|
88
|
-
has_metadata?(dyn) ?
|
88
|
+
has_metadata?(dyn) ? CollectionWithMetadata : Collection
|
89
89
|
when *AdminPolicy::TYPES
|
90
90
|
has_metadata?(dyn) ? AdminPolicyWithMetadata : AdminPolicy
|
91
91
|
else
|
data/openapi.yml
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocina-models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.96.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -562,7 +562,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
562
562
|
- !ruby/object:Gem::Version
|
563
563
|
version: '0'
|
564
564
|
requirements: []
|
565
|
-
rubygems_version: 3.
|
565
|
+
rubygems_version: 3.5.6
|
566
566
|
signing_key:
|
567
567
|
specification_version: 4
|
568
568
|
summary: Data models for the SDR
|