[Koha-devel] Suggestion: create a deprecated() function in Koha.

Jonathan Druart jonathan.druart at bugs.koha-community.org
Mon Jun 25 17:45:39 CEST 2018


Hi Barton,

I usually follow the same pattern for the commit messages when I remove a
subroutine from C4.
We could list them (something like `git log|grep "Move (.*) to Koha::*"`)
for each release then provide a script to catch removed subroutine.
However it will not help to know in advance (version N-1) if the plugin
will still work.
I do not think it will help much to have the deprecated function, we change
the prototype of our subroutines very often, that will also break the
plugin. I should also add that when a sub is removed it's not only moved to
Koha, code from callers is adjusted and completely different. It cannot be
done in some cases I think.

The best still is to have a good test coverage for the plugin ;)

Cheers,
Jonathan


On Fri, 22 Jun 2018 at 17:52 Barton Chittenden <barton at bywatersolutions.com>
wrote:

> It would be useful for Koha to have a 'Deprecated' function, which would
> send a warning about the caller() function and the version of Koha where
> the function will be deprecated, and what it will be replaced by... so
> let's say that C4::Adequate::DoEET() is being replaced by
> Koha::Awesome->sauce(). in Koha 18.11.
>
> In versions of koha prior to 18.11, we add a call to
>
> deprecated( "18.11", "Koha::Awesome->sauce()");
>
> at the beginning of C4::Adequate::DoEET().
>
> Then, when C4::Adequate::DoEET() is called, this would generate the
> following message in the logs:
>
> "C4::Adequate::DoEET is deprecated and will be removed in Koha 18.11. It
> will be replaced by Koha::Awesome->sauce()."
>
> This would allow plugin authors to know that they will need to patch their
> plugins before they break on upgrade.
>
> This is a bare-bones implementation of deprecated():
>
> sub deprecated {
>     my ( $version, $replacement ) = @_;
>     my (
>         $package, $filename, $line, $subroutine, $hasargs,
>         $wantarray, $evaltext, $is_require, $hints, $bitmask, $hinthash
>     ) = caller(1);
>     warn(
>         "${subroutine} is deprecated and will be removed"
>          . " in Koha version $version."
>          . defined( $replacement )
>             ? " It will be replaced by ${replacement}."
>             : ""
>     );
> }
>
>
> _______________________________________________
> Koha-devel mailing list
> Koha-devel at lists.koha-community.org
> http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
> website : http://www.koha-community.org/
> git : http://git.koha-community.org/
> bugs : http://bugs.koha-community.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.koha-community.org/pipermail/koha-devel/attachments/20180625/bbda1eb6/attachment.html>


More information about the Koha-devel mailing list