Hi all,
(Cross-posting to PECL and Internals lists, because I'm not sure which
will reach the best audience.)
As you may be aware, PECL contains two extensions for connecting to
memcache: one called "memcache", and one called "memcached". This has
always been a great source of confusion, particularly because their
introductions in the manual [1][2], don't even acknowledge the existence
of the other, let alone explain why you'd choose one or the other.
However, it seems that the package without a d is actually abandoned.
The official PECL package was last released more than 5 years ago [3],
and the bug asking for PHP 7 compatibility is still open [4]. An
unofficial fork apparently supports PHP 7 [5] but it in turn hasn't had
a commit in 11 months, and has an open bug for 7.2 compatibility [6].
The package with a d, on the other hand, appears at a glance to be
actively maintained, and would seem to be the right choice for any user
writing new code.
How can we make this more useful?
- Is there any difference, other than API design, between the two
packages, which would merit seeking a new maintainer for memcache
(without a d)? - If not, should the package be officially marked "abandoned" or
"deprecated" in PECL, and in the PHP manual? - Either way, should the manual for memcache (without a d) direct users
to use memcached (with a d) for all new code? If not, what advice should
it give?
Thank you for any pointers or opinions!
References:
[1]: http://php.net/manual/en/intro.memcache.php
[2]: http://php.net/manual/en/intro.memcached.php
[3]: https://pecl.php.net/package/memcache
[4]: https://bugs.php.net/bug.php?id=72887
[5]: https://github.com/websupport-sk/pecl-memcache
[6]: https://github.com/websupport-sk/pecl-memcache/issues/28
[For those who don't get the joke in the subject line:
https://en.wikipedia.org/wiki/Thomson_and_Thompson]
Regards,
--
Rowan Collins
[IMSoP]
Rowan Collins in php.internals (Fri, 22 Jun 2018 23:40:27 +0100):
However, it seems that the package without a d is actually abandoned.
The official PECL package was last released more than 5 years ago [3],
and the bug asking for PHP 7 compatibility is still open [4]. An
unofficial fork apparently supports PHP 7 [5] but it in turn hasn't had
a commit in 11 months, and has an open bug for 7.2 compatibility [6].
It has some PR's, even a recent one by Remi Collet for 7.3
compatibility.
https://github.com/websupport-sk/pecl-memcache/pull/30
The open bug for 7.2 compatibility seems to be open only because nobody
bothered to close it.
- Is there any difference, other than API design, between the two
packages, which would merit seeking a new maintainer for memcache
(without a d)?
The package without a d is AFAIK the only one that runs on Windows:
https://github.com/websupport-sk/pecl-memcache/issues/23#issuecomment-358956029
Client & server updates by 'nono303':
https://www.apachelounge.com/viewtopic.php?t=7919
https://github.com/nono303/PHP7-memcache-dll
- If not, should the package be officially marked "abandoned" or
"deprecated" in PECL, and in the PHP manual?
That would not be a good solution for the (few) Windows users.
Jan
Someone was asking about memcache vs memached on IRC the other day and I
advised them the memcache extension looked abandoned based on the PECL
page. Having 2 such similar extensions is confusing - It would also be
nice if someone could document the major differences between the 2
extensions somewhere to help users decide which they might want to select.
Remi mentioned over on the PECL list that the memcached extension relies
on a library that's been abandoned since 2014 (
http://news.php.net/php.pecl.dev/15377 )
The websupport-sk 'memcache' repository is not linked to or mentioned on
the pecl.php.net project page as far as I can see.
The documentation for 'memcache' on the php.net manual (linked from the
documentation link on PECL) is not for the websupport-sk version - the
readme on the websupport-sk repo mentions a "new API in 3.0" that uses a
MemcachePool class which doesn't appear on the php.net documentation. I
suspect it's likely there are other differences.
It looks like Pierre has been in discussion about merging/moving the
websupport-sk repo back to PECL but progress appears to be slow /
stalled - perhaps someone could prod Pierre or take up the reigns on
this: https://github.com/websupport-sk/pecl-memcache/issues/4
At the very least if someone could add a header or obvious link to the
pecl.php.net page and manual pointing to the websupport-sk project, that
would help users in the mean time.
AllenJB
Rowan Collins in php.internals (Fri, 22 Jun 2018 23:40:27 +0100):
However, it seems that the package without a d is actually abandoned.
The official PECL package was last released more than 5 years ago [3],
and the bug asking for PHP 7 compatibility is still open [4]. An
unofficial fork apparently supports PHP 7 [5] but it in turn hasn't had
a commit in 11 months, and has an open bug for 7.2 compatibility [6].
It has some PR's, even a recent one by Remi Collet for 7.3
compatibility.
https://github.com/websupport-sk/pecl-memcache/pull/30The open bug for 7.2 compatibility seems to be open only because nobody
bothered to close it.
- Is there any difference, other than API design, between the two
packages, which would merit seeking a new maintainer for memcache
(without a d)?
The package without a d is AFAIK the only one that runs on Windows:
https://github.com/websupport-sk/pecl-memcache/issues/23#issuecomment-358956029
Client & server updates by 'nono303':
https://www.apachelounge.com/viewtopic.php?t=7919
https://github.com/nono303/PHP7-memcache-dll
- If not, should the package be officially marked "abandoned" or
"deprecated" in PECL, and in the PHP manual?
That would not be a good solution for the (few) Windows users.
Someone was asking about memcache vs memached on IRC the other day and I
advised them the memcache extension looked abandoned based on the PECL
page. Having 2 such similar extensions is confusing - It would also be
nice if someone could document the major differences between the 2
extensions somewhere to help users decide which they might want to select.
memcached uses libmemcache, which only supports linux-like systems. This is
the main reason to keep both.
You can provide feedback or add these noted to the docs if you have time :)
Remi mentioned over on the PECL list that the memcached extension relies
on a library that's been abandoned since 2014 (
http://news.php.net/php.pecl.dev/15377 )The websupport-sk 'memcache' repository is not linked to or mentioned on
the pecl.php.net project page as far as I can see.The documentation for 'memcache' on the php.net manual (linked from the
documentation link on PECL) is not for the websupport-sk version - the
readme on the websupport-sk repo mentions a "new API in 3.0" that uses a
MemcachePool class which doesn't appear on the php.net documentation. I
suspect it's likely there are other differences.It looks like Pierre has been in discussion about merging/moving the
websupport-sk repo back to PECL but progress appears to be slow /
stalled - perhaps someone could prod Pierre or take up the reigns on
this: https://github.com/websupport-sk/pecl-memcache/issues/4At the very least if someone could add a header or obvious link to the
pecl.php.net page and manual pointing to the websupport-sk project, that
would help users in the mean time.AllenJB
Rowan Collins in php.internals (Fri, 22 Jun 2018 23:40:27 +0100):
However, it seems that the package without a d is actually abandoned.
The official PECL package was last released more than 5 years ago [3],
and the bug asking for PHP 7 compatibility is still open [4]. An
unofficial fork apparently supports PHP 7 [5] but it in turn hasn't had
a commit in 11 months, and has an open bug for 7.2 compatibility [6].
It has some PR's, even a recent one by Remi Collet for 7.3
compatibility.
https://github.com/websupport-sk/pecl-memcache/pull/30The open bug for 7.2 compatibility seems to be open only because nobody
bothered to close it.
- Is there any difference, other than API design, between the two
packages, which would merit seeking a new maintainer for memcache
(without a d)?
The package without a d is AFAIK the only one that runs on Windows:https://github.com/websupport-sk/pecl-memcache/issues/23#issuecomment-358956029
Client & server updates by 'nono303':
https://www.apachelounge.com/viewtopic.php?t=7919
https://github.com/nono303/PHP7-memcache-dll
- If not, should the package be officially marked "abandoned" or
"deprecated" in PECL, and in the PHP manual?
That would not be a good solution for the (few) Windows users.
Someone was asking about memcache vs memached on IRC the other day and I
advised them the memcache extension looked abandoned based on the PECL
page. Having 2 such similar extensions is confusing - It would also be
nice if someone could document the major differences between the 2
extensions somewhere to help users decide which they might want to
select.memcached uses libmemcache, which only supports linux-like systems. This is
the main reason to keep both.
That doesn't entirely follow: it's a reason why not to abandon the
without-a-d extension, but it doesn't actually justify keeping both.
It seems to me that neither extension is properly maintained right now
(the with-a-d extension has recent releases, but all wrapping an abandoned
upstream library); so if the without-a-d extension has better
cross-platform support, it might make sense to keep only that one
(revived from https://github.com/websupport-sk/pecl-memcache) and encourage
anyone interested to contribute rather than splitting the effort.
Regards,
Rowan Collins
[IMSoP]
Someone was asking about memcache vs memached on IRC the other day and I
advised them the memcache extension looked abandoned based on the PECL
page. Having 2 such similar extensions is confusing - It would also be
nice if someone could document the major differences between the 2
extensions somewhere to help users decide which they might want to
select.memcached uses libmemcache, which only supports linux-like systems. This is
the main reason to keep both.That doesn't entirely follow: it's a reason why not to abandon the
without-a-d extension, but it doesn't actually justify keeping both.It seems to me that neither extension is properly maintained right now
(the with-a-d extension has recent releases, but all wrapping an abandoned
upstream library); so if the without-a-d extension has better
cross-platform support, it might make sense to keep only that one
(revived from https://github.com/websupport-sk/pecl-memcache) and encourage
anyone interested to contribute rather than splitting the effort.
FWIW, PECL/memcache has had a new release today. \o/
--
Christoph M. Becker
It seems to me that neither extension is properly maintained right now
(the with-a-d extension has recent releases, but all wrapping an abandoned
upstream library); so if the without-a-d extension has better
cross-platform support, it might make sense to keep only that one
(revived from https://github.com/websupport-sk/pecl-memcache) and encourage
anyone interested to contribute rather than splitting the effort.
FWIW, PECL/memcache has had a new release today. \o/
That's good news, thanks to everyone who's worked on it!
I notice that the situation with memcache-with-a-d hasn't changed in the
18 months since I started this thread [1]: there continue to be fixes to
the extension, mostly to work with newer PHP versions, but the upstream
library remains abandoned (the README rather optimistically recommends
"libmemcached 1.0.18 or higher", but there have been no releases for
nearly six years).
I've CCed Aaron Stone, who tagged the last few releases, to say: thank
you for your work keeping that extension working, but what do you think
of officially deprecating it in favour of the revived without-a-d
extension? The immediate benefit would be less confusion for users over
which extension they should use, and hopefully an increase in
collaboration on the chosen extension. My understanding is that the
with-a-d extension is self-contained and cross-platform, so a better
target for that combined effort.
The first step would probably be to create a userland wrapper which
emulates the classes and functions from the without-a-d on top of the
with-a-d extension, so people can migrate.
[1] https://externals.io/message/102375
Again, thank you all for your efforts!
Regards,
--
Rowan Tommins (né Collins)
[IMSoP]