Contribuindo para o Tuvix.js
Obrigado pelo seu interesse em contribuir! Seja uma correção de bug, nova funcionalidade, melhoria na documentação ou tradução, todas as contribuições são bem-vindas.
Formas de Contribuir
- Relatórios de bugs - Abra uma issue
- Solicitações de funcionalidades - Inicie uma discussão
- Código - Corrija bugs, adicione funcionalidades, melhore testes
- Documentação - Corrija erros de digitação, adicione exemplos, melhore a clareza
- Traduções - Adicione ou melhore a documentação em outros idiomas
Começando
1. Fork e Clone
git clone https://github.com/SEU_NOME_DE_USUARIO/tuvix.js.git
cd tuvix.js2. Instalar Dependências
Usamos pnpm e Node.js ≥ 18.
pnpm install3. Compilar Todos os Pacotes
pnpm build4. Executar Testes
pnpm test5. Iniciar o Servidor de Desenvolvimento da Documentação
cd website
pnpm install
pnpm devAbra http://localhost:5173 no seu navegador para visualizar a documentação.
Estrutura do Projeto
tuvix.js/
├── packages/
│ ├── core/ @tuvix.js/core
│ ├── router/ @tuvix.js/router
│ ├── event-bus/ @tuvix.js/event-bus
│ ├── loader/ @tuvix.js/loader
│ ├── sandbox/ @tuvix.js/sandbox
│ ├── react/ @tuvix.js/react
│ ├── vue/ @tuvix.js/vue
│ ├── svelte/ @tuvix.js/svelte
│ ├── angular/ @tuvix.js/angular
│ ├── devtools/ @tuvix.js/devtools
│ ├── server/ @tuvix.js/server
│ ├── module-federation/
│ ├── create-tuvix-app/
│ └── tuvix/ tuvix.js umbrella
└── website/
├── .vitepress/ Configuração e tema do VitePress
├── guide/ Documentação em inglês
├── packages/ Documentação da API dos pacotes
├── tr/ Traduções em turco
├── es/ Traduções em espanhol
└── ... Outros idiomasEstilo de Código
- TypeScript - modo strict, todo o código deve ser tipado
- Prettier - execute
pnpm formatpara formatar - Sem dependências de runtime - os pacotes devem ter zero dependências de runtime
- Exports nomeados - evite exports padrão
- Mensagens de erro - prefixar com
[Tuvix ...]
Mensagens de Commit
Seguimos Conventional Commits:
feat: add hash mode to router
fix(sandbox): clean up event listeners on unmount
docs: add Angular guide example
chore: bump vitepress to 1.7.0
test(event-bus): add once() edge case testsProcesso de Pull Request
Crie um branch a partir do
master:bashgit checkout -b feat/minha-funcionalidadeFaça suas alterações e adicione testes
Execute a suíte completa de testes:
bashpnpm test pnpm check-types pnpm lintSe sua alteração afeta um pacote publicado, adicione um changeset:
bashpnpm changesetFaça push e abra um PR contra
masterUm mantenedor revisará seu PR. Por favor, responda ao feedback dentro de 7 dias.
Adicionando uma Tradução
Toda a documentação está em Markdown sob website/. Cada idioma tem seu próprio diretório:
website/
├── index.md ← Inglês (raiz)
├── guide/ ← Guias em inglês
├── tr/ ← Turco
│ ├── index.md
│ ├── guide/
│ └── packages/
├── es/ ← Espanhol
└── ...Passos para adicionar ou melhorar uma tradução
- Copie os arquivos em inglês de
website/guide/parawebsite/<lang>/guide/ - Traduza o conteúdo Markdown (mantenha os blocos de código em inglês)
- Atualize a configuração da sidebar em
website/.vitepress/config/<lang>.ts - Execute
cd website && pnpm devpara visualizar
Dicas de Tradução
- Mantenha todos os exemplos de código em inglês
- Traduza rótulos da interface, descrições e texto explicativo
- Use terminologia nativa onde existam traduções padrão
Idiomas Suportados
| Idioma | Código | Status |
|---|---|---|
| Inglês | en | Completo (referência) |
| Turco | tr | Em andamento |
| Espanhol | es | Em andamento |
| Alemão | de | Em andamento |
| Francês | fr | Em andamento |
| Japonês | ja | Em andamento |
| Chinês | zh | Em andamento |
| Italiano | it | Em andamento |
| Português | pt | Em andamento |
| Hindi | hi | Em andamento |
Se você gostaria de contribuir para algum desses idiomas, verifique as issues de tradução abertas ou abra uma nova.
Código de Conduta
Este projeto segue o Contributor Covenant. Seja respeitoso e construtivo.
Licença
Ao contribuir, você concorda que suas contribuições serão licenciadas sob a Licença MIT.