bitmath

Miradi inayofuata mazoea bora hapa chini inaweza kujihakikisha kwa hiari na kuonyesha kuwa wamepata nishani ya mazoea bora ya Open Source Security Foundation (OpenSSF).

Hakuna seti ya mazoea yawezayo kuhakikisha kuwa programu haitakuwa na kasoro au udhaifu; hata mbinu rasmi zinaweza kushindwa ikiwa vipimo au dhana ni sahihi. Wala hakuna seti ya mazoea yawezayo kuhakikisha kuwa mradi utaendelea kuwa na jamii ya maendeleo yenye afya na inayofanya kazi vizuri. Hata hivyo, kufuata mazoea bora kunaweza kusaidia kuboresha matokeo ya miradi. Kwa mfano, baadhi ya mazoea huwezesha ukaguzi wa watu wengi kabla ya kutolewa, ambayo inaweza kusaidia kupata udhaifu wa kiufundi ambao vinginevyo ni vigumu kupata na kusaidia kujenga uaminifu na hamu ya mwingiliano wa kurudia kati ya wasanidi programu kutoka makampuni tofauti. Ili kupata nishani, vigezo vyote vya LAZIMA na LAZIMA WALA USIWAHI lazima vifuatwe, vigezo vyote vya INAPASWA lazima vifuatwe AU visivyo fufufutiliana na thibitisho, na vigezo vyote vya PENDEKEZA lazima vifuatwe AU visivyo fufufutiliana (tunataka vifikiwe angalau). Ikiwa unataka kuingiza maandishi ya thibitisho kama maoni ya jumla, badala ya kuwa maelezo ya busara kwamba hali ni inakubaliwa, anza kifungu cha maandishi na '//' ikifuatiwa na nafasi. Maoni ni karibu kupitia tovuti ya GitHub kama masuala au maombi ya kuvuta Kuna pia orodha ya barua pepe kwa majadiliano ya jumla.

