ZMI History tab

Hi! I believe I've installed the latest Zope 4.1.2. I followed the instructions with the final command:

bin/pip install Zope==4.1.2 -c https://zopefoundation.github.io/Zope/releases/4.1.2/constraints.txt

and the response begins:

Collecting Zope==4.1.2
  Using cached https://files.pythonhosted.org/packages/66/77/471673eebdcc904eaafaa4b97a01b97b8aa73aed84054248c5f258a00d92/Zope-4.1.2-py2.py3-none-any.whl

but I can't find the announced ZMI History tab.

In the Control Panel, I've got:
Zope Version (4.1, python 3.7.3, linux)
so I'm not 100% sure... do I need to enable History?

I never used the history tab, but from looking into my instance, it's here, see attached screenshot.

It is available per content type - maybe not for all?

I do not know whether there is a global one.

You may have a look at the pull request for detailed information.

That's weird.. so maybe I don't have 4.1.2 after all.

History is great for testing stuff and a lot faster than Undo in my experience.

testt

In my Control Panel you can read Zope Version (4.1.2, python 2.7.15, linux2)

So, obviously you are still on 4.1 - for reasons :slight_smile:

Unfortunately, right now I have no time to reproduce your problem (with your installation method) - maybe somebody else can jump in.

Hm... or do you have several instances on your machine? And you connect to the wrong one?

Really, I installed "by the book" but it's so easy to do now with droplets.. I'll just destroy and start over. I'll report back.

All is OK now with my shiny Zope 4.1.2.

Basic mistake: Wishing to use plone.recipe.zope2instance I copied the minimal buildout.cfg from the instructions that referenced 4.1 not 4.1.2

Then my buildout install got stuck at:
Getting distribution for 'zope.container==4.2.2'.
So I reverted to installing Zope with pip and the wrong things happened.

This time, when buildout failed at zope.container, I installed zope.container using pip install zope.container and the buildout install was able to complete.

So, I found a couple of minutes and tried to reproduce your problem.

I noticed two things:

Cool, thanks. Since buildout is recommended, I tried again. But I guess the zope2instance recipe has a flaw?

I also tried the buildout way with plone.recipe.zope2instance and it worked out well - I changed the Zope version to 4.1.2.

python3.7 -m venv zope
cd zope/
bin/pip install -U pip zc.buildout
vim buildout.cfg  # with the content from the installation documentation / section plone.recipe.zope2instance
bin/buildout

I used this one
https://zope.readthedocs.io/en/latest/INSTALL.html#using-plone-recipe-zope2instance
except I updated the version

I did the same (except that I have python3.6) but I got the error below. I ran bin/buildout a second time because sometimes that works :wink: After I installed zope.container separately it worked. Why?

Getting distribution for 'zope.container==4.2.2'.
unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
An error occurred when trying to install /tmp/tmp7_j75m0qget_dist/zope.container-4.2.2.tar.gz. Look above this message for any errors that were output by easy_install.
While:
  Installing.
  Getting section zopeinstance.
  Initializing section zopeinstance.
  Installing recipe plone.recipe.zope2instance.
  Getting distribution for 'zope.container==4.2.2'.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/buildout.py", line 2174, in main
    getattr(buildout, command)(args)
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/buildout.py", line 701, in install
    [self[part]['recipe'] for part in install_parts]
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/buildout.py", line 701, in <listcomp>
    [self[part]['recipe'] for part in install_parts]
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/buildout.py", line 1324, in __getitem__
    options._initialize()
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/buildout.py", line 1432, in _initialize
    self.initialize()
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/buildout.py", line 1438, in initialize
    recipe_class = _install_and_load(reqs, 'zc.buildout', entry, buildout)
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/buildout.py", line 1388, in _install_and_load
    allow_hosts=buildout._allow_hosts
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/easy_install.py", line 957, in install
    return installer.install(specs, working_set)
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/easy_install.py", line 730, in install
    for dist in self._get_dist(req, ws):
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/easy_install.py", line 574, in _get_dist
    dists = [_move_to_eggs_dir_and_compile(dist, self._dest)]
  File "/root/Zope-4.1.2/zope/lib/python3.6/site-packages/zc/buildout/easy_install.py", line 1745, in _move_to_eggs_dir_and_compile
    [tmp_loc] = glob.glob(os.path.join(tmp_dest, '*'))
