Page MenuHomePhabricator

Arcanist staleness control
Closed, InvalidPublic

Description

I updated my phabricator server and broke arc diff. Failure did not have any instructions on how to fix it.

I updated local arcanist copy and fixed the problem.

It would be nice if arcanist detected it is stale and either notified with update instructions or even automatically upgraded itself.

Event Timeline

igorgatis raised the priority of this task from to Needs Triage.
igorgatis updated the task description. (Show Details)
igorgatis added a project: Arcanist.
igorgatis added a subscriber: igorgatis.

Interesting idea. Composer gives some sort of warning if it is more than 30 days old... Maybe something similar would be useful for Arcanist.

Also, 99% of the time when people ask me for help with Arcanist its just a matter of running arc upgrade.

Another option would be to allow a minimum version to be specified server-side. As in, Phabricator reports a minimum version commit hash which is either maintained in the code itself or overriden by admins.

I believe it is very rare the case one wants to use an arcanist version different from server's. Perhaps for arcanist development purposes only. I'd say it should upgrade as soon as it notices server is newer.

I don't think our users would want to update Arcanist as often as I am updating Phabricator.

epriestley claimed this task.
epriestley added a subscriber: epriestley.

We already have such a mechanism.

We avoid bumping versions very often because we received a lot of pushback in the past when we were more casual about it.

This report doesn't have enough information to reproduce the original problem, which is what we would prefer to fix.

One issue that we constantly face is as follows...

We have a CI job which essentially prevents code from being deployed if it does not successfully pass through linting. In CI, we update Arcanist at the beginning of each job. Locally, however, developers are much less likely to update their local Arcanist client. As a result, whenever we contribute linting code back to the upstream, we usually find that engineers will push code which fails linting because their local Arcanist is not up-to-date.