Attending: Demian Katz, Maccabee Levine, Ere Maijala, Mario Trojan, Thomas Wagener
Agenda
1. Development Planning
Newsletter Highlights
Release 10.0 Release Date
Decision: should we set a May release date or defer until June?
Demian proposed releasing 9.1.2 in late April or early May, and 10.0 in June.
Consensus: Monday, June 24th will be the 10.0 release date. We'll set the 9.1.2 date once the outstanding issues (see below) are resolved.
Pull Request / Ticket Review (release 9.1.2)
#3515: CSV importer: Inject dependencies into static callback classes
-
Pull Request Review (release 10.0)
The following pull requests are scheduled for inclusion in release 10:
Architectural Enhancements
#1680 - Display flash message on login
Status: Complex issue; can be revisited now that
#3361 is resolved.
ACTION ITEM: Chris should determine next steps.
-
#2723 - Component: confirmation menu
Status: Needs conflict resolution; many outstanding TODO items. On hold until
#3545 is completed.
#2814 - Replace jumpMenu controls with menu-button components
Status: In review
ACTION ITEM: Chris should look at style/accessibility improvements and fix test failures
#2934 - Switch to Splide Carousel Library
Status: In review
ACTION ITEM: Chris should continue work on latest review comments.
#3222 - Add bootstrap5 theme
Status: In progress
ACTION ITEM: Ere should continue work; others should test as time permits.
#3539 - Add and use VuFind\Db\Service\TagServiceInterface
#3541 - Add more database entity interfaces
#3545 - Add confirm button component
Status: In review
ACTION ITEM: Demian and Susan should complete reviewing this.
New Features
#3103 - Add Notifications
CMS functionality
#3226 - Adding the option to make html elements sticky
Smaller Features/Enhancements/Fixes
#3025 - Add new Overdrive features
Status: In review.
ACTION ITEM: Demian should review latest round of changes.
#3279 - Small enhancements to the DefaultRecord class
Status: In review.
ACTION ITEM: Waiting for progress from @dmj. Demian has requested a status update.
#3494 - Remove redundant language codes; use aliases
Status: In review
ACTION ITEM: Waiting for progress from @sturkel89
#3534 - Fix broken combined AJAX DOI functionality
Status: In draft mode
ACTION ITEM: Needs review/discussion (Chris/Demian/Ere)
#2688 - Announce number of search results in title
#2763 - SetupThemeResources: Ensure 'Content-Type' is never escaped
#2850 - Change route type for Help/Home from Static to Segment
#2999 - Get unique html element id from record view helper
Scheduled JIRA Tickets (release 10.0)
Architectural Enhancements
VUFIND-1614 - Modernize PubDateVisAjax recommendation module
-
VUFIND-1652 - Add database support for storing session-specific data
VUFIND-1653 - schema.org markup causes trouble when there are no holdings or reviews
Status: Needs more investigation. Can we refactor to a helper? Demian and Ere will evaluate if time permits. If a simple “disable it by configuration” solution can be implemented for 10.0, we can investigate more nuanced approaches later. There was also discussion about whether or not Google evaluates Javascript before interpreting schema.org markup; Ere's experience suggests that they do, since he has gotten feedback from Google on markup that is only available in an AJAX-loaded record tab.
-
Smaller Fixes/Improvements
VUFIND-1521 - Add id validation to ILL requests and storage retrieval requests
VUFIND-1607 - Embedded records (in results list) have invalid aria and/or role attributes
VUFIND-1632 - Improve install.php existing file handling
VUFIND-1651 - Address Java deprecation of finalize() method in UpdateDateTracker.java
VUFIND-1658 - Sandal theme: applied filter contrast is too low on home page
VUFIND-1667 - Modal close button doesn't want to let focus go
VUFIND-1668 - Moravian Library Accessibility Report (Progress Tracking)
Test Suite Improvements
VUFIND-1351 - Create Mink tests for email verification functionality
VUFIND-1560 - DeduplicationListener: Add tests and clean up
Documentation Tasks
VUFIND-1625 - Document access to advanced search capabilities through
API
VUFIND-1629 - Investigate changes in OpenAPI 3.1; implement for
API if appropriate.
Finishing Touches (Tasks for Near Release Time)
-
VUFIND-1659 - Update GitHub branch protection rules when creating release-10.0 branch
VUFIND-1649 - Update language translation files for release 10.0
2. Technical Discussion: Theme Development Next Steps / Collaboration
#3545 is the last outstanding BS3 PR that we should merge to help finish BS5 work. Demian expects this should be merged very soon; once this is done, Ere can finish the BS5 PR when he returns from vacation.
Outstanding question: we can merge bootstrap5 as-is, but it would also be useful to have an example sub-theme. We don't want to rebase the existing sandal theme on bootstrap5 yet, since bootstrap5 will be “beta” and we don't want to break the production-level sandal theme.
Demian proposes using “sandal5” as a temporary solution. We can alias it to sandal (or vice versa) once we phase out bootstrap3.
Outstanding question: where should primary development take place after the merge – in bootstrap3 with forward-porting, or in bootstrap5 with backporting?
Ere would like to encourage developers to work in bootstrap5 to help test.
Maccabee emphasized the need to get rid of bootstrap3 so we don't have to maintain both themes forever – this is intended to occur in release 11.0.
We can create tooling to auto-port templates. Javascript will require manual work. We should build tooling to backport changes from 5 to 3 so that developers are encouraged to work with the new theme.
The only file that cannot be easily auto-ported is the navbar, due to structural changes. Ere will look into renaming this file in bootstrap5 to reduce compatibility problems in a porting tool.
LessToSass conversion needs to be improved – Ere will look into this.
Ere will work on tooling.
Testing would be appreciated in the near future. Confirmation drop-downs don't look good yet (pending #3545 merge) but everything else is expected to be okay. Ere will try to double-check Mink tests before leaving.
3. Technical Discussion: Database Code Migration Strategy
Since it is not possible to complete the Doctrine code migration in time for release 10.0, a more incremental approach is being taken. For 10.0, interfaces are being defined for database entities and services. These interfaces can be applied to existing Laminas\Db code (e.g. implement entity interfaces on Row classes; create Service classes as thin wrappers around Table classes). This allows us to begin refactoring code in a way that will be more Doctrine-compatible while retaining backward compatibility, reducing the scope of the eventual changes when Doctrine is introduced. Demian hopes to introduce at least partial/stub versions of all future entity interfaces and services before 10.0 is released. More of this work can be continued in 10.1 as long as backward compatibility is maintained.
Key principles of the refactoring:
Entity classes should contain no business logic – they are just data models
All business logic should live in service classes
Database service classes are just for reading and writing data; other logic should live in higher-level classes that use database services as dependencies
Some of the Doctrine work-in-progress violates some of these principles (particularly regarding the scope of database service classes); it will be refactored along with dev code as needed.
These changes should not require any database schema changes – just PHP code reorganization.
4. Future of Slack
5. Open Q&A / Other Topics?
Demian opened VUFIND-1666 to track the Javascript unit testing task discussed at the past two calls.
Maccabee mentioned that the FOLIO community is working on a plan to better communicate breaking API changes. He will keep Demian in the loop.
Mario asked us to review #3368 again. It's now on the 10.0 roadmap.
Next Call
The next call will be Tuesday, May 7, 2024 at 9am Eastern Daylight Time (13:00 GMT).