Jean-Paul Smets
2005-07-02 10:41:15 UTC
Thanks for this work. I think we should move this to erp5-devel.
I will comment on each dependency. We will then need some work to clean this
up.
JPS.
in a folder. No way to change this.
implement a fallback class which returns self each time self.activate() is
called. I am not sure it is worth the effort though.
a wrapper class.
provided in Utils.py
was not ERP5Type dependent. Current circular dependency between CMFActivity
and ERP5Type is related to the fact that
- ERP5Type is used as a development framework for CMFActivity
- Base class of ERP5Type benefits from CMFActivity implementation of active
object (activate method)
the tree mode in ListBox widget. Defining within ERP5Form an interface for
trees is probably the way to go to break this dependency yet keep all the
features of ListBox. Refactoring is needed and has been done partly
already.
engine.
system. We could make it optional though.
Even w/o ALLOW_CLASS_TOOL (but then without Web interface).
the requirements (or maybe somehow split a package into smaller ones).
Thank you for your explanations. Now I'm trying to explore the new
possibilities and see if we can easily move to these ERP5* packages.
I think it will be possible to reduce the dependencies a lot.
JPS.
I will comment on each dependency. We will then need some work to clean this
up.
JPS.
Hello!
Sorry for a delay, I was busy building and playing w/ the packages ;-)
that. There might still be useless dependencies. If you can point them,
I can try to remove them.
Using our automatic python dependency tracker, I found the following
What is this tool ? Do you have a URL ?Sorry for a delay, I was busy building and playing w/ the packages ;-)
idea? Could it be efficiently used without the rest of ERP5 (I know
that it doesn't depend on it directly)? What are possible
problems and objections? Are there developer-level docs for it?
ERP5Type can be used without ERP5 (the product). It was designed forthat it doesn't depend on it directly)? What are possible
problems and objections? Are there developer-level docs for it?
that. There might still be useless dependencies. If you can point them,
I can try to remove them.
dependencies (beside standard python and Zope) [at least to provide a
python2.4(psyco)
This can be made an option.python2.4(psyco)
python2.4(Products.BTreeFolder2.BTreeFolder2)
python2.4(Products.BTreeFolder2.CMFBTreeFolder)
This is required because BTreeFolder2 are a must to a few 1,000,000 objectspython2.4(Products.BTreeFolder2.CMFBTreeFolder)
in a folder. No way to change this.
python2.4(Products.CMFActivity.ActiveObject)
This is a required for active programming. Could become an option if weimplement a fallback class which returns self each time self.activate() is
called. I am not sure it is worth the effort though.
<... a lot of CMFCore modules ...>
python2.4(Products.DCWorkflow)
python2.4(Products.DCWorkflow.DCWorkflow)
python2.4(Products.DCWorkflow.Expression)
python2.4(Products.DCWorkflow.Transitions)
Required if you need workflows. It could be turned as an option too by usingpython2.4(Products.DCWorkflow)
python2.4(Products.DCWorkflow.DCWorkflow)
python2.4(Products.DCWorkflow.Expression)
python2.4(Products.DCWorkflow.Transitions)
a wrapper class.
python2.4(Products.Localizer)
This dependency can be removed if alternate get_request implementation isprovided in Utils.py
python2.4(Products.CMFCore)
python2.4(Products.CMFCore.utils)
python2.4(Products.ERP5Type)
python2.4(Products.ERP5Type.Base)
python2.4(Products.ERP5Type.Document.Folder)
python2.4(Products.ERP5Type.Error)
python2.4(Products.ERP5Type.Utils)
I think no dependency can be removed. Initial implementation of CMFActivitypython2.4(Products.CMFCore.utils)
python2.4(Products.ERP5Type)
python2.4(Products.ERP5Type.Base)
python2.4(Products.ERP5Type.Document.Folder)
python2.4(Products.ERP5Type.Error)
python2.4(Products.ERP5Type.Utils)
was not ERP5Type dependent. Current circular dependency between CMFActivity
and ERP5Type is related to the fact that
- ERP5Type is used as a development framework for CMFActivity
- Base class of ERP5Type benefits from CMFActivity implementation of active
object (activate method)
python2.4(Products.CMFCategory.Category)
CMFCategory could become optional, but then, there would be no way to usethe tree mode in ListBox widget. Defining within ERP5Form an interface for
trees is probably the way to go to break this dependency yet keep all the
features of ListBox. Refactoring is needed and has been done partly
already.
<... various CMFCore modules ...>
CMFCore are requiredpython2.4(Products.CMFReportTool.RenderPDF.Parser)
python2.4(Products.CMFReportTool.ReportTool)
Could be made optional if you do not care of having a nice PDF reportpython2.4(Products.CMFReportTool.ReportTool)
engine.
python2.4(Products.ERP5.Document.Domain)
Could be made optional.python2.4(Products.ERP5Type)
python2.4(Products.ERP5Type.Document)
python2.4(Products.ERP5Type.Utils)
No way to remove this dependency.python2.4(Products.ERP5Type.Document)
python2.4(Products.ERP5Type.Utils)
<... various Formulator submodules ...>
python2.4(psyco)
Could be made optional.python2.4(psyco)
The most interesting part of the game is dependency on
python2.4(Products.ERP5.Document.Domain)
that is we have to install entire ERP5 in order to safely use ERP5Form.
This can be removed (through an option import).python2.4(Products.ERP5.Document.Domain)
that is we have to install entire ERP5 in order to safely use ERP5Form.
Also CMFReportTool appearently depends on various reportlab modules and
CMFReportTool is a wrapper for reportlab. It is a great PDF generationsystem. We could make it optional though.
has dependency python2.4(xml.sax.writer) which is actually a module from
PyXML.
Yes.PyXML.
I could provide the whole list of dependencies as well as rpm-build
plugin to count them.
Please provide this list (in erp5-devel).plugin to count them.
What ERP5Type provides is
- ability to define data schema and semantic constraints in python
without restarting zope (PropertySheet)
Even w/o ALLOW_CLASS_TOOL on the filesystem?- ability to define data schema and semantic constraints in python
without restarting zope (PropertySheet)
- ability to create new classes on the fly in python (without
restarting zope)
- ability to define menu actions (CMF)
- ability to define complex local role definition (ERP5Type)
- ability to specialise data schema on a per-portal type base (no need
to subclass for that)
- complete separation of data model (PropertySheet), object behaviour
(ERP5Type) and object presentation (ERP5Form)
- relations (if you have CMFCategory installed)
Fine!restarting zope)
- ability to define menu actions (CMF)
- ability to define complex local role definition (ERP5Type)
- ability to specialise data schema on a per-portal type base (no need
to subclass for that)
- complete separation of data model (PropertySheet), object behaviour
(ERP5Type) and object presentation (ERP5Form)
- relations (if you have CMFCategory installed)
Although it is not necessary. It is better to consider using ERP5Type
together with ERP5Catalog and ERP5Form.
- ERP5Catalog provides ability to query Zope objects in SQL, which is
afterall very useful
- ERP5Form provides extended Formulator with a very useful ListBox
widget and some other tools for PDF generation for example
And if you need high performance, CMFActivity is a must because it
distributes the load over nodes in a cluster. It is not required
though.
If you combine ERP5Type, ERP5Catalog and ERP5Form, you can develop new
applications which are completely unrelated to ERP5. One great aspect
of the combination of ERP5Type / ERP5Catalog / ERP5Form is that is has
been tested on ZEO clusters with millions of catalogued objects and
that all performance issues related to size and load are now solved.
If you want to try, my suggestion would be that you first create a mock
up of a mini application based on Kevin tutorial then remove one by
one products. I will be glad to change code in ERP5Type / ERP5Catalog
/ ERP5Form so that useless dependencies are removed.
Ok. Please look at the list above and tell if I can safely skip some oftogether with ERP5Catalog and ERP5Form.
- ERP5Catalog provides ability to query Zope objects in SQL, which is
afterall very useful
- ERP5Form provides extended Formulator with a very useful ListBox
widget and some other tools for PDF generation for example
And if you need high performance, CMFActivity is a must because it
distributes the load over nodes in a cluster. It is not required
though.
If you combine ERP5Type, ERP5Catalog and ERP5Form, you can develop new
applications which are completely unrelated to ERP5. One great aspect
of the combination of ERP5Type / ERP5Catalog / ERP5Form is that is has
been tested on ZEO clusters with millions of catalogued objects and
that all performance issues related to size and load are now solved.
If you want to try, my suggestion would be that you first create a mock
up of a mini application based on Kevin tutorial then remove one by
one products. I will be glad to change code in ERP5Type / ERP5Catalog
/ ERP5Form so that useless dependencies are removed.
the requirements (or maybe somehow split a package into smaller ones).
Thank you for your explanations. Now I'm trying to explore the new
possibilities and see if we can easily move to these ERP5* packages.
JPS.
Alexey Morozov.
_______________________________________________
Erp5-users mailing list
Erp5-users at erp5.org
http://erp5.org/mailman/listinfo/erp5-users
_______________________________________________
Erp5-users mailing list
Erp5-users at erp5.org
http://erp5.org/mailman/listinfo/erp5-users
--
Jean-Paul Smets-Solanes, Nexedi CEO - Tel. +33(0)6 62 05 76 14
Nexedi: Consulting and Development of Libre / Open Source Software
http://www.nexedi.com
ERP5: Libre/ Open Source ERP Software for small and medium companies
http://www.erp5.org
Rentalinux: Desktop Linux Server
http://www.rentalinux.com
Jean-Paul Smets-Solanes, Nexedi CEO - Tel. +33(0)6 62 05 76 14
Nexedi: Consulting and Development of Libre / Open Source Software
http://www.nexedi.com
ERP5: Libre/ Open Source ERP Software for small and medium companies
http://www.erp5.org
Rentalinux: Desktop Linux Server
http://www.rentalinux.com