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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67949cb5bed2cbcf96fa0919446f7e94288874371cca3f706fed156775b3c63f
4
- data.tar.gz: febfd165c53533252232090bd427fb5f970b85053a314ff991f15d851bda078a
3
+ metadata.gz: 240eb74a4be15202ae2036ac9a0067b1aadc23e65ad583638b6cd2874540a845
4
+ data.tar.gz: 65568d10c48dcadbee70bff7c23360a6e0b149f874b5ebe493b5770afb6e4362
5
5
  SHA512:
6
- metadata.gz: ba0e9e518bb437c93c1e27a21c851af5eaea423cbc863b7f68b555017a98a663ead92ea51bfcb5edcf5975b013b95f2179a5805aca9f988e269ff0beef85686a
7
- data.tar.gz: ae2a939e6ab89a5e704a2a8234a7addc93d1f946a260aa9860d0beab87ef8eeb66d6d789a06e3fe40c2abd8d92f2ec25edd7f9889c4f23cdc8ea213cf29d1a4c
6
+ metadata.gz: 29b4ebfb067823191dfb2ca74151765ad8157f2c4b7b89cbecaf882e8e6f32eded31fdfb326ca198192e50574a562f8582205bab921d248707f2993b31960528
7
+ data.tar.gz: 1fc174038d3baac66d35e431211ed83e38d2531395f86ecfeee106a612631d42a1f2fa11fe55a561617d3a23561763707100c701a73a06147db11bb073a60636
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,38 +9,63 @@ 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
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
43
+
19
44
  - run:
20
- name: Set ruby version to << parameters.ruby >>
45
+ name: Check for 'master' branch
21
46
  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
47
+ git fetch --all --quiet --prune --prune-tags
48
+ if [[ -n "$(git branch --all --list master */master)" ]]; then
49
+ echo "A branch named 'master' was found. Please remove it."
50
+ echo "$(git branch --all --list master */master)"
51
+ fi
52
+ [[ -z "$(git branch --all --list master */master)" ]]
32
53
  - run:
33
- name: Install Docker Compose
34
- 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
54
+ name: Wait for solr
55
+ command: dockerize -wait tcp://localhost:8994 -timeout 1m
38
56
  - run:
39
- name: Update bundler
40
- command: gem install bundler -v 1.17.2
57
+ name: Load config into solr
58
+ command: |
59
+ cd solr/config
60
+ zip -1 -r solr_config.zip ./*
61
+ curl -H "Content-type:application/octet-stream" --data-binary @solr_config.zip "http://localhost:8994/solr/admin/configs?action=UPLOAD&name=valkyrie"
62
+ curl -H 'Content-type: application/json' http://localhost:8994/api/collections/ -d '{create: {name: valkyrie-core-test, config: valkyrie, numShards: 1}}'
63
+ # Install Bundler
64
+ - run: gem install bundler -v '~> 2.0'
41
65
  - restore_cache:
42
66
  keys:
43
67
  - bundle-{{ checksum "<< parameters.gemfile >>" }}-{{ checksum "valkyrie.gemspec" }}-<< parameters.ruby >>-6
44
- - run: sudo apt-get update && sudo apt-get install -y libpq-dev
68
+ - run: sudo apt update -y && sudo apt-get install -y libpq-dev lsof
45
69
  - run:
46
70
  name: Set BUNDLE_GEMFILE
47
71
  command: |
@@ -57,9 +81,12 @@ jobs:
57
81
  - run:
58
82
  name: Run Rubocop
59
83
  command: bundle exec rake rubocop
84
+ - run:
85
+ name: Set up database
86
+ command: bundle exec rake db:migrate
60
87
  - run:
61
88
  name: Run Specs
62
- command: bundle exec rake docker:spec
89
+ command: bundle exec rspec spec
63
90
  - store_artifacts:
64
91
  path: coverage
65
92
  destination: coverage
@@ -69,20 +96,24 @@ workflows:
69
96
  jobs:
70
97
  - build:
71
98
  gemfile: "gemfiles/activerecord_6_0.gemfile"
72
- ruby: 2.6.3
99
+ ruby: 2.7.0
100
+ name: "Ruby2-7_Rails6-0"
101
+ - build:
102
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
103
+ ruby: 2.6.5
73
104
  name: "Ruby2-6_Rails6-0"
74
105
  - build:
75
106
  gemfile: "gemfiles/activerecord_5_2.gemfile"
76
- ruby: 2.6.3
77
- name: "Ruby2-6_Rails5-2"
107
+ ruby: 2.7.0
108
+ name: "Ruby2-7_Rails5-2"
78
109
  - build:
79
110
  gemfile: "gemfiles/activerecord_5_2.gemfile"
80
- ruby: 2.5.5
81
- name: "Ruby2-5_Rails5-2"
111
+ ruby: 2.6.5
112
+ name: "Ruby2-6_Rails5-2"
82
113
  - build:
83
114
  gemfile: "gemfiles/activerecord_5_2.gemfile"
84
- ruby: 2.4.6
85
- name: "Ruby2-4_Rails5-2"
115
+ ruby: 2.5.7
116
+ name: "Ruby2-5_Rails5-2"
86
117
  nightly:
87
118
  triggers:
88
119
  - schedule:
@@ -94,17 +125,21 @@ workflows:
94
125
  jobs:
95
126
  - build:
96
127
  gemfile: "gemfiles/activerecord_6_0.gemfile"
97
- ruby: 2.6.3
128
+ ruby: 2.7.0
129
+ name: "Ruby2-7_Rails6-0"
130
+ - build:
131
+ gemfile: "gemfiles/activerecord_6_0.gemfile"
132
+ ruby: 2.6.5
98
133
  name: "Ruby2-6_Rails6-0"
99
134
  - build:
100
135
  gemfile: "gemfiles/activerecord_5_2.gemfile"
101
- ruby: 2.6.3
102
- name: "Ruby2-6_Rails5-2"
136
+ ruby: 2.7.0
137
+ name: "Ruby2-7_Rails5-2"
103
138
  - build:
104
139
  gemfile: "gemfiles/activerecord_5_2.gemfile"
105
- ruby: 2.5.5
106
- name: "Ruby2-5_Rails5-2"
140
+ ruby: 2.6.5
141
+ name: "Ruby2-6_Rails5-2"
107
142
  - build:
108
143
  gemfile: "gemfiles/activerecord_5_2.gemfile"
109
- ruby: 2.4.6
110
- name: "Ruby2-4_Rails5-2"
144
+ ruby: 2.5.7
145
+ 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
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"
@@ -36,3 +39,10 @@ Naming/FileName:
36
39
  Exclude:
37
40
  - 'Appraisals'
38
41
  - 'Gemfile'
42
+ Metrics/MethodLength:
43
+ Exclude:
44
+ - 'lib/valkyrie/persistence/postgres/persister.rb'
45
+ - 'lib/valkyrie/persistence/fedora/persister.rb'
46
+ Metrics/CyclomaticComplexity:
47
+ Exclude:
48
+ - 'lib/valkyrie/persistence/postgres/persister.rb'
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 2.5.1
1
+ ruby 2.6.6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,84 @@
1
+ # v3.0.0.beta1 2021-10-18
2
+
3
+ ## Changes since last release
4
+
5
+ * More informative NoMethodError for missing custom queries.
6
+ [no-reply](https://github.com/no-reply)
7
+ * Persisters error if you save something which existed at query time, but has
8
+ since been deleted.
9
+ * Shared write-only persisters.
10
+ * Solr ModelConverter performance.
11
+ * Don't hold open a file handle from StorageAdapter#upload/find_by
12
+ * Files can be #close'd.
13
+ * Remove Draper
14
+ * Remove deprecated string equality function.
15
+ * Remove deprecated BlacklistedValue.
16
+ * Allow reform upgrade to 2.6.
17
+ * Don't require a specific error message in shared specs
18
+ [tpendragon](https://github.com/tpendragon)
19
+
20
+ Additional thanks to the following for code review and issue reports leading to
21
+ this release:
22
+
23
+ [hackartisan](https://github.com/hackartisan)
24
+ [eliotjordan](https://github.com/eliotjordan)
25
+
26
+
27
+ # v2.2.0 2021-05-06
28
+
29
+ ## Changes since last release
30
+
31
+ * Add support for Fedora 6.
32
+ [tpendragon](https://github.com/tpendragon)
33
+ * Deprecate pcdmuse:PreservationMasterFile in favor of pcdmuse:PreservationFile
34
+ [escowles](https://github.com/escowles)
35
+ * Improve spec docs for resource.rb
36
+ [dchandekstark](https://github.com/dchandekstark)
37
+ * Memoize resource in Solr queries to reduce Solr calls.
38
+ [dchandekstark](https://github.com/dchandekstark)
39
+
40
+ # v2.1.2 2021-04-19
41
+
42
+ ## Changes since last release
43
+
44
+ * Tighten reform dependency
45
+ [tpendragon](https://github.com/tpendragon)
46
+ * Loosen RDF Dependency
47
+ [no-reply](https://github.com/no-reply)
48
+ * Update development ruby version in .tool-versions
49
+ [hackartisan](https://github.com/hackartisan)
50
+ * Use Lando for development
51
+ [tpendragon](https://github.com/tpendragon)
52
+ * Deprecate Blacklist in favor of Denylist.
53
+ [jeremyf](https://github.com/jeremyf)
54
+ * Make DateTime handling in Fedora/Solr persisters consistent with others.
55
+ [hcayless](https://github.com/hcayless)
56
+ * Add open-ended Rake support.
57
+ [no-reply](https://github.com/no-reply)
58
+
59
+ Additional thanks to the following for code review and issue reports leading to
60
+ this release:
61
+
62
+ [cjcolvar](https://github.com/cjcolvar)
63
+ [escowles](https://github.com/escowles)
64
+ [jeremyf](https://github.com/jeremyf)
65
+
66
+ # v2.1.1 2020-03-12
67
+
68
+ ## Changes since last release
69
+
70
+ * Add Ruby 2.7 support.
71
+ [tpendragon](https://github.com/tpendragon)
72
+ * Make ID & String equality symmetrical
73
+ [no-reply](https://github.com/no-reply)
74
+
75
+ Additional thanks to the following for code review and issue reports leading to
76
+ this release:
77
+
78
+ [cjcolvar](https://github.com/cjcolvar)
79
+ [escowles](https://github.com/escowles)
80
+ [jeremyf](https://github.com/jeremyf)
81
+
1
82
  # v2.1.0 2020-01-09
2
83
 
3
84
  ## Changes since last release
@@ -5,9 +86,9 @@
5
86
  * Use `::` prefixed names for `JSON::LD` references.
6
87
  [no-reply](https://github.com/no-reply)
7
88
  * Use SVG instead of PNG for version badge.
8
- [hackmastera](https://github.com/hackmastera)
89
+ [hackartisan](https://github.com/hackartisan)
9
90
  * Fix Rubocop for latest Bixby.
10
- [hackmastera](https://github.com/hackmastera)
91
+ [hackartisan](https://github.com/hackartisan)
11
92
  * Valkyrie IDs equal string equivalent of ID to String with config
12
93
  [jlevnhv](https://github.com/jlevnhv)
13
94
  * Add optional model parameter to find_inverse_references_by and
@@ -152,7 +233,7 @@ involved for their contributions in the last year:
152
233
  [cjcolvar](https://github.com/cjcolvar)
153
234
  [dgcliff](https://github.com/dgcliff)
154
235
  [escowles](https://github.com/escowles)
155
- [hackmastera](https://github.com/hackmastera)
236
+ [hackartisan](https://github.com/hackartisan)
156
237
  [jeremyf](https://github.com/jeremyf)
157
238
  [jrgriffiniii](https://github.com/jrgriffiniii)
158
239
  [kelynch](https://github.com/kelynch)
@@ -233,17 +314,17 @@ this release:
233
314
  * Provide a warning when postgres adapter overwrites an ID, deprecate this
234
315
  behavior so it will throw an exception in the future.
235
316
  [cam156](https://github.com/cam156)
236
- [hackmastera](https://github.com/hackmastera)
317
+ [hackartisan](https://github.com/hackartisan)
237
318
  [tpendragon](https://github.com/tpendragon)
238
319
  * Add support for passing just an ID to find_inverse_references_by
239
320
  [cam156](https://github.com/cam156)
240
- [hackmastera](https://github.com/hackmastera)
321
+ [hackartisan](https://github.com/hackartisan)
241
322
  * Fix memory adapter raising an exception in find_by_alternate_identifier when
242
323
  there are resources without the alternate_identifier attribute.
243
324
  [jeremyf](https://github.com/jeremyf)
244
325
  * Provide a warning when using the postgres adapter without manually providing
245
326
  the pg gem, so it can be an optional dependency in 2.0.0.
246
- [hackmastera](https://github.com/hackmastera)
327
+ [hackartisan](https://github.com/hackartisan)
247
328
  * Provide guidance in specs on how to define alternate_ids
248
329
  [cjcolvar](https://github.com/cjcolvar)
249
330
  * Upload files to Fedora using form/multipart.
@@ -289,17 +370,17 @@ Additional thanks to the following for code review:
289
370
  * Provide a warning when postgres adapter overwrites an ID, deprecate this
290
371
  behavior so it will throw an exception in the future.
291
372
  [cam156](https://github.com/cam156)
292
- [hackmastera](https://github.com/hackmastera)
373
+ [hackartisan](https://github.com/hackartisan)
293
374
  [tpendragon](https://github.com/tpendragon)
294
375
  * Add support for passing just an ID to find_inverse_references_by
295
376
  [cam156](https://github.com/cam156)
296
- [hackmastera](https://github.com/hackmastera)
377
+ [hackartisan](https://github.com/hackartisan)
297
378
  * Fix memory adapter raising an exception in find_by_alternate_identifier when
298
379
  there are resources without the alternate_identifier attribute.
299
380
  [jeremyf](https://github.com/jeremyf)
300
381
  * Provide a warning when using the postgres adapter without manually providing
301
382
  the pg gem, so it can be an optional dependency in 2.0.0.
302
- [hackmastera](https://github.com/hackmastera)
383
+ [hackartisan](https://github.com/hackartisan)
303
384
  * Provide guidance in specs on how to define alternate_ids
304
385
  [cjcolvar](https://github.com/cjcolvar)
305
386
  * Upload files to Fedora using form/multipart.
@@ -350,7 +431,7 @@ this release:
350
431
  ## Changes since last release
351
432
 
352
433
  * Fix solr persister to pass through exceptions on timeout
353
- [hackmastera](https://github.com/hackmastera)
434
+ [hackartisan](https://github.com/hackartisan)
354
435
  * Fix generated specs to work with shared_specs expectation
355
436
  [revgum](https://github.com/revgum)
356
437
 
@@ -397,7 +478,7 @@ following participants who made it happen:
397
478
  * [cam156](https://github.com/cam156)
398
479
  * [DanCoughlin](https://github.com/DanCoughlin)
399
480
  * [escowles](https://github.com/escowles)
400
- * [hackmastera](https://github.com/hackmastera)
481
+ * [hackartisan](https://github.com/hackartisan)
401
482
  * [jrgriffiniii](https://github.com/jrgriffiniii)
402
483
  * [mtribone](https://github.com/mtribone)
403
484
  * [tpendragon](https://github.com/tpendragon)
@@ -414,7 +495,7 @@ following participants who made it happen:
414
495
  ## Changes since last release
415
496
 
416
497
  * Loosened ActiveRecord restriction to allow upgrading pg gem to 1.0.
417
- [hackmastera](https://github.com/hackmastera)
498
+ [hackartisan](https://github.com/hackartisan)
418
499
 
419
500
  # v1.1.0 2018-05-08
420
501
 
@@ -493,7 +574,7 @@ Initial Release
493
574
  * [dlpierce](https://github.com/dlpierce)
494
575
  * [escowles](https://github.com/escowles)
495
576
  * [geekscruff](https://github.com/geekscruff)
496
- * [hackmastera](https://github.com/hackmastera)
577
+ * [hackartisan](https://github.com/hackartisan)
497
578
  * [jcoyne](https://github.com/jcoyne)
498
579
  * [jeremyf](https://github.com/jeremyf)
499
580
  * [jgondron](https://github.com/jgondron)
data/CONTRIBUTING.md CHANGED
@@ -22,6 +22,28 @@ https://wiki.duraspace.org/display/samvera/Samvera+Community+Intellectual+Proper
22
22
 
23
23
  You should also add yourself to the `CONTRIBUTORS.md` file in the root of the project.
24
24
 
25
+ ## Language
26
+ The language we use matters. Today, tomorrow, and for years to come
27
+ people will read the code we write. They will judge us for our
28
+ design, logic, and the words we use to describe the system.
29
+ Our words should be accessible. Favor descriptive words that give
30
+ meaning while avoiding reinforcing systemic inequities. For example,
31
+ in the Samvera community, we should favor using allowed\_list instead
32
+ of whitelist, denied\_list instead of blacklist, or source/copy
33
+ instead of master/slave.
34
+ We're going to get it wrong, but this is a call to keep working to
35
+ make it right. View our code and the words we choose as a chance to
36
+ have a conversation. A chance to grow an understanding of the systems
37
+ we develop as well as the systems in which we live.
38
+ See [“Blacklists” and “whitelists”: a salutary warning concerning the
39
+ prevalence of racist language in discussions of predatory
40
+ publishing](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6148600/) for
41
+ further details.
42
+
43
+ If you're working on PR for this project, create a feature branch off of `main`.
44
+
45
+ Please ***do not*** create a branch called `master` for this repository or as part of your pull request; the branch will either need to be removed or renamed before it can be considered for inclusion in the code base and history of our repositories.
46
+
25
47
  ## Contribution Tasks
26
48
 
27
49
  * Reporting Issues
@@ -45,10 +67,10 @@ You should also add yourself to the `CONTRIBUTORS.md` file in the root of the pr
45
67
 
46
68
  * Fork the repository on GitHub
47
69
  * Create a topic branch from where you want to base your work.
48
- * This is usually the master branch.
49
- * To quickly create a topic branch based on master; `git branch fix/master/my_contribution master`
50
- * Then checkout the new branch with `git checkout fix/master/my_contribution`.
51
- * Please avoid working directly on the `master` branch.
70
+ * This is usually the main branch.
71
+ * To quickly create a topic branch based on main; `git branch fix/main/my_contribution main`
72
+ * Then checkout the new branch with `git checkout fix/main/my_contribution`.
73
+ * Please avoid working directly on the `main` branch.
52
74
  * You may find the [hub suite of commands](https://github.com/defunkt/hub) helpful
53
75
  * Make sure you have added sufficient tests and documentation for your changes.
54
76
  * Test functionality with RSpec; Test features / UI with Capybara.
@@ -109,15 +131,15 @@ You should also add yourself to the `CONTRIBUTORS.md` file in the root of the pr
109
131
  ### Submitting Changes
110
132
 
111
133
  * Read the article ["Using Pull Requests"](https://help.github.com/articles/using-pull-requests) on GitHub.
112
- * Make sure your branch is up to date with its parent branch (i.e. master)
113
- * `git checkout master`
134
+ * Make sure your branch is up to date with its parent branch (i.e. main)
135
+ * `git checkout main`
114
136
  * `git pull --rebase`
115
137
  * `git checkout <your-branch>`
116
- * `git rebase master`
138
+ * `git rebase main`
117
139
  * It is a good idea to run your tests again.
118
140
  * If you've made more than one commit take a moment to consider whether squashing commits together would help improve their logical grouping.
119
141
  * [Detailed Walkthrough of One Pull Request per Commit](http://ndlib.github.io/practices/one-commit-per-pull-request/)
120
- * `git rebase --interactive master` ([See Github help](https://help.github.com/articles/interactive-rebase))
142
+ * `git rebase --interactive main` ([See Github help](https://help.github.com/articles/interactive-rebase))
121
143
  * Squashing your branch's changes into one commit is "good form" and helps the person merging your request to see everything that is going on.
122
144
  * Push your changes to a topic branch in your fork of the repository.
123
145
  * Submit a pull request from your fork to the project.
data/README.md CHANGED
@@ -239,7 +239,7 @@ custom adapters, but your application will still work.
239
239
  Using the shared specs in your own models is described in more detail on the [Shared Specs Wiki
240
240
  page](https://github.com/samvera/valkyrie/wiki/Shared-Specs).
241
241
 
242
- ### Fedora 5 Compatibility
242
+ ### Fedora 5/6 Compatibility
243
243
  When configuring your adapter, include the `fedora_version` parameter in your metadata or storage adapter
244
244
  config. If Fedora requires auth, you can also include that in the URL, e.g.:
245
245
 
@@ -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
 
@@ -310,3 +282,7 @@ This software has been developed by and is brought to you by the Samvera communi
310
282
  ## Contributing
311
283
 
312
284
  Bug reports and pull requests are welcome on GitHub at https://github.com/samvera/valkyrie/.
285
+
286
+ If you're working on PR for this project, create a feature branch off of `main`.
287
+
288
+ This repository follows the [Samvera Community Code of Conduct](https://samvera.atlassian.net/wiki/spaces/samvera/pages/405212316/Code+of+Conduct) and [language recommendations](https://github.com/samvera/maintenance/blob/master/templates/CONTRIBUTING.md#language). Please ***do not*** create a branch called `master` for this repository or as part of your pull request; the branch will either need to be removed or renamed before it can be considered for inclusion in the code base and history of this repository.