Skip to content

Conversation

@dwoz
Copy link
Contributor

@dwoz dwoz commented Nov 4, 2025

Modules

init.py

Public API surface. Re-exports 11 key items from submodules for backward compatibility.

builder.py

  • Builder class: Core build orchestration, recipe management, dependency ordering
  • Dirs class: Working directory structure (root, source, build, prefix, logs)
  • builds: Global Builder registry
  • get_dependency_version(): Fetch dependency metadata from python-versions.json

builders.py

Specific build functions for dependencies:

  • build_openssl() / build_openssl_fips()
  • build_sqlite()
  • build_default(): Generic configure/make/make install

download.py

  • Download class: Manages tarball downloads with URL templating, checksums, fallback URLs
  • verify_checksum(): SHA-1/SHA-256 validation

install.py

Post-build installation tasks:

  • install_runtime(): Copy runtime files into build
  • finalize(): Create symlinks, patch shebangs, fix rpaths
  • create_archive(): Package build into tarball
  • update_ensurepip(): Install bundled pip
  • patch_file() / patch_shebang() / patch_shebangs(): Text/binary patching

platform.py

Platform detection and triplet generation (x86_64-linux-gnu, etc.)

ui.py

Build progress tracking:

  • BuildStats: Persistent build timing/line count statistics
  • LineCountHandler: Real-time progress estimation using exponential moving averages
  • Persistent JSON storage for learning build patterns

Dependencies

Platform-specific modules (linux.py, darwin.py, windows.py) import from this package
and add platform-specific recipes to builds registry.

@dwoz dwoz merged commit 268e1a8 into saltstack:main Nov 4, 2025
66 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant