Following a discussion on the #pyramid IRC channel yesterday, I have decided to move pyramid_simpleform from formencode to colander for the following reasons:
1. Formencode is no longer being actively maintained. While mature, it is lacking in documentation and (straightforward) i18n support, and is quite difficult to learn. 2. Colander is already used by the deform form library. Deform has quite different aims from simpleform, and is intended for more “admin” style forms rather than consumer-facing “retail” forms where low-level control over workflow and rendering is needed. Using colander means that an application can use both deform and simpleform where either makes sense and reuse the same schemas. 3. The form tooling around Pyramid is badly fragmented right now. Form handling (validation, rendering, etc) is arguably the one of the most important benefits of a framework, and the situation now of half a dozen different (often half-baked or poorly documented) solutions is offputting to newcomers. 4. If colander becomes the defacto “standard” Pyramid validation engine we can get more people using it which will add impetus to its development (this in no way forces people who prefer other solutions but should provide an easier path for newcomers). 5. Colander is arguably better designed and better documented, and uses more modern Python patterns such as decorators. There are a few caveats: 1. People are already using pyramid_simpleform with FormEncode, either out of choice or in order to maintain backward compatibility when migrating Pylons projects. 2. Colander is somewhat lacking in common validators right now. While writing custom validators is easy, it really does need more out of the box solutions for common requirements such as URLs, file uploads, credit cards etc. Some of these may already be available in deform, in which case there is a good argument to move them over to colander. In view of the advantages and disadvantages, I’ve decided to add colander support to pyramid_simpleform, in the following manner: 1. The current FormEncode-based version will be supported but eventually deprecated. This will be available directly under the pyramid_simpleform package as now: from pyramid_simpleform import Form 2. The colander-based version will be available under a “form” module: from pyramid_simpleform.form import Form 3. The default FormRenderer will, as far as is practically possible, be compatible with both Form classes. -- You received this message because you are subscribed to the Google Groups "pylons-devel" group. To post to this group, send email to pylons-devel@googlegroups.com. To unsubscribe from this group, send email to pylons-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/pylons-devel?hl=en.