Projeto VLC

Esta página contém os detalhes de um projeto de redação técnica aceito para a Google Season of Docs.

Resumo do projeto

Organização de código aberto:
VLC
Redator técnico:
Abhishek Pratap Singh
Nome do projeto:
Continuar a modernização da documentação do usuário do VLC
Duração do projeto:
Duração padrão (três meses)

Project description

STATUS ATUAL DA DOCUMENTAÇÃO

A documentação do usuário do VLC está sendo modernizada e atualizada. A transição está em andamento para ir da documentação mais antiga baseada em wiki[1] para a documentação de usuário moderna construída no Sphinx[2] hospedada no ReadTheDocs.

PÚBLICO-ALVO

O público-alvo é um usuário curioso que quer explorar os recursos do VLC Media Player além de um player de mídia comum e, em certa medida, também ajudará os desenvolvedores a servir como um guia de referência fácil. Por isso, pretendo incluir instruções baseadas em GUI (com imagens, quando relevantes) e métodos baseados em CLI (com snippets de código) para que o usuário final tenha liberdade de escolha.

Acredito que a linguagem da documentação (especialmente a seção da GUI) precisa ser simplificada o suficiente para que uma pessoa com exposição nominal ao funcionamento de computadores consiga entender e implementar o guia. Por outro lado, ela não deve ser muito longa ou explicativa (especialmente a seção de CLI) para que os programadores percam o interesse.

Para alcançar o equilíbrio certo, mencione pré-requisitos no início da página ou mantenha seções opcionais que os especialistas podem pular.

Para criar traduções, o público-alvo é de desenvolvedores/usuários do VLC com bom domínio do inglês e do idioma para o qual a tradução será feita.

FERRAMENTAS

A nova documentação está sendo criada pelo Sphinx e hospedada no ReadTheDocs, e o sistema de controle de versões está implementado no GitLab. Tive alguma experiência anterior com o Git e o GitHub, o que me ajudou a aprender a usar o GitLab, embora alguns recursos diferentes precisem de um tempo para serem aprendidos.

Eu li sobre o Sphinx quando um colega entusiasta de código aberto comentou que muitas organizações estavam usando a ferramenta para criar a documentação, como o Blender, que usa o Sphinx para criar o Manual do Usuário[3] e a documentação da API[4].

Eu conhecia um pouco o ReadTheDocs, que é uma boa ferramenta para controle de versões e hospedagem de documentação técnica. Por isso, consegui criar a documentação do VLC sem muitos problemas e já conheço o reStructured Text, a formatação usada.

Para traduções, o VLC usa o Babel para gerar arquivos .po e implementar i18n e l10n. Atualmente, estou me familiarizando com o fluxo de trabalho do Babel e como criar arquivos .mo usando o Sphinx.

Pretendo usar o período de vinculação para me familiarizar ainda mais com as complexidades das ferramentas mencionadas acima.

ENTREGAS E CRONOGRAMA SEMANAL

Como parte do projeto de 2019, partes da instalação, interface, áudio, vídeo, reprodução etc. (a maioria das funcionalidades básicas) já foram cobertas. Por isso, para o projeto de 2020, gostaria de atualizar e trabalhar na seção de uso avançado da documentação do usuário.

ENTREGA 1 [Semana 1-2]: atualizar a documentação do Transcode, conforme mencionado em #7[5].

  • transcodificar
  • Transcodificar vários vídeos
  • Adicionar um logotipo
  • Mesclar vídeos
  • Extrair áudio e Extrair áudio de um arquivo
  • Extrair um DVD

PRODUTO 2 [Semana 3-4]: atualizar o uso do VLC como um plug-in da Web[6], testando no Firefox 77, Chrome 83 e Edge 83.

  • Como criar páginas da Web com vídeos
  • Atributos de tags incorporadas
  • Descrição da API JavaScript

ENTREGA 3 [Semana 5]: Teste os comandos da interface de linha de comando[7] e atualize de acordo.

  • Streams
  • Seleção de módulos
  • Opções específicas do item
  • Filtros

