понедельник, 25 марта 2013 г.

Документация South - Перевод. Часть 4: Пользовательские поля

В South 0.7 появилось радикальное отличие от предыдущих версий. До сих пор, если у Вас было пользовательское поле, South пытался использовать очень сильное колдунство для того, чтобы определить, как "замораживать" это поле,так что оно могло быть отклонено в миграции (и это было не очень красивое колдунство - комбинация регулярных выражений и модуля parser).
Хотя это, как ни странно, работало хорошо у большинства пользователей, тем не менее в некоторых случаях что-то шло не так, и Вы даже не знали об этом, пока не проходило несколько недель... В целях большей вменяемости и меньшей магии теперь Вы должны указать South как замораживать ваши пользовательские поля.
Не волнуйтесь, это достаточно просто и Вам надо сделать это лишь раз для каждого поля.

понедельник, 11 марта 2013 г.

MoinMoin2. Документация. Индексы

Общая информация

MoinMoin полагается на индексы, которые ускоряют доступ к  метаданным элемента и данным; кроме того, он позволяет иметь более простые бэкэенды, так как самую тяжёлую работу делает слой индекса.
Внутри индексы используются для многих операций, таких как поиск элемента, история, итерирование по элементам, поиск, интерактивный поиск и т.д.
MoinMoin не сможет стартовать с повреждённым, недоступным или несуществующим индексом. Поэтому Вы должны сперва настроить и корректно инициализировать индексы.
moin автоматически обновляет индексы при создании, обновлении, удалении, разрушении или переименовании элементов посредством api хранилища moin, слоя индесов или выше.

воскресенье, 10 марта 2013 г.

MoinMoin2. Документация. Резервное копирование и восстановление.

Полная резервная копия / восстановление

Лучший способ избежать полной потери данных - иметь полную резервную копию на вашей машине. С этой резервной копией Вы можете легко вернуть вашу машину в рабочее состояние.
Процедура ниже описывает как провести и выборочное резервное копирование файлов вашей установки MoinMoin. Поскольку нет нужды обслуживать и полное и частичное резервное копирование, иметь одну из них строго рекомендуется.

Частичное резервное копирование

Если Вы хотите сделать резервную копию MoinMoin и ваших данных, тогда сделайте резервную копию следующего:
  • ваши данные
  • конфигурация moin, то есть wikiconfig.py
  • конфигурация логирования, то есть logging.conf
  • скрипт moin, то есть moin.wsgi
  • конфигурация веб-сервера, то есть конфигурация виртуального хоста apache
  • по желанию: код moin и зависимости; как минимум Вам нужно знать версию moin, c которой Вы работаете, чтобы Вы смогли её установить.
Для того, чтобы создать дамп всех данных, сохранённых в moinmoin (элементы вики, профили пользователей), запустите следующую команду:
moin save --all-backends --file backup.moin
Пожалуйста, обратите внимание,что этот файл содержит чувствительные данные, такие как профили пользователей, содержимое вики, так что храните его в безопасном месте, куда неавторизованные пользователи не смогут получить доступ.

Выборочное восстановление

Для того, чтобы восстановить всё ПО и конфигурационные файлы в их исходное место, сперва создайте пустую вики:
moin moin -s -i # -s создаёт новое хранилище
                # -i создаёт новый индекс
Для загрузки резервной копии в пустую вики выполните:
moin load --file backup.moin
Затем постройте индекс загруженных данных:
moin index-build

MoinMoin2. Документация. Введение в настройку MoinMoin

Типы конфигурационных файлов

Для изменения того, как moinmoin себя ведёт и выглядит, Вы можете настроить его, редактируя конфигурационные файлы:
  • Конфигурация движка Wiki
    • файл чаще всего называется wikiconfig.py, но может иметь и другое имя
    • в этом файле находятся классы конфига движка вики
    • он написан на Python
  • Конфигурация фреймворка
    • расположена в том же файле, что и конфигурация движка вики
    • содержит некоторые настройки в ВЕРХНЕМ РЕГИСТРЕ в конце файла. Это конфигурация фреймворка (Flask и его расширений)
    • он написан на Python
  • Конфигурация логирования
    • опциональна; если Вы не хотите настраивать логирование - будут использованы встроенные настройки
    • это отдельный файл, назвается чаще всего logging.conf
    • имеет .ini подобный формат файла

среда, 6 марта 2013 г.

MoinMoin2. Документация. Опции сервера

Встроенный веб-серер (для простого использования)

