Bifurcou um projeto, onde meus números de versão começam?

12

Eu criei um projeto e mudei muito dele. Esse garfo não é apenas uma pequena alteração de recurso aqui e uma correção de bug oculta, é uma mudança substancial. Somente a maior parte do código principal é compartilhada.

Bifurquei este projeto na v2.5.0. Por um tempo, comecei a versionar meu fork na v3.0. No entanto, não tenho certeza se esse é o caminho certo, principalmente porque quando esse projeto atinge a v3.0, as coisas ficam confusas. Mas não quero recomeçar na v1.0 ou v0.1, porque isso implica infância, instabilidade e não refindness de um projeto. Isso não é verdade, pois a maior parte do código principal é muito refinada e estável.

Estou realmente perdido no que fazer, então pergunto aqui: Qual é a maneira padrão de lidar com esse tipo de situação? A maioria dos garfos começa de novo, aumenta os números de versão ou faz outra coisa que eu não conheço.

TheLQ
fonte
5
Não vejo como o 1.0 implica infância ou instabilidade. Qualquer coisa abaixo de 1,0 sim, mas 1,0 implica que está fora do período "infantil" e pronto para o rock. Se isso lhe deixa mais confortável, vá com 1.1 (10% de maturidade extra !!!);) #
Mchl
1
Por curiosidade, o que você bifurcou?
compman

Respostas:

13

A maioria dos garfos que eu vi começar de novo a partir da versão 1.0. Mas suponho que você também alterou o nome do seu fork, então não sei por que haveria confusão se você simplesmente partisse da v3.0.

O que eu faria é alterar o nome do projeto, liberar a versão 1.0 e deixar claro que o projeto é uma bifurcação de outro projeto. Eu não acho que haverá alguma confusão com essa abordagem.

Se você está realmente preocupado com o rótulo "1.0", basta lançar a versão 2.0 logo após 1.0 ...

Dean Harding
fonte
... ou libere a v2.0 diretamente, ignorando a v1.0 por completo. Não seria a primeira vez que isso é feito.
Konamiman
Na minha empresa, um projeto começou na v2.4 mesmo.
user253751
6

Tenha seu próprio roteiro e cumpra-o, começando com o número da versão original, mas não tente competir com a versão atual do produto original.

dukeofgaming
fonte
1
Se você não está tentando fazer um paralelo com o projeto original de alguma forma, não haverá correlação significativa entre os números de versão daqui para frente. Isso significa que não há sentido em tentar estabelecer essa correlação agora - começando em 3.0 - porque isso só estabelecerá uma expectativa insatisfatória.
Tom Anderson
Eu estou corrigido. Você deve iniciar sua própria v1.0, que o ajudará a se diferenciar. Versões devem significar algo, não apenas uma façanha de marketing (v.gr. "v5.4" apenas para não parecer nova).
Dukeofgaming
1
@ TomAnderson: se ele bifurca, digamos, a versão 2.5, e faz a primeira versão de seu garfo 2.6 ou 3.0, ele pode apontar para o outro aplicativo como o histórico completo de seu projeto. Qual é uma correlação modestamente significativa.
DougM 24/02
3

Você pode considerar se (e quanto) seu projeto será relacionado ao projeto original. Se você planeja transportar novos recursos do projeto original para o seu, considere manter seus números de versão correspondentes às versões originais.

Como exemplo, confira o MariaDB, que é um fork do MySQL. Eles querem mantê-lo um substituto do MySQL, por exemplo, o MariaDB 5.2 tem todos os recursos do MySQL 5.2.

Veja: http://kb.askmonty.org/v/mariadb-versus-mysql

Nota: Desde que esta resposta foi publicada, o MariaDB divergiu substancialmente do MySQL e agora segue seu próprio esquema de versão.

Mchl
fonte
1

0.1 pode indicar infância, mas a versão 1.0+ significa estável. Um aumento nos principais números de versão, por exemplo, 2.0, 3.0, geralmente indicava uma grande alteração de recurso.

Por exemplo

  • A versão 1.0 do meu aplicativo era uma ferramenta para executar scripts de teste com a instalação,
  • A versão 2.0 removeu a diferenciação entre scripts de teste e scripts de configuração do ambiente,
  • A versão 3.0 adicionou uma GUI para escrever scripts como fluxogramas. São produtos reconhecidamente diferentes, mas mesmo a Versão 1 era um produto funcional, completamente estável etc. As versões 2 e 3 surgiram porque foi decidido que essas grandes mudanças seriam boas. Se não tivéssemos desejado essas grandes mudanças e tivéssemos continuado fazendo correções de bugs, etc. Os números das versões menores teriam aumentado, 1,10,1.20, etc., e isso teria sido bom.

O que estou dizendo é que números de versão principais não indicam maturidade, eles indicam conjuntos de recursos principais. Agora isso era um pouco tangente de como número da versão do seu produto.

O que eu vi antes, do qual eu gostei muito, foi começar a versão novamente a partir da 1.0 (ou da 3.0 se você realmente preferir) e depois entre parênteses dizendo qual versão do original ele possuía os recursos da última vez.

  • Inicialmente: " MyFork v1.1 (baseado no OrigProg v3.0)
  • Alguns improvenets criados para o MyFork: MyFork v1.3 (baseado no OrigProg v3.0)
  • O OrigProg lançou uma versão principal e o MyFork foi retirado e mesclado: MyFork v2.1 (baseado no OrigProg v4.0)
  • Fez algumas mudanças importantes no MyFork (provavelmente não será possível mesclar-se facilmente com o OrigProg novamente): MyFork v3.0 (baseado no OrigProg v4.0)
Lyndon White
fonte
0

Se possível, mescle o garfo de volta ao projeto original. Eu não posso enfatizar isso o suficiente.

Recuperando seus números de versão, use o número do qual você bifurcou mais um sufixo de data.


fonte
2
Mover de "Python 1.1" para "Userthon 1.1. {DATE}" quebra o formato esperado dos números de versão.
DougM 24/02