Poppy softwares upgrades

Short term problem:
I decided today to update the software in my robot (original install from poppy-install, today git pull in poppy-humanoid, pypot and poppy-creature). Result: it does not work anymore.
Thesolution seems simple, scipy is now a dependance, I will look how I can install it (pip ? apt-get ?).

Longer term problem:
How am I suppose to know when to upgrade? Is there a topic for software versions announcement, where I can find a bugfixes, new features and new dependencies ? What about the pip versions: when are they updated, to what github version do they correspond?
(I have no time right now, but a upgrade button in my web-app would really help non-geek users)

For the long term, I raised here also the problem:

For me a way could be to have a kind of mailing list in which we push critical info but we have no way to ensure people have subcribed

We could also add a http request when we start the robot which check the last version and suggest to upgrade it if needed but it quite ugly and require to have an internet access on the robot.

Hi,
Yes, scipy is now a dependency. Pip can use wheel (new python package format) to install packages. Scipy provide wheels for linux and OSX, but not for linuxā€¦ So pip try to compile scipy on your computer and it fail because you have probably not installed his Fortran dependencies.

sudo apt-get install libblas3gf libc6 libgcc1 libgfortran3 liblapack3gf libstdc++6 build-essential gfortran python-all-dev libatlas-base-dev

By the way, the readme advise users to use anaconda, it provides binaries for scientific packages like scipyā€¦

You can check the version on Pypiā€¦

As far as I know, no

On github pull requests and issues.

Pypi (where pip fetch sources) is updated when version is changed and when Pierre think to upload it.
Versions change follow the semver notation: MAJOR.MINOR.PATCH.

I made a quick and dirty home page for the web server on the odroid, and it is now possible to update the poppy-creature and pypot, start snap and poppy-monitor without having to type a command on the shell. It is usable for users of real poppy creatures, but no for people using V-REPā€¦

Well, at least a topic in that forum, where only you could post ā€œwe advise you to upgrade by doing thatā€ each time a significant improvement is done.

About scipy, is it really enormous ? I have been installing it (through pip) for 20 minutes nowā€¦

@Theo I didnā€™t see your answer and found the Fortran dependencies in the poppy_install package and I have ā€œRunning setup.py install for scipyā€ for 30 minutes now, I donā€™t know if itā€™s normal.
All in all, I canā€™t work for 1h30, I will think again next time I try to upgrade.

Edit: at the end, the install did finish and my code works again. FFiuh!

With @Pierre we work on a more ā€œuser friendlyā€ way to install Poppy and generate images. With this new method we should have an ā€œupdate availableā€ message on ssh header of poppy (like ubuntu). We also have command bash to update a robot, that should be something like :

$ poppy-tools update

The code is available on our repository but is completely in progress. You can look at it but please do not use it for now.

https://github.com/poppy-project/poppy-installer

1 Like

Why is this ugly? I think most of softwares run like this, including the admin panel of wordpress and discourse, no?

Yes but they are web applications so they interact with web content. In our
case, it is a python library for controlling robot, it is not the purpose
of this program to interact with the web. It should be the role of a higher
level apps (a web app) to check version of each dependenciy.

Having said that, for me it is just philosophically ugly but I am Ok with
doing it anyway. It is better to have a non-optimized solution rather than
let users alone while we are overthinkingā€¦

I am flashing a brand now image using poppy_install

At the end of installation (I get system install complete in the install_log), surprise ! Pypot is installed but not poppy_humanoid nor poppy_creaturesā€¦ Looking in the install script, I see a link toward https://raw.githubusercontent.com/pierre-rouanet/build-raspbian-image/master/delivery/poppy-installer where the repos are supposed to be installedā€¦

Any idea ?

About automatic upgrade, I vote for a button in the webapp, it avoids upgrading without authorization for advanced users and never upgrading for users using only the webapp.

lol, big thanks for that. Itā€™s a bug. The wrong script was called, so the scipy dependencies were not installed. I fix it. Because of github network issues I cannot create the pull request right know. And by the way the forum will be unusable until tomorrow morning because of electrical maintenance at INRIA Center.
EDIT: Itā€™s now merge on poppy_install

1 Like

Whatā€™s the state of poppy-installer right now ? Do you have an idea of when it will be ready ?

About poppy_install, I was able to run the new script, it seems to have gone OK, but now I see that pyserial is not installedā€¦
enum34 missing tooā€¦
Maybe the install script lacks at the end a call to

pip install --upgrade poppy-humanoid

Also, I have a notebooks directory in my home but it is empty, is it normal ?

edit: wait, I have no scipy eitherā€¦ I will check my install tomorrow

OK I do confirm that I had run the corrected install script. I re-run it today and it tells me success (and Iā€™m surprised itā€™s so quick). I still do not have scipy installed. In the install_log file, I find:

The following NEW packages will be installed:
  gfortran gfortran-4.8 libatlas-base-dev libatlas-dev libatlas3-base
  libblas-dev libblas3gf libgfortran-4.8-dev liblapack3gf libpython-all-dev
  python-all python-all-dev
The following packages will be upgraded:
  cpp-4.8 g++-4.8 gcc-4.8 gcc-4.8-base libasan0 libatomic1 libc-dev-bin libc6
  libc6-dbg libc6-dev libgcc-4.8-dev libgfortran3 libgomp1 libstdc++-4.8-dev
  libstdc++6
15 upgraded, 12 newly installed, 0 to remove and 334 not upgraded.
Need to get 35.7 MB of archives.
After this operation, 42.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] Abort.

Why does it abort ? This causes the scipy compilation to fail, of course.

Strangely, when I copied and pasted the apt-get line to install the missing libraries, it also aborted and when I re-run this line, it goes normally. Any idea ?

But still, the install scripts lacks a pip install for serial and enum34.

Shame on me, apt-get wait user input to install packages, to override that, we have to add a ā€˜-yā€™ argument. Itā€™s done, and should work. Thanks again.
Promise, soon weā€™ll have automatic scripts to tests this kind of bugā€¦
EDIT: itā€™s ā€œnormalā€ that the notebook directory is empty, itā€™s the working directory of the jupyter automatic started on your odroid. We could also fill it with existing notebooks as I do in our the poppy-torso.

Hi @Theo,

Do you think the poppy_install scripts would work for a raspberry Pi 2 ? I think so but I prefer to ask before breaking everythingā€¦

Yes, it has not be tested a lot, but it should work.

Well, my raspy is not booting any moreā€¦ maybe because of the resize. Keeping you posted.

Strange. Iā€™ve no time nor raspberry pi to invertigate. Iā€™ve updated the script to resize the mmc only if itā€™s a rapsberry pi, hoping it will fix it.

Iā€™m re trying with your new version (well, my version including your modification) and I could reboot. I confirm you everything went well at the end of installation.

Edit: Pfiou, got it ! Instead of resizing from your code, I use raspi-config. My install files: https://github.com/HumaRobotics/poppy_install/tree/raspi-light (very close to original poppy_install, but uses a pypot version without scipy)

In fact, Iā€™m still having problems for ipython notebooks. It seems that since version 4 (released august 2015), jupyter has to be installed separately: pip install jupyter
However, I have lots of dependency problems, I donā€™t understand why pip does not install them correctly. Iā€™m still on raspi, but the jupyter install may be needed on odroid