Page MenuHomePhabricator

Packages: Load'em from .cache
Needs ReviewPublic

Authored by avivey on Oct 30 2020, 4:34 PM.
Tags
None
Referenced Files
F19195439: D21485.id51138.diff
Tue, Dec 16, 12:11 PM
F19041312: D21485.id.diff
Nov 26 2025, 3:35 PM
F19033556: D21485.diff
Nov 25 2025, 10:49 AM
F19030625: D21485.diff
Nov 24 2025, 9:56 PM
F18904042: D21485.id.diff
Nov 8 2025, 7:28 AM
F18812522: D21485.id.diff
Oct 20 2025, 10:07 AM
F18779412: D21485.id51138.diff
Oct 11 2025, 1:52 PM
F18710057: D21485.diff
Sep 29 2025, 1:22 AM
Subscribers

Details

Summary

This is the basis of the client-side support for Packages:

  • Installed packages are under ~/.cache/arcanist-packages/<identifier>-<version>.
  • A package has a manifest file called .arcpackage.
  • A package can be Requested from any config source, as packages, an array of objects.

This change includes:

  • loading requested packages that are installed
  • list all installed packages
  • a flow to install a package (but not to configure loading it).

To configure a package, this goes in any config file:

{
  "packages": [
    {
      "identifier": "pk1",
      "version": "1.12"
    },
    {
      "identifier": "aviv.demo1",
      "version":"1.0"
    }
  ]
}

and a manifest looks like this:

.arcpackage
{
    "identifier": "aviv.demo1",
    "version": "1.0",
    "Description": "An important demo package"
}

The --install-from-tgz flow is obviously just temporary, to be replaced later with better setup.

Test Plan

image.png (159×853 px, 24 KB)

Also used --install-from-tgz on a package.

Diff Detail

Repository
rARC Arcanist
Branch
packages
Lint
Lint Passed
SeverityLocationCodeMessage
Advicesrc/packages/ArcanistPackagesLoader.php:68XHP16TODO Comment
Advicesrc/workflow/ArcanistPackagesWorkflow.php:157XHP16TODO Comment
Advicesrc/workflow/ArcanistPackagesWorkflow.php:182XHP16TODO Comment
Unit
Tests Passed
Build Status
Buildable 24952
Build 34426: Run Core Tests
Build 34425: arc lint + arc unit