valkyrie 2.1.0 → 3.0.0.pre.beta.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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +71 -36
  3. data/.lando.yml +58 -0
  4. data/.rubocop.yml +11 -1
  5. data/.tool-versions +1 -1
  6. data/CHANGELOG.md +94 -13
  7. data/CONTRIBUTING.md +30 -8
  8. data/README.md +24 -48
  9. data/Rakefile +26 -20
  10. data/db/config.yml +3 -10
  11. data/lib/generators/valkyrie/resource_generator.rb +3 -3
  12. data/lib/valkyrie/change_set.rb +3 -3
  13. data/lib/valkyrie/id.rb +12 -19
  14. data/lib/valkyrie/indexers/access_controls_indexer.rb +17 -17
  15. data/lib/valkyrie/persistence/buffered_persister.rb +2 -2
  16. data/lib/valkyrie/persistence/composite_persister.rb +3 -3
  17. data/lib/valkyrie/persistence/custom_query_container.rb +8 -16
  18. data/lib/valkyrie/persistence/fedora/list_node.rb +43 -43
  19. data/lib/valkyrie/persistence/fedora/metadata_adapter.rb +5 -1
  20. data/lib/valkyrie/persistence/fedora/ordered_list.rb +90 -90
  21. data/lib/valkyrie/persistence/fedora/ordered_reader.rb +5 -5
  22. data/lib/valkyrie/persistence/fedora/permissive_schema.rb +1 -1
  23. data/lib/valkyrie/persistence/fedora/persister/model_converter.rb +15 -16
  24. data/lib/valkyrie/persistence/fedora/persister/orm_converter.rb +14 -19
  25. data/lib/valkyrie/persistence/fedora/persister.rb +83 -83
  26. data/lib/valkyrie/persistence/fedora/query_service.rb +39 -41
  27. data/lib/valkyrie/persistence/memory/persister.rb +51 -35
  28. data/lib/valkyrie/persistence/memory/query_service.rb +26 -30
  29. data/lib/valkyrie/persistence/postgres/orm_converter.rb +52 -52
  30. data/lib/valkyrie/persistence/postgres/persister.rb +4 -1
  31. data/lib/valkyrie/persistence/postgres/query_service.rb +34 -34
  32. data/lib/valkyrie/persistence/shared/json_value_mapper.rb +1 -1
  33. data/lib/valkyrie/persistence/solr/metadata_adapter.rb +15 -3
  34. data/lib/valkyrie/persistence/solr/model_converter.rb +323 -340
  35. data/lib/valkyrie/persistence/solr/orm_converter.rb +4 -4
  36. data/lib/valkyrie/persistence/solr/persister.rb +16 -4
  37. data/lib/valkyrie/persistence/solr/queries/find_by_alternate_identifier_query.rb +1 -1
  38. data/lib/valkyrie/persistence/solr/queries/find_by_id_query.rb +1 -1
  39. data/lib/valkyrie/persistence/solr/queries/find_members_query.rb +1 -1
  40. data/lib/valkyrie/persistence/solr/query_service.rb +12 -12
  41. data/lib/valkyrie/persistence/solr/repository.rb +17 -7
  42. data/lib/valkyrie/resource/access_controls.rb +1 -1
  43. data/lib/valkyrie/resource.rb +0 -1
  44. data/lib/valkyrie/specs/shared_specs/change_set.rb +1 -1
  45. data/lib/valkyrie/specs/shared_specs/file.rb +1 -0
  46. data/lib/valkyrie/specs/shared_specs/persister.rb +22 -4
  47. data/lib/valkyrie/specs/shared_specs/queries.rb +7 -0
  48. data/lib/valkyrie/specs/shared_specs/resource.rb +1 -1
  49. data/lib/valkyrie/specs/shared_specs/storage_adapter.rb +19 -0
  50. data/lib/valkyrie/specs/shared_specs/write_only/metadata_adapter.rb +62 -0
  51. data/lib/valkyrie/specs/shared_specs.rb +2 -0
  52. data/lib/valkyrie/storage/disk.rb +24 -1
  53. data/lib/valkyrie/storage/fedora.rb +17 -17
  54. data/lib/valkyrie/storage_adapter.rb +12 -12
  55. data/lib/valkyrie/types.rb +1 -1
  56. data/lib/valkyrie/version.rb +1 -1
  57. data/lib/valkyrie/vocab/pcdm_use.rb +12 -0
  58. data/lib/valkyrie.rb +13 -27
  59. data/tasks/dev.rake +14 -51
  60. data/valkyrie.gemspec +3 -6
  61. metadata +25 -63
  62. data/.docker-stack/valkyrie-development/docker-compose.yml +0 -53
  63. data/.docker-stack/valkyrie-test/docker-compose.yml +0 -53
  64. data/tasks/docker.rake +0 -31
