autoproj 1.7.0.rc2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. data/History.txt +29 -20
  2. data/Manifest.txt +2 -29
  3. data/Rakefile +7 -28
  4. data/bin/autolocate +9 -37
  5. data/{doc/guide/src → bin}/autoproj_bootstrap +36 -0
  6. data/bin/autoproj_stress_test +40 -0
  7. data/lib/autoproj/cmdline.rb +22 -3
  8. data/lib/autoproj/manifest.rb +0 -2
  9. data/lib/autoproj/version.rb +1 -1
  10. metadata +12 -40
  11. data/doc/guide/config.yaml +0 -29
  12. data/doc/guide/ext/init.rb +0 -18
  13. data/doc/guide/ext/previous_next.rb +0 -40
  14. data/doc/guide/ext/rdoc_links.rb +0 -33
  15. data/doc/guide/src/adding_packages.page +0 -40
  16. data/doc/guide/src/customization.page +0 -230
  17. data/doc/guide/src/default.css +0 -340
  18. data/doc/guide/src/default.template +0 -74
  19. data/doc/guide/src/error_messages.page +0 -37
  20. data/doc/guide/src/htmldoc.metainfo +0 -8
  21. data/doc/guide/src/htmldoc.virtual +0 -19
  22. data/doc/guide/src/images/bodybg.png +0 -0
  23. data/doc/guide/src/images/contbg.png +0 -0
  24. data/doc/guide/src/images/footerbg.png +0 -0
  25. data/doc/guide/src/images/gradient1.png +0 -0
  26. data/doc/guide/src/images/gradient2.png +0 -0
  27. data/doc/guide/src/index.page +0 -64
  28. data/doc/guide/src/manifest.xml +0 -14
  29. data/doc/guide/src/overview.png +0 -0
  30. data/doc/guide/src/overview.svg +0 -537
  31. data/doc/guide/src/package_sets/autobuild.page +0 -239
  32. data/doc/guide/src/package_sets/importers.page +0 -165
  33. data/doc/guide/src/package_sets/index.page +0 -223
  34. data/doc/guide/src/package_sets/manifest-xml.page +0 -29
  35. data/doc/guide/src/package_sets/osdeps.page +0 -128
  36. data/doc/guide/src/quick_start.page +0 -128
  37. data/doc/guide/src/toc.page +0 -7
  38. data/doc/guide/src/writing_manifest.page +0 -146
@@ -1,29 +0,0 @@
1
- ---
2
- title: The manifest.xml file
3
- sort_info: 120
4
- ---
5
-
6
- The manifest.xml is an optional (but *very recommended*) file that lies in the
7
- root of every source package. This file describes both what the package *is*
8
- (i.e. short description, contact information), and dependency information (what
9
- should be installed for that package to be built successfully).
10
-
11
- The general form of the file is:
12
-
13
- {coderay:: xml}
14
- <package>
15
- <description brief="one line of text">
16
- long description goes here,
17
- <em>XHTML is allowed</em>
18
- </description>
19
- <author>Alice/alice@somewhere.bar, Bob/bob@nowhere.foo</author>
20
- <license>BSD</license>
21
- <url>http://sites.google.com/site/rubyinmotion</url>
22
- <logo>http://sites.google.com/site/rubyinmotion</logo>
23
-
24
- <depend package="pkgname"/> <!-- add dependency on either another
25
- autoproj-built package, or an OS-provided one -->
26
- <depend package="common"/>
27
- </package>
28
- {coderay}
29
-
@@ -1,128 +0,0 @@
1
- ---
2
- title: Operating System dependencies
3
- sort_info: 300
4
- ---
5
-
6
- Autoproj offers the possibility to use OS-packaged software instead of building
7
- it, to leverage the underlying platform's software. This page details how it's
8
- done.
9
-
10
- Defining dependencies between source packages and OS packages
11
- -------------------------------------------------------------
12
-
13
- If a source package depends on an OS package, this dependency should be declared
14
- in the same way than between source packages:
15
-
16
- * either by adding the <depend package="os_dep_name" /> tag in the
17
- manifest.xml, or
18
- * by calling #depends_on("os_dep_name") in the autobuild file.
19
-
20
- The os_dep_name above being the name of the package as declared in the OS
21
- dependencies files defined below.
22
-
23
- During the build, autoproj looks first for OS dependencies. If no dependency is
24
- available for that particular platform, it will then look for a source package
25
- definition and build it. If none of the two exist, an error is returned.
26
-
27
- OS packages
28
- -----------
29
-
30
- The general format of the an OS package definition:
31
-
32
- ~~~~~~~~~~~~~~~~~~
33
- name:
34
- distribution1,distribution2:
35
- version1,version2: [package_name1, package_name2]
36
- ~~~~~~~~~~~~~~~~~~
37
-
38
- Where 'name' is the name used to declare the dependency (see above), `distribution`
39
- the name of the distribution and <tt>version</tt> the
40
- distribution's version, and <tt>package_name</tt> the name of the package in
41
- the underlying OS.
42
-
43
- Since the osdeps file is a YAML file, it could also be written
44
-
45
- ~~~~~~~~~~~~~~~~~~
46
- name:
47
- distribution1,distribution2:
48
- version1,version2:
49
- - package_name1
50
- - package_name2
51
- ~~~~~~~~~~~~~~~~~~
52
-
53
- If only one package needs to be installed, one can use the shortcut
54
-
55
- ~~~~~~~~~~~~~~~~~~
56
- name:
57
- distribution1,distribution2:
58
- version1,version2: package_name
59
- ~~~~~~~~~~~~~~~~~~
60
-
61
- Finally, if the package name is version-independent, the version can be omitted:
62
-
63
-
64
- ~~~~~~~~~~~~~~~~~~
65
- name:
66
- distribution1,distribution2: package_name
67
- ~~~~~~~~~~~~~~~~~~
68
-
69
- Examples:
70
-
71
- ~~~~~~~~~~~~~~~~~~
72
- ruby:
73
- debian,ubuntu:
74
- 9.04,10.04,sid: libruby-dev
75
- boost:
76
- debian:
77
- - libboost1.38-dev
78
- - libboost-program1.38-dev
79
- ubuntu:
80
- 9.04,10.04: libboost-dev
81
- ~~~~~~~~~~~~~~~~~~
82
-
83
- At the time of this writing, autoproj is able to install packages on
84
- Ubuntu/Debian and Gentoo. Support for other operating systems can be easily
85
- added, so [contact me](http://github.com/doudou) if you want to do so.
86
-
87
- RubyGems packages
88
- -----------------
89
-
90
- RubyGems packages are OS-independent. In the osdeps files, they can be referred
91
- to by replacing the OS distribution name by 'gem'.
92
-
93
- Example:
94
-
95
- ~~~~~~~~~~~~~~~~~~
96
- hoe:
97
- gem:
98
- hoe
99
- ~~~~~~~~~~~~~~~~~~
100
-
101
- If the OS dep name and the RubyGems name are the same, one can use the shortcut
102
-
103
- ~~~~~~~~~~~~~~~~~~
104
- hoe: gem
105
- ~~~~~~~~~~~~~~~~~~
106
-
107
- Note that it is possible to use a mixture of RubyGems and OS packages. For
108
- instance, the following snippet will both install the gnuplot package and the
109
- gnuplot RubyGems whenever an osdep on 'gnuplot' is declared.
110
-
111
- ~~~~~~~~~~~~~~~~~~
112
- gnuplot:
113
- gem: gnuplot
114
- debian: gnuplot
115
- ~~~~~~~~~~~~~~~~~~
116
-
117
- Ignoring some dependencies
118
- --------------------------
119
- It is possible that, on some operating systems, a given package should simply be
120
- ignored. To do so, simply use the 'ignore' keyword. Example:
121
-
122
- ~~~~~~~~~~~~~~~~~~
123
- gnuplot:
124
- gem: gnuplot
125
- debian: ignore
126
- ubuntu: gnuplot
127
- ~~~~~~~~~~~~~~~~~~
128
-
@@ -1,128 +0,0 @@
1
- ---
2
- title: Quick start
3
- sort_info: 25
4
- ---
5
-
6
- Bootstrapping
7
- -------------
8
- "Bootstrapping" means getting autoproj itself before it can work its magic ...
9
- The canonical way is the following:
10
-
11
- * install Ruby by yourself. On Debian or Ubuntu, this is done with
12
- done with
13
-
14
- sudo apt-get install wget ruby
15
- {: .cmdline}
16
-
17
- * then, [download this script](autoproj_bootstrap) *in the directory where
18
- you want to create an autoproj installation*, and run it. This can be done with
19
-
20
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
21
- ruby autoproj\_bootstrap
22
- {: .cmdline}
23
-
24
- * follow the instructions printed by the script<tt>manifest</tt>.
25
-
26
- Additionally, if you are given a reference to a source code repository in which
27
- an autoproj configuration is stored (i.e. a directory in which a manifest is
28
- present), you can bootstrap this configuration directly:
29
-
30
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
31
- ruby autoproj\_bootstrap VCS
32
- {: .cmdline}
33
-
34
- For instance, to build all packages made available by the RubyInMotion project,
35
- do
36
-
37
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
38
- ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git
39
- {: .cmdline}
40
-
41
- Additional options can be given for the version control system. For instance,
42
-
43
- wget http://doudou.github.com/autoproj/autoproj\_bootstrap <br />
44
- ruby autoproj\_bootstrap git git://github.com/doudou/rubim.all.git branch=stable
45
- {: .cmdline}
46
-
47
- Switching configuration after bootstrapping
48
- -------------------------------------------
49
- Let's assume that you want to switch what configuration autoproj is tracking,
50
- but without having to redo a complete bootstrap -- i.e. avoiding to rebuild
51
- stuff that is common between the configurations.
52
-
53
- autoproj provides the switch-config command for that. This command takes the
54
- same arguments than the bootstrap script, that is:
55
-
56
- autoproj switch-config \[vcs_type] \[vcs_url] \[vcs_options]
57
- {: .cmdline}
58
-
59
- As a shortcut, one can omit vcs_type and vcs_url if they don't change.
60
- This is especially useful when switching between branches:
61
-
62
- autoproj switch-config branch=experimental
63
- {: .cmdline}
64
-
65
- Management
66
- ----------
67
-
68
- To build the packages, simply do:
69
-
70
- autoproj build
71
- {: .commandline}
72
-
73
- It will ask the value of newly defined configuration options, import code hosted
74
- remotely that is not yet present, install OS packages (e.g. Ubuntu packages on
75
- an Ubunut installation) and build everything.
76
-
77
- autoproj will *not* ask you again about the configuration questions you already
78
- answered, so if you want to change them, do:
79
-
80
- autoproj build --reconfigure
81
- {: .commandline}
82
-
83
- Alternatively, you can edit the autoproj/config.yml file directly.
84
-
85
- By default, autoproj does not automatically update the package sources. To do
86
- that, you have to explicitely call
87
-
88
- autoproj update
89
- {: .commandline}
90
-
91
- Finally, if you want to make sure that your build is fresh, then do
92
-
93
- autoproj rebuild
94
- {: .commandline}
95
-
96
- A less intrusive version of it only forces all tools to reconsider building. It
97
- is mainly useful for CMake when the build environment changed -- cmake caches a
98
- lot of values. To trigger this, do
99
-
100
- autoproj force-build
101
- {: .commandline}
102
-
103
- To add a new set, one edits the <tt>autoproj/manifest</tt> file and adds it
104
- there. Then, simply starting the build will update everything and rebuild what
105
- is needed.
106
-
107
- Documentation is generated only when asked explicitely:
108
-
109
- autoproj doc
110
- {: .commandline}
111
-
112
- It generates documentation of packages that have some, and copies that
113
- documentation into build/doc/, following the same layout than the source
114
- directory.
115
-
116
- All these commands (i.e. build, doc, and update) accept a package name as
117
- argument, thus triggering build only for this package and its dependencies. For
118
- instance:
119
-
120
- autoproj build orocos/rtt
121
- {: .commandline}
122
-
123
- **Exception**: to avoid long builds, the rebuild and force-build commands apply only
124
- to the packages given on the command line. E.g., autoproj rebuild orocos/rtt
125
- will only rebuild the orocos/rtt packages. If you want to rebuild both the
126
- packages and its dependencies, use the --with-depends options.
127
- {: .warning}
128
-
@@ -1,7 +0,0 @@
1
- ---
2
- title: Table of Contents
3
- sort_info: -1
4
- ---
5
-
6
- {menu: {nested: true, used_nodes: all, min_levels: 10, max_levels: 10}}
7
-
@@ -1,146 +0,0 @@
1
- ---
2
- title: The manifest file.
3
- sort_info: 50
4
- ---
5
-
6
- This page describes the structure of a autoproj installation, and describes how
7
- to manage one. See [the introduction](index.html) for the bootstrapping process.
8
-
9
- Structure
10
- ---------
11
-
12
- ![Structure overview](overview.png)!
13
- {: .full}
14
-
15
- The autoproj configuration and build process goes like this:
16
-
17
- * a set of packages are declared in _package sets_. These package sets can
18
- either be local (saved along with the rest of the autoproj configuration) or
19
- remote (imported from a VCS). They declare how to get, build and install
20
- a certain number of packages. On the image above, there are three of those
21
- sets: rubim.base, rubim.orocos and rubim.drivers.
22
- * packages that are relevant to the local installation are cherry-picked from
23
- the package sets. One can either select packages one-by-one (the case for the
24
- two packages of rubim.drivers above), or a package set can be imported as a
25
- whole (rubim.orocos and rubim.base).
26
- * autoproj will then import the selected packages, auto-select their
27
- dependencies and import them as well, build and install all of this.
28
- * the selected packages can be imported and built in subdirectories of the
29
- installation tree. In the above example, all packages from rubim.orocos are
30
- built in the tools/ subdirectory, one package of rubim.drivers in the
31
- perception/ subdirectory and so on.
32
-
33
- In practice, the autoproj configuration is saved in an autoproj/ directory. It
34
- is split like this:
35
-
36
- * autoproj/manifest: list of available package sets, package selection and
37
- installation layout (where to put what).
38
- * autoproj/\*/: local sets, i.e. sets that have not been imported from a remote
39
- version control system.
40
- * autoproj/remotes/\*/: package sets that are imported from a remote version
41
- control system
42
- * autoproj/init.rb, autoproj/overrides.rb and autoproj/overrides.yml:
43
- installation customization
44
-
45
- The build is done in two steps:
46
-
47
- * each package is being built in a <tt>build</tt> subdirectory of the package's
48
- source (<tt>package_directory/build/</tt>)
49
- * it is then installed in the build/ directory at the toplevel of the autoproj
50
- installation
51
-
52
- Moreover, the <tt>build/log</tt> directory contains the output of all commands
53
- that have been run during the build.
54
-
55
- Finally, a <tt>env.sh</tt> script is generated to set up your shell for the use
56
- of the installed software.
57
-
58
- Listing and adding package sets
59
- -------------------------------
60
- Package sets are listed in the <tt>package_sets</tt> section of
61
- <tt>autoproj/manifest</tt> file. This section looks like this:
62
-
63
- {coderay:: yaml}
64
- package_sets:
65
- - imoby
66
- - type: git
67
- url: git://github.com/doudou/autoproj-orocos.git
68
- {coderay}
69
-
70
- It lists both local and remote sets that are available for this installation.
71
- Local sets are subdirectories of the <tt>autoproj/</tt> directory: for instance,
72
- in the above example, autoproj will look at the <tt>autoproj/imoby/</tt>
73
- directory. Remote sets are taken from remote version control systems. Its
74
- general format is:
75
-
76
- {coderay:: yaml}
77
- - type: version_control_type # git, svn, cvs, darcs
78
- url: repository_url
79
- {coderay}
80
-
81
- For the git importer, one of 'branch' or 'tag' options can be provided as well:
82
- {coderay:: yaml}
83
- - type: version_control_type # git, svn, cvs, darcs
84
- url: repository_url
85
- branch: branch_to_track
86
- tag: tag_to_stick_to # it is branch OR tag
87
- {coderay}
88
-
89
- Imported package sets are saved in the <tt>.remotes</tt> directory of the
90
- autoproj installation. The importers that are available for configuration are
91
- the same than the ones available for the packages themselves, so see [this
92
- page](package_sets/importers.html#all_importers) for the list of available importers.
93
-
94
- Listing the available packages.
95
- -----------------------------
96
- Once you have updated your manifest file to list all the package sets that you
97
- want to use, you can list all the packages that are now available with
98
-
99
- autoproj list-sets
100
- {: .commandline}
101
-
102
- Its output looks like this:
103
-
104
- <pre>
105
- rubim.orocos
106
- local source in /home/doudou/dfki/imoby1.9/autoproj/orocos
107
- packages:
108
- | orocos/base | git:/home/doudou/dfki/dfki-share/projects/all/Intelligent_Mobility/development/software/git/tools/orocos/base.git |
109
- | orocos/logger | git:/home/doudou/dfki/dfki-share/projects/all/Intelligent_Mobility/development/software/git/tools/orocos/logger.git branch=fast_log |
110
- | orocos/ocl | git:/home/doudou/dfki/dfki-share/projects/all/Intelligent_Mobility/development/software/git/tools/orocos/ocl.git branch=rubim |
111
- </pre>
112
-
113
- The first line is the **package set name**. It is defined in the package set's
114
- source.yml file and *does not have to be identical to the set's directory
115
- name*. In the example above, the package set is saved in autoproj/orocos but is
116
- called dfki.orocos.
117
-
118
- The second line tells you where this set comes from. It is local if it comes
119
- along with the main autoproj configuration (manifest and so on). It is remote
120
- if it is imported from a version control system.
121
-
122
- Finally comes the list of packages that are defined in this set, along with the
123
- importer setup (URL and options, as for instance branches for orocos/logger
124
- above).
125
-
126
- Picking the packages to build
127
- -----------------------------
128
- If you do not wish to build all the packages that are available (you rarely
129
- wish that), you have to list the desired packages in your manifest file.
130
-
131
- To do so, you will have to create a <tt>layout</tt> section and list the
132
- desired packages:
133
-
134
- {coderay:: yaml}
135
- layout:
136
- - rubim.base
137
- - orocos/rtt
138
- - orocos/logger
139
- {coderay}
140
-
141
- This layout can either list packages one by one, but complete package sets can
142
- also be selected (the rubim.base above)
143
-
144
- More advanced mechanisms are available to customize this list. These mechanisms
145
- are [detailed here](customization.html)
146
-