Page MenuHomePhabricator

Provide self-contained Arcanist executable
Closed, WontfixPublic

Description

Build self-contained Arcanist executables so newcomers would be able to set it up with following simple CLI combo wget 'https://phab.project-domain.com/arcanist/arc' -O $HOME/bin/arc; chmod +x ~/bin/arc. Assuming PHP is installed of course.

This definitely is possible because composer is distributed this way.

Event Timeline

develop7 renamed this task from Generate self-contained Arcanist executable to Provide self-contained Arcanist executable.
develop7 updated the task description. (Show Details)
develop7 added a project: Arcanist.
develop7 added a subscriber: develop7.

@epriestley I don't think T9901 belongs here, as I've wanted to have arcanist "packaged", not whole Phabricator. And I've worked with PHP before, of I'm quite aware of how complex packaging and installation could be. But I'm not sure that applies to arcanist. Anyway, T4200#57593 has been red, so let me add my 2¢ relevant to my proposed approach (which is, after more thinking it through, to build and distribute an single-file self-contained arc executable along with every Phabricator instance).

Generally, the same arguments for not having a Phabricator package apply to not having an Arcanist package either. Some are weaker, but others are stronger.

And some might even be not applicable to arcanist :)

Off the top of my head: arc upgrade currently depends on git. Should we install git when the user runs arc_installer.exe? Should we disable arc upgrade? Should we replace arc upgrade with some command which downloads a newer copy of the installer?

Replacing old arc with new one looks quite OK to me, provided single-file builds will be implemented.

What do we do if PHP is already installed but the version is too old?

Fail.

 What do we do if PHP is installed and the version is fine, but the configuration is wrong?

Do reasonable configuration checks, fail if it is not, proceed otherwise.

 How do we deal with TortoiseSVN and Git GUIs?

Just don't.

Which versions of Windows should we support?

Supported by modern PHP.

Every problem here is tractable, they're just almost certainly not the most valuable things we could be working on.

IMO distributing arcanist as a single executable is a significant UX improvement (I, for one, see it that way) and thus got value > 0. Which makes this ticket deserve "patches are welcome" resolution rather than plain "wontfix".

So here's big question: if someone would implement this, will the patch be reviewed and merged? If so, I'd write an RFC and gather requirements. Of course, any points why that can't be done are more than welcome.

Thanks.