Giter Site home page Giter Site logo

sailfish-api-patterns's Introduction

Sailfish Third Party API Patterns
=================================

This repository contains some tooling that we use to build an API patterns file
that can be pre-installed on the device.

Technical background
--------------------

This is required so that applications that would otherwise drag in a new
dependency already work on first launch (the booster process will not have
"seen" the Qt/QML plug-in at the time it was launched), if we don't do this,
applications could end up without some plugins on first launch due to the
way boosting and mapplauncherd works:

  time ---- >

  A ..... B ..... C
  ^       ^       ^
  |       |       user taps icon, doesn't work on first run
  |       application and new plugin gets installed
  booster process launches

By making sure that all possible Qt plug-ins (possible as in "can be depended
on by third party apps") are already installed in the base image, the booster
process will always "see" all allowed plug-ins.

Updating the package
--------------------

To update this package when new requirements are allowed:

 1.) git submodule update
 2.) git submodule foreach git pull origin master
 3.) Update API_LEVEL in update.py
 4.) python update.py
 5.) Commit all changes with [api] Bump to API version ...
 6.) Tag new version

The old .yaml files should be kept when the API level is increased, packages
depending on new API levels can depend on "sailfish-api-2" (for example),
whereas old packages might still depend on "sailfish-api-1".

All patterns also provide "sailfish-api = <version>", e.g. "sailfish-api-1"
provides "sailfish-api = 1", so apps can also use that to depend on the
Sailfish API without specifying the API level in the package name.

sailfish-api-patterns's People

Contributors

thp avatar

Watchers

 avatar  avatar

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.