data/tasks/dev.rake CHANGED
@@ -2,63 +2,26 @@
2
2
 
3
3
  namespace :server do
4
4
  desc "Start solr and fedora servers for testing"
5
- task :test do
5
+ task :start do
6
6
  require 'rails'
7
- require 'solr_wrapper'
8
- require 'fcrepo_wrapper'
9
- SolrWrapper.wrap(shared_solr_opts.merge(port: 8984, instance_dir: 'tmp/blacklight-core-test')) do |solr|
10
- solr.with_collection(name: "blacklight-core-test", dir: Pathname.new(__dir__).join("..", "solr", "config").to_s) do
11
- FcrepoWrapper.wrap(shared_fedora_opts.merge(port: 8988, fcrepo_home_dir: "tmp/fcrepo4-test-data", version: "4.7.5", instance_directory: "tmp/fcrepo4")) do |_fcrepo|
12
- FcrepoWrapper::Instance.new(shared_fedora_opts.merge(port: 8998, fcrepo_home_dir: "tmp/fcrepo5-test-data", version: "5.1.0", instance_directory: "tmp/fcrepo5")).wrap do |_other_repo|
13
- puts "Setup solr & Fedora"
14
- loop do
15
- sleep(1)
16
- end
17
- end
18
- end
19
- end
20
- end
7
+ `lando start`
8
+ `bundle exec rake db:create`
9
+ `bundle exec rake db:migrate`
10
+ puts "Started Solr/Fedora/Postgres"
21
11
  end
22
12
 
23
13
  desc "Cleanup test servers"
24
- task :clean_test do
14
+ task :clean do
25
15
  require 'rails'
26
- require 'solr_wrapper'
27
- require 'fcrepo_wrapper'
28
- SolrWrapper.instance(shared_solr_opts.merge(port: 8984, instance_dir: 'tmp/blacklight-core-test')).remove_instance_dir!
29
- FcrepoWrapper.default_instance(shared_fedora_opts.merge(port: 8988, fcrepo_home_dir: "tmp/fcrepo4-test-data", instance_directory: "tmp/fcrepo4")).remove_instance_dir!
30
- FcrepoWrapper::Instance.new(shared_fedora_opts.merge(port: 8998, fcrepo_home_dir: "tmp/fcrepo5-test-data", instance_directory: "tmp/fcrepo5")).remove_instance_dir!
31
- puts "Cleaned up test solr & fedora servers."
16
+ `lando destroy -y`
17
+ `lando start`
18
+ `bundle exec rake db:create`
19
+ `bundle exec rake db:migrate`
20
+ puts "Cleaned/Started Solr/Fedora/Postgres"
32
21
  end
33
22
 
34
- desc "Start solr and fedora servers for development"
35
- task :development do
36
- require 'rails'
37
- require 'solr_wrapper'
38
- require 'fcrepo_wrapper'
39
-
40
- SolrWrapper.wrap(shared_solr_opts.merge(port: 8983, instance_dir: 'tmp/blacklight-core')) do |solr|
41
- solr.with_collection(name: "blacklight-core", dir: Pathname.new(__dir__).join("..", "solr", "config").to_s) do
42
- FcrepoWrapper.wrap(shared_fedora_opts.merge(port: 8986, fcrepo_home_dir: "tmp/fcrepo4-dev-data", version: "4.7.5")) do |_fcrepo|
43
- FcrepoWrapper::Instance.new(shared_fedora_opts.merge(port: 8996, fcrepo_home_dir: "tmp/fcrepo5-dev-data", version: "5.1.0")).wrap do |_fcrepo|
44
- puts "Setup solr & Fedora"
45
- loop do
46
- sleep(1)
47
- end
48
- end
49
- end
50
- end
51
- end
52
- end
53
-
54
- def shared_solr_opts
55
- opts = { managed: true, verbose: true, persist: false, download_dir: "tmp" }
56
- opts[:version] = ENV['SOLR_VERSION'] if ENV['SOLR_VERSION']
57
- opts
58
- end
59
-
60
- def shared_fedora_opts
61
- opts = { managed: true, verbose: true, enable_jms: false, download_dir: "tmp" }
62
- opts
23
+ desc "Stop test servers"
24
+ task :stop do
25
+ `lando stop -y`
63
26
  end
