valkyrie 2.0.0 → 2.1.2

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