Discussion:
[Rock-dev] Multiple projects - one Rock source folder?
Leif Christensen
2014-08-29 09:47:20 UTC
Permalink
Hi,

since I am working on multiple projects, all with their own buildconf, I
have several rock-folders containing often the same sources. This right
now accumulates to 48G on my system.

Is there an easy way to prevent this doubling of source trees? Manually
creating a "fusion"-buildconf seems not feasible.

Leif

P.S. I am not interested in prebuild packages, it's about the sources
--
Leif Christensen

DFKI Bremen
Robotics Innovation Center
Robert-Hooke-Stra?e 5
28359 Bremen, Germany

Phone: +49 (0)421 17845-4149
Fax: +49 (0)421 17845-4150
E-Mail: leif.christensen at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Stra?e 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/673/0060/3
-----------------------------------------------------------------------
Martin Fritsche
2014-08-29 12:22:50 UTC
Permalink
Post by Leif Christensen
Hi,
since I am working on multiple projects, all with their own buildconf, I
have several rock-folders containing often the same sources. This right
now accumulates to 48G on my system.
That's nothing! I've got 65G ;-)
Post by Leif Christensen
Is there an easy way to prevent this doubling of source trees? Manually
creating a "fusion"-buildconf seems not feasible.
Leif
P.S. I am not interested in prebuild packages, it's about the sources
--
Dipl.-Inf. Martin Fritsche
Unterwasserrobotik

DFKI Bremen
Robotics Innovation Center
Robert-Hooke-Stra?e 1
28359 Bremen, Germany

Phone: +49 (0)421 17845-4134
Zentrale: +49 421 17845-0
Fax: +49 (0)421 17845-4150 (Faxe bitte namentlich kennzeichnen)
E-Mail: martin.fritsche at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Stra?e 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/673/0060/3
-----------------------------------------------------------------------
Christian Clausen
2014-08-29 12:40:18 UTC
Permalink
Hi,

You can add all package_sets and components you need in the
manifest-file, from all projects. You don't need one bootstrap per
project.
You can use a plain rock-bootstrap as basement and add only components
you really need to the manifest.
Only "problem" are project-specific overrides... you might have
conflicts with these...

Christian

P.S. prebuild packages are not ready yet... but I'm working on
Post by Martin Fritsche
Post by Leif Christensen
Hi,
since I am working on multiple projects, all with their own
buildconf, I have several rock-folders containing often the same
sources. This right now accumulates to 48G on my system.
That's nothing! I've got 65G ;-)
Post by Leif Christensen
Is there an easy way to prevent this doubling of source trees?
Manually creating a "fusion"-buildconf seems not feasible.
Leif
P.S. I am not interested in prebuild packages, it's about the
sources
Steffen Planthaber
2014-08-29 13:04:01 UTC
Permalink
Hi,
Post by Leif Christensen
This right now accumulates to 48G on my system.
Following is not a direct solution, but often the log files are taking a
good amount of space on the device, you can possibly delete some logs

You can check log size with:
$> du -hs $(find ${AUTOPROJ_CURRENT_ROOT}/bundles -name logs)
Post by Leif Christensen
Is there an easy way to prevent this doubling of source trees? Manually
creating a "fusion"-buildconf seems not feasible.
I think this could be further discussed.

In ROS there there is the workspaces approach. Is it feasible to have a
single checkout of rock-core and set it from projects as environment
variable like "ROCK_CORE_ROOT". Without breaking functionality?


Best, Steffen
--
Steffen Planthaber
Weltraumrobotik

Besuchsadresse der Nebengesch?ftstelle:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Stra?e 5
28359 Bremen, Germany

Postadresse der Hauptgesch?ftsstelle Standort Bremen:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Stra?e 1
28359 Bremen, Germany

Tel.: +49 421 178 45-4125
Zentrale: +49 421 178 45-0
Fax: +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen)
E-Mail: Steffen.Planthaber at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Stra?e 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/673/0060/3
-----------------------------------------------------------------------
Matthias Goldhoorn
2014-08-29 13:13:10 UTC
Permalink
What does help is if you switch you prackages to release (not debug
which is default)

This dramatically decreses the binary output size.

You can do this by adding

<tags>needs_opt</tags> (level 1)

or

<tags>release</tags>

in you manifext.xml inside the packages.

Best,
Matthias
Post by Steffen Planthaber
Hi,
Post by Leif Christensen
This right now accumulates to 48G on my system.
Following is not a direct solution, but often the log files are taking a
good amount of space on the device, you can possibly delete some logs
$> du -hs $(find ${AUTOPROJ_CURRENT_ROOT}/bundles -name logs)
Post by Leif Christensen
Is there an easy way to prevent this doubling of source trees? Manually
creating a "fusion"-buildconf seems not feasible.
I think this could be further discussed.
In ROS there there is the workspaces approach. Is it feasible to have a
single checkout of rock-core and set it from projects as environment
variable like "ROCK_CORE_ROOT". Without breaking functionality?
Best, Steffen
--
--
Matthias Goldhoorn
Unterwasserrobotik

Standort Bremen:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Stra?e 5
28359 Bremen, Germany

