Files
voculinux/.gitignore
T
498d876627 ci(release): pin build tooling and gate reproducible wheels (#945)
* feat(build): add locked reproducible wheel gate

Build independently in clean source trees and virtualenvs, compare wheel bytes, and stage only verified canonical distributions. Safely clean recognized prior outputs on repeat runs.

Part of #701

* ci(release): verify wheel reproducibility before publishing

Run the shared gate in PR and tag workflows, preserve failure diagnostics, and keep verification artifacts out of release checksums. Make Snap Store publication wait for the gate and reuse the canonical distributions for PyPI.

Part of #701

* docs(release): document reproducible wheel validation

Describe the locked toolchain, canonical publication boundary, same-platform scope, diagnostic outputs, and safe automatic cleanup.

* chore(scripts): update executable permissions

* fix(build): isolate release tooling and preserve cleanup retries

Exclude host site-packages from build-only virtualenvs so unlocked setuptools plugins cannot affect verified distributions. Delete staged artifacts before canonical ownership evidence to recover safely from interrupted cleanup.

Add regression tests and document the build-only environment exception.

* fix(release): make reproducible builds retryable and refresh tools

Regenerate release build exports from uv.lock. Hold a checkout lock through cleanup and staging, and atomically rename complete archives into dist. Cover interrupted staging, competing processes, and lock release with regression tests.

---------

Co-authored-by: Kanishk Pachauri <itskanishkp.py@gmail.com>
Co-authored-by: sesav <1636488+sesav@users.noreply.github.com>
2026-10-23 22:16:02 -07:00

181 lines
2.3 KiB
Plaintext

# Python bytecode files
__pycache__/
*.py[cod]
*$py.class
# Distribution / packaging
dist/
build/
/.reproducible-wheel.lock
.reproducible-wheel-stage-*/
*.egg-info/
*.egg
*.snap
# snapcraft local build trees (repo root only)
/parts/
/prime/
/stage/
/snap/.snapcraft/
/.snapcraft/
# Virtual environments
venv/
env/
ENV/
.env
.venv/
activate-vocalinux.sh
# Local development settings
.vscode/
.idea/
*.swp
*.swo
*~
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
coverage.xml
*.cover
.pytest_cache/
.nyc_output
# Downloaded models and data
*.model
/models/
.local/
# Log files
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# OS specific files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# Installed desktop entries
*-installed.desktop
# Pre-commit
.pre-commit-cache/
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Package manager lock files (keep bun.lock but ignore others if mixed)
# Allow package-lock.json in web directory for GitHub Actions caching
yarn.lock
pnpm-lock.yaml
package-lock.json
!web/package-lock.json
# Build outputs
out/
.next/
.nuxt/
dist/
build/
# Flatpak build artifacts
.flatpak-builder/
build-dir/
/repo/
*.flatpak
# Environment variables
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Coverage directory used by tools like istanbul
coverage/
.nyc_output
# ESLint cache
.eslintcache
# Prettier cache
.prettierache
# TypeScript cache
*.tsbuildinfo
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# Dependency directories
jspm_packages/
# Temporary folders
tmp/
temp/
MagicMock/
tmp/
temp/
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.swp
*.swo
*~
# Turbo
.turbo
# Vercel
.vercel
# Storybook build outputs
.out
.storybook-out
# Local Netlify folder
.netlify
.claude-workflow-rules.md
# Analysis documents (keep local)
CROSS_DISTRO_ANALYSIS.md
FIX_PLAN.md
# opentree - local AI worktree orchestration tool (per-developer, not shared)
.opentree/
opentree.toml
# Sisyphus - local AI agent loop state (per-developer, not shared)
.sisyphus/
# Nix build output symlinks
result
result-*