While authoring vcpkg_from_git to authenticated servers documentation,
@JavierMatosD and I discovered some failure modes that are not clear in
the output.
Example with REF set to a branch name:
```console
The port under test is:
vcpkg_from_git(
OUT_SOURCE_PATH out
URL https://github.com/microsoft/vcpkg
REF 2024.01.12
)
========== BEFORE ===============
Computing installation plan...
The following packages will be built and installed:
test-port:x64-windows@1 -- D:\test\test-port
Detecting compiler hash for triplet x64-windows...
Installing 1/1 test-port:x64-windows@1...
Building test-port:x64-windows@1...
-- Installing port from location: D:\test\test-port
-- Fetching https://github.com/microsoft/vcpkg 2024.01.12...
CMake Error at scripts/cmake/vcpkg_from_git.cmake:141 (message):
unable to rev-parse 2024.01.12 after fetching git repository
Call Stack (most recent call first):
D:/test/test-port/portfile.cmake:1 (vcpkg_from_git)
scripts/ports.cmake:170 (include)
error: building test-port:x64-windows failed with: BUILD_FAILED
Elapsed time to handle test-port:x64-windows: 1.8 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+test-port
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[test-port]+Build+error+on+x64-windows&body=Copy+issue+body+from+D%3A%2Fvcpkg2%2Finstalled%2Fvcpkg%2Fissue_body.md
========== AFTER ================
Computing installation plan...
The following packages will be built and installed:
test-port:x64-windows@1 -- D:\test\test-port
Detecting compiler hash for triplet x64-windows...
Installing 1/1 test-port:x64-windows@1...
Building test-port:x64-windows@1...
-- Installing port from location: D:\test\test-port
-- Fetching https://github.com/microsoft/vcpkg 2024.01.12...
CMake Error at scripts/cmake/vcpkg_from_git.cmake:142 (message):
After fetching 2024.01.12, the target ref 2024.01.12 appears inaccessible.
A common cause of this failure is setting REF to a named branch or tag
rather than a commit SHA. REF must be a commit SHA. If the git server
does not advertise commit SHAs (uploadpack.allowReachableSHA1InWant is
false), you can set FETCH_REF to a named branch in which the desired commit
SHA is in the history. For example, you may be able to fix this error by
changing "REF 2024.01.12" to "REF a-commit-sha FETCH_REF 2024.01.12". (git
rev-parse 2024.01.12 failed)
Call Stack (most recent call first):
D:/test/test-port/portfile.cmake:1 (vcpkg_from_git)
scripts/ports.cmake:170 (include)
error: building test-port:x64-windows failed with: BUILD_FAILED
Elapsed time to handle test-port:x64-windows: 1.9 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+test-port
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[test-port]+Build+error+on+x64-windows&body=Copy+issue+body+from+D%3A%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md
```
Example with REF ste to a branch name with FETCH_REF set:
```console
PS D:\test> run-test
The following packages are not installed:
test-port:x64-windows
The following packages are not installed:
test-port:x64-windows
The port under test is:
vcpkg_from_git(
OUT_SOURCE_PATH out
URL https://github.com/microsoft/vcpkg
REF 2024.01.12
FETCH_REF master
)
========== BEFORE ===============
Computing installation plan...
The following packages will be built and installed:
test-port:x64-windows@1 -- D:\test\test-port
Detecting compiler hash for triplet x64-windows...
Installing 1/1 test-port:x64-windows@1...
Building test-port:x64-windows@1...
-- Installing port from location: D:\test\test-port
-- Fetching https://github.com/microsoft/vcpkg master...
CMake Error at scripts/cmake/vcpkg_from_git.cmake:141 (message):
unable to rev-parse 2024.01.12 after fetching git repository
Call Stack (most recent call first):
D:/test/test-port/portfile.cmake:1 (vcpkg_from_git)
scripts/ports.cmake:170 (include)
error: building test-port:x64-windows failed with: BUILD_FAILED
Elapsed time to handle test-port:x64-windows: 1.6 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+test-port
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[test-port]+Build+error+on+x64-windows&body=Copy+issue+body+from+D%3A%2Fvcpkg2%2Finstalled%2Fvcpkg%2Fissue_body.md
========== AFTER ================
Computing installation plan...
The following packages will be built and installed:
test-port:x64-windows@1 -- D:\test\test-port
Detecting compiler hash for triplet x64-windows...
Installing 1/1 test-port:x64-windows@1...
Building test-port:x64-windows@1...
-- Installing port from location: D:\test\test-port
-- Fetching https://github.com/microsoft/vcpkg master...
CMake Error at scripts/cmake/vcpkg_from_git.cmake:138 (message):
After fetching master, the target ref 2024.01.12 appears inaccessible. A
common cause of this failure is setting REF to a named branch or tag rather
than a commit SHA. REF must be a commit SHA. (git rev-parse 2024.01.12
failed)
Call Stack (most recent call first):
D:/test/test-port/portfile.cmake:1 (vcpkg_from_git)
scripts/ports.cmake:170 (include)
error: building test-port:x64-windows failed with: BUILD_FAILED
Elapsed time to handle test-port:x64-windows: 1.5 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+test-port
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[test-port]+Build+error+on+x64-windows&body=Copy+issue+body+from+D%3A%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md
```
---------
Co-authored-by: Thomas1664 <46387399+Thomas1664@users.noreply.github.com>
* [docs] Delete embedded documentation in favor of docs/
Drive-by for the helper ports:
1. "documentation": "https://vcpkg.io/en/docs/README.html"
2. "license": "MIT"
3. Use `include_guard(GLOBAL)` in all script files
4. Make sure any persistent variables are saved to the cache
* [docs] Restore empty regenerate.ps1 to satisfy Azure Pipelines
* [docs] PR comments
- The directory specified no longer matches the directory used for
fetching.
- This was overlooked by PR microsoft/vcpkg#19338.
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
* [vcpkg_from_git] new options TAG and OUT_REF
- TAG github tag to checkout
- OUT_REF github commit id related to tag or ref
(useable for automatic updates of ports if used with a version tag)
* Apply suggestions from code review
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
* additional changes due to CR
* regenerate docs
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
* [vcpkg docs] Change how documenting port functions works
Instead of using `##`, use comment blocks for documentation.
Also, add some minor docs and change RST -> MD
so we actually get docs generated.
* add CI stuff
* regenerate docs
* fix vcpkg_find_acquire_program to not use _execute_process
* vcpkg_from_git: Add support for git over ssh
* vcpkg_from_git: append ssh bin directory to path
* vcpkg_from_git: fix function signature on non windows platforms
* Revert "vcpkg_from_git: fix function signature on non windows platforms"
This reverts commit 0d608ee5911d2ba274e782a21dfe77a502a39053.
* Revert "vcpkg_from_git: append ssh bin directory to path"
This reverts commit 377ce3fae1e2c085a5da7ace8185624a345a511b.
* Partial Revert "vcpkg_from_git: Add support for git over ssh"
This partially reverts commit 9b81b16c4ccd3d8646d97e66234566a07af8a308.
Co-authored-by: Marc Boucek <marc.boucek@native-instruments.de>
Co-authored-by: Marc Boucek <marc.boucek@posteo.net>
* [portfile functions] Override execute_process() to accept ALLOW_IN_DOWNLOAD_MODE option
* [vcpkg install] Set VCPKG_DOWNLOAD_MODE when using --only-downloads option
* [vcpkg_find_acquire_program] Allow in Download Mode
* Don't stop when build fails for a package
* Download sources for all packages in dependency graph
* Improve output messages
* Enable acquiring MSYS packages in download mode
* Documentation
* Update documentation
* execute_process() always fails on Download Mode
* Regenerate docs and fix formatting
* Run clang-format
* Use _execute_process on vcpkg_from_<source> helpers
* Fix calls to _execute_process() when not in Download Mode
* [portfile functions] Override execute_process() to accept ALLOW_IN_DOWNLOAD_MODE option
* [vcpkg install] Set VCPKG_DOWNLOAD_MODE when using --only-downloads option
* [vcpkg_find_acquire_program] Allow in Download Mode
* Don't stop when build fails for a package
* Download sources for all packages in dependency graph
* Improve output messages
* Enable acquiring MSYS packages in download mode
* Documentation
* Update documentation
* execute_process() always fails on Download Mode
* Regenerate docs and fix formatting
* Run clang-format
* Use _execute_process on vcpkg_from_<source> helpers
* fdlibm init
* fix links
* Fix different hashes creation with google host
* Move functions to script
* Fix documentation
* [vcpkg_from_git] Add SHA512 argument, switch to zip to better support Windows.
* [fdlibm] Trigger rebuild
* [vcpkg_from_git] Use FETCH_HEAD reference to support tags