bitmath

Projetos que seguem as melhores práticas abaixo podem se autocertificar voluntariamente e mostrar que alcançaram um selo de melhores práticas da Open Source Security Foundation (OpenSSF).

Não existe um conjunto de práticas que possa garantir que o software nunca terá defeitos ou vulnerabilidades; mesmo métodos formais podem falhar se as especificações ou suposições estiverem erradas. Nem existe qualquer conjunto de práticas que possa garantir que um projeto sustentará uma comunidade de desenvolvimento saudável e bem-funcionada. No entanto, seguir as melhores práticas pode ajudar a melhorar os resultados dos projetos. Por exemplo, algumas práticas permitem revisão multipessoal antes do lançamento, o que pode ajudar a encontrar vulnerabilidades técnicas difíceis de encontrar e ajudar a construir confiança e desejo de interação repetida entre desenvolvedores de diferentes empresas. Para ganhar um selo, todos os critérios DEVE e NÃO DEVE devem ser atendidos, todos os critérios DEVERIA devem ser atendidos OU não atendidos com justificativa, e todos os critérios SUGERIDO devem ser atendidos OU não atendidos (queremos que sejam considerados pelo menos). Se você quiser inserir texto de justificativa como um comentário genérico, em vez de ser uma justificativa de que a situação é aceitável, inicie o bloco de texto com '//' seguido de um espaço. Feedback é bem-vindo via site do GitHub como questões ou pull requests Há também uma lista de discussão para discussão geral.

