nimrud / conex /

Filename Size Date modified Message
2.7 KB
556 B
2.5 KB
1.2 KB
245 B
92 B
17.6 KB
2.4 KB
1.7 KB
203 B
1.2 KB
-*- restructuredtext -*-

Nimrud's Conex

Nimrud aims to develop a set of reusable Zope 3 and Grok components for building content management-oriented applications. 

Nimrud's Conex is a sandbox for testing concepts related to the nimrud project. For example, code developed for conex should be later refactored into a types system and page composition system for nimrud projects, eventually to be turned into the Concave Content Management System. For more information, see the project-planning mindmaps at 

Specifically, this experiment is an attempt to build out 

* the types system, which is loosely based on Plone's Dexterity project; see src/conex/types/
* page composition, via z3c.paglet and zope.viewlet; see src/conex/page_parts/
* plugin registration and installation system

Code Standards

Conex code should

* be zope 3 code, not Grok or Plone or BFG code. This means we use ZCML to register function. Grokkers will come with Nimrud sub-projects.
* follow `PEP 8 <>`_; there will almost certainly be some style changes later, but for now just follow PEP 8, and if you see a PEP 8 violation, file a bug
* have 100% unit test coverage (with edge cases tested) and have accompanying doctests to document and confirm expected and common usage

It's fine to push failing tests for unwritten code. It's less fine to push code that's written but broken; if you have some compelling reason to do so, make a branch. If you prefer to code then test, that's fine too; just write your tests before you push, or keep your untested code on a clearly labeled branch (e.g., some_feature_NEEDS_TESTS).


The "official" Nimrud repository is at (or ssh:// if you prefer ssh). If the repository moves, this file will be updated to reflect that move.

To contribute, feel free to clone the code and submit patches, or to fork and submit a pull request. Note that to have your code merged, we'll need a Contirbutor's License Agreement (CLA) that licenses your code to Matt Bowen, which we don't yet have. But, if someone actually submits a patch, I'm sure we can work one up. If you're not comfortable signing a CLA, it'd be great to know why.

The code is currently licensed as GNU GPL 2. We'd like to move it to BSD or LGPL, but there's some research needed to see how much Plone code can be reused by non-GPL projects. Thus, the CLA is so that once that research is done, any code can be easily re-licensed under a more liberal license if possible.

For patches or questions, contact Matt at mrbowen+nimrud [at] gmail .DOT. com.