Skip to content

Extension Distribution System

danwalmsley edited this page Sep 11, 2016 · 15 revisions

A lot of the following information also relates to distribution of AS itself.

Package Index Entry

The package indexes will provide the following information:

  • Package Name (Must be unique in entire ecosystem)
  • Package Description
  • Package Author
  • Package Category
  • Package git URL
  • Excluded Tags (this can be used to block specific tags, or exclude them by wildcard, and <*-v3 would exclude all tags less than v3.

Package reference will be: [Author].[Category].[Name] i.e. AvalonStudio.Toolchains.Clang

Format will be Json.

Package Repository Tags

Format will be like this... [Environment]-[Ring]-[Version]

i.e. Windows-Stable-1.0.0

OSX-PreRelease-1.0.9b

Latest version will be highest version in with Release ring.

This will allow the application to filter tags that relate to the platform its running on, and stable or pre-release, and then list the version.

Cloning Packages

Packages should be cloned into /AppData/Packages/PackageReference/Tag/

Packages will be shallow cloned, so minimal code download is done.

Feeds

It is proposed there will be 3 feeds, although only 1 list in the UI. Official Packages - All VitalElement and AvalonStudio written packages. Approved Packages - Approved 3rd Party Packages Unofficial Packages - Packages made by 3rd parties, but not tested by us.

Each feed will be a package index with different levels of management. Official packages will display a Gold Star, Approved will display Star of another colour, and Unoffical packages no star.

Installing a Package

  1. Get the tags from the remote repo git ls-remote --tags
  2. Filter all the tags by environment
  3. Filter all the tags that don't contain pre-release by default.
  4. Select a tag