Snappy development tools

Registered by Daniel Holbach on 2015-04-30

In this session we'd like to discuss:
 1) framework definition
 2) framework packaging
 3) schroot as single point of failure and alternatives

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Zoltan Balogh
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
Accepted for wily
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Agenda/Notes:
 - review some developer feedback: http://pad.ubuntu.com/vz6pKEKbHH
 - subjects from Zoltan and his merrimen:
  - framework definition,
  - framework packaging,
  - schroot as single point of failure and alternatives
 - figure out developer use-cases
  - interact and iterate with snappy devices when developing apps, frameworks, OS, kernel
  - native development: how to get cross compilation right; how to distribute libraries and headers that - can be shared with the community
  - provide tools to fetch dependencies, bundle, etc.
  - python
  - node
  - java
  - ubuntu
  - provide the tools for the "last mile" so that communities like nodejs, pypi, etc can just get everything they need with their native tools and ship that as a snap
  - Whatever we do, like for cross compilation, also try to work with upstream to avoid creating our own build scheme
 - primitives
  - what is a buildenv for snappy?
  - what parts go in there?
   - host tools
   - target libs/headers/interfaces/binaries
  - how can they be distributed?
  - how can they be bundled?
 - what is needed for personal; subset to get started:
  - how to build your environment
  - how to do native compilation
later:

QUESTIONS:
<zyga> QUESTION: do you have a list of ideas what will become a framework first? (stuff that can be used as an example to understand them better)

Asac: frameworks not as shared code libraries but more like things that let application developers build their apps (modelled after the go ecosystem) where you build, test and ship exactly what you had running locally and nothing you don't control can change and break it tomorrow.

It is important to differentiate _run-time_ problems from _build-time_ problems.

Many open questions:
 - what does it mean to have a development package/framework
 - ...
 - what does it mean to develop something for the snappy system
We need tools to replace the existing workflows and tools that are familiar to people that develop for Debian or Ubuntu.

Development experience:
 - Host side:
   - Cross compilation
   - Easy way to fetch and bundle stuff from external sources
 - Client side:
   - Use containers to let developers to build stuff natively

→ don't build on the target, centrally built overlays/images

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.