aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
diff options
context:
space:
mode:
authorras0219 <533828+ras0219@users.noreply.github.com>2021-01-15 12:35:48 -0800
committerGitHub <noreply@github.com>2021-01-15 12:35:48 -0800
commit4f8fb510ba03f195a49f6353b97fabf5bb20d450 (patch)
tree7564b1db60e1086ce5cf587846ea28d628735d05 /toolsrc/include
parenta8e97d4a4b22d489123dc6d673ceee2c203dc046 (diff)
downloadvcpkg-4f8fb510ba03f195a49f6353b97fabf5bb20d450.tar.gz
vcpkg-4f8fb510ba03f195a49f6353b97fabf5bb20d450.zip
[vcpkg] Add initial versioning documentation (#15565)
* [vcpkg] Improve efficiency and tests of versioning * [vcpkg] Add initial versioning documentation and rename x-default-baseline to builtin-baseline * [vcpkg] Enable metrics for builtin-baseline & overrides * [vcpkg] Address PR comments * [vcpkg] Add support for syntax in version>= * [vcpkg] Remove port-version from dependency syntax * [vcpkg] Address CR comment * [vcpkg] Minor docs fixup
Diffstat (limited to 'toolsrc/include')
-rw-r--r--toolsrc/include/vcpkg/base/expected.h9
-rw-r--r--toolsrc/include/vcpkg/base/files.h33
-rw-r--r--toolsrc/include/vcpkg/base/json.h4
-rw-r--r--toolsrc/include/vcpkg/base/jsonreader.h2
-rw-r--r--toolsrc/include/vcpkg/sourceparagraph.h1
-rw-r--r--toolsrc/include/vcpkg/vcpkgpaths.h15
-rw-r--r--toolsrc/include/vcpkg/versions.h3
7 files changed, 27 insertions, 40 deletions
diff --git a/toolsrc/include/vcpkg/base/expected.h b/toolsrc/include/vcpkg/base/expected.h
index 13e7b4bcb..20c23f077 100644
--- a/toolsrc/include/vcpkg/base/expected.h
+++ b/toolsrc/include/vcpkg/base/expected.h
@@ -226,11 +226,10 @@ namespace vcpkg
void exit_if_error(const LineInfo& line_info) const
{
// This is used for quick value_or_exit() calls, so always put line_info in the error message.
- Checks::check_exit(line_info,
- !m_s.has_error(),
- "Failed at [%s] with message:\n%s",
- line_info.to_string(),
- m_s.to_string());
+ if (m_s.has_error())
+ {
+ Checks::exit_with_message(line_info, "Failed at [%s] with message:\n%s", line_info, m_s.to_string());
+ }
}
ErrorHolder<S> m_s;
diff --git a/toolsrc/include/vcpkg/base/files.h b/toolsrc/include/vcpkg/base/files.h
index dd1b3a6c6..5f2e96e91 100644
--- a/toolsrc/include/vcpkg/base/files.h
+++ b/toolsrc/include/vcpkg/base/files.h
@@ -282,45 +282,34 @@ namespace vcpkg::Files
};
ExclusiveFileLock() = default;
- ExclusiveFileLock(ExclusiveFileLock&& other)
- : fs_(other.fs_), handle_(std::exchange(handle_, fs::SystemHandle{}))
- {
- }
- ExclusiveFileLock& operator=(ExclusiveFileLock&& other)
- {
- if (this == &other) return *this;
-
- clear();
- fs_ = other.fs_;
- handle_ = std::exchange(other.handle_, fs::SystemHandle{});
- return *this;
- }
+ ExclusiveFileLock(ExclusiveFileLock&&) = delete;
+ ExclusiveFileLock& operator=(ExclusiveFileLock&&) = delete;
- ExclusiveFileLock(Wait wait, Filesystem& fs, const fs::path& path_, std::error_code& ec) : fs_(&fs)
+ ExclusiveFileLock(Wait wait, Filesystem& fs, const fs::path& path_, std::error_code& ec) : m_fs(&fs)
{
switch (wait)
{
- case Wait::Yes: handle_ = fs_->take_exclusive_file_lock(path_, ec); break;
- case Wait::No: handle_ = fs_->try_take_exclusive_file_lock(path_, ec); break;
+ case Wait::Yes: m_handle = m_fs->take_exclusive_file_lock(path_, ec); break;
+ case Wait::No: m_handle = m_fs->try_take_exclusive_file_lock(path_, ec); break;
}
}
~ExclusiveFileLock() { clear(); }
- explicit operator bool() const { return handle_.is_valid(); }
- bool has_lock() const { return handle_.is_valid(); }
+ explicit operator bool() const { return m_handle.is_valid(); }
+ bool has_lock() const { return m_handle.is_valid(); }
void clear()
{
- if (fs_ && handle_.is_valid())
+ if (m_fs && m_handle.is_valid())
{
std::error_code ignore;
- fs_->unlock_file_lock(std::exchange(handle_, fs::SystemHandle{}), ignore);
+ m_fs->unlock_file_lock(std::exchange(m_handle, fs::SystemHandle{}), ignore);
}
}
private:
- fs::SystemHandle handle_;
- Filesystem* fs_;
+ Filesystem* m_fs;
+ fs::SystemHandle m_handle;
};
}
diff --git a/toolsrc/include/vcpkg/base/json.h b/toolsrc/include/vcpkg/base/json.h
index e7f3076f7..31696b757 100644
--- a/toolsrc/include/vcpkg/base/json.h
+++ b/toolsrc/include/vcpkg/base/json.h
@@ -291,7 +291,9 @@ namespace vcpkg::Json
ExpectedT<std::pair<Value, JsonStyle>, std::unique_ptr<Parse::IParseError>> parse_file(
const Files::Filesystem&, const fs::path&, std::error_code& ec) noexcept;
ExpectedT<std::pair<Value, JsonStyle>, std::unique_ptr<Parse::IParseError>> parse(
- StringView text, const fs::path& filepath = {}) noexcept;
+ StringView text, const fs::path& filepath) noexcept;
+ ExpectedT<std::pair<Value, JsonStyle>, std::unique_ptr<Parse::IParseError>> parse(StringView text,
+ StringView origin = {}) noexcept;
std::pair<Value, JsonStyle> parse_file(vcpkg::LineInfo linfo, const Files::Filesystem&, const fs::path&) noexcept;
std::string stringify(const Value&, JsonStyle style);
diff --git a/toolsrc/include/vcpkg/base/jsonreader.h b/toolsrc/include/vcpkg/base/jsonreader.h
index da086fa02..4aca02998 100644
--- a/toolsrc/include/vcpkg/base/jsonreader.h
+++ b/toolsrc/include/vcpkg/base/jsonreader.h
@@ -278,7 +278,7 @@ namespace vcpkg::Json
struct NaturalNumberDeserializer final : IDeserializer<int>
{
- virtual StringView type_name() const override { return "a natural number"; }
+ virtual StringView type_name() const override { return "a nonnegative integer"; }
virtual Optional<int> visit_integer(Reader&, int64_t value) override
{
diff --git a/toolsrc/include/vcpkg/sourceparagraph.h b/toolsrc/include/vcpkg/sourceparagraph.h
index f2dd0798b..52ce53980 100644
--- a/toolsrc/include/vcpkg/sourceparagraph.h
+++ b/toolsrc/include/vcpkg/sourceparagraph.h
@@ -69,6 +69,7 @@ namespace vcpkg
std::vector<DependencyOverride> overrides;
std::vector<std::string> default_features;
std::string license; // SPDX license expression
+ Optional<std::string> builtin_baseline;
Type type;
PlatformExpression::Expr supports_expression;
diff --git a/toolsrc/include/vcpkg/vcpkgpaths.h b/toolsrc/include/vcpkg/vcpkgpaths.h
index 36447b9f3..d36ebfb7c 100644
--- a/toolsrc/include/vcpkg/vcpkgpaths.h
+++ b/toolsrc/include/vcpkg/vcpkgpaths.h
@@ -118,8 +118,12 @@ namespace vcpkg
const std::string& get_tool_version(const std::string& tool) const;
// Git manipulation in the vcpkg directory
- fs::path git_checkout_baseline(Files::Filesystem& filesystem, StringView commit_sha) const;
- fs::path git_checkout_port(Files::Filesystem& filesystem, StringView port_name, StringView git_tree) const;
+ ExpectedS<std::string> get_current_git_sha() const;
+ std::string get_current_git_sha_message() const;
+ ExpectedS<fs::path> git_checkout_baseline(StringView commit_sha) const;
+ ExpectedS<fs::path> git_checkout_port(StringView port_name,
+ StringView git_tree,
+ const fs::path& dot_git_dir) 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;
@@ -168,12 +172,5 @@ namespace vcpkg
const fs::path& destination,
const fs::path& dot_git_dir,
const fs::path& work_tree);
-
- static void git_checkout_object(const VcpkgPaths& paths,
- StringView git_object,
- const fs::path& local_repo,
- const fs::path& destination,
- const fs::path& dot_git_dir,
- const fs::path& work_tree);
};
}
diff --git a/toolsrc/include/vcpkg/versions.h b/toolsrc/include/vcpkg/versions.h
index 19b5546ea..b26c90dfb 100644
--- a/toolsrc/include/vcpkg/versions.h
+++ b/toolsrc/include/vcpkg/versions.h
@@ -81,8 +81,7 @@ namespace vcpkg::Versions
enum class Type
{
None,
- Minimum,
- Exact
+ Minimum
};
};
}