hyrax 5.0.0.rc3 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 020c1b9b867c89474795692fb51cc03751ecfd10feb8dd300750b12891b3687c
4
- data.tar.gz: 41385b0600e001653ed3eb30b239b1520125fb52192af6543d6be53ffb76d0e4
3
+ metadata.gz: 238652072010e0112f31139f4a0fd08b8cfffa834d059fe6f1a09a785dbbb95b
4
+ data.tar.gz: a5a9237eb4c0444181113ae4666131b592d29f210550ed967854995cea3b5ca0
5
5
  SHA512:
6
- metadata.gz: 1c56457afe4451c9bd228ef1b45e2d431c60855ba1b744c14f4320ceefa92020d9c4bff083d0d39271c8e8cf2d3db3a79ff0630ece9f676180c21a6b928fee13
7
- data.tar.gz: 144eda52bc5bee7caba33a113324e27fa5c00102c9422264758f68ab28f59844d6a1bb8ff6301d251cd17fc34e6e8cc4aa089c1b22c11249d3988070e935dcb8
6
+ metadata.gz: 112a9cfd288216b3ac82b7393190a2a3d5d77fe174497854d19d91a3503391fc179d1b28c00d94e91dabd3aa86c6a2d62b8e12f91f7b852e0e36edcb629ec9de
7
+ data.tar.gz: 67fabd5262783627bf3aaf6587240922db90aeede162e2c2bcc20b8312bbee4f1e84113b09fecb9636d411b7c2e09ee48bafe000d3fc73af7eb9eeec8e7e6623
data/CONTAINERS.md CHANGED
@@ -226,7 +226,7 @@ We publish several Hyrax images to the [GitHub container registry][ghcr] under
226
226
  the [Samvera organization][samvera-packages]. To build them:
227
227
 
228
228
  ```sh
229
- export HYRAX_VERSION=v5.0.0.rc3 # or desired version
229
+ export HYRAX_VERSION=v5.0.0 # or desired version
230
230
  git checkout hyrax-$HYRAX_VERSION
231
231
 
232
232
  docker build --target hyrax-base --tag ghcr.io/samvera/hyrax/hyrax-base:$(git rev-parse HEAD) .
@@ -26,9 +26,6 @@ module Hyrax
26
26
  # Catch permission errors
27
27
  rescue_from Hydra::AccessDenied, CanCan::AccessDenied, with: :deny_collection_access
28
28
 
29
- # actions: index, create, new, edit, show, update, destroy, permissions, citation
30
- before_action :authenticate_user!, except: [:index]
31
-
32
29
  class_attribute :presenter_class,
33
30
  :form_class,
34
31
  :single_item_search_builder_class,
@@ -80,6 +80,12 @@ class Hyrax::CatalogSearchBuilder < Hyrax::SearchBuilder
80
80
 
81
81
  # join from file id to work relationship solrized member_ids_ssim
82
82
  def join_for_works_from_files
83
- "{!join from=#{Hyrax.config.id_field} to=member_ids_ssim v=has_model_ssim:*FileSet}#{dismax_query}"
83
+ "{!join from=#{Hyrax.config.id_field} to=member_ids_ssim}#{file_set_filter}#{dismax_query}"
84
+ end
85
+
86
+ # Query segment to filter out non-FileSet documents
87
+ # A wildcard * is used to avoid attempting to escape the :: in Hyrax::FileSet
88
+ def file_set_filter
89
+ "{!lucene q.op=AND}has_model_ssim:*FileSet"
84
90
  end
85
91
  end
@@ -0,0 +1,38 @@
1
+ {{/*
2
+ Copyright VMware, Inc.
3
+ SPDX-License-Identifier: APACHE-2.0
4
+ */}}
5
+
6
+ {{/* vim: set filetype=mustache: */}}
7
+ {{/*
8
+ Renders a value that contains template perhaps with scope if the scope is present.
9
+ Usage:
10
+ {{ include "hyrax.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $ ) }}
11
+ {{ include "hyrax.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $ "scope" $app ) }}
12
+ */}}
13
+ {{- define "hyrax.tplvalues.render" -}}
14
+ {{- $value := typeIs "string" .value | ternary .value (.value | toYaml) }}
15
+ {{- if contains "{{" (toJson .value) }}
16
+ {{- if .scope }}
17
+ {{- tpl (cat "{{- with $.RelativeScope -}}" $value "{{- end }}") (merge (dict "RelativeScope" .scope) .context) }}
18
+ {{- else }}
19
+ {{- tpl $value .context }}
20
+ {{- end }}
21
+ {{- else }}
22
+ {{- $value }}
23
+ {{- end }}
24
+ {{- end -}}
25
+
26
+ {{/*
27
+ Merge a list of values that contains template after rendering them.
28
+ Merge precedence is consistent with http://masterminds.github.io/sprig/dicts.html#merge-mustmerge
29
+ Usage:
30
+ {{ include "hyrax.tplvalues.merge" ( dict "values" (list .Values.path.to.the.Value1 .Values.path.to.the.Value2) "context" $ ) }}
31
+ */}}
32
+ {{- define "hyrax.tplvalues.merge" -}}
33
+ {{- $dst := dict -}}
34
+ {{- range .values -}}
35
+ {{- $dst = include "hyrax.tplvalues.render" (dict "value" . "context" $.context "scope" $.scope) | fromYaml | merge $dst -}}
36
+ {{- end -}}
37
+ {{ $dst | toYaml }}
38
+ {{- end -}}
@@ -29,7 +29,9 @@ spec:
29
29
  - secretRef:
30
30
  name: {{ template "hyrax.fullname" . }}
31
31
  env:
32
- {{- toYaml .Values.worker.extraEnvVars | nindent 12 }}
32
+ {{- if .Values.extraEnvVars }}
33
+ {{- include "hyrax.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
34
+ {{- end }}
33
35
  command:
34
36
  - sh
35
37
  - -c
@@ -63,7 +65,9 @@ spec:
63
65
  {{- toYaml . | nindent 12 }}
64
66
  {{- end }}
65
67
  env:
66
- {{- toYaml .Values.worker.extraEnvVars | nindent 12 }}
68
+ {{- if .Values.extraEnvVars }}
69
+ {{- include "hyrax.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
70
+ {{- end }}
67
71
  {{- if .Values.worker.readinessProbe.enabled }}
68
72
  readinessProbe:
69
73
  exec:
@@ -38,7 +38,9 @@ spec:
38
38
  name: {{ .Values.solrExistingSecret }}
39
39
  {{- end }}
40
40
  env:
41
- {{- toYaml .Values.extraEnvVars | nindent 12 }}
41
+ {{- if .Values.extraEnvVars }}
42
+ {{- include "hyrax.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
43
+ {{- end }}
42
44
  command:
43
45
  - sh
44
46
  - -c
@@ -66,7 +68,9 @@ spec:
66
68
  {{- toYaml . | nindent 12 }}
67
69
  {{- end }}
68
70
  env:
69
- {{- toYaml .Values.extraEnvVars | nindent 12 }}
71
+ {{- if .Values.extraEnvVars }}
72
+ {{- include "hyrax.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
73
+ {{- end }}
70
74
  command:
71
75
  - sh
72
76
  - -c
@@ -101,7 +105,9 @@ spec:
101
105
  {{- toYaml . | nindent 12 }}
102
106
  {{- end }}
103
107
  env:
104
- {{- toYaml .Values.extraEnvVars | nindent 12 }}
108
+ {{- if .Values.extraEnvVars }}
109
+ {{- include "hyrax.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
110
+ {{- end }}
105
111
  ports:
106
112
  - name: http
107
113
  containerPort: 3000
@@ -25,14 +25,14 @@
25
25
 
26
26
  A Hyrax-based application includes lots of dependencies. We provide a [Docker image for getting started with your Hyrax-based application](/CONTAINERS.md#docker-image-for-hyrax-based-applications).
27
27
 
28
- <aside><p><em><strong>Note:</em></strong> The Docker image describes the canonical dependencies. In a way, it is executable documentation. The following documentation is our best effort to transcribe that executable documentation into a narrative. In other words, this documentation may drift away from the Docker details.</p></aside>
28
+ **NOTE:** The Docker image describes the canonical dependencies. In a way, it is executable documentation. The following documentation is our best effort to transcribe that executable documentation into a narrative. In other words, this documentation may drift away from the Docker details.
29
29
 
30
30
  You can also try [Running Hyrax-based application in local VM](https://github.com/samvera/hyrax/wiki/Hyrax-Development-Guide#running-hyrax-based-application-in-local-vm) which uses Ubuntu.
31
31
 
32
32
  During development, running only the dependent services in a container environment may be beneficial. This avoids potential headaches concerning file permissions and eases the use of debugging tools. The application generation instructions below use [Lando](https://lando.dev) to achieve this setup.
33
33
 
34
34
  This document contains instructions specific to setting up an app with __Hyrax
35
- v5.0.0.rc3__. If you are looking for instructions on installing a different
35
+ v5.0.0__. If you are looking for instructions on installing a different
36
36
  version, be sure to select the appropriate branch or tag from the drop-down
37
37
  menu above.
38
38
 
@@ -54,7 +54,7 @@ Hyrax requires the following software to work:
54
54
  1. [LibreOffice](#derivatives)
55
55
  1. [ffmpeg](#transcoding)
56
56
 
57
- **NOTE: The [Hyrax Development Guide](https://github.com/samvera/hyrax/wiki/Hyrax-Development-Guide) has instructions for installing Solr and Fedora in a development environment.**
57
+ **NOTE:** The [Hyrax Development Guide](https://github.com/samvera/hyrax/wiki/Hyrax-Development-Guide) has instructions for installing Solr and Fedora in a development environment.
58
58
 
59
59
  ### Characterization
60
60
  #### Servlet FITS
@@ -96,7 +96,7 @@ Once ffmpeg has been installed, enable transcoding by setting `config.enable_ffm
96
96
 
97
97
  ## Environments
98
98
 
