Allow building from existing sources on disk
@asgrim ci sta già lavorando.
Dal 17/9/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Discussed in https://github.com/php/pie/discussions/694
Originally posted by glensc July 31, 2026
What are you trying to do?
I'd like to separate the download phase from the build/install phase so that extension installation can be performed without network access.
This is useful for Docker/BuildKit builds where only specific build steps are allowed network access. For example:
- Download all required artifacts while networking is enabled.
- Disable networking (
RUN --network=none). - Build and install the extension entirely from the previously downloaded artifacts.
This is similar to how package managers like apt support --download-only and --no-download.
What platform, and PIE version are you using?
pie show -v
🥧 PHP Installer for Extensions (PIE) 1.4.9, from The PHP Foundation
You are running PHP 8.3.33
Target PHP installation: 8.3.33 nts, on Linux/OSX/etc x86_64 (from /usr/bin/php8.3)
Using pie.json: /root/.config/pie/php8.3_8e7fcd745470cd568cb685b6efc26480/pie.json
Using pie.json: /root/.config/pie/php8.3_8e7fcd745470cd568cb685b6efc26480/pie.json
Tip: to include extensions in this list that PIE does not manage, use the --all flag.
Loaded PIE extensions:
(none)
Steps to reproduce the issue
Currently the only available workflow is:
pie install phalcon/cphalcon:5.17.0
This combines:
- dependency resolution
- metadata retrieval
- downloading
- building
- installation
There doesn't appear to be a way to perform the download separately and later install using only locally cached artifacts.
What do you expect to happen?
It would be great if PIE supported an offline-friendly workflow, for example:
pie download phalcon/cphalcon:5.17.0
pie install --offline phalcon/cphalcon:5.17.0
or alternatively:
pie install --download-only phalcon/cphalcon:5.17.0
pie install --no-download phalcon/cphalcon:5.17.0
The second command should fail if any required artifact is missing from the local cache, rather than attempting network access.
I don't have a strong preference for the exact command-line interface; the important capability is separating "fetch" from "build/install".
What is actually happening
pie install always performs downloading and installation as a single operation, making it difficult to build extensions in environments where network access is intentionally restricted after dependencies have been fetched.
Complete logs/output
N/A
Anything else?
This would improve support for:
- reproducible builds
- hermetic/offline builds
- Docker BuildKit (
RUN --network=none) - CI environments with restricted or controlled egress
- build systems that separate dependency fetching from compilation
I believe this would make PIE fit well into modern container build workflows while also improving build reproducibility.
- Lingua principale
- PHP
- Stelle
- 2k
- Fork
- 73
- Merge medio
- 3h 37m
- PR unite (30g)
- 11
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di php/pie
-
enhancement maintainer investigating
-
enhancement maintainer investigating
-
enhancement maintainer investigating
-
enhancement maintainer investigating
-
Bundle PIE with PHP Apertaenhancement maintainer investigating
Issue simili
-
tooling
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
UX
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
ProfessionalWiki/NeoWiki#1525 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
bug customer-reported
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
MagnaCapax/PMSS#949 ·
-
responsive-media kses allow-list strips clipPathUnits, collapsing objectBoundingBox clip paths Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Automattic/static-site-importer#1829 ·