Phone: +49 (0)421 218-64100
Fax: +49 (0)421 218-64150
E-Mail: robotik at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Stra?e 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/673/0060/3
-----------------------------------------------------------------------
Steffen Planthaber
2014-08-29 13:25:15 UTC
Permalink
Hi,
Post by Matthias Goldhoorn
What does help is if you switch you prackages to release (not debug
which is default)
This dramatically decreses the binary output size.
You can do this by adding
<tags>needs_opt</tags> (level 1)
or
<tags>release</tags>
Instead of doing this per package, you can also override the default in
your autoproj/overrides.rb

#build all as Release, if the build type is not already defined
Autobuild::Package.each do |name, pkg|
if pkg.kind_of?(Autobuild::CMake) and
!pkg.defines.has_key?('CMAKE_BUILD_TYPE')
pkg.define "CMAKE_BUILD_TYPE", "Release"
end

if pkg.kind_of?(Autobuild::Orogen)
pkg.define "CMAKE_BUILD_TYPE", "Release"
end
end


If you want to select it more carefully you can also define it for
selected packages or revert the changes made globally (see above)

Autobuild::Package['my_dev_package'].define "CMAKE_BUILD_TYPE", "Debug"


Additionally you may use a regexp to select folders like /mars\/*/,
/tools\/*/, or /external\/*/ to be build as release:


#build tools as Release
Autobuild::Package.each do |name, pkg|
if name =~ /tools\/*/ and pkg.kind_of?(Autobuild::CMake)
if pkg.kind_of?(Autobuild::CMake)
pkg.define "CMAKE_BUILD_TYPE", "Release"
end
#disable assertions
#pkg.define "CMAKE_CXX_FLAGS_INIT", "-DNDEBUG"
end
end


Best, Steffen
Post by Matthias Goldhoorn
in you manifext.xml inside the packages.
Best,
Matthias
Post by Steffen Planthaber
Hi,
Post by Leif Christensen
This right now accumulates to 48G on my system.
Following is not a direct solution, but often the log files are taking a
good amount of space on the device, you can possibly delete some logs
$> du -hs $(find ${AUTOPROJ_CURRENT_ROOT}/bundles -name logs)
Post by Leif Christensen
Is there an easy way to prevent this doubling of source trees? Manually
creating a "fusion"-buildconf seems not feasible.
I think this could be further discussed.
In ROS there there is the workspaces approach. Is it feasible to have a
single checkout of rock-core and set it from projects as environment
variable like "ROCK_CORE_ROOT". Without breaking functionality?
Best, Steffen
--
Steffen Planthaber
Weltraumrobotik

Besuchsadresse der Nebengesch?ftstelle:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Stra?e 5
28359 Bremen, Germany

Postadresse der Hauptgesch?ftsstelle Standort Bremen:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Stra?e 1
28359 Bremen, Germany

Tel.: +49 421 178 45-4125
Zentrale: +49 421 178 45-0
Fax: +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen)
E-Mail: Steffen.Planthaber at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Stra?e 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/673/0060/3
-----------------------------------------------------------------------
Leif Christensen
2014-08-29 13:30:20 UTC
Permalink
Post by Steffen Planthaber
In ROS there there is the workspaces approach. Is it feasible to have a
single checkout of rock-core and set it from projects as environment
variable like "ROCK_CORE_ROOT". Without breaking functionality?
That was my point. And I want this workspace functionality not only for
the rock core, but also for other packages like drivers, etc.
--
Leif Christensen

DFKI Bremen
Robotics Innovation Center
Robert-Hooke-Stra?e 5
28359 Bremen, Germany

Phone: +49 (0)421 17845-4149
Fax: +49 (0)421 17845-4150
E-Mail: leif.christensen at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Stra?e 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/673/0060/3
-----------------------------------------------------------------------
Sylvain Joyeux
2014-09-03 14:12:52 UTC
Permalink
There is functionality for that, simply not advertised as I had no
time to fix the last rough edges. In other words, it works (I've been
using it on and off), but still some unexpected errors / things
(especially when you start acd'ing into a parent workspace from a
child).

Build your parent rock project, then go in a new folder and do

autoproj bootstrap --reuse
/path/to/the/rock/root/that/should/be/reused git
$URL_TO_THIS_PROJECTS_BUILDCONF

I have to admit that I am not sure whether autoproj's current version
has all the fixes for this that I added recently, or if some of them
are still on master.

What led me to not push this functionality too much is see the amount
of fighting against the whole concept in ROS from ROS users at DFKI.
(i.e. looked good from the outside, was painful in practice),
especially when one starts to have a package in a root workspace that
should be patched in a child workspace. There is e.g. no way (yet ?)
to force re-building a package in a child when it exists in the parent
in autoproj.

Sylvain

On Fri, Aug 29, 2014 at 10:30 AM, Leif Christensen
Post by Leif Christensen
Post by Steffen Planthaber
In ROS there there is the workspaces approach. Is it feasible to have a
single checkout of rock-core and set it from projects as environment
variable like "ROCK_CORE_ROOT". Without breaking functionality?
That was my point. And I want this workspace functionality not only for
the rock core, but also for other packages like drivers, etc.
--
Leif Christensen
DFKI Bremen
Robotics Innovation Center
Robert-Hooke-Stra?e 5
28359 Bremen, Germany
Phone: +49 (0)421 17845-4149
Fax: +49 (0)421 17845-4150
E-Mail: leif.christensen at dfki.de
Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Stra?e 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/673/0060/3
-----------------------------------------------------------------------
_______________________________________________
Rock-dev mailing list
Rock-dev at dfki.de
http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
Loading...