53 Commits
Author SHA1 Message Date
swaits db38079dfc bump crate to 0.6.3
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 13:11:33 -07:00
swaits f88c1d4375 test: make accepted licenses explicit
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 12:50:36 -07:00
swaits 90a90f49df test: fix cargo audit advisory db location
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 12:45:43 -07:00
swaits b3dca0d8a9 test: add audit, deny, outdated, and udeps to CI
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 12:36:24 -07:00
swaits 8812bacfdd test: add (and fix) more deny lints
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 12:35:26 -07:00
swaits a64732fa97 style: move clippy allows to specific lines of code
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 11:40:12 -07:00
swaits 1b50b0c042 style: more Cargo.toml formatting 2023-02-13 11:13:33 -07:00
swaits f414bdc10d style: format Cargo.toml 2023-02-13 11:10:44 -07:00
swaits b1c37b7b8f bump crate to 0.6.2
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 10:58:18 -07:00
swaits bc043ad54b fix(test): allow clippy lints on specific tests 2023-02-13 10:51:28 -07:00
swaits 96f64f189c dev: add husky for pre-commit hook generation
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 10:48:19 -07:00
swaits 609cc3e98c refactor: clean up by using cfg-if where possible
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 10:41:49 -07:00
swaits d1bc523b67 misc cleanup
- move from std::ops to core::ops
- remove unnecessary println! calls in tests

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 09:52:35 -07:00
swaits e6011b4548 refactor: change unwrap()s to expects() and deny in clippy
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 09:30:00 -07:00
swaits c267d4b9b2 refactor: change std::time::Duration to std::core::Duration
One step closer to `no_std`.

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 09:29:12 -07:00
swaits b76c6c9775 test: use prop_assert* macros where appropriate
The prop_assert* macros clean-up the assertion output by eliminating the extra panics while it’s reducing inputs.

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-13 09:28:09 -07:00
swaits 794d6dffb1 bump crate to 0.6.1 2023-02-10 23:02:46 -05:00
swaits c3d210cf16 refactor: switch to array-init
- Use array-init for the lowest level vector operations. Makes them nicer and less bug-prone, with zero performance impact.
- Remove unnecessary/unused ::new() functions on Vector and HeightVector.
- Update README with new dependency.
- Fix typo in README.

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-10 22:51:38 -05:00
swaits e79242118f bump crate to 0.6.0 2023-02-10 12:38:11 -07:00
swaits 0a62dc06b3 test sr.ht build manifest using package instead of cargo install
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-10 12:31:57 -07:00
swaits 79c90cbd4f test: get to 100% coverage, clean up cargo features
- eliminated `f64` feature because Cargo doesn’t understand mutually exclusive features. So, we default to `f64`, and leave the `f32` feature there if people want to change to that.
- integrated tarpaulin for coverage
- added tests to get to 100% coverage
- fixed NetworkCoordinate Div impl safety checks (now acts like Add and Sub)
- update README to explain cargo feature change
- cleanup build script with the new simpler features model

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-10 12:14:24 -07:00
swaits f829708e5a test: add examples to CI
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-09 20:25:51 -07:00
swaits 1ce84b63ec test: add more stuff to CI
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-09 20:17:24 -07:00
swaits 7159c4b07a bump crate to 0.5.4
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-09 16:39:02 -07:00
swaits c07463122a perf: add benchmark, optimize
Realized about a 10x speedup.

