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

Здесь можно обсудить сайт PlugRinG и предложить идеи по его дальнейшему развитию.
User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Post by Max Rusov » Wed 22 Jun, 2011 11:47

Latest post of the previous page:

John Doe wrote:1) Будет ли при установке плагина обязательным завершение фара? Если да, то будет ли оно принудительным, автоматическим?
Я думаю, если плагин поддерживает корректно выгрузку, то перезапуск FAR'а не обязателен. Вот FarNet, например, не поддерживает, его обновить не удастся. Либо предусмотреть в конфиге какой-то флажок и сделать 2 варианта обновления...

User avatar
HaRT
Moderator
Posts: 7985
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 98 times

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

Post by HaRT » Wed 22 Jun, 2011 12:07

John Doe wrote:Какой из уже изобретённых велосипедов предлагаете вы?
Я говорю даже не о конкретном техническом решении, а о самом процессе принятия технических решений. Прежде, чем изобретать очередной велосипед, неплохо бы посмотреть, нет ли подходящего уже изобретённого. Конечно, как говорится, “если вас интересует результат”.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Post by Max Rusov » Wed 22 Jun, 2011 12:19

HaRT
Ну, ты прямо как не маргинал...

Ariman
Posts: 1137
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 8 times
Been thanked: 23 times
Contact:

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

Post by Ariman » Thu 23 Jun, 2011 09:21

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

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

User avatar
qfox
Posts: 21
Joined: Mon 29 Jun, 2009 18:46
Location: Москва
Contact:

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

Post by qfox » Sun 26 Jun, 2011 01:17

Честно говоря, мужики, не стоит так распыляться на такое творчество)
Но. вытягивать одним архивом исходники, и версии для 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 » Sun 26 Jun, 2011 01:21

Max Rusov wrote:Либо предусмотреть в конфиге какой-то флажок и сделать 2 варианта обновления...
Виндоус установила обновления и требуется перезагрузка системы) угу). Плагин, поидее, не должен об этом знать. Фар должен уметь выгружать плагины в любой момент времени. И должен контролировать их работу, чтобы кривые плагины не роняли его, и не работали в одном потоке/процессе (теряюсь в терминах, сорри). Да и разработка упроститься. Упал плагин? А фару похер. Внес изменения, запустил макрос на сборку и перезагрузку своего плагина, подождал/покурил/поболтал/чем-там-разработчики-занимаются), протестил заного. Разве нет?)
bla-bla. bla.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Post by Max Rusov » Sun 26 Jun, 2011 09:53

qfox wrote:Фар должен уметь выгружать плагины в любой момент времени. И должен контролировать их работу, чтобы кривые плагины не роняли его, и не работали в одном потоке/процессе
Ни одно, ни другое в текущей архитектуре невозможно. Некоторые плагины принципиально не поддерживают выгрузку (FarNet, например). А выносить все плагины в отдельные процессы - вообще бред.

User avatar
John Doe
Бюрократ
Posts: 11078
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

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

Post by John Doe » Mon 20 Feb, 2012 16:16

Итак, появился-таки плагин-апдейтер Renewal.
Плагин научен эвристически определять версию и битность по имени файла. Это конечно хорошо, но мало.
Не пора ли действительно "стандартизировать" некий обязательный манифест, с прицелом на будущий плагринг?

User avatar
SUSim
Posts: 1471
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 3 times

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

Post by SUSim » Mon 27 Feb, 2012 17:34

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

Если автор плагина кроме рабтоспосбности должен обеспечивать и авто обновление, и это будет реализовываться не парой кликов/строк - то можно отпугнуть не только от публикации, но и от написания пагинов...
SimSU ··· ·· -- ··· ··-

User avatar
John Doe
Бюрократ
Posts: 11078
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

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

Post by John Doe » Mon 27 Feb, 2012 19:25

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

Манифест также полезен, чтобы однозназначно опознать файл как дистрибутива плагина.
А отсюда один шаг до автоматической установки плагина, с учётом битности, с проверкой на уникальность и т.д.
А далее и его автоматическое обновление.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Post by Max Rusov » Mon 27 Feb, 2012 20:44

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

Предлагаю от этого и плясать.

User avatar
John Doe
Бюрократ
Posts: 11078
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

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

Post by John Doe » Tue 28 Feb, 2012 08:53

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

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

Поэтому структура не может быть настолько простой.

2useven10
Posts: 2956
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 78 times

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

Post by 2useven10 » Tue 28 Feb, 2012 09:11

структура может простой и работающей, а может быть всеобъемлющей и нереализованной.

User avatar
John Doe
Бюрократ
Posts: 11078
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

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

Post by John Doe » Tue 28 Feb, 2012 09:20

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

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Post by Max Rusov » Tue 28 Feb, 2012 09:43

John Doe

Ну так предложите свой вариант, не стесняйтесь.

Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Contact:

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

Post by Kildor » Tue 28 Feb, 2012 09:46

я бы добавил сюда набор <custom-info name="">value</custom-info>
Либо вообще слегка-б переработал схему. Главное — оставить хмл.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru

User avatar
John Doe
Бюрократ
Posts: 11078
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 11 times
Been thanked: 64 times

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

Post by John Doe » Tue 28 Feb, 2012 10:46

Max Rusov wrote:Ну так предложите свой вариант, не стесняйтесь.
Само собой. Только продумать надобно.
Понятно, что манифест должен лежать в самом дистрибутиве, чтобы с его помощью можно было автоматизировать установку и обновление (а может и деинсталляцию).

Но в идеале манифест способен служить универсальным описателем плагина.
Например может присутствовать не только в самом дистрибутиве, но и на вебсайте плагина.
В этом случае конфигурация Renewal упрощается, т.к. для каждого "правильного" плагина настроить надо будет только 2 параметра: guid и url манифеста.

Для "неправильных" безманифестных плагинов можно будет по-прежнему использовать регэкспы, и задавать прочие параметры в конфиге Renewal.
Но конфиг Renewal вполне может соответствовать структуре того же самого манифеста (потому что зачем плодить сущности).

Развивая тему:

Update
А тем временем появился UpdateEx.

Post Reply

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

Who is online

Users browsing this forum: No registered users and 1 guest