Tunafuraha kutoa habari katika lugha nyingi, hata hivyo, ikiwa kuna mgongano au kutokuwa na usawa kati ya tafsiri, toleo la Kiingereza ni toleo lenye mamlaka.
Ikiwa huu ni mradi wako, tafadhali onyesha hali ya nishani yako ya msingi kwenye ukurasa wa mradi wako! Hali ya nishani ya msingi inaonekana kama hii: Kiwango cha nishani ya msingi kwa mradi 12749 ni baseline-2 Huu ndiyo jinsi ya kuweka nishani ya msingi:
Unaweza kuonyesha hali ya nishani yako ya msingi kwa kuweka hii katika faili yako ya markdown:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/12749/baseline)](https://www.bestpractices.dev/projects/12749)
au kwa kuweka hii katika HTML yako:
<a href="https://www.bestpractices.dev/projects/12749"><img src="https://www.bestpractices.dev/projects/12749/baseline"></a>


Hizi ni vigezo vya Kiwango cha Msingi 2. Hizi ni vigezo vya toleo v2026.02.19.

Baseline Series: Kiwango cha Msingi 1 Kiwango cha Msingi 2 Kiwango cha Msingi 3

        

 Misingi

  • Jumla

    Kumbuka kwamba miradi mingine inaweza kutumia jina sawa.

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

    Tafadhali tumia muundo wa maneno ya leseni ya SPDX; mifano ni pamoja na "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "GPL-2.0+", "LGPL-3.0+", "MIT", na "(BSD-2-Clause OR Ruby)". Usitumie alama za nukuu za moja au mbili.
    Ikiwa kuna lugha zaidi ya moja, ziorodhe kama thamani zilizotengwa kwa koma (nafasi ni za hiari) na ziorodhe kuanzia iliyotumiwa zaidi hadi iliyotumiwa kidogo. Ikiwa kuna orodha ndefu, tafadhali orodhesha angalau tatu za kawaida zaidi. Ikiwa hakuna lugha (k.m., huu ni mradi wa nyaraka tu au wa majaribio tu), tumia herufi moja "-". Tafadhali tumia herufi kubwa za kawaida kwa kila lugha, k.m., "JavaScript".
    Common Platform Enumeration (CPE) ni mpango wa kuweka majina yenye muundo kwa mifumo ya teknolojia ya habari, programu, na vifurushi. Inatumika katika mifumo na hifadhidata nyingi wakati wa kuripoti udhaifu.

 Udhibiti 19/19

  • Udhibiti


    Wakati kazi ya CI/CD inatekelezwa bila ruhusa zilizobainishwa, mfumo wa CI/CD LAZIMA uweke chaguomsingi ruhusa za kazi kuwa ruhusa za chini kabisa zinazotolewa katika mfumo wa kuendeshea. [OSPS-AC-04.01]
    Sanidi mipangilio ya mradi ili kupeana ruhusa za chini zaidi zinazopatikana kwa mifumo mipya ya kuendeshea kwa chaguomsingi, ukitoa ruhusa za ziada tu zinapohitajika kwa kazi maalum.

    Every workflow in .github/workflows/ declares permissions: read-all at the top level, so any task without an explicit permission block runs read-only. Elevated permissions (security-events: write, id-token: write) are scoped to specific jobs only where required. Verifiable at https://github.com/timlnx/bitmath/tree/master/.github/workflows



    Wakati toleo rasmi linapotengenezwa, toleo hilo LAZIMA lipatiwe kitambulisho cha pekee cha toleo. [OSPS-BR-02.01]
    Peana kitambulisho cha pekee cha toleo kwa kila toleo linalozalishwa na mradi, ukifuata mkondo thabiti wa kutaja au mpango wa nambari. Mifano ni pamoja na SemVer, CalVer, au kitambulisho cha kuwasilisha cha git.

    Releases follow Semantic Versioning. The single source of truth is the VERSION file (https://github.com/timlnx/bitmath/blob/master/VERSION), which pyproject.toml reads dynamically via [tool.hatch.version]. Each release is tagged in git and published to PyPI under its SemVer identifier: https://github.com/timlnx/bitmath/releases



    Wakati toleo rasmi linapotengenezwa, toleo hilo LAZIMA liwe na kumbukumbu ya maelezo ya marekebisho ya utendakazi na usalama. [OSPS-BR-04.01]
    Hakikisha kuwa matoleo yote yanajumuisha kumbukumbu ya mabadiliko ya maelezo. Inashauriwa kuhakikisha kuwa kumbukumbu ya mabadiliko inaweza kusomwa na binadamu na inajumuisha maelezo zaidi ya ujumbe wa ahadi, kama vile maelezo ya athari za usalama au uhusiano na matumizi tofauti. Ili kuhakikisha kusomwa kwa mashine, weka maudhui chini ya kichwa cha markdown kama "## Changelog".

    Every release has a corresponding section in NEWS.rst (https://github.com/timlnx/bitmath/blob/master/NEWS.rst) describing functional changes, breaking changes, and security-relevant modifications in human-readable prose well beyond commit-message granularity. The same content is also published to GitHub Releases: https://github.com/timlnx/bitmath/releases



    Wakati mfululizo wa ujenzi na toleo unaingia utegemezi, LAZIMA utumie zana zilizowekwa viwango ambapo zinapatikana. [OSPS-BR-05.01]
    Tumia zana za kawaida kwa ikolojia yako, kama vile wasimamizi wa vifurushi au zana za usimamizi wa utegemezi kuingia utegemezi wakati wa ujenzi. Hii inaweza kujumuisha kutumia faili ya utegemezi, faili ya kufuli, au orodha ya kudhibitisha utegemezi unaohitajika, ambayo kisha unavutwa na mfumo wa ujenzi.

    Dependencies are managed through the standard Python packaging stack: pyproject.toml declares build and project metadata per PEP 517/518/621 (https://github.com/timlnx/bitmath/blob/master/pyproject.toml), Hatchling is the build backend, and requirements.txt (https://github.com/timlnx/bitmath/blob/master/requirements.txt) pins the development dependency set. Runtime dependencies are intentionally zero.



    Wakati toleo rasmi linapotengenezwa, toleo hilo LAZIMA liwe na saini au kuhesabiwa kwenye orodha iliyosainiwa ikiwa ni pamoja na hashes za usimbuaji za mali kila moja. [OSPS-BR-06.01]
    Saini mali zote za programu zilizotolewa wakati wa ujenzi kwa saini ya usimbuaji au uthibitisho, kama vile saini ya GPG au PGP, saini za Sigstore, utokeo wa SLSA, au SLSA VSAs. Jumuisha hashes za usimbuaji za mali kila moja katika orodha iliyosainiwa au faili ya metadata.

    Releases are published to PyPI via PyPI Trusted Publishing (OIDC), which produces sigstore-backed PEP 740 attestations attached to every artifact. PyPI also publishes a SHA-256 hash for each released file. The publish workflow is at https://github.com/timlnx/bitmath/blob/master/.github/workflows/publish.yml and trust-publisher metadata is visible on the PyPI project page: https://pypi.org/project/bitmath/



    Wakati mradi umefanya toleo, nyaraka za mradi LAZIMA zijumuishe maelezo ya jinsi mradi unavyochagua, kupata, na kufuatilia utegemezi wake. [OSPS-DO-06.01]
    Inashauriwa kuchapisha habari hii pamoja na nyaraka za kiufundi na muundo wa mradi kwenye rasilimali inayoweza kuonwa hadharani kama vile hifadhi ya msimbo wa chanzo, tovuti ya mradi, au kituo kingine.

    The "Components" section of the contributing guide (https://bitmath.readthedocs.io/en/latest/contributing.html#components) enumerates every development dependency with its purpose and rationale. The zero-runtime-dependency policy and the use of pyproject.toml + requirements.txt for tracking are documented in CLAUDE.md (https://github.com/timlnx/bitmath/blob/master/CLAUDE.md) and visible in pyproject.toml directly.



    Nyaraka za mradi LAZIMA zijumuishe maelekezo ya jinsi ya kujenga programu, ikiwa ni pamoja na maktaba zinazohitajika, mifumo, SDK, na utegemezi. [OSPS-DO-07.01]
    Inashauriwa kuchapisha taarifa hii pamoja na nyaraka za wachangiaji wa mradi, kama vile katika CONTRIBUTING.md au nyaraka nyingine za kazi za msanidi. Hii inaweza pia kuandikwa kwa kutumia malengo ya Makefile au hati nyingine za uendeshaji.

    The contributing guide's "Makefile Targets" section (https://bitmath.readthedocs.io/en/latest/contributing.html#makefile-targets) documents make ci, make build, make docs, and make clean, including their behavior and when to use each. The README also includes a quick-start. The Makefile itself (https://github.com/timlnx/bitmath/blob/master/Makefile) is the authoritative build automation.



    Wakati ikiwa hai, nyaraka za mradi LAZIMA zijumuishe orodha ya wanachama wa mradi walio na ufikiaji wa rasilimali nyeti. [OSPS-GV-01.01]
    Andika washiriki wa mradi na majukumu yao kupitia vitu kama members.md, governance.md, maintainers.md, au faili sawa ndani ya hifadhi ya msimbo wa chanzo wa mradi. Hii inaweza kuwa rahisi kama kujumuisha majina au alama za akaunti katika orodha ya watunzaji, au changamano zaidi kulingana na utawala wa mradi.

    MAINTAINERS.md (https://github.com/timlnx/bitmath/blob/master/MAINTAINERS.md) lists the current maintainer (Tim Case / @timlnx) and explicitly enumerates every sensitive resource that person has access to: the GitHub repository (admin), the PyPI project (via OIDC), the Read The Docs project, and the security-reporting email address.



    Wakati ikiwa hai, nyaraka za mradi LAZIMA zijumuishe maelezo ya majukumu na wajibu wa wanachama wa mradi. [OSPS-GV-01.02]
    Andika washiriki wa mradi na majukumu yao kupitia vitu kama members.md, governance.md, maintainers.md, au faili sawa ndani ya hifadhi ya msimbo wa chanzo wa mradi.

    MAINTAINERS.md (https://github.com/timlnx/bitmath/blob/master/MAINTAINERS.md) describes the maintainer role, responsibilities (PR review, releases, security triage, Code of Conduct enforcement, dependency surface oversight), the decision-making process, and a standing open request for a Debian/Ubuntu co-maintainer (tracked in https://github.com/timlnx/bitmath/issues/117).



    Wakati ikiwa hai, nyaraka za mradi LAZIMA zijumuishe mwongozo kwa wachangiaji wa msimbo ambao unajumuisha mahitaji ya michango inayokubalika. [OSPS-GV-03.02]
    Panua yaliyomo ya CONTRIBUTING.md au CONTRIBUTING/ katika nyaraka za mradi ili kuorodhesha mahitaji ya michango inayokubalika, ikiwa ni pamoja na viwango vya kuandika msimbo, mahitaji ya majaribio, na miongozo ya kuwasilisha kwa wachangiaji wa msimbo. Inashauriwa kuwa mwongozo huu ni chanzo cha ukweli kwa wachangiaji na waidhinishaji.

    The contributing guide (https://bitmath.readthedocs.io/en/latest/contributing.html) documents the requirements for acceptable contributions including: code style (pycodestyle PEP 8 + pylint 10.00/10 target), commit message conventions, the pull request workflow with required CI status checks, testing expectations (unit tests for new functionality), the supported Python version policy, and the Makefile targets contributors should run locally before submitting.



    Wakati ikiwa hai, mfumo wa kudhibiti toleo LAZIMA uhitaji wachangiaji wote wa msimbo kudai kuwa wanaruhusiwa kisheria kufanya michango husika kwenye ahadi kila moja. [OSPS-LE-01.01]
    Jumuisha DCO katika hifadhi ya mradi, kuhitaji wachangiaji wa msimbo kudai kuwa wanaruhusiwa kisheria kuwasilisha michango husika kwenye ahadi kila moja. Tumia ukaguzi wa hali kuhakikisha dai linafanywa. CLA pia inakidhi mahitaji haya. Mifumo fulani ya kudhibiti toleo, kama vile GitHub, inaweza kujumuisha hii katika masharti ya huduma ya jukwaa.

    bitmath is hosted on GitHub. Per the GitHub Terms of Service, §D.6 "Contributions Under Repository License," every contributor pushing to a public repository licenses their contribution under the repository's license by the act of pushing. The OSPS criterion text itself acknowledges: "Some version control systems, such as GitHub, may include this in the platform terms of service." This control is satisfied via that mechanism.



    Wakati ahadi inafanywa kwenye tawi kuu, ukaguzi wowote wa kiotomatiki wa hali za ahadi LAZIMA upite au upuuzwe kwa mikono. [OSPS-QA-03.01]
    Sanidi mfumo wa kudhibiti toleo wa mradi kuhitaji kuwa ukaguzi wote wa kiotomatiki wa hali upite au kuhitaji thibitisho la mikono kabla ya ahadi kuweza kuunganishwa kwenye tawi kuu. Inashauriwa kuwa ukaguzi wowote wa hiari HAUPASWI kusanidiwa kama mahitaji ya kupita au kushindwa ambayo waidhinishaji wanaweza kuwa na msukumo wa kupuuza.

    Branch protection on master requires 17 status checks to pass before any commit can be merged: the full Python 3.9–3.13 × {macOS, Ubuntu, Windows} test matrix plus CodeQL and Bandit. enforce_admins: true so even the repo owner cannot bypass these checks.



    Kabla ya ahadi kukubalika, mifululizo ya CI/CD ya mradi LAZIMA iendeshe angalau seti moja ya majaribio ya kiotomatiki kuhakikisha mabadiliko yanakidhi matarajio. [OSPS-QA-06.01]
    Majaribio ya kiotomatiki yanapaswa kuendeshwa kabla ya kuunganisha kila moja kwenye tawi kuu. Seti ya majaribio inapaswa kuendeshwa katika mfululizo wa CI/CD na matokeo yanapaswa kuonekana kwa wachangiaji wote. Seti ya majaribio inapaswa kuendeshwa katika mazingira thabiti na inapaswa kuendeshwa kwa njia inayoruhusu wachangiaji kuendesha majaribio kienyeji. Mifano ya seti za majaribio ni pamoja na majaribio ya kitengo, majaribio ya uunganishaji, na majaribio ya mwisho-hadi-mwisho.

    The .github/workflows/python.yml workflow (https://github.com/timlnx/bitmath/blob/master/.github/workflows/python.yml) runs the full pytest suite on every push and pull request, across Python 3.9, 3.10, 3.11, 3.12, and 3.13 on macOS, Ubuntu, and Windows. Test results are publicly visible on every PR, and the same tests can be run locally via make ci.



    Mradi ulipotoa toleo, nyaraka za mradi LAZIMA zijumuishe nyaraka za muundo zinazoonyesha matendo yote na watendaji ndani ya mfumo. [OSPS-SA-01.01]
    Jumuisha miundo katika nyaraka za mradi inayoeleza matendo na watendaji. Watendaji ni pamoja na mfumo wowote mdogo au kipengele ambacho kinaweza kuathiri sehemu nyingine katika mfumo. Hakikisha hii inasasishwa kwa vipengele vipya au mabadiliko ya kuvunja.

    ARCHITECTURE.md (https://github.com/timlnx/bitmath/blob/master/ARCHITECTURE.md) at the repository root documents the system as actors and actions across two scopes: the runtime library (user code → public API → class hierarchy → OS abstraction layer) and the build/release pipeline (PyPI flow plus the parallel Packit-driven Fedora/EPEL RPM flow). The Maintenance section establishes an update contract tied to public API, build pipeline, and trust boundary changes, with review at every minor release.



    Mradi ulipotoa toleo, nyaraka za mradi LAZIMA zijumuishe maelezo ya kiolesura vyote vya nje vya programu vya mali za programu zilizotolewa. [OSPS-SA-02.01]
    Eleza kiolesura vyote vya programu (APIs) vya mali za programu zilizotolewa, ukieleza jinsi watumiaji wanaweza kuingiliana na programu na data gani inatarajiwa au inazalishwa. Hakikisha hii inasasishwa kwa vipengele vipya au mabadiliko ya kuvunja.

    Every public class, method, and module-level function in bitmath has reference documentation at https://bitmath.readthedocs.io/ covering inputs, outputs, exceptions, and usage examples. The documentation source is in docsite/source/ and is regenerated from the codebase on every release.



    Mradi ulipotoa toleo, mradi LAZIMA ufanye tathmini ya usalama ili kuelewa matatizo ya uwezekano wa usalama ambayo ni ya uwezekano zaidi na yenye athari kubwa ambayo yangeweza kutokea ndani ya programu. [OSPS-SA-03.01]
    Kufanya tathmini ya usalama huwaelimisha wajumbe wa mradi na pia watumiaji wa chini kwamba mradi unaelewa matatizo ambayo yangeweza kutokea ndani ya programu. Kuelewa vitisho ambavyo vingeweza kutambuliwa husaidia mradi kudhibiti na kushughulikia hatari. Habari hii ni muhimu kwa watumiaji wa chini ili kuonyesha ujuzi wa usalama na mazoea ya mradi. Hakikisha hii inasasishwa kwa vipengele vipya au mabadiliko ya kuvunja.

    SECURITY_ASSESSMENT.md (https://github.com/timlnx/bitmath/blob/master/SECURITY_ASSESSMENT.md) is a standing threat model that describes: what bitmath does and deliberately does not do (no network, no eval, no subprocess, zero runtime dependencies); the realistic attack surfaces ranked by concern (parse_string, filesystem helpers, query_device_capacity, the build/release pipeline); the mitigations in place for each; and the automated security tooling continuously assessing the project (Bandit, CodeQL, OSSF Scorecard, Dependabot, GitHub secret scanning). It is committed to revisit at every minor release.



    Ikiwa iko hai, nyaraka za mradi LAZIMA zijumuishe sera ya ufichuaji wa udhaifu wa pamoja (CVD), yenye muda maalum wa kujibu. [OSPS-VM-01.01]
    Unda faili ya SECURITY.md mzizini mwa saraka, ikielezea sera ya mradi ya ufichuaji wa udhaifu wa pamoja. Jumuisha njia ya kuripoti udhaifu. Weka matarajio ya jinsi mradi utajibu na kushughulikia masuala yaliyoripotiwa.

    SECURITY.md (https://github.com/timlnx/bitmath/blob/master/SECURITY.md) documents the coordinated vulnerability disclosure process with explicit response timeframes: acknowledgement of receipt within 72 hours, initial triage assessment within 7 days, and coordinated disclosure synchronized with the patch release that contains the fix. Backup contact channels are provided in case the primary email path fails.



    Ikiwa iko hai, nyaraka za mradi LAZIMA zitoe njia ya kuripoti udhaifu wa faragha moja kwa moja kwa mawasiliano ya usalama ndani ya mradi. [OSPS-VM-03.01]
    Toa njia kwa watafiti wa usalama kuripoti udhaifu kwa faragha kwa mradi. Hii inaweza kuwa anwani ya barua pepe mahususi, fomu ya wavuti, zana maalum za VCS, anwani za barua pepe kwa mawasiliano ya usalama, au mbinu nyingine.

    Two private reporting channels are available, both documented in SECURITY.md (https://github.com/timlnx/bitmath/blob/master/SECURITY.md): GitHub's native Private Vulnerability Reporting (enabled on the repository, accessible via the Security tab), and direct email to bitmath@lnx.cx. Bluesky and Instagram are listed as emergency backup channels if both primary methods fail.



    Ikiwa iko hai, nyaraka za mradi LAZIMA zichapisha hadharani data kuhusu udhaifu uliogundulika. [OSPS-VM-04.01]
    Toa habari kuhusu udhaifu unaojulikana katika kituo cha hadharani kinachoweza kutabirika, kama vile ingizo la CVE, chapisho la blogi, au njia nyingine. Kwa kiwango kinachowezekana, habari hii inapaswa kujumuisha toleo(matoleo) lililoathirika, jinsi mtumiaji anavyoweza kubaini kama wanaathirika, na maelekezo ya kuzuia au kurekebisha.

    The project publishes vulnerability information through GitHub Security Advisories (https://github.com/timlnx/bitmath/security/advisories) with CVE numbers when applicable, and through the relevant version's section in NEWS.rst. As of submission, zero vulnerabilities have been reported or confirmed against bitmath, so no advisories exist yet, but the publication channel is configured and operational.



Data hii inapatikana chini ya Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0). Hii inamaanisha kuwa Mpokeaji wa Data anaweza kushiriki Data, na au bila marekebisho, mradi Mpokeaji wa Data anapatanisha maandishi ya mkataba huu na Data iliyoshirikiwa. Tafadhali tambua Tim Case na wachangiaji wa nishani ya Mazoea Bora ya OpenSSF.

Ingizo la nishani ya mradi linamilikiwa na: Tim Case.
Ingizo liliundwa siku 2026-05-04 23:07:38 UTC, iliyosasishwa mara ya mwisho siku 2026-05-24 07:07:48 UTC. Ilipata mara ya mwisho nishani ya kupita siku 2026-05-24 04:07:11 UTC.