Автоматическое обновление установленных плагинов

Здесь можно обсудить сайт PlugRinG и предложить идеи по его дальнейшему развитию.
User avatar
HaRT
Moderator
Posts: 10820
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Автоматическое обновление установленных плагинов

Post by HaRT »

Latest post of the previous page:

Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Автоматическое обновление установленных плагинов

Post by John Doe »

Уж третья страница пошла, пора задать ключевой вопрос: Будет ли вообще реализовано это автоматическое обновление в рамках фара? Т.е. будет ли эта функциональность "из коробки"?
Или же как обычно (сторонними плагинами)?

Неизбежны и технические вопросы реализации:
1) Будет ли при установке плагина обязательным завершение фара? Если да, то будет ли оно принудительным, автоматическим?
2) Как обрабатывать ошибки при установке? Ведь в случае неудачи желательно откатиться к исходному состоянию.

HaRT
Какой из уже изобретённых велосипедов предлагаете вы?
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Автоматическое обновление установленных плагинов

Post by Max Rusov »

John Doe wrote:1) Будет ли при установке плагина обязательным завершение фара? Если да, то будет ли оно принудительным, автоматическим?
Я думаю, если плагин поддерживает корректно выгрузку, то перезапуск FAR'а не обязателен. Вот FarNet, например, не поддерживает, его обновить не удастся. Либо предусмотреть в конфиге какой-то флажок и сделать 2 варианта обновления...
User avatar
HaRT
Moderator
Posts: 10820
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: Автоматическое обновление установленных плагинов

Post by HaRT »

John Doe wrote:Какой из уже изобретённых велосипедов предлагаете вы?
Я говорю даже не о конкретном техническом решении, а о самом процессе принятия технических решений. Прежде, чем изобретать очередной велосипед, неплохо бы посмотреть, нет ли подходящего уже изобретённого. Конечно, как говорится, “если вас интересует результат”.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Автоматическое обновление установленных плагинов

Post by Max Rusov »

HaRT
Ну, ты прямо как не маргинал...
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Re: Автоматическое обновление установленных плагинов

Post by Ariman »

HaRT wrote:Прежде, чем изобретать очередной велосипед, неплохо бы посмотреть, нет ли подходящего уже изобретённого. Конечно, как говорится, “если вас интересует результат”.
А как же радость творчества? :ha:

Прежде чем взять что-то готовое, надо бы очертить набор желаемого функционала. В частности, например, путем виртуального изобретения велосипеда. А когда понятно уже что именно хочется иметь, то можно и поискать готовое решение. Ну и допилить его потом до готовности.
User avatar
qfox
Posts: 21
Joined: Mon 29 Jun, 2009 18:46
Location: Москва
Contact:

Re: Автоматическое обновление установленных плагинов

Post by qfox »

Честно говоря, мужики, не стоит так распыляться на такое творчество)
Но. вытягивать одним архивом исходники, и версии для x32/x64 не стоит. Фар может без проблем запросить сначала версию, потом нужный файл для его платформы. Плагин, в идеале, должен собираться из stable ветки репа, куда её положит автор. Не знаю на счет запар с этим делом. Под юниксами виндовый бинарник врядли соберется. Если только под wine)) или еще как. А держать репозиторий на винде - врядли хорошая идея.
Плагины в фаре загружаются автоматически из любых папок. Это уже реализовано и работает многие годы. Если менять структуру - люди, привыкшие за 5-10 лет к одному и родному получать некий резонанс, да и выигрыша тоже не вижу, поэтому - не стоит. Но. Если страшно, что будут плагины с одинаковыми именами - нет ничего проще, чем генерировать хеш при создании в репе плагина. См. гугл хром, например. Этот же хеш-ключ используется для обновлений.
Вся эта беда, в целом, работает очень просто. Для ключа (будь-то имя или хеш или тупо номер) создаются потоки (atom, rss, xml, ... что угодно. хоть plain text). При запросе к ним фар получает, например, версию и сравнивает её. Почему не сразу пачкой - потому что для этого нужен скрипт на сервере или какой-то сервис-демон. Почему не как-то попроще? Потому что это самый просто и быстрый способ. Отдавать пользователю уже заранее готовый контент, который, к тому же, запрашивается по 500 раз и лежит в кеше. Веб-сервер даже с диска читать не будет при отдаче уже второму. Ну а файлы заранее собираются и готовятся из stable ветки плагина (того, что зальет автор - как именно он будет заливать - вопрос десятый). Надеюсь, алгоритм ясен)

Но я бы, на месте разработчиков, пошарил бы сначала уже готовые решения) Можно и svn, конечно, использовать для бинарников, не исключаю, что для исходников будет удобно, но это отдельная история. кроме девелоперов оно врядли надо кому, да и svn клиент должен быть плагином поставлен. Но бинарники. Представьте как реп будет проседать, когда по 500 человек в понедельник на воскресное обновление наскочат. Об этом тоже надо думать. И если отдавать 2 бинарника + исходники каждый раз - будет беда. Вообще, она так и так будет, но не в таком масштабе.

