í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#

  1. 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

  2. Usuários devem abrir um pull request usando o template “Package index request”

  3. Pelo menos três membros da comunidade da linguagem Fortran devem revisar a requisição de acordo com os critérios acima

  4. 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 geral

  • interfaces: biblioteca que fornecem interface para outras bibliotecas, software ou dispositivos

  • programaçã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 string

  • io: bibliotecas que transformam ou geram vários formatos de arquivos

  • gráficos: plots e GUIs

  • numé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ífico

  • exemplos: 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:

  1. Garante que o pacote atenda aos critérios mínimos definidos nesse documento

  2. Verifique os metadados do pacote

    • Repositório existe e é acessível

    • Descrição descreve concisa e claramente o pacote

    • Categoria atribuída é apropriada

  3. 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