2016-01-15 10 views
1

У нас мало проектов Zope & Plone в нашей компании, и до сегодняшнего дня я был всего лишь одним разработчиком, разрабатывающим все изменения через ZMI или ZopeEdit. Наша компания растет, поэтому мне нужно начать сотрудничество с другими разработчиками, которые могут помочь мне в разработке функций и решении ошибок в проектах. Это означает, что невозможно использовать ZMI, но каждый разработчик должен создавать и тестировать собственные изменения, не влияя на работу других, и вносить собственные изменения в среду производства, используя git merge в git repo.Разработка целого приложения Zope & Plone в git (децентрализованное и без ZMI)

Мне нужно переместить разработку в git - это означает, что мне нужно начать отслеживать все файлы и настройки порталов в git.

Мне кажется, мне нужно переместить целые проекты из ZODB/ZMI (включая шаблоны, скрипты, методы sql, свойства как portal_properties или portal_javascripts и т. Д.) В файловую систему и запустить git в этой файловой системе. На следующем шаге каждый разработчик может установить собственный чистый экземпляр Plone, вытащить исходный код и настройки из git, создать собственную ветвь, внести изменения, протестировать, зафиксировать, нажать, просмотреть код ...

Мой вопрос: Есть ли какие-либо способ сделать это и начать хорошо известный процесс быстрого развития с помощью git? Поддерживает ZODB что-то вроде «живой миграции» контента/настроек в/из файловой системы? Есть ли способ позвонить Zope для загрузки некоторой папки с содержимым/настройками из файловой системы, а только из ZODB?

Я знаю, что есть что-то, называемое яйцами, но возможно перемещать все типы файлов, упомянутых выше, в отдельное яйцо?

Благодарим за помощь.

ответ

0

Вы можете посмотреть http://docs.plone.org/develop/ Там вы можете найти, как создать пакет (яйцо). Его исходный код можно добавить в git. Вы можете проверить свой репозиторий git, используя mr.developer во время сборки. https://pypi.python.org/pypi/mr.developer/

+0

Я знаю яйца для разработки функций в python, но как я могу перемещать шаблоны, методы sql и разрешения от ZMI к яйцу? Например: у меня есть шаблон index_html в структуре папок/training/test/check/который использует метод sql в/sql/training_check. Как перенести эти файлы в яйцо и по-прежнему можно использовать методы sql в шаблоне и отображать шаблон при указании URL-адреса? –

3

То, как ваша компания следовала до сих пор, была «Путь к Старому пути» развития Plone, но это было устаревшим и обескураженным способом.

В настоящее время ZMI все еще может использоваться для «быстрых и грязных» исправлений, но обычно эти изменения, хранящиеся в БД, должны быть удалены (и перемещены в реальный код) как можно скорее. Это было возможно на Plone 2.0! Более важно: каждый новый релиз Plone имеет тенденцию уменьшать мощности ZMI (например: до Plone 2.1 вы смогли сделать лот вещей из ZMI, начиная с Plone 2.5 некоторых элементов интерфейса, где невозможно было изменить TTW).

Итак: ответ на ваш вопрос «да». Plone может (должен) читать код из файловой системы, и этот код можно сохранить в VCS (это может быть git svn, ...).

Все эти данные можно найти в Plone Developer Manual.

  • Создание нового пакета Plone для современного Plone? Используйте mr.bob.
  • Автоматическая интеграция VCS в вашей сборке? Использовать mr.developer

Если вы начинаете сегодня с проекта, где вы разрабатываете ZMI, вы должны, вероятно, изменить код режима от ZMI до файловой системы. Это можно сделать вручную; это проще, поскольку вы используете Zope External Editor.

Существует также очень старое дополнение (Plone Skin Dump) для очистки содержимого скина до файловой системы, но я боюсь, что он не будет работать на недавнем Plone, поэтому он не поддерживал некоторые вещи, такие как SQL-методы (если вы используете их).

+0

Что является самым простым и предлагаемым способом для ручной миграции содержимого изнутри ZODB (шаблоны страниц с деревом, методы SQL, скрипты py - все связанное вместе)? Мы бы хотели избежать регистрации большого количества просмотров. Лучше всего было бы сохранить структуру контента, иначе потребуются большие изменения кода. –

+0

Попробуйте Plone Skin Dump, о котором я упоминал выше. –

0

Вы можете использовать mr.bob для создания PloneAddon. Для MySQL вы можете использовать MySQL Python. Добавьте этот пакет в свою структуру в разделе яйца. Затем вы можете написать свои собственные заявления MySQL в аддоне. Я знаю, что переоценка стоит дорого, но в будущем у вас будет больше контроля.