====== VuFind® Community Call Minutes: May 2, 2023 ====== Attending: Chris Hallberg, Demian Katz, André Lahmann, Ere Maijala, Susan Turkel, Thomas Wagener ===== Agenda ===== ==== 1. Development Planning ==== === Newsletter Highlights === The [[community:newsletter:2023-04|April, 2023]] Newsletter was discussed. === Release Update === Release 9.0 (and subsequently 9.0.1) were released on April 24. The 9.0.1 release addresses bugs in the Blowfish --> AES encryption conversion during the upgrade process and was released as soon as problems were discovered (during updating of the public demo instance) to reduce potential disruption to end users. === Pull Request Review (assigning milestones) === This month's goal was to review PR's without milestones assigned, and determine which should be scheduled for 9.1 and 10.0 (and identify whether any are obsolete). * [[https://github.com/vufind-org/vufind/pull/413|#413]]: Translation of language field in record-related templates * Next steps: requires creating of appropriate language files to translate language names; requires agreement on an indexing strategy to ensure that all language values are stored consistently in Solr. * [[https://github.com/vufind-org/vufind/pull/1116|#1116]]: Better support for Koha status "NOT FOR LOAN" * Next step: backport functionality from KohaRest (if appropriate) or close (if no longer needed). * Decision: close PR -- KohaRest meets the need * [[https://github.com/vufind-org/vufind/pull/1230|#1230]]: Open ID Connect implementation (for authentication). * Next step: finish implementation * [[https://github.com/vufind-org/vufind/pull/1324|#1324]]: Use Citation Style Language (CSL) in Citation view helper * Next steps: update dependencies; determine configuration format and backward compatibility approach; finish polishing implementation * [[https://github.com/vufind-org/vufind/pull/1680|#1680]]: Display flash message on login * Next steps: resolve conflicts; fix lightbox problems which currently prevent this from working consistently. * Decision: milestone 10.0 (requires lightbox refactoring and/or improvements to login system -- i.e. intermediate "login success" page displayed before redirecting to final destination, to indicate success quickly even if eventual landing page takes a long time to load) * [[https://github.com/vufind-org/vufind/pull/1764|#1764]]: Use Psalm for static code analysis * Next steps: decide whether this adds significant value beyond what phpstan already offers; work through outstanding problems if worth keeping. * Discussion: could be complementary (Ere uses both for RecordManager), though Chris raised concerns about the disadvantages of having opinionated tools with different opinions (which probably is less likely in static analysis than, e.g. style tools). * [[https://github.com/vufind-org/vufind/pull/1886|#1886]]: Add search backend QueryAnalysisInterface and GetSearchTermsCommand * Next steps: resolve conflicts; finish review process * Discussion: Aleksi has been very busy, but it could be useful; Ere will follow up * [[https://github.com/vufind-org/vufind/pull/2188|#2188]]: Show last issue date for patron * Next steps: discuss whether this is needed/useful; finish implementing if desired * [[https://github.com/vufind-org/vufind/pull/2271|#2771]]: Ajax facets - fetch only requested facets from Solr * Next steps: determine what work is still required * Discussion: Demian will review status and set an appropriate milestone * [[https://github.com/vufind-org/vufind/pull/2272|#2772]]: Implement monorepo development model * Next steps: discuss and determine whether this is a good approach moving forward * [[https://github.com/vufind-org/vufind/pull/2283|#2283]]: Split asset pipeline functionality to separate classes * Next steps: determine whether this work should be completed; complete it, if so * [[https://github.com/vufind-org/vufind/pull/2287|#2287]]: Composer package javascript resolving * Next steps: resolve conflicts; complete review process * Discussion: André will follow up and check the status of this one * [[https://github.com/vufind-org/vufind/pull/2456|#2456]]: New SolrMarc plug-in for indexing MARC-based hierarchies * Next steps: finish review process; determine appropriateness for inclusion * [[https://github.com/vufind-org/vufind/pull/2488|#2488]]: Add UDC (Universal Decimal Classification) support * Next steps: complete (long) TODO checklist * Discussion: Ere pointed out that some versions of UDC are incompatible with each other (e.g. religions getting mixed up). If we add support, we should version it for clarity. * [[https://github.com/vufind-org/vufind/pull/2612|#2612]]: Add support for WorldCat Search v2 API * Next steps: complete implementation (large amount of work still to be done) * Discussion: André's team is working on this (currently waiting on API keys). * Decision: 10.0 milestone * [[https://github.com/vufind-org/vufind/pull/2642|#2642]]: Create view helper for translating EDS labels * Next steps: resolve conflicts; work through TODO list (which includes some design discussion needs) * Decision: 10.0 milestone * [[https://github.com/vufind-org/vufind/pull/2688|#2688]]: Announce number of search results in title * Next step: complete review process * Decision: 9.1 milestone * [[https://github.com/vufind-org/vufind/pull/2697|#2697]]: Semantics for saved search table * Next step: resolve conflicts and complete review process * Decision: 9.1 milestone * [[https://github.com/vufind-org/vufind/pull/2702|#2702]]: Replace Slick Carousel with accessible-slick * Next step: complete review process (address attribution issues and installation process) * Discussion: Ere proposed an alternative to accessible-slick which he found to be more accessible -- Splide. * Decision: 9.1 milestone * [[https://github.com/vufind-org/vufind/pull/2763|#2763]]: SetupThemeResources: Ensure 'Content-Type' is never escaped * Next step: complete review process * Decision: 9.1 milestone * [[https://github.com/vufind-org/vufind/pull/2850|#2850]]: Change route type for Help/Home from Static to Segment * Next step: complete review process * Decision: 9.1 milestone * [[https://github.com/vufind-org/vufind/pull/2852|#2852]]: Add header and h2 for title and author * Next step: complete review process * Decision: 9.1 milestone * [[https://github.com/vufind-org/vufind/pull/2857|#2857]]: Add support for "uncertain" item availability status * Next step: complete review process * Discussion: large but backward-compatible change; Ere is flexible about 9.1 or 10.0. We'll decide on a milestone after further review * [[https://github.com/vufind-org/vufind/pull/2860|#2860]]: Add LibGuidesAZ backend for Databases A-Z list * Next step: complete review process * Decision: 9.1 milestone === Next Meeting Plans === We should review all tickets and PR's scheduled for 9.1 and begin assigning work to move the release development forward. ==== 2. Technical Discussion: Internationalization with localise ==== André has been exploring the lokalise.com platform, which the Open Library Foundation uses for some of its projects. It imports languages from GitHub, makes it possible for users to collaboratively improve/expand them, and can then be configured to export data back into the project using pull requests. The interface displays percentage done, number of words in need of translation, and "unverified" strings that might have problems and should be reviewed. The system also has project management features built in, so you can assign work, create tasks, etc. Some quirks may confuse the project (e.g. @parent_ini directives, use of language codes that don't exactly match lokalise's expectations -- e.g. zh.ini had to be manually mapped to Chinese Traditional). During import, lokalise is currently set up to ignore native.ini -- this is a special file and would not benefit from management through the platform. Text domains are imported using filename patterns, which enables us to keep domain-specific strings appropriately separated. When translating, the platform automatically makes suggestions based on similar strings in the existing language files and using online translation tools, to help streamline the process (though of course, human verification/judgment is still needed). André opened a German-specific example pull request as a proof of concept. This reveals some problems we need to overcome: * Some files are renamed (e.g. en.ini --> en_GB.ini) * Some formatting is changed (e.g. strings with special characters are enclosed in single quotes; double quotes are removed) * All comments are removed * Numeric keys are dropped (a problem for the Dewey Decimal text domains) Possible solution: Custom processor -- the ability to create a REST endpoint for pre- or post-processing of translations. Well documented with examples provided. One question: can the custom post-processor be combined with the "post PR to GitHub" option, or are these workflows incompatible? We confirmed that our current lokalise account seems to support the custom processor. There was some discussion about how/where to implement and host the processor: one option would be to create a repository that exposes a Laminas module containing the processing functionality, and then install that into the public demo instance to make it accessible. Also discussion about where to get comments from: one option would be to have the API just pull the latest .ini files from GitHub using URL patterns (raw download). Volunteers to work on the project: Demian will set up a vufind-org GitHub repo to build the module and will help with deployment to vufind.org. André will help with development of the code. André will inquire about the "numeric keys" problem; Demian suggested a possible workaround (key prefix via custom processor) we can use if no proper solution is available. ==== 3. Open Q&A / Other Topics? ==== None this month. ===== Next Call ===== The next call will be Tuesday, June 6, 2023 at 9am Eastern Daylight Time (13:00 GMT).