valkyrie 2.0.0 → 2.1.2

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +60 -56
  3. data/.lando.yml +40 -0
  4. data/.rubocop.yml +4 -1
  5. data/.tool-versions +1 -1
  6. data/Appraisals +4 -4
  7. data/CHANGELOG.md +136 -0
  8. data/README.md +21 -49
  9. data/Rakefile +21 -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 +2 -2
  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 +16 -17
  29. data/lib/valkyrie/persistence/fedora/persister/orm_converter.rb +38 -18
  30. data/lib/valkyrie/persistence/fedora/query_service.rb +54 -53
  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 +4 -2
  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_members_query.rb +1 -1
  42. data/lib/valkyrie/persistence/solr/query_service.rb +42 -53
  43. data/lib/valkyrie/persistence/solr/repository.rb +2 -1
  44. data/lib/valkyrie/rdf_patches.rb +2 -2
  45. data/lib/valkyrie/resource.rb +36 -5
  46. data/lib/valkyrie/specs/shared_specs/change_set.rb +1 -1
  47. data/lib/valkyrie/specs/shared_specs/persister.rb +17 -6
  48. data/lib/valkyrie/specs/shared_specs/queries.rb +112 -9
  49. data/lib/valkyrie/storage/fedora.rb +17 -17
  50. data/lib/valkyrie/storage_adapter.rb +16 -13
  51. data/lib/valkyrie/types.rb +3 -1
  52. data/lib/valkyrie/version.rb +1 -1
  53. data/solr/config/solrconfig.xml +0 -10
  54. data/tasks/dev.rake +14 -51
  55. data/valkyrie.gemspec +4 -4
  56. metadata +40 -37
  57. data/.docker-stack/valkyrie-development/docker-compose.yml +0 -53
  58. data/.docker-stack/valkyrie-test/docker-compose.yml +0 -53
  59. data/db/seeds.rb +0 -8
  60. data/tasks/docker.rake +0 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f944c9582622daf4bc0eddee8290ae57a7bf43f01d38c261814a8668cce8f4bb
4
- data.tar.gz: 3ab12ff9a09532f59f6cc635c01d40283eb3a63ed6d0bca2f1a78d118524c0a9
3
+ metadata.gz: 2d82ceafa985dc327a594ad39da9f4feb343579e6330ae7f30a6fd7894471083
4
+ data.tar.gz: 56f54340890de9a799588b47eb4fb3ee6f400d598db03c7bf97d4163d128d831
5
5
  SHA512:
6
- metadata.gz: 15bfe465aa9152f3a9fb9b6eaf5d40ce86e1e024c937bc9062a5ab421d23f5f8b05b29f1ab22a869ceb5f800f6f217cbdea443b5b34fee7330720ae702c052db
7
- data.tar.gz: a2d61190c00329845a913a7f571a19549a0b0d39f9ab2654212789d16f2db212aff67f5e8a10bdf1cf1843c5e5d9bad4c604359954b5821ba06610eceed49866
6
+ metadata.gz: 2676a955ae6333f4c9b82a4f2a0e131bb235e4cdef8b05951bdfb787ac1218a9e2da410a476928482824b909a12ade0f2d6e2074915c3738922ca4f3a8004337
7
+ data.tar.gz: 67a8b919a2ce033240db9d8b507140f84a8c49edfbf7283f205a41a7a09d2ba99940e5c465f0959cc27ce707e52d68b5e2d04a0f67376f482ae560c4713608ee
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,44 @@ 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: solr:7.7-alpine
32
+ command: bin/solr -cloud -noprompt -f -p 8994
15
33
  environment:
16
34
  BUNDLE_GEMFILE: << parameters.gemfile >>
35
+ POSTGRES_PORT: 5432
17
36
  steps:
18
37
  - checkout
19
38
  - 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
39
+ name: Wait for solr
40
+ command: dockerize -wait tcp://localhost:8994 -timeout 1m
32
41
  - run:
33
- name: Install Docker Compose
42
+ name: Load config into solr
34
43
  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
