Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
37756c3
[vcpkg] Add x-ci-verify-versions command
vicroms Dec 8, 2020
d297ec7
Code cleanup
vicroms Dec 8, 2020
6d09d42
Remove port version splitting from x-history
vicroms Dec 8, 2020
b93c0cc
Fix wrong message on success
vicroms Dec 8, 2020
1dffab4
Parallelize versions file generator
vicroms Dec 8, 2020
144ca4d
Use cpu_count()/2 to avoid crashes
vicroms Dec 9, 2020
9d9ec61
Check db SHA against local SHA
vicroms Dec 9, 2020
4a8677f
Check baseline version with x-ci-verify-versions and make baseline ge…
vicroms Dec 9, 2020
a2e1581
Merge branch 'master' of github.com:microsoft/vcpkg into versioning/v…
vicroms Dec 9, 2020
584c32c
Implement x-add-version to update version db files
vicroms Dec 9, 2020
7249aba
Better checks for x-add-info and make x-ci-verify-versions silent on …
vicroms Dec 9, 2020
f6a2d32
Use find() instead of [] on maps
vicroms Dec 9, 2020
59687ec
Create version file if does not exist
vicroms Dec 9, 2020
357dc4f
Merge branch 'master' of github.com:microsoft/vcpkg into versioning/v…
vicroms Dec 9, 2020
6d12301
Allow redirection of ports/ and port_versions/
vicroms Dec 10, 2020
69d035b
add test ports
vicroms Dec 10, 2020
8742ee1
WIP end-to-end tests
vicroms Dec 10, 2020
49f67e7
Change pats in e2e tests
vicroms Dec 10, 2020
1761593
Fix e2e args
vicroms Dec 10, 2020
f9fede4
e2e once more
vicroms Dec 10, 2020
f12a821
Pass ersions feature flag to e2e
vicroms Dec 10, 2020
b295089
Exit with code 1 if there are errors
vicroms Dec 10, 2020
d2da099
Files to test for failure cases
vicroms Dec 10, 2020
809c959
Update test files
vicroms Dec 10, 2020
cc64e95
Add test for x-add-version
vicroms Dec 10, 2020
e5532df
fix redirected ports in last test
vicroms Dec 10, 2020
4c36ce2
Add CI check (use dummy data)
vicroms Dec 10, 2020
828f12f
Add feature-flags=versions
vicroms Dec 10, 2020
a335022
Merge branch 'master' of github.com:microsoft/vcpkg into versioning/v…
vicroms Dec 11, 2020
0c52cb6
Ignore subdirectories inside ports
vicroms Dec 11, 2020
d5fe898
Add --verify-git-trees switch
vicroms Dec 11, 2020
fb6313e
Merge branch 'master' of github.com:microsoft/vcpkg into versioning/v…
vicroms Dec 14, 2020
109d01e
Merge branch 'master' of https://github.com/microsoft/vcpkg into vers…
ras0219-msft Dec 17, 2020
b50c844
[vcpkg] Fix build breaks
ras0219-msft Dec 21, 2020
4edff47
Merge branch 'versioning/version-files' of github.com:vicroms/vcpkg i…
vicroms Dec 29, 2020
8d93fb2
[x-ci-verify-versions] PR comments
vicroms Dec 29, 2020
f3145c3
[x-add-version] PR comments
vicroms Dec 29, 2020
1d7f153
Merge branch 'master' of github.com:microsoft/vcpkg into versioning/v…
vicroms Dec 29, 2020
abeaeec
Fix merge conflicts
vicroms Jan 4, 2021
2ad7ad8
Modify tests and pipeline
vicroms Jan 5, 2021
a12cffc
Baselines should only have version-string
vicroms Jan 5, 2021
5a358d7
Merge branch 'master' into versioning/version-files
vicroms Jan 5, 2021
dbbc75d
Refactor x-add-version
vicroms Jan 7, 2021
e8fdaa7
Merge branch 'master' of github.com:microsoft/vcpkg into versioning/v…
vicroms Jan 7, 2021
7a8ff1e
Merge branch 'master' of https://github.com/Microsoft/vcpkg into vers…
ras0219 Jan 7, 2021
f47c42d
[vcpkg] Fix help message
ras0219 Jan 7, 2021
98ecdce
[vcpkg] Fix minor warnings
ras0219 Jan 7, 2021
ace4a1d
`x-add-version --all` doesn't stop on first failure and reduced defau…
vicroms Jan 7, 2021
ea6f4d4
Merge branch 'versioning/version-files' of github.com:vicroms/vcpkg i…
vicroms Jan 7, 2021
6f456ad
[vcpkg] Fix default-baseline
ras0219 Jan 7, 2021
68cb21e
Merge branch 'versioning/version-files' of https://github.com/vicroms…
ras0219 Jan 7, 2021
fef097b
Load file instead of using paths provider
vicroms Jan 7, 2021
efd51bc
Format
vicroms Jan 7, 2021
fe2a8b7
Remove ci test
vicroms Jan 7, 2021
9995f24
Add fish port for testing
vicroms Jan 7, 2021
51a3b63
Update version files
vicroms Jan 7, 2021
44cc579
Update fish port to cause SHA discrepancy
vicroms Jan 7, 2021
fa26c45
Test for discrepancy between local SHA and declared SHA
vicroms Jan 7, 2021
8683a4e
Missing = operator
vicroms Jan 7, 2021
59efda8
Check for error message since x-add-version exits with code 0
vicroms Jan 7, 2021
ef1a0cc
Make x-add-version fail with non-zero exit code if not run with --all
vicroms Jan 7, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions scripts/azure-pipelines/end-to-end-tests-dir/versions.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
. $PSScriptRoot/../end-to-end-tests-prelude.ps1

# Test verify versions
mkdir $VersionFilesRoot
Copy-Item -Recurse "scripts/testing/version-files/port_versions_incomplete" $VersionFilesRoot
$portsRedirectArgsOK = @(
"--feature-flags=versions",
"--x-builtin-ports-root=scripts/testing/version-files/ports",
"--x-builtin-port-versions-dir=scripts/testing/version-files/port_versions"
)
$portsRedirectArgsIncomplete = @(
"--feature-flags=versions",
"--x-builtin-ports-root=scripts/testing/version-files/ports_incomplete",
"--x-builtin-port-versions-dir=$VersionFilesRoot/port_versions_incomplete"
)
$CurrentTest = "x-verify-ci-versions (All files OK)"
Write-Host $CurrentTest
./vcpkg $portsRedirectArgsOK x-ci-verify-versions --verbose
Throw-IfFailed

$CurrentTest = "x-verify-ci-versions (Incomplete)"
./vcpkg $portsRedirectArgsIncomplete x-ci-verify-versions --verbose
Throw-IfNotFailed

$CurrentTest = "x-add-version cat"
# Do not fail if there's nothing to update
./vcpkg $portsRedirectArgsIncomplete x-add-version cat
Throw-IfFailed

$CurrentTest = "x-add-version dog"
# Local version is not in baseline and versions file
./vcpkg $portsRedirectArgsIncomplete x-add-version dog
Throw-IfFailed

$CurrentTest = "x-add-version duck"
# Missing versions file
./vcpkg $portsRedirectArgsIncomplete x-add-version duck
Throw-IfFailed

$CurrentTest = "x-add-version ferret"
# Missing versions file and missing baseline entry
./vcpkg $portsRedirectArgsIncomplete x-add-version ferret
Throw-IfFailed

$CurrentTest = "x-add-version fish (must fail)"
# Discrepancy between local SHA and SHA in fish.json. Requires --overwrite-version.
$out = ./vcpkg $portsRedirectArgsIncomplete x-add-version fish
Throw-IfNotFailed
$CurrentTest = "x-add-version fish --overwrite-version"
./vcpkg $portsRedirectArgsIncomplete x-add-version fish --overwrite-version
Throw-IfFailed

