[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