About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools


Warning: This page has not been updated in over over a year and may be outdated or deprecated.
changelog

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
changelog [2024/04/03 16:03] – [Release 9.1.2 - currently in development] demiankatzchangelog [2024/05/07 15:59] (current) – [Release 10.0 - coming June 24, 2024] demiankatz
Line 18: Line 18:
   * The new ConsortialVuFind recommendation module can be enabled to search a third-party VuFind® instance using the public API in order to display additional results. See [[https://github.com/vufind-org/vufind/pull/3270|pull request #3270]] for details.   * The new ConsortialVuFind recommendation module can be enabled to search a third-party VuFind® instance using the public API in order to display additional results. See [[https://github.com/vufind-org/vufind/pull/3270|pull request #3270]] for details.
   * Pagination controls can now optionally be added at the top of search result screens via the new top_paginator setting. See [[https://github.com/vufind-org/vufind/pull/3034|pull request #3034]] for details.   * Pagination controls can now optionally be added at the top of search result screens via the new top_paginator setting. See [[https://github.com/vufind-org/vufind/pull/3034|pull request #3034]] for details.
 +  * There is now an option to use Solr's "direct" spellchecker instead of the index-based spellchecker; see the dictionaries setting in the [Spelling] section of config.ini (and [[https://github.com/vufind-org/vufind/pull/3547|pull request #3547]]) for more details.
   * Bound-with records can now be displayed in holdings using data retrieved from the ILS (where supported -- currently only in FOLIO).   * Bound-with records can now be displayed in holdings using data retrieved from the ILS (where supported -- currently only in FOLIO).
   * The new [HiddenSorting] section of backend-specific configuration files (searches.ini, etc.) makes it possible to enable sort options without adding them to the user-facing sort control, for use cases where sort options are valuable in direct links but not through the user interface. See [[https://github.com/vufind-org/vufind/pull/3237|pull request #3237]] for details.   * The new [HiddenSorting] section of backend-specific configuration files (searches.ini, etc.) makes it possible to enable sort options without adding them to the user-facing sort control, for use cases where sort options are valuable in direct links but not through the user interface. See [[https://github.com/vufind-org/vufind/pull/3237|pull request #3237]] for details.
Line 26: Line 27:
   * The [[development:architecture:record_data_formatter|RecordDataFormatter]] can now be configured via RecordDataFormatter.ini, allowing customization of record views without code changes. See [[https://github.com/vufind-org/vufind/pull/3193|pull request #3193]].   * The [[development:architecture:record_data_formatter|RecordDataFormatter]] can now be configured via RecordDataFormatter.ini, allowing customization of record views without code changes. See [[https://github.com/vufind-org/vufind/pull/3193|pull request #3193]].
   * The Primo module now supports display of citation/cited-by lists for eligible records.   * The Primo module now supports display of citation/cited-by lists for eligible records.
 +  * There is now a contentsecuritypolicy.ini section for enabling NEL (Network Error Logging) headers. See [[https://github.com/vufind-org/vufind/pull/3593|pull request #3593]] for details.
   * Deep searching within nested collections can now be enabled with some extra indexing and the new search_container_id_field  setting. See the [[indexing:hierarchies_and_collections|Hierarchies and Collections]] page and [[https://github.com/vufind-org/vufind/pull/3182|pull request #3182]] for more details.   * Deep searching within nested collections can now be enabled with some extra indexing and the new search_container_id_field  setting. See the [[indexing:hierarchies_and_collections|Hierarchies and Collections]] page and [[https://github.com/vufind-org/vufind/pull/3182|pull request #3182]] for more details.
   * It is now possible to create an aliases.ini file within a language directory to set up translation aliases; see [[https://github.com/vufind-org/vufind/pull/3249|pull request #3249]] for details.   * It is now possible to create an aliases.ini file within a language directory to set up translation aliases; see [[https://github.com/vufind-org/vufind/pull/3249|pull request #3249]] for details.
Line 39: Line 41:
   * :!: The new load_results_with_js setting is on by default for all search backends to improve the user search experience. This causes some changes to the user interface, most significantly changing the summary at the top of the search results to include navigation buttons and more concise text. If necessary, this behavior can be changed via settings added to searches.ini and other backend-specific configuration files in [[https://github.com/vufind-org/vufind/pull/2929|pull request #2929]].   * :!: The new load_results_with_js setting is on by default for all search backends to improve the user search experience. This causes some changes to the user interface, most significantly changing the summary at the top of the search results to include navigation buttons and more concise text. If necessary, this behavior can be changed via settings added to searches.ini and other backend-specific configuration files in [[https://github.com/vufind-org/vufind/pull/2929|pull request #2929]].
   * :!: The isLoggedIn() method of \VuFind\Auth\Manager and \VuFind\View\Helper\Root\Auth has been deprecated, since returning an object from a method with a Boolean name was potentially confusing. You should use getIdentity() or getUserObject() instead. Use getIdentity() if you only need a basic login status from the RBAC system; use getUserObject if you need to interact with VuFind®-specific user properties.   * :!: The isLoggedIn() method of \VuFind\Auth\Manager and \VuFind\View\Helper\Root\Auth has been deprecated, since returning an object from a method with a Boolean name was potentially confusing. You should use getIdentity() or getUserObject() instead. Use getIdentity() if you only need a basic login status from the RBAC system; use getUserObject if you need to interact with VuFind®-specific user properties.
-  * :!: The \VuFind\Db\Entity\UserEntityInterface has been introduced as an abstraction to reduce dependence on any specific database framework. Several constructors and methods with \VuFind\Db\Row\User typehints have been updated to use the new interface instead. See [[https://github.com/vufind-org/vufind/pull/3478|pull request #3478]] and [[https://github.com/vufind-org/vufind/pull/3500|pull request #3500]] for details. 
   * :!: Code related to encryption of passwords has been refactored to the \VuFind\Auth\ILSAuthenticator. The getCatPassword() and encryptOrDecrypt() methods of \VuFind\Db\Row\User have been deprecated. Several constructor signatures have changed (\VuFind\Auth\CAS, \VuFind\Auth\ILSAuthenticator, \VuFind\Auth\LDAP, \VuFind\Auth\Shibboleth, \VuFind\Auth\SimulatedSSO, \VuFind\OAuth2\Entity\UserEntity and \VuFind\OAuth2\Repository\IdentityRepository). See [[https://github.com/vufind-org/vufind/pull/3537|pull request #3537]] for details.   * :!: Code related to encryption of passwords has been refactored to the \VuFind\Auth\ILSAuthenticator. The getCatPassword() and encryptOrDecrypt() methods of \VuFind\Db\Row\User have been deprecated. Several constructor signatures have changed (\VuFind\Auth\CAS, \VuFind\Auth\ILSAuthenticator, \VuFind\Auth\LDAP, \VuFind\Auth\Shibboleth, \VuFind\Auth\SimulatedSSO, \VuFind\OAuth2\Entity\UserEntity and \VuFind\OAuth2\Repository\IdentityRepository). See [[https://github.com/vufind-org/vufind/pull/3537|pull request #3537]] for details.
 +  * :!: Adjustments have been made to both code and configuration to support changing standards around Content Security Policy violation reporting. If you use the report-to[] setting in contentsecuritypolicy.ini, adjustments will be needed. Additionally, the \VuFind\Security\CspHeaderGenerator::getHeader() method has been deprecated. See [[https://github.com/vufind-org/vufind/pull/3591|pull request #3591]] for details.
   * :!: The \VuFind\Search\QueryAdapter and related query minification/deminification logic has been significantly refactored to eliminate static methods and improve customizeability. This impacts \VuFind\Search\Base\Params, VuFind\Search\Base\Results and their subclasses and \VuFind\Search\Minified as well as the aforementioned QueryAdapter. Since this code was previously difficult to customize, this probably has limited impact on custom code, but if you have customized logic in these areas, see [[https://github.com/vufind-org/vufind/pull/3358|pull request #3358]] for details.   * :!: The \VuFind\Search\QueryAdapter and related query minification/deminification logic has been significantly refactored to eliminate static methods and improve customizeability. This impacts \VuFind\Search\Base\Params, VuFind\Search\Base\Results and their subclasses and \VuFind\Search\Minified as well as the aforementioned QueryAdapter. Since this code was previously difficult to customize, this probably has limited impact on custom code, but if you have customized logic in these areas, see [[https://github.com/vufind-org/vufind/pull/3358|pull request #3358]] for details.
   * :!: Javascript code driving the autocomplete feature has been refactored and moved from common.js to searchbox_controls.js. If you have customized this code, adjustments will be needed. See [[https://github.com/vufind-org/vufind/pull/3064|pull request #3064]] for details.   * :!: Javascript code driving the autocomplete feature has been refactored and moved from common.js to searchbox_controls.js. If you have customized this code, adjustments will be needed. See [[https://github.com/vufind-org/vufind/pull/3064|pull request #3064]] for details.
Line 58: Line 60:
     * \VuFind\RecordDriver\AbstractBase::addTags() has been deprecated in favor of \VuFind\Db\Service\TagService::addTagsToRecord()     * \VuFind\RecordDriver\AbstractBase::addTags() has been deprecated in favor of \VuFind\Db\Service\TagService::addTagsToRecord()
     * \VuFind\RecordDriver\AbstractBase::deleteTags() has been deprecated in favor of \VuFind\Db\Service\TagService::deleteTagsFromRecord()     * \VuFind\RecordDriver\AbstractBase::deleteTags() has been deprecated in favor of \VuFind\Db\Service\TagService::deleteTagsFromRecord()
 +    * The \VuFind\Db\Entity\UserEntityInterface has been introduced as an abstraction to reduce dependence on any specific database framework. Several constructors and methods with \VuFind\Db\Row\User typehints have been updated to use the new interface instead. See [[https://github.com/vufind-org/vufind/pull/3478|pull request #3478]], [[https://github.com/vufind-org/vufind/pull/3500|pull request #3500]] and [[https://github.com/vufind-org/vufind/pull/3605|pull request #3605]] for details.
 +    * The constructor signature of \VuFind\Auth\Manager has been revised to use generic interfaces instead of Laminas-specific dependencies; see [[https://github.com/vufind-org/vufind/pull/3636|pull request #3636]] for details.
   * :!: The [[configuration:record_versions|record versions]] functionality has been simplified for consistency and maintainability. If you have customized any functionality related to versions, adjustments may be needed. See [[https://github.com/vufind-org/vufind/pull/3295|pull request #3295]] and [[https://github.com/vufind-org/vufind/pull/3300|#3300]] for full details; significant highlights:   * :!: The [[configuration:record_versions|record versions]] functionality has been simplified for consistency and maintainability. If you have customized any functionality related to versions, adjustments may be needed. See [[https://github.com/vufind-org/vufind/pull/3295|pull request #3295]] and [[https://github.com/vufind-org/vufind/pull/3300|#3300]] for full details; significant highlights:
     * The \VuFind\Record\VersionsHelper and \VuFindSearch\Command\WorkExpressionsCommand classes are no longer needed and have been removed.     * The \VuFind\Record\VersionsHelper and \VuFindSearch\Command\WorkExpressionsCommand classes are no longer needed and have been removed.
Line 74: Line 78:
     * Tree-related styles have been completely rewritten.     * Tree-related styles have been completely rewritten.
   * :!: Code related to displaying hierarchical facets has been significantly simplified to eliminate the use of jsTree; if you have customized this code, local changes may be needed. See [[https://github.com/vufind-org/vufind/pull/3046|pull request #3046]]. Updates include constructor signature changes to \VuFind\AjaxHandler\GetSideFacets and \VuFind\Recommend\FavoriteFacets.   * :!: Code related to displaying hierarchical facets has been significantly simplified to eliminate the use of jsTree; if you have customized this code, local changes may be needed. See [[https://github.com/vufind-org/vufind/pull/3046|pull request #3046]]. Updates include constructor signature changes to \VuFind\AjaxHandler\GetSideFacets and \VuFind\Recommend\FavoriteFacets.
 +  * :!: The signature of \VuFindSearch\Backend\Solr\QueryBuilderInterface::build() has been expanded; custom query builder classes may require adjustment. See [[https://github.com/vufind-org/vufind/pull/3590|pull request #3590]].
 +  * :!: The signature of \VuFindSearch\Backend\Solr\QueryBuilder::checkParamConditions() has changed. In the unlikely event that you use or extend this method, changes will be required. See [[https://github.com/vufind-org/vufind/pull/3590|pull request #3590]].
   * :!: The constructor signature for \VuFind\View\Helper\Root\ProxyUrl has changed; local custom subclasses may require adjustments. See [[https://github.com/vufind-org/vufind/pull/3199|pull request #3199]] for details.   * :!: The constructor signature for \VuFind\View\Helper\Root\ProxyUrl has changed; local custom subclasses may require adjustments. See [[https://github.com/vufind-org/vufind/pull/3199|pull request #3199]] for details.
   * :!: Error handling has been simplified in \VuFind\Controller\AjaxController to reduce the likelihood of errors getting missed; AJAX calls are now more likely to fail in development mode when PHP warnings or notices occur during processing, but this should help catch problems earlier instead of concealing them. See [[https://github.com/vufind-org/vufind/pull/3267|pull request #3267]] for details.   * :!: Error handling has been simplified in \VuFind\Controller\AjaxController to reduce the likelihood of errors getting missed; AJAX calls are now more likely to fail in development mode when PHP warnings or notices occur during processing, but this should help catch problems earlier instead of concealing them. See [[https://github.com/vufind-org/vufind/pull/3267|pull request #3267]] for details.
Line 87: Line 93:
   * :!: The signatures of the \VuFind\Controller\ContentController::getViewFor*() methods have been changed to improve flexibility; in the unlikely event that you have changed/extended these, see [[https://github.com/vufind-org/vufind/pull/3452|pull request #3452]] for necessary adjustments.   * :!: The signatures of the \VuFind\Controller\ContentController::getViewFor*() methods have been changed to improve flexibility; in the unlikely event that you have changed/extended these, see [[https://github.com/vufind-org/vufind/pull/3452|pull request #3452]] for necessary adjustments.
   * :!: Javascript code no longer uses DOM CustomEvents, and event names have been revised. See [[https://github.com/vufind-org/vufind/pull/3361|pull request #3361]] if you have custom code that interacts with internal events; it will need to be revised based on these changes.   * :!: Javascript code no longer uses DOM CustomEvents, and event names have been revised. See [[https://github.com/vufind-org/vufind/pull/3361|pull request #3361]] if you have custom code that interacts with internal events; it will need to be revised based on these changes.
 +  * :!: The initResultScripts() function in common.js has been replaced by a new results-init event; see [[https://github.com/vufind-org/vufind/pull/3584|pull request #3584]] for details.
   * :!: The .offcanvas CSS class in the bootstrap3 theme has been renamed to .vufind-offcanvas to prevent conflicts with an .offcanvas class introduced in newer versions of Bootstrap. If you rely on or customize this class in custom code, please adjust accordingly. See [[https://github.com/vufind-org/vufind/pull/3484|pull request #3484]] for details.   * :!: The .offcanvas CSS class in the bootstrap3 theme has been renamed to .vufind-offcanvas to prevent conflicts with an .offcanvas class introduced in newer versions of Bootstrap. If you rely on or customize this class in custom code, please adjust accordingly. See [[https://github.com/vufind-org/vufind/pull/3484|pull request #3484]] for details.
 +  * :!: The constructor signature of \VuFind\Controller\OAuth2Controller has been adjusted to remove the \LmcRbacMvc\Service\AuthorizationService object, which was not used or needed.
   * :!: Code deprecated in release 9.x has now been removed:   * :!: Code deprecated in release 9.x has now been removed:
     * \VuFind\Auth\AbstractBase::getCannedPasswordPolicyHint() - use getCannedPolicyHint() instead.     * \VuFind\Auth\AbstractBase::getCannedPasswordPolicyHint() - use getCannedPolicyHint() instead.
     * \VuFind\Recommend\SearchObject - use AbstractSearchObject instead.     * \VuFind\Recommend\SearchObject - use AbstractSearchObject instead.
 +    * \VuFind\Search\Solr\InjectHighlightingListener::onSearchPost() - see [[https://github.com/vufind-org/vufind/pull/3610|pull request #3610]].
     * \VuFindSearch\Backend\EDS\Backend::debugPrint() and \VuFindSearch\Backend\EDS\Base::debugPrint() - use debug() instead.     * \VuFindSearch\Backend\EDS\Backend::debugPrint() and \VuFindSearch\Backend\EDS\Base::debugPrint() - use debug() instead.
 +  * Submit inputs named "submit" have been renamed to "submitButton" to avoid side effects caused by using a reserved word as a name; the CAPTCHA processing code now looks for this new name by default (but maintains backward compatibility with the old name). It is strongly recommended that you update any forms you have built or customized to use submitButton instead of submit.
   * The protected \VuFindTheme\ThemeInfo::mergeWithoutOverride() method has been renamed, refactored and moved into \VuFind\Feature\MergeRecursiveTrait::mergeRecursive() for easier reuse. In the unlikely event that you have custom code relying on this method, minor adjustments will be needed; see [[https://github.com/vufind-org/vufind/pull/3417|pull request #3417]] for details.   * The protected \VuFindTheme\ThemeInfo::mergeWithoutOverride() method has been renamed, refactored and moved into \VuFind\Feature\MergeRecursiveTrait::mergeRecursive() for easier reuse. In the unlikely event that you have custom code relying on this method, minor adjustments will be needed; see [[https://github.com/vufind-org/vufind/pull/3417|pull request #3417]] for details.
   * The \VuFind\View\Helper\Root\RecordDataFormatter\SpecBuilder::setDefaultPrioritizeAlt() method was removed as it is superseded by RecordDataFormatter.ini functionality; this method was introduced in release 9.1 and never used in core code, so the removal is unlikely to affect anyone.   * The \VuFind\View\Helper\Root\RecordDataFormatter\SpecBuilder::setDefaultPrioritizeAlt() method was removed as it is superseded by RecordDataFormatter.ini functionality; this method was introduced in release 9.1 and never used in core code, so the removal is unlikely to affect anyone.
Line 104: Line 114:
   * Minor bug fix release.   * Minor bug fix release.
   * :!: A bug fix to the conditional filter listener required a change to the constructor signature of \VuFind\Search\Solr\InjectConditionalFilterListener (and associated factory code). See [[https://github.com/vufind-org/vufind/pull/3513|pull request #3513]] for details.   * :!: A bug fix to the conditional filter listener required a change to the constructor signature of \VuFind\Search\Solr\InjectConditionalFilterListener (and associated factory code). See [[https://github.com/vufind-org/vufind/pull/3513|pull request #3513]] for details.
 +  * :!: The \VuFind\Search\Solr\InjectHighlightingListener::onSearchPost() method has been deprecated, and its functionality has been refactored to \VuFind\RecordDriver\PluginManager and \VuFindSearch\Backend\Solr\Response\Json\RecordCollectionFactory in order to address a bug in highlighting blended searches. See [[https://github.com/vufind-org/vufind/pull/3614|#3614]] for details.
   * :!: Fixes to date range handling required signature changes to several methods in \VuFind\Search\Base\Params: formatDateForFullDateRange(), formatValueForNumericRange() and formatYearForDateRange(). In the unlikely event that you have extended these methods, adjustments may be needed. See [[https://github.com/vufind-org/vufind/pull/3465|pull request #3465]] for details.   * :!: Fixes to date range handling required signature changes to several methods in \VuFind\Search\Base\Params: formatDateForFullDateRange(), formatValueForNumericRange() and formatYearForDateRange(). In the unlikely event that you have extended these methods, adjustments may be needed. See [[https://github.com/vufind-org/vufind/pull/3465|pull request #3465]] for details.
   * :!: Fixes to the switch_db_hash command line utility required a change to the constructor signature of \VuFindConsole\Command\Util\SwitchDbHashCommand. In the extremely unlikely situation that you have overridden this constructor, adjustments will be needed. See [[https://github.com/vufind-org/vufind/pull/3476|pull request #3476]] for details.   * :!: Fixes to the switch_db_hash command line utility required a change to the constructor signature of \VuFindConsole\Command\Util\SwitchDbHashCommand. In the extremely unlikely situation that you have overridden this constructor, adjustments will be needed. See [[https://github.com/vufind-org/vufind/pull/3476|pull request #3476]] for details.
changelog.1712160228.txt.gz · Last modified: 2024/04/03 16:03 by demiankatz