Setting up developing environment for add-on which are already present

Hello everyone,

So I am trying to develop collective.easyform, so its an add-on already developed and present there but I need to develop it further So I create a new plone instance and did few changes to make a developing enviornment for collective.easyform, then I cloned collective.easyform into my src/ module and here are my develop.cfg files and buildout.cfg and I ran bin/buildout -c develop.cfg
Then I got the test script in my bin module and all going well but when I ran bin/test --all then it showed me an error like this '''ImportError: No module named robotframework.testing'''
I am not able to detect where I am missing as I have already added robotframework as egg under [robot]
any idea ?


The test executable is generated by the [test] part which is defined in your develop.cfg, in this part you should add ${buildout:test-packages} in your eggs= param, and in the [test-packages] section you should mention collective.easyform [robot] and not just collective.easyform (or maybe you need collective.easyform [robot,test], it depends on what you have in your, any extra deps related to test should be mentionned here).

Thanks also I have created this plone instance using unified installer so I don't have any file. So should I create the enviornment differently and why don't I get file through unified installer ?

I am talking about the you have in src/collective.easyform

Okay. I got it. Also in my test-packages when i write collective.easyform[test,robot] it is howing error like this ```An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
File "/home/prakhar/projects/easyform/lib/python2.7/site-packages/zc/buildout/", line 1992, in main
getattr(buildout, command)(args)
File "/home/prakhar/projects/easyform/lib/python2.7/site-packages/zc/buildout/", line 666, in install
installed_files = self[part]._call(recipe.install)
File "/home/prakhar/projects/easyform/lib/python2.7/site-packages/zc/buildout/", line 1407, in _call
return f()
File "/home/prakhar/projects/buildout-cache/eggs/zc.recipe.testrunner-1.2.1-py2.7.egg/zc/recipe/testrunner/", line 43, in install
eggs, ws = self.egg.working_set(('zope.testing <3.10.0', ))
File "/home/prakhar/projects/buildout-cache/eggs/zc.recipe.egg-1.3.2-py2.7.egg/zc/recipe/egg/", line 101, in working_set
File "/home/prakhar/projects/easyform/lib/python2.7/site-packages/zc/buildout/", line 848, in install
return installer.install(specs, working_set)
File "/home/prakhar/projects/easyform/lib/python2.7/site-packages/zc/buildout/", line 626, in install
for spec in specs]
File "/home/prakhar/projects/easyform/lib/python2.7/site-packages/pkg_resources/", line 2986, in parse
reqs = list(parse_requirements(s))
File "/home/prakhar/projects/easyform/lib/python2.7/site-packages/pkg_resources/", line 2930, in parse_requirements
"version spec")
File "/home/prakhar/projects/easyform/lib/python2.7/site-packages/pkg_resources/", line 2895, in scan_list
raise RequirementParseError(msg, line, "at", line[p:])
RequirementParseError: Expected version spec in plone.reload collective.easyform[test,robot] at collective.easyform[test,robot]

So I need to specify some version of collective.easyform ? And also what is the difference between collective.easyform and collective.easyform[robot,test] under test-packages ?

@ebrehault Thanks it worked :smiley:

The difference between collective.easyform and collective.easyform[something] is that in the first case, buildout will just install the dependencies listed in the install_requires section of your, and in the second case, it will install also the dependencies listed in the something entry from the extra_require section.

Please note that collective.easyform comes with a development and testing buildout.cfg already. So instead of configuring a separate development buildout that contains collective.easyform, you can also just checkout the package somewhere and run the buildout it contains. That way, your development environment is also identical with the Travis integration tests so it will be easier to debig and fix any errors reported by Travis.

I did the following steps.

  1. Clone the easyforms.
  2. Create a virtualenc
  3. Run -c buildout.cfg through virtualenv.
  4. Then run python install through virtualenv.

It is showing me error for version conflicts. Am I doing it the right way ? I have not got any test script under my bin folder.

Other way I did was create a new plone instance, In src module cloned the esyform. Add the eggs and modify the buildouts accoringly. It worked properly and I even got the test script under my bin folder.

But as you said that creating the whole package through easyform buildout will be a better way so I tried it and I am stuck in there so can you guide me for the same ?