Discussão - Modelo de versionamento e organização de pastas das plataformas (Web, iOS, Android)
luisfernandezbr opened this issue · comments
Motivação
Precisamos prever um modelo de estruturação do código e versionamento que retrate a realidade de termos 3 tipos de outputs de um único projeto. Web, Android e iOS.
Cenário atual
O modelo atual prevê somente casos para a geração dos tokens da Web, mas temos ainda os projetos Android e iOS para serem cobertos.
Em conversa com o Elton levantamos alguns possíveis pontos on seriam necessárias melhorias/adaptações, como configurações de CI e regras para versionamento, para aí sim podermos trabalhar de forma saudável com as 3 plataformas em harmonia.
Possíveis soluções
Versionamento
Conversamos sobre algo que no final das contas gere um resultado como:
web-v1.0.0
web-v1.1.0
web-v1.2.0
android-v1.0.0
android-v1.1.0
android-v1.2.0
ios-v1.0.0
ios-v1.1.0
ios-v1.2.0
A questão é que isso é somente uma parte, pois temos que definir a regra correta de increment de versão para caso.
Para ajudar a resolver a questão da regra de increment, pensamos também em talvez mudar a estrutura de pastas do projeto, onde cada plataforma acabaria ficando independente para fazer seu versionamento.
platforms/
+-- ios
+-- formaters/
+-- package.json
+-- android
+-- formaters/
+-- package.json
+-- web
+-- formaters/
+-- package.json
src/
+-- tokens.yml
package.json
Para ajudar a organizar a solução acima o Elton chegou a sugerir darmos uma olhada no https://github.com/lerna/lerna para vermos se atende.
Gostaríamos de abrir essa thread para tomarmos a decisão de como vamos seguir.
Aberta no projeto errado