- add benches/million-updates.rs
- optimization: use rand instead of nanorand (because of thread_rng() initialization being muchf aster)
- update README

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-09 16:36:24 -07:00
swaits 2e97c879e1 bump crate to 0.5.3
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-09 11:18:04 -07:00
swaits 64543a8729 doc: updates to NetworkCoordinate
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-09 11:17:27 -07:00
swaits 8d1eadb017 enable cargo fmt check in autobuild
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-09 11:02:03 -07:00
swaits cdab359b4e enable and fix stricter clippy linting
- add clippy to .build.yml to run on sr.ht
- add missing docs
- use core:: instead of std:: where possible
- use hypot() and mul_add() for better numeric stability
- make all float tests use asser_approx_eq() and explicitly check for NaN/Inf
- add missing semicolons here and there
- add #[must_use] to ensure caller uses returned value
- add const fn where appropriate
- change visibility from pub(crate) to pub (in private modules)

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-09 10:54:42 -07:00
swaits c3b3ff1e4d feat: f32/f64 cargo features added
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-08 17:01:19 -07:00
swaits 2addbc68b5 doc: minor updates re: type aliases, crate to 0.5.1
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-08 15:59:15 -07:00
swaits 6294d1e520 doc: udpate crate description 2023-02-08 15:48:46 -07:00
swaits 2f8769012b bump crate to 0.5.0
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-08 15:40:47 -07:00
swaits 57891ed230 feat: type aliases for 2D/3D NetworkCoordinates
This just adds a few type aliases for convenience, and slightly better ergonomics for the most common usage (2D or 3D).

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-08 15:40:23 -07:00
swaits fce4946369 feat: improve ergonomics for serialization format
Goal: To make the serialization format more sensible instead of it being a reflection of our internal (ie private) data model.

- mostly handled with #[serde()] macros (renaming, flattening)
- renamed NetworkCoordinate::position to heightvec which is a better name, even if not seen in the published interface
- changed HeightVector from a tuple struct to a named struct so we can control serde on a field-by-field basis
- updated README, tests, and doc tests to match

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-08 15:32:27 -07:00
swaits 7f41676795 fix: exclude examples from crate
crates.io is limited to 10MB crates

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-07 22:09:28 -07:00
swaits 634064161f bump crate version
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-07 21:44:47 -07:00
swaits 0d9b623f9d test: add test for NetworkCoordinate::estimate_rtt
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-07 21:43:35 -07:00
swaits 828efdda01 misc: formatting
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-07 21:37:29 -07:00
swaits 3cf2f27569 test: add property tests to HeightVector
Which also helped me fix a bug (using is_sign_negative() when we actually are okay with -0.0).

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-07 21:37:21 -07:00
swaits 2b8fc16537 feat: add PlanetLab example
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-07 20:40:06 -07:00
swaits 8f1100d64d fix: add numeric stability
Made `HeightVector` numerically safe; while `Vector` remains numerically unsafe (i.e. it can divide by 0, NaN, Inf, etc).

When HeightVector runs into a problem, it just re-randomizes itself. Since the algorithm converges relatively quickly, this seems to work fine.

Also fixed a bug so that now height will always start as a positive number (and stay that way, else get re-randomized).

Added safety to `NetworkCoordinate` which now checks that its error didn’t pull a `HeightVector` into a negative height; in which case it also re-randomizes.

Clarified the `random` construction, tweaked the DEFAULT_ERROR constant, and updated tests accordingly.

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-07 20:25:10 -07:00
swaits 973365a849 test: add proptest, make vec mul/div scalar safer
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-07 16:29:01 -07:00
swaits e2d14bcc0d doc: add link to ticket tracker
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-04 10:48:28 -07:00
swaits 25e0076c8d doc: add link to docs.rs in README
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-04 10:43:36 -07:00
swaits aba483c9e1 bump crate version
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-04 10:40:57 -07:00
swaits e9febc6faa clean up export, add module level docs
- public NetworkCoordinate so it’s easer to just `use vivaldi_nc::NetworkCoordinate`
- add module level docs and examples in lib.rs
- cleanup README

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-04 10:39:59 -07:00
swaits c83a4e654b update README, bump crate version
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-04 09:48:01 -07:00
swaits 2fad2e18b5 feat: add serde
Adds serialization/deserialization support via serde and serde_with.

Also:

