valkyrie 2.0.1 → 2.2.0

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 +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