И кстати. Чего далего ходить, когда есть DEB, RPM репозитории. Pecl, CPAN, и прочие, и прочие... Просто смотрим, какой больше нравиться и используем его упрощенную версию. Там, все таки, из-за зависимостей все сильно усложнено. Хотя, если плагины фара будут зависить друг от друга: скажем, теоретичский IDE плагин FarPHP требует FarColorer, при чем версия 1 требует 5, а версия 3 уже FarColorer 6, а еще этот плагин требует установленный php для своих каких-то нужд ;) — т.е. вообще не плагин, но эта зависимость тоже может быть описана и высказана пользователю после установки. Опять же, если не надо будет в плагине прописывать проверку такого рода зависимостей, а фар сам будет знать, то ему будет проще ими управлять. Может появиться реальный менеджмент плагинов. Ладно. Ни к чему это)
Last edited by qfox on Sun 26 Jun, 2011 01:24, edited 1 time in total.
bla-bla. bla.
User avatar
qfox
Posts: 21
Joined: Mon 29 Jun, 2009 18:46
Location: Москва
Contact:

Re: Автоматическое обновление установленных плагинов

Post by qfox »

Max Rusov wrote:Либо предусмотреть в конфиге какой-то флажок и сделать 2 варианта обновления...
Виндоус установила обновления и требуется перезагрузка системы) угу). Плагин, поидее, не должен об этом знать. Фар должен уметь выгружать плагины в любой момент времени. И должен контролировать их работу, чтобы кривые плагины не роняли его, и не работали в одном потоке/процессе (теряюсь в терминах, сорри). Да и разработка упроститься. Упал плагин? А фару похер. Внес изменения, запустил макрос на сборку и перезагрузку своего плагина, подождал/покурил/поболтал/чем-там-разработчики-занимаются), протестил заного. Разве нет?)
bla-bla. bla.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Автоматическое обновление установленных плагинов

Post by Max Rusov »

qfox wrote:Фар должен уметь выгружать плагины в любой момент времени. И должен контролировать их работу, чтобы кривые плагины не роняли его, и не работали в одном потоке/процессе
Ни одно, ни другое в текущей архитектуре невозможно. Некоторые плагины принципиально не поддерживают выгрузку (FarNet, например). А выносить все плагины в отдельные процессы - вообще бред.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Автоматическое обновление установленных плагинов

Post by John Doe »

Итак, появился-таки плагин-апдейтер Renewal.
Плагин научен эвристически определять версию и битность по имени файла. Это конечно хорошо, но мало.
Не пора ли действительно "стандартизировать" некий обязательный манифест, с прицелом на будущий плагринг?
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Автоматическое обновление установленных плагинов

Post by SUSim »

Под словом ОБЯЗАТЕЛЬНЫЙ манифест что подразумевается?
имя файла архива, спец файл описания, спец поля формы, и это только к плагрингу???

Если автор плагина кроме рабтоспосбности должен обеспечивать и авто обновление, и это будет реализовываться не парой кликов/строк - то можно отпугнуть не только от публикации, но и от написания пагинов...
SimSU ··· ·· -- ··· ··-
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Автоматическое обновление установленных плагинов

Post by John Doe »

Название/версия/битность/URL/... это действительно страшно, не каждому автору под силу такое...

Манифест также полезен, чтобы однозназначно опознать файл как дистрибутива плагина.
А отсюда один шаг до автоматической установки плагина, с учётом битности, с проверкой на уникальность и т.д.
А далее и его автоматическое обновление.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Автоматическое обновление установленных плагинов

Post by Max Rusov »

Ну так пока все щелкали, манифест, считай, уже придумали - см. Renewal.xml.

Предлагаю от этого и плясать.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Автоматическое обновление установленных плагинов

Post by John Doe »

Давайте попляшем. Вот что сейчас:
Видно, что конфиг сугубо утилитарен, ведь заточен строго на обновление.
Структура простая, теги короткие и в контексте задачи обновления вполне однозначные: url, regexp.
И это узкое место, потому что стоит чуть расширить задачу (а именно об этом мы и говорим), понадобятся новые теги, и все названия тут же потеряют одозначность.
Например url сейчас один, но люди уже просят ссылку на changelog. Плюс нужна ссылка на homepage, на форум.

Думаю никто не будет спорить что в манифесте должно быть место для названии плагина, текущей версии, авторах, контактах.
Плагин может не только обновляться, но и устанавливаться впервые, что может потребовать иных действий чем при обновлении.
Плагин может поддерживать динамическую выгрузку, а может и нет (тогда нужен рестарт).

Поэтому структура не может быть настолько простой.
2useven10
Posts: 5203
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Re: Автоматическое обновление установленных плагинов

Post by 2useven10 »

структура может простой и работающей, а может быть всеобъемлющей и нереализованной.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Автоматическое обновление установленных плагинов

Post by John Doe »

Согласен что лучше кривенько работать чем никак.
Но речь ведь не о ВСЕОБЪЕМЛЮЩЕЙ структуре, а о достаточно простом (но продуманном) манифесте.
Post Reply

Return to “Обсуждение PlugRinG”