commit 458b476d79eec8a037272401c4e28663ded40e52 Author: Lucas Gass Date: Tue Oct 14 22:08:21 2025 +0000 Bug 40983: DBRev 25.06.00.023 Signed-off-by: Lucas Gass commit ccb4bcf055a12c52f5744153d9bbce4f9f227364 Author: Jonathan Druart Date: Wed Jul 13 09:06:32 2022 +0200 Bug 31149: Use dayjs to parse dates We can use the isValid's dayjs function instead of our own parsing functions. Test plan: Confirm that you cannot enter an invalid date when using a date picker widget. Works as expected. Signed-off-by: Paul Derscheid Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 9f2216cf20584079bb3706b4d965d1e91e273016 Author: Nina Martinez Date: Wed Apr 16 11:46:27 2025 +0200 Bug 39706: Add alternative text to the stars rating I just added an exception in the script. Sorry for the inconvenience. Test Plan: 1- Enable the following system preference: OpacStarRatings (results, details, and patron). 2- Apply the patch. 3- Go to the Opac. 4- Search a record. 5- Inspect the HTML code before the stars and notice that there is "Star rating" in a span tag with the class "sr-only". Inspect the stars, there should be a span tag for each star. After the stars, notice that there is the average rating in a span with the "sr-only" class. 6- Click on a record and do the same as the 5: go to the star rating, inspect the HTML code, and notice that there is a span tag for each star. 7- Now, log into an account. 8- Search a record. 9- It should be the same information as in the step 5. 10- Click on a record to view the details. Now, you can change the rating. Inspect the stars, each should have the number of stars in the span tag with a "sr-only" class, which are in the link tags. 11- For this part, you need to have a record checked out (if you don't have a record checked out, go to the staff interface and do it. Choose your patron and enter the barcode of the record). 12- Go to your account. In the "Checked Out" section, you should see the same as in the 10 step: the number of stars and be able to change your rating or make a new one. Signed-off-by: Owen Leonard Signed-off-by: Laura_Escamilla Signed-off-by: Lucas Gass commit 7052511553590a5cc767e4a01bdd31b5f951b9b3 Author: Nina Martinez Date: Tue Apr 22 11:25:06 2025 +0200 Bug 39677: Add the role presentation to the divider vertical tags Test plan: Enable the following system preferences: CookieConsent, EnableOpacSearchHistory, and OpacLangSelectorMode (both top and footer). -Apply the patch. -Go to the Koha OPAC. -Check the vertical dividers in the navigation. -If they are present with a coherent design, the test is successful. Signed-off-by: Owen Leonard Signed-off-by: David Nind Signed-off-by: Laura_Escamilla Signed-off-by: Lucas Gass commit 4593392539d06295d8741a9187abc1e571529725 Author: Nick Clemens Date: Tue Apr 15 11:49:12 2025 +0000 Bug 39636: Update curl link With the move to the latest ES versions we got rid of 'data' type - we need to use '_doc' To test: 1 - Delete a record from the DB directly DELETE FROM biblio WHERE biblionumber=45; 2 - perl misc/maintenance/compare_es_to_db.pl 3 - Try the curl command - it doesn't work 4 - Apply this patch 5 - perl misc/maintenance/compare_es_to_db.pl 6 - Try the curl command - it now fetches the record Signed-off-by: Tomas Cohen Arazi Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit ad9648528cbbba1ae10e0d47ae15035db42bd3e9 Author: Nick Clemens Date: Tue Apr 15 11:47:13 2025 +0000 Bug 39636: Add option to specify which indexes to check This patch adds --biblios and --authorities options to the script to allow checking only a single index To test: 0 - Apply patch 1 - perl misc/maintenance/compare_es_to_db.pl 2 - biblios and authorities are checked 3 - perl misc/maintenance/compare_es_to_db.pl -b 4 - Only biblios are checked 5 - perl misc/maintenance/compare_es_to_db.pl -a 6 - Only authorities are checked 7 - perl misc/maintenance/compare_es_to_db.pl -a -b 8 - Both indexes are checked Signed-off-by: Tomas Cohen Arazi Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 6589fff9eaf800234a4c2bcd4d2a0a4c80a809bd Author: Owen Leonard Date: Mon Jun 24 17:37:43 2024 +0000 Bug 16721: Add table configuration to serial claims table This patch adds table configuration options to the serial claims table, including the option to set a default sort column. The patch also moves the table column filter row to the top, which I think is more standard in the staff interface. To test, apply the patch and restart services. - You'll need to have subscription issues which are missing, claimed, or late. - Go to Serials -> Claims, and select a vendor. - In the table of missing issues, confirm that all DataTable controls work correctly: Column visibility, export, and configuration options. - Confirm that you can use Administration -> Table settings -> Serials -> Claims to hide columns by default or set the default order. - Confirm that the column header filter forms work correctly. Sponsored-by: Athens County Public Libraries Signed-off-by: Michaela Sieber Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 83a823aec5e0e05ffeac31d20b7f8d767f68b1fe Author: Tomás Cohen Arazi Date: Mon Jan 20 16:46:33 2025 -0300 Bug 38931: Add endpoints for individual credits and debits As the title says, we are missing such endpoints and this patch adds them. To test: 1. Apply this patches 2. Run: $ ktd --shell k$ yarn api:bundle k$ prove t/db_dependent/api/v1/patrons_accounts.t => SUCCESS: The spec builds! => SUCCESS: The tests pass! 3. Verify all the codepaths are covered by tests 4. Sign off :-D Signed-off-by: Tomas Cohen Arazi Signed-off-by: David Nind Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 17ad33e2b4a28ad13416b22189cc37b357a1d670 Author: Tomás Cohen Arazi Date: Mon Jan 20 16:46:18 2025 -0300 Bug 38931: Unit tests Signed-off-by: Tomas Cohen Arazi Signed-off-by: David Nind Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit a35688c073444cc2615d6aee2ed85bcca0499bda Author: Lucas Gass Date: Mon May 12 18:51:58 2025 +0000 Bug 39880: Add shelving location to cn_browser results To test: 0. APPLY PATCH and resart_all 1. Make sure you have items with itemcallnumber's in your DB 2. Visit http://localhost:8081/cgi-bin/koha/cataloguing/plugin_launcher.pl?q=1&plugin_name=cn_browser.pl and make a search 3. You should see a column for Shelving location now Signed-off-by: David Nind Signed-off-by: Laura_Escamilla Signed-off-by: Lucas Gass commit 977d644ffb30b539f23fbff7795ab09b05f1b424 Author: Owen Leonard Date: Tue Jul 22 13:14:00 2025 +0000 Bug 40335: (follow-up) Fix style of Select2 in sidebar This patch adjusts the style of the Select2 field in the sidebar. It should have 100% width and the selections should word-wrap. Signed-off-by: Laura_Escamilla Signed-off-by: Lucas Gass commit 269a256a2f1b404be997facfa9c50382df6029de Author: Lucas Gass Date: Thu Jul 10 02:31:36 2025 +0000 Bug 40335: Fix mistake in template params Signed-off-by: David Flater Signed-off-by: Owen Leonard Signed-off-by: Laura_Escamilla Signed-off-by: Lucas Gass commit 1226bb645f9e6576d2b8b7403911a6788481960a Author: Lucas Gass Date: Wed Jul 9 22:56:55 2025 +0000 Bug 40335: Add ability to multi select collections and locations for holds queue To test: 0. APPLY PATCH and restart_all 1. Place some holds with different shelving locations and collection codes. 2. Build the holds queue 3. Go to Circulation > Holds queue 4. Notice that shelfing location and collection code are now multi select2 dropdowns 5. Try searching for various combos of shelfing locations and collection codes. 6. Make sure the results are correct. 7. After making selections and running the search make sure your selections are retained in the search form in the left nav bar Signed-off-by: Owen Leonard Signed-off-by: Laura_Escamilla Signed-off-by: Lucas Gass commit 64e1083e04cfbd1360b2908d090d32eacc407093 Author: Marcel de Rooy Date: Thu Jun 26 16:23:43 2025 +0200 Bug 40272: Add an alert for bad fixed-length control fields Development wise it is much simpler to do this check in perl when opening the editor than getting this logic into the template with javascript. Furthermore, older data may be corrupted, but we trust the current plugins to not insert such fields anymore. Test plan: Run t/db_dependent/Koha/Biblio/Metadata/Extractor/MARC/MARC21.t Open an existing record in the basic editor. Shorten 008 without plugin. Save and open the record again. Do you get the alert? Signed-off-by: Marcel de Rooy Signed-off-by: Owen Leonard Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit ef5ba9a42d3317256a1fda08ef7d94e22b6d3553 Author: Martin Renvoize Date: Fri May 9 13:25:31 2025 +0100 Bug 39408: (QA follow-up) Add unit tests Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit c1fa513be9ad460402cece1726cf9df8126e8379 Author: Nick Clemens Date: Fri Mar 21 13:58:24 2025 +0000 Bug 39408: Don't attempt to send a message if one is not generated The routine to create the message can return nothing if there is no content, we should handle this case and not attempt to send. To test: 1 - Test plan from last patch 2 - Apply this patch 3 - POST to patron API again 4 - Success! Signed-off-by: Claire Hernandez Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit ae14a119370aad45cca17fb63fbca376f65d7b2f Author: Nick Clemens Date: Fri Mar 21 13:53:11 2025 +0000 Bug 39408: Handle BadParameter exception better Currently we assume BadParameter has been thrown with a parameter that is a valid patron field. It may only include a message, or it may have come from outside the patron object, we should handle all cases. To test: 1 - Wrap "WELCOME" notice content in conditional: [% IF borrower.categorycode != 'SELFREG' %] ... [% END %] 2 - Enable preference AutoEmailNewUser 3 - Attempt to self register a patron via API with body: {"surname":"PATRON","firstname":"PROBLEM","library_id":"CPL","category_id":"SELFREG","email":"eample@example.org"} 4 - Response error: "Given does not exist" 5 - Apply this patch, restart all 6 - Repeat 3 7 - Response error: "Exception 'Koha::Exceptions::BadParameter' thrown 'Parameter message_id cannot be empty if passed.'\n" 8 - It's uglier, but actually helpful Signed-off-by: Claire Hernandez Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 5bad55620780e3ca9ab7c77787c38cc956fb5ed9 Author: Marcel de Rooy Date: Fri Oct 10 08:36:41 2025 +0200 Bug 40983: (QA follow-up) Add a (final) upgrade warn Just a last wake up call. Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 1571fd489ce5f456d29c2597498a26ed6c8e075a Author: Martin Renvoize Date: Thu Oct 9 13:02:22 2025 +0100 Bug 40983: Complete deprecation of old after_biblio_action hook signature This patch completes the deprecation cycle started in bug 36343 by removing the backward compatibility code and deprecation warnings for the old after_biblio_action hook signature. Changes made: 1. Removed the duplicate biblio and biblio_id parameters from _after_biblio_action_hooks in C4::Biblio that were marked for deprecation in 24.11.00 2. Updated the test plugin to use only the new payload-based signature, ensuring all parameters are accessed via $params->{payload} The after_biblio_action hook now consistently uses the modern signature with a payload parameter, matching the pattern used by other plugin hooks like before_biblio_action, after_item_action, and after_hold_action. Test plan: 1. Run: prove t/db_dependent/Koha/Plugins/Biblio_and_Items_plugin_hooks.t 2. Run: prove t/db_dependent/Koha/Plugins/ 3. Run: prove t/db_dependent/Biblio.t 4. All tests should pass Signed-off-by: Marcel de Rooy Signed-off-by: Lucas Gass commit 79830d1696650c7f06ee0a30ac3bff612917dbcb Author: Lucas Gass Date: Tue Oct 14 20:26:26 2025 +0000 Bug 38489: DBIC Signed-off-by: Lucas Gass commit 0303e3540dd6f756938469e49b8e69a83a58df5f Author: Lucas Gass Date: Tue Oct 14 20:20:00 2025 +0000 Bug 38489: DBRev 25.06.00.022 Signed-off-by: Lucas Gass commit b57578cdecedcf72077b370882e5f20711f901ce Author: Lucas Gass Date: Tue Oct 14 14:49:43 2025 -0600 Bug 38489: (follow-up) Fix GNU link Signed-off-by: Lucas Gass commit 0ffc7f687105da4853d8007a404a7d318e00800f Author: Martin Renvoize Date: Tue Oct 14 11:22:31 2025 +0100 Bug 38489: (follow-up) Update bug 40587 tests We pushed bug 40587 since this bug Passed QA. It introduces a new test using the older construct, so this patch updates that test to add the new construct by building a File::Transport. Signed-off-by: Lucas Gass commit bff78d2cb5edf7bbeca474e8daaa2a757937ef92 Author: Martin Renvoize Date: Wed Oct 1 06:37:58 2025 +0100 Bug 38489: (follow-up) Update EDI accounts list display This patch updates the EDI accounts management page to display the new file transport system instead of the old inline transport configuration fields. Changes: - Replaced multiple transport-related columns (Transport, Remote host, Username, Password, Upload/Download ports and directories) with a single "File transport" column - The file transport column displays the transport name with its connection test status in brackets - Status indicators match the file_transports page: * "Tests passing" (green with checkmark icon) for successful tests * "Errors detected" (red with x icon) for failed tests * "Never used" (italic) for untested transports - Updated the Perl controller to decode the JSON status field from the file_transports table and pass it to the template - Uses get_inflated_columns to convert DBIx::Class results to plain hashrefs for template consumption The display now correctly reflects the architectural change where transport configuration is managed separately in the file_transports table rather than duplicated in each EDI account. Note: At a future date we should replace the raw DBIx::Class methods with Koha::Object based classes. I propose Koha::EDI::Account(s). Signed-off-by: Lucas Gass commit 8438782c6df2ae185c1b37a029d1760722b20548 Author: Martin Renvoize Date: Tue Sep 30 16:09:35 2025 +0100 Bug 38489: (follow-up) Use 'TableExists' in atomicupdate Signed-off-by: Lucas Gass commit e3618ceb1bdc025d458461095bac3f6f2a56fe8b Author: Martin Renvoize Date: Tue Sep 23 21:38:20 2025 +0100 Bug 38489: Standardize FTP transport API to match SFTP and Local classes Fix several API inconsistencies in the FTP transport class: 1. Message format: Use standardized `message => $operation` format instead of hardcoded strings like "Upload succeeded" 2. Operation tracking: Add $operation variable to all methods for consistent error reporting and logging 3. Error handling: Update _abort_operation() to accept operation parameter and provide more detailed error payloads 4. Success payloads: Replace empty `detail => ''` payloads with meaningful operation-specific information (host, port, file paths, directory info, file counts) All transport classes now have consistent APIs for: - Standardized message formats - Consistent operation tracking - Uniform error handling - Informative success payloads Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie Signed-off-by: Lucas Gass commit 229294d5d9e01b82bb9a1d7e1108459666d96a57 Author: Martin Renvoize Date: Tue Sep 23 20:01:40 2025 +0100 Bug 38489: Update EDI tests to use new file transport system The EDI test was still creating vendor_edi_accounts with transport='FILE' which no longer works after the migration to the file_transports system. Updated all test account creation to: - Create file_transports records with transport='local' - Link EDI accounts via file_transport_id instead of direct transport field - Set appropriate download/upload directories for local testing All EDI tests now pass with the new transport architecture. Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie Signed-off-by: Lucas Gass commit 0e85a10b46e2bb3864ba280254e1e127d4b3629e Author: Martin Renvoize Date: Tue Sep 23 17:28:27 2025 +0100 Bug 38489: Update Koha::Edifact::Transport to use new file transport system This patch completely refactors the EDI transport handling to use the modern file_transports system instead of legacy direct connections. Changes: - Remove legacy FTP/SFTP connection code - Update constructor to load file_transport from vendor_edi_accounts - Update download_messages/upload_messages to use modern transport methods - Use new rename_file() method for EDI file processing workflow - Remove dependencies on Net::FTP and Net::SFTP::Foreign - Maintain all EDI-specific functionality (file filtering, ingestion) Cleanup: - Remove obsolete methods: file_download, sftp_download, ftp_download, sftp_upload, ftp_upload, file_upload, _abort_download - Update POD documentation to reflect new architecture - 184 lines of legacy code removed Removed imports: - use DateTime; - Not used, dt_from_string() used instead - use English qw{ -no_match_vars }; - No English variables used - use File::Copy qw( copy move ); - File operations now handled by Koha::File::Transport internally The transport system now provides: - Unified connection handling across all transport types - Enhanced error reporting and status tracking - Encrypted credential storage - Connection testing capabilities - Support for local directories (testing/development) Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie Signed-off-by: Lucas Gass commit 75826950451db62f3fc2dc27ac1fe2498e9b8003 Author: Martin Renvoize Date: Tue Sep 23 20:41:09 2025 +0100 Bug 38489: Standardize list_files API across all transport classes Fix API inconsistency where different transport types returned different formats from list_files(): - SFTP: returned array of hashrefs with detailed file information - FTP: returned simple array of filenames - Local: returned simple array of filenames Now all transports return an array reference of hashrefs with consistent structure containing filename, longname, and additional metadata. This eliminates the need for workarounds like the ref($file) eq 'HASH' check in EDI code and provides a more robust, consistent API. Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie Signed-off-by: Lucas Gass commit 8acfc284411c80acfe43f88f4577ca25250c1dfc Author: Martin Renvoize Date: Tue Sep 23 18:49:57 2025 +0100 Bug 38489: Add disconnect method and proper connection cleanup to file transport system This patch adds proper connection cleanup functionality to the file transport system, addressing a gap identified during EDI migration. Changes: - Add disconnect() method to base Transport class interface - Implement SFTP disconnect using connection->disconnect() - Implement FTP disconnect using connection->quit() - Add DESTROY methods to ensure connections are cleaned up on object destruction - Local transport includes no-op disconnect for API consistency This ensures that FTP/SFTP connections are properly closed, preventing connection leaks and potential resource exhaustion issues. Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie Signed-off-by: Lucas Gass commit 51d5691e35621fcb7e7abb6b8fafb15a28ef9283 Author: Martin Renvoize Date: Tue Sep 23 17:26:23 2025 +0100 Bug 38489: Add rename_file method to transport system and Local transport class This patch enhances the file transport system with file renaming capabilities and adds a Local transport class for development/testing. Changes: - Add rename_file() method to base Transport class and SFTP/FTP subclasses - Create Koha::File::Transport::Local for local directory operations - Add 'local' transport type to polymorphic mapping - Update transport instantiation to handle Local transport - Add Local transport tests to verify polymorphic behavior - Enhanced connect() method for Local transport validates directories The rename_file functionality is needed for EDI file processing workflow where files are renamed after download to mark them as processed. Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie Signed-off-by: Lucas Gass commit e5070c5c0b9fb9db35dc082d812f57d5208cf620 Author: Martin Renvoize Date: Tue Sep 23 17:25:55 2025 +0100 Bug 38489: Update EDI accounts UI to use file transport selection This patch updates the EDI accounts administration interface to use the new file_transports system instead of direct transport configuration. Changes: - Replace transport configuration fields with transport selection dropdown - Add file_transports data to template for selection options - Remove password decryption since credentials are now managed by transports - Simplify form handling to only manage EDI-specific fields - Add helpful link to file transport administration Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie Signed-off-by: Lucas Gass commit a86cfe61d531ced1e7bdc5e2b1b897fc079484c1 Author: Martin Renvoize Date: Tue Sep 23 17:25:33 2025 +0100 Bug 38489: Add file_transport_id to vendor_edi_accounts and migrate to new transport system This patch adds database migration to move EDI transport configurations from vendor_edi_accounts to the new file_transports system introduced in Bug 39190. Changes: - Add file_transport_id column to vendor_edi_accounts with foreign key - Add 'local' transport type to file_transports enum - Remove old transport fields from vendor_edi_accounts in kohastructure - Migration script converts existing EDI configurations to file transports - Handles FILE -> local transport type conversion Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie Signed-off-by: Lucas Gass commit 7cce89820ae5b4c9881e20a310f0da410e1c63c5 Author: Martin Renvoize Date: Tue Sep 30 12:58:51 2025 +0100 Bug 38489: Follow-up to bug 39190 to fix administration We did some last minute renaming of things in bug 39190 but didn't catch all the places. This patch updates the old 'sftp_servers' naming scheme to 'file_transports' following the new pattern and restores edit and delete functionality in the File transports management area. Sponsored-by: ByWater Solutions Signed-off-by: Hannah Dunne-Howrie Signed-off-by: Lucas Gass commit e9a07fe6ac61f247c42ba28397358330b0dff4f9 Author: Jonathan Druart Date: Fri Oct 10 16:56:37 2025 +0200 Bug 39877: Fix license Signed-off-by: Lucas Gass commit bf6e766f0c3812ee768ecb5246cf3dd96a44d4af Author: Tomás Cohen Arazi Date: Fri Oct 3 11:11:31 2025 -0300 Bug 39877: Tidy POD Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit b2970f874e6393dab18a0d8095da190c6e11bdd1 Author: Jonathan Druart Date: Thu Sep 11 11:41:29 2025 +0200 Bug 39877: Use OS codename to separate OSes Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 873b6638f0a2113266afd6962f658b88c7da9875 Author: Jonathan Druart Date: Thu Sep 11 09:57:51 2025 +0200 Bug 39877: Do not clone if env var is not set If we don't want the incremental run we should return early in ->new to prevent the git clone. Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 03e52ef3e7f00dc6b016cd3f722709bedff101f0 Author: Jonathan Druart Date: Tue Jul 29 10:03:13 2025 +0200 Bug 39877: Prevent files to be processed twice If the file had a failure and still has, we should not list it twice. Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Paul Derscheid Signed-off-by: Kyle M Hall Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 7f93977cd7167b36da614baf1e752b96743cc382 Author: Jonathan Druart Date: Tue Jul 22 09:45:06 2025 +0200 Bug 39877: Fix confusion with URL prefix git clone needs https://, but we need to remove it to build the push url Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Paul Derscheid Signed-off-by: Kyle M Hall Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit cc58dabe3d3e9f25f08a256983cb99038aad58ae Author: Jonathan Druart Date: Mon May 12 16:10:10 2025 +0200 Bug 39877: Apply to other slow tests Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Paul Derscheid Signed-off-by: Kyle M Hall Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 7869584c98d9fb8b9fae40393805b0fa13e12ac1 Author: Jonathan Druart Date: Mon May 12 16:06:23 2025 +0200 Bug 39877: Merge vue and js tidy tests Rebased-by: Victor Grousset/tuxayo Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Paul Derscheid Signed-off-by: Kyle M Hall Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 4971ed8d68deef4b5e3d12bd980a7bab08dc52e0 Author: Jonathan Druart Date: Mon May 12 15:07:15 2025 +0200 Bug 39877: Remove files that have been deleted Ignore deleted or renamed files Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Paul Derscheid Signed-off-by: Kyle M Hall Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 9f32eea89ff5b620b15edb0e31b45f5f70dd924c Author: Jonathan Druart Date: Wed May 7 17:10:23 2025 +0200 Bug 39877: Incremental test runs The idea of this patchset is to allow increment runs for some of our tests. The current (full) test suite runs in 2h20 (Koha_Main/3253 on Docker_15). One of the main reason is the recent introduction of new xt tests that are run on all files (valid, tidy, pod, codespell, etc). From a previous run (last week) I noted this top 5: xt/vue_tidy.t 105446 ms xt/perltidy.t 175970 ms xt/js_tidy.t 239615 ms xt/author/codespell.t 467041 ms xt/pl_valid.t 2502354 ms We are going to merge js_tidy.t and vue_tidy.t as it does no longer make sense to have a difference between them (we had at the beginning of the vue work, because of differences in the options, now everything is handled in the .prettierrc config file) Once this is pushed, we will be able to create a new project on gitlab and pass some env variables from Jenkins. Suggestion: project would be named https://gitlab.com/koha-community/koha-ci-results When everything will be setup, jenkins will run the tests one the whole test suite, then the next run will be "incremental": we are going to run the tests on the files that were failing and the files modified by the last push. Example: * "commit abc": all the files are tested, xt/perltidy.t is failing on Koha.pm * koha-ci-results/perltidy/abc is created and contains ['Koha.pm'] * "commit def" has a modification on about.pl * xt/perltidy.t is checking tidy on Koha.pm and about.pl, both are tidy * koha-ci-results/perltidy/def is created and contains [] Test plan: * Create an empty project on gitlab (keep the default readme) eg. https://gitlab.com/me/koha-ci-results * Generate an access token with the developer role (https://gitlab.com/me/koha-ci-results/-/settings/access_tokens) Copy the token (in the following noted as TOKEN_REPLACE_ME) * Unprotect the "main" branch * Run the following prove command: ``` KOHA_CI_INCREMENTAL_RUN_REPO_URL=https://gitlab.com/me/koha-ci-results.git \ KOHA_CI_INCREMENTAL_RUNS=1 \ KOHA_CI_INCREMENTAL_RUNS_REPORT=1 \ KOHA_CI_INCREMENTAL_RUNS_TOKEN=TOKEN_REPLACE_ME \ prove xt/perltidy.t ``` => a new commit is created on your repo * Add some mess in one of your perl file, commit using `--no-verify` to bypass the git hook * Run the prove command again => only the file you have modified is tested => a new commit is created and the file is reported as failing * Add another commit, fix the failure, add other mess => confirm that what you are seeing makes sense :) * Ideally redo with the different tests modified by this patchset * Note that you can use the incremental run without the report (the report will be only for Jenkins). It will help RM as xt tests will run (way) faster. Note that you can also export the following env vars to set git author detail: * GIT_COMMITTER_NAME * GIT_COMMITTER_EMAIL * GIT_AUTHOR_NAME * GIT_AUTHOR_EMAIL Question: What are we going to use on Jenkins? Discussion for QA: How should we handle concurrency? It's crucial to prevent multiple tests from pushing simultaneously. To minimize the risk of the repository becoming outdated, we might need to perform a pull right before each push. Is that enough? Keep in mind that only one job will be run at the same time (Koha_Main). Maybe later we will also use it for stable branches. Rebased-by: Victor Grousset/tuxayo Signed-off-by: Victor Grousset/tuxayo Signed-off-by: Paul Derscheid Signed-off-by: Kyle M Hall Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass commit 2bd44c51f05355cee8c38dbe116e38eb59f6232c Author: Martin Renvoize Date: Fri Oct 10 11:16:05 2025 +0100 Bug 40866: (follow-up) Remove obsolete CanBookBeIssued.t test file This test file was specifically testing the message_log return value from CanBookBeIssued, which was removed as part of the bug 40866 patchset. The circulation message functionality has been reimplemented elsewhere with proper test coverage, making this test file redundant. Signed-off-by: Lucas Gass commit b00cda396d8c279808ba0164e814adae10b71011 Author: Lucas Gass Date: Thu Oct 9 22:46:37 2025 +0000 Bug 40527: Add SECURITY.md to ignored list in MakeFile.t Signed-off-by: Lucas Gass commit 53fca820022e722a470a23be0fccfa5e3d0c07c1 Author: Lucas Gass Date: Thu Oct 9 22:31:06 2025 +0000 Bug 29980: (follow-up) Fix GNU license link Signed-off-by: Lucas Gass commit 3ab4723fb4855a3f85e8c9c0731082e1cd78692b Author: David Cook Date: Mon Jul 28 04:45:36 2025 +0000 Bug 40527: Initial draft of SECURITY.md This patch includes an initial draft of a proposed SECURITY.md guideline for reporting security bugs to Koha. Signed-off-by: Ludovic Julien Signed-off-by: Lisette Scheer Signed-off-by: Lucas Gass commit 0562121424348df74b42790d30828496eeafc08f Author: Marcel de Rooy Date: Mon Oct 6 14:20:05 2025 +0200 Bug 28146: Respect ReplytoDefault in error pages Test plan: Fill ReplytoDefault. Check an error page on OPAC and intranet. Verify that the send mail link refers to that email address. Signed-off-by: Marcel de Rooy Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit c53fdd3623f91aed7db8be507d4affa35a0057d5 Author: David Cook Date: Fri Sep 26 07:10:41 2025 +0000 Bug 34164: Redirect to referring URL when doing OIDC/OAuth SSO This patch makes it so that a successful SSO will return you to the place where you initiated the SSO. This is especially useful when doing searches, placing holds, etc. Test plan: 0. Apply patch and koha-plack --restart kohadev 1. Set up OIDC SSO using https://wiki.koha-community.org/wiki/Testing_SSO 2. Go to http://localhost:8081/cgi-bin/koha/circ/circulation-home.pl 3. Do a staff login using SSO 4. Note that you're redirected to http://localhost:8081/cgi-bin/koha/circ/circulation-home.pl after the successful login 5. Go to http://localhost:8080/cgi-bin/koha/opac-search.pl?idx=&q=test&weight_search=1 6. Do a OPAC SSO login 7. Note that you're returned to http://localhost:8080/cgi-bin/koha/opac-search.pl?idx=&q=test&weight_search=1 after the successful login 8. Logout of the staff admin and OPAC 9. Note your URL ends in ?logout.x=1 10. Try logging back into them using SSO 11a. Note that you're logged in and not automatically logged out 11b. Note that if you're on the OPAC, you should be redirected to opac-user.pl instead of opac-main.pl or the root path 12. If you change the domain for the SSO users to something that your user does not match, try logging in again, and note that the error message should display on mainpage.pl or opac-main.pl/opac-user.pl for the OPAC. (This is because these are the pages that show SSO errors.) Signed-off-by: Lukas Koszyk Signed-off-by: Tomás Cohen Arazi Signed-off-by: Lucas Gass