64
27
  end
data/valkyrie.gemspec CHANGED
@@ -21,22 +21,20 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = ["lib"]
22
22
 
23
23
  spec.add_dependency 'dry-struct'
24
- spec.add_dependency 'draper'
25
24
  spec.add_dependency 'activemodel'
26
25
  spec.add_dependency 'dry-types', '~> 1.0'
27
- spec.add_dependency 'rdf', '~> 3.0.10'
26
+ spec.add_dependency 'rdf', '~> 3.0', '>= 3.0.10'
28
27
  spec.add_dependency 'activesupport'
29
28
  spec.add_dependency 'railties' # To use generators and engines
30
- spec.add_dependency 'reform'
29
+ spec.add_dependency 'reform', '~> 2.2'
31
30
  spec.add_dependency 'reform-rails'
32
31
  spec.add_dependency 'json-ld'
33
32
  spec.add_dependency 'json'
34
33
  spec.add_dependency 'rdf-vocab'
35
- spec.add_dependency 'disposable', '~> 0.4.5'
36
34
  spec.add_dependency 'faraday', '< 1.0'
37
35
 
38
36
  spec.add_development_dependency "bundler", "> 1.16.0", "< 3"
39
- spec.add_development_dependency "rake", "~> 10.0"
37
+ spec.add_development_dependency "rake", ">= 10"
40
38
  spec.add_development_dependency "rspec", "~> 3.0"
41
39
  spec.add_development_dependency "pry"
42
40
  spec.add_development_dependency "webmock"
@@ -47,7 +45,6 @@ Gem::Specification.new do |spec|
47
45
  spec.add_development_dependency 'yard'
48
46
  spec.add_development_dependency 'solr_wrapper'
49
47
  spec.add_development_dependency 'fcrepo_wrapper'
50
- spec.add_development_dependency 'docker-stack', '~> 0.2.6'
51
48
  spec.add_development_dependency 'timecop'
52
49
  spec.add_development_dependency 'appraisal'
53
50
  end
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: 2.1.0
4
+ version: 3.0.0.pre.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trey Pendragon
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-09 00:00:00.000000000 Z
11
+ date: 2021-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-struct
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: draper
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: activemodel
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -71,6 +57,9 @@ dependencies:
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ - - ">="
74
63
  - !ruby/object:Gem::Version
75
64
  version: 3.0.10
76
65
  type: :runtime
@@ -78,6 +67,9 @@ dependencies:
78
67
  version_requirements: !ruby/object:Gem::Requirement
79
68
  requirements:
80
69
  - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '3.0'
72
+ - - ">="
81
73
  - !ruby/object:Gem::Version
82
74
  version: 3.0.10
83
75
  - !ruby/object:Gem::Dependency
@@ -112,16 +104,16 @@ dependencies:
112
104
  name: reform
113
105
  requirement: !ruby/object:Gem::Requirement
114
106
  requirements:
115
- - - ">="
107
+ - - "~>"
116
108
  - !ruby/object:Gem::Version
117
- version: '0'
109
+ version: '2.2'
118
110
  type: :runtime
119
111
  prerelease: false
120
112
  version_requirements: !ruby/object:Gem::Requirement
121
113
  requirements:
122
- - - ">="
114
+ - - "~>"
123
115
  - !ruby/object:Gem::Version
124
- version: '0'
116
+ version: '2.2'
125
117
  - !ruby/object:Gem::Dependency
126
118
  name: reform-rails
127
119
  requirement: !ruby/object:Gem::Requirement
@@ -178,20 +170,6 @@ dependencies:
178
170
  - - ">="
179
171
  - !ruby/object:Gem::Version
