Differences between revisions 7 and 33 (spanning 26 versions)
Revision 7 as of 2008-01-16 05:20:10
Size: 2821
Editor: PhilipJenvey
Comment: updates/cleanup
Revision 33 as of 2009-03-02 00:30:08
Size: 1733
Editor: PhilipJenvey
Comment: update per Pylons 0.9.7 work
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Pylons (0.9.6.1) on Jython Requirements/TODO
============================================
Pylons on Jython
================
Line 6: Line 6:
Installing Pylons and its dependencies
--------------------------------------
**Status**: Jython is supported as of Pylons 0.9.7.
Line 9: Line 8:
  * distutils and setuptools **(Mostly finished, See** `SetuptoolsOnJython`_ **)** Pending Improvements
====================
Line 11: Line 11:
  * Ensure all dependencies' tests pass bdist_war: Need the ability to create .war files from a Pylons project, similar to what django-jython provides. pjenvey is working on this
Line 13: Line 13:
nose
----

Pylons projects require nose, but most packages (including Pylons) use nose as their own test runners.

requires:

  * the optparse module **(added in r4018)**

  * a fix for the cell variable (variables used in closures) bug here: http://pylonshq.com/pasties/667 **(fixed in r4038)**

  * compiler modules (compiler requires the parser module which Jython lacks). nose only needs the compiler module to use compiler.consts.CO_GENERATOR; until there's a parser, maybe jython could provide a broken compiler module that doesn't import parser

Routes
------
Pretty much all tests pass: though some tests require Paste's paste.fixture, which is troublesome to import


Paste, PasteDeploy and PasteScript
----------------------------------
requires:

  * modulefinder module

Mako
----

  * mako uses the compiler module to parse Python code into AST. The compiler module is mostly pure Python code, but its guts are really the native parser module (which Jython lacks)

Beaker
------

WebHelpers
----------

FormEncode
----------

simplejson
----------

  * `SetuptoolsOnJython`_ currently has trouble installing simplejson, because it attempts to compile its optional C extensions (that help performance). It expects to catch a distutils.errors.CCompilerError if the compilation fails, but Jython dies much earlier:

  File "/Users/pjenvey/src/java/jython-trunk/dist/Lib/distutils/command/build_ext.py", line 598, in get_ext_filename

  TypeError: cannot concatenate 'str' and 'NoneType' objects

decorator
---------

  * Note: decorators aren't currently supported in Jython, however the decorator module doesn't actually use decorators (works on CPython 2.3)

Later down the road
===================
Support more of the out of the box optional components, such as:
Line 72: Line 18:
  - The [http://www.sqlalchemy.org/trac/ticket/672 Dialect Refactor II] ticket will need to be implemented to properly support using SQLAlchemy via Jython's DBAPI jdbc driver, [http://jython.org/Project/userguide.html#database-connectivity-in-jython zxJDBC].
  - Frank Wierzbicki has done some preliminary work on using SQLAlchemy with Jython, info [http://groups.google.com/group/sqlalchemy/browse_frm/thread/d60db24fe1683a41/09320033f406d78b?hl=en&lnk=gst here], and is scheduled to give a talk at PyCon 2008: "Database development with Jython, SQLAlchemy, and Hibernate"
 * Frank Wierzbicki, Ariane Paoao and others have made some progress making SQLAlchemy work with MySQL via zxJDBC, but no support in SQLAlchemy proper yet.
Line 75: Line 20:
.. |svn| replace:: http://fisheye3.cenqua.com/changelog/jython/?cs=
.. _svn: http://fisheye3.cenqua.com/changelog/jython/?cs=
 * Jonathan Ellis made an Oracle backend for SQLAlchemy via zxJDBC: http://pylonshq.com/pasties/77c3184b14d6936d86d13e4e65df92d2 Some other zxJDBC dialects would likely follow this example

 * The `Dialect Refactor II <http://www.sqlalchemy.org/trac/ticket/672>`_ ticket will help properly support using SQLAlchemy via Jython's DBAPI jdbc driver, `zxJDBC <http://jython.org/Project/userguide.html#database-connectivity-in-jython>`_. Jason Kirtland has begun working on this.

Jinja2
------

Jinja2 `may work on Jython now <http://dev.pocoo.org/projects/jinja/ticket/320>`_. Its tests need to be converted to nosetests so the test suite can run on Jython to ensure this

Genshi
------
Jim Baker and Ariane Paola have played around with Genshi on Jython. Its use of pyexpat is the biggest roadblock. Jython now includes a pyexpat, but it's not fully compatible with CPython's (and doesn't support all the features Genshi uses).

Turbogears 2
------------

Ariane Paola made some progress porting TurboGears 2 components to Jython for Google's Summer of Code. Genshi and SQLAlchemy are the most important pieces that need porting

Older details: `PylonsOnJythonOld`_

Pylons on Jython

Status: Jython is supported as of Pylons 0.9.7.

Pending Improvements

bdist_war: Need the ability to create .war files from a Pylons project, similar to what django-jython provides. pjenvey is working on this

Support more of the out of the box optional components, such as:

SQLAlchemy

  • Frank Wierzbicki, Ariane Paoao and others have made some progress making SQLAlchemy work with MySQL via zxJDBC, but no support in SQLAlchemy proper yet.
  • Jonathan Ellis made an Oracle backend for SQLAlchemy via zxJDBC: http://pylonshq.com/pasties/77c3184b14d6936d86d13e4e65df92d2 Some other zxJDBC dialects would likely follow this example
  • The Dialect Refactor II ticket will help properly support using SQLAlchemy via Jython's DBAPI jdbc driver, zxJDBC. Jason Kirtland has begun working on this.

Jinja2

Jinja2 may work on Jython now. Its tests need to be converted to nosetests so the test suite can run on Jython to ensure this

Genshi

Jim Baker and Ariane Paola have played around with Genshi on Jython. Its use of pyexpat is the biggest roadblock. Jython now includes a pyexpat, but it's not fully compatible with CPython's (and doesn't support all the features Genshi uses).

Turbogears 2

Ariane Paola made some progress porting TurboGears 2 components to Jython for Google's Summer of Code. Genshi and SQLAlchemy are the most important pieces that need porting

Older details: PylonsOnJythonOld

PylonsOnJython (last edited 2009-09-14 22:04:24 by PhilipJenvey)