valkyrie 3.5.0 → 3.6.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ba113a4df1fa120076006223d629be9d186f96736fbb363781bc78f6c038013
4
- data.tar.gz: 89e485a082def7836f884354b136c081496b5a9f36e98c2f9f31127dc053ab28
3
+ metadata.gz: dd992e314f4262841181b047c1069253b9ae74131fe5e88760ff266ee934d7b4
4
+ data.tar.gz: 0b9d0d17a2853fb2eda435a3afc2a6202af17b19a4d5d0ad4ecfbeaea0e34de5
5
5
  SHA512:
6
- metadata.gz: 3d3537379fb136ec2ca843e2dd13d85a22c46a9c74d94f1ca3cfb1ab32f4a193394ab1ff9deae649939e3260b0ba9e9d8f423f3fb87d40043d107ff646fb74bc
7
- data.tar.gz: 4a908d4d2574d5017bc81af1683d714b028b5d1ab17e086ff0f8ea6d0a764348f3efd3f308aeedac4623956ccfce915a5c5d611ab84d7e9e2d08c22d5afe623a
6
+ metadata.gz: a00872e00399a98d2435b846b6742af2095624e1054c80079e98b94b8ca8fe92d0f114d13f67668b348dfd0d3ab972c00abeef33f58cc5caab90fcc7b94ba76a
7
+ data.tar.gz: f8c7dcce4c7e2513d272e53a4c187eba830c16d37483dd0678f60921660b6d8b22f3dc051d9e459b6c7d6363b0c4b518c7be6cccec0c8ef854512075e8c2fbea
data/.circleci/config.yml CHANGED
@@ -9,13 +9,13 @@ jobs:
9
9
  type: "string"
10
10
  ruby:
11
11
  description: "Ruby version"
12
- default: "3.1.6"
12
+ default: "3.3.11"
13
13
  type: "string"
14
14
  docker:
15
15
  - image: cimg/ruby:<< parameters.ruby >>
16
16
  environment:
17
17
  RAILS_ENV: test
18
- - image: postgres:10.6-alpine
18
+ - image: postgres:15.2
19
19
  environment:
20
20
  POSTGRES_USER: postgres
21
21
  POSTGRES_DB: Valkyrie_gem_test
@@ -24,16 +24,14 @@ jobs:
24
24
  environment:
25
25
  CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
26
26
  JAVA_OPTIONS: "-Djetty.http.port=8988"
27
- - image: samvera/fcrepo4:5.1.0
28
- environment:
29
- CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
30
- JAVA_OPTIONS: "-Djetty.http.port=8998 -Dfcrepo.dynamic.jms.port=61618 -Dfcrepo.dynamic.stomp.port=61614"
31
- - image: fcrepo/fcrepo:6.5.1-RC3-tomcat9
27
+ - image: fcrepo/fcrepo:6.5-tomcat9
32
28
  environment:
33
29
  CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
34
30
  JAVA_OPTS: "-Djetty.http.port=8978 -Dfcrepo.dynamic.jms.port=61619 -Dfcrepo.dynamic.stomp.port=61615 -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
35
- - image: solr:7.7-alpine
31
+ - image: solr:9.9.0
36
32
  command: bin/solr -cloud -noprompt -f -p 8994
33
+ environment:
34
+ SOLR_MODULES: "analysis-extras,extraction"
37
35
  environment:
38
36
  BUNDLE_GEMFILE: << parameters.gemfile >>
39
37
  POSTGRES_PORT: 5432
@@ -60,22 +58,21 @@ jobs:
60
58
  cd solr/config
61
59
  zip -1 -r solr_config.zip ./*
62
60
  curl -H "Content-type:application/octet-stream" --data-binary @solr_config.zip "http://localhost:8994/solr/admin/configs?action=UPLOAD&name=valkyrie"
63
- curl -H 'Content-type: application/json' http://localhost:8994/api/collections/ -d '{create: {name: valkyrie-core-test, config: valkyrie, numShards: 1}}'
61
+ curl -H 'Content-type: application/json' http://localhost:8994/api/collections/ -d '{"name": "valkyrie-core-test", "config": "valkyrie", "numShards": 1}'
64
62
  # Install Bundler
65
63
  - run: gem install bundler -v '~> 2.0'
66
64
  - restore_cache:
67
65
  keys:
68
- - bundle-{{ checksum "<< parameters.gemfile >>" }}-{{ checksum "valkyrie.gemspec" }}-<< parameters.ruby >>-6
66
+ - bundle-{{ checksum "<< parameters.gemfile >>" }}-{{ checksum "valkyrie.gemspec" }}-<< parameters.ruby >>-7
69
67
  - run: sudo apt update -y && sudo apt-get install -y libpq-dev lsof
70
68
  - run:
71
69
  name: Set BUNDLE_GEMFILE
72
70
  command: |
73
71
  export BUNDLE_GEMFILE=~/project/<< parameters.gemfile >>
74
- - run:
75
- name: Install dependencies
76
- command: bundle install --path=vendor/bundle --jobs 4 --retry 3
72
+ - run: bundle config set path 'vendor/bundle'
73
+ - run: bundle install
77
74
  - save_cache:
78
- key: bundle-{{ checksum "<< parameters.gemfile >>" }}-{{ checksum "valkyrie.gemspec" }}-<< parameters.ruby >>-6
75
+ key: bundle-{{ checksum "<< parameters.gemfile >>" }}-{{ checksum "valkyrie.gemspec" }}-<< parameters.ruby >>-7
79
76
  paths:
80
77
  - "vendor/bundle"
81
78
  - "gemfiles/vendor/bundle"
@@ -97,44 +94,24 @@ workflows:
97
94
  jobs:
98
95
  - build:
99
96
  gemfile: "gemfiles/activerecord_7_2.gemfile"
100
- ruby: 3.3.5
97
+ ruby: 3.3.11
101
98
  name: "Ruby3-3_rails7-2"
102
99
  - build:
103
- gemfile: "gemfiles/activerecord_7_1.gemfile"
104
- ruby: 3.3.5
105
- name: "Ruby3-3_rails7-1"
106
- - build:
107
- gemfile: "gemfiles/activerecord_7_0.gemfile"
108
- ruby: 3.3.5
109
- name: "Ruby3-3_rails7-0"
110
- - build:
111
- gemfile: "gemfiles/activerecord_7_2.gemfile"
112
- ruby: 3.2.5
113
- name: "Ruby3-2_rails7-2"
114
- - build:
115
- gemfile: "gemfiles/activerecord_7_1.gemfile"
116
- ruby: 3.2.5
117
- name: "Ruby3-2_rails7-1"
118
- - build:
119
- gemfile: "gemfiles/activerecord_7_0.gemfile"
120
- ruby: 3.2.5
121
- name: "Ruby3-2_rails7-0"
100
+ gemfile: "gemfiles/activerecord_8_0.gemfile"
101
+ ruby: 3.3.11
102
+ name: "Ruby3-3_rails8-0"
122
103
  - build:
123
- gemfile: "gemfiles/activerecord_7_2.gemfile"
124
- ruby: 3.1.6
125
- name: "Ruby3-1_rails7-2"
126
- - build:
127
- gemfile: "gemfiles/activerecord_7_1.gemfile"
128
- ruby: 3.1.6
129
- name: "Ruby3-1_rails7-1"
104
+ gemfile: "gemfiles/activerecord_8_1.gemfile"
105
+ ruby: 3.3.11
106
+ name: "Ruby3-3_rails8-1"
130
107
  - build:
131
- gemfile: "gemfiles/activerecord_7_0.gemfile"
132
- ruby: 3.1.6
133
- name: "Ruby3-1_rails7-0"
108
+ gemfile: "gemfiles/activerecord_8_1.gemfile"
109
+ ruby: 3.4.9
110
+ name: "Ruby3-4_rails8-1"
134
111
  - build:
135
- gemfile: "gemfiles/faraday_1.gemfile"
136
- ruby: 3.1.6
137
- name: "Faraday1"
112
+ gemfile: "gemfiles/activerecord_8_1.gemfile"
113
+ ruby: 4.0.5
114
+ name: "Ruby4-0_rails8-1"
138
115
 
139
116
  nightly:
140
117
  triggers:
@@ -147,41 +124,21 @@ workflows:
147
124
  jobs:
148
125
  - build:
149
126
  gemfile: "gemfiles/activerecord_7_2.gemfile"
150
- ruby: 3.3.5
127
+ ruby: 3.3.11
151
128
  name: "Ruby3-3_rails7-2"
152
129
  - build:
153
- gemfile: "gemfiles/activerecord_7_1.gemfile"
154
- ruby: 3.3.5
155
- name: "Ruby3-3_rails7-1"
156
- - build:
157
- gemfile: "gemfiles/activerecord_7_0.gemfile"
158
- ruby: 3.3.5
159
- name: "Ruby3-3_rails7-0"
160
- - build:
161
- gemfile: "gemfiles/activerecord_7_2.gemfile"
162
- ruby: 3.2.5
163
- name: "Ruby3-2_rails7-2"
164
- - build:
165
- gemfile: "gemfiles/activerecord_7_1.gemfile"
166
- ruby: 3.2.5
167
- name: "Ruby3-2_rails7-1"
168
- - build:
169
- gemfile: "gemfiles/activerecord_7_0.gemfile"
170
- ruby: 3.2.5
171
- name: "Ruby3-2_rails7-0"
172
- - build:
173
- gemfile: "gemfiles/activerecord_7_2.gemfile"
174
- ruby: 3.1.6
175
- name: "Ruby3-1_rails7-2"
130
+ gemfile: "gemfiles/activerecord_8_0.gemfile"
131
+ ruby: 3.3.11
132
+ name: "Ruby3-3_rails8-0"
176
133
  - build:
177
- gemfile: "gemfiles/activerecord_7_1.gemfile"
178
- ruby: 3.1.6
179
- name: "Ruby3-1_rails7-1"
134
+ gemfile: "gemfiles/activerecord_8_1.gemfile"
135
+ ruby: 3.3.11
136
+ name: "Ruby3-3_rails8-1"
180
137
  - build:
181
- gemfile: "gemfiles/activerecord_7_0.gemfile"
182
- ruby: 3.1.6
183
- name: "Ruby3-1_rails7-0"
138
+ gemfile: "gemfiles/activerecord_8_1.gemfile"
139
+ ruby: 3.4.9
140
+ name: "Ruby3-4_rails8-1"
184
141
  - build:
185
- gemfile: "gemfiles/faraday_1.gemfile"
186
- ruby: 3.1.6
187
- name: "Faraday1"
142
+ gemfile: "gemfiles/activerecord_8_1.gemfile"
143
+ ruby: 4.0.5
144
+ name: "Ruby4-0_rails8-1"
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /tmp/
10
10
  /vendor
11
11
  /gemfiles/*.lock
12
+ .byebug_history
data/.lando.yml CHANGED
@@ -1,16 +1,19 @@
1
1
  name: valkyrie
2
2
  app_mount: false
3
3
  services:
4
- valkyrie_test_solr_7:
4
+ valkyrie_test_solr_9:
5
5
  app_mount: false
6
- type: solr:7
6
+ type: solr:9
7
7
  portforward: 8994
8
8
  core: valkyrie-core-test
9
9
  config:
10
10
  dir: solr/config
11
+ overrides:
12
+ environment:
13
+ SOLR_MODULES: "analysis-extras,extraction"
11
14
  valkyrie_database:
12
15
  app_mount: false
13
- type: postgres:10
16
+ type: postgres:15
14
17
  portforward: 5433
15
18
  valkyrie_fedora_4:
16
19
  type: compose
@@ -27,31 +30,13 @@ services:
27
30
  environment:
28
31
  CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
29
32
  portforward: 8988
30
- valkyrie_fedora_5:
31
- type: compose
32
- app_mount: false
33
- volumes:
34
- fedora5:
35
- services:
36
- image: fcrepo/fcrepo:5.1.1-multiplatform
37
- command:
38
- - "catalina.sh"
39
- - "run"
40
- volumes:
41
- - fedora5:/data
42
- ports:
43
- - 8998:8080
44
- environment:
45
- CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
46
- JAVA_OPTS: "-Dfcrepo.dynamic.jms.port=61620 -Dfcrepo.dynamic.stomp.port=61617 -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
47
- portforward: true
48
33
  valkyrie_fedora_6:
49
34
  type: compose
50
35
  app_mount: false
51
36
  volumes:
52
37
  fedora6:
53
38
  services:
54
- image: fcrepo/fcrepo:6.5.1-RC3-tomcat9
39
+ image: fcrepo/fcrepo:6.5-tomcat9
55
40
  command:
56
41
  - "catalina.sh"
57
42
  - "run"
data/Appraisals CHANGED
@@ -1,18 +1,12 @@
1
1
  # frozen_string_literal: true
2
-
3
- appraise "activerecord-7-2" do
4
- gem "activerecord", "~> 7.2.0"
2
+ appraise "activerecord-8-1" do
3
+ gem "activerecord", "~> 8.1.0"
5
4
  end
6
5
 
7
- appraise "activerecord-7-1" do
8
- gem "activerecord", "~> 7.1.0"
6
+ appraise "activerecord-8-0" do
7
+ gem "activerecord", "~> 8.0.0"
9
8
  end
10
9
 
11
- appraise "activerecord-7-0" do
12
- gem "activerecord", "~> 7.0.0"
13
- end
14
-
15
- appraise "faraday-1" do
16
- gem "faraday", "~> 1.0"
17
- gem "activerecord", "~> 7.0.0"
10
+ appraise "activerecord-7-2" do
11
+ gem "activerecord", "~> 7.2.0"
18
12
  end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ # v3.6.0 2026-07-23
2
+
3
+ * Update dependencies. ([tpendragon](https://github.com/tpendragon))
4
+ * Improve performance of Fedora 6. ([dolsysmith](https://github.com/dolsysmith))
5
+ * Add streaming support to Fedora storage adapter. ([eltiffster](https://github.com/eltiffster))
6
+
7
+ # v3.5.1 2026-01-16
8
+
9
+ * Remove Fedora 5. ([tpendragon](https://github.com/tpendragon))
10
+ * Limit LSOF command to the current process ID ([hackartisan](https://github.com/hackartisan))
11
+
1
12
  # v3.5.0 2024-12-10
2
13
 
3
14
  * Provides new boolean configuration setting `auto_cast_iso8601_as_datetime` ([dchandekstark](https://github.com/dchandekstark))
data/README.md CHANGED
@@ -224,14 +224,14 @@ custom adapters, but your application will still work.
224
224
  Using the shared specs in your own models is described in more detail on the [Shared Specs Wiki
225
225
  page](https://github.com/samvera/valkyrie/wiki/Shared-Specs).
226
226
 
227
- ### Fedora 5/6 Compatibility
227
+ ### Fedora 6 Compatibility
228
228
  When configuring your adapter, include the `fedora_version` parameter in your metadata or storage adapter
229
229
  config. If Fedora requires auth, you can also include that in the URL, e.g.:
230
230
 
231
231
  ```
232
232
  Valkyrie::Storage::Fedora.new(
233
233
  connection: Ldp::Client.new("http://fedoraAdmin:fedoraAdmin@localhost:8988/rest"),
234
- fedora_version: 5
234
+ fedora_version: 6
235
235
  )
236
236
  ```
237
237
  #### Pairtree paths in Fedora 4/6
@@ -3,7 +3,7 @@
3
3
 
4
4
  source "https://rubygems.org"
5
5
 
6
- gem "activerecord", "~> 7.0.0"
6
+ gem "activerecord", "~> 8.0.0"
7
7
  gem "ldp"
8
8
  gem "pg"
9
9
  gem "rsolr"
@@ -3,7 +3,7 @@
3
3
 
4
4
  source "https://rubygems.org"
5
5
 
6
- gem "activerecord", "~> 7.1.0"
6
+ gem "activerecord", "~> 8.1.0"
7
7
  gem "ldp"
8
8
  gem "pg"
9
9
  gem "rsolr"
@@ -42,7 +42,13 @@ module Valkyrie::Persistence::Fedora
42
42
  # @see https://www.w3.org/TR/ldp/#ldpc
43
43
  # @return [Ldp::Container::Basic]
44
44
  def graph_resource
45
- @graph_resource ||= ::Ldp::Container::Basic.new(connection, subject, nil, base_path)
45
+ # If the resource is a nested resource with a hashed URI,
46
+ # we don't want to query Fedora for a URI formed from this resource ID,
47
+ # because it will return everything at the base_path,
48
+ # resulting in a unnecessary work (clearing out the graph)
49
+ # Passing nil here returns an empty graph, which doesn't seem to cause problems
50
+ s = resource.id.to_s.start_with?("#") ? nil : subject
51
+ @graph_resource ||= ::Ldp::Container::Basic.new(connection, s, nil, base_path)
46
52
  end
47
53
 
48
54
  # Generate a URI from the Valkyrie Resource ID to be used as the RDF subject for Fedora LDP resources
@@ -20,6 +20,6 @@ module Valkyrie::Persistence
20
20
  require 'valkyrie/persistence/fedora/ordered_reader'
21
21
  require 'valkyrie/persistence/fedora/list_node'
22
22
 
23
- DEFAULT_FEDORA_VERSION = 5
23
+ DEFAULT_FEDORA_VERSION = 6
24
24
  end
25
25
  end
@@ -9,12 +9,12 @@ module Valkyrie::Persistence::Postgres
9
9
  #
10
10
  # @see https://github.com/samvera-labs/valkyrie/wiki/Set-up-Valkyrie-database-in-a-Rails-Application
11
11
  class MetadataAdapter
12
- # @return [Class] {Valkyrie::Persistence::Postgres::Persister}
12
+ # @return [Valkyrie::Persistence::Postgres::Persister]
13
13
  def persister
14
14
  Valkyrie::Persistence::Postgres::Persister.new(adapter: self)
15
15
  end
16
16
 
17
- # @return [Class] {Valkyrie::Persistence::Postgres::QueryService}
17
+ # @return [Valkyrie::Persistence::Postgres::QueryService]
18
18
  def query_service
19
19
  @query_service ||= Valkyrie::Persistence::Postgres::QueryService.new(
20
20
  resource_factory: resource_factory,
@@ -22,7 +22,7 @@ module Valkyrie::Persistence::Postgres
22
22
  )
23
23
  end
24
24
 
25
- # @return [Class] {Valkyrie::Persistence::Postgres::ResourceFactory}
25
+ # @return [Valkyrie::Persistence::Postgres::ResourceFactory]
26
26
  def resource_factory
27
27
  @resource_factory ||= Valkyrie::Persistence::Postgres::ResourceFactory.new(adapter: self)
28
28
  end
@@ -58,17 +58,18 @@ RSpec.shared_examples 'a Valkyrie::StorageAdapter' do
58
58
  pre_open_files = open_files
59
59
  uploaded_file = storage_adapter.upload(file: file, original_filename: 'foo.jpg', resource: resource, fake_upload_argument: true)
60
60
  file.close
61
- expect(pre_open_files.size).to eq open_files.size
61
+ expect(pre_open_files.size).to be <= open_files.size
62
62
 
63
63
  # No file handle left open from find_by
64
64
  pre_open_files = open_files
65
65
  the_file = storage_adapter.find_by(id: uploaded_file.id)
66
66
  expect(the_file).to be_kind_of Valkyrie::StorageAdapter::File
67
- expect(pre_open_files.size).to eq open_files.size
67
+ expect(pre_open_files.size).to be <= open_files.size
68
68
  end
69
69
 
70
70
  def open_files
71
- `lsof +D .`.split("\n").map { |r| r.split("\t").last }
71
+ GC.start
72
+ `lsof -p #{Process.pid}`.split("\n").map { |r| r.split(/\s+/).last }
72
73
  end
73
74
 
74
75
  it "can upload, validate, re-fetch, and delete a file" do
@@ -41,7 +41,7 @@ module Valkyrie::Storage
41
41
  end
42
42
 
43
43
  def file_path(id)
44
- id.to_s.gsub(/^#{Regexp.escape(protocol)}/, '')
44
+ id.to_s.delete_prefix(protocol)
45
45
  end
46
46
 
47
47
  # Return the file associated with the given identifier
@@ -116,7 +116,7 @@ module Valkyrie::Storage
116
116
  if fedora_version == 4
117
117
  version_graph&.fetch("http://fedora.info/definitions/v4/repository#hasVersion", [])
118
118
  else
119
- # Fedora 5/6 use Memento.
119
+ # Fedora 6 uses Memento.
120
120
  version_graph&.fetch("http://www.w3.org/ns/ldp#contains", [])&.sort_by { |x| x["@id"] }&.reverse
121
121
  end
122
122
  end
@@ -176,33 +176,10 @@ module Valkyrie::Storage
176
176
  end
177
177
  # If there's a deletion marker, don't return anything. (Fedora 4)
178
178
  return nil if response.status == 410
179
- # This is awful, but versioning is locked to per-second increments,
180
- # returns a 409 in Fedora 5 if there's a conflict.
181
- if response.status == 409
182
- sleep(0.5)
183
- return mint_version(identifier, version_name)
184
- end
185
179
  raise "Version unable to be created" unless response.status == 201
186
180
  valkyrie_identifier(uri: response.headers["location"].gsub("/fcr:metadata", ""))
187
181
  end
188
182
 
189
- class IOProxy
190
- # @param response [Ldp::Resource::BinarySource]
191
- attr_reader :size
192
- def initialize(source)
193
- @source = source
194
- @size = source.size
195
- end
196
- delegate :each, :read, :rewind, to: :io
197
-
198
- # There is no streaming support in faraday (https://github.com/lostisland/faraday/pull/604)
199
- # @return [StringIO]
200
- def io
201
- @io ||= StringIO.new(@source)
202
- end
203
- end
204
- private_constant :IOProxy
205
-
206
183
  # Translate the Valkrie ID into a URL for the fedora file
207
184
  # @return [RDF::URI]
208
185
  def fedora_identifier(id:)
@@ -217,11 +194,15 @@ module Valkyrie::Storage
217
194
 
218
195
  private
219
196
 
220
- # @return [IOProxy]
197
+ # @return [StringIO]
221
198
  def response(id:)
222
- response = connection.http.get(fedora_identifier(id: id))
199
+ io = StringIO.new
200
+ response = connection.http.get(fedora_identifier(id: id)) do |request|
201
+ request.options.on_data = proc { |chunk, _size| io.write(chunk) }
202
+ end
223
203
  raise Valkyrie::StorageAdapter::FileNotFound, "HTTP #{response.status} #{response.body}" unless response.success?
224
- IOProxy.new(response.body)
204
+ io.rewind
205
+ io
225
206
  end
226
207
 
227
208
  def default_resource_uri_transformer
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Valkyrie
3
- VERSION = "3.5.0"
3
+ VERSION = "3.6.0"
4
4
  end
@@ -48,43 +48,47 @@
48
48
  <schema name="Hydra Demo Index" version="1.5">
49
49
  <!-- attribute "name" is the name of this schema and is only used for display purposes.
50
50
  Applications should change this to reflect the nature of the search collection.
51
- version="1.4" is Solr's version number for the schema syntax and semantics. It should
51
+ version="1.5" is Solr's version number for the schema syntax and semantics. It should
52
52
  not normally be changed by applications.
53
53
  1.0: multiValued attribute did not exist, all fields are multiValued by nature
54
54
  1.1: multiValued attribute introduced, false by default
55
55
  1.2: omitTermFreqAndPositions attribute introduced, true by default except for text fields.
56
56
  1.3: removed optional field compress feature
57
57
  1.4: default auto-phrase (QueryParser feature) to off
58
+ 1.5: omitNorms defaults to true for primitive field types (int, float, boolean, string...)
59
+ # TODO 1.6: useDocValuesAsStored defaults to true.
60
+ # See https://github.com/samvera/active_fedora/issues/1346
58
61
  -->
59
62
 
60
63
  <types>
61
64
  <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
62
- <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
65
+ <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
63
66
  <fieldType name="rand" class="solr.RandomSortField" omitNorms="true"/>
64
-
67
+
65
68
  <!-- Default numeric field types. -->
66
- <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
67
- <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
68
- <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
69
- <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
70
-
71
- <!-- trie numeric field types for faster range queries -->
72
- <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
73
- <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
74
- <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
75
- <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
76
-
69
+ <fieldType name="int" class="solr.IntPointField" docValues="true"/>
70
+ <fieldType name="float" class="solr.FloatPointField" docValues="true"/>
71
+ <fieldType name="long" class="solr.LongPointField" docValues="true"/>
72
+ <fieldType name="double" class="solr.DoublePointField" docValues="true"/>
73
+
74
+ <!-- PointField numeric field types for faster range queries -->
75
+ <fieldType name="tint" class="solr.IntPointField" docValues="true"/>
76
+ <fieldType name="tfloat" class="solr.FloatPointField" docValues="true"/>
77
+ <fieldType name="tlong" class="solr.LongPointField" docValues="true"/>
78
+ <fieldType name="tdouble" class="solr.DoublePointField" docValues="true"/>
79
+
77
80
  <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
78
81
  Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
79
82
  -->
80
- <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
81
- <!-- A Trie based date field for faster date range queries and date faceting. -->
82
- <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
83
-
84
-
83
+ <fieldType name="date" class="solr.DatePointField" docValues="true"/>
84
+ <!-- A PointField based date field for faster date range queries and date faceting. -->
85
+ <fieldType name="tdate" class="solr.DatePointField" docValues="true"/>
86
+ <!-- A DateRange based date field for truly faster date range queries. -->
87
+ <fieldType name="dateRange" class="solr.DateRangeField" omitNorms="true" omitTermFreqAndPositions="true"/>
88
+
85
89
  <!-- This point type indexes the coordinates as separate fields (subFields)
86
90
  If subFieldType is defined, it references a type, and a dynamic field
87
- definition is created matching *___<typename>. Alternately, if
91
+ definition is created matching *___<typename>. Alternately, if
88
92
  subFieldSuffix is defined, that is used to create the subFields.
89
93
  Example: if subFieldType="double", then the coordinates would be
90
94
  indexed in fields myloc_0___double,myloc_1___double.
@@ -94,17 +98,14 @@
94
98
  users normally should not need to know about them.
95
99
  -->
96
100
  <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>
97
-
98
- <!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
99
- <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
100
-
101
- <!-- An alternative geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
101
+
102
+ <!-- A geospatial field type new to Solr 4. It supports multiValued and polygon shapes.
102
103
  For more information about this and other Spatial fields new to Solr 4, see:
103
104
  http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
104
105
  -->
105
106
  <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
106
107
  geo="true" distErrPct="0.025" maxDistErr="0.000009" distanceUnits="degrees" />
107
-
108
+
108
109
  <fieldType name="text" class="solr.TextField" omitNorms="false">
109
110
  <analyzer>
110
111
  <tokenizer class="solr.ICUTokenizerFactory"/>
@@ -112,7 +113,7 @@
112
113
  <filter class="solr.TrimFilterFactory"/>
113
114
  </analyzer>
114
115
  </fieldType>
115
-
116
+
116
117
  <!-- A text field that only splits on whitespace for exact matching of words -->
117
118
  <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
118
119
  <analyzer>
@@ -120,7 +121,7 @@
120
121
  <filter class="solr.TrimFilterFactory"/>
121
122
  </analyzer>
122
123
  </fieldType>
123
-
124
+
124
125
  <!-- single token analyzed text, for sorting. Punctuation is significant. -->
125
126
  <fieldtype name="alphaSort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
126
127
  <analyzer>
@@ -129,7 +130,7 @@
129
130
  <filter class="solr.TrimFilterFactory" />
130
131
  </analyzer>
131
132
  </fieldtype>
132
-
133
+
133
134
  <!-- A text field with defaults appropriate for English -->
134
135
  <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
135
136
  <analyzer>
@@ -144,7 +145,7 @@
144
145
  <filter class="solr.TrimFilterFactory"/>
145
146
  </analyzer>
146
147
  </fieldType>
147
-
148
+
148
149
  <!-- queries for paths match documents at that path, or in descendent paths -->
149
150
  <fieldType name="descendent_path" class="solr.TextField">
150
151
  <analyzer type="index">
@@ -154,7 +155,7 @@
154
155
  <tokenizer class="solr.KeywordTokenizerFactory" />
155
156
  </analyzer>
156
157
  </fieldType>
157
-
158
+
158
159
  <!-- queries for paths match documents at that path, or in ancestor paths -->
159
160
  <fieldType name="ancestor_path" class="solr.TextField">
160
161
  <analyzer type="index">
@@ -178,12 +179,12 @@
178
179
  <fields>
179
180
  <!-- If you remove this field, you must _also_ disable the update log in solrconfig.xml
180
181
  or Solr won't start. _version_ and update log are required for SolrCloud
181
- -->
182
+ -->
182
183
  <field name="_version_" type="long" indexed="true" stored="true"/>
183
-
184
+
184
185
  <field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>
185
186
  <field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
186
-
187
+
187
188
  <field name="lat" type="tdouble" stored="true" indexed="true" multiValued="false"/>
188
189
  <field name="lng" type="tdouble" stored="true" indexed="true" multiValued="false"/>
189
190
 
@@ -200,7 +201,7 @@
200
201
  <dynamicField name="*_timv" type="text" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
201
202
  <dynamicField name="*_tsiv" type="text" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
202
203
  <dynamicField name="*_tsimv" type="text" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
203
-
204
+
204
205
  <!-- English text (_te...) -->
205
206
  <dynamicField name="*_tei" type="text_en" stored="false" indexed="true" multiValued="false"/>
206
207
  <dynamicField name="*_teim" type="text_en" stored="false" indexed="true" multiValued="true"/>
@@ -212,7 +213,7 @@
212
213
  <dynamicField name="*_teimv" type="text_en" stored="false" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
213
214
  <dynamicField name="*_tesiv" type="text_en" stored="true" indexed="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>
214
215
  <dynamicField name="*_tesimv" type="text_en" stored="true" indexed="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
215
-
216
+
216
217
  <!-- string (_s...) -->
217
218
  <dynamicField name="*_si" type="string" stored="false" indexed="true" multiValued="false"/>
218
219
  <dynamicField name="*_sim" type="string" stored="false" indexed="true" multiValued="true"/>
@@ -221,7 +222,7 @@
221
222
  <dynamicField name="*_ssi" type="string" stored="true" indexed="true" multiValued="false"/>
222
223
  <dynamicField name="*_ssim" type="string" stored="true" indexed="true" multiValued="true"/>
223
224
  <dynamicField name="*_ssort" type="alphaSort" stored="false" indexed="true" multiValued="false"/>
224
-
225
+
225
226
  <!-- integer (_i...) -->
226
227
  <dynamicField name="*_ii" type="int" stored="false" indexed="true" multiValued="false"/>
227
228
  <dynamicField name="*_iim" type="int" stored="false" indexed="true" multiValued="true"/>
@@ -229,15 +230,15 @@
229
230
  <dynamicField name="*_ism" type="int" stored="true" indexed="false" multiValued="true"/>
230
231
  <dynamicField name="*_isi" type="int" stored="true" indexed="true" multiValued="false"/>
231
232
  <dynamicField name="*_isim" type="int" stored="true" indexed="true" multiValued="true"/>
232
-
233
- <!-- trie integer (_it...) (for faster range queries) -->
233
+
234
+ <!-- IntegerPointField (_it...) (for faster range queries) -->
234
235
  <dynamicField name="*_iti" type="tint" stored="false" indexed="true" multiValued="false"/>
235
236
  <dynamicField name="*_itim" type="tint" stored="false" indexed="true" multiValued="true"/>
236
237
  <dynamicField name="*_its" type="tint" stored="true" indexed="false" multiValued="false"/>
237
238
  <dynamicField name="*_itsm" type="tint" stored="true" indexed="false" multiValued="true"/>
238
239
  <dynamicField name="*_itsi" type="tint" stored="true" indexed="true" multiValued="false"/>
239
240
  <dynamicField name="*_itsim" type="tint" stored="true" indexed="true" multiValued="true"/>
240
-
241
+
241
242
  <!-- date (_dt...) -->
242
243
  <!-- The format for this date field is of the form 1995-12-31T23:59:59Z
243
244
  Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z -->
@@ -247,15 +248,24 @@
247
248
  <dynamicField name="*_dtsm" type="date" stored="true" indexed="false" multiValued="true"/>
248
249
  <dynamicField name="*_dtsi" type="date" stored="true" indexed="true" multiValued="false"/>
249
250
  <dynamicField name="*_dtsim" type="date" stored="true" indexed="true" multiValued="true"/>
250
-
251
- <!-- trie date (_dtt...) (for faster range queries) -->
251
+
252
+ <!-- DatePointField (_dtt...) (for faster range queries) -->
252
253
  <dynamicField name="*_dtti" type="tdate" stored="false" indexed="true" multiValued="false"/>
253
254
  <dynamicField name="*_dttim" type="tdate" stored="false" indexed="true" multiValued="true"/>
254
255
  <dynamicField name="*_dtts" type="tdate" stored="true" indexed="false" multiValued="false"/>
255
256
  <dynamicField name="*_dttsm" type="tdate" stored="true" indexed="false" multiValued="true"/>
256
257
  <dynamicField name="*_dttsi" type="tdate" stored="true" indexed="true" multiValued="false"/>
257
258
  <dynamicField name="*_dttsim" type="tdate" stored="true" indexed="true" multiValued="true"/>
258
-
259
+
260
+
261
+ <!-- date range (_dr...) (for faster AND better range queries) -->
262
+ <dynamicField name="*_dri" type="dateRange" stored="false" indexed="true" multiValued="false"/>
263
+ <dynamicField name="*_drim" type="dateRange" stored="false" indexed="true" multiValued="true"/>
264
+ <dynamicField name="*_drsi" type="dateRange" stored="true" indexed="true" multiValued="false"/>
265
+ <dynamicField name="*_drsim" type="dateRange" stored="true" indexed="true" multiValued="true"/>
266
+ <dynamicField name="*_drs" type="dateRange" stored="true" indexed="true" multiValued="false"/> <!-- indexed anyway because DateRangeField errors otherwise -->
267
+ <dynamicField name="*_drsm" type="dateRange" stored="true" indexed="true" multiValued="true"/> <!-- indexed anyway because DateRangeField errors otherwise -->
268
+
259
269
  <!-- long (_l...) -->
260
270
  <dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/>
261
271
  <dynamicField name="*_lim" type="long" stored="false" indexed="true" multiValued="true"/>
@@ -263,15 +273,15 @@
263
273
  <dynamicField name="*_lsm" type="long" stored="true" indexed="false" multiValued="true"/>
264
274
  <dynamicField name="*_lsi" type="long" stored="true" indexed="true" multiValued="false"/>
265
275
  <dynamicField name="*_lsim" type="long" stored="true" indexed="true" multiValued="true"/>
266
-
267
- <!-- trie long (_lt...) (for faster range queries) -->
276
+
277
+ <!-- LongPointField (_lt...) (for faster range queries) -->
268
278
  <dynamicField name="*_lti" type="tlong" stored="false" indexed="true" multiValued="false"/>
269
279
  <dynamicField name="*_ltim" type="tlong" stored="false" indexed="true" multiValued="true"/>
270
280
  <dynamicField name="*_lts" type="tlong" stored="true" indexed="false" multiValued="false"/>
271
281
  <dynamicField name="*_ltsm" type="tlong" stored="true" indexed="false" multiValued="true"/>
272
282
  <dynamicField name="*_ltsi" type="tlong" stored="true" indexed="true" multiValued="false"/>
273
283
  <dynamicField name="*_ltsim" type="tlong" stored="true" indexed="true" multiValued="true"/>
274
-
284
+
275
285
  <!-- double (_db...) -->
276
286
  <dynamicField name="*_dbi" type="double" stored="false" indexed="true" multiValued="false"/>
277
287
  <dynamicField name="*_dbim" type="double" stored="false" indexed="true" multiValued="true"/>
@@ -279,15 +289,15 @@
279
289
  <dynamicField name="*_dbsm" type="double" stored="true" indexed="false" multiValued="true"/>
280
290
  <dynamicField name="*_dbsi" type="double" stored="true" indexed="true" multiValued="false"/>
281
291
  <dynamicField name="*_dbsim" type="double" stored="true" indexed="true" multiValued="true"/>
282
-
283
- <!-- trie double (_dbt...) (for faster range queries) -->
292
+
293
+ <!-- DoublePointField (_dbt...) (for faster range queries) -->
284
294
  <dynamicField name="*_dbti" type="tdouble" stored="false" indexed="true" multiValued="false"/>
285
295
  <dynamicField name="*_dbtim" type="tdouble" stored="false" indexed="true" multiValued="true"/>
286
296
  <dynamicField name="*_dbts" type="tdouble" stored="true" indexed="false" multiValued="false"/>
287
297
  <dynamicField name="*_dbtsm" type="tdouble" stored="true" indexed="false" multiValued="true"/>
288
298
  <dynamicField name="*_dbtsi" type="tdouble" stored="true" indexed="true" multiValued="false"/>
289
299
  <dynamicField name="*_dbtsim" type="tdouble" stored="true" indexed="true" multiValued="true"/>
290
-
300
+
291
301
  <!-- float (_f...) -->
292
302
  <dynamicField name="*_fi" type="float" stored="false" indexed="true" multiValued="false"/>
293
303
  <dynamicField name="*_fim" type="float" stored="false" indexed="true" multiValued="true"/>
@@ -295,31 +305,23 @@
295
305
  <dynamicField name="*_fsm" type="float" stored="true" indexed="false" multiValued="true"/>
296
306
  <dynamicField name="*_fsi" type="float" stored="true" indexed="true" multiValued="false"/>
297
307
  <dynamicField name="*_fsim" type="float" stored="true" indexed="true" multiValued="true"/>
298
-
299
- <!-- trie float (_ft...) (for faster range queries) -->
308
+
309
+ <!-- FloatPointField (_ft...) (for faster range queries) -->
300
310
  <dynamicField name="*_fti" type="tfloat" stored="false" indexed="true" multiValued="false"/>
301
311
  <dynamicField name="*_ftim" type="tfloat" stored="false" indexed="true" multiValued="true"/>
302
312
  <dynamicField name="*_fts" type="tfloat" stored="true" indexed="false" multiValued="false"/>
303
313
  <dynamicField name="*_ftsm" type="tfloat" stored="true" indexed="false" multiValued="true"/>
304
314
  <dynamicField name="*_ftsi" type="tfloat" stored="true" indexed="true" multiValued="false"/>
305
315
  <dynamicField name="*_ftsim" type="tfloat" stored="true" indexed="true" multiValued="true"/>
306
-
316
+
307
317
  <!-- boolean (_b...) -->
308
318
  <dynamicField name="*_bi" type="boolean" stored="false" indexed="true" multiValued="false"/>
309
319
  <dynamicField name="*_bs" type="boolean" stored="true" indexed="false" multiValued="false"/>
310
320
  <dynamicField name="*_bsi" type="boolean" stored="true" indexed="true" multiValued="false"/>
311
-
321
+
312
322
  <!-- Type used to index the lat and lon components for the "location" FieldType -->
313
323
  <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />
314
324
 
315
- <!-- location (_ll...) -->
316
- <dynamicField name="*_lli" type="location" stored="false" indexed="true" multiValued="false"/>
317
- <dynamicField name="*_llim" type="location" stored="false" indexed="true" multiValued="true"/>
318
- <dynamicField name="*_lls" type="location" stored="true" indexed="false" multiValued="false"/>
319
- <dynamicField name="*_llsm" type="location" stored="true" indexed="false" multiValued="true"/>
320
- <dynamicField name="*_llsi" type="location" stored="true" indexed="true" multiValued="false"/>
321
- <dynamicField name="*_llsim" type="location" stored="true" indexed="true" multiValued="true"/>
322
-
323
325
  <dynamicField name="*suggest" type="textSuggest" indexed="true" stored="false" multiValued="true" />
324
326
 
325
327
  <!-- you must define copyField source and dest fields explicity or schemaBrowser doesn't work -->
@@ -328,7 +330,7 @@
328
330
 
329
331
  </fields>
330
332
 
331
- <!-- Field to use to determine and enforce document uniqueness.
333
+ <!-- Field to use to determine and enforce document uniqueness.
332
334
  Unless this field is marked with required="false", it will be a required field
333
335
  -->
334
336
  <uniqueKey>id</uniqueKey>
@@ -30,11 +30,6 @@
30
30
  -->
31
31
  <luceneMatchVersion>5.0.0</luceneMatchVersion>
32
32
 
33
- <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" />
34
- <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" />
35
- <lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
36
- <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />
37
-
38
33
  <directoryFactory name="DirectoryFactory"
39
34
  class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}">
40
35
  </directoryFactory>
@@ -284,6 +279,18 @@
284
279
  -->
285
280
  </searchComponent>
286
281
 
282
+ <!-- suggest searchComponent and requestHandler disabled by default due to performance penalties -->
283
+ <!--
284
+ <searchComponent name="suggest" class="solr.SuggestComponent">
285
+ <lst name="suggester">
286
+ <str name="name">mySuggester</str>
287
+ <str name="lookupImpl">FuzzyLookupFactory</str>
288
+ <str name="suggestAnalyzerFieldType">textSuggest</str>
289
+ <str name="buildOnCommit">true</str>
290
+ <str name="field">suggest</str>
291
+ </lst>
292
+ </searchComponent>
293
+
287
294
  <requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
288
295
  <lst name="defaults">
289
296
  <str name="suggest">true</str>
@@ -294,7 +301,8 @@
294
301
  <str>suggest</str>
295
302
  </arr>
296
303
  </requestHandler>
297
-
304
+ -->
305
+
298
306
  <requestHandler name="/update/extract" class="org.apache.solr.handler.extraction.ExtractingRequestHandler">
299
307
  <lst name="defaults">
300
308
  <str name="fmap.Last-Modified">last_modified</str>
@@ -309,4 +317,3 @@
309
317
  <!-- </lst> -->
310
318
  </requestHandler>
311
319
  </config>
312
-
data/valkyrie.gemspec CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency 'dry-struct'
26
26
  spec.add_dependency 'activemodel'
27
27
  spec.add_dependency 'dry-types', '~> 1.0'
28
- spec.add_dependency 'rdf', '~> 3.0', '>= 3.0.10'
28
+ spec.add_dependency 'rdf', '~> 3.0', '>= 3.3.2'
29
29
  spec.add_dependency 'activesupport'
30
30
  spec.add_dependency 'railties' # To use generators and engines
31
31
  spec.add_dependency 'reform', '~> 2.2'
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency 'faraday', '>= 0.9', '!= 2.0.0', '< 3'
37
37
  spec.add_dependency 'faraday-multipart'
38
38
 
39
- spec.add_development_dependency "bundler", "> 1.16.0", "< 3"
39
+ spec.add_development_dependency "bundler", "> 1.16.0"
40
40
  spec.add_development_dependency "rake", ">= 10"
41
41
  spec.add_development_dependency "rspec", "~> 3.0"
42
42
  spec.add_development_dependency "pry"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valkyrie
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0
4
+ version: 3.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trey Pendragon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-10 00:00:00.000000000 Z
11
+ date: 2026-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-struct
@@ -61,7 +61,7 @@ dependencies:
61
61
  version: '3.0'
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: 3.0.10
64
+ version: 3.3.2
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
@@ -71,7 +71,7 @@ dependencies:
71
71
  version: '3.0'
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 3.0.10
74
+ version: 3.3.2
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: activesupport
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -217,9 +217,6 @@ dependencies:
217
217
  - - ">"
218
218
  - !ruby/object:Gem::Version
219
219
  version: 1.16.0
220
- - - "<"
221
- - !ruby/object:Gem::Version
222
- version: '3'
223
220
  type: :development
224
221
  prerelease: false
225
222
  version_requirements: !ruby/object:Gem::Requirement
@@ -227,9 +224,6 @@ dependencies:
227
224
  - - ">"
228
225
  - !ruby/object:Gem::Version
229
226
  version: 1.16.0
230
- - - "<"
231
- - !ruby/object:Gem::Version
232
- version: '3'
233
227
  - !ruby/object:Gem::Dependency
234
228
  name: rake
235
229
  requirement: !ruby/object:Gem::Requirement
@@ -452,10 +446,9 @@ files:
452
446
  - db/migrate/20180212092225_create_updated_at_index.rb
453
447
  - db/migrate/20180802220739_add_optimistic_locking_to_orm_resources.rb
454
448
  - db/schema.rb
455
- - gemfiles/activerecord_7_0.gemfile
456
- - gemfiles/activerecord_7_1.gemfile
457
449
  - gemfiles/activerecord_7_2.gemfile
458
- - gemfiles/faraday_1.gemfile
450
+ - gemfiles/activerecord_8_0.gemfile
451
+ - gemfiles/activerecord_8_1.gemfile
459
452
  - lib/valkyrie.rb
460
453
  - lib/valkyrie/adapter_container.rb
461
454
  - lib/valkyrie/change_set.rb
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
- # This file was generated by Appraisal
3
-
4
- source "https://rubygems.org"
5
-
6
- gem "activerecord", "~> 7.0.0"
7
- gem "ldp"
8
- gem "pg"
9
- gem "rsolr"
10
- gem "faraday", "~> 1.0"
11
-
12
- gemspec path: "../"