Configuração de desenvolvimento e comandos para compilar, servir e mais
O conteúdo desta página pode estar desatualizado e alguns links podem ser
inválidos.
Uma versão mais recente desta página existe em
Inglês. Para visualizar as alterações na página em inglês desde a última atualização: visite
GitHub compare ddf2415d..7dd1be701
e procure por Mais informações ...
content/en/docs/contributing/development.md.
As compilações são oficialmente suportadas em ambientes baseados em Linux e macOS. Outros ambientes, como os DevContainers, são suportados com base na melhor forma que seja possível. Para compilação no Windows, é possível seguir passos similares aos do Linux usando a linha de comando do Windows Subsystem for Linux WSL.
Configuração de IDE de nuvem
Gitpod
Para trabalhar via Gitpod.io:
Faça um fork deste repositório. Para ajuda, veja Fazer fork de um repositório.
De gitpod.io/workspaces, crie um novo workspace (faça isso apenas uma vez) ou abra um workspace existente sobre seu fork. Você também pode visitar um link da forma:
https://gitpod.io#https://github.com/SEU_ID_GITHUB/opentelemetry.io.Nota: Se você tem as permissões necessárias para trabalhar neste repositório, ou apenas quer dar uma olhada, abra https://gitpod.io/#https://github.com/open-telemetry/opentelemetry.io.
O Gitpod instala automaticamente os pacotes específicos do repositório para você. Agora você está pronto para compilar, servir e fazer atualizações nos arquivos do site. Para mais detalhes sobre como submeter alterações, veja Enviando conteúdo.
Codespaces
Para trabalhar via GitHub Codespaces:
- Faça um fork do repositório do site.
- Abra um Codespace a partir do seu fork.
Seu ambiente de desenvolvimento será inicializado via a configuração DevContainer. Agora você está pronto para compilar, servir e fazer atualizações nos arquivos do site. Para mais detalhes sobre como submeter alterações, veja Enviando conteúdo.
Configuração local
Faça um fork e então clone o repositório do site em https://github.com/open-telemetry/opentelemetry.io.
Vá para o diretório do repositório:
cd opentelemetry.ioInstale a versão do Node.js fixada no arquivo
.nvmrc(uma versão LTS ativa). Recomendamos o nvm para gerenciar a instalação do Node; no Linux, execute:nvm installPara instalar no Windows, use o nvm-windows, que não lê o arquivo
.nvmrcpor conta própria; o comando a seguir fornece a versão fixada. Recomendamos usarcmde não o Windows PowerShell:for /f %v in (.nvmrc) do nvm install %v && nvm use %vObtenha os pacotes npm e outros pré-requisitos, usando a configuração com versões exatas do lockfile e sem execução de scripts que o devcontainer utiliza:
npm run install:safeOu, use uma instalação padrão:
npm installAmbas as instalações usam as versões de dependências fixadas no
package-lock.jsonversionado, e qualquer script de ciclo de vida de dependência que for executado está sujeito à lista de permissões revisada. Relacionado: atualização de dependências.
Abra sua IDE favorita. Agora você está pronto para compilar, servir e fazer atualizações nos arquivos do site. Para mais detalhes sobre como submeter alterações, veja Enviando conteúdo.
Compilar
Para compilar o site execute:
npm run build
Os arquivos gerados do site estão em public.
Caso ocorram erros nos comandos de compilação ou de execução semelhantes ao seguinte:
ERROR error building site: ...[long message]... TOCSS: failed to transform "/scss/main.scss" (text/x-scss)
Ou:
ERROR failed to load modules: module "github.com/FortAwesome/Font-Awesome" not found
Isso geralmente acontece porque nem todas as etapas da configuração local foram concluídas. Em particular, execute (novamente) este comando:
npm install
Servir
Para servir o site execute:
npm run serve
O site é servido em localhost:1313.
O comando serve disponibiliza arquivos da memória, não do disco.
Para testar redirecionamentos do Netlify, use a prévia de deploy do seu PR.
Caso ocorra um erro como too many open files ou pipe failed no macOS, pode
ser necessário aumentar o limite de descritores de arquivo. Veja
Hugo issue #6109.
Conteúdo e submódulos
O site é construído a partir do seguinte conteúdo:
- Arquivos sob
content/,static/, etc. conforme os padrões do Hugo. - Pontos de montagem, definidos pela configuração do Hugo em
config/_default/module-template.yaml. As montagens são diretamente de submódulos git sob content-modules, ou conteúdo pré-processado decontent-modules(colocado sobtmp/), e em nenhum outro lugar.
Alterações em submódulos
Se você alterar qualquer conteúdo dentro de um submódulo content-modules, então você precisa primeiro submeter um PR (contendo as alterações do submódulo) para o repositório do submódulo. Somente depois que o PR do submódulo for aceito, você pode atualizar o submódulo e ter as mudanças publicadas neste site.
É mais fácil gerenciar suas alterações em content-modules trabalhando com o
repositório ao qual o submódulo correspondente está vinculado, em vez de dentro
do próprio submódulo.
Contribuidores experientes podem trabalhar diretamente no submódulo. Você então
consegue construir e disponibilizar diretamente suas alterações (do submódulo).
Por padrão, os scripts de CI obtêm submódulos a cada invocação. Para prevenir
esse comportamento enquanto você trabalha dentro de um submódulo, defina a
variável de ambiente GET=no. Você também precisa executar
git fetch --unshallow no submódulo antes de poder submeter um PR. De maneira
alternativa, defina DEPTH=100 e busque novamente os submódulos.
Suporte a DevContainer
Este repositório está configurado para uso em Development Containers, que são suportados por várias IDEs de nuvem e locais como (em ordem alfabética):
Ferramentas
Code-excerpter
Use o code-excerpter para trechos de código que devem permanecer
sincronizados com arquivos-fonte deste repositório. Páginas do site em qualquer
idioma podem conter trechos de código, mas o conteúdo original que os utiliza é
escrito em inglês em content/en e depois atualizado pelas equipes de
localização para seus próprios idiomas.
Na página de origem em inglês, coloque uma diretiva de trecho de arquivo imediatamente antes do bloco de código delimitado que ela atualiza:
<?code-excerpt path-base="content-modules/opentelemetry-java-examples/doc-snippets/getting-started"?>
<?code-excerpt "src/main/java/otel/DiceApplication.java" from="@SpringBootApplication"?>
```java
@SpringBootApplication
public class DiceApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(DiceApplication.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
}
}
```
Use uma diretiva opcional path-base uma única vez, próximo ao topo da página,
quando vários trechos vierem do mesmo diretório. Para detalhes sobre a sintaxe
da diretiva code-excerpt, consulte o README do code-excerpter.
Edite o arquivo-fonte ou a diretiva, não o bloco de código. Em seguida, execute o seguinte script npm:
npm run fix:code-excerpts
Para verificar se os trechos de código estão atualizados, execute:
npm run check:code-excerpts
Feedback
Esta página foi útil?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!