Page MenuHomePhabricator

Phabricator and Arcanist versions must be kept in sync because of occasional breaking api changes between phabricator versions.
Closed, ResolvedPublic

Description

Updated by MModell

I'm hijacking this task to track our plan for keeping arc in sync with phab updates.

Original Description:

Which backward and forward compatibility guaranties is given for arcanist and/or the APIs it uses?

If there were none, that would mean that each time a Phabricator update is done everyone needs to upgrade arcanist to a specific version and they would need a different arcanist version for every Phabricator installation. Some upstream documentation regarding their compatibility guaranties would help us not running into this problem unexpectedly.

The short answer is, there are no guarantees.

We need to deal with this by providing a supported version of Arcanist and a way for users to easily update. It's pretty straightforward - users need to install symlink to the arc executable checked out from git, and then they can run git pull to update.

Related Objects

StatusSubtypeAssignedTask
ResolvedDzahn
Resolved Cmjohnson
ResolvedDzahn
ResolvedDanny_B
ResolvedPaladox
OpenDzahn
Resolved demon
Resolved demon
ResolvedPaladox
ResolvedNemo_bis
Resolved demon
ResolvedPaladox
ResolvedKrenair
Resolved mmodell
InvalidNone
DeclinedNone
Resolved demon
InvalidNone
InvalidNone
ResolvedQgil
DeclinedNone
DuplicateNone
Resolvedgreg
Resolvedgreg
Resolved demon

Event Timeline

JanZerebecki raised the priority of this task from to Needs Triage.
JanZerebecki updated the task description. (Show Details)
JanZerebecki added a project: Gerrit-Migration.
JanZerebecki added subscribers: JanZerebecki, Aklapper.

I'm not sure I said exactly what is paraphrased above, but what I actually tried to refer to was https://secure.phabricator.com/T5051#91031

Ah then we misunderstood each other at FOSDEM. Editing description accordingly.

I don't think we are going to get any API promise. Then again, do we know about problems of incompatibility between Phabricator and Arc versions? https://secure.phabricator.com/project/board/2/query/all/ seems to be quiet in this respect.

Besides, we are updating Phabricator about every month, and Arc is "installed" as a local git repository, so in the worst case scenario your Arc version is behind, and all you need to do is to pull from master, right?

Can we get it documented that there is neither forward nor backwards compatibility if that is the case? Then we can act accordingly.

No arc might be installed as a package, that means it might be up to 5 years old. Or it might be installed from git as you said and then it might be 1 month younger.

From previous experience I can say that backwards and forwards compatibility are often broken. Indeed, for guaranteed compatibility, arcanist must be kept strictly in sync with the phabricator version we are running in production. Many changes are not compatibility-breaking, but some updates will definitely require coordination. We will need to push arcanist changes to our own fork of arcanist whenever we update phabricator and we will need to provide an easy way to pull these updates. The simplistic approach is simply to have everyone install arcanist from our git repo and periodically pull from there to stay updated.

mmodell renamed this task from get backward and forward compatibility guaranties for the APIs arcanist uses to Phabricator and Arcanist versions must be kept in sync because of occasional breaking api changes between phabricator versions..May 1 2015, 5:17 AM
mmodell updated the task description. (Show Details)
mmodell moved this task from To Triage to Need Discussion on the Gerrit-Migration board.
greg claimed this task.
greg subscribed.

This task is a statement of fact and not an issue if we do what Mukunda suggested:

The simplistic approach is simply to have everyone install arcanist from our git repo and periodically pull from there to stay updated.

Thus, all documentation on mw.org about interacting with Differential will use our arc repo hosted on our phab instance as the one to clone from, not upstream.