Curiosidades e detalhes sobre a ferramenta de migração de plugins da StackSpot
Com a nova versão da StackSpot, chamada de V1, alguns recursos da versão antiga, a V0, foram descontinuados. Seguindo a linha de sermos Customer Lovers, precisaríamos impactar minimamente quem já usava a StackSpot, e uma das formas de realizar isto foi termos a possibilidade de migrar conteúdos da V0 para a V1. Então, surge a ideia de uma ferramenta chamada migrador de Plugins.
Dessa forma, confira as razões que levaram a criação de um migrador de Plugins para a StackSpot V1, e também detalhes do seu planejamento e implementação.
Como foi o planejamento do migrador de Plugins da StackSpot
A definição do escopo do migrador de Plugins considerou o seguinte:
- Os Stackfiles da V0 não possuem uma entidade na V1 diretamente relacionada que permita a migração, mesmo que haja uma semelhança com Starters na V1.
- A maioria dos campos do arquivo plugin.yaml de Plugins da V0 continuam existindo em Plugins da V1, consequentemente, facilitando a migração de Plugins.
- De maneira geral, Templates compartilham a mesma estrutura (arquivo .yaml e pastas) de Plugins, portanto Templates também entraram no escopo da migração.
Templates e Plugins são as principais entidades de uma Stack na V0, pois são responsáveis pela leitura de inputs da pessoa usuária, execução de comandos e scripts, e montagem de uma estrutura de arquivos e diretórios que mais tarde formarão uma aplicação base.
Baseado nisto e na análise dos itens citados, foi decidido que o escopo do migrador atuaria em Templates e Plugins, convertendo ambos para Plugins, já que na V1 não existem mais Templates.
Por dentro da implementação do migrador de Plugins da StackSpot
Em resumo, o ponto central do migrador de Plugins é um script que lê arquivos no formato YAML, altera a estrutura YAML lida e salva em um arquivo novo, mantendo o original.
Foi estabelecido que o script de migração seria feito em Python pelos seguintes motivos:
- O time da StackSpot possui amplo conhecimento nesta linguagem.
- Possui bibliotecas nativas e confiáveis para manipulação de arquivos, diretórios e estruturas YAML.
- O Python possui ampla comunidade e adoção, facilitando o aprendizado e o suporte.
O código fonte do script encontra-se neste link.
Consuma inovação, comece a transformação
Assine nosso boletim informativo para se manter atualizado sobre as práticas recomendadas mais recentes para aproveitar a tecnologia para gerar impacto nos negócios
Como é o funcionamento do migrador de Plugins da StackSpot
O script de migração é chamado por uma Task da StackSpot V0, contida nesta Stack. Ao executar a Task via STK CLI, a pessoa usuária informa o diretório de um Template ou de um Plugin da versão V0. A partir daí, o migrador de Plugins atualiza alguns arquivos do diretório informado para que o mesmo passe a funcionar como um Plugin da versão V1. Em seguida, há exibição do resultado da migração no terminal para a pessoa usuária.
A imagem abaixo mostra com mais detalhes o processo de migração:
Por fim, quando o processo de migração termina, o novo Plugin já está pronto para uso na StackSpot V1!
Conclusão
O migrador de Plugins mostrou-se uma importante ferramenta para acelerar a migração de conteúdos da V0 para a V1, porque, além de permitir trazer os conteúdos para a nova versão, possibilitou que isto fosse feito de maneira automatizada, rápida e confiável. Graças a ele, a adaptação e conversão de Stacks inteiras para a nova versão foi uma realidade!
Gostou da solução? Conta pra gente nos comentários o que achou!
Referências
STACKSPOT. Migrar 4.5 para V1: Principais Diferenças. Documentação StackSpot. Versão 1.0.
STACKSPOT. Migrar 4.5 para V1: Pré-requisitos para a migração. Documentação StackSpot. Versão 1.0.
Sobre o autor
É QA Senior na StackSpot. Nascido em Joinville-SC, é Bacharel em Ciência da Computação pela Universidade do Estado de Santa Catarina (UDESC). Já foi professor de Inglês, desenvolvedor full-stack e hoje atua a mais de 6 anos como QA. Adora automatizar tarefas e testes. Nas horas vagas, curte a família, acompanha futebol, Fórmula 1 e joga videogame.