Sobre o projeto

O Gopad é descrito por seus autores como uma interface web simples para escrever e atualizar documentos baseados em markdown, comparável ao Etherpad, mas focado na escrita e formatação de markdown. Este repositório, gopad-api, contém o lado do servidor do projeto, implementado em Go, enquanto a interface do usuário é construída com VueJS. Os mantenedores observam explicitamente que o projeto está em desenvolvimento ativo, que ainda não há um lançamento estável e que mudanças disruptivas devem ser esperadas antes do primeiro lançamento real. Instalação e empacotamento. Binários pré-compilados são oferecidos através de releases do GitHub e um site de download dedicado. O projeto também prepara repositórios de pacotes DEB e RPM hospedados pelo Cloudsmith, imagens de container publicadas no GHCR, Docker Hub e Quay, uma fórmula Homebrew para usuários de macOS e documentação em gopad.eu. O Cloudsmith é creditado como o provedor de hospedagem para os repositórios de pacotes. Processo de build. As versões das ferramentas são gerenciadas com mise; dentro do repositório, executa-se mise trust e mise install para ativá-lo e instalar tudo o que está definido no mise.toml. As etapas de build em si fazem parte de um taskfile do go-task, portanto, a sequência documentada é clonar o repositório, executar task fe:install fe:build be:build e, finalmente, iniciar o binário resultante. Todos os ativos estáticos são incorporados ao binário, portanto, nenhum servidor web adicional é necessário além de iniciar o executável. Fluxo de desenvolvimento. Configurações de DevContainer são fornecidas, para que contribuidores que as utilizem possam começar sem instalar o mise em seus próprios sistemas. O desenvolvimento ativo utiliza duas tarefas de monitoramento (watch) executadas em abas ou janelas de terminal separadas: task watch:server e task watch:frontend. O servidor de desenvolvimento do backend é documentado como operando em localhost:8080 e o frontend em localhost:5173, com hot reloading para que os serviços reiniciem ou recarreguem automaticamente em alterações de código. Contribuição e lançamentos. O projeto segue conventional commits para que changelogs possam ser gerados por lançamento, e solicita que novas funcionalidades ou correções sejam integradas através de pull requests. A numeração de lançamentos segue o versionamento semântico para sinalizar se uma versão corrige bugs, adiciona recursos ou introduz mudanças disruptivas. Após instalar as ferramentas via mise, os contribuidores configuram hooks de pre-commit com prek (gerenciado pelo mise) para os tipos de hook pre-commit e commit-msg. Assim que um pull request é mesclado e os builds são bem-sucedidos, um novo lançamento é criado automaticamente pelo menos uma vez por semana. Relatórios de segurança devem ser enviados primeiramente para gopad@webhippie.de. O projeto está licenciado sob Apache-2.0, com direitos autorais atribuídos a Thomas Boerger a partir de 2018.