bootstrap_process¶
Overview¶
The bootstrap uses an extensible DAG to reach a specific state with all its dependencies.
For example,
./prime (a trivial proxy) relies on
proto_kernel.py (a local stand-alone copy)
which:
first, bootstraps the environment via itself (outside
venv),then, continues to bootstrap it via
protoprimer.primer_kernel(insidevenv)auto-updates the copy within the client repo (to be available on repo clone)
eventually passes control back to trigger additional client-specific steps
Details¶
The entire bootstrap process involves multiple steps, concepts, "dimensions":
bootstrap_precondition to be met before the start
entry_script executed by the user
shebang_line which selects env vars and
pythoninterpretersub_command where bootstrapping environment is only one of the options
proto_code implementing most of the functionality without
venvpython_executable chain leading to required
pythonversionstate_dependency graph and its traversal
conf_leap where each configuration value is being resolved
primer_runtime switches from
prototovenvenv_layout bootstrapped eventually