180
172
  version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: disposable
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: 0.4.5
188
- type: :runtime
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: 0.4.5
195
173
  - !ruby/object:Gem::Dependency
196
174
  name: faraday
197
175
  requirement: !ruby/object:Gem::Requirement
@@ -230,16 +208,16 @@ dependencies:
230
208
  name: rake
231
209
  requirement: !ruby/object:Gem::Requirement
232
210
  requirements:
233
- - - "~>"
211
+ - - ">="
234
212
  - !ruby/object:Gem::Version
235
- version: '10.0'
213
+ version: '10'
236
214
  type: :development
237
215
  prerelease: false
238
216
  version_requirements: !ruby/object:Gem::Requirement
239
217
  requirements:
240
- - - "~>"
218
+ - - ">="
241
219
  - !ruby/object:Gem::Version
242
- version: '10.0'
220
+ version: '10'
243
221
  - !ruby/object:Gem::Dependency
244
222
  name: rspec
245
223
  requirement: !ruby/object:Gem::Requirement
@@ -380,20 +358,6 @@ dependencies:
380
358
  - - ">="
381
359
  - !ruby/object:Gem::Version
382
360
  version: '0'
383
- - !ruby/object:Gem::Dependency
384
- name: docker-stack
385
- requirement: !ruby/object:Gem::Requirement
386
- requirements:
387
- - - "~>"
388
- - !ruby/object:Gem::Version
389
- version: 0.2.6
390
- type: :development
391
- prerelease: false
392
- version_requirements: !ruby/object:Gem::Requirement
393
- requirements:
394
- - - "~>"
395
- - !ruby/object:Gem::Version
396
- version: 0.2.6
397
361
  - !ruby/object:Gem::Dependency
398
362
  name: timecop
399
363
  requirement: !ruby/object:Gem::Requirement
@@ -422,7 +386,7 @@ dependencies:
422
386
  - - ">="
423
387
  - !ruby/object:Gem::Version
424
388
  version: '0'
425
- description:
389
+ description:
426
390
  email:
427
391
  - tpendragon@princeton.edu
428
392
  executables: []
@@ -431,9 +395,8 @@ extra_rdoc_files: []
431
395
  files:
432
396
  - ".circleci/config.yml"
433
397
  - ".ctags"
434
- - ".docker-stack/valkyrie-development/docker-compose.yml"
435
- - ".docker-stack/valkyrie-test/docker-compose.yml"
436
398
  - ".gitignore"
399
+ - ".lando.yml"
437
400
  - ".rspec"
438
401
  - ".rubocop.yml"
439
402
  - ".rubocop_todo.yml"
@@ -542,6 +505,7 @@ files:
542
505
  - lib/valkyrie/specs/shared_specs/resource.rb
543
506
  - lib/valkyrie/specs/shared_specs/solr_indexer.rb
544
507
  - lib/valkyrie/specs/shared_specs/storage_adapter.rb
508
+ - lib/valkyrie/specs/shared_specs/write_only/metadata_adapter.rb
545
509
  - lib/valkyrie/storage.rb
546
510
  - lib/valkyrie/storage/disk.rb
547
511
  - lib/valkyrie/storage/fedora.rb
@@ -569,13 +533,12 @@ files:
569
533
  - solr/config/xslt/luke.xsl
570
534
  - solr/solr.xml
571
535
  - tasks/dev.rake
572
- - tasks/docker.rake
573
536
  - valkyrie.gemspec
574
537
  - valkyrie_logo.png
575
538
  homepage: https://github.com/samvera/valkyrie
576
539
  licenses: []
577
540
  metadata: {}
578
- post_install_message:
541
+ post_install_message:
579
542
  rdoc_options: []
580
543
  require_paths:
581
544
  - lib
@@ -586,13 +549,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
586
549
  version: '0'
587
550
  required_rubygems_version: !ruby/object:Gem::Requirement
588
551
  requirements:
589
- - - ">="
552
+ - - ">"
590
553
  - !ruby/object:Gem::Version
591
- version: '0'
554
+ version: 1.3.1
592
555
  requirements: []
593
- rubyforge_project:
594
- rubygems_version: 2.7.6
595
- signing_key:
556
+ rubygems_version: 3.0.3
557
+ signing_key:
596
558
  specification_version: 4
597
559
  summary: An ORM using the Data Mapper pattern, specifically built to solve Digital
