Qual é a etiqueta adequada para liberar uma reescrita completa de um projeto existente?


12

Eu sou novo no mundo de código aberto. O projeto em que estou trabalhando reside no Github. (Apenas para referência) O projeto no qual estou trabalhando é um plug-in para o Plex Media Server. Pretendo enviar meu plug-in para o Plex, para que ele seja incluído em sua "loja de aplicativos". Agora a minha pergunta.

Quando eu comecei, encontrei um plugin semi-abandonado mais antigo que fazia parte do que eu queria, mas não muito bem. Comecei contribuindo para esse repo. Fui imediatamente nomeado colaborador com todos os direitos sobre o repo, pois o atual proprietário disse que estava ocupado demais para mexer mais com ele. No entanto, quando comecei a aprofundar o código, percebi que era inútil. A base de código existente era terrível e não havia uma maneira eficiente de corrigi-la. Acabei começando do zero. O único código que usei no meu novo plug-in foi o código que comprometi inicialmente.

Agora o projeto está pronto para ser lançado. No entanto, não tenho certeza de como proceder para fazer isso. Vejo minhas opções da seguinte maneira:

  1. Crie um novo repositório e esqueça o existente. Não tenho certeza se devo mencionar o repo anterior e / ou seus colaboradores. Não usei nenhum desses códigos / recursos e criei uma base de código totalmente nova. Enquanto o plug-in faz as mesmas coisas que o antigo, ele o faz de uma maneira totalmente nova e mais eficiente.

  2. Bifurco o repositório existente, excluo o código existente e comprometo meu novo código. Eu sou realmente novo no Git, então não tenho certeza se isso é possível.

  3. Comprometo minhas alterações no repositório existente e vejo como os colaboradores atuais têm a dizer.

Das três opções, estou fortemente inclinado para a primeira. MAS! Eu sou novo em código aberto e quero ter certeza de que estou fazendo as coisas de acordo com a etiqueta adequada. Não quero que meu primeiro projeto exploda na minha cara e me torne um desastre. A opção dois não parece ruim, mas não tenho certeza se devo fazer isso. Não tenho certeza de como a história e as diferenças funcionariam. Estamos falando apenas de 500 a 1000 linhas de código, no máximo. Portanto, não é uma base de código enorme.

Obrigado por qualquer entrada que você possa fornecer!


10
Como é um código totalmente novo, eu tenderia a ir com o número 1 porque a história do projeto antigo é realmente irrelevante. Mas seria bom adicionar algo ao README ao longo das linhas de "Baseado em uma idéia de ....".
precisa

2
@ PeterRowell, coloque esse comentário em uma resposta para que eu possa votar novamente!
precisa saber é o seguinte

@ PeterRowell Obrigado pelo conselho. Essa é uma ótima ideia.
Matt Keller

1
Para o 2, não há necessidade de excluir o repositório existente. Faça o que fizer, eu tenho certeza que o desenvolvedor original gostaria que você dizendo-lhe que você está bifurcação do projeto
James

Respostas:


13

Como é um código totalmente novo, eu tenderia a ir com o número 1 porque o histórico de consolidação do projeto antigo é realmente irrelevante. Mas seria bom adicionar algo ao README ao longo das linhas de "Baseado em uma idéia de ....".

Sou um grande fã de reconhecer de onde viemos (ou nossos algoritmos). Se você olhar de novo para as brumas da história, verá que todos estamos de pé sobre os ombros daqueles que vieram antes - todos nós. Por exemplo, desenvolvi e comercializei um mecanismo de busca por similaridade nos anos 80, e parecia bastante radical para algumas pessoas (o booleano era rei na época). Mas o coração do algoritmo que eu estava usando era baseado no trabalho iniciado por Gerard Salton em Cornell 20 anos antes de mim.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.