Skip to content
New issue

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

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

Already on GitHub? # 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 notifications@github.com 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 notifications@github.com 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].

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

No branches or pull requests

7 participants