ValueError: not enough values to unpack (expected 1, got 0)

Please post the content of your buildout.cfg - thank you!

[buildout]
extends =
    https://zopefoundation.github.io/Zope/releases/4.1.2/versions-prod.cfg
parts =
    zopeinstance

[zopeinstance]
recipe = plone.recipe.zope2instance
eggs =
    Products.TemporaryFolder
user = user:password
http-address = 8080

Works for me without a problem - also on Python 3.6 :frowning:

Maybe maybe maybe... buildout tried to compile zope.container and failed because you lack the gcc compiler? And pip installs the already compiled wheel?

But this is just guess work - somebody else has to take a look at this.

At the top of the official installation instruction you can read that you need both a compiler and the python dev package.
https://zope.readthedocs.io/en/latest/INSTALL.html#prerequisites

I think you're right - the error says I am missing gcc. And as you suggest, installing zope.container seems to take care of that. Thanks, @jugmac00, I was working a bit too fast...

I am glad it worked out and we found the problem!

Try to meet the prerequisites - otherwise with the next buildout run maybe it will brake again - well, at least when there is a new zope.container version or similar.

totally agree! And I just feel like saying thank you to all who have made Zope 4 possible so Zope could live on into the future!

2 Likes

So I am new to buildout. After I got my Zope 4.1.2 installed and running, today I needed to add a VirtualHostMonster.

The errors I got are those described in issue #708, fixed in #709.

I see that the code here reflects those changes (made on 13 Oct) but running my buildout.cfg

[buildout]
extends =
    https://zopefoundation.github.io/Zope/releases/4.1.2/versions-prod.cfg
parts =
    zopeinstance

[zopeinstance]
recipe = plone.recipe.zope2instance
eggs =
    Products.TemporaryFolder
    Products.ZCatalog
    Products.ExternalMethod
    Products.PythonScripts

user = user:pass
http-address = 8080

on 25 Nov didn't pick up the changed SiteAccess product.

Why not?

Hi Ken!

As a side note.. please open a new issue whenever you have new, unrelated problems. Makes it easier for all of us.

Ok. Thank you very much for your upfront work .. ie you have already found the issue numbers.

When I have a look at Zope's changelog ( https://pypi.org/project/Zope/#id163 ) for version 4.1.3 I see, that only #708 is fixed but not #709.

When I have a look at your buildout config, I see that you still use Zope 4.1.2 - this means both errors are still present there.

If you upgrade to Zope 4.1.3, at least one error will be gone.

You can upgrade by just replacing the number in your buildout config. Then run the buildout command again.

As now christmas is coming, I do not think anybody will make a new release these days.

You could create a issue at https://github.com/zopefoundation/Zope/issues and nicely ask to make a release 4.1.4 including the fixes from #709

As all Zope maintainers are volunteers, please do not expect the release to happen immediately.

Best,
Jürgen

Thanks Jürgen. I included this new issue as a postscript to my buildout install adventure of a month ago.

So, 4.1.3 hadn't yet been released and the fixes, which were already made in October were not automatically picked up by buildout. Got it.

I just checked the source of 4.1.3 and VirtualHostMonster.py does incorporate both changes. Those are important changes - VHM is something cool. All is well.

Cheers!

So, 4.1.3 hadn't yet been released and the fixes, which were already made in October were not automatically picked up by buildout. Got it.

One of the reasons to use buildout is especially that the versions get pinned and do not change unintentionally.

Image you do an buildout locally, develop for two weeks and all works well. Then you deploy it on a server - and meanwhile a new release of Zope was made - then on your production server something different gets deployed compared to what you developed on (and maybe is broken).

I just checked the source of 4.1.3 and VirtualHostMonster.py does incorporate both changes. Those are important changes - VHM is something cool. All is well.

Sorry, I mixed pull request and issue number :frowning: