valkyrie 2.0.1 → 2.2.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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +65 -56
  3. data/.lando.yml +58 -0
  4. data/.rubocop.yml +4 -1
  5. data/.tool-versions +1 -1
  6. data/Appraisals +4 -4
  7. data/CHANGELOG.md +134 -0
  8. data/README.md +21 -49
  9. data/Rakefile +26 -20
  10. data/db/config.yml +3 -10
  11. data/db/schema.rb +0 -40
  12. data/gemfiles/activerecord_5_2.gemfile +2 -0
  13. data/gemfiles/{activerecord_5_1.gemfile → activerecord_6_0.gemfile} +3 -1
  14. data/lib/generators/valkyrie/resource_generator.rb +3 -3
  15. data/lib/valkyrie.rb +33 -15
  16. data/lib/valkyrie/change_set.rb +3 -3
  17. data/lib/valkyrie/id.rb +26 -3
  18. data/lib/valkyrie/indexers/access_controls_indexer.rb +17 -17
  19. data/lib/valkyrie/logging.rb +72 -0
  20. data/lib/valkyrie/persistence/composite_persister.rb +1 -1
  21. data/lib/valkyrie/persistence/fedora.rb +2 -0
  22. data/lib/valkyrie/persistence/fedora/list_node.rb +46 -49
  23. data/lib/valkyrie/persistence/fedora/metadata_adapter.rb +7 -3
  24. data/lib/valkyrie/persistence/fedora/ordered_list.rb +90 -90
  25. data/lib/valkyrie/persistence/fedora/ordered_reader.rb +5 -5
  26. data/lib/valkyrie/persistence/fedora/permissive_schema.rb +3 -3
  27. data/lib/valkyrie/persistence/fedora/persister.rb +82 -83
  28. data/lib/valkyrie/persistence/fedora/persister/model_converter.rb +15 -15
  29. data/lib/valkyrie/persistence/fedora/persister/orm_converter.rb +38 -18
  30. data/lib/valkyrie/persistence/fedora/query_service.rb +55 -54
  31. data/lib/valkyrie/persistence/memory/persister.rb +33 -33
  32. data/lib/valkyrie/persistence/memory/query_service.rb +52 -34
  33. data/lib/valkyrie/persistence/postgres/orm_converter.rb +52 -52
  34. data/lib/valkyrie/persistence/postgres/query_service.rb +86 -33
  35. data/lib/valkyrie/persistence/postgres/resource_converter.rb +1 -1
  36. data/lib/valkyrie/persistence/shared/json_value_mapper.rb +1 -1
  37. data/lib/valkyrie/persistence/solr/model_converter.rb +337 -337
  38. data/lib/valkyrie/persistence/solr/orm_converter.rb +3 -3
  39. data/lib/valkyrie/persistence/solr/persister.rb +4 -17
  40. data/lib/valkyrie/persistence/solr/queries/find_all_query.rb +6 -0
  41. data/lib/valkyrie/persistence/solr/queries/find_by_alternate_identifier_query.rb +1 -1
  42. data/lib/valkyrie/persistence/solr/queries/find_by_id_query.rb +1 -1
  43. data/lib/valkyrie/persistence/solr/queries/find_members_query.rb +1 -1
  44. data/lib/valkyrie/persistence/solr/query_service.rb +42 -53
  45. data/lib/valkyrie/persistence/solr/repository.rb +2 -1
  46. data/lib/valkyrie/rdf_patches.rb +2 -2
  47. data/lib/valkyrie/resource.rb +36 -5
  48. data/lib/valkyrie/specs/shared_specs/change_set.rb +1 -1
  49. data/lib/valkyrie/specs/shared_specs/persister.rb +13 -5
  50. data/lib/valkyrie/specs/shared_specs/queries.rb +112 -9
  51. data/lib/valkyrie/specs/shared_specs/resource.rb +1 -1
  52. data/lib/valkyrie/storage/fedora.rb +18 -18
  53. data/lib/valkyrie/storage_adapter.rb +16 -13
  54. data/lib/valkyrie/types.rb +3 -1
  55. data/lib/valkyrie/version.rb +1 -1
  56. data/lib/valkyrie/vocab/pcdm_use.rb +12 -0
  57. data/solr/config/solrconfig.xml +0 -10
  58. data/tasks/dev.rake +14 -51
  59. data/valkyrie.gemspec +4 -4
  60. metadata +38 -35
  61. data/.docker-stack/valkyrie-development/docker-compose.yml +0 -53
  62. data/.docker-stack/valkyrie-test/docker-compose.yml +0 -53
  63. data/db/seeds.rb +0 -8
  64. data/tasks/docker.rake +0 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1b458c0bf12323ee7593ba335f9b11d933bbf3bc8e2dd1174f2a682e0be10c7
4
- data.tar.gz: 59ec4d50795fa715b260fd77b773a4113d90731ae12719d8ed35d494f600f056
3
+ metadata.gz: a9562026fbee014b2e1f3076826af96c850373e9ff94eeb1921facbad11edcec
4
+ data.tar.gz: '0119066f0cf241db23c9a29d7f9501803c669df197bda350f0706d2b2db6120d'
5
5
  SHA512:
6
- metadata.gz: 9625fb7adb62fd504dde9e216a4b86b10c3054258f3363eb717da22e5bd1a81c8dc72608022739311a5b914528d9ac045dd66063148ec58da1de63e5cda08575
7
- data.tar.gz: 4692ea78e86c4a8a74ddbea67c2b74660f7c7a2f4d69efd0c6755f6f2ba9258620eeaa7d03f1455b24a81e4c61dff5533f47072db6f9945eff92d1779696df6e
6
+ metadata.gz: 63279c6ea99e08f10dcb8b6aa6cd6fada5d60937852dde46ad08b2923e3d129eb03442be0d4a11640affefeda7367fdabc9d93bb6c90f53b25c71fc12dea7cc4
7
+ data.tar.gz: cd471fa3caa33b644cca4c5897104225dbdc3fafe0d10a889d102a03e6e5ba74aa9284cd5fc27933ded7c842e2d09f0326d66119290df557f7ca1c29e2c7f2e2
data/.circleci/config.yml CHANGED
@@ -2,7 +2,6 @@
2
2
  version: 2.1
3
3
  jobs:
4
4
  build:
5
- machine: true
6
5
  parameters:
7
6
  gemfile:
8
7
  description: "Gemfile to run"
@@ -10,34 +9,49 @@ jobs:
10
9
  type: "string"
11
10
  ruby:
12
11
  description: "Ruby version"
13
- default: "2.6.3"
12
+ default: "2.6.5"
14
13
  type: "string"
14
+ docker:
15
+ - image: circleci/ruby:<< parameters.ruby >>-node-browsers
16
+ environment:
17
+ RAILS_ENV: test
18
+ - image: postgres:10.6-alpine
19
+ environment:
20
+ POSTGRES_USER: postgres
21
+ POSTGRES_DB: Valkyrie_gem_test
22
+ POSTGRES_HOST_AUTH_METHOD: trust
23
+ - image: samvera/fcrepo4:4.7.5
24
+ environment:
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
+ 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.0.0-beta-1
32
+ environment:
33
+ 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
+ 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
36
+ command: bin/solr -cloud -noprompt -f -p 8994
15
37
  environment:
16
38
  BUNDLE_GEMFILE: << parameters.gemfile >>
39
+ POSTGRES_PORT: 5432
40
+ FEDORA_6_PORT: 8080
17
41
  steps:
18
42
  - checkout
19
43
  - run:
20
- name: Set ruby version to << parameters.ruby >>
21
- command: |
22
- rvm install << parameters.ruby >>
23
- echo . $(rvm << parameters.ruby >> do rvm env --path) >> $BASH_ENV
24
- - run:
25
- shell: /bin/bash -l
26
- name: Uninstall global Bundler
27
- command: |
28
- rvm use << parameters.ruby >>
29
- rvm gemset use global
30
- gem uninstall bundler -x
31
- echo Uninstalled
44
+ name: Wait for solr
45
+ command: dockerize -wait tcp://localhost:8994 -timeout 1m
32
46
  - run:
33
- name: Install Docker Compose
47
+ name: Load config into solr
34
48
  command: |
35
- curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
36
- chmod +x ~/docker-compose
37
- sudo mv ~/docker-compose /usr/local/bin/docker-compose
38
- - run:
39
- name: Update bundler
40
- command: gem install bundler -v 1.17.2
49
+ cd solr/config
50
+ zip -1 -r solr_config.zip ./*
51
+ curl -H "Content-type:application/octet-stream" --data-binary @solr_config.zip "http://localhost:8994/solr/admin/configs?action=UPLOAD&name=valkyrie"
52
+ curl -H 'Content-type: application/json' http://localhost:8994/api/collections/ -d '{create: {name: valkyrie-core-test, config: valkyrie, numShards: 1}}'
53
+ # Install Bundler
54
+ - run: gem install bundler -v '~> 2.0'
41
55
  - restore_cache:
42
56
  keys:
43
57
  - bundle-{{ checksum "<< parameters.gemfile >>" }}-{{ checksum "valkyrie.gemspec" }}-<< parameters.ruby >>-6
@@ -57,9 +71,12 @@ jobs:
57
71
  - run:
58
72
  name: Run Rubocop
59
73
  command: bundle exec rake rubocop
74
+ - run:
75
+ name: Set up database
76
+ command: bundle exec rake db:migrate
60
77
  - run:
61
78
  name: Run Specs
62
- command: bundle exec rake docker:spec
79
+ command: bundle exec rspec spec
63
80
  - store_artifacts:
64
81
  path: coverage
65
82
  destination: coverage
@@ -68,29 +85,25 @@ workflows:
68
85
  build:
69
86
  jobs:
70
87
  - build:
71
- gemfile: "gemfiles/activerecord_5_2.gemfile"
72
- ruby: 2.6.3
73
- name: "Ruby2-6_Rails5-2"
88
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
89
+ ruby: 2.7.0
90
+ name: "Ruby2-7_Rails6-0"
74
91
  - build:
75
- gemfile: "gemfiles/activerecord_5_1.gemfile"
76
- ruby: 2.6.3
77
- name: "Ruby2-6_Rails5-1"
92
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
93
+ ruby: 2.6.5
94
+ name: "Ruby2-6_Rails6-0"
78
95
  - build:
79
96
  gemfile: "gemfiles/activerecord_5_2.gemfile"
80
- ruby: 2.5.5
81
- name: "Ruby2-5_Rails5-2"
82
- - build:
83
- gemfile: "gemfiles/activerecord_5_1.gemfile"
84
- ruby: 2.5.5
85
- name: "Ruby2-5_Rails5-1"
97
+ ruby: 2.7.0
98
+ name: "Ruby2-7_Rails5-2"
86
99
  - build:
87
100
  gemfile: "gemfiles/activerecord_5_2.gemfile"
88
- ruby: 2.4.6
89
- name: "Ruby2-4_Rails5-2"
101
+ ruby: 2.6.5
102
+ name: "Ruby2-6_Rails5-2"
90
103
  - build:
91
- gemfile: "gemfiles/activerecord_5_1.gemfile"
92
- ruby: 2.4.6
93
- name: "Ruby2-4_Rails5-1"
104
+ gemfile: "gemfiles/activerecord_5_2.gemfile"
105
+ ruby: 2.5.7
106
+ name: "Ruby2-5_Rails5-2"
94
107
  nightly:
95
108
  triggers:
96
109
  - schedule:
@@ -101,26 +114,22 @@ workflows:
101
114
  - master
102
115
  jobs:
103
116
  - build:
104
- gemfile: "gemfiles/activerecord_5_2.gemfile"
105
- ruby: 2.6.3
106
- name: "Ruby2-6_Rails5-2"
117
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
118
+ ruby: 2.7.0
119
+ name: "Ruby2-7_Rails6-0"
107
120
  - build:
108
- gemfile: "gemfiles/activerecord_5_1.gemfile"
109
- ruby: 2.6.3
110
- name: "Ruby2-6_Rails5-1"
121
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
122
+ ruby: 2.6.5
123
+ name: "Ruby2-6_Rails6-0"
111
124
  - build:
112
125
  gemfile: "gemfiles/activerecord_5_2.gemfile"
113
- ruby: 2.5.5
114
- name: "Ruby2-5_Rails5-2"
115
- - build:
116
- gemfile: "gemfiles/activerecord_5_1.gemfile"
117
- ruby: 2.5.5
118
- name: "Ruby2-5_Rails5-1"
126
+ ruby: 2.7.0
127
+ name: "Ruby2-7_Rails5-2"
119
128
  - build:
120
129
  gemfile: "gemfiles/activerecord_5_2.gemfile"
121
- ruby: 2.4.6
122
- name: "Ruby2-4_Rails5-2"
130
+ ruby: 2.6.5
131
+ name: "Ruby2-6_Rails5-2"
123
132
  - build:
124
- gemfile: "gemfiles/activerecord_5_1.gemfile"
125
- ruby: 2.4.6
126
- name: "Ruby2-4_Rails5-1"
133
+ gemfile: "gemfiles/activerecord_5_2.gemfile"
134
+ ruby: 2.5.7
135
+ name: "Ruby2-5_Rails5-2"
data/.lando.yml ADDED
@@ -0,0 +1,58 @@
1
+ name: valkyrie
2
+ app_mount: false
3
+ services:
4
+ valkyrie_test_solr_7:
5
+ app_mount: false
6
+ type: solr:7
7
+ portforward: 8994
8
+ core: valkyrie-core-test
9
+ config:
10
+ dir: solr/config
11
+ valkyrie_database:
12
+ app_mount: false
13
+ type: postgres:10
14
+ portforward: 5433
15
+ valkyrie_fedora_4:
16
+ type: compose
17
+ app_mount: false
18
+ volumes:
19
+ fedora4:
20
+ services:
21
+ image: samvera/fcrepo4:4.7.5
22
+ command: /fedora-entrypoint.sh
23
+ volumes:
24
+ - fedora4:/data
25
+ ports:
26
+ - 8988:8080
27
+ portforward: true
28
+ valkyrie_fedora_5:
29
+ type: compose
30
+ app_mount: false
31
+ volumes:
32
+ fedora5:
33
+ services:
34
+ image: samvera/fcrepo4:5.1.0
35
+ command: /fedora-entrypoint.sh
36
+ volumes:
37
+ - fedora5:/data
38
+ ports:
39
+ - 8998:8080
40
+ portforward: true
41
+ valkyrie_fedora_6:
42
+ type: compose
43
+ app_mount: false
44
+ volumes:
45
+ fedora6:
46
+ services:
47
+ image: fcrepo/fcrepo:6.0.0-beta-1
48
+ command:
49
+ - "catalina.sh"
50
+ - "run"
51
+ volumes:
52
+ - fedora6:/data
53
+ ports:
54
+ - 8978:8080
55
+ environment:
56
+ 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"
57
+ JAVA_OPTS: "-Dfcrepo.dynamic.jms.port=61619 -Dfcrepo.dynamic.stomp.port=61615 -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
58
+ portforward: true
data/.rubocop.yml CHANGED
@@ -4,7 +4,6 @@ inherit_gem:
4
4
  bixby: bixby_default.yml
5
5
  AllCops:
6
6
  DisplayCopNames: true
7
- TargetRubyVersion: 2.3
8
7
  Exclude:
9
8
  - 'bin/*'
10
9
  - 'db/schema.rb'
@@ -26,6 +25,10 @@ RSpec/MultipleExpectations:
26
25
  Enabled: false
27
26
  Rails/TimeZone:
28
27
  Enabled: false
28
+ Rails/RakeEnvironment:
29
+ Enabled: false
30
+ Rails/ApplicationRecord:
31
+ Enabled: false
29
32
  Naming/PredicateName:
30
33
  Exclude:
31
34
  - "lib/valkyrie/resource.rb"
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 2.5.1
1
+ ruby 2.6.6
data/Appraisals CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
- appraise "activerecord-5-2" do
3
- gem "activerecord", "~> 5.2.0"
2
+ appraise "activerecord-6-0" do
3
+ gem "activerecord", "~> 6.0.0"
4
4
  end
5
5
 
6
- appraise "activerecord-5-1" do
7
- gem "activerecord", "~> 5.1.0"
6
+ appraise "activerecord-5-2" do
7
+ gem "activerecord", "~> 5.2.0"
8
8
  end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,137 @@
1
+ # v2.2.0 2021-05-06
2
+
3
+ ## Changes since last release
4
+
5
+ * Add support for Fedora 6.
6
+ [tpendragon](https://github.com/tpendragon)
7
+ * Deprecate pcdmuse:PreservationMasterFile in favor of pcdmuse:PreservationFile
8
+ [escowles](https://github.com/escowles)
9
+ * Improve spec docs for resource.rb
10
+ [dchandekstark](https://github.com/dchandekstark)
11
+ * Memoize resource in Solr queries to reduce Solr calls.
12
+ [dchandekstark](https://github.com/dchandekstark)
13
+
14
+ # v2.1.2 2021-04-19
15
+
16
+ ## Changes since last release
17
+
18
+ * Tighten reform dependency
19
+ [tpendragon](https://github.com/tpendragon)
20
+ * Loosen RDF Dependency
21
+ [no-reply](https://github.com/no-reply)
22
+ * Update development ruby version in .tool-versions
23
+ [hackartisan](https://github.com/hackartisan)
24
+ * Use Lando for development
25
+ [tpendragon](https://github.com/tpendragon)
26
+ * Deprecate Blacklist in favor of Denylist.
27
+ [jeremyf](https://github.com/jeremyf)
28
+ * Make DateTime handling in Fedora/Solr persisters consistent with others.
29
+ [hcayless](https://github.com/hcayless)
30
+ * Add open-ended Rake support.
31
+ [no-reply](https://github.com/no-reply)
32
+
33
+ Additional thanks to the following for code review and issue reports leading to
34
+ this release:
35
+
36
+ [cjcolvar](https://github.com/cjcolvar)
37
+ [escowles](https://github.com/escowles)
38
+ [jeremyf](https://github.com/jeremyf)
39
+
40
+ # v2.1.1 2020-03-12
41
+
42
+ ## Changes since last release
43
+
44
+ * Add Ruby 2.7 support.
45
+ [tpendragon](https://github.com/tpendragon)
46
+ * Make ID & String equality symmetrical
47
+ [no-reply](https://github.com/no-reply)
48
+
49
+ Additional thanks to the following for code review and issue reports leading to
50
+ this release:
51
+
52
+ [cjcolvar](https://github.com/cjcolvar)
53
+ [escowles](https://github.com/escowles)
54
+ [jeremyf](https://github.com/jeremyf)
55
+
56
+ # v2.1.0 2020-01-09
57
+
58
+ ## Changes since last release
59
+
60
+ * Use `::` prefixed names for `JSON::LD` references.
61
+ [no-reply](https://github.com/no-reply)
62
+ * Use SVG instead of PNG for version badge.
63
+ [hackmastera](https://github.com/hackmastera)
64
+ * Fix Rubocop for latest Bixby.
65
+ [hackmastera](https://github.com/hackmastera)
66
+ * Valkyrie IDs equal string equivalent of ID to String with config
67
+ [jlevnhv](https://github.com/jlevnhv)
68
+ * Add optional model parameter to find_inverse_references_by and
69
+ find_references_by
70
+ [elrayle](https://github.com/elrayle)
71
+ [laritakr](https://github.com/laritakr)
72
+ * Add parity in schema.key lookup for `ordered_attribute?`
73
+ [jeremyf](https://github.com/jeremyf)
74
+ * Order member_ids when using schema-style attributes method.
75
+ [no-reply](https://github.com/no-reply)
76
+ * Use DEFAULT_FEDORA_VERSION constant for Fedora adapter.
77
+ [no-reply](https://github.com/no-reply)
78
+ * Stop testing ActiveRecord 5.1
79
+ [scherztc](https://github.com/scherztc)
80
+ * Rename ListNode#target_uri to ListNode#target
81
+ [mbklein](https://github.com/mbklein)
82
+ * Document that Solr Persister is intended to be used as a secondary persister.
83
+ [hweng](https://github.com/hweng)
84
+ * Remove unused database tables from schema.rb
85
+ [scherztc](https://github.com/scherztc)
86
+ * Alternate Identifier documentation
87
+ [escowles](https://github.com/escowles)
88
+ * Remove suggest component in example Solr Config
89
+ [hweng](https://github.com/hweng)
90
+ * Remove unused db/seeds.rb
91
+ [scherztc](https://github.com/scherztc)
92
+ * Replace YARD Doc for Solr adapter with references to Memory Adapter.
93
+ [afred](https://github.com/afred)
94
+ * Refactor shadowed variable in buffered persister spec.
95
+ [jeremyf](https://github.com/jeremyf)
96
+ * Use example.com instead of made-up URLs
97
+ [escowles](https://github.com/escowles)
98
+ * Add count_all_of_model query
99
+ [christinach](https://github.com/christinach)
100
+ [blancoj](https://github.com/blancoj)
101
+ * Raise an error when unable to find a StorageAdapter
102
+ [bkiahstroud](https://github.com/bkiahstroud)
103
+ [FCRodriguez7](https://github.com/FCRodriguez7)
104
+ [kcompsci](https://github.com/kcompsci)
105
+ * Allow find_inverse_reference_by property to be either ordered or not.
106
+ [elrayle](https://github.com/elrayle)
107
+ * Randomized spec order
108
+ [jeremyf](https://github.com/jeremyf)
109
+ * Allow Valkyrie logging to be tagged with a context and suppressed.
110
+ [jeremyf](https://github.com/jeremyf)
111
+ * Fix documentation for Valkyrie::Persister::Memory being disassociated.
112
+ [jeremyf](https://github.com/jeremyf)
113
+ * Suppress Solr warnings in tests.
114
+ [jeremyf](https://github.com/jeremyf)
115
+ * Add `Valkyrie::Types::Relation` and `Valkyrie::Types::OrderedRelation`
116
+ [luisgreg99](https://github.com/luisgreg99)
117
+ [lsat12357](https://github.com/lsat12357)
118
+ [foglabs](https://github.com/foglabs)
119
+ [dgcliff](https://github.com/dgcliff)
120
+
121
+ # v2.0.2 2019-10-17
122
+
123
+ ## Changes since last release
124
+
125
+ * Fix nil not persisting with the ActiveRecord adapter.
126
+ [tpendragon](https://github.com/tpendragon)
127
+ * Define setters when building a Resource schema with `.attributes`
128
+ [no-reply](https://github.com/no-reply)
129
+
130
+ Additional thanks to the following for code review and issue reports leading to
131
+ this release:
132
+
133
+ [coblej](https://github.com/coblej)
134
+
1
135
  # v2.0.1 2019-07-03
2
136
 
3
137
  ## Changes since last release
data/README.md CHANGED
@@ -4,7 +4,7 @@ Valkyrie is a gem for enabling multiple backends for storage of files and metada
4
4
 
5
5
  ![Valkyrie Logo](valkyrie_logo.png)
6
6
 
7
- Code: [![Version](https://badge.fury.io/rb/valkyrie.png)](http://badge.fury.io/rb/valkyrie)
7
+ Code: [![Gem Version](https://badge.fury.io/rb/valkyrie.svg)](https://badge.fury.io/rb/valkyrie)
8
8
  [![Build Status](https://circleci.com/gh/samvera/valkyrie.svg?style=svg)](https://circleci.com/gh/samvera/valkyrie)
9
9
  ![Coverage Status](https://img.shields.io/badge/Coverage-100-brightgreen.svg)
10
10
 
@@ -107,7 +107,7 @@ The initializer registers four `Valkyrie::MetadataAdapter` instances for storing
107
107
  * `:memory` which stores metadata in an in-memory cache (this cache is not persistent, so it is only
108
108
  appropriate for testing).
109
109
  * `:postgres` which stores metadata in a PostgreSQL database.
110
- * `:solr` which stores metadata in a Solr Index.
110
+ * `:solr` which stores metadata in a Solr Index (Solr Persister issues a warning if it has to generate an ID for a new resource because it is intended to be used as a secondary persister).
111
111
 
112
112
  Other adapter options include `Valkyrie::Persistence::BufferedPersister` for buffering in memory before bulk
113
113
  updating another persister, `Valkyrie::Persistence::CompositePersister` for storing in more than one adapter
@@ -252,53 +252,25 @@ config. If Fedora requires auth, you can also include that in the URL, e.g.:
252
252
 
253
253
  ## Installing a Development environment
254
254
 
255
- ### With Docker
256
- The development and test stacks use fully contained virtual volumes and bind all services to different ports,
257
- so they can be running at the same time without issue.
258
-
259
- #### External Requirements
260
- * [Docker](https://store.docker.com/search?offering=community&type=edition) version >= 17.09.0
261
-
262
- ### Dependency Setup (Mac OSX)
263
- 1. `brew install docker`
264
- 1. `brew install docker-machine`
265
- 1. `brew install docker-compose`
266
-
267
- ### Starting Docker (Mac OSX)
268
- 1. `docker-machine create default`
269
- 1. `docker-machine start default`
270
- 1. `eval "$(docker-machine env)"`
271
-
272
- #### Starting the development mode dependencies
273
- 1. Start Solr, Fedora, and PostgreSQL with `rake docker:dev:daemon` (or `rake docker:dev:up` in a separate
274
- shell to run them in the foreground)
275
- 1. Run `rake db:create db:migrate` to initialize the database
276
- 1. Develop!
277
- 1. Run `rake docker:dev:down` to stop the server stack
278
- * Development servers maintain data between runs. To clean them out, run `rake docker:dev:clean`
279
-
280
- #### To run the test suite with all dependencies in one go
281
- 1. `rake docker:spec`
282
-
283
- #### To run the test suite manually
284
- 1. Start Solr, Fedora, and PostgreSQL with `rake docker:test:daemon` (or `rake docker:test:up` in a separate
285
- shell to run them in the foreground)
286
- 1. Run `rake db:create db:migrate` to initialize the database
287
- 1. Run the gem's RSpec test suite with `rspec spec` or `rake`
288
- 1. Run `rake docker:test:down` to stop the server stack
289
- * The test stack cleans up after itself on exit.
290
-
291
- ### Without Docker
292
-
293
- #### External Requirements
294
- * PostgreSQL with the uuid-ossp extension.
295
- * Note: Enabling uuid-ossp requires database superuser privileges.
296
- * From `psql`: `alter user [username] with superuser;`
297
-
298
- #### To run the test suite
299
- 1. Start Solr and Fedora servers for testing with `rake server:test`
300
- 1. Run `rake db:create` (First time only)
301
- 1. Run `rake db:migrate`
255
+ For ease of development we use Lando to abstract away some complications of
256
+ using Docker containers for development.
257
+
258
+ ### Running Tests
259
+
260
+ 1. Install the latest released > 3.0 version of Lando from [here](https://github.com/lando/lando/releases).
261
+ 2. `bundle install`
262
+ 3. `bundle exec rake server:start`
263
+ 4. `bundle exec rspec spec`
264
+
265
+ ### Cleaning Data
266
+
267
+ 1. `bundle exec rake server:clean`
268
+
269
+ ### Stopping Servers
270
+
271
+ 1. `bundle exec rake server:stop`
272
+
273
+ You can also run `lando poweroff` from anywhere.
302
274
 
303
275
  ## Acknowledgments
304
276