Moin поставляется с простым, встроенным веб-сервером, основанным на Werkzeug, удобным для разработки, отладки, персонального использования и для небольших групп.
Он не предназначен для обслуживания больших нагрузок, но его легко использовать.
Пожалуйста, обратите внимание, что встроенный сервер использует порт 8080. Так как он больше, чем 1024, Вам не требуется права администратора и потому мы крайне рекомендуем Вам использовать непревилигированный аккаунт. Если Вы используете его для вики на вашем ПК или разрабатываете moin, тогда Вы, скорее всего, используете нормальный аккаунт пользователя.

Запуск встроенного сервера

Для запуска встроенного веб-сервера используйте следующую команду:
# просто для отладки (один процесс и один поток)
moin
# требуется для некоторых браузеров, таких, как IE9 или Chrome в режиме
# инкогнито (попробуйте это в случае если браузер подвисает или сервер
# не отвечает)
moin moin --threaded
# или, если Вам нужен другой IP/порт
moin moin --config /path/to/wikiconfig.py --host 1.2.3.4 --port 7777
После того, как сервер запущен, Вы увидете вывод лога, например:
2011-03-06 23:35:11,445 INFO werkzeug:116 * Running on http://127.0.0.1:8080/
Откройте в браузере этот URL и ваша вики работает!

Остановка встроенного сервера

Для того, чтобы остановить сервер, либо используйте Ctrl-C, либо закройте окно терминала.

Внешний веб-сервер (для продвинутого использования)

Мы не хотим вдаваться в детали того, как использовать moin c внешним веб-сервером, так как все веб-сервера отличаются друг от друга и у каждого есть своя документация, так что обращайтесь туда. Кроме того, в общем, управление сервром требует достаточного опыта работы с ОС, правами доступа, обеспечением безопасности, серверным ПО и т.д.
Для того, чтобы использовать MoinMoin c другим веб-сервером, убедитесь, что сервер может общаться с moin, что можно сделать следующим кодом:

from MoinMoin.app import create_app
application = create_app('/path/to/config/wikiconfig.py')

MoinMoin - это приложение Flask, микрофреймворка для WSGI приложения, так что мы рекомендуем Вам почитать документацию по Flask.
Убедитесь, что Вы используете create_app(), как в примере выше, для создания приложения, так как Вы не можете импортировать приложение из MoinMoin.
Подробнее читайте дальше по ссылке http://flask.pocoo.org/docs/deploying
В случае, если Вы столкнётесь с проблемами при разворачивании main WSGI приложения, Вы можете попробовать начать с простого WSGI приложения. Смотрите docs/examples/deployment/test.wsgi.
Если и test.wsgi не работает, значит проблема не с moin, а либо с веб-сервером, либо с вашим методом развёртывания WSGI приложения.
Если тестовое приложение выдаёт что-то кроме Server Error 500, обратитесь к настройке приложения MoinMoin.
В противном случае смотрите логи ошибок вашего веб-сервера для решения проблем.

MoinMoin2. Документация. Загрузка и установка

Примечание, курсивом выделены вставки, сделанные мной на личном опыте

MoinMoin2 документация. Требования

MoinMoin требует Python >= 2.6 и < 3.0. Мы обычно тестируем работу на CPython и рекомендуем использовать его. Кроме того, можно попробовать PyPy >= 1.6

Сервера

Для moin можно использовать любой сервер, совместимый с WSGI:
  • встроенный сервер "moin" рекомендуется для однопользовательских wiki, тестирования, отладки, разработки и т.п.
  • Apache c mod_wsgi рекомендуется для больших/популярных вики
  • Другие WSGI совместимые сервера или middleware
  • Для cgi, fastcgi, ajp и т.д. можно использовать middleware flup
  • IIS со шлюзом ISAPI-WSGI тоже можно использовать

Зависимости

Зависимости перечислены в setup.py.
Если Вы используете easy_install, pip или наш скрипт quickinstall, тогда зависимости должны установиться автоматически.

Клиенты

На стороне клиента Вам нужны:
  • приличный веб-браузер, поддерживающий W3C стандарт HTML 5, CSS 2.1 и JavaScript:
    • Любая текущая версия Firefox, Chrome, Opera, Safari, IE (9/10) должны работать
    • Использование более старых версий IE не рекомендуется и не поддерживается
    • Для Windows 7/8 MS предоставляет IE 9/10
  • Java плагин для браузера (опционально, если Вы хотите использовать TWikiDraw или AnyWikiDraw для рисования аплетов)

Продвинутое руководство по логированию (Перевод)

Библиотека logging использует модульный подход и предлагает несколько категорий компонентов: loggers, handlers, filters, и formatters.
  • Logger представляет интерфейс, который использует непосредственно код приложения.
  • Handler посылает запись лога (созданную logger'ом) в соответствующее расположение.
  • Filter позволяет определить, какую запись лога выводить.
  • Formatter определяет расположение записи лога в итоговом выводе.