Difference between revisions of "EPrints 3.4.4"

From EPrints Documentation
Jump to: navigation, search
m
(Release Notes: Added advice about browser hard refresh are adding prototypejs ingredient,)
(27 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page contains information about the provisional EPrints v3.4.4 tag and release on GitHub.  A date for this release is yet to be scheduled.
+
{{releasenotes}}
  
== Planned Features and Improvements ==
+
== Release Notes ==
* Improvements to admin menu user interface
+
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].
* [https://github.com/eprints/eprints3.4/issues/140 Investigation into Switchoing over to ''utf8mb4'' MySQL charset to support 32-bit Unicode characters, such as 𝒪 (mathematical script capital O)].
+
* '''Zero codename:''' ''Lemon Trifle Bora''
 +
* '''Publications flavour codename:''' ''Amaretti Biscuit Haboob (1.4)''
  
See [https://github.com/eprints/eprints3.4/milestone/3  3.4.4 milestone on GitHub] for more details.
+
=== 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>):
 +
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.
 +
 
 +
=== 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.
 +
 
 +
=== Changes Since 3.4.3 ===
 +
==== New Functionality ====
 +
* Adds new script to about unit test results in JUnit format to better support use with Continuous Integration applications (e.g. Jenkins).
 +
* Adds function <tt>$document->get_derived_versions</tt> to get derived documents, such as preview and thumbnail images.
 +
* [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/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.
 +
* [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.
 +
* Adds function to check whether a dataset with a particular ID actually exists.
 +
* [https://github.com/eprints/eprints3.4/issues/201 Adds <tt>redo_hash</tt> option to <tt>epadmin</tt> to allow MD5 hash of files to be recalculated]. (E.g. If something when wrong with this originally).
 +
* [https://github.com/eprints/eprints3.4/issues/202|Adds EPC tag <tt>list</tt> and EPScript functions <tt>dumper</tt>, <tt>to_dataobj</tt> and <tt>subproperty</tt>].
 +
 
 +
==== Security and Privacy Improvements ====
 +
* Ensures <tt>render_fileinfo</tt> always uses https URLs if enabled.  So files can be downloaded securely.
 +
* Allows <tt>EPrints::System::proc_exists</tt> to work when SELinux is enforcing.
 +
* Ensures access settings (i.e. <tt>security</tt> field) of all derived versions of a document are updated when the document's access settings are updated.
 +
* Ensures workflow cannot update a data object with anything other than a <tt>POST</tt> request.
 +
* [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/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).
 +
 
 +
==== General Improvements ====
 +
* 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 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.
 +
* [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/pull/169 Send test email multiple recipients].
 +
* Adds high resolution timestamps to database debug lines.
 +
* [https://github.com/eprints/eprints3.4/issues/176 Deal better with field type mismatches in SWORD POST requests].
 +
* [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].
 +
* 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/188 Makes progress on improving Pod documentation in code files to update API wiki pages].
 +
* Removes no longer implemented <tt>misc.pl</tt> configuration settings.
 +
* Merges all RDF URI configuration files to tidy into a single file.
 +
* Merges <tt>user_password_maxlength.pl</tt> into <tt>user_auth_limits.pl</tt>.
 +
* Removes flowplayer as Flash is no longer supported.
 +
* Removes defunct <tt>ie6.css</tt> stylesheet file.
 +
* Replaces old bespoke theme with leaner example theme.
 +
* Ensures summary page <tt>EPrint::Box</tt> plugins have unique class for CSS.
 +
* Provides a more Accessibility compliant version of <tt>limit_names_shown.pl</tt>.
 +
* Extricates PrototypeJS from core codebase into ingredient, so in future JavaScript library of choice could be used. '''You may need to manually update your <tt>flavours/pub_lib/inc</tt> file.'''
 +
* [https://github.com/eprints/eprints3.4/issues/203 Allows PubMed and DOI import plugins to set corporate creators].
 +
* Allows DOI import plugin to set ORCIDs for creators, editors and contributors.
 +
* [https://github.com/eprints/eprints3.4/issues/200 Modifies <tt>requester_user_agent</tt> column for access table to use <tt>LONGTEXT</tt> rather than <tt>VARCHAR(255)</tt> so long user agent strings do not get set as <tt>NULL</tt>]. (Only update existing archives' access database tables if <tt>NULL</tt> values for <tt>requester_user_agent</tt> have been discovered).
 +
* Replaces old DOI import plugin with newer version that uses UNIXREF import source.
 +
* Allows PubMed import plugin to set <tt>id_number</tt> with most significant ID, (doi > pubmed > pii).
 +
* [https://github.com/eprints/eprints3.4/issues/207 Removes hard-coding of citation style to use].
 +
* [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/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/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].
 +
* Adds/makes consistent OpenXML MS document typename phrases.
 +
* Adds new JavaScript needed for Accessibility compliant limit_names_shown in citations.
 +
* Adds phrase for bad EPM ID error.
 +
* [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>.
 +
 
 +
==== Bug Fixes ====
 +
* [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.
 +
* 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.
 +
* [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.
 +
* 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.
 +
* 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)].
 +
* Various fixes to prevent bad filenames/formats being used or processed.
 +
* [https://github.com/eprints/eprints3.4/pull/151 Considers datestamp for deleted records when finding the earliest record].
 +
* [https://github.com/eprints/eprints3.4/issues/152 Updates <tt>td</tt> element to <tt>div</tt> in views missed during Accessibility improvements].
 +
* [https://github.com/eprints/eprints3.4/issues/153 Fixes <tt>aria-describedby</tt> for non-multiple itemref/dataobjref components].
 +
* [https://github.com/eprints/eprints3.4/issues/154 Fixes rendering issues for <tt>Multipart</tt> type field].
 +
* [https://github.com/eprints/eprints3.4/issues/155 Adds aria-labelledby and aria-describedby to Boolean menu].
 +
* [https://github.com/eprints/eprints3.4/issues/156 Fixes anomaly with unordered fields].
 +
* Ensures requests with <tt>text/*</tt> in the <tt>Accept</tt> header work.
 +
* Moves license/copyright boilerplate for <tt>testdata/bin/import_rand_data</tt> to ensure it does not break random abstract generation.
 +
* Ensure all fields are added to XML revision files even if <tt>export_as_xml</tt> is set to <tt>0</tt> (false).
 +
* Fixes journal autocomplete to also group on <tt>publisher</tt> field.
 +
* [https://github.com/eprints/eprints3.4/issues/144 Prevents undepositable subjects being unset when eprint is edited].
 +
* [https://github.com/eprints/eprints3.4/issues/168 Fixes subject and body of test email to stop it getting lost in spam filters].
 +
* [https://github.com/eprints/eprints3.4/issues/164 Use reply-to rather from to reduce email sent being marked as spam].
 +
* [https://github.com/eprints/eprints3.4/issues/170 Fixes non-compulsory boolean radiogroup fields cannot deselect UNSPECIFIED].
 +
* [https://github.com/eprints/eprints3.4/issues/172 Fixes email field validation to not allow commas in domain].
 +
* [https://github.com/eprints/eprints3.4/issues/173 Fixes date validation so it still allows archive bespoke validation].
 +
* Use <tt>default_value</tt> for compound sub-field if it is set and value is not.
 +
* [https://github.com/eprints/eprints3.4/issues/174 Allow uppercase characters in <tt>REGEXP_VARNAME</tt> to allow for user-defined database password].
 +
* Various minor fixes to <tt>bin/check_xapian</tt> script.
 +
* [https://github.com/eprints/eprints3.4/issues/157 Fixes <tt>aria-describedby</tt> reference when date field used within a compound field]. (E.g. in the Dates, Dates, Dates plugin).
 +
* Uses <tt>EPrints::Language</tt> <tt>has_phrase</tt> to check whether fieldhelp is set for <tt>EPrints::MetaField</tt>'s <tt>get_describedby</tt> function rather than generating unnecessary warning messages if missing.
 +
* [https://github.com/eprints/eprints3.4/pull/179 Fixes DOI import error handling].
 +
* [https://github.com/eprints/eprints3.4/issues/182 Use <tt>CURRENT_USER()</tt> to get hostname or database server rather than assuming localhost, when creating MySQL database user and granting privileges].
 +
* Uses more reliable <tt>EPrints::Time::iso_date</tt> to get current date to use in <tt>lift_embargos</tt> search.
 +
* Fixes bug with applying <tt>mysql_enable_utf8=1</tt> when database driver is not MySQL.
 +
* Sets <tt>IsNotNull</tt> search condition to <tt>0</tt> rather than empty string for <tt>date</tt>, <tt>int</tt> and <tt>time</tt> type fields.
 +
* Removes invalid characters (<tt>x00</tt>-<tt>x08</tt>, <tt>x0B</tt>, <tt>x0C</tt> and <tt>x0E</tt>-<tt>x19</tt>) from being output as XML, specifically Dublin Core (DC) export.
 +
* [https://github.com/eprints/eprints3.4/issues/184 Prevents repository admins from modifying usernames where they would create duplicates].
 +
* [https://github.com/eprints/eprints3.4/issues/183 Display <tt>UNSPECIFIED</tt> in subject tree if the sort name that would be displayed is an empty string].  (This ensures it is still clickable).
 +
* Removes <tt>EPrints::Apache::Beast</tt> as is no longer needed and has unsupported dependencies.
 +
* Fixes Pod2Wiki to not automatically assign own category to generated API pages (e.g. <tt>EPrints::DataObj::EPrint</tt> should not have category <tt>API:EPrints/DataObj/EPrint</tt>).
 +
* [https://github.com/eprints/eprints3.4/issues/190 Prevents non-ASCII characters causing index tasks to fail when using Xapian].
 +
* Ensures <tt>$c->{cookie_domain}</tt> can still be set if <tt>$c->{host}</tt> is not set.  (This should make little difference, as no cookie domain means only allow for the current domain).
 +
* Includes <tt>EPrints::DataObj::SAX::Handler</tt> in use list for EPrints.  (Previously present but not in use list).
 +
* [https://github.com/eprints/eprints3.4/issues/191 Fixed regular expression for matching browse view URLs on <tt>Apache::Rewrite</tt>].
 +
* 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/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>.
 +
* Removes duplicate definition of <tt>$c->{make_orderkey_ignore_extras}</tt>.
 +
* Removes <tt>dc:doi</tt> element that does not exist in Dublin Core use <tt>dc:identfier</tt> <tt>dc="dcterms:doi"</tt> attribute instead.
 +
* [https://github.com/eprints/eprints3.4/pull/204 Fixes separator characters used to parse a date].  (To include a space used in EPrints typically format and the letters T and Z used in the ISO 8601 date and time format).
 +
* [https://github.com/eprints/eprints3.4/issues/196 Ensures appropriate default values are set for <tt>allow_null => 1</tt> fields for compatibility if strict rules enforced on MariaDB 10.x].
 +
* [https://github.com/eprints/eprints3.4/issues/213 Fixes bug with <tt>EPrints::System::sanitise</tt> if used in no CGI context], (e.g. in a bin script).
 +
* [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/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/136 Prevents 'has invalid parameter' being intermittently reported].
 +
* [https://github.com/eprints/eprints3.4/issues/219 Prevents epc:comment in template files rendering comment text on generated web pages].
 +
* Fixes leap year exceptions to every 400 not 1000 years in date MetaField validation.
 +
* [https://github.com/eprints/eprints3.4/issues/224 Fixes download of encapsulated HTML file from Admin::Config::Edit::XPage].
 +
* Ensures HTML generated for download from Admin::Config::Edit::XPage is valid according to xmllint.
 +
* Removes libsepol1 from Deb deps as not available in Ubuntu 22.04.
 +
* Adds mariadb-{client,server} as alternatives to MySQL Debs.
 +
* [https://github.com/eprints/eprints3.4/issues/225 Fixes typos found by Codespell report (from fossies.org)]
 +
* Fixes invalid HTML element IDs used for tabs.
 +
* [https://github.com/eprints/eprints3.4/issues/226 Fixes edit and remove buttons for web interface defined MetaFields].
 +
* [https://github.com/eprints/eprints3.4/issues/227 Removes outdated tools/update_phrase_file]
 +
* [https://github.com/eprints/eprints3.4/issues/228 Fixes bug with new eprint revisions being generated when no fields have actually changed].
 +
* [https://github.com/eprints/eprints3.4/issues/230 Fixes HTTPS responses giving HTTP 200 status codes when appropriate HTTP status error code should be used].
 +
* [https://github.com/eprints/eprints3.4/issues/231 Fixes link in account registration confirmation emails causing an internal server error].
 +
* [https://github.com/eprints/eprints3.4/issues/232 Fixes CGI lookup script encoding issues].
 +
* Makes sure <tt>base_url</tt> is still defined if no <tt>20_baseurls.pl</tt> exists.
 +
* Handles if <tt>document</tt>'s <tt>security</tt> field value is undefined.
 +
* 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].
 +
 
 +
== Planned Development ==
 +
See [[EPrints 3.4.5]]
  
 
[[Category:Eprints3.4]]
 
[[Category:Eprints3.4]]
[[Category:Planned Releases]]
+
[[Category:Releases]]

Revision as of 09:26, 6 January 2023

Release Notes

3.4 | 3.4.1 | 3.4.2 | 3.4.3 | 3.4.4 | 3.4.5


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.

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.

Changes Since 3.4.3

New Functionality

Security and Privacy Improvements

General Improvements

Bug Fixes

Planned Development

See EPrints 3.4.5