598
560
  Repository use cases.
@@ -1,53 +0,0 @@
1
- ---
2
- version: '3.4'
3
- volumes:
4
- fedora4:
5
- fedora5:
6
- db:
7
- solr_repo:
8
- solr_index:
9
- services:
10
- fedora4:
11
- image: samvera/fcrepo4:4.7.5
12
- volumes:
13
- - fedora4:/data
14
- ports:
15
- - 8986:8080
16
- fedora5:
17
- image: samvera/fcrepo4:5.1.0
18
- volumes:
19
- - fedora5:/data
20
- ports:
21
- - 8996:8080
22
- db:
23
- image: healthcheck/postgres:alpine
24
- volumes:
25
- - db:/data
26
- environment:
27
- - PGDATA=/data
28
- - POSTGRES_USER=docker
29
- - POSTGRES_PASSWORD=d0ck3r
30
- ports:
31
- - 5433:5432
32
- solr_repo:
33
- image: solr:7.2-alpine
34
- ports:
35
- - 8983:8983
36
- volumes:
37
- - solr_repo:/opt/solr/server/solr/mycores
38
- - "../../solr:/solr_config"
39
- entrypoint:
40
- - docker-entrypoint.sh
41
- - solr-precreate
42
- - blacklight-core
43
- - "/solr_config/config"
44
- healthcheck:
45
- test:
46
- - CMD
47
- - wget
48
- - "-O"
49
- - "/dev/null"
50
- - http://localhost:8983/solr/
51
- interval: 30s
52
- timeout: 5s
53
- retries: 3
@@ -1,53 +0,0 @@
1
- ---
2
- version: '3.4'
3
- volumes:
4
- fedora4:
5
- fedora5:
6
- db:
7
- solr_repo:
8
- solr_index:
9
- services:
10
- fedora4:
11
- image: samvera/fcrepo4:4.7.5
12
- volumes:
13
- - fedora4:/data
14
- ports:
15
- - 8988:8080
16
- fedora5:
17
- image: samvera/fcrepo4:5.1.0
18
- volumes:
19
- - fedora5:/data
20
- ports:
21
- - 8998:8080
22
- db:
23
- image: healthcheck/postgres:alpine
24
- volumes:
25
- - db:/data
26
- environment:
27
- - PGDATA=/data
28
- - POSTGRES_USER=docker
29
- - POSTGRES_PASSWORD=d0ck3r
30
- ports:
31
- - 5434:5432
32
- solr_repo:
33
- image: solr:7.2-alpine
34
- ports:
35
- - 8984:8983
36
- volumes:
37
- - solr_repo:/opt/solr/server/solr/mycores
38
- - "../../solr:/solr_config"
39
- entrypoint:
40
- - docker-entrypoint.sh
41
- - solr-precreate
42
- - blacklight-core-test
43
- - "/solr_config/config"
44
- healthcheck:
45
- test:
46
- - CMD
47
- - wget
48
- - "-O"
49
- - "/dev/null"
50
- - http://localhost:8983/solr/
51
- interval: 30s
52
- timeout: 5s
53
- retries: 3
data/tasks/docker.rake DELETED
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'valkyrie'
3
-
4
- if Valkyrie.environment == "development" || Valkyrie.environment == "test"
5
- begin
6
- require 'docker/stack/rake_task'
7
-
8
- def get_named_task(task_name)
9
- Rake::Task[task_name]
10
- rescue RuntimeError
11
- nil
12
- end
13
-
14
- namespace :docker do
15
- namespace(:dev) { Docker::Stack::RakeTask.load_tasks }
16
- namespace(:test) { Docker::Stack::RakeTask.load_tasks(force_env: 'test', cleanup: true) }
17
-
18
- desc 'Spin up test stack and run specs'
19
- task :spec do
20
- ENV["RACK_ENV"] = "test"
21
- Docker::Stack::Controller.new(project: 'valkyrie', cleanup: true).with_containers do
22
- Rake::Task['db:create'].invoke
23
- Rake::Task['db:migrate'].invoke
24
- Rake::Task['spec'].invoke
25
- end
26
- end
27
- end
28
- rescue LoadError
29
- Rails.logger.warn 'Docker rake tasks not loaded.'
30
- end
31
- end