Playground in release-1.3 is broken with latest Enki
Created by: vaussard
I noticed a while ago that recent changes to Enki broke the release-1.3 branches, as needed patches only found their way to master. As a result, my build farm is unable to generate new releases. See below for the compilation trace. So this is not really a bug in itself, but more a dependency management problem. Several options are coming to my mind:
- Manage by hand the versions of dashel/enki for specific branches of Aseba. Do not expect me to do that with my build farm, it will become a nightmare.
- Cherry-pick the necessary patches from master, but this is not addressing the real problem. And we are loosing the rational behind a stable branch.
- Add dashel and enki as git submodules [1][2] or git subtrees [3][4]. This solution seems great, as we can link to specific versions. Another benefit is that we can checkout dashel and enki automatically when cloning Aseba (at least with subtree AFAIK). On the downside, with have to actively update aseba if we release a new version of dashel or enki, but there is no free beer. Also, for the people not comfortable with git, this may increase the adoption barrier, especially with submodules.
- Just treat release-1.3 as being dead, and focus solely on master to prepare the future release-1.4.
My preference would be 3. or 4.
[1] http://git-scm.com/book/en/Git-Tools-Submodules [2] http://blogs.atlassian.com/2013/03/git-submodules-workflows-tips/ [3] http://git-scm.com/book/ch6-7.html [4] http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/
[ 94%] Building CXX object targets/playground/CMakeFiles/asebaplayground.dir/playground.cpp.o
In file included from /home/florian/svn/enki/enki/robots/e-puck/EPuck.h:38:0,
from /home/florian/svn/aseba/targets/playground/playground.cpp:38:
/home/florian/svn/enki/enki/interactions/IRSensor.h: In member function ‘virtual void Enki::AsebaFeedableEPuck::controlStep(double)’:
/home/florian/svn/enki/enki/interactions/IRSensor.h:132:10: error: ‘double Enki::IRSensor::finalValue’ is protected
double finalValue;
^
/home/florian/svn/aseba/targets/playground/playground.cpp:259:60: error: within this context
variables.prox[0] = static_cast<sint16>(infraredSensor0.finalValue);
^
In file included from /home/florian/svn/enki/enki/robots/e-puck/EPuck.h:38:0,
from /home/florian/svn/aseba/targets/playground/playground.cpp:38:
/home/florian/svn/enki/enki/interactions/IRSensor.h:132:10: error: ‘double Enki::IRSensor::finalValue’ is protected
double finalValue;
^
/home/florian/svn/aseba/targets/playground/playground.cpp:260:60: error: within this context
variables.prox[1] = static_cast<sint16>(infraredSensor1.finalValue);
^
In file included from /home/florian/svn/enki/enki/robots/e-puck/EPuck.h:38:0,
from /home/florian/svn/aseba/targets/playground/playground.cpp:38:
/home/florian/svn/enki/enki/interactions/IRSensor.h:132:10: error: ‘double Enki::IRSensor::finalValue’ is protected
double finalValue;
^
/home/florian/svn/aseba/targets/playground/playground.cpp:261:60: error: within this context
variables.prox[2] = static_cast<sint16>(infraredSensor2.finalValue);
^
In file included from /home/florian/svn/enki/enki/robots/e-puck/EPuck.h:38:0,
from /home/florian/svn/aseba/targets/playground/playground.cpp:38:
/home/florian/svn/enki/enki/interactions/IRSensor.h:132:10: error: ‘double Enki::IRSensor::finalValue’ is protected
double finalValue;
^
/home/florian/svn/aseba/targets/playground/playground.cpp:262:60: error: within this context
variables.prox[3] = static_cast<sint16>(infraredSensor3.finalValue);
^
In file included from /home/florian/svn/enki/enki/robots/e-puck/EPuck.h:38:0,
from /home/florian/svn/aseba/targets/playground/playground.cpp:38:
/home/florian/svn/enki/enki/interactions/IRSensor.h:132:10: error: ‘double Enki::IRSensor::finalValue’ is protected
double finalValue;
^
/home/florian/svn/aseba/targets/playground/playground.cpp:263:60: error: within this context
variables.prox[4] = static_cast<sint16>(infraredSensor4.finalValue);
^
In file included from /home/florian/svn/enki/enki/robots/e-puck/EPuck.h:38:0,
from /home/florian/svn/aseba/targets/playground/playground.cpp:38:
/home/florian/svn/enki/enki/interactions/IRSensor.h:132:10: error: ‘double Enki::IRSensor::finalValue’ is protected
double finalValue;
^
/home/florian/svn/aseba/targets/playground/playground.cpp:264:60: error: within this context
variables.prox[5] = static_cast<sint16>(infraredSensor5.finalValue);
^
In file included from /home/florian/svn/enki/enki/robots/e-puck/EPuck.h:38:0,
from /home/florian/svn/aseba/targets/playground/playground.cpp:38:
/home/florian/svn/enki/enki/interactions/IRSensor.h:132:10: error: ‘double Enki::IRSensor::finalValue’ is protected
double finalValue;
^
/home/florian/svn/aseba/targets/playground/playground.cpp:265:60: error: within this context
variables.prox[6] = static_cast<sint16>(infraredSensor6.finalValue);
^
In file included from /home/florian/svn/enki/enki/robots/e-puck/EPuck.h:38:0,
from /home/florian/svn/aseba/targets/playground/playground.cpp:38:
/home/florian/svn/enki/enki/interactions/IRSensor.h:132:10: error: ‘double Enki::IRSensor::finalValue’ is protected
double finalValue;
^
/home/florian/svn/aseba/targets/playground/playground.cpp:266:60: error: within this context
variables.prox[7] = static_cast<sint16>(infraredSensor7.finalValue);
^
make[2]: *** [targets/playground/CMakeFiles/asebaplayground.dir/playground.cpp.o] Error 1
make[1]: *** [targets/playground/CMakeFiles/asebaplayground.dir/all] Error 2
make: *** [all] Error 2