~snappy-dev/snapcraft/core

« back to all changes in this revision

Viewing changes to docs/intro.md

  • Committer: Michael Vogt
  • Date: 2015-07-24 07:24:43 UTC
  • mto: This revision was merged to the branch mainline in revision 118.
  • Revision ID: michael.vogt@ubuntu.com-20150724072443-yjcwholkcke09s04
Start work on the docs

- rename README.md to HACKING.md as its about snapcraft hacking
- add new README.md that points to the docs under doc/
- add docs/intro.md that explains some of the key concepts
- add stub docs/tutorial.md

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Into
 
2
 
 
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.
 
6
 
 
7
# Key concepts
 
8
 
 
9
All dependencies are bundled in a snap...
 
10
 
 
11
## Parts
 
12
 
 
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.
 
17
 
 
18
## Plugins
 
19
 
 
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.
 
25
 
 
26
## Lifecycle
 
27
 
 
28
Each part goes through the following steps:
 
29
 
 
30
### Pull
 
31
 
 
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.
 
37
 
 
38
#### Build
 
39
 
 
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.
 
42
 
 
43
### Stage
 
44
 
 
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.
 
48
 
 
49
### Snap
 
50
 
 
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.
 
53
 
 
54
### Assemble
 
55
 
 
56
The final step builds a snap package out of the snap directory.
 
57
 
 
58
More details on the flow can be found in the docs/flow.md document.
 
59
 
 
60
# Next
 
61
 
 
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'