Git Product home page Git Product logo

addon-datastore-transform's People

Contributors

cyrilleb79 avatar feerrenrut avatar nvdaes avatar seanbudd avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

addon-datastore-transform's Issues

Add support for pre-release NVDA

When using a prerelease copy of NVDA (from source, alpha, beta, rc, or try builds) there is no available endpoint for add-on listings, resulting in an error. For prototype purposes, the version used has been hard coded see PR: Add-on store #13985

Endpoints are available for each of the transforms based on the set of available releases, however, by definition a pre-release version of NVDA is not going to be available in that list. Instead, a "latest" transform should be added.

Combining this 'latest' endpoint with: Allow 'dev' version of add-on
#40 ensures that all combinations of stable and pre-release are supported for both add-ons and NVDA:

Stable NVDA

NVDA has been released final and has been published as a release.
Stable NVDA builds will access the API version specific endpoint.

Stable add-on

This is the standard case. Stable add-ons are offered to users of stable NVDA as long as they are compatible.

Beta add-on

Allows add-on authors to target a stable NVDA release and get feedback from early adopter users before publishing add-on as stable.

Dev add-on

Not offered when to users of stable NVDA.

Pre-release NVDA

alpha, beta, rc, try, or dev builds
These builds will access the "latest" endpoint.

Stable add-on

Add-on is presented as long as the API backwards compatible to has not been updated in this version of NVDA.
This allows NVDA developers/testers using pre-release NVDA versions to use the add-ons they usually use.

Beta add-on

Add-on is presented as long as the API backwards compatible to has not been updated in this version of NVDA.
This allows NVDA developers/testers using pre-release NVDA versions to use the add-ons they usually use.

Dev add-on

A special add-on channel for developing add-ons against the newest unreleased additions to NVDA, or to stay up to date with compatibility breaking changes.

  • "compatible" means add-ons are only to be offered if there is overlap in API support (I.E. manifest and supported API range suggests the add-on is expected to be compatible with NVDA).
  • This means that source copies for old NVDA versions may not have compatible add-ons. This is another issue, which could be solved by accessing the API version specific endpoint for the NVDA version the source copy was going to become.

How should latest be created:

For add-on ID X, the first submission should be taken when the submissions are ordered by:

  1. Last tested addon API: the most recently tested add-on API version should be preferred.
  2. Addon-version number: later add-on version numbers should be preferred.
  3. Stable > beta > dev : if an add-on author promotes a dev version to beta or stable, those should be preferred. Note the implicit (filesystem) constraint applied by the add-on datastore prevents two submissions that have equal ID and version number. This last ordering is only theoretical. If this raises the question of "why have a dev channel?", remember that it allows the validation step to API compatibility constraints.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.