índice de pacotes do fortran-lang.org#
Critérios para pacotes#
Os seguintes critérios são necessário para que os pacotes sejam indexados:
Relevância: o pacote deve ser principalmente implementado em Fortran ou prover uma interface Fortran completa para um pacote existente ou que tenha o propósito exclusivo de desenvolvimento de software em Fortran.
Maturidade: a principal funcionalidade do pacote deve ser implementada. Nenhum protótipo, teste ou pacotes parcialmente completos serão aceitos. Se o pacote está hospedado no github ou similar, ele deve conter pelo menos 5 “estrelas”.
Disponibilidade: a fonte do pacote deve estar disponível gratuitamente para olhar online ou clonar ou fazer download
Open source: o pacote deve estar licenciado sob um licença open-source apropriada com o arquivo da licença evidentemente incluso dentro do código-fonte
Originalidade: O pacote não deve ser um fork ou revisão minoritária de pacotes existentes
README: o pacote deve conter alguma forma de README ou landing-page declarando claramente o propósito do pacote e sua funcionalidade. Deve também conter informações sobre as dependências utilizadas e os passos necessários para realizar o build da aplicação e rodá-la.
Os critérios a seguir não são necessários mas recomendados:
Documentação: Qualquer tipo de documentação escrita focada nos usuários do pacote. Idealmente isso deve cobrir:
Compiladores suportados / testados
Dependências
Processo de build e instalação
Módulos contidos dentro do pacote
Procedimentos disponíveis e suas interfaces
Código de exemplo
Contribuindo: Detalhes em como usuários podem submeter issues e contribuir para o desenvolvimento do pacote
Testes: qualquer forma de testes executáveis que podem ser usados para verificar a funcionalidade do pacote
Portabilidade: sem extensões ou dependências proprietárias da linguagem fora do padrão
FPM: suporte de instalação pelo Fortran Package Manager fpm
Processo para adicionar pacotes#
Usuários devem confirmar que seus projetos atendam aos requisitos mínimos para serem listados no índice de pacotes do Fortran, como descrito nesse documento
Usuários devem abrir um pull request usando o template “Package index request”
Pelo menos três membros da comunidade da linguagem Fortran devem revisar a requisição de acordo com os critérios acima
Se três ou mais membros da linguagem Fortran concordarem que o pacote deve ser listado e não houver objeções significativas, então o pull request terá seu merge
Pedidos de indexação de pacotes#
Pedidos de indexação de pacotes são feitos por meio de pull requests para o repositório fortran-lang.org. Veja este guia para orientações em como fazer forks e pull requests.
Detalhes do pacote são listados no arquivo data/package_index.yml
.
Para adicionar um pacote crie uma nova entrada dentro desse arquivo. Os dados do arquivo são ordenados por categorias meramente para auxiliar na navegação, encontre a categoria apropriada para adicionar seu pacote e crie uma nova entrada.
Após adicionar uma nova entrada ao índice de pacotes, rode o github action fortran_packages antes de realizar o build do sphinx.#
Pacotes no Gihub#
- name: <Package_name>
github: <github_user>/<repository_name>
description: <single_line_description>
categories: <category1> [category2]
tags: [tag1] [tag2] [tag3]
version: [version]
license: [license]
Categorias válidas:
libraries
: bibliotecas em geralinterfaces
: biblioteca que fornecem interface para outras bibliotecas, software ou dispositivosprogramação
: utilitários gerais de programação: erros, logging, testes, documentação etc.tipos de dados
: bibliotecas fornecendo tipos de dados avançados: containers, datetime, matrizes redimensionáveis etc.string
: bibliotecas de manipulação de stringio
: bibliotecas que transformam ou geram vários formatos de arquivosgráficos
: plots e GUIsnumérico
: matrizes, algebra linear, solucionadores, cálculo de raiz, interpolação, otimização, equações diferenciais, estatística, aprendizado de máquina, números aleatórios etc.científico
: bibliotecas ou aplicações científicas de domínio específicoexemplos
: repositórios fornecendo demonstrações de recursos da linguagem, tutoriais e benchmarks
Projetos listando mais de uma categoria deve prover boas justificativas para essa decisão no pull request.
Notas:
A descrição do pacote deve descrever claramente as funcionalidades do pacote em uma única frase.
Tags (opcional) deve conter quaisquer termos não contidos no nome ou na descrição que os usuários podem buscar diretamente o termo. Tags devem ser separadas por espaço.
Versão do pacote
isso pode ser determinado automaticamente se a versão da release foi criada no github
se a versão é especificada, ela irá sobrescrever qualquer versão detectada do github
se a versão é “none”, então nenhuma informação de versão será apresentada. (Use isso se o seu pacote não tiver versão.)
Licença do pacote
isso pode ser determinado automaticamente se o github está habilitado para detectar uma licença conhecida
a licença deve ser especificada se o github estiver desabilitado para detectar uma licença conhecida
Pacotes fora do GitHub#
- name: <Package_name>
url: <repo_url>
description: <single_line_description>
categories: <category1> [category2]
tags: [tag1] [tag2] [tag3]
version: [version]
license: <license>
Notas:
Informações de licença e versão não podem ser detectadas automaticamente para repositórios fora do github
se o seu pacote não tiver versão, então omita o campo «version»
Uma licença deve ser especificada para repositórios fora do github
Lista de pontos que devem observados durante a revisão#
Membros da comunidade revisando pacotes devem cobrir os seguintes pontos:
Garante que o pacote atenda aos critérios mínimos definidos nesse documento
Verifique os metadados do pacote
Repositório existe e é acessível
Descrição descreve concisa e claramente o pacote
Categoria atribuída é apropriada
Cheque as informações de licenciamento
Se o campo «license» foi omitido: cheque se o github detectou a licença
Se o campo «license» foi incluído: cheque se corresponde com o arquivo da licença do repositório
Após o merge:
Cheque se o pacote está disponível na categoria esperada e busca