* 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>
181 lines
2.3 KiB
Plaintext
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-*
|