Category: Desenvolvimento

Organização de Arquivos: Tipo vs. Contexto

2025-05-02
Organização de Arquivos: Tipo vs. Contexto

Este artigo explora duas abordagens comuns para organizar arquivos de código: por tipo e por contexto. Usando um sistema real de Gerenciamento de Identidade e Acesso (IAM) como exemplo, o autor compara os prós e contras de cada método. Embora organizar por tipo seja conveniente para encontrar tipos específicos de arquivos, ele fica aquém em termos de compreensão da lógica de negócios e manutenibilidade do código. Organizar por contexto, no entanto, revela mais claramente os processos de negócios do sistema, facilitando a colaboração da equipe e a resolução de problemas, sendo mais adequado para projetos grandes. Em última análise, o autor conclui que a melhor escolha depende do tamanho da equipe, das características do projeto e do fluxo de trabalho, sem um método superior absoluto.

Desenvolvimento

15 Comandos Essenciais do Git para Todo Desenvolvedor

2025-05-02
15 Comandos Essenciais do Git para Todo Desenvolvedor

Este artigo resume 15 comandos essenciais do Git usados no dia a dia do desenvolvimento. De inicializar um repositório (`git init`) e clonar um repositório remoto (`git clone`), a adicionar arquivos (`git add`), fazer commits (`git commit`), gerenciar branches (`git branch`, `git merge`, `git checkout`), lidar com repositórios remotos (`git pull`, `git push`), e realizar operações de desfazer (`git reset`) e salvamentos temporários (`git stash`), cada comando é explicado claramente com exemplos. Dominar esses comandos aumenta significativamente a eficiência do desenvolvimento e minimiza erros. Este guia fornece uma base sólida para trabalhar com Git em vários cenários do mundo real.

Desenvolvimento

Habilidades linguísticas, não matemática, são a chave para aprender a programar

2025-05-02
Habilidades linguísticas, não matemática, são a chave para aprender a programar

Um estudo da Universidade de Washington desafia a sabedoria convencional sobre aprender a programar. Os pesquisadores descobriram que a velocidade e a proficiência no aprendizado de Python estão mais fortemente correlacionadas com a aptidão para línguas e habilidades de resolução de problemas do que com a capacidade matemática. Usando testes comportamentais e dados de EEG, o estudo demonstrou que as habilidades linguísticas impactam significativamente a velocidade de aprendizado, superando a influência das habilidades matemáticas. Isso tem implicações cruciais para a educação em programação e o recrutamento de talentos, desafiando a visão tradicional da programação como um campo puramente intensivo em matemática e sugerindo que as mulheres podem ser subestimadas no campo.

Desenvolvimento habilidades linguísticas

Disputa de Marca Registrada da NATS Escala: Synadia Recupera o Projeto, CNCF Contra-Ataca

2025-05-02
Disputa de Marca Registrada da NATS Escala: Synadia Recupera o Projeto, CNCF Contra-Ataca

Uma batalha legal está se formando sobre a marca registrada e o marketing do servidor de mensagens NATS amplamente utilizado. Depois que a Synadia, a antiga proprietária, recuperou o software da Cloud Native Computing Foundation (CNCF), a CNCF agora está buscando excluir a marca registrada e o logotipo da NATS. A CNCF argumenta que a Synadia renunciou a todos os direitos em 2018 e deve respeitar os acordos. A Synadia argumenta que a CNCF falhou em promover o envolvimento da comunidade, com a maioria das contribuições originárias da Synadia, e propõe mudar a NATS para uma Licença de Fonte de Negócios (BSL). A CNCF rejeita a BSL como não sendo de código aberto, enfatizando seu compromisso com os valores de código aberto. A disputa central gira em torno da propriedade, direitos de marca registrada e licenciamento, potencialmente levando a uma bifurcação do projeto semelhante à separação Terraform/OpenTofu.

Desenvolvimento

Este aplicativo 'foda-se' é impecável

2025-05-02

Cansado de aplicativos inchados, cheios de dopamina, que o bombardeiam com "séries diárias" e "lembretes atenciosos"? Este aplicativo é o antídoto. Velocidade incrível, sem telas de abertura, sem animações — apenas funcionalidade pura. Possui modo escuro, nenhum rastreamento, um botão "Fazer Nada" integrado, é totalmente gratuito e não requer inscrição ou login. É uma maravilha minimalista, o epítome de "fazer o máximo com o mínimo", um dedo do meio para todos os startups super-engenheirados que já perderam seu tempo.

Desenvolvimento lista de tarefas

Webflow torna o GSAP 100% gratuito: impulsionando a animação web

2025-05-02
Webflow torna o GSAP 100% gratuito: impulsionando a animação web

A Webflow adquiriu o GreenSock Animation Platform (GSAP), uma biblioteca de animação JavaScript líder do setor, e a tornou totalmente gratuita para todos os usuários, incluindo os plug-ins Club anteriormente pagos. Essa iniciativa visa reduzir a barreira de entrada para o desenvolvimento de animações e melhorar a interatividade na web. Atualizações significativas incluem um plug-in SplitText reformulado (50% menor, desempenho aprimorado, acessibilidade aprimorada), integração mais fácil dos plug-ins GSAP na Webflow e a capacidade de pré-visualizar o código personalizado antes da publicação. Planos futuros incluem uma integração mais profunda do GSAP na Webflow, oferecendo uma experiência de desenvolvimento de animação mais intuitiva.

Desenvolvimento Animação Web

A Migração Épica de Tabs para Espaços no Yelp

2025-05-02

Este post detalha a experiência do autor convertendo a enorme base de código Python do Yelp de tabs para quatro espaços. O processo envolveu lidar com recuos inconsistentes, usar filtros Git para impor espaços e resolver vários problemas como arquivos fantasmas e status Git lento. O autor concluiu com sucesso a migração e compartilha lições aprendidas, incluindo o uso de .gitattributes, a ferramenta expand e truques do Git.

(eev.ee)
Desenvolvimento

Uma substituição para jq em Common Lisp: cljq

2025-05-02

Cansado da DSL complicada do jq? Apresentamos o cljq, uma substituição para o jq escrita em Common Lisp. O cljq usa um operador de consulta mais intuitivo, `?`, oferecendo funcionalidade semelhante ao JSONPath para simplificar a manipulação de JSON. Atualmente em estágios iniciais, o cljq já fornece funcionalidades básicas com planos para adições de recursos futuros.

Incorporando Python ao z/OS: Reduzindo a Barreira de Entrada

2025-05-02

A IBM está explorando a possibilidade de incluir o Python como parte do sistema operacional base z/OS. Isso espelharia a inclusão do REXX, fornecendo aos usuários acesso imediato às extensas capacidades do Python - desde desenvolvimento web e análise de dados até IA e computação científica - sem necessidade de instalações separadas. Essa mudança visa reduzir significativamente a barreira de entrada para profissionais de TI, permitindo que sejam produtivos no z/OS enquanto mantêm familiaridade com uma linguagem amplamente utilizada em outras plataformas.

Desenvolvimento

Diretrizes de Revisão da Apple App Store: Um mergulho profundo

2025-05-02
Diretrizes de Revisão da Apple App Store: Um mergulho profundo

As extensas Diretrizes de Revisão da Apple App Store oferecem um guia abrangente para desenvolvedores, cobrindo segurança, desempenho, modelos de negócios, design e conformidade legal. As diretrizes enfatizam a segurança do aplicativo e a proteção da privacidade do usuário, proibindo estritamente conteúdo ofensivo, malware e violação de propriedade intelectual. Requisitos específicos são descritos para o desempenho do aplicativo, funcionalidade, modelos de negócios e design, incluindo metadados, ícones, capturas de tela e visualizações. Diretrizes especiais abordam aplicativos que usam serviços da Apple, como notificações push, Game Center e Apple Pay. O objetivo é ajudar os desenvolvedores a entender o processo de revisão, aumentar as taxas de aprovação de aplicativos e contribuir para um ecossistema de aplicativos seguro, confiável e de alta qualidade.

Jujutsu: Repensando o fluxo de trabalho do Git

2025-05-02

Diga adeus aos fluxos de trabalho do Git pesados! Jujutsu é um novo sistema de controle de versão que unifica commits, cópia de trabalho, índice e stash do Git no conceito de "alteração", tornando a manipulação de código mais segura e flexível. Sem mais operações tediosas na área de preparação; Jujutsu rastreia automaticamente todas as modificações de arquivo. Crie novas alterações com `jj new`, abandone-as com segurança com `jj abandon` e mescle ou divida alterações facilmente com `jj squash` e `jj split`. A poderosa funcionalidade `jj undo` e os logs de operação permitem que você experimente sem medo. Embora a colaboração seja um pouco diferente do Git, a conveniência local do Jujutsu aumenta dramaticamente a eficiência do desenvolvimento.

