Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Петровичу нужен новый хозяин? #7

Open
emejibka opened this issue Jul 28, 2015 · 29 comments
Open

Петровичу нужен новый хозяин? #7

emejibka opened this issue Jul 28, 2015 · 29 comments

Comments

@emejibka
Copy link
Contributor

No description provided.

@quozd
Copy link
Contributor

quozd commented Jul 28, 2015

Да, было бы очень круто. У меня к сожалению нет ни времени, ни желания этим заниматься, т.к. я уже совсем отказалсся от .NET.

Отдам репу в добрые руки :)

@emejibka
Copy link
Contributor Author

Отлично, я могу поддержать проект. Есть какие-нибудь требования к хранителю?

@quozd
Copy link
Contributor

quozd commented Jul 28, 2015

Кроме желания - никаких :) Дал тебе права на запись :) Спасибо

@mustiks
Copy link
Member

mustiks commented Jun 23, 2016

Проект совсем заброшен?

@quozd
Copy link
Contributor

quozd commented Jun 23, 2016

Да, есть желание развивать?

Sent from my iPhone

On Jun 23, 2016, at 2:47 PM, Alexander Sorokin [email protected] wrote:

Проект совсем заброшен?


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@mustiks
Copy link
Member

mustiks commented Jun 23, 2016

Да, т.к. буду использовать в нескольких проектах.

@quozd
Copy link
Contributor

quozd commented Jun 23, 2016

Вот жеж, я вышел из организации и теперь у меня нет прав.
cast @dustalov

@dustalov
Copy link
Member

@quozd, добавил.

@quozd
Copy link
Contributor

quozd commented Jun 23, 2016

@dustalov, добавь, пожалуйста в мемберы @mustiks

@dustalov
Copy link
Member

@mustiks, добро пожаловать!

@mustiks
Copy link
Member

mustiks commented Jun 23, 2016

@dustalov, Спасибо!

@mustiks
Copy link
Member

mustiks commented Jun 28, 2016

@quozd А как быть с Nuget? Хотелось бы там тоже обновлять версии.

@quozd
Copy link
Contributor

quozd commented Jun 28, 2016

По хорошему надо сделать аккаунт для петровича и запаблишить туда. Сейчас оно на моем личном аккаунте, оттуда надо удалить.

On Jun 28, 2016, at 9:17 PM, Alexander Sorokin [email protected] wrote:

@quozd А как быть с Nuget? Хотелось бы там тоже обновлять версии.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@mikhail-barg
Copy link
Contributor

Коллеги, добрый день! Я для производственных нужд сочинил альтернативный порт Петровича на C#: https://github.com/mikhail-barg/petrovich-net-lite
Отличия, которые были важны мне:

  • измененный (более простой на мой взгляд) API библиотеки;
  • поддержка правил Petrovich'а версии v1 (Обновление до версии 1.0 petrovich-ruby#48) включая определение пола через правила;
  • нет завязки на внешние библиотеки (вместо чтения из YAML, правила читаются из JSON велосипедным парсером).

Поскольку апи поменялось сильно, то пушить в текущий проект наверное смысла нет. Однако мне мое решение нравится, и хотелось бы его популяризировать ) Как вы смотрите на включение проекта в официальные?

@dustalov
Copy link
Member

Если @mikhail-barg готов поддерживать порт, то я согласен.

@mikhail-barg
Copy link
Contributor

Да, свой порт я, естественно, готов поддерживать.

@mikhail-barg
Copy link
Contributor

@dustalov Каким образом лучше это сделать? Форкнуть мой репозиторий в организацию (как например порты на php и c++) или создать новый репозиторий в организации и сделать PR в него?

@dustalov
Copy link
Member

Отмечу, что здесь очень неудобно следить за упоминаниями. Нам важно сохранить обратную совместимость портов в NuGet: https://www.nuget.org/packages/NPetrovich/.

Предлагаю следующий процесс:

  • @quozd и @mikhail-barg подтверждают, что согласны на передачу;
  • @quozd добавляет права @mikhail-barg в NuGet;
  • @mikhail-barg добавляет в свой код API обратной совместимости с пометкой [Obsolete];
  • @mikhail-barg отправляет свои коммиты в ветку 1.1 этого репозитория;
  • @mikhail-barg проверяет, что всё хорошо, заменяет этой веткой master и выпускает новую версию 1.1.0 пакета в NuGet.

