U4-8156 - Support minimum versions for Umbraco packages

Created by Rune Strand 11 Mar 2016, 14:58:49 Updated by Shannon Deminick 11 Aug 2016, 18:47:09

Tags: Star

Relates to: U4-8602

Relates to: U4-8670

Relates to: U4-1047

Having minimum version on packages would enable:

  • The package installer to warn users that the version of the package they are installing is not compatible with the Umbraco version they are running.
  • Make legacy support in packages (especially for Forms, Courrier and starter kits) less of a hassle. Ie you don't have to support all previous versions but can target specific versions or version ranges.
  • Package browser in the backoffice to show packages based Umbraco version you are running.

In order to update packages to support minimum versions we need to:

  • Add a new package format flag for packages -- this is a UI update, I think we might already store this metadata in the package manifest - need to check, otherwise we'll need to store it
  • Send Umbraco version when browsing packages in the backoffice -- When we are running >= 7.5 this will use a REST endpoint on Our with the new packager UI -- When we are running < 7.5 currently this uses iframes - we actually DO pass up the current version in query strings
  • Include minimum version meta data in package manifest (Create package) and include a "type='strict'" attribute
  • Update package upload on Our to support new package format -- This will be known because we will have an "type='strict" attribute on the package requirements xml element in the package metadata -- The package upload UI changes to not show the version check boxes, during upload we check this attribute, if it exists we auto-populate the wikiFiles table with a min version number - which will be specific to differentiate between other versions (i.e. ">-7.5.0"). If the meta data doesn't exist, we display the version checkboxes

The way it works:

  • When requesting a package, IF the type='strict' and Umbraco version is part of the request in the REST endpoint - we only return the relavent packages with files in the wikiFiles table that match the version, otherwise we return everything like normal - If no new format files exist return latest (like it is today)
  • When requesting a package WITHOUT Umbraco version (legacy iframe): - If the package has files with the new format, we can display it in search results but cannot let them install (i.e. not compat warn)

REST ENDPOINT

  • Get All Popular (can pass in a max results, default 10) ** Has an optional parameter to filter by category (i.e. Collaboration, Starter Kits, etc...)
  • Get All Latest (paged) ** Has an optional parameter to filter by category (i.e. Collaboration, Starter Kits, etc...)
  • Get Package (by id) ** Needs to return all package info: description, images (including primary), author with karma points, Information (owner, contributors, created, current version, etc...), Compatibility matrix, External sources (source code, repo, etc...), Download URI (to use for installation)

Comments

Umbraco 18 Jul 2016, 12:08:33

Need to add "type="strict" attribute from the packager in the backoffice. Verify querying in Our - does it return the correct packages?


Priority: Task - Pri 1

Type: Feature (request)

State: Fixed

Assignee:

Difficulty: Normal

Category: Packages

Backwards Compatible: True

Fix Submitted:

Affected versions:

Due in version: 7.5.0

Sprint: Sprint 39

Story Points:

Cycle: