Screenshots e publicação automatizada para o pub.dev
A partir de hoje, temos algumas novidades no pub.dev: agora você pode declarar screenshots para um pacote, permitindo uma busca mais visual…
A partir de hoje, o pub.dev traz duas novidades: agora você pode declarar screenshots para um pacote, o que permite uma busca mais visual. E o fluxo de publicação pode ser totalmente automatizado, com a ajuda do GitHub Actions.
Adicionando screenshots ao pub.dev
#Um dos principais objetivos do pub.dev é facilitar a busca pelo pacote certo para cada finalidade. Quando você procura widgets ou outros componentes visuais, as imagens têm um papel importante. Agora mostramos screenshots nos resultados de busca de pacotes, para tornar a descoberta de pacotes mais fácil do que nunca.
Screenshots na busca de pacotes e na página do pacote
#Miniaturas dos screenshots agora aparecem nos resultados de busca, e você também pode filtrar a busca para listar apenas pacotes com screenshots.
A miniatura do screenshot também aparece na página do pacote, e clicar nela abre um carrossel de imagens com todos os screenshots.
Declarando screenshots no pubspec.yaml
#
Adicionar screenshots a um pacote é bem simples. Declare os arquivos no pubspec.yaml, no campo
screenshots, com uma description e um path. Abaixo está um exemplo do pacote
animations.
name: animations
...
screenshots:
- description: 'Examples of the container transform pattern.'
path: example/screenshots/container_transform_lineup.png
- description: 'Examples of the fade pattern.'
path: example/screenshots/fade_lineup.png
...
Para mais detalhes, veja dart.dev/tools/pub/pubspec#screenshots.
Publicação automatizada para o pub.dev
#
Milhares de membros da comunidade Dart publicam pacotes no pub.dev, em benefício de todos os desenvolvedores Dart e Flutter. Tradicionalmente, esses publishers de pacotes publicam no pub.dev executando um comando de terminal local,
dart pub publish, e se autenticando com a conta Google. Nos bastidores, um refresh token
era armazenado em um arquivo de configuração na máquina de desenvolvimento, o que permitia publicar uma nova versão sem autenticar novamente. Esse fluxo é simples e fácil de entender, mas exige uma série de passos manuais. Temos o prazer de apresentar um novo fluxo de publicação automatizada, que permite publicar novas versões no pub.dev diretamente por uma GitHub Action. Isso traz vários benefícios:
Cada release é automaticamente marcada com tags de release consistentes no GitHub
É fácil configurar um fluxo de revisão e aprovação para publicar novas versões.
-
O processo de publicação é autenticado por um token assinado pelo GitHub, garantindo que nenhuma credencial precise ser armazenada em disco.
Tornando a publicação automatizada segura
#
Atualmente, alguns usuários têm recorrido a armazenar o arquivo de configuração pub-credentials.json, que contém o
refresh token, em uma variável de ambiente secreta no GitHub Actions. Assim, conseguiam escrever um workflow do GitHub Actions que recuperava o arquivo de configuração e o usava para publicar uma nova versão do pacote. Embora esse fluxo funcione tecnicamente, a ferramenta não foi projetada para isso, e ele tem várias desvantagens:
-
Os arquivos
pub-credentials.jsonpodem ser usados para publicar qualquer pacote que o autor tenha permissão de publicar, não apenas o pacote publicado pelo fluxo configurado. -
Se vazado, o
pub-credentials.jsonpode ser usado para publicar novas versões e novos pacotes, se passando pelo usuário que criou o arquivopub-credentials.json. -
A interface para revogar o refresh token no
pub-credentials.jsonnão é fácil de encontrar.
De fato, já aconteceu mais de uma vez de um pacote ser publicado e acidentalmente incluir o arquivo pub-credentials.json
do autor, porque ele extraiu o arquivo dentro de um job de CI. Publicar um pacote junto com as credenciais necessárias para atualizá-lo é uma vulnerabilidade de segurança bastante grave, e por isso acabamos
implementando detecção de vazamentos no dart pub publish.
Nosso novo suporte à publicação automatizada mitiga esses problemas, tornando possível autenticar no pub.dev usando um dos seguintes métodos:
-
Uma service account do GCP, que pode ser usada a partir da maioria dos recursos do GCP, como o Google Cloud Build, ou outros ambientes de nuvem, como Azure ou AWS.
Esses fluxos permitem publicação automatizada sem depender de tokens secretos de longa duração, que podem ser facilmente abusados se vazarem por acidente. Se você implantar seu fluxo de publicação em uma máquina própria, pode, claro, usar chaves exportadas de service account, mas é preciso ter muito cuidado para protegê-las adequadamente.
Habilitando publicação segura
#Você pode habilitar a publicação automatizada a partir do GitHub com apenas alguns passos. Veja dart.dev/go/automated-publishing para todos os detalhes.
Mais do Dart
Anunciando o Genkit Dart 1.0: crie apps agênticos prontos para produção com Dart e Flutter
Anunciando a versão estável 1.0 do Genkit Dart, um framework open source para criar apps agênticos e recursos de IA prontos para produção em Dart.
Skills CLI 1.0: empacote e distribua skills de agentes de IA para seus pacotes
Inclua skills oficiais de agentes de IA diretamente nos seus pacotes para melhorar a descoberta.