Skip to main content

occam-gitignore

Deterministic, content-addressed .gitignore generator. Given the same project tree, always produces the same output — byte-for-byte — with a provenance_hash header so any third party can verify the result was generated by an honest implementation of the algorithm.

pipx install occam-gitignore
occam-gitignore generate /path/to/repo > .gitignore

Why deterministic?

A .gitignore is part of your repo's reproducible build surface. If two checkouts of the same commit produce different ignore files, your CI is lying. occam-gitignore fingerprints the project tree, runs a pure function over a content-addressed templates table + a versioned mined-rules table, and emits an ignore file annotated with hashes of every input. No I/O ordering, no clock, no hostname.

Guarantees

  • Determinism: identical inputs ⇒ identical bytes (UTF-8, LF, single trailing newline). Property-tested with Hypothesis (P1–P7) and validated by a 32-case conformance suite that any external implementation can run.
  • Content addressing: templates and rules table carry sha256:<12-hex> versions; mismatched declarations are rejected at load time.
  • Provenance: every emitted .gitignore includes a header with the full provenance_hash (Merkle of core + templates + rules_table + content) so drift is one grep away.
  • Supply chain: every release ships with an SPDX SBOM and a SLSA Level 3 build provenance attestation.

Links

MIT licensed.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

occam_gitignore-0.3.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

occam_gitignore-0.3.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file occam_gitignore-0.3.0.tar.gz.

File metadata

  • Download URL: occam_gitignore-0.3.0.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for occam_gitignore-0.3.0.tar.gz
Algorithm Hash digest
SHA256 5a129d1627f82237c00f117b8ee6855a35659d42da7ef9876fda33257f337c86
MD5 b11136485f7801cc2fdff03c16ce14b3
BLAKE2b-256 460714992b838f240fb44e81d9135aeed1bdfdcfdc5b3a478df6b898e938e65e

See more details on using hashes here.

Provenance

The following attestation bundles were made for occam_gitignore-0.3.0.tar.gz:

Publisher: release.yml on fabriziosalmi/occam-gitignore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file occam_gitignore-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: occam_gitignore-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for occam_gitignore-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06831c97dc5498d96c8239779134608951b2a691a59e3c5581398a9a2cdd20da
MD5 0ff6643733ca2b0e5d5dea5a55140027
BLAKE2b-256 0b9c7cadb5619b715a16139cf45af52f88daf78256c0e9d387ca3707e17cee73

See more details on using hashes here.

Provenance

The following attestation bundles were made for occam_gitignore-0.3.0-py3-none-any.whl:

Publisher: release.yml on fabriziosalmi/occam-gitignore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.1.3

2 files

0.1.2

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page