Collective.hostout, functools and AttributeError

When I use collective.hostout in my buildout it pulls in functools as a dependency. This seems to conflict with the builtin functools. In fact the bin/hostout command does not work at all.

Running bin/hostout gives the following output

Traceback (most recent call last):
  File "bin/hostout", line 16, in <module>
    import collective.hostout.hostout
  File "/home/me/plone/buildout-cache/eggs/collective.hostout-0.9.4-py2.7.egg/collective/", line 1, in <module>
  File "/home/me/plone/buildout-cache/eggs/setuptools-24.3.0-py2.7.egg/pkg_resources/", line 29, in <module>
    import functools
  File "/home/me/plone/buildout-cache/eggs/functools-0.5-py2.7-linux-x86_64.egg/", line 72, in <module>
    globals()['c_%s' % x] = globals()[x] = getattr(_functools, x)
AttributeError: 'module' object has no attribute 'compose'

To solve the problem I actually remove the functools egg that was pulled in by buildout. Using a command like this:

rm -rf  /path/to/eggs/eggs/functools-*

ONLY after removing functools does the bin/hostout command work for me. I currently remove functools each time I run buildout!

You can try to use from onwards since they don't have functools anymore as a dependency.

Thanks @idgserpro
I had to pin collective.hostout to 1.0a5 (the latest release) and also remove fabric from my eggs and rebuild to get a compatible version of fabric.

collective.hostout = 1.0a5

I really need to make a release. The master has code to deal with issues caused by changes in setuptools version enforcement and the ability to deploy to docker or generate a dockerfile without checking out your git code in your container.
I suggest using master.

What are the blockers for the release?

A test suite :frowning: