memcache, without a d, as in Venezuela

php.internals

Rowan Collins

8 years ago
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]

Jan Ehrhardt

8 years ago
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

AllenJB

8 years ago
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 On 23/06/2018 15:16, Jan Ehrhardt wrote:

Pierre Joye

7 years ago
On Sun, Jun 24, 2018, 12:00 AM AllenJB <php.lists@allenjb.me.uk wrote:
> 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 :)

Rowan Collins

7 years ago
On Mon, 19 Nov 2018 at 15:53, Pierre Joye <pierre.php@gmail.com> wrote:
> On Sun, Jun 24, 2018, 12:00 AM AllenJB <php.lists@allenjb.me.uk wrote: > > > 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]

Christoph Becker

6 years ago
On 20.11.2018 at 11:26, Rowan Collins wrote:
> On Mon, 19 Nov 2018 at 15:53, Pierre Joye <pierre.php@gmail.com> wrote: > >> On Sun, Jun 24, 2018, 12:00 AM AllenJB <php.lists@allenjb.me.uk wrote: >> >>> 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

Rowan Collins

6 years ago
On 19/12/2019 12:51, Christoph M. Becker wrote:
> On 20.11.2018 at 11:26, Rowan Collins wrote: > >> 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]