44
+ cd solr/config
45
+ zip -1 -r solr_config.zip ./*
46
+ curl -H "Content-type:application/octet-stream" --data-binary @solr_config.zip "http://localhost:8994/solr/admin/configs?action=UPLOAD&name=valkyrie"
47
+ curl -H 'Content-type: application/json' http://localhost:8994/api/collections/ -d '{create: {name: valkyrie-core-test, config: valkyrie, numShards: 1}}'
48
+ # Install Bundler
49
+ - run: gem install bundler -v '~> 2.0'
41
50
  - restore_cache:
42
51
  keys:
43
52
  - bundle-{{ checksum "<< parameters.gemfile >>" }}-{{ checksum "valkyrie.gemspec" }}-<< parameters.ruby >>-6
@@ -57,9 +66,12 @@ jobs:
57
66
  - run:
58
67
  name: Run Rubocop
59
68
  command: bundle exec rake rubocop
69
+ - run:
70
+ name: Set up database
71
+ command: bundle exec rake db:migrate
60
72
  - run:
61
73
  name: Run Specs
62
- command: bundle exec rake docker:spec
74
+ command: bundle exec rspec spec
63
75
  - store_artifacts:
64
76
  path: coverage
65
77
  destination: coverage
@@ -68,29 +80,25 @@ workflows:
68
80
  build:
69
81
  jobs:
70
82
  - build:
71
- gemfile: "gemfiles/activerecord_5_2.gemfile"
72
- ruby: 2.6.3
73
- name: "Ruby2-6_Rails5-2"
83
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
84
+ ruby: 2.7.0
85
+ name: "Ruby2-7_Rails6-0"
74
86
  - build:
75
- gemfile: "gemfiles/activerecord_5_1.gemfile"
76
- ruby: 2.6.3
77
- name: "Ruby2-6_Rails5-1"
87
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
88
+ ruby: 2.6.5
89
+ name: "Ruby2-6_Rails6-0"
78
90
  - build:
79
91
  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"
92
+ ruby: 2.7.0
93
+ name: "Ruby2-7_Rails5-2"
86
94
  - build:
87
95
  gemfile: "gemfiles/activerecord_5_2.gemfile"
88
- ruby: 2.4.6
89
- name: "Ruby2-4_Rails5-2"
96
+ ruby: 2.6.5
97
+ name: "Ruby2-6_Rails5-2"
90
98
  - build:
91
- gemfile: "gemfiles/activerecord_5_1.gemfile"
92
- ruby: 2.4.6
93
- name: "Ruby2-4_Rails5-1"
99
+ gemfile: "gemfiles/activerecord_5_2.gemfile"
100
+ ruby: 2.5.7
101
+ name: "Ruby2-5_Rails5-2"
94
102
  nightly:
95
103
  triggers:
96
104
  - schedule:
@@ -101,26 +109,22 @@ workflows:
101
109
  - master
102
110
  jobs:
103
111
  - build:
104
- gemfile: "gemfiles/activerecord_5_2.gemfile"
105
- ruby: 2.6.3
106
- name: "Ruby2-6_Rails5-2"
112
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
113
+ ruby: 2.7.0
114
+ name: "Ruby2-7_Rails6-0"
107
115
  - build:
108
- gemfile: "gemfiles/activerecord_5_1.gemfile"
109
- ruby: 2.6.3
110
- name: "Ruby2-6_Rails5-1"
116
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
117
+ ruby: 2.6.5
118
+ name: "Ruby2-6_Rails6-0"
111
119
  - build:
112
120
  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"
121
+ ruby: 2.7.0
122
+ name: "Ruby2-7_Rails5-2"
119
123
  - build:
120
124
  gemfile: "gemfiles/activerecord_5_2.gemfile"
121
- ruby: 2.4.6
122
- name: "Ruby2-4_Rails5-2"
125
+ ruby: 2.6.5
126
+ name: "Ruby2-6_Rails5-2"
123
127
  - build:
124
- gemfile: "gemfiles/activerecord_5_1.gemfile"
125
- ruby: 2.4.6
126
- name: "Ruby2-4_Rails5-1"
128
+ gemfile: "gemfiles/activerecord_5_2.gemfile"
129
+ ruby: 2.5.7
130
+ name: "Ruby2-5_Rails5-2"
data/.lando.yml ADDED
@@ -0,0 +1,40 @@
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
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,139 @@
1
+ # v2.1.2 2020-03-12
2
+
3
+ ## Changes since last release
4
+
5
+ * Tighten reform dependency
6
+ [tpendragon](https://github.com/tpendragon)
7
+ * Loosen RDF Dependency
8
+ [no-reply](https://github.com/no-reply)
9
+ * Update development ruby version in .tool-versions
10
+ [hackartisan](https://github.com/hackartisan)
11
+ * Use Lando for development
12
+ [tpendragon](https://github.com/tpendragon)
13
+ * Deprecate Blacklist in favor of Denylist.
14
+ [jeremyf](https://github.com/jeremyf)
15
+ * Make DateTime handling in Fedora/Solr persisters consistent with others.
16
+ [hcayless](https://github.com/hcayless)
17
+ * Add open-ended Rake support.
18
+ [no-reply](https://github.com/no-reply)
19
+
20
+ Additional thanks to the following for code review and issue reports leading to
21
+ this release:
22
+
23
+ [cjcolvar](https://github.com/cjcolvar)
24
+ [escowles](https://github.com/escowles)
25
+ [jeremyf](https://github.com/jeremyf)
26
+
27
+ # v2.1.1 2020-03-12
28
+
29
+ ## Changes since last release
30
+
31
+ * Add Ruby 2.7 support.
32
+ [tpendragon](https://github.com/tpendragon)
33
+ * Make ID & String equality symmetrical
34
+ [no-reply](https://github.com/no-reply)
35
+
36
+ Additional thanks to the following for code review and issue reports leading to
37
+ this release:
38
+
39
+ [cjcolvar](https://github.com/cjcolvar)
40
+ [escowles](https://github.com/escowles)
41
+ [jeremyf](https://github.com/jeremyf)
42
+
43
+ # v2.1.0 2020-01-09
44
+
45
+ ## Changes since last release
46
+
47
+ * Use `::` prefixed names for `JSON::LD` references.
48
+ [no-reply](https://github.com/no-reply)
49
+ * Use SVG instead of PNG for version badge.
50
+ [hackmastera](https://github.com/hackmastera)
51
+ * Fix Rubocop for latest Bixby.
52
+ [hackmastera](https://github.com/hackmastera)
53
+ * Valkyrie IDs equal string equivalent of ID to String with config
54
+ [jlevnhv](https://github.com/jlevnhv)
55
+ * Add optional model parameter to find_inverse_references_by and
56
+ find_references_by
57
+ [elrayle](https://github.com/elrayle)
58
+ [laritakr](https://github.com/laritakr)
59
+ * Add parity in schema.key lookup for `ordered_attribute?`
60
+ [jeremyf](https://github.com/jeremyf)
61
+ * Order member_ids when using schema-style attributes method.
62
+ [no-reply](https://github.com/no-reply)
63
+ * Use DEFAULT_FEDORA_VERSION constant for Fedora adapter.
64
+ [no-reply](https://github.com/no-reply)
65
+ * Stop testing ActiveRecord 5.1
66
+ [scherztc](https://github.com/scherztc)
67
+ * Rename ListNode#target_uri to ListNode#target
68
+ [mbklein](https://github.com/mbklein)
69
+ * Document that Solr Persister is intended to be used as a secondary persister.
70
+ [hweng](https://github.com/hweng)
71
+ * Remove unused database tables from schema.rb
72
+ [scherztc](https://github.com/scherztc)
73
+ * Alternate Identifier documentation
74
+ [escowles](https://github.com/escowles)
75
+ * Remove suggest component in example Solr Config
76
+ [hweng](https://github.com/hweng)
77
+ * Remove unused db/seeds.rb
78
+ [scherztc](https://github.com/scherztc)
79
+ * Replace YARD Doc for Solr adapter with references to Memory Adapter.
80
+ [afred](https://github.com/afred)
81
+ * Refactor shadowed variable in buffered persister spec.
82
+ [jeremyf](https://github.com/jeremyf)
83
+ * Use example.com instead of made-up URLs
84
+ [escowles](https://github.com/escowles)
85
+ * Add count_all_of_model query
86
+ [christinach](https://github.com/christinach)
87
+ [blancoj](https://github.com/blancoj)
88
+ * Raise an error when unable to find a StorageAdapter
89
+ [bkiahstroud](https://github.com/bkiahstroud)
90
+ [FCRodriguez7](https://github.com/FCRodriguez7)
91
+ [kcompsci](https://github.com/kcompsci)
92
+ * Allow find_inverse_reference_by property to be either ordered or not.
93
+ [elrayle](https://github.com/elrayle)
94
+ * Randomized spec order
95
+ [jeremyf](https://github.com/jeremyf)
96
+ * Allow Valkyrie logging to be tagged with a context and suppressed.
97
+ [jeremyf](https://github.com/jeremyf)
98
+ * Fix documentation for Valkyrie::Persister::Memory being disassociated.
99
+ [jeremyf](https://github.com/jeremyf)
100
+ * Suppress Solr warnings in tests.
101
+ [jeremyf](https://github.com/jeremyf)
102
+ * Add `Valkyrie::Types::Relation` and `Valkyrie::Types::OrderedRelation`
103
+ [luisgreg99](https://github.com/luisgreg99)
104
+ [lsat12357](https://github.com/lsat12357)
105
+ [foglabs](https://github.com/foglabs)
106
+ [dgcliff](https://github.com/dgcliff)
107
+
108
+ # v2.0.2 2019-10-17
109
+
110
+ ## Changes since last release
111
+
112
+ * Fix nil not persisting with the ActiveRecord adapter.
113
+ [tpendragon](https://github.com/tpendragon)
114
+ * Define setters when building a Resource schema with `.attributes`
115
+ [no-reply](https://github.com/no-reply)
116
+
117
+ Additional thanks to the following for code review and issue reports leading to
118
+ this release:
119
+
120
+ [coblej](https://github.com/coblej)
121
+
122
+ # v2.0.1 2019-07-03
123
+
124
+ ## Changes since last release
125
+
126
+ * Remove strftime from `Fedora::Persister::ModelConverter`
127
+ [tpendragon](https://github.com/tpendragon)
128
+ * Only parse ISO8601 strings into DateTimes
129
+ [awead](https://github.com/awead)
130
+
131
+
132
+ Additional thanks to the following for code review and issue reports leading to
133
+ this release:
134
+
135
+ [dgcliff](https://github.com/dgcliff)
136
+
1
137
  # v2.0.0 2019-06-06
2
138
 
3
139
  ## 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