- remove `license-file` in Cargo.toml (superfluous)
- update README with Getting Started section
- add `serde` and `serde_with` dependencies to README
- add tests to `HeightVector`
- tweak assertion in `NetworkCoordinate`
- refactor `Vector` to be a struct witn an `inner` instead of a tuple struct so that we can use `serde_as` (from `serde_with`) to help us derive SerDe implementations for the const generic sized array
- moved trait requirements (which are getting long) into where clauses

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-04 09:42:46 -07:00
swaits 3415347072 remove Cargo.lock and add to .gitignore
Because this is a library, Cargo.lock should not be committed.

Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-04 09:37:40 -07:00
swaits 5611618126 prep Cargo.toml for publication, add badges
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-02 22:33:15 -07:00
swaits c2399c5b8f add build badge to readme
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-02 21:56:18 -07:00
swaits f35680738c Add build script for git.sr.ht
Signed-off-by: Stephen Waits <steve@waits.net>
2023-02-02 21:48:35 -07:00
8 changed files with 106 additions and 279 deletions

No files matched your search

+69
View File
@@ -0,0 +1,69 @@
image: archlinux
packages:
- rustup
- cargo-audit
- cargo-deny
- cargo-outdated
- cargo-tarpaulin
- cargo-udeps
sources:
- https://git.sr.ht/~swaits/vivaldi-nc
artifacts:
- vivaldi-nc/tarpaulin-report.html
tasks:
- setup: |
rustup toolchain install nightly stable
cd vivaldi-nc/
rustup run stable cargo fetch
- format: |
rustup default stable
cd vivaldi-nc/
cargo fmt --verbose --check --all
- lint: |
rustup default stable
cd vivaldi-nc/
cargo clippy --verbose --all-targets --all-features
- outdated: |
rustup default stable
cd vivaldi-nc/
cargo outdated
- deny: |
rustup default stable
cd vivaldi-nc/
cargo deny check
- udeps: |
rustup default nightly
cd vivaldi-nc/
cargo +nightly udeps --all-features
- audit: |
rustup default stable
cd vivaldi-nc/
cargo audit -d /tmp/advisory-db
- coverage: |
rustup default stable
cd vivaldi-nc/
cargo tarpaulin --verbose --all-features --out Html
- stable: |
rustup default stable
cd vivaldi-nc/
cargo build --verbose --all-targets --all-features
cargo test --verbose --all-features
- nightly: |
rustup default nightly
cd vivaldi-nc/
cargo clippy --verbose --all-targets --all-features ||:
cargo build --verbose --all-targets --all-features ||:
cargo test --verbose --all-targets --all-features ||:
- bench: |
rustup default stable
cd vivaldi-nc/
cargo bench --verbose --all-targets --all-features
- examples: |
rustup default stable
cd vivaldi-nc/
cargo run --verbose --all-features --example planetlab
cargo run --verbose --all-features --example planetlab --release
- docs: |
cd vivaldi-nc/
rustup run stable cargo doc --no-deps
rustup run nightly cargo doc --no-deps ||:
-142
View File
@@ -1,142 +0,0 @@
# Changelog
All notable changes to this project will be documented in this file.
## [0.6.12] - 2023-11-01
### Miscellaneous Tasks
- Update dependencies
## [0.6.11]
### Miscellaneous Tasks
- Finally add CHANGELOG.md
## [0.6.4]
### Miscellaneous Tasks
- Add MSRV (1.60)
- Upgrade dependencies
## [0.6.3]
### Styling
- Format Cargo.toml
- More Cargo.toml formatting
- Move clippy allows to specific lines of code
### Testing
- Add (and fix) more deny lints
- Add audit, deny, outdated, and udeps to CI
- Fix cargo audit advisory db location
- Make accepted licenses explicit
## [0.6.2]
### Bug Fixes
- Allow clippy lints on specific tests
### Refactor
- Change std::time::Duration to std::core::Duration
- Change unwrap()s to expects() and deny in clippy
- Clean up by using cfg-if where possible
### Testing
- Use prop_assert* macros where appropriate
### Dev
- Add husky for pre-commit hook generation
## [0.6.1]
### Refactor
- Switch to array-init
## [0.6.0]
### Testing
- Add more stuff to CI
- Add examples to CI
- Get to 100% coverage, clean up cargo features
## [0.5.4]
### Performance
- Add benchmark, optimize
## [0.5.3]
### Documentation
- Updates to NetworkCoordinate
## [0.5.2]
### Features
- F32/f64 cargo features added
## [0.5.1]
### Documentation
- Udpate crate description
- Minor updates re: type aliases, crate to 0.5.1
## [0.5.0]
### Features
- Improve ergonomics for serialization format
- Type aliases for 2D/3D NetworkCoordinates
## [0.4.1]
### Bug Fixes
- Exclude examples from crate
## [0.4.0]
### Bug Fixes
- Add numeric stability
### Features
- Add PlanetLab example
### Testing
- Add proptest, make vec mul/div scalar safer
- Add property tests to HeightVector
- Add test for NetworkCoordinate::estimate_rtt
### Misc
- Formatting
## [0.3.1]
### Documentation
- Add link to docs.rs in README
- Add link to ticket tracker
### Features
- Add serde
<!-- generated by git-cliff -->
+15 -16
View File
@@ -1,6 +1,6 @@
[package]
name = "vivaldi-nc"
version = "0.6.13"
version = "0.6.3"
edition = "2021"
authors = ["Stephen Waits <steve@waits.net>"]
description = "Vivaldi network coordinates for fast, distributed latency estimates in multinode networks, with a clean and simple interface."
@@ -9,10 +9,9 @@ keywords = ["vivaldi", "network", "coordinates", "distributed", "p2p"]
categories = ["algorithms", "network-programming"]
documentation = "https://docs.rs/vivaldi-nc/"
readme = "README.md"
homepage = "https://git.swaits.com/swaits/vivaldi-nc"
repository = "https://git.swaits.com/swaits/vivaldi-nc"
homepage = "https://sr.ht/~swaits/vivaldi-nc/"
repository = "https://git.sr.ht/~swaits/vivaldi-nc"
exclude = ["examples/*"]
rust-version = "1.65"
[features]
default = []
@@ -30,22 +29,22 @@ harness = false
[dev-dependencies]
assert_approx_eq = "1.1.0"
criterion = "0.5.1"
criterion = "0.4.0"
cargo-husky = { version = "1.5.0", features = [
"run-for-all",
"precommit-hook",
"run-cargo-test",
"run-cargo-check",
"run-cargo-clippy",
"run-cargo-fmt",
"run-for-all",
"precommit-hook",
"run-cargo-test",
"run-cargo-check",
"run-cargo-clippy",
"run-cargo-fmt",
] }
proptest = "1.4.0"
serde_json = "1.0.114"
proptest = "1.0.0"
serde_json = "1.0.91"
[dependencies]
array-init = "2.1.0"
cfg-if = "1.0.0"
num-traits = "0.2.18"
num-traits = "0.2.15"
rand = "0.8.5"
serde = { version = "1.0.197", features = ["serde_derive"] }
serde_with = "3.6.1"
serde = { version = "1.0.152", features = ["serde_derive"] }
serde_with = "2.2.0"
+20 -33
View File
@@ -1,22 +1,6 @@
# vivaldi-nc - Vivaldi Network Coordinates
![Rust Version](https://img.shields.io/badge/rustc-1.60+-blue.svg) [![docs.rs](https://img.shields.io/docsrs/vivaldi-nc)](https://docs.rs/vivaldi-nc/) [![CI](https://git.swaits.com/swaits/vivaldi-nc/actions/workflows/ci.yml/badge.svg)](https://git.swaits.com/swaits/vivaldi-nc/actions) [![Crates.io](https://img.shields.io/crates/v/vivaldi-nc)](https://crates.io/crates/vivaldi-nc) ![Crates.io](https://img.shields.io/crates/d/vivaldi-nc) ![Crates.io](https://img.shields.io/crates/l/vivaldi-nc)
<!--toc:start-->
- [vivaldi-nc - Vivaldi Network Coordinates](#vivaldi-nc-vivaldi-network-coordinates)
- [Introduction](#introduction)
- [Addressing the Drawbacks](#addressing-the-drawbacks)
- [Usage](#usage)
- [Getting Started](#getting-started)
- [Cargo Features](#cargo-features)
- [Examples](#examples)
- [Dependencies](#dependencies)
- [Design Goals & Alternatives](#design-goals-alternatives)
- [Other Vivaldi NC Implementations](#other-vivaldi-nc-implementations)
- [Other NC Algorithms](#other-nc-algorithms)
- [Getting Help or Contributing](#getting-help-or-contributing)
- [License](#license)
<!--toc:end-->
[![docs.rs](https://img.shields.io/docsrs/vivaldi-nc)](https://docs.rs/vivaldi-nc/) [![builds.sr.ht status](https://builds.sr.ht/~swaits/vivaldi-nc.svg)](https://builds.sr.ht/~swaits/vivaldi-nc?) [![Crates.io](https://img.shields.io/crates/v/vivaldi-nc)](https://crates.io/crates/vivaldi-nc) ![Crates.io](https://img.shields.io/crates/d/vivaldi-nc) ![Crates.io](https://img.shields.io/crates/l/vivaldi-nc)
## Introduction
@@ -38,20 +22,20 @@ According to the [Vivaldi coordinates article on Wikipedia](https://en.wikipedia
> has a prime use in networking. The algorithm behind the system uses a
> distributed technique to estimate propagation times between peers in the
> network.
>
>
> Through this scheme, network topology awareness can be used to tune the
> network behaviour to more efficiently distribute data. For example, in a
> peer-to-peer network, more responsive identification and delivery of content
> can be achieved. In the Azureus application, Vivaldi is used to improve the
> performance of the distributed hash table that facilitates query matches.
>
> performance of the distributed hash table that facilitates query matches.
>
> **Advantages**
>
>
> - Vivaldi is a fully distributed scheme, which achieves good scalability.
> - The Vivaldi algorithm is simple and easy to implement.
>
>
> **Drawbacks**
>
>
> - Vivaldi is based on the Euclidean distance model, which requires the
> predicted distances to obey the triangle inequality. However, there are
> many triangle inequality violations (TIVs) on the Internet.
@@ -174,7 +158,7 @@ Adding some detail to these three fields:
To run the example, first clone the repository locally:
```bash
git clone https://git.swaits.com/swaits/vivaldi-nc
git clone https://git.sr.ht/~swaits/vivaldi-nc
```
Then `cd` into the local clone and run the example:
@@ -258,12 +242,15 @@ find many more.
## Getting Help or Contributing
To get help, discuss this crate, or report a bug, [open an
issue](https://git.swaits.com/swaits/vivaldi-nc/issues).
To get help or discuss this crate, [submit a
ticket](https://todo.sr.ht/~swaits/vivaldi-nc) or post on
[`vivaldi-nc-discuss@`](https://lists.sr.ht/~swaits/vivaldi-nc-discuss).
If you want to contribute code enhancements or fixes directly, fork the
repository on [git.swaits.com](https://git.swaits.com/swaits/vivaldi-nc) and
open a pull request.
Discussion related to development or patch submissions should go to
[`vivaldi-nc-devel@`](https://lists.sr.ht/~swaits/vivaldi-nc-devel).
Patchsets should use [git-send-email](https://git-send-email.io/) or the [sr.ht
UI](https://git.sr.ht/~swaits/vivaldi-nc/send-email) (easiest IMO).
Patch submitters implicitly agree that all contributions they submit fall under
the MIT license.
@@ -271,19 +258,19 @@ the MIT license.
## License
> MIT License
>
>
> Copyright (c) 2023 Stephen Waits
>
>
> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal
> in the Software without restriction, including without limitation the rights
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> copies of the Software, and to permit persons to whom the Software is
> furnished to do so, subject to the following conditions:
>
>
> The above copyright notice and this permission notice shall be included in all
> copies or substantial portions of the Software.
>
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-83
View File
@@ -1,83 +0,0 @@
# git-cliff ~ default configuration file
# https://git-cliff.org/docs/configuration
#
# Lines starting with "#" are comments.
# Configuration options are organized into tables and keys.
# See documentation for more information on available options.
[changelog]
# changelog header
header = """
# Changelog\n
All notable changes to this project will be documented in this file.\n
"""
# template for the changelog body
# https://keats.github.io/tera/docs/#introduction
body = """
{% if version %}\
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | upper_first }}
{% for commit in commits %}
- {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first }}\
{% endfor %}
{% endfor %}\n
"""
# remove the leading and trailing whitespace from the template
trim = true
# changelog footer
footer = """
<!-- generated by git-cliff -->
"""
# postprocessors
postprocessors = [
# { pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL
]
[git]
# parse the commits based on https://www.conventionalcommits.org
conventional_commits = true
# filter out the commits that are not conventional
filter_unconventional = true
# process each line of a commit as an individual commit
split_commits = false
# regex for preprocessing the commit messages
commit_preprocessors = [
# { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"}, # replace issue numbers
]
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^feat", group = "Features" },
{ message = "^fix", group = "Bug Fixes" },
{ message = "^doc", group = "Documentation" },
{ message = "^perf", group = "Performance" },
{ message = "^refactor", group = "Refactor" },
{ message = "^style", group = "Styling" },
{ message = "^test", group = "Testing" },
{ message = "^chore\\(release\\): prepare for", skip = true },
{ message = "^chore\\(deps\\)", skip = true },
{ message = "^chore\\(pr\\)", skip = true },
{ message = "^chore\\(pull\\)", skip = true },
{ message = "^chore|ci", group = "Miscellaneous Tasks" },
{ body = ".*security", group = "Security" },
{ message = "^revert", group = "Revert" },
]
# protect breaking changes from being skipped due to matching a skipping commit_parser
protect_breaking_commits = false
# filter out the commits that are not matched by commit parsers
filter_commits = false
# regex for matching git tags
tag_pattern = "v[0-9].*"
# regex for skipping tags
skip_tags = "v0.1.0-beta.1"
# regex for ignoring tags
ignore_tags = ""
# sort the tags topologically
topo_order = false
# sort the commits inside sections by oldest/newest order
sort_commits = "oldest"
# limit the number of commits included in the changelog.
# limit_commits = 42
+2 -3
View File
@@ -47,7 +47,7 @@ use core::ops::{Add, Mul, Sub};
use rand::prelude::*;
use serde::{Deserialize, Serialize};
use crate::vector::Vector;
use crate::vector::{self, Vector};
//
// **** Features ****
@@ -160,7 +160,7 @@ impl<const N: usize> Default for HeightVector<N> {
/// Default value for a Vivaldi height vector is just the defaults of its children types.
fn default() -> Self {
Self {
position: Vector::default(),
position: vector::Vector::default(),
height: Default::default(),
}
}
@@ -236,7 +236,6 @@ impl<const N: usize> Mul<FloatType> for HeightVector<N> {
//
// **** Tests ****
//
#[allow(clippy::ignored_unit_patterns)]
#[cfg(test)]
mod tests {
use super::*;
-1
View File
@@ -121,7 +121,6 @@
variant_size_differences
)]
#![allow(clippy::type_repetition_in_bounds)]
#![allow(single_use_lifetimes)]
mod height_vector;
mod vector;
-1
View File
@@ -150,7 +150,6 @@ where
// **** Tests ****
//
#[allow(clippy::ignored_unit_patterns)]
#[cfg(test)]
mod tests {
use super::*;