Commit 2bd78d85 authored by Arnaud Fontaine's avatar Arnaud Fontaine

ZODB Components: erp5_core_component bt5 was only used for the prototype.

A prototype of pure ZODB source code management for ERP5 (mostly required for Cloud deployments and 24/7 operation).
Migration idea:
Anything which looks like source code in ERP5 (HTML, py, etc.) should be serialized automatically with 2 forks (à la MacOS 6/7/8/9). One fork represents the source code (ex. Order.py) and another fork represents extra metadata which is managed by ZODB (ex. Order.xml).
ERP5 source code is thus moved (in the sens of git) from Products/ERP5/Document/Order.py to bt5/erp5_core_component/.../Order.py. No history is thus lost. It also leads to a quite simple structure since everything which was in Products is now moved to bt5 without any dependency problem.
In the end, only ERP5Type remains. Everything else in ERP5 can be hot updated with nice transactional feature.
First we have to start with Extensions and Documents (present in bt5). Then we should add all files present in Productrs/*/Document and Productrs/*/Tool. Then Mixins and Interfaces. At the end, Accessors. The core of ERP5.
The core of ERP5 will eventually move from ERP5Type to a python library. A wrapper product (ERP5Site) main remain though for compatibility with Zope 2.X.
How to develop in this environment:
- all coding, debuging and testing should be handled TTW with a good AJAX editor or with external editor. The ERP5 runtime is supposed to be located remotely on the Cloud, no longer on a laptop or local server
- users of kate, emacs, vi, etc. should remote mount ZODB to edit text files through WebDAV. FUSE/DAVS works well enough these days for this purpose
git integration
- this topic is still under discussion since ZODB plays here the role
Nexedi SA
\ No newline at end of file
erp5_core
\ No newline at end of file
ZODB based component system for ERP5.
\ No newline at end of file
GPL
\ No newline at end of file
Arnaud
jp
\ No newline at end of file
2
\ No newline at end of file
1
\ No newline at end of file
erp5_core_component
\ No newline at end of file
0.1
\ No newline at end of file
...@@ -7204,11 +7204,6 @@ class TestDocumentTemplateItem(BusinessTemplateMixin): ...@@ -7204,11 +7204,6 @@ class TestDocumentTemplateItem(BusinessTemplateMixin):
sequence_list.addSequenceString(sequence_string) sequence_list.addSequenceString(sequence_string)
sequence_list.play(self) sequence_list.play(self)
# Specific to ZODB Components *only*
def getBusinessTemplateList(self):
return (super(TestDocumentTemplateItem, self).getBusinessTemplateList() +
('erp5_core_component',))
component_module = DocumentComponent._getDynamicModuleNamespace() component_module = DocumentComponent._getDynamicModuleNamespace()
component_portal_type = DocumentComponent.portal_type component_portal_type = DocumentComponent.portal_type
......
...@@ -98,6 +98,8 @@ class ComponentDynamicPackage(ModuleType): ...@@ -98,6 +98,8 @@ class ComponentDynamicPackage(ModuleType):
component_tool = portal.portal_components component_tool = portal.portal_components
# When installing ERP5 site, erp5_core_components has not been installed # When installing ERP5 site, erp5_core_components has not been installed
# yet, thus this will obviously failed... # yet, thus this will obviously failed...
#
# XXX-arnau: Is this needed as it is now done in synchronizeDynamicModules?
except AttributeError: except AttributeError:
return {} return {}
......
...@@ -56,7 +56,7 @@ class TestNamingConvention(ERP5TypeTestCase): ...@@ -56,7 +56,7 @@ class TestNamingConvention(ERP5TypeTestCase):
'erp5_trade_proxy_field_legacy', 'erp5_trade_ui_test', 'erp5_ace_editor', 'erp5_trade_proxy_field_legacy', 'erp5_trade_ui_test', 'erp5_ace_editor',
'erp5_authentication_policy', 'erp5_bearer_token', 'erp5_bespin', 'erp5_authentication_policy', 'erp5_bearer_token', 'erp5_bespin',
'erp5_certificate_authority', 'erp5_code_mirror', 'erp5_computer_immobilisation', 'erp5_certificate_authority', 'erp5_code_mirror', 'erp5_computer_immobilisation',
'erp5_core_component', 'erp5_credential_oauth2', 'erp5_data_protection', 'erp5_data_set', 'erp5_credential_oauth2', 'erp5_data_protection', 'erp5_data_set',
'erp5_development_wizard', 'erp5_dhtml_style', 'erp5_direct_debit_payment', 'erp5_development_wizard', 'erp5_dhtml_style', 'erp5_direct_debit_payment',
'erp5_rss_style', 'erp5_discussion', 'erp5_tax_resource', 'erp5_discount_resource', 'erp5_rss_style', 'erp5_discussion', 'erp5_tax_resource', 'erp5_discount_resource',
'erp5_email_reader', 'erp5_external_account', 'erp5_forum_tutorial', 'erp5_email_reader', 'erp5_external_account', 'erp5_forum_tutorial',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment