* [vcpkg registries] support versions
This PR merges the Registries changes and the versioning changes, so that one can use both at the same time.
There is one major difference between this PR and the RFC (#13590), which is that instead of version files looking like:
```json
[
...
]
```
version files look like:
```
{
"versions": [
...
]
}
```
this is to support interop between this PR and existing demos and the like;
fixing this, along with perhaps renaming `port_versions` to `port-versions` should be done after this is merged,
should be a trivial change.
* [vcpkg] Refactor end-to-end tests
* [vcpkg] Cherry-pick x-builtin-ports-root from #14999
* [vcpkg] Move create test from unit tests to e2e
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] Add experimental x-azblob binary provider
* [vcpkg] Test azblob storage provider in CI
* [vcpkg] Address some CR comments from #13639
* [vcpkg] Fixup azure-pipelines
* [vcpkg] Fix regression where the downloaded package is purged before decompressing
* [vcpkg] Further refactor vcpkg::Downloads
* [vcpkg] Enable OSX for x-azblob testing
* [vcpkg] Reduce diff against master
* [vcpkg] Extract Downloads::details::split_uri_view
* [vcpkg] Address PR comments
* [vcpkg] Add testing and metrics for x-azblob
* [vcpkg] Add docs for x-azblob
This includes a note that it is currently experimental
* [vcpkg] Address CR comments
* [vcpkg] Revert pipeline changes except OSX to minimize disruption
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
* [ampl-asl] Separate port ampl-mp module asl to ampl-asl
* [ampl-mp] Update version, separate port ampl-asl and fix arm build
* update baseline
* [VMSS] Pre-install ampl-mp:x86-windows
* Update ports/ampl-asl/portfile.cmake
* [vcpkg] Avoid computing triplet ABIs for editable packages
* [vcpkg] Address PR comments
* [vcpkg-end-to-end-tests] Add tests for --no-binarycaching, binarycaching by default, and --editable
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
* [vcpkg osx ci] update to newer bits
these ones should actually work!
* update vagrantfile
* correct scripts, reformat, add docs
* Finish Get-InternalBaseBox, move archives
In order to avoid people maliciously deleting the boxes,
the archives share and file share are in different users now.
* baseline libqcow to be fixed later
* actually check for the mount point
* fix Install-Prerequisites again
* add +x to Get-InternalBaseBox.ps1
additionally, fix some errors
* [vcpkg ci:osx] Remove brew install
* add instructions for creating a new vagrant box
* fix the vagrant scripts for the new box
* finish fixing the setup
* [mecab jxrlib] fix ports for CI
mecab needed to use an actual ref that wasn't master,
and jxrlib needed a patch for xcode 12 CLTs.
Additionally, this fixes the mecab version to be a date, the date of the last commit,
since `1.0` is not the correct version (mecab doesn't have released versions)
* [many ports] fix compile with Xcode 12 CLTs
This mostly means fixing errors on implicit-function-declaration,
and removing some Werrors
* alac-decoder
* apr
* argtable2
* arrow
* hyperscan
* mcpp
* minizip
* mosquitto
* stormlib
* [many ports] even more Xcode 12 CLT fixes
* [jxrlib darknet] fix the last ports! (hopefully)
* CRs, plus minor wip changes to osx scripts
* [vcpkg docs] add docs for manifest files
These are just for the maintainer docs,
not user docs.
* [vcpkg] EBNF-ify platform expression parsing
this modifies nothing about what strings are accepted or rejected,
it just moves stuff around.
also adds tests.
* [vcpkg docs] add manifest mode example
* [wip] docs for augustin
also fix tabs
* [vcpkg manifest] switch to using maps for features
* Apply suggestions from code review
* un-experimentize format-manifest
* flesh out the user manifest mode docs
* CRs
* billy CRs
* final personal pass-thru
* [vcpkg] Add `vcpkg export` to E2E tests. Enable E2E tests on MacOS.
* [vcpkg] Fix export --raw --output-dir=/path/ by changing directory to new export root
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
* [vcpkg format-manifest] initial convert-control attempt
TODO: manifest comments! we should keep $directives
* Finalize x-format-manifest
First, fix Json::parse -- "\c", for any c, was incorrectly parsed.
It would emit the escaped character, and then parse the character, so
that `\b` would give you { '\b', 'b' }.
Second, canonicalize source paragraphs as we're parsing them. This found
an error in qt5 -- The `declarative` feature was listed twice, and we
now catch it, so I removed the second paragraph.
Add PlatformExpression::complexity to allow ordering platform
expressions in a somewhat reasonable way.
Notes:
- We allow `all_modules` as a feature name for back-compat with
paraview
- In order to actually convert CONTROL to vcpkg.json, we'd need to
rename the qt5 `default` feature.
- We need to add support for $directives in x-format-manifest
* fix qt5 port
* format
* fix compile
* fix tests for canonicalization
* Clean up code
* add error message for nothing to format
* add extra_info field
* add `const X&` overloads for `Object::insert[_or_replace]`
* fix compile
* simple CRs
* add tests
* format
* Fix mosquitto port file
also unmerge a line
* fail the tests on malformed manifest
* fix format_all
* fix coroutine port-version
* format manifests
* [cmake] add port for qt testing
* only add cmcldeps on windows
* [cmake] cleanup and fix portfile for osx build
* [cmake] more cleanup
* move cmake to scripts/test_ports
* add the overlay scripts/test_ports to ci
* [vcpkg-ci] fix macos setup scripts
* the disk feature is still experimental
* fix Get-InstalledVirtualBoxExtensionPacks
* use new bash install script for brew
instead of old-style ruby
* [libb2] Add supports and install pkg-conifg on macOS VM
* Add blank line to the end of the json file
* vcpkg x-format-manifest --all
* Remove failed ports in ci baseline file
* [vcpkg] Move default binary cache from `$root/archives` to user-wide directory
Teach nuget/nugetconfig binary sources to use read/write.
* [vcpkg] Reformat
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
This PR also renames the VcpkgUserTriplet MSBuild variable to VcpkgTriplet to minimize user confusion compared to previous practice and documentation.
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
* stage checking formatting
this means that the port CI won't run if the formatting failed
* fix invalid names
* add formatting of manifests
* fix dependsOn name
* fix a thing
* CRs
* oops, typo
* Added python script to generate all packages file list, added to azure pipeline to build at the end of the run
* fixed an issue that causes some leading slashes were being removed
* Header Database now includes hpp files for C++ header files
* Changed Header Database to include all files under \include\ folder
* Apply suggestions from code review, changing condition from eq to ne
Co-authored-by: Billy O'Neal <bion@microsoft.com>
* Update last condition from eq to ne
Co-authored-by: Billy O'Neal <bion@microsoft.com>
This changes our PR builds to treat 'fail' in the ci.baseline.txt as 'skip' instead of using tombstones.
We currently have large numbers of spurious failures that get enshrined in PRs through no fault of a PR author, removing the tombstones concept will fix those by allowing the user to retry. This does mean we accept some risk of not detecting when a port is 'fixed', but that failure is reasonable for us to handle after we see it in CI, but that seems worth it given that it lets us get rid of the tombstone concept.
This also helps out the binary caching feature, because we don't have to figure out how to productize tombstones.
* [vcpkg] Implement --x-write-nuget-packages-config= setting for `install` and `x-set-installed`.
* [vcpkg] Add end-to-end testing suite for install, remove, and binary caching
* [vcpkg] Define `$TestingRoot in end-to-end-tests.ps1
* [vcpkg] Address CR comments
Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
* [vcpkg] Add disk space report to PR/CI
Example output:
```
Disk Label Size Free Space
---- ----- ---- ----------
C: Sabrent 1907 GiB 1239 GiB
D: Dev 447 GiB 383 GiB
E: Samsung 960 Pro 1908 GiB 1084 GiB
H: Rocket 3815 GiB 863 GiB
R: 0 B 0 B
S: 0 B 0 B
```