Page MenuHomePhabricator

Make Phabricator compatible with PHP7
Closed, ResolvedPublic

Tokens
"Like" token, awarded by arend.danielek."Orange Medal" token, awarded by Krinkle."Yellow Medal" token, awarded by chad."Yellow Medal" token, awarded by dmgarcia."Yellow Medal" token, awarded by sgielen."Like" token, awarded by skibbipl."100" token, awarded by cmmata."Like" token, awarded by Zolli."Like" token, awarded by PhoneixS."Like" token, awarded by J5lx."Like" token, awarded by rafaelrabeloit."Like" token, awarded by vanmeeuwen."Like" token, awarded by pmatos."Like" token, awarded by NMeral."Like" token, awarded by Info-Screen."Like" token, awarded by ofbeaton."Like" token, awarded by vhbit.
Assigned To
Authored By
joshuaspence, Oct 27 2015

Description

Phabricator currently does not support PHP 7. There are two major known issues:

  • Opcode and data caches (APC, APCu, OpCache, APCu_bc) have changed, and we do not yet provide guidance about how to install or configure them.
  • PHP 7 does not support asynchronous signal handling until a future (currently unreleased) version. See T11270 for details.

The new async_signals proposal may be available in PHP 7.1. We will re-evaluate support after it is available.

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
pmatos added a subscriber: pmatos.Oct 26 2016, 12:27 PM

Like others, I have been bitten by the PHP7 upgrade issue on Ubuntu 16.04.

PHP7 1.1 RC5 was released yesterday. Is there anyone out there using RC versions who can attest to them working?

In my opinion, everything has risks, they will release final 7.1 if it's stable enough. So at the moment, using PHP 7.1 RC 4 is better than commenting out source code with PHP 7.0

@khanhicetea RC5 is out.

But doesn anyone have any evidence that it works with RC releases?

NMeral awarded a token.Nov 3 2016, 7:35 AM
NMeral added a subscriber: NMeral.
BYK added a subscriber: BYK.Nov 23 2016, 9:23 AM
vanmeeuwen added a subscriber: vanmeeuwen.

PHP 7.1.0 has been released yesterday, and among the changes;

  • Pcntl:
    • Implemented asynchronous signal handling without TICKS.
    • Added pcntl_signal_get_handler() that returns the current signal handler for a particular signal. Addresses FR #72409.
    • Add signinfo to pcntl_signal() handler args (Bishop Bettini, David Walker)

Does this help?

mmlange added a subscriber: mmlange.Dec 5 2016, 3:14 PM
J5lx awarded a token.Dec 15 2016, 7:13 PM
Itms added a subscriber: Itms.Dec 17 2016, 11:45 AM

T9235: Add a warning about "always_populate_raw_post_data" being misconfigured is irrelevant on php7, as the setting has been removed. Trying to set it in php.ini appears to silently do nothing.

@reet- If you are using ppa:ondrej/php they tend to be of higher quality then the official php packages maintained on ubuntus ppa in most cases. You have to trust someone however and in this case it's ondrej instead of canonical.

In fact, the owner of the said PA is the Debian maintainer of the PHP 7 packages, Ondřej Surý.

Speaking of which, was there any progress on this? Debian release is very close, and I have to make phabricator package uninstallable (keeping only Arcanist and libphutil in).

See Planning for more information on understanding timelines and priorities, which also answers your question. Thanks!

kugel- added a subscriber: kugel-.Jan 10 2017, 1:03 PM
kcloze added a subscriber: kcloze.Jan 12 2017, 2:20 AM

Looking forward to support PHP7

davidism removed a subscriber: davidism.Jan 12 2017, 2:25 AM
PhoneixS added a subscriber: PhoneixS.
In T11270#207025, @chad wrote:

I can't think of a reason to prioritize this. Specifically, it seems like since Phabricator for most (all?) companies is a business critical piece of software, you'd always choose to run it on the most reliable / stable version of PHP. Is there a reason we should consider that not to be the case?
See Planning if you have questions about how we prioritize tasks.

Maybe some users might have a problem with the fact, that the latest Ubuntu LTS that supports PHP 5 (14.04) does not longer provide hardware updates.
Don't know if this is really a problem for users. Just wanted to mention it

Link: https://www.ubuntu.com/info/release-end-of-life

chad added a comment.EditedJan 12 2017, 6:40 PM

I would recommend those users see Prioritization and have their business consider paying to have the feature built if it's a limitation they are faced with. We have roughly 2,600 open tasks here and 1.5 developers, Planning has more information on understanding timelines and priorities.

BYK added a comment.Jan 12 2017, 7:12 PM

@chad - You know how can you get more developers? Being more open to contributions :)

chad added a comment.Jan 12 2017, 7:15 PM

