valkyrie 2.1.0 → 3.0.0.pre.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +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.