99
- Note here that the following commands assume you're setting up Hyrax in a development environment (using the Rails built-in development environment). If you're setting up a production or production-like environment, you may wish to tell Rails that by prepending `RAILS_ENV=production` to the commands that follow, e.g., `rails`, `rake`, `bundle`, and so on.
99
+ **NOTE:** The following commands assume you're setting up Hyrax in a development environment (using the Rails built-in development environment). If you're setting up a production or production-like environment, you may wish to tell Rails that by prepending `RAILS_ENV=production` to the commands that follow, e.g., `rails`, `rake`, `bundle`, and so on.
100
100
 
101
101
  ## Ruby
102
102
 
@@ -116,18 +116,21 @@ Hyrax requires Rails 6. We recommend the latest Rails 6.1 release.
116
116
 
117
117
  ```
118
118
  # If you don't already have Rails at your disposal...
119
- gem install rails -v 6.1.7.6
119
+ gem install rails -v 6.1.7.7
120
120
  ```
121
121
 
122
122
  ### JavaScript runtime
123
123
 
124
124
  Rails requires that you have a JavaScript runtime installed (e.g. nodejs or rubyracer). Either install nodejs or uncomment the `rubyracer` line in your Gemfile and run `bundle install` before running Hyrax's install generator.
125
125
 
126
- NOTE: [nodejs](https://nodejs.org/en/) is preinstalled on most Mac computers and doesn't require a gem. To test if nodejs is already installed, execute `node -v` in the terminal and the version of nodejs will be displayed if it is installed.
126
+ **NOTE:** [nodejs](https://nodejs.org/en/) is preinstalled on most Mac computers and doesn't require a gem. To test if nodejs is already installed, execute `node -v` in the terminal and the version of nodejs will be displayed if it is installed.
127
127
 
128
128
  ## Creating a Hyrax-based app
129
129
 
130
- NOTE: The steps need to be done in order to create a new Hyrax based app.
130
+ Create a new Hyrax-based application by following these steps in order.
131
+
132
+ **NOTE:** Starting with Hyrax v5, the generated application will use [Valkyrie](https://github.com/samvera/valkyrie) for repository persistence.
133
+ Use of [ActiveFedora](https://github.com/samvera/active_fedora) (instead of Valkyrie) is deprecated, but it should still be possible to reconfigure the generated application to use it.
131
134
 
132
135
  ### Development Prerequisites
133
136
 
@@ -142,8 +145,10 @@ These instructions assume the use of [Lando](https://lando.dev) and [Docker](htt
142
145
 
143
146
  Generate a new Rails application using the template.
144
147
 
148
+ **NOTE:** `HYRAX_SKIP_WINGS` is needed here to avoid loading the Wings compatibility layer during the application generation process.
149
+
145
150
  ```shell
146
- rails _6.1.7.6_ new my_app --database=postgresql -m https://raw.githubusercontent.com/samvera/hyrax/hyrax-v5.0.0.rc3/template.rb
151
+ HYRAX_SKIP_WINGS=true rails _6.1.7.7_ new my_app --database=postgresql -m https://raw.githubusercontent.com/samvera/hyrax/hyrax-v5.0.0/template.rb
147
152
  ```
148
153
 
149
154
  Generating a new Rails application using Hyrax's template above takes cares of a number of steps for you, including:
@@ -207,7 +212,7 @@ rails s
207
212
 
208
213
  And now you should be able to browse to [localhost:3000](http://localhost:3000/) and see the application.
209
214
 
210
- Notes:
215
+ **NOTE:**
211
216
  * This web server is purely for development purposes. You will want to use a more fully featured [web server](https://github.com/samvera/hyrax/wiki/Hyrax-Management-Guide#web-server) for production-like environments.
212
217
  * For a fresh start, the data persisted in Lando can be wiped using `lando destroy`.
213
218
 
@@ -276,7 +276,7 @@ Hyrax.config do |config|
276
276
 
277
277
  ## Enable Valkyrie only mode
278
278
  config.use_valkyrie = true
279
- config.disable_wings true
279
+ config.disable_wings = true
280
280
 
281
281
  # When your application is ready to use the valkyrie index instead of the one
282
282
  # maintained by active fedora, you will need to set this to true. You will
data/lib/hyrax/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Hyrax
3
- VERSION = '5.0.0.rc3'
3
+ VERSION = '5.0.0'
4
4
  end
data/template.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
- gem 'hyrax', '5.0.0.rc3'
2
+ gem 'hyrax', '5.0.0'
3
3
  run 'bundle install'
4
4
  generate 'hyrax:install', '-f'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyrax
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0.rc3
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2024-02-23 00:00:00.000000000 Z
17
+ date: 2024-03-01 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: rails
@@ -2935,6 +2935,7 @@ files:
2935
2935
  - chart/hyrax/README.md
2936
2936
  - chart/hyrax/templates/NOTES.txt
2937
2937
  - chart/hyrax/templates/_helpers.tpl
2938
+ - chart/hyrax/templates/_tmplvalues.tpl
2938
2939
  - chart/hyrax/templates/branding-pvc.yaml
2939
2940
  - chart/hyrax/templates/configmap-env.yaml
2940
2941
  - chart/hyrax/templates/cron-embargo.yaml