Ditto what Jonathan said. CGI::Session::Serializer::yamlxs is 100% a Koha module at this point. Doesn't exist on CPAN. In this case, I created #28519 to make it easier to use additional namespaces beyond C4 and Koha (and historically OpenILS) without having to update Makefile.PL. Of course, I had to update Makefile.PL for #28519, but I was trying to future-proof us a bit, and trying to provide a way for us to hopefully one day transition all the Perl modules into "./lib", so that we could get the benefits you described, Thomas. David Cook Software Engineer Prosentient Systems Suite 7.03 6a Glen St Milsons Point NSW 2061 Australia Office: 02 9212 0899 Online: 02 8005 0595 -----Original Message----- From: Koha-devel <koha-devel-bounces@lists.koha-community.org> On Behalf Of Jonathan Druart Sent: Tuesday, 15 June 2021 7:26 PM To: koha-devel <koha-devel@lists.koha-community.org> Subject: Re: [Koha-devel] some thoughts on #28519 regarding lib Hi Thomas, I've sent the following notes to the QA team, but maybe it needed to be public. The history behind 28519 is not trivial :) """ To clarify and explain a bit more what we are doing here (to those outside of the loop): - We switched from YAML[::Syck] to YAML::XS (22824, 27673) - We had to replace the YAML serializer provided by CGI::Session (no YAML::XS serializer exists in cpan). - We decided to switch back to the default serializer (using Data::Dumper), which we used a looong time ago in Koha already, but faced... encoding problems. However we couldn't replicate them and thought we were safe (28317). - 21.05.00 is released and we discover a bug (28489), there is an encoding issue caused by Data::Dumper (and more precisely its C implementation, see bug 28489 comment 13 for more info). To add to the confusion: the bug appears only if strict_sql_modes is on. - We need a fix for 21.05.01! - There are several options we investigate on Friday, lot seems to be working but few really work: * $Data::Dumper::Useperl=1 (maybe) * Reintroduce YAML::Syck and get back to CGI::Session::Serializer::YAML * Use our own YAML::XS serializer (which has been suggested when we moved to Data::Dumper already) We decided to go with the latter and Andrew wrote a patch. A bit hacky as the Serializer::yamlxs code was inside C4::Auth. David wrote a follow-up (28519) to clean it and move the code to a separate file. What's next? - We need 28489 for 21.05.01 - Ideally we need 28519 as well! - We should move to Data::Session and decide on the JSON serializer or write our YAML::XS serializer for Data::Session (17427) """ We actually need CGI::Session::Serializer::yamlxs, not CGI::Session (we are still installing it from the debian package). Hope that clarifies Cheers, Jonathan Le mar. 15 juin 2021 à 10:48, Thomas Klausner <domm@plix.at> a écrit :
Hi!
without knowing a lot of Koha-internals (still..), I'd strongly prefer to have all the code in a lib dir (as is standard in Perl apps / modules for ages).
There are also a lot of tools available to make using code stored `lib` (but not "installed" in the system, i.e. only available in the checkout) easy. The simplest is of course 'lib': https://perldoc.perl.org/lib
Or more complex like https://metacpan.org/pod/lib::projectroot (which I wrote some time ago to handle a Monorepo setup; it also includes a comparison of different modules in the SEE ALSO section)
OTOH, CGI::Session::Serialize is a cpan module, so technically it should not be checked out into the app code `lib`, but installed as a dependency. There are even more ways to handle installing of dependencies and the finding them, but the currently most comfortable one is https://metacpan.org/pod/Carton. Or (if running everything via Carton is too much of a change), a combination of https://metacpan.org/pod/local::lib and a modern CPAN client (https://metacpan.org/pod/App::cpanminus or https://metacpan.org/pod/App::cpm.
I did not want to spam the actuall ticket with this, as I'm not sure if any of this is in fact relevant to the bug, and/or matches the current plans for Koha.
Greetings, domm
-- #!/usr/bin/perl https://domm.plix.at for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/} _______________________________________________ Koha-devel mailing list Koha-devel@lists.koha-community.org https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel website : https://www.koha-community.org/ git : https://git.koha-community.org/ bugs : https://bugs.koha-community.org/
_______________________________________________ Koha-devel mailing list Koha-devel@lists.koha-community.org https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel website : https://www.koha-community.org/ git : https://git.koha-community.org/ bugs : https://bugs.koha-community.org/