$CurrentTest = "x-add-version mouse"
# Missing baseline entry
./vcpkg $portsRedirectArgsIncomplete x-add-version mouse
Throw-IfFailed
# Validate changes
./vcpkg $portsRedirectArgsIncomplete x-ci-verify-versions --verbose
Throw-IfFailed

$CurrentTest = "default baseline"
$out = ./vcpkg $commonArgs "--feature-flags=versions" install --x-manifest-root=scripts/testing/version-files/default-baseline-1
Throw-IfNotFailed
# if ($out -notmatch "Error: while checking out baseline" -or $out -notmatch " does not exist in ")
# {
# $out
# throw "Expected to fail due to missing baseline"
# }

git fetch https://github.com/vicroms/test-registries
$CurrentTest = "default baseline"
./vcpkg $commonArgs "--feature-flags=versions" install `
"--x-manifest-root=scripts/testing/version-files/default-baseline-2" `
"--x-builtin-port-versions-dir=scripts/testing/version-files/default-baseline-2/port_versions"
Throw-IfFailed
8 changes: 8 additions & 0 deletions scripts/testing/version-files/default-baseline-1/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "default-baseline-test",
"version-string": "0",
"$x-default-baseline": "fca18ba3572f8aebe3b8158c359db62a7e26134e",
"dependencies": [
"zlib"
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"versions": [
{
"git-tree": "7bb2b2f3783303a4dd41163553fe4cc103dc9262",
"version-string": "1.2.11",
"port-version": 9
},
{
"git-tree": "4927735fa9baca564ebddf6e6880de344b20d7a8",
"version-string": "1.2.11",
"port-version": 8
}
]
}
8 changes: 8 additions & 0 deletions scripts/testing/version-files/default-baseline-2/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "default-baseline-test",
"version-string": "0",
"$x-default-baseline": "cbd5a68012471f820b7cf28d618199b4a4d89c58",
"dependencies": [
"zlib"
]
}
20 changes: 20 additions & 0 deletions scripts/testing/version-files/port_versions/baseline.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"default": {
"cat": {
"version-string": "1.0",
"port-version": 0
},
"dog": {
"version-string": "2001-01-01",
"port-version": 0
},
"duck": {
"version-string": "mallard",
"port-version": 0
},
"mouse": {
"version-string": "1.0.0",
"port-version": 0
}
}
}
9 changes: 9 additions & 0 deletions scripts/testing/version-files/port_versions/c-/cat.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "5dd257451526d5b9e560f5f35d7029ba40d88587",
"version": "1.0",
"port-version": 0
}
]
}
9 changes: 9 additions & 0 deletions scripts/testing/version-files/port_versions/d-/dog.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "e170a2ed0da7ba5d434c4a0a98ffd7a3159e3200",
"version-date": "2001-01-01",
"port-version": 0
}
]
}
9 changes: 9 additions & 0 deletions scripts/testing/version-files/port_versions/d-/duck.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "0a52a9d722c75b3bfe47d5f5db6c9eb1a64af156",
"version-string": "mallard",
"port-version": 0
}
]
}
9 changes: 9 additions & 0 deletions scripts/testing/version-files/port_versions/m-/mouse.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "55ed624191e0a1905bd97af29fdf6a1d7f4e6d7c",
"version-semver": "1.0.0",
"port-version": 0
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"default": {
"cat": {
"version-string": "1.0",
"port-version": 0
},
"dog": {
"version-string": "2001-01-01",
"port-version": 0
},
"duck": {
"version-string": "mallard",
"port-version": 0
},
"fish": {
"version-string": "1.0.0",
"port-version": 0
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "5dd257451526d5b9e560f5f35d7029ba40d88587",
"version": "1.0",
"port-version": 0
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "e170a2ed0da7ba5d434c4a0a98ffd7a3159e3200",
"version-date": "2001-01-01",
"port-version": 0
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "cf3be634f203c1b4152b65ec7700d5695a1fca5c",
"version-string": "1.0.0",
"port-version": 0
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "55ed624191e0a1905bd97af29fdf6a1d7f4e6d7c",
"version-semver": "1.0.0",
"port-version": 0
}
]
}
1 change: 1 addition & 0 deletions scripts/testing/version-files/ports/cat/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
4 changes: 4 additions & 0 deletions scripts/testing/version-files/ports/cat/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "cat",
"version": "1.0"
}
1 change: 1 addition & 0 deletions scripts/testing/version-files/ports/dog/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
4 changes: 4 additions & 0 deletions scripts/testing/version-files/ports/dog/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "dog",
"version-date": "2001-01-01"
}
1 change: 1 addition & 0 deletions scripts/testing/version-files/ports/duck/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
4 changes: 4 additions & 0 deletions scripts/testing/version-files/ports/duck/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "duck",
"version-string": "mallard"
}
1 change: 1 addition & 0 deletions scripts/testing/version-files/ports/mouse/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
4 changes: 4 additions & 0 deletions scripts/testing/version-files/ports/mouse/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "mouse",
"version-semver": "1.0.0"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
4 changes: 4 additions & 0 deletions scripts/testing/version-files/ports_incomplete/cat/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "cat",
"version": "1.0"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
5 changes: 5 additions & 0 deletions scripts/testing/version-files/ports_incomplete/dog/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "dog",
"version-date": "2001-01-01",
"port-version": 1
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "duck",
"version-string": "mallard"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "ferret",
"version": "1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "fish",
"version-string": "1.0.0",
"description": "This description causes an intentional discrepancy between the local SHA and the SHA in fish.json for version 1.0.0"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "mouse",
"version-semver": "1.0.0"
}
13 changes: 13 additions & 0 deletions toolsrc/include/vcpkg/commands.add-version.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#pragma once

#include <vcpkg/commands.interface.h>

namespace vcpkg::Commands::AddVersion
{
void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths);

struct AddVersionCommand : PathsCommand
{
void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) const override;
};
}
13 changes: 13 additions & 0 deletions toolsrc/include/vcpkg/commands.civerifyversions.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#pragma once

#include <vcpkg/commands.interface.h>

namespace vcpkg::Commands::CIVerifyVersions
{
void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths);

struct CIVerifyVersionsCommand : PathsCommand
{
void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) const override;
};
}
7 changes: 7 additions & 0 deletions toolsrc/include/vcpkg/registries.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@
#include <vcpkg/base/stringview.h>
#include <vcpkg/base/view.h>

#include <vcpkg/versiondeserializers.h>
#include <vcpkg/versiont.h>

#include <map>
#include <memory>
#include <string>
#include <system_error>
Expand Down Expand Up @@ -103,4 +105,9 @@ namespace vcpkg

std::unique_ptr<Json::IDeserializer<std::vector<Registry>>> get_registry_array_deserializer(
const fs::path& configuration_directory);

ExpectedS<std::vector<std::pair<VersionT, std::string>>> get_builtin_versions(const VcpkgPaths& paths,
StringView port_name);

ExpectedS<std::map<std::string, VersionT, std::less<>>> get_builtin_baseline(const VcpkgPaths& paths);
}
2 changes: 2 additions & 0 deletions toolsrc/include/vcpkg/vcpkgpaths.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ namespace vcpkg
fs::path git_checkout_port(Files::Filesystem& filesystem, StringView port_name, StringView git_tree) const;
ExpectedS<std::string> git_show(const std::string& treeish, const fs::path& dot_git_dir) const;

ExpectedS<std::map<std::string, std::string, std::less<>>> git_get_local_port_treeish_map() const;

Optional<const Json::Object&> get_manifest() const;
Optional<const fs::path&> get_manifest_path() const;
const Configuration& get_configuration() const;
Expand Down
Loading