Fornecemos com prazer as informações em vários idiomas, no entanto, se houver qualquer conflito ou inconsistência entre as traduções, a versão em inglês é a versão autoritativa.
Se este é o seu projeto, por favor mostre o status do seu selo básico na página do seu projeto! O status do selo básico se parece com isto: O nível do selo básico para o projeto 12749 é baseline-2 Aqui está como incorporar o selo básico:
Você pode mostrar o status do seu selo básico incorporando isto no seu arquivo markdown:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/12749/baseline)](https://www.bestpractices.dev/projects/12749)
ou incorporando isto no seu HTML:
<a href="https://www.bestpractices.dev/projects/12749"><img src="https://www.bestpractices.dev/projects/12749/baseline"></a>


Estes são os critérios de Nível Básico 1. Estes critérios são da versão de referência v2025.10.10 com texto de critérios atualizado da versão v2026.02.19. Os critérios novos na versão v2026.02.19 são rotulados como "futuros" e começarão a ser aplicados a partir de 2026-06-01. Por favor, forneça respostas para os critérios "futuros" antes dessa data.

Baseline Series: Nível Básico 1 Nível Básico 2 Nível Básico 3

        

 Fundamentos

  • Geral

    Observe que outros projetos podem usar o mesmo nome.

    Python module to work with file sizes like numbers - convert, compare, sort, and format across any prefix unit

    Use o formato de expressão de licença SPDX; exemplos incluem "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "GPL-2.0+", "LGPL-3.0+", "MIT" e "(BSD-2-Clause OR Ruby)". Não inclua aspas simples ou aspas duplas.
    Se houver mais de uma linguagem, liste-as como valores separados por vírgula (espaços opcionais) e ordene-as da mais usada para a menos usada. Se houver uma longa lista, liste pelo menos as três primeiras mais comuns. Se não houver linguagem (por exemplo, este é um projeto apenas de documentação ou apenas de teste), use o caractere único "-". Use uma capitalização convencional para cada linguagem, por exemplo, "JavaScript".
    O Common Platform Enumeration (CPE) é um esquema de nomenclatura estruturado para sistemas de tecnologia da informação, software e pacotes. Ele é usado em vários sistemas e bancos de dados ao relatar vulnerabilidades.

 Controles 25/25

  • Controles


    Quando um usuário tentar ler ou modificar um recurso sensível no repositório autorizado do projeto, o sistema DEVE exigir que o usuário complete um processo de autenticação multifator. [OSPS-AC-01.01]
    Imponha autenticação multifator para o sistema de controle de versão do projeto, exigindo que os colaboradores forneçam uma segunda forma de autenticação ao acessar dados sensíveis ou modificar configurações do repositório. Passkeys são aceitáveis para este controle.

    GitHub requires 2FA as of March 2023.



    Quando um novo colaborador for adicionado, o sistema de controle de versão DEVE exigir atribuição manual de permissão, ou restringir as permissões do colaborador aos menores privilégios disponíveis por padrão. [OSPS-AC-02.01]
    A maioria dos sistemas públicos de controle de versão são configurados desta maneira. Certifique-se de que o sistema de controle de versão do projeto sempre atribua as menores permissões disponíveis aos colaboradores por padrão quando adicionados, concedendo permissões adicionais somente quando necessário.

    ▎ The project relies on GitHub's default permission model, which assigns new ▎ collaborators read access only; any elevated permission requires an explicit ▎ manual grant by the repo owner.



    Quando uma confirmação direta for tentada no ramo principal do projeto, um mecanismo de aplicação DEVE impedir que a mudança seja aplicada. [OSPS-AC-03.01]
    Se o VCS for centralizado, defina proteção de ramo no ramo principal no VCS do projeto. Alternativamente, use uma abordagem descentralizada, como a do kernel Linux, onde as mudanças são primeiro propostas em outro repositório, e mesclar mudanças no repositório principal requer um ato separado específico.

    ▎ Branch protection on master enforces 17 required status checks (full Python
    ▎ 3.9–3.13 × {macOS, Ubuntu, Windows} matrix + CodeQL + Bandit) with
    ▎ enforce_admins: true and required_linear_history: true. Direct pushes that fail
    ▎ any check are rejected, including pushes by administrators.



    Quando for feita uma tentativa de excluir o ramo principal do projeto, o sistema de controle de versão DEVE tratar isso como uma atividade sensível e exigir confirmação explícita de intenção. [OSPS-AC-03.02]
    Defina proteção de ramo no ramo principal no sistema de controle de versão do projeto para evitar exclusão.

    ▎ Branch protection on master has allow_deletions: false and enforce_admins: true,
    ▎ so the branch cannot be deleted by any account including the owner.



    Quando um pipeline de CI/CD aceitar um parâmetro de entrada, esse parâmetro DEVE ser sanitizado e validado antes de ser usado no pipeline. [OSPS-BR-01.01]
    Os pipelines de CI/CD devem sanitizar (citar, escapar ou sair com valores esperados) todas as entradas de metadados que correspondam a fontes não confiáveis. Isso inclui dados como nomes de branch, mensagens de commit, tags, títulos de pull requests e informações de autoria.

    ▎ An audit of every ${{ }} interpolation across all 5 workflows (bandit.yml,
    ▎ codeql.yml, publish.yml, python.yml, scorecard.yml) shows the only interpolated
    ▎ values are ${{ matrix.os }} and ${{ matrix.python-version }}, both
    ▎ workflow-defined constants. There is zero use of github.event.*,
    ▎ github.head_ref, github.ref_name, commit messages, PR titles, or branch names in
    ▎ shell contexts. Workflows:
    https://github.com/timlnx/bitmath/tree/master/.github/workflows



    (Critério futuro) Quando um pipeline de CI/CD opera em snapshots de código não confiável, ele DEVE impedir o acesso a credenciais e ativos privilegiados de CI/CD. [OSPS-BR-01.03]
    Os pipelines de CI/CD devem isolar snapshots de código não confiável de credenciais e ativos privilegiados. Em particular, os projetos devem ter cuidado para garantir que os workflows que compilam ou executam código antes da revisão por um colaborador não tenham acesso às credenciais de CI/CD.

    ▎ All PR-triggered workflows use pull_request (not pull_request_target), so PRs
    ▎ from forks execute in the fork's read-only context without access to repository
    ▎ secrets. The only workflow that holds secrets is publish.yml, which fires solely
    ▎ on release: published and uses PyPI Trusted Publishing (OIDC), so no long-lived
    ▎ credentials exist for untrusted code to exfiltrate.



    Quando o projeto listar um URI como um canal oficial do projeto, esse URI DEVE ser entregue exclusivamente usando canais criptografados. [OSPS-BR-03.01]
    Configure os sites do projeto e os sistemas de controle de versão para usar canais criptografados como SSH ou HTTPS para transmissão de dados. Certifique-se de que todas as ferramentas e domínios referenciados na documentação do projeto só possam ser acessados por meio de canais criptografados.

    Project URLs use HTTPS exclusively.



    Quando o projeto listar um URI como um canal oficial de distribuição, esse URI DEVE ser entregue exclusivamente usando canais criptografados. [OSPS-BR-03.02]
    Configure o pipeline de lançamento do projeto para buscar dados apenas de sites, respostas de API e outros serviços que usam canais criptografados como SSH ou HTTPS para transmissão de dados.

    ▎ bitmath is distributed exclusively via PyPI over HTTPS using PyPI's Trusted
    ▎ Publisher (OIDC) flow with sigstore-backed provenance, and via GitHub Releases
    ▎ at https://github.com/timlnx/bitmath/releases. Both channels provide
    ▎ cryptographic integrity protection.



    O projeto DEVE impedir o armazenamento não intencional de dados sensíveis não criptografados, como segredos e credenciais, no sistema de controle de versão. [OSPS-BR-07.01]
    Configure .gitignore ou equivalente para excluir arquivos que possam conter informações sensíveis. Use hooks de pré-commit e ferramentas de varredura automatizadas para detectar e prevenir a inclusão de dados sensíveis em commits.

    ▎ .gitignore excludes generated artifacts and common secret-bearing files. GitHub ▎ secret scanning and Dependabot security updates are enabled at the repository ▎ level. Bandit runs in CI (.github/workflows/bandit.yml) on every push and PR and ▎ weekly on a schedule, with zero open findings.



    Quando o projeto tiver feito uma versão, a documentação do projeto DEVE incluir guias do usuário para todas as funcionalidades básicas. [OSPS-DO-01.01]
    Crie guias do usuário ou documentação para todas as funcionalidades básicas do projeto, explicando como instalar, configurar e usar os recursos do projeto. Se houver quaisquer ações perigosas ou destrutivas conhecidas disponíveis, inclua avisos altamente visíveis.

    ▎ Comprehensive user documentation is published at https://bitmath.readthedocs.io/
    ▎ covering installation, every public unit type, parsing, formatting, arithmetic,
    ▎ capacity queries, and real-life examples. The README at
    https://github.com/timlnx/bitmath also includes a quick-start.



    Quando o projeto tiver feito uma versão, a documentação do projeto DEVE incluir um guia para relatar defeitos. [OSPS-DO-02.01]
    É recomendado que os projetos usem o rastreador de issues padrão do seu VCS. Se uma fonte externa for usada, certifique-se de que a documentação do projeto e o guia de contribuição expliquem de forma clara e visível como usar o sistema de relatório. É recomendado que a documentação do projeto também estabeleça expectativas sobre como os defeitos serão triados e resolvidos.

    ▎ GitHub Issues is enabled and is the canonical bug tracker:
    https://github.com/timlnx/bitmath/issues. The contribution guide at
    https://github.com/timlnx/bitmath/blob/master/.github/CONTRIBUTING.md describes
    ▎ how to file reports.



    Enquanto ativo, o projeto DEVE ter um ou mais mecanismos para discussões públicas sobre mudanças propostas e obstáculos de uso. [OSPS-GV-02.01]
    Estabeleça um ou mais mecanismos para discussões públicas dentro do projeto, como listas de discussão, mensagens instantâneas ou rastreadores de issues, para facilitar a comunicação aberta e feedback.

    ▎ Public discussion happens on GitHub Issues and Pull Requests, both publicly
    ▎ readable. Issues: https://github.com/timlnx/bitmath/issues. PRs:
    https://github.com/timlnx/bitmath/pulls.



    Enquanto ativo, a documentação do projeto DEVE incluir uma explicação do processo de contribuição. [OSPS-GV-03.01]
    Crie um CONTRIBUTING.md ou diretório CONTRIBUTING/ para delinear o processo de contribuição incluindo as etapas para enviar mudanças e se engajar com os mantenedores do projeto.

    ▎ A contribution guide is published at
    https://github.com/timlnx/bitmath/blob/master/.github/CONTRIBUTING.md (GitHub
    ▎ auto-surfaces this on the Issues/PR creation pages) and is also rendered into
    ▎ the docsite at https://bitmath.readthedocs.io/en/latest/contributing.html.



    Enquanto ativo, a licença para o código-fonte DEVE atender à Definição de Código Aberto da OSI ou à Definição de Software Livre da FSF. [OSPS-LE-02.01]
    Adicione um arquivo LICENSE ao repositório do projeto com uma licença que seja uma licença aprovada pela Open Source Initiative (OSI), ou uma licença livre aprovada pela Free Software Foundation (FSF). Exemplos de tais licenças incluem MIT, BSD 2-clause, BSD 3-clause revisada, Apache 2.0, Lesser GNU General Public License (LGPL) e a GNU General Public License (GPL). Lançar para o domínio público atende a este controle se não houver outros obstáculos como patentes.

    ▎ bitmath is licensed under the MIT License, an OSI-approved and FSF-approved
    ▎ license. https://github.com/timlnx/bitmath/blob/master/LICENSE



    Enquanto ativo, a licença para os ativos de software lançados DEVE atender à Definição de Código Aberto da OSI ou à Definição de Software Livre da FSF. [OSPS-LE-02.02]
    Se uma licença diferente for incluída com ativos de software lançados, certifique-se de que seja uma licença aprovada pela Open Source Initiative (OSI), ou uma licença livre aprovada pela Free Software Foundation (FSF). Exemplos de tais licenças incluem MIT, BSD 2-clause, BSD 3-clause revisada, Apache 2.0, Lesser GNU General Public License (LGPL) e a GNU General Public License (GPL). Note que a licença para os ativos de software lançados pode ser diferente do código-fonte.

    ▎ The released wheel and sdist on PyPI are distributed under the same MIT License
    ▎ as the source. https://pypi.org/project/bitmath/



    Enquanto ativo, a licença para o código-fonte DEVE ser mantida no arquivo LICENSE, arquivo COPYING ou diretório LICENSE/ do repositório correspondente. [OSPS-LE-03.01]
    Inclua a licença do código-fonte do projeto no arquivo LICENSE, arquivo COPYING ou diretório LICENSE/ do projeto para fornecer visibilidade e clareza sobre os termos de licenciamento. O nome do arquivo PODE ter uma extensão. Se o projeto tiver múltiplos repositórios, certifique-se de que cada repositório inclua o arquivo de licença.

    ▎ The license text lives at https://github.com/timlnx/bitmath/blob/master/LICENSE
    ▎ in the repository root.



    Enquanto ativo, a licença para os ativos de software lançados DEVE ser incluída no código-fonte lançado, ou em um arquivo LICENSE, arquivo COPYING ou diretório LICENSE/ ao lado dos ativos de versão correspondentes. [OSPS-LE-03.02]
    Inclua a licença dos ativos de software lançados do projeto no código-fonte lançado, ou em um arquivo LICENSE, arquivo COPYING ou diretório LICENSE/ ao lado dos ativos de versão correspondentes para fornecer visibilidade e clareza sobre os termos de licenciamento. O nome do arquivo PODE ter uma extensão. Se o projeto tiver múltiplos repositórios, certifique-se de que cada repositório inclua o arquivo de licença.

    ▎ The Hatchling build backend (pyproject.toml) packages the LICENSE file into both ▎ the wheel and sdist published to PyPI.



    Enquanto ativo, o repositório de código-fonte do projeto DEVE ser publicamente legível em uma URL estática. [OSPS-QA-01.01]
    Use um VCS comum como GitHub, GitLab ou Bitbucket. Certifique-se de que o repositório seja publicamente legível. Evite duplicação ou espelhamento de repositórios a menos que documentação altamente visível esclareça a fonte primária. Evite mudanças frequentes no repositório que impactariam a URL do repositório. Certifique-se de que o repositório seja público.

    ▎ The source repository is publicly readable at the stable URL
    https://github.com/timlnx/bitmath. It has lived at this URL for over a decade
    ▎ and has no mirrors with conflicting authority.



    O sistema de controle de versão DEVE conter um registro publicamente legível de todas as alterações feitas, quem fez as alterações e quando as alterações foram feitas. [OSPS-QA-01.02]
    Use um VCS comum como GitHub, GitLab ou Bitbucket para manter um histórico de commits publicamente legível. Evite esmagar ou reescrever commits de uma forma que obscureça o autor de quaisquer commits.

    ▎ The full commit history is publicly readable at
    https://github.com/timlnx/bitmath/commits/master. Commits preserve author,
    ▎ committer, and timestamp; squash-merging that would obscure authorship is not
    ▎ used.



    Quando o sistema de gerenciamento de pacotes suportar, o repositório de código-fonte DEVE conter uma lista de dependências que representa as dependências diretas da linguagem. [OSPS-QA-02.01]
    Isso pode assumir a forma de um arquivo de dependências de gerenciador de pacotes ou linguagem que enumera todas as dependências diretas, como package.json, Gemfile ou go.mod.

    ▎ Runtime: bitmath has zero runtime dependencies (declared in pyproject.toml:
    https://github.com/timlnx/bitmath/blob/master/pyproject.toml). Development/test
    ▎ dependencies are listed in requirements.txt:
    https://github.com/timlnx/bitmath/blob/master/requirements.txt.



    Enquanto ativo, a documentação do projeto DEVE conter uma lista de quaisquer bases de código que sejam consideradas subprojetos. [OSPS-QA-04.01]
    Documente quaisquer repositórios de código de subprojetos adicionais produzidos pelo projeto e compilados em uma versão de lançamento. Esta documentação deve incluir o status e a intenção da respectiva base de código.

    ▎ bitmath is a single-repository project. No additional sub-project repositories ▎ exist.



    Enquanto ativo, o sistema de controle de versão NÃO DEVE conter artefatos executáveis gerados. [OSPS-QA-05.01]
    Remova artefatos executáveis gerados no sistema de controle de versão do projeto. É recomendado que qualquer cenário em que um artefato executável gerado apareça como crítico para um processo, como testes, ele deve ser gerado no momento da compilação ou armazenado separadamente e buscado durante uma etapa de pipeline específica e bem documentada.

    ▎ git ls-files returns no .exe, .dll, .so, .dylib, .jar, .whl, .pyc, or other ▎ generated executable artifacts. Build outputs are excluded via .gitignore.



    Enquanto ativo, o sistema de controle de versão NÃO DEVE conter artefatos binários não revisáveis. [OSPS-QA-05.02]
    Não adicione nenhum artefato binário não revisável ao sistema de controle de versão do projeto. Isso inclui binários de aplicativos executáveis, arquivos de biblioteca e artefatos similares. Não inclui recursos como imagens gráficas, arquivos de som ou música e conteúdo similar normalmente armazenado em formato binário.

    ▎ Security contact and vulnerability disclosure process are published in
    https://github.com/timlnx/bitmath/blob/master/SECURITY.md, which GitHub surfaces
    ▎ in the repository's Security tab.



    Enquanto ativo, a documentação do projeto DEVE conter contatos de segurança. [OSPS-VM-02.01]
    Crie um arquivo security.md (ou com nome similar) que contenha contatos de segurança para o projeto.

    Security policy published in github standard way https://github.com/timlnx/bitmath/security/policy which pulls from the file in source control https://github.com/timlnx/bitmath/blob/master/SECURITY.md [vulnerability_report_process]



    (Critério obsoleto) Quando um pipeline de CI/CD usar um nome de ramo em sua funcionalidade, esse valor de nome DEVE ser sanitizado e validado antes de ser usado no pipeline. [OSPS-BR-01.02]

    ▎ Marked obsolete in the OSPS criteria; superseded by OSPS-BR-01.01, which the ▎ project meets (see #5).



Estes dados estão disponíveis sob o Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0). Isso significa que um Destinatário de Dados pode compartilhar os Dados, com ou sem modificações, desde que o Destinatário de Dados disponibilize o texto deste acordo com os Dados compartilhados. Por favor, dê crédito a Tim Case e aos contribuidores do selo de melhores práticas OpenSSF.

Entrada de selo do projeto de propriedade de: Tim Case.
Entrada criada em 2026-05-04 23:07:38 UTC, última atualização em 2026-05-24 07:07:48 UTC. Selo de aprovação alcançado pela última vez em 2026-05-24 04:07:11 UTC.