@mikhail-barg
Copy link
Contributor

@dustalov я честно говоря не хотел бы ломать обратную совместимость, но и поддерживать текущее API NPetrovich мне не нравится. Я поэтому предлагаю завести альтернативный порт NPetrovichLite (или другое имя по выбору) .

Внедрять текущее АПИ в мой порт мне не хочется по тем же причинам, по которым я решил писать отдельный порт:

  • Текущее АПИ NPetrovich на мой взгляд вообще не отражает реальные use-case'ы. В моем АПИ весь функционал доступен через два метода, инстанс класса нужен для того, чтобы загрузить правила. В АПИ NPetrovich все выглядит куда более громоздким.
  • NPetrovich тянет за собой внешние зависимости для чтения YAML. Моя реализация самодостаточна, что важно для меня (я использую код в CLR-процедурах SQL-сервера, и лишние ассембли мне там ни к чему).

В виду того, что все вышесказанное скорее дело вкуса, я бы не хотел портить уже существующий NPetrovich своими переделками, но и нагружать свою реализацию весьма объемным и ненужным интерфейсом я бы не хотел. К тому же, чтобы сохранить полную обратную совместимость мне придется вводить поддержку YAML, что вроде тоже ни к чему.

Поэтому я и предлагаю завести второй официальный порт на C#. Надеюсь это не выглядит излишне нагло.

@dustalov
Copy link
Member

@mikhail-barg с другой стороны, я только что заметил, что за два года было всего пятьсот скачиваний. Я не против сломать обратную совместимость, если будет написана инструкция по обновлению.

@andrew-iv
Copy link
Contributor

Заинтересовался Петровичем.
Хочу присоединиться к вам.
Есть желание его довести его до соответствия ruby версии.
Создал пулл реквест #13 Для доработок по определению пола.
Также есть планы актуализации Js версии.

@dustalov
Copy link
Member

Насколько понимаю, основная трудность — релизы в NuGet. @quozd, возможно ли предоставить другим участникам права на библиотеку NPetrovich?

@mikhail-barg
Copy link
Contributor

Коллеги, привет.
Поскольку с нугетом, обновлениями и прочими изменениями так ничего и не решилось, на сколько я понимаю, я зарелизил свой лайтвейтный порт в NuGet: https://www.nuget.org/packages/NPetrovichLite/
Порт актуализирован до (практически) последней версии основного проекта, используются последние правила, ну и плюс на мой взгляд у него есть ряд преимуществ по сравнению с официальным NPetrovichNet (о них я писал чуть выше).

Кстати, я бы хотел в своем порте использовать официальную иконку. Есть ли у кого-то возражения по этому поводу?

@quozd
Copy link
Contributor

quozd commented Apr 8, 2017

btw, нугет был передан @andrew-iv пару месяцев назад.

@andrew-iv
Copy link
Contributor

andrew-iv commented Apr 9, 2017

В последнем релизе было добавлено увеличение производительности, определение пола по ФИО, обновлен словарь.

@dustalov
Copy link
Member

dustalov commented Apr 9, 2017

@mikhail-barg в своё время Андрей Бильжо разрешил использовать изображение Петровича для нашей библиотеки.

@andrew-iv, @quozd, @mikhail-barg было бы здорово оставить только один вариант библиотеки для избежания фрагментации.

@mikhail-barg
Copy link
Contributor

@dustalov

в своё время Андрей Бильжо разрешил использовать изображение Петровича для нашей библиотеки.

Да, я читал эти тикеты, но просто поскольку моя версия не официальная, то не совсем понятно, насколько это разрешение к ней относится. Надеюсь, что ни у кого проблем это не вызовет.

было бы здорово оставить только один вариант библиотеки для избежания фрагментации.

По этому поводу я свои мысли излагал выше в этой теме. Мне текущий интерфейс официального порта не нравится, но непонятно, на каких основаниях я мог бы навязать свое мнение другим разработчикам.

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

@ujifgc
Copy link
Member

ujifgc commented Apr 10, 2017

Обычно делают легаси-модуль с трансляцией вызовов, а потом его устаревают.

@dustalov
Copy link
Member

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

Насколько знаю, в C# есть поддержка устаревания: [Obsolete].

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants