Difference between revisions of "EPrints 3.4.4"

From EPrints Documentation
Jump to: navigation, search
(Added section for planned development linking to next release page.)
(Known Issues: Added issue About MetaField::Decimal)
 
(10 intermediate revisions by 2 users not shown)
Line 2: Line 2:
  
 
== Release Notes ==
 
== Release Notes ==
EPrints 3.4.4 is now available on [https://github.com/eprints/eprints3.4/releases/tag/v3.4.4 GitHub] and will shortly be available on https://files.eprints.org.
+
EPrints 3.4.4 is now available on [https://files.eprints.org/2715 files.eprints.org] and [https://github.com/eprints/eprints3.4/releases/tag/v3.4.4 GitHub].  
 
* '''Zero codename:''' ''Lemon Trifle Bora''
 
* '''Zero codename:''' ''Lemon Trifle Bora''
 
* '''Publications flavour codename:''' ''Amaretti Biscuit Haboob (1.4)''
 
* '''Publications flavour codename:''' ''Amaretti Biscuit Haboob (1.4)''
Line 8: Line 8:
 
=== New Dependencies ===
 
=== New Dependencies ===
 
For future facilitation of interchangeable JavaScript libraries, Prototype JavaScript currently used by EPrints has been moved to become an ingredient.  Therefore, for those upgrading their repository the following line needs to be added to your flavour's inc file (e.g. <tt>/opt/eprints3/flavours/pub_lib/inc</tt>):
 
For future facilitation of interchangeable JavaScript libraries, Prototype JavaScript currently used by EPrints has been moved to become an ingredient.  Therefore, for those upgrading their repository the following line needs to be added to your flavour's inc file (e.g. <tt>/opt/eprints3/flavours/pub_lib/inc</tt>):
  ingredients/protyotypejs
+
  ingredients/prototypejs
 +
Be sure to hard refresh (e.g. Ctrl+Shift+R) your web browser (after add this ingredient and reload your web server) to clear the JavaScript client-side cache.
 +
 
 
Check earlier dependencies for [[EPrints 3.4.3]] and before.
 
Check earlier dependencies for [[EPrints 3.4.3]] and before.
  
Line 17: Line 19:
 
* [https://github.com/eprints/eprints3.4/pull/161 Allows custom list of fields for meta tags in summary pages].
 
* [https://github.com/eprints/eprints3.4/pull/161 Allows custom list of fields for meta tags in summary pages].
 
* [https://github.com/eprints/eprints3.4/issues/165 Allows parts of the subject tree to be expanded by default].
 
* [https://github.com/eprints/eprints3.4/issues/165 Allows parts of the subject tree to be expanded by default].
* [https://github.com/eprints/eprints3.4/issues/181 Allows top of subjects based view to be different from field's top]. (E.g. have a browse view for a sub-division of the organisation rather than the whole organisation).
+
* [https://github.com/eprints/eprints3.4/issues/181 Allows top of subjects-based view to be different from field's top]. (E.g. have a browse view for a sub-division of the organisation rather than the whole organisation).
 
* Adds <tt>show_timestamps_in_log config</tt> option to <tt>log.pl</tt> config files.
 
* Adds <tt>show_timestamps_in_log config</tt> option to <tt>log.pl</tt> config files.
 
* [https://github.com/eprints/eprints3.4/issues/197 Adds <tt>--reload</tt> flag to <tt>generate_static</tt> to also reload the repository configuration].  This ensure changes to both static pages and templates are applied at the same time.
 
* [https://github.com/eprints/eprints3.4/issues/197 Adds <tt>--reload</tt> flag to <tt>generate_static</tt> to also reload the repository configuration].  This ensure changes to both static pages and templates are applied at the same time.
Line 31: Line 33:
 
* [https://github.com/eprints/eprints3.4/issues/199 Adds monitoring for login attempts for better intrusion detection].  Stored as hierarchical log files (e.g. <tt>2022/04/13/</tt>) in <tt>login_attempts</tt> sub-directory of archive's <tt>var/</tt> directory.
 
* [https://github.com/eprints/eprints3.4/issues/199 Adds monitoring for login attempts for better intrusion detection].  Stored as hierarchical log files (e.g. <tt>2022/04/13/</tt>) in <tt>login_attempts</tt> sub-directory of archive's <tt>var/</tt> directory.
 
* [https://github.com/eprints/eprints3.4/issues/208 Creators/editors ID should not (by default) be exportable for better GDPR].
 
* [https://github.com/eprints/eprints3.4/issues/208 Creators/editors ID should not (by default) be exportable for better GDPR].
* [https://github.com/eprints/eprints3.4/issues/194 Adds repositpry function that says whether current request is for a preview].
+
* [https://github.com/eprints/eprints3.4/issues/194 Adds repository function that says whether current request is for a preview].
 
* [https://github.com/eprints/eprints3.4/issues/216 Allows review buffer to be skipped just for eprints of certain owners]. (Rather than binary choice of to skip buffer for all or no eprints).
 
* [https://github.com/eprints/eprints3.4/issues/216 Allows review buffer to be skipped just for eprints of certain owners]. (Rather than binary choice of to skip buffer for all or no eprints).
  
Line 37: Line 39:
 
* Includes check of <tt>dark_document</tt> dataset before assuming no document in certain position on eprint is present.
 
* Includes check of <tt>dark_document</tt> dataset before assuming no document in certain position on eprint is present.
 
* Allows bespoke function <tt>ultimate_doc_pos</tt> to be defined to work out position for new document, if eprint can use more than one document dataset (e.g. <tt>document</tt> and <tt>dark_document</tt>).
 
* Allows bespoke function <tt>ultimate_doc_pos</tt> to be defined to work out position for new document, if eprint can use more than one document dataset (e.g. <tt>document</tt> and <tt>dark_document</tt>).
* Allows saved search alerts to go to additional recipients.
+
* Allows saved search alerts to go to [[Additional Recipients on Saved Searches|additional recipients]].
 
* Adds title phrase and warning to <tt>/cgi/set_lang</tt> if it were ever to be called without an immediate redirect.
 
* Adds title phrase and warning to <tt>/cgi/set_lang</tt> if it were ever to be called without an immediate redirect.
 
* [https://github.com/eprints/eprints3.4/issues/166 Allows CSS to be applied to specific subjects in a tree of <tt>Subject</tt> field].
 
* [https://github.com/eprints/eprints3.4/issues/166 Allows CSS to be applied to specific subjects in a tree of <tt>Subject</tt> field].
Line 45: Line 47:
 
* [https://github.com/eprints/eprints3.4/issues/177 Allows <tt>epadmin</tt> <tt>reindex</tt>, <tt>recommit</tt>, <tt>redo_thumbnails</tt> and <tt>redo_mime_type</tt> to specify a range / multiple eprints]
 
* [https://github.com/eprints/eprints3.4/issues/177 Allows <tt>epadmin</tt> <tt>reindex</tt>, <tt>recommit</tt>, <tt>redo_thumbnails</tt> and <tt>redo_mime_type</tt> to specify a range / multiple eprints]
 
* [https://github.com/eprints/eprints3.4/issues/180 Add timestamps to significant error messages].
 
* [https://github.com/eprints/eprints3.4/issues/180 Add timestamps to significant error messages].
* Allows <tt>distinctby</tt> search condition if fields if they are sub/super classes (i.e. types) of each other.
+
* Allows <tt>distinctby</tt> search condition of fields if they are sub/super classes (i.e. types) of each other.
 
* [https://github.com/eprints/eprints3.4/issues/186 Adds DOIs to <tt>OAI_UKETD_DC</tt> export plugin].
 
* [https://github.com/eprints/eprints3.4/issues/186 Adds DOIs to <tt>OAI_UKETD_DC</tt> export plugin].
 
* [https://github.com/eprints/eprints3.4/issues/188 Makes progress on improving Pod documentation in code files to update API wiki pages].
 
* [https://github.com/eprints/eprints3.4/issues/188 Makes progress on improving Pod documentation in code files to update API wiki pages].
Line 52: Line 54:
 
* Merges <tt>user_password_maxlength.pl</tt> into <tt>user_auth_limits.pl</tt>.
 
* Merges <tt>user_password_maxlength.pl</tt> into <tt>user_auth_limits.pl</tt>.
 
* Removes flowplayer as Flash is no longer supported.
 
* Removes flowplayer as Flash is no longer supported.
* Removes defunct <t>ie6.css</tt> stylesheet file.
+
* Removes defunct <tt>ie6.css</tt> stylesheet file.
 
* Replaces old bespoke theme with leaner example theme.
 
* Replaces old bespoke theme with leaner example theme.
 
* Ensures summary page <tt>EPrint::Box</tt> plugins have unique class for CSS.
 
* Ensures summary page <tt>EPrint::Box</tt> plugins have unique class for CSS.
Line 65: Line 67:
 
* [https://github.com/eprints/eprints3.4/issues/189 Adds upload URL field for documents and warns users if file not uploaded properly].  (This should both make it easy to debug upload issues and reduce the chances eprints will failed documents uploads being moved to the live archive).
 
* [https://github.com/eprints/eprints3.4/issues/189 Adds upload URL field for documents and warns users if file not uploaded properly].  (This should both make it easy to debug upload issues and reduce the chances eprints will failed documents uploads being moved to the live archive).
 
* [https://github.com/eprints/eprints3.4/issues/209 Switches between <tt>department</tt> and <tt>divisions</tt> as default advanced search field].
 
* [https://github.com/eprints/eprints3.4/issues/209 Switches between <tt>department</tt> and <tt>divisions</tt> as default advanced search field].
* [https://github.com/eprints/eprints3.4/issues/181 Allows top of subjects based view ot be different to field's <tt>top</tt> subject]
+
* [https://github.com/eprints/eprints3.4/issues/181 Allows top of subjects-based view to be different to field's <tt>top</tt> subject]
 
* [https://github.com/eprints/eprints3.4/issues/218 Allows whether to show request copy button to be determined based on document metadata].
 
* [https://github.com/eprints/eprints3.4/issues/218 Allows whether to show request copy button to be determined based on document metadata].
* [https://github.com/eprints/eprints3.4/issues/220 Adds timestamp paramater to auto CSS and JS files to prevent caching issues].
+
* [https://github.com/eprints/eprints3.4/issues/220 Adds timestamp parameter to auto CSS and JS files to prevent caching issues].
 
* [https://github.com/eprints/eprints3.4/issues/221 Allows lift_embargos to retain date_embargo if --retain flag is set].
 
* [https://github.com/eprints/eprints3.4/issues/221 Allows lift_embargos to retain date_embargo if --retain flag is set].
 
* Adds/makes consistent OpenXML MS document typename phrases.
 
* Adds/makes consistent OpenXML MS document typename phrases.
 
* Adds new JavaScript needed for Accessibility compliant limit_names_shown in citations.
 
* Adds new JavaScript needed for Accessibility compliant limit_names_shown in citations.
 
* Adds phrase for bad EPM ID error.
 
* Adds phrase for bad EPM ID error.
* [https://github.com/eprints/eprints3.4/issues/229 Allows export plugins to be extended to include byte order mark].
+
* [https://github.com/eprints/eprints3.4/issues/229 Allows export plug-ins to be extended to include byte order mark].
 
* Allows multiple eprint IDs to be specified for <tt>generate_abstracts</tt>.
 
* Allows multiple eprint IDs to be specified for <tt>generate_abstracts</tt>.
  
Line 78: Line 80:
 
* [https://github.com/eprints/eprints3.4/issues/148 Ensures <tt>epadmin upgrade</tt> also adds new dataset fields]
 
* [https://github.com/eprints/eprints3.4/issues/148 Ensures <tt>epadmin upgrade</tt> also adds new dataset fields]
 
* Checks whether <tt>id_number</tt> field is set before parse test in <tt>Export::DC</tt> and <tt>Export::EndNote</tt> plugins.
 
* Checks whether <tt>id_number</tt> field is set before parse test in <tt>Export::DC</tt> and <tt>Export::EndNote</tt> plugins.
* Fixes data read in hack with <tt>Import::BibTeX</tt> plugin so it works with unit test.
+
* Fixes data read in hack with <tt>Import::BibTeX</tt> plug-in so it works with unit test.
 
* Fixes way <tt>EPrints::Utils::crypt_password</tt> is called in unit tests.
 
* Fixes way <tt>EPrints::Utils::crypt_password</tt> is called in unit tests.
 
* [https://github.com/eprints/eprints3.4/issues/149 Fixes validation for date field when it is multiple]
 
* [https://github.com/eprints/eprints3.4/issues/149 Fixes validation for date field when it is multiple]
 
* Sets a <tt>search_input_style</tt> for document <tt>license</tt> field.
 
* Sets a <tt>search_input_style</tt> for document <tt>license</tt> field.
 
* Fixes <tt>is_public</tt> check for documents and returns <tt>0</tt> (false) if <tt>security</tt> field is not set.  (Rather than generating a warning, but still returning false).
 
* Fixes <tt>is_public</tt> check for documents and returns <tt>0</tt> (false) if <tt>security</tt> field is not set.  (Rather than generating a warning, but still returning false).
* Ensure <tt>send_out_alert</tt> errors if search expression is <tt>EPrints::Plugin::Search::Xapianv2</tt> (as well as <tt>EPrints::Plugin::Search::Xapian</tt>.  As such search expressions cannot be used for alerts.
+
* Ensure <tt>send_out_alert</tt> errors if search expression is <tt>EPrints::Plugin::Search::Xapianv2</tt> (as well as <tt>EPrints::Plugin::Search::Xapian</tt>).  As such search expressions cannot be used for alerts.
 
* Fixes bug in defining cookie settings when using <tt>/cgi/set_lang></tt>.
 
* Fixes bug in defining cookie settings when using <tt>/cgi/set_lang></tt>.
 
* [https://github.com/eprints/eprints3.4/issues/150 Fixes mismatch in calling code and method (EPrints::Apache::Rewrite and EPrints::Update::Views)].
 
* [https://github.com/eprints/eprints3.4/issues/150 Fixes mismatch in calling code and method (EPrints::Apache::Rewrite and EPrints::Update::Views)].
Line 124: Line 126:
 
* Ensures password length validation cannot break if parameters undefined.
 
* Ensures password length validation cannot break if parameters undefined.
 
* [https://github.com/eprints/eprints3.4/issues/193 Provides better handling of error if <tt>TeX::Encode</tt> Perl library is not installed].
 
* [https://github.com/eprints/eprints3.4/issues/193 Provides better handling of error if <tt>TeX::Encode</tt> Perl library is not installed].
* [https://github.com/eprints/eprints3.4/issues/198 Fixes assumption that PostGreSQL <tt>table_schema</tt> will always be 'public'].
+
* [https://github.com/eprints/eprints3.4/issues/198 Fixes assumption that PostgreSQL <tt>table_schema</tt> will always be 'public'].
 
* Fixes typo on EndNote export to check <tt>isbn</tt> field is set before exporting it rather than checking <tt>issn</tt> before trying to export <tt>isbn</tt>.
 
* Fixes typo on EndNote export to check <tt>isbn</tt> field is set before exporting it rather than checking <tt>issn</tt> before trying to export <tt>isbn</tt>.
 
* Removes duplicate definition of <tt>$c->{make_orderkey_ignore_extras}</tt>.
 
* Removes duplicate definition of <tt>$c->{make_orderkey_ignore_extras}</tt>.
Line 133: Line 135:
 
* [https://github.com/eprints/eprints3.4/issues/211 Fixes various bugs with <tt>/cgi/cal</tt> resource].
 
* [https://github.com/eprints/eprints3.4/issues/211 Fixes various bugs with <tt>/cgi/cal</tt> resource].
 
* [https://github.com/eprints/eprints3.4/issues/212 Makes Search Condition IsNotNull what it says and adds IsNotEmpty Search condition].
 
* [https://github.com/eprints/eprints3.4/issues/212 Makes Search Condition IsNotNull what it says and adds IsNotEmpty Search condition].
* [https://github.com/eprints/eprints3.4/issues/187 Ensures chekboxes in multiple compound MetaFields does not add blank rows].
+
* [https://github.com/eprints/eprints3.4/issues/187 Ensures checkboxes in multiple compound MetaFields does not add blank rows].
 
* [https://github.com/eprints/eprints3.4/issues/217 Stops Upload from URL uploading the whole Internet].
 
* [https://github.com/eprints/eprints3.4/issues/217 Stops Upload from URL uploading the whole Internet].
 
* [https://github.com/eprints/eprints3.4/issues/136 Prevents 'has invalid parameter' being intermittently reported].
 
* [https://github.com/eprints/eprints3.4/issues/136 Prevents 'has invalid parameter' being intermittently reported].
Line 154: Line 156:
 
* Adds missing phrases for saved_search's additional_recipients field.
 
* Adds missing phrases for saved_search's additional_recipients field.
 
* [https://github.com/eprints/eprints3.4/issues/235 Ensures any problems detected by <tt>$c->{validate_field}</tt> user-defined function are not dropped by <tt>MetaField::Date</tt>'s <tt>validate</tt> function].
 
* [https://github.com/eprints/eprints3.4/issues/235 Ensures any problems detected by <tt>$c->{validate_field}</tt> user-defined function are not dropped by <tt>MetaField::Date</tt>'s <tt>validate</tt> function].
 +
 +
=== Known Issues ===
 +
 +
==== LDAP-based authentication for new users ====
 +
If you use LDAP-based authentication to login users and your <tt>$c->{check_user_password}</tt> function includes code that creates new user accounts on-the-fly if they do not already is exists in EPrints, then users without a pre-existing user account will no longer be able to login.  This is due to code implemented to allow user accounts to be locked if there were too many consecutive failed login attempts.  '''[https://github.com/eprints/eprints3.4/commit/8d89b36a78f0be26656fffacde5c36b1b97e16db This patch]''' has been created to fix the issue by not requiring a user account to exist, which means a new user account can be created but there can be no restriction on how many times non-registered user can attempt to login as there is no user account that can be locked.
 +
 +
==== JavaScript and CSS caching ====
 +
JavaScript and CSS in <tt>static/javascript/auto/</tt> and <tt>static/style/auto/</tt> directories can be updated without the <tt>/javascript/auto-VERSION.js</tt> and  <tt>/style/auto-VERSION.css</tt> loaded in page template being updated unless the server-side cached versions in the archive's <tt>html/LANG/javascript/</tt> and <tt>html/LANG/style/</tt> directories being purged.  This was due to an intended improvement adding incrementing parameter to the links in the page template to better expiry the client-side caching or these files. '''[[:File:Auto-JavaScript-CSS-cache.patch|This patch]]''' should fix the issue.
 +
 +
==== Subject tree based browse views ====
 +
If a browse view uses a <tt>subject</tt> field like <tt>subjects</tt> or <tt>divisions</tt> the number of items listed under ancestor (e.g. parent) divisions will be wrong.  '''[https://github.com/eprints/eprints3.4/commit/c93f6be3d756ac4cf8b835a18f3f16f64758c99e This patch]''' can be applied to fix the issue.
 +
 +
==== Decimal MetaField ====
 +
If you add a field (e.g. to your archive's <tt>cfg/cfg.d/eprint_fields.pl</tt>.  Then
 +
Couldn't parse EPrints::MetaField::Decimal: syntax error at /opt/eprints3/bin/../perl_lib/EPrints/MetaField/Decimal.pm line 80, near "->get_max_input_size
 +
'aria-labelledby'"
 +
This is due the a typo in the Decimal MetaField which is not used by default, only if the configuration for a field with <tt>type => 'decimal'</tt> is defined.  This can be simply fixed by add a comma (,) at the end of the following line:
 +
maxlength=>$self->get_max_input_size
  
 
== Planned Development ==
 
== Planned Development ==

Latest revision as of 11:14, 27 September 2023

Release Notes

3.4 | 3.4.1 | 3.4.2 | 3.4.3 | 3.4.4 | 3.4.5 | 3.4.6


3.3 | 3.3.5 | 3.3.6 | 3.3.7 | 3.3.8 | 3.3.9 | 3.3.10 | 3.3.11 | 3.3.13 | 3.3.14 | 3.3.15 | 3.3.16


3.2.0 | 3.2.1 | 3.2.2 | 3.2.3 | 3.2.4 | 3.2.5 | 3.2.6 | 3.2.7 | 3.2.8 | 3.2.9


3.1.0

Release Notes

EPrints 3.4.4 is now available on files.eprints.org and GitHub.

  • Zero codename: Lemon Trifle Bora
  • Publications flavour codename: Amaretti Biscuit Haboob (1.4)

New Dependencies

For future facilitation of interchangeable JavaScript libraries, Prototype JavaScript currently used by EPrints has been moved to become an ingredient. Therefore, for those upgrading their repository the following line needs to be added to your flavour's inc file (e.g. /opt/eprints3/flavours/pub_lib/inc):

ingredients/prototypejs

Be sure to hard refresh (e.g. Ctrl+Shift+R) your web browser (after add this ingredient and reload your web server) to clear the JavaScript client-side cache.

Check earlier dependencies for EPrints 3.4.3 and before.

Changes Since 3.4.3

New Functionality

Security and Privacy Improvements

General Improvements

Bug Fixes

Known Issues

LDAP-based authentication for new users

If you use LDAP-based authentication to login users and your $c->{check_user_password} function includes code that creates new user accounts on-the-fly if they do not already is exists in EPrints, then users without a pre-existing user account will no longer be able to login. This is due to code implemented to allow user accounts to be locked if there were too many consecutive failed login attempts. This patch has been created to fix the issue by not requiring a user account to exist, which means a new user account can be created but there can be no restriction on how many times non-registered user can attempt to login as there is no user account that can be locked.

JavaScript and CSS caching

JavaScript and CSS in static/javascript/auto/ and static/style/auto/ directories can be updated without the /javascript/auto-VERSION.js and /style/auto-VERSION.css loaded in page template being updated unless the server-side cached versions in the archive's html/LANG/javascript/ and html/LANG/style/ directories being purged. This was due to an intended improvement adding incrementing parameter to the links in the page template to better expiry the client-side caching or these files. This patch should fix the issue.

Subject tree based browse views

If a browse view uses a subject field like subjects or divisions the number of items listed under ancestor (e.g. parent) divisions will be wrong. This patch can be applied to fix the issue.

Decimal MetaField

If you add a field (e.g. to your archive's cfg/cfg.d/eprint_fields.pl. Then

Couldn't parse EPrints::MetaField::Decimal: syntax error at /opt/eprints3/bin/../perl_lib/EPrints/MetaField/Decimal.pm line 80, near "->get_max_input_size 

'aria-labelledby'" This is due the a typo in the Decimal MetaField which is not used by default, only if the configuration for a field with type => 'decimal' is defined. This can be simply fixed by add a comma (,) at the end of the following line:

maxlength=>$self->get_max_input_size

Planned Development

See EPrints 3.4.5