Como adicionar um plug-in próprio

Leia mais sobre plug-ins

Processo

Os plug-ins passam por quatro estágios: sugestão, discussão, implementação e publicação.

Sugestão

Um plug-in é iniciado como uma sugestão. Você pode sugerir um plug-in criando um novo problema com o modelo Solicitação de recurso.

Leia sobre como criar uma solicitação de recurso.

Além das informações básicas de solicitação de recurso, uma sugestão de plug-in precisa incluir:

  • A API que o plug-in exporia.
  • APIs que precisam ser adicionadas ou alteradas no bloco principal do Blockly para oferecer suporte ao plug-in.
  • Capturas de tela, GIFs ou maquetes se o plug-in incluir recursos de interface do usuário.
  • Explicação sobre por que ele precisa ser um plug-in próprio em vez de um de terceiros.

A equipe do Blockly analisa as sugestões conforme elas chegam e encerra o problema ou adiciona o rótulo status: discussão.

Discussão

Em seguida, um plug-in entra na fase de discussão. Essa fase inclui:

  • Esclarecimento da funcionalidade desejada.
  • Esclarecimento sobre a API do plug-in.
  • Planejamento da implementação.
  • Planejamento para testes.
  • Discussão sobre as mudanças de API no núcleo do Blockly.
  • Divisão de plug-ins grandes em etapas de implementação.
  • Nomenclatura do plug-in, com base nas nossas convenções de nomenclatura.
  • A confirmação de que todos os critérios próprios serão atendidos.

Essa discussão geralmente acontece no problema do GitHub. Quanto menor o escopo do plug-in, mais rápida pode ser a fase de discussão. Plug-ins maiores podem atrair a atenção da comunidade e opiniões fortes sobre a solução certa. Se isso acontecer com seu problema, parabéns. Você encontrou algo com o que as pessoas se importam.

O objetivo é que, no final da fase de discussão, todas as principais decisões de design tenham sido tomadas e que haja uma lista clara de etapas de implementação. Ambas precisam ser documentadas nos comentários sobre o problema.

Durante a discussão, podemos decidir que um plug-in precisa ser de terceiros e não ser publicado no escopo @blockly. Nesse caso, vamos explicar o motivo e encerrar o problema.

Quando a discussão termina, um membro da equipe do Blockly adiciona o rótulo status: implementation ao problema.

Implementação

As etapas de implementação incluem:

  • Executar npx @blockly/create-package para configurar o plug-in e o diretório de um modelo. Saiba mais...
  • Implementar a lógica principal do plug-in.
  • Implementar uma interface, se necessário.
  • Testar o plug-in usando o mocha.
  • Documentar o plug-in, incluindo o README.

Se o problema de um plug-in tiver o rótulo status: implementation, ele está pronto para implementação ou está sendo implementado. Para evitar a duplicação de esforços, qualquer pessoa interessada precisa comentar sobre o problema e perguntar se ele ainda está aberto para contribuições.

A implementação pode ser feita por vários colaboradores em paralelo. Você pode implementar um plug-in de maneira colaborativa na sua própria bifurcação ou por solicitações de envio nesse repositório. Se você quiser colaborar em um plug-in nesse repositório, peça à equipe do Blockly para criar uma ramificação de recurso para você.

Os plug-ins precisam ser adicionados ao arquivo gh-pages/index.md na ramificação master do blockly-samples. Isso fará com que eles apareçam no nosso site do plug-in. Os plug-ins próprios precisam apontar para a página de teste. Plug-ins de terceiros também podem ser adicionados a esta página e podem apontar para um link de escolha do proprietário, como uma demonstração hospedada ou a página npm.

Publicando

Por fim, publicação. A equipe da Blockly usa o Lerna para gerenciar as versões e a publicação de todos os plug-ins.

Todas as quintas-feiras, os plug-ins que foram alterados desde a última versão são publicados. Se você precisar que uma mudança seja publicada antes, anote-a na solicitação de envio.

O site dos plug-ins também é atualizado sempre que eles são publicados.

Os plug-ins que não estão prontos para publicação precisam ser marcados como private no package.json. Isso pode acontecer se um plug-in depende de uma alteração ainda não publicada no core Blockly. O Core Blockly é publicado na última semana de cada trimestre (uma vez a cada três meses).