Desenvolvimento

Microsoft usa LLMs para aumentar a segurança de programação de baixo nível: Checked C e RustAssistant

2025-05-02

Pesquisadores da Microsoft Research apresentaram dois projetos que utilizam modelos de linguagem grandes (LLMs) para melhorar a segurança da programação de baixo nível. Um projeto usa LLMs para auxiliar o Checked C, adicionando automaticamente anotações de segurança de memória a código C herdado, melhorando a segurança e reduzindo a carga de anotação manual. O segundo, RustAssistant, usa LLMs para corrigir automaticamente erros de compilação do Rust, diminuindo significativamente a curva de aprendizado do Rust. Ambos os projetos demonstram o imenso potencial dos LLMs em melhorar a segurança do código e a eficiência do desenvolvedor, abrindo novas possibilidades para a engenharia de software.

Desenvolvimento

OSle: Um Sistema Operacional de 510 Bytes para o Setor de Boot

2025-05-02
OSle: Um Sistema Operacional de 510 Bytes para o Setor de Boot

OSle é um minúsculo sistema operacional (510 bytes) em modo real, que reside inteiramente no setor de boot. Escrito em assembly x86, ele surpreendentemente inclui um shell, sistema de arquivos, gerenciamento de processos, softwares pré-construídos e um SDK para desenvolver seus próprios programas. O artigo fornece instruções detalhadas para instalação, construção, execução do OSle localmente (usando Bochs ou QEMU) e até mesmo execução em um dispositivo real (com um forte aviso!). Uma demonstração online e um tutorial também estão disponíveis. Este é um projeto fascinante para aqueles interessados em sistemas operacionais e programação de baixo nível.

Desenvolvimento assembly x86

Filtros de Bloom: Uma Estrutura de Dados Probabilística para Membros de Conjunto Eficientes

2025-05-02

Filtros de Bloom são estruturas de dados probabilísticas que testam eficientemente se um elemento é membro de um conjunto, usando espaço mínimo. Ao aplicar hash aos elementos em vários locais em um array de bits, os filtros de Bloom oferecem testes de associação rápidos, embora com uma pequena chance de falsos positivos. Ideal para cenários em que a maioria das consultas retorna negativo, os filtros de Bloom aceleram significativamente as pesquisas. Este artigo detalha os princípios subjacentes, a implementação (com um exemplo em Go), e a derivação matemática. Um exemplo prático demonstra o cálculo de parâmetros ótimos para um conjunto de bilhões de itens com uma taxa de falso positivo de 1%, destacando sua eficácia no processamento de dados em larga escala.

O Herói Não Cantado do Linux Iniciante: MCC Interim Linux

2025-05-02

Após o lançamento do kernel Linux por Linus Torvalds, Owen LeBlanc criou a primeira verdadeira distribuição Linux: MCC Interim Linux. Este artigo conta a história de LeBlanc e sua criação na Universidade de Manchester. O MCC Interim Linux não era conhecido por uma interface chamativa ou uma vasta seleção de softwares, mas seu instalador fácil foi crucial para a adoção inicial do Linux. Ele tornou o Linux acessível a mais pessoas, preparando o terreno para distribuições posteriores mais bem-sucedidas. A experiência de LeBlanc também destaca os desafios da promoção inicial de software de código aberto e as diferenças de perspectivas técnicas entre desenvolvedores e gerentes.

Desenvolvimento história do Linux

Desenvolvimento de jogos em Zig: Um ano de aprendizado

2025-05-02

Este artigo detalha um ano de experiência no desenvolvimento de um jogo de quebra-cabeça 3D em Zig. O autor destaca a comunidade incrivelmente útil do Discord Zig, resolvendo até mesmo problemas complexos do compilador rapidamente. O suporte vetorial integrado do Zig é excelente, mas o suporte à matriz está atrasado. O sistema de construção do Zig é uma alternativa refrescante ao CMake, Meson, etc., embora tenha uma curva de aprendizado mais íngreme. A biblioteca padrão está incompleta em alguns lugares, mas está sendo ativamente aprimorada. Lançamentos frequentes do compilador trazem ganhos de desempenho e uma experiência de desenvolvimento aprimorada, como a opção --watch e a compilação incremental que está por vir. No geral, o autor expressa satisfação com o Zig para desenvolvimento de jogos e aguarda ansiosamente as melhorias futuras.

Desenvolvimento

Benchmarks de motores de expressão regular: Rust vs. Re2 vs. Ruby

2025-05-02
Benchmarks de motores de expressão regular: Rust vs. Re2 vs. Ruby

A SerpApi enfrenta desafios na extração de dados de sites modernos, muitas vezes recorrendo a expressões regulares. Seu benchmark compara o mecanismo Onigmo do Ruby com o re2 do Google e o mecanismo regex do Rust. O mecanismo regex do Rust se mostra o mais rápido na maioria dos casos, especialmente com texto Unicode, mas sua funcionalidade de conjunto é inconsistente. O Re2 também é rápido, mas tem limitações de Unicode. As ligações Ruby do Pcre2 estão desatualizadas. O mecanismo regex do Rust surge como a melhor alternativa ao Ruby, embora seja necessário cuidado com seu recurso de conjunto.

Desenvolvimento expressão regular

Offline-First com CouchDB e PouchDB: Um aplicativo de demonstração de 2025

2025-05-02
Offline-First com CouchDB e PouchDB: Um aplicativo de demonstração de 2025

Esta postagem do blog apresenta o Pouchnotes, um aplicativo de demonstração de 250 linhas que demonstra anotações offline-first usando CouchDB e PouchDB. O Pouchnotes permite que os usuários criem e editem anotações online ou offline, sincronizando automaticamente com uma instância remota do CouchDB. Os autores detalham o fluxo de dados dentro do aplicativo e entre bancos de dados locais e remotos, destacando o uso do banco de dados local do PouchDB, replicação bidirecional e estratégias de resolução de conflitos. A postagem também explora a integração eficiente do TypeScript com o PouchDB, incluindo o tratamento de vários tipos de documentos. Construído com Svelte 5, Vite e Pico.css, o Pouchnotes serve como um exemplo conciso e eficiente para a construção de aplicativos offline-first.

Desenvolvimento

WhatsApp lança o Processamento Privado: IA com privacidade de ponta a ponta

2025-05-02
WhatsApp lança o Processamento Privado: IA com privacidade de ponta a ponta

O WhatsApp apresenta o Processamento Privado, um recurso opcional que permite o processamento de mensagens por IA em um ambiente seguro e confidencial. Usando Ambientes de Execução Confiáveis (TEEs), essa tecnologia permite que os usuários solicitem recursos com IA, como resumo de mensagens, sem que o Meta ou o WhatsApp acessem seus dados. Construído com base nos princípios de opcionalidade, transparência e controle do usuário, o Processamento Privado emprega medidas de segurança robustas, incluindo processamento confidencial, transparência verificável e não-alvo. O WhatsApp está publicando componentes do Processamento Privado e expandindo seu programa de recompensas por bugs para promover pesquisas de segurança independentes, garantindo que a privacidade do usuário permaneça primordial.

Desenvolvimento

arXivLabs: Projetos Experimentais com Colaboração da Comunidade

2025-05-01
arXivLabs: Projetos Experimentais com Colaboração da Comunidade

arXivLabs é uma estrutura que permite a colaboradores desenvolverem e compartilharem novos recursos do arXiv diretamente no nosso site. Indivíduos e organizações que trabalham com o arXivLabs abraçaram e aceitaram nossos valores de abertura, comunidade, excelência e privacidade dos dados do usuário. O arXiv está comprometido com esses valores e trabalha apenas com parceiros que os respeitam. Tem uma ideia para um projeto que agregará valor à comunidade do arXiv? Saiba mais sobre o arXivLabs.

Desenvolvimento

O Império Deno Desmorona: Um Relato Pós-Mortem

2025-05-01
O Império Deno Desmorona: Um Relato Pós-Mortem

O Deno Deploy, anunciado como hospedagem 'edge' com 'escala global massiva', viu sua contagem de servidores cair de 35 regiões no início de 2024 para apenas 6 em fevereiro de 2025. O autor detalha sua própria experiência negativa com a degradação de desempenho, destacando a estagnação de outros produtos Deno, como a estrutura Fresh e o Deno KV. O artigo expressa sérias preocupações sobre o futuro do Deno, culpando a falta de inovação e uma dependência excessiva em perseguir recursos do Node.js.

Wiki ScummVM repele ataque massivo de DDoS com Anubis

2025-05-01
Wiki ScummVM repele ataque massivo de DDoS com Anubis

O site wiki do projeto ScummVM sofreu um ataque massivo de DDoS de aproximadamente 35.000 IPs em todo o mundo, causando uma interrupção. Os atacantes exploraram URLs específicas para sobrecarregar o banco de dados, esgotando os recursos dos servidores Apache, PHP-FPM e MariaDB. Para combater isso, o autor implantou o Anubis, um sistema que utiliza um mecanismo de prova de trabalho para filtrar eficientemente solicitações maliciosas. O Anubis defendeu com sucesso o ataque com consumo mínimo de recursos do servidor, garantindo o tempo de atividade do site. O Anubis não apenas bloqueia raspadores de IA de forma eficaz, mas também funciona como um sistema de proteção contra DDoS.

Desenvolvimento segurança do site

Kubetail: Painel de Logs em Tempo Real para Kubernetes

2025-05-01
Kubetail: Painel de Logs em Tempo Real para Kubernetes

Kubetail é um painel de logs em tempo real para Kubernetes, otimizado para acompanhar logs de cargas de trabalho multicôntainer. Com o Kubetail, você pode visualizar logs de todos os contêineres em uma carga de trabalho (por exemplo, Deployment ou DaemonSet) mesclados em uma única linha do tempo cronológica, entregue ao seu navegador ou terminal. O ponto de entrada principal para o Kubetail é a ferramenta de linha de comando kubetail, que pode iniciar um painel web local na sua área de trabalho ou transmitir logs brutos diretamente para seu terminal. Por trás dos panos, o Kubetail usa a API do Kubernetes do seu cluster para buscar logs diretamente do seu cluster, para que funcione imediatamente sem precisar encaminhar seus logs para um serviço externo primeiro. O Kubetail também usa sua API do Kubernetes para rastrear eventos do ciclo de vida do contêiner para manter sua linha do tempo de log sincronizada à medida que os contêineres são iniciados, parados ou substituídos. Isso facilita o acompanhamento contínuo dos logs à medida que as solicitações do usuário passam de um contêiner efêmero para outro em diferentes serviços.

18 Regras para um Projeto Skunkworks Bem-Sucedido em uma Grande Empresa de Tecnologia

2025-05-01

Este artigo destila a experiência do autor na construção de projetos de software em larga escala na Meta e Confluent, descrevendo 18 princípios para executar projetos skunkworks bem-sucedidos dentro de grandes empresas. Essas regras cobrem a composição da equipe, os estilos de comunicação, as estruturas de incentivos e o gerenciamento de riscos. A ideia central é construir uma equipe pequena, altamente colaborativa e inovadora, garantindo o sucesso por meio de iteração rápida, comunicação externa precisa e recompensas orientadas para resultados. O autor enfatiza evitar a saída prematura do modo skunkworks, valorizando as habilidades individuais no contexto do sucesso geral do projeto em vez da promoção individual.

Desenvolvimento

JRuby: Integração Java Elegante Resolve Dores de Cabeça com Bibliotecas Externas

2025-05-01

Na RubyKaigi, o autor encontrou dificuldades ao usar bibliotecas externas em Ruby: bibliotecas C exigem a escrita de extensões C ou vinculações FFI, enquanto outras linguagens apresentam desafios ainda maiores. Exemplos como Charty (envolvendo matplotlib) e QuickChart (implementado em JavaScript) destacaram a dificuldade das soluções existentes. O autor propõe uma abordagem mais elegante: aproveitar a integração Java do JRuby. Usando o JFreeChart como exemplo, o artigo demonstra como criar gráficos sem esforço sem escrever código Java, C, Python ou JavaScript. Ele detalha a camada de integração Java do JRuby, incluindo o gerenciamento de dependências com `jar-dependencies`, a chamada de classes Java e a criação de gráficos de barras e de pizza simples. O autor conclui com um incentivo para experimentar o JRuby e apoiar seu desenvolvimento contínuo.

Milhões de Macacos Digitando: Atrás dos Panos de um Projeto de Bilhões de Palavras

2025-05-01
Milhões de Macacos Digitando: Atrás dos Panos de um Projeto de Bilhões de Palavras

O site monkeys.zip, com milhares de macacos virtuais digitando, gerou mais de 6 bilhões de palavras, completando mais de 75% das obras de Shakespeare! O autor detalha a arquitetura do site: um mecanismo de 'Tick' de 15 segundos que divide a geração de dados, armazenamento e atualizações do banco de dados em quatro etapas, usando sfc32 para geração de números aleatórios determinísticos. O cache Redis e o particionamento do banco de dados otimizam o desempenho. Desafios e melhorias futuras, como a atualização do servidor para velocidades de digitação mais rápidas, também são discutidos.

Desenvolvimento arquitetura de backend

C++26: Um Salto Gigantesco para Recursos de Biblioteca Padrão em Tempo de Compilação

2025-05-01

O C++26 está prestes a revolucionar a programação em tempo de compilação com um aumento massivo no suporte constexpr na biblioteca padrão. Várias propostas (P2562R1, P1383R2, P3074R7, P3372R2, P3508R0, P3369R0) incorporam algoritmos de classificação estável, funções e , regras de união aprimoradas, quase todos os contêineres e adaptadores e algoritmos de memória especializados na categoria constexpr. Isso aprimora significativamente as capacidades de tempo de compilação, permitindo, por exemplo, a classificação em tempo de compilação de contêineres constexpr. Embora std::hive e std::hash permaneçam excluídos devido a limitações, o C++26 promete uma expansão dramática das possibilidades de programação em tempo de compilação.

Desenvolvimento biblioteca padrão

Varreduras de malware do macOS estão atrasando o lançamento de aplicativos

2025-05-01

O desenvolvedor Jeff Johnson descobriu que o processo syspolicyd do macOS realiza varreduras de malware em aplicativos, causando lentidão no lançamento de aplicativos como Xcode, FileMerge e Google Chrome. Essas varreduras consomem recursos significativos da CPU, levando a atrasos perceptíveis, mesmo para aplicativos pequenos. Johnson suspeita que o syspolicyd não apenas verifica o aplicativo em si, mas também suas bibliotecas vinculadas. Ele resolveu o problema desabilitando a Proteção de Integridade do Sistema (SIP), mas isso também desabilita alguns serviços do sistema. O artigo explora a causa raiz e expressa frustração com essa medida de segurança aparentemente desnecessária, preferindo varreduras em segundo plano a interrupções em primeiro plano.

IA escreve código, IA revisa? Isso é tolice?

2025-05-01
IA escreve código, IA revisa? Isso é tolice?

Daksh, cofundador da Greptile, descobriu que uma ferramenta de geração de código de IA, Devin, estava enviando mais solicitações pull do que qualquer engenheiro humano. Isso levanta a questão intrigante: o código gerado por IA deve ser revisado pela própria IA? Embora os LLMs sejam sem estado, cada chamada é independente, isso não significa que a IA revisa perfeitamente seu próprio código. O código gerado por IA, embora aumente a eficiência, pode introduzir bugs que os humanos têm dificuldade em encontrar. Pesquisas mostram que a IA é mais eficaz do que os humanos na localização de certos tipos de bugs, embora sua precisão ainda precise de melhorias. Em última análise, o artigo argumenta que, embora não seja perfeito, a revisão de código de IA é mais eficaz do que os humanos na localização de tipos específicos de bugs introduzidos pela própria IA.

Desenvolvimento revisão de código de IA

Changesets: Simplificando o Gerenciamento de Versões e Logs de Mudanças para Repositórios Multipacote

2025-05-01
Changesets: Simplificando o Gerenciamento de Versões e Logs de Mudanças para Repositórios Multipacote

Changesets é uma ferramenta projetada para simplificar o gerenciamento de versões e logs de mudanças, especialmente para repositórios multipacote. Permite que os contribuidores declarem como suas alterações devem ser lançadas, automatizando a atualização das versões dos pacotes, logs de mudanças e publicação de novas versões com base nessas informações. Changesets se destaca ao resolver as complexidades do gerenciamento de versões em repositórios multipacote, mantendo pacotes interdependentes atualizados e simplificando as alterações em grupos de pacotes. Usa arquivos changeset para definir intenções de lançamento, e uma ferramenta de linha de comando combina vários changesets em um único lançamento, lidando com dependências internas, atualizando logs de mudanças e lançando todos os pacotes atualizados de um monorepositório com um único comando. Documentação abrangente, recomendações de integração de CI e uma ação do GitHub para automatizar pull requests de versionamento e publicação também são fornecidas.

1 2 99 100 101 103 105 106 107 214 215