diff --git a/.sync/Files.yml b/.sync/Files.yml index 9ac0129..9d19430 100644 --- a/.sync/Files.yml +++ b/.sync/Files.yml @@ -164,44 +164,6 @@ group: OpenDevicePartnership/patina-paging OpenDevicePartnership/patina-readiness-tool -# Rust Configuration - Cargo Deny -# Note: Due to the diverse nature of content expected in the patina-components repo, deny.toml is not synced -# to that repo at this time. - - files: - - source: .sync/rust/deny.toml - dest: deny.toml - template: - denied_crates: - - '{ crate = "tiny-keccak", reason = "Not updated in 5 years. Use alternative." }' - ignored_rust_security_advisories: - # Example: '{ id = "RUSTSEC-2024-0436", reason = "Macros for token pasting. No longer maintained per readme. Consider alternatives." }' - - '{ id = "RUSTSEC-2024-0436", reason = "paste is unmaintained but is only pulled in transitively via arm-gic -> arm-sysregs. It is build-time only" }' - license_exceptions: - - '{ allow = ["0BSD"], crate = "managed" }' - - '{ allow = ["BSD-3-Clause"], crate = "alloc-no-stdlib" }' - - '{ allow = ["Unicode-3.0"], crate = "unicode-ident" }' - skipped_crates: - - '{ crate = "bitflags", reason = "Need https://github.com/gz/rust-x86/pull/150 to be merged into rust-x86." }' - repos: | - OpenDevicePartnership/patina - OpenDevicePartnership/patina-dxe-core-qemu - - - files: - - source: .sync/rust/deny.toml - dest: deny.toml - template: - denied_crates: - - '{ crate = "tiny-keccak", reason = "Not updated in 5 years. Use alternative." }' - ignored_rust_security_advisories: - license_exceptions: - - '{ allow = ["Unicode-3.0"], crate = "unicode-ident" }' - - '{ allow = ["MPL-2.0"], crate = "colored" }' - - '{ allow = ["MPL-2.0"], crate = "ucs2" }' - skipped_crates: - - '{ crate = "bitflags", reason = "Need https://github.com/gz/rust-x86/pull/150 to be merged into rust-x86." }' - repos: | - OpenDevicePartnership/patina-readiness-tool - # Rust Configuration - Cargo Make # Todo: Add makefiles for other repos - files: diff --git a/.sync/rust/Makefiles/Makefile-patina.toml b/.sync/rust/Makefiles/Makefile-patina.toml index a683bf8..1dded31 100644 --- a/.sync/rust/Makefiles/Makefile-patina.toml +++ b/.sync/rust/Makefiles/Makefile-patina.toml @@ -235,6 +235,12 @@ clear = true command = "cargo" args = ["test", "@@split(CARGO_MAKE_TASK_ARGS,;)"] +[tasks.test-ignored] +description = "Runs ignored tests with native cargo test behavior. Example `cargo make test-ignored` or `cargo make test-ignored -p package_name" +clear = true +command = "cargo" +args = ["test", "@@split(CARGO_MAKE_TASK_ARGS,;)", "--lib", "--tests", "--examples", "--", "--ignored"] + [tasks.test-cov] description = "Run tests and collect coverage data without generating reports." install_crate = false @@ -487,5 +493,6 @@ dependencies = [ "coverage", "doc-test", "doc", + "test-ignored", "test-mdbook", ] diff --git a/.sync/rust/deny.toml b/.sync/rust/deny.toml deleted file mode 100644 index fb7248d..0000000 --- a/.sync/rust/deny.toml +++ /dev/null @@ -1,222 +0,0 @@ -# This template contains all of the possible sections and their default values - -# NOTE: This file is automatically synchronized from Patina DevOps. Update the original file there -# instead of the file in this repo. -# -# - Patina DevOps Repo: https://github.com/OpenDevicePartnership/patina-devops -# - File Sync Settings: https://github.com/OpenDevicePartnership/patina-devops/blob/main/.sync/Files.yml - -# Note that all fields that take a lint level have these possible values: -# * deny - An error will be produced and the check will fail -# * warn - A warning will be produced, but the check will not fail -# * allow - No warning or error will be produced, though in some cases a note -# will be - -# The values provided in this template are the default values that will be used -# when any section or field is not specified in your own configuration - -# Root options - -# The graph table configures how the dependency graph is constructed and thus -# which crates the checks are performed against -[graph] -targets = [] - -# When creating the dependency graph used as the source of truth when checks are -# executed, this field can be used to prune crates from the graph, removing them -# from the view of cargo-deny. This is an extremely heavy hammer, as if a crate -# is pruned from the graph, all of its dependencies will also be pruned unless -# they are connected to another crate in the graph that hasn't been pruned, -# so it should be used with care. The identifiers are [Package ID Specifications] -# (https://doc.rust-lang.org/cargo/reference/pkgid-spec.html) -#exclude = [] - -# If true, metadata will be collected with `--all-features`. Note that this can't -# be toggled off if true, if you want to conditionally enable `--all-features` it -# is recommended to pass `--all-features` on the cmd line instead -all-features = false - -# If true, metadata will be collected with `--no-default-features`. The same -# caveat with `all-features` applies -no-default-features = false - -# If set, these feature will be enabled when collecting metadata. If `--features` -# is specified on the cmd line they will take precedence over this option. -#features = [] - -# The output table provides options for how/if diagnostics are outputted -[output] -feature-depth = 1 - -# This section is considered when running `cargo deny check advisories` -# More documentation for the advisories section can be found here: -# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html -[advisories] -# A list of advisory IDs to ignore. Note that ignored advisories will still -# output a note when they are encountered. -ignore = [ - #"RUSTSEC-0000-0000", - #{ id = "RUSTSEC-0000-0000", reason = "you can specify a reason the advisory is ignored" }, - #"a-crate-that-is-yanked@0.1.1", # you can also ignore yanked crate versions if you wish - #{ crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" }, - - {% if ignored_rust_security_advisories and ignored_rust_security_advisories|length > 0 %} - {{ (ignored_rust_security_advisories | join(",\n " )) | safe }} - {% else %} - {{ "# None right now" }} - {% endif %} -] -# If this is true, then cargo deny will use the git executable to fetch advisory database. -# If this is false, then it uses a built-in git library. -git-fetch-with-cli = true -disable-yank-checking = true - -# This section is considered when running `cargo deny check licenses` -# More documentation for the licenses section can be found here: -# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html -[licenses] -unused-allowed-license = "allow" -# List of explicitly allowed licenses -# See https://spdx.org/licenses/ for list of possible licenses -# [possible values: any SPDX 3.11 short identifier (+ optional exception)]. -allow = [ - "Apache-2.0", - "BSD-2-Clause-Patent", - "MIT", -] -# The confidence threshold for detecting a license from license text. -# The higher the value, the more closely the license text must be to the -# canonical license text of a valid SPDX license file. -# [possible values: any between 0.0 and 1.0]. -confidence-threshold = 0.93 -# Allow 1 or more licenses on a per-crate basis, so that particular licenses -# aren't accepted for every possible crate as with the normal allow list -exceptions = [ - # Each entry is the crate and version constraint, and its specific allow - # list - #{ allow = ["Zlib"], crate = "adler32" }, - {% if license_exceptions and license_exceptions|length > 0 %} - {{ (license_exceptions | join(",\n ")) | safe }} - {% else %} - {{ "# None right now" }} - {% endif %} -] - -[licenses.private] -# If true, ignores workspace crates that aren't published, or are only -# published to private registries. -# To see how to mark a crate as unpublished (to the official registry), -# visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field. -ignore = false -# One or more private registries that you might publish crates to, if a crate -# is only published to private registries, and ignore is true, the crate will -# not have its license(s) checked -registries = [] - -# This section is considered when running `cargo deny check bans`. -# More documentation about the 'bans' section can be found here: -# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html -[bans] -# Lint level for when multiple versions of the same crate are detected -multiple-versions = "warn" -# Lint level for when a crate version requirement is `*` -wildcards = "allow" -# The graph highlighting used when creating dotgraphs for crates -# with multiple versions -# * lowest-version - The path to the lowest versioned duplicate is highlighted -# * simplest-path - The path to the version with the fewest edges is highlighted -# * all - Both lowest-version and simplest-path are used -highlight = "all" -# The default lint level for `default` features for crates that are members of -# the workspace that is being checked. This can be overridden by allowing/denying -# `default` on a crate-by-crate basis if desired. -workspace-default-features = "allow" -# The default lint level for `default` features for external crates that are not -# members of the workspace. This can be overridden by allowing/denying `default` -# on a crate-by-crate basis if desired. -external-default-features = "allow" -# List of crates that are allowed. Use with care! -allow = [ - #"ansi_term@0.11.0", - #{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is allowed" }, -] -# List of crates to deny -deny = [ - #"ansi_term@0.11.0", - #{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is banned" }, - # Wrapper crates can optionally be specified to allow the crate when it - # is a direct dependency of the otherwise banned crate - #{ crate = "ansi_term@0.11.0", wrappers = ["this-crate-directly-depends-on-ansi_term"] }, - {% if denied_crates and denied_crates|length > 0 %} - {{ (denied_crates | join(",\n ")) | safe }} - {% else %} - {{ "# None right now" }} - {% endif %} -] - -# List of features to allow/deny -# Each entry the name of a crate and a version range. If version is -# not specified, all versions will be matched. -#[[bans.features]] -#crate = "reqwest" -# Features to not allow -#deny = ["json"] -# Features to allow -#allow = [ -# "rustls", -# "__rustls", -# "__tls", -# "hyper-rustls", -# "rustls", -# "rustls-pemfile", -# "rustls-tls-webpki-roots", -# "tokio-rustls", -# "webpki-roots", -#] -# If true, the allowed features must exactly match the enabled feature set. If -# this is set there is no point setting `deny` -#exact = true - -# Certain crates/versions that will be skipped when doing duplicate detection. -skip = [ - #"ansi_term@0.11.0", - #{ crate = "ansi_term@0.11.0", reason = "you can specify a reason why it can't be updated/removed" }, - - {% if skipped_crates and skipped_crates|length > 0 %} - {{ (skipped_crates | join(",\n ")) | safe}} - {% else %} - {{ "# None right now" }} - {% endif %} -] -# Similarly to `skip` allows you to skip certain crates during duplicate -# detection. Unlike skip, it also includes the entire tree of transitive -# dependencies starting at the specified crate, up to a certain depth, which is -# by default infinite. -skip-tree = [ - #"ansi_term@0.11.0", # will be skipped along with _all_ of its direct and transitive dependencies - #{ crate = "ansi_term@0.11.0", depth = 20 }, -] - -# This section is considered when running `cargo deny check sources`. -# More documentation about the 'sources' section can be found here: -# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html -[sources] -# Lint level for what to happen when a crate from a crate registry that is not -# in the allow list is encountered -unknown-registry = "deny" -# Lint level for what to happen when a crate from a git repository that is not -# in the allow list is encountered -unknown-git = "deny" -# List of URLs for allowed crate registries. Defaults to the crates.io index -# if not specified. If it is specified but empty, no registries are allowed. -# allow-registry = ["registry+https://github.com/rust-lang/crates.io-index"] -# List of URLs for allowed Git repositories -allow-git = [] -allow-registry = [ - "registry+https://github.com/rust-lang/crates.io-index", -] - -[sources.allow-org] -# github.com organizations to allow git sources for -# No source is currently used from the microsoft GitHub organization so it is commented -# github = ["microsoft"] diff --git a/.sync/rust/rust-toolchain.toml b/.sync/rust/rust-toolchain.toml index 977b259..9649e3e 100644 --- a/.sync/rust/rust-toolchain.toml +++ b/.sync/rust/rust-toolchain.toml @@ -23,4 +23,4 @@ mdbook-linkcheck = "0.7.7" mdbook-mermaid = "0.16.2" [msrv] -channel = "1.89.0" +channel = "1.90.0"