Honestly, I'd have to disagree. I think us maintaining the roadmap means Phabricator grows faster. Taking detours on external patches daily limits our ability to execute on our own goals, and puts us behind on larger features. I do want to hire a developer or two so accepting patches isn't roadblocked as much, but that means prioritizing $$$ and Phacility first.

jsonnull edited subscribers, added: davidism; removed: ftdysa, sgielen, thoughtpolice and 21 others.Jan 12 2017, 7:17 PM

I have to agree with @BYK, there's been a lot of interest in getting PHP7 compatibility added. Multiple individuals have offered to work on getting 7.1's async working in Phabricator going back to pre-7.1 release. Phabricator contributors have consistently been absent from the discussion or just shut it down. It's stifling progress and causing interested developers to take their talents to other projects where they can actually get things done.

davidism removed a subscriber: davidism.Jan 12 2017, 7:20 PM

We were more open to contributions in the past. The high bar contributions now face is a direct response to the enormous maintenance burden that those changes saddled us with. This is explained in Contributing Code and elsewhere.

This project's contribution policies are not arbitrary; they are a direct response to our actual experience accepting contributions. We've been an open source project for almost 5 years now, and accepted changes from more than 300 contributors. Our policy is based on this actual data.

If you believe our policy isn't a good one, what are you basing that on? Why do you believe your information shapes a better policy than our information does?

I'll also note that this discussion is moot, anyway: this is not blocked on development resources, and is purely a prioritization issue. If we had 10 full time engineers, this still wouldn't be what any of them would be working on.

Even if you contribute a patch, you're asking us to take time away from high-priority changes and spend it reviewing and supporting low-priority changes. It doesn't matter if we're spending time writing low-priortiy code or reviewing low-priority code: this is still time spent on a low-priority activity instead of a high-priority activity.

enckse removed a subscriber: enckse.EditedJan 12 2017, 7:35 PM

I believe the idea of contribution and input changes are entirely up to the project and what they can support, that said it seems entirely off-topic for this task (imho) and the only thing I would suggest is updating the task detail at the top indicating the statements you've (@epriestley and @chad) made about prioritization and planning so there isn't a comment chain every month about this in this ticket :)

chad added a comment.Jan 12 2017, 7:38 PM

Well, priority and planning documents apply to all 2,600 open tasks, here. But I get what you're saying.

Yep and just as sort of an addition to my previous comment and why I said that: I feel like the current Task Detail trivializes what it probably really means to support PHP 7.

BYK added a comment.Jan 12 2017, 7:51 PM

I wasn't trying to create a whole new discussion. I respect your priorities and I also understand the engineers vs. money problem. The only major problem I see with the contribution guidelines is this: to be able to contribute more or affect change, you need clout and to get clout you need to contribute and for those contributions to go into the code or even get some feedback we need time from you guys.

I honestly think you can do a better job of gathering open source contributors around the goals you are going towards so you can get contributions that help you advance for free. I for once would love to help you guys out but I feel kind of pushed away every time I try to contribute because the feedback I get is dismissive. If you point people to the right direction, I'm sure they'd love to pay back your generosity in some way.

My 2 cents. :)

I don't think the task detail trivializes this. I expect PHP7 issues will take very little time to resolve, perhaps 2-3 hours? Some installs already run PHP7 with varying degrees of success, which implies there are likely few unknowns lurking in the shadows. I believe this is not a large or complex technical task; it is purely a prioritization issue.

chad added a subscriber: BYK.Jan 12 2017, 7:52 PM

@BYK Definitely sympathetic here, and we are actively looking to add bodies to the upstream.

I always thought the Hashicorp projects seemed to cope nicely with a lot of patches and contributors. Projects like Packer and Terraform each process boat load of pull requests.

PS. I've been running Phabricator on PHP 7 for about a year now and never encountered any real problems. Were even running it on SmartOS (Solaris) so I guess our Phabricator stack is the poster boy for "non-standard".

epriestley raised the priority of this task from Low to Normal.
epriestley added a project: Prioritized.
epriestley renamed this task from Phabricator PHP 7 Compatibility to Make Phabricator compatible with PHP7.Jan 13 2017, 12:08 AM
epriestley closed this task as Resolved.Jan 13 2017, 12:16 AM

This was prioritized privately and PHP7 is now supported. Not sure I got everything, but I'm on PHP7 locally now so presumably I'll hit any remaining issues before too long. T12101 is the new informational task. We will now accept bug reports against PHP7. The documentation should regenerate within a day or so. These changes will promote to stable in about 24 hours.

Zolli awarded a token.Jan 13 2017, 6:03 AM
alexnb removed a subscriber: alexnb.Jan 13 2017, 7:15 AM
skibbipl removed a subscriber: skibbipl.
dmgarcia rescinded a token.
dmgarcia awarded a token.
chad awarded a token.Jan 22 2017, 7:26 PM
pasik added a subscriber: pasik.Dec 16 2017, 8:19 PM