valkyrie 2.1.0 → 3.0.0.pre.beta.1

Sign up to get free protection for your applications and to get access to all the features.
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