Каков правильный этикет для выпуска полного переписывания существующего проекта?

12

Я новичок в мире с открытым исходным кодом. Проект, над которым я работаю, находится на Github. (Просто для справки) Проект, над которым я работаю, является плагином для Plex Media Server. Я планирую отправить свой плагин в Plex, чтобы он был включен в их "магазин приложений". Теперь на мой вопрос.

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

Теперь проект готов к выпуску. Однако я не уверен, как это сделать. Я вижу свои варианты следующим образом:

  1. Создайте новый репо и просто забудьте о существующем. Я не уверен, стоит ли мне упоминать предыдущий репо и / или его участников. Я не использовал этот код / ​​ресурсы и создал совершенно новую базу кода. В то время как плагин делает то же самое, что и старый, он делает это совершенно новым и более эффективным способом.

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

  3. Я фиксирую свои изменения в существующем репо и вижу, что говорят текущие участники.

Из трех вариантов я сильно склоняюсь к первому. НО! Я новичок в open source и хочу убедиться, что я делаю вещи в соответствии с надлежащим этиком. Я не хочу, чтобы мой первый проект взорвался мне в лицо и стал катастрофой. Второй вариант звучит не плохо, но я не уверен, что должен это делать. Я не уверен, как история и различия будут работать. Мы говорим только о 500 - 1000 строк кода. Так что это не огромная база кода.

Спасибо за любой вклад, который вы можете предоставить!

Мэтт Келлер
источник
10
Поскольку это весь новый код, я бы предпочел перейти к # 1, потому что история старого проекта действительно не имеет значения. Но было бы неплохо добавить что-то в README по принципу «Основано на идее из…».
Питер Роуэлл
2
@PeterRowell, пожалуйста, поместите этот комментарий в ответ, чтобы я мог его проголосовать!
MattDavey
@PeterRowell Спасибо за совет. Это отличная идея.
Мэтт Келлер
1
Для 2 нет необходимости удалять существующее хранилище. Что бы вы ни делали, я уверен, что оригинальный разработчик был бы признателен, если бы вы сказали ему, что разветвляете проект
Джеймс

Ответы:

13

Поскольку это весь новый код, я бы предпочел перейти к # 1, потому что история коммитов старого проекта действительно не имеет значения. Но было бы неплохо добавить что-то в README по принципу «Основано на идее из…».

Я большой поклонник признания того, откуда мы (или наши алгоритмы) пришли. Если вы посмотрите назад в туманы истории, то увидите, что мы все стоим на плечах тех, кто был раньше - всех нас. Например, я разработал и продал поисковую систему по подобию еще в 1980-х годах, и некоторым она показалась довольно радикальной (тогда Булен был Кингом). Но суть алгоритма, который я использовал, была основана на работе, начатой Джерардом Солтоном в Корнелле за 20 лет до меня.

Питер Роуэлл
источник