Semana 6: semana de reserva para as três entregas acima.

ENTREGA 4 [Semana 7-8]: se preparar para as traduções. Além de atualizar, vou preparar traduções para outros idiomas. Isso é importante porque, após a tradução, os usuários que não têm conhecimento do inglês poderão ler a documentação. Além disso, o VLC estaria mais perto de conquistar o domínio do mundo[8].

Conforme mencionado na seção "Ferramentas" da proposta, o VLC atualmente usa o Babel para gerar arquivos .po para traduções. Documento o processo para um usuário/voluntário para:

  • Faça o download e crie a documentação básica localmente.
  • Use o Babel para gerar os arquivos necessários.
  • Insira as traduções das strings.
  • Criar a documentação traduzida usando o Sphinx.
  • Faça commit das alterações.

ENTREGA 5 [Semana 9-10]: Prepare-se para a documentação dos módulos. Conforme conversado com os mentores, pretendo me preparar para a documentação dos módulos em duas partes.

Parte I: criar arquivos próximos aos módulos usando um script que procura opções válidas na base de código e extrai o uso de uma linha (e os valores padrão) das páginas de wiki correspondentes. Isso serviria como rascunho básico.

Parte II: como criar uma estrutura específica para a plataforma que vincula todos os módulos, plug-ins e opções de uma plataforma específica (Windows e, se houver tempo, também para Fedora).

Criar arquivos perto dos módulos garante que a documentação fique próxima do código-fonte. Usando uma abordagem de baixo para cima, a documentação principal dos módulos seria criada combinando os arquivos feitos na Parte I e usando a estrutura feita na Parte II como referência.

Os arquivos criados pela automação precisam de uma revisão, mas a primeira prioridade é criar um framework funcional. Depois disso, e de acordo com o tempo disponível, eu analisaria os arquivos para verificar as opções. O framework está sendo priorizado, porque, assim que estiver disponível, os desenvolvedores e mantenedores também poderão começar a contribuir adicionando casos de uso relevantes.

BÔNUS ENTREGUE [Semana 11]: Prepare-se para o lançamento da versão 4.0. Caso o projeto continue no cronograma, gostaria de propor um bônus. Conforme discutido com os mentores, a preparação para a versão 4.0 implica ter uma documentação estável e quase completa para a versão 3.0.

Por isso, eu verificaria a documentação já concluída das seguintes seções para verificar e atualizar os métodos mencionados:

  • Uso básico: mídia, reprodução, áudio, vídeo, legendas, atalhos, gravações, configurações, dicas e truques.
  • Uso avançado: player, interface, transcodificação, streaming, casos incomuns.
  • Complementos: extensões, skins.

Semana 12: Semana de reserva para os três resultados acima + Relatórios finais.

POR QUE SOU A PESSOA CERTA PARA ESTE PROJETO?

Como entusiasta de tecnologia, tenho experiência no uso/teste de software e, às vezes, tento entender as bases de código. Na verdade, tentar entender a base de código de uma organização de código aberto foi a primeira vez que percebi a importância da documentação. Além disso, como um entusiasta da música, tenho muita experiência em fazer ajustes no VLC :)

Além disso, sou pesquisador e escritor a vida toda. Se não anotar algo, nunca vou entender de verdade, e esse hábito me tornou um bom tomador de notas e documentador.

A interseção desses dois hábitos é o que me torna uma pessoa adequada para documentação técnica. Posso entender os aspectos técnicos e documentar minhas descobertas/processos de uma forma que os usuários entendam.

Links: [1] https://wiki.videolan.org/Documentation:User_Guide/ [2] https://vlc-user-documentation.readthedocs.io/en/latest/index.html [3] https://docs.blender.org/manual/en/latest/ [4] https://docs.blender.org/api/current/index.html [5] https://code.videolan.org/docs/vlc-user/-/issues/7 [6] https://wiki.videolan.org/Documentation:WebPlugin/ [7] https://wiki.videolan.org/Documentation:Command_line/ [8] https://trac.videolan.org/vlc/ticket/35