Skip to content

Commit

Permalink
Update documentation as preparation for master-20.06 release
Browse files Browse the repository at this point in the history
  • Loading branch information
2maz committed Sep 22, 2020
1 parent 9dd8a60 commit ab9a802
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 8 deletions.
72 changes: 66 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ Currently releases are named after the (dominating) branch name 'master' plus
the year and month in YY.mm format.
The table below implies that at least base/orogen/types are available for this platform.

| Distribution | [master-20.06 (beta)](doc/master-20.06.md) | master-20.01 | master-19.06 | master-18.09 | master-18.01 |
| Distribution | [master-20.06](doc/master-20.06.md) | master-20.01 | master-19.06 | master-18.09 | master-18.01 |
|---------------|--------------------|------------------|------------------|----------------------|-----------|
|Ubuntu 16.04 | |amd64 | amd64 | amd64 | amd64 |
|Ubuntu 18.04 | amd64 |amd64 | amd64 | amd64 ||
|Ubuntu 20.04 | | | | ||
|Debian Jessie | | | armel,armhf | ||
|Debian Stretch | | | amd64 | amd64 ||
|Debian Buster | |amd64,arm64 | amd64 | ||
|Debian Buster |amd64,arm64 |amd64,arm64 | amd64 | ||

Not all packages of rock-core and rock package sets could be built for all releases.
The details on which packages are available for each platform can be extracted
Expand All @@ -30,6 +30,41 @@ activation of the release. The file can be simply read as an autoproj osdeps fil


## How to use an Rock Debian package release

### PPA-Style usage (from master-20.06 onwards)

Add the package respository (verify URLs by information provided in
data/releases.yml):
```
wget -qO - http://rock.hb.dfki.de/rock-releases/rock-robotics.public.key | sudo apt-key add -
echo 'deb [arch=amd64 trusted=yes] http://rock.hb.dfki.de/rock-releases/master-20.06 bionic main' | sudo tee /etc/apt/sources.list.d/rock-master-20.06.list
sudo apt update
```

Now, you can either choose to install individual packages, such as base-types
with:
```
sudo apt install rock-master-20.06-base-types
```

or install all available Rock packages for your platform

```
sudo apt install rock-master-20.06-meta-full
```

To use the release, you will still have to update your
environmental settings, e.g., when using the full release this is straight
forward:

```
source /opt/rock/master-20.06/rock-master-20.06-meta-full/env.sh
```

Activation of individual packages is also possible, but currently somewhat
inconveniant see Section "Known Issues -> 2."

### As part of an Autoproj-based workspace
Either start with a fresh bootstrap:

```
Expand All @@ -45,14 +80,14 @@ If you want to use an already defined build configuration then replace the last
or remove the install folder in order to get rid of old packages.

If a release has been created with default settings all its Debian Packages
install their files into /opt/rock/release-name and now to activate debian
packages for your autoproj workspace:
install their files into /opt/rock/release-name.
To activate Debian packages for your autoproj workspace:

adapt the autoproj/manifest to contain only the packages in the layout that you require as source packages. However, the layout section should not be empty, e.g. to bootstrap all precompiled packages of the rock-core package set add:

```
layout:
- rock.core
layout:
- rock.core
```

Expand Down Expand Up @@ -169,6 +204,31 @@ master-20.06 starts to use yard generated documentation.

The error should not be encountered with 'master-18.09', where yard is also provided as Rock package. This is not the case for master-18.01.


2. For PPA-style usage (master-20.06 onwards):
if you only want to source an individual package you currently will have to generate your
own env.sh script, since the env.sh setup of a package does only cover the
package itself and not its dependencies. Hence to identify the env.sh file of
the dependencies, e.g., here for master-20.06 and base/types you can do the
following:

```
$>apt-cache depends rock-master-20.06-base-types | grep rock | grep Depends | cut -d' ' -f4 | xargs -I{} echo ". /opt/rock/master-20.06/{}/env.sh"
. /opt/rock/master-20.06/rock-master-20.06-base-cmake/env.sh
. /opt/rock/master-20.06/rock-master-20.06-base-logging/env.sh
. /opt/rock/master-20.06/rock-master-20.06-external-sisl/env.sh
. /opt/rock/master-20.06/rock-master-20.06-gui-vizkit3d/env.sh
. /opt/rock/master-20.06/rock-master-20.06-ruby-rice/env.sh
```

Also add the env.sh of you package to your custom setup.sh script:

```
. /opt/rock/master-20.06/rock-master-20.06-base-types/env.sh
```



## References and Publications
Please reference the following publication when referring to the
binary packaging of Rock:
Expand Down
7 changes: 6 additions & 1 deletion doc/master-20.06.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ The release named master-20.06 comes with the following major changes:
- separate package directories, e.g., base/types will be found in
/opt/rock/master-20.06/rock-master-20.06-base-types
- an env.sh per package, e.g., /opt/rock/master-20.06/rock-master-20.06-base-types/env.sh
- an env.yml per package, e.g., /opt/rock/master-20.06/rock-master-20.06-base-types/env.yml to allow easy processing of env information by autoproj (or other tools)
- a meta package for the full release: rock-master-20.06-meta-full
- yard documentation for all Ruby packages: just browse /opt/rock/master-20.06/share/doc/index.html

Expand All @@ -13,7 +14,7 @@ The release named master-20.06 comes with the following major changes:
### Package separation
Having separate package prefixes tries to mirror the effects of the Autoproj setting: Autoproj.config.separate_prefixes = true.
This might expose some inconsistencies in package setups and exposes wrong assumptions or missing dependency definition for including headers and linking directories.
For instance it breaks the assumption on a commonly shared installation folder, e.g., when multiple packages install into 'share' folder and expect it to be one location.
For instance it breaks the assumption on a commonly shared installation folder, e.g., when multiple packages install into 'share' folder and expect it to be the same location.

Hence, package maintainers should not rely on a shared folder, but base resource retrieval, e.g., on a customly set environment variable which adds the required search paths per package. Using pkg-config provides a further option.

Expand All @@ -27,4 +28,8 @@ sudo apt-get update > /dev/null
sudo apt install rock-master-20.06-meta-full
source /opt/rock/master-20.06/rock-master-20.06-meta-full/env.sh
# You might have to restart your omniorb for the following command,
# just follow the instructions of the error message if there is one
rock-display
```
2 changes: 1 addition & 1 deletion init.rb
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@
"This installation uses sudo and may ask for your password",
"You can do the installation yourself with:",
"echo 'deb [arch=#{debian_architecture} trusted=yes] #{release.repo_url}/#{release.name} #{current_release_name} main' | sudo tee /etc/apt/sources.list.d/rock-#{release.name}.list",
"sudo apt-get update > /dev/null",
"wget -qO - #{release.public_key} | sudo apt-key add -",
"sudo apt-get update > /dev/null",
"##########################################################",
"This installation uses sudo and may ask for your password",
"Install automatically?"]
Expand Down

0 comments on commit ab9a802

Please sign in to comment.