3
Snapcraft allows easy crafting of snap packages for the Ubuntu Core
4
transactional system. It is designed to make it easy to incorporate
5
components from different sources like github, launchpad or npm.
9
All dependencies are bundled in a snap...
13
A central aspect of a snapcraft recipe is a "part". A part is a piece
14
of software or data that the snap package requires to work or to
15
build other parts. Each part is managed by a snapcraft plugin and parts
16
are independent of each other.
20
Snapcraft plugins are written in python and have a yaml
21
description. This allows to easily extend snapcraft with custom
22
plugins. A lot of default plugins are included, for example for
23
projects written in go, java, python or autotools. It is also possible
24
to simply download content as part of the snapcraft recipe.
28
Each part goes through the following steps:
32
The first is that each part is pulled. This step will download
33
content, e.g. checkout a git repository or download a binary component
34
like the java sdk. Snapcraft will create a parts/ directory with
35
sub-directories like parts/part-name/src for each part that contains
36
the downloaded content.
40
The next step is that each part is build in its parts/part-name/build
41
directory and installs itself into parts/part-name/install.
45
After the build of each part the parts are combined into a single
46
directory tree that is called the "staging area". It can be found
47
under the ./stage directory.
51
The snap step move the data into a ./snap directory. It contains only
52
the content that will be put into the final snap package.
56
The final step builds a snap package out of the snap directory.
58
More details on the flow can be found in the docs/flow.md document.
62
After introducing the key concept of snapcraft it is probably a good
63
time to look at the tutorial in docs/tutorial.md to see how it works
64
for an example project.
b'\\ No newline at end of file'