Skip to content

Commit

Permalink
Merge branch 'master' into chore_make_js_sdk_module
Browse files Browse the repository at this point in the history
  • Loading branch information
RyanKung authored Apr 24, 2024
2 parents b5ad157 + 5f1a104 commit 9bd9aa7
Show file tree
Hide file tree
Showing 16 changed files with 360 additions and 302 deletions.
15 changes: 11 additions & 4 deletions .github/workflows/auto-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -231,16 +231,23 @@ jobs:
with:
fetch-depth: 0

- uses: actions/download-artifact@v2
- name: Generate changelog
uses: orhun/git-cliff-action@v3
id: git-cliff
with:
config: cliff.toml
args: "-vv --strip header ${{ needs.gen_version.outputs.version == 'prerelease' && '--unreleased' || '--latest' }}"

- uses: actions/download-artifact@v3
- name: Display fetched artifacts
run: ls -R

- uses: "marvinpinto/action-automatic-releases@latest"
- uses: softprops/action-gh-release@v2.0.4
name: Emit a Github Release
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: ${{ needs.gen_version.outputs.version }}
token: "${{ secrets.GITHUB_TOKEN }}"
body: "${{ steps.git-cliff.outputs.content }}"
tag_name: ${{ needs.gen_version.outputs.version }}
prerelease: ${{ needs.gen_version.outputs.version == 'prerelease' }}
title: ${{ needs.gen_version.outputs.version }}
files: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/qaci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ jobs:
- name: Run doc tests
run: cargo test --doc

# - name: Run dummy tests
# run: cargo test -p rings-core --features dummy --verbose
- name: Run dummy tests
run: cargo test -p rings-core --features dummy --verbose

- name: Run tests
run: cargo test --release --all --verbose
Expand Down
100 changes: 100 additions & 0 deletions cliff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# git-cliff ~ configuration file
# https://git-cliff.org/docs/configuration

[changelog]
# changelog header
header = """
# Changelog\n
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.\n
"""
# template for the changelog body
# https://keats.github.io/tera/docs/#introduction
body = """
---
{% if version %}\
{% if previous.version %}\
## [{{ version | trim_start_matches(pat="v") }}](<REPO>/compare/{{ previous.version }}..{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% endif %}\
{% else %}\
## [unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | striptags | trim | upper_first }}
{% for commit in commits
| filter(attribute="scope")
| sort(attribute="scope") %}
- **({{commit.scope}})**{% if commit.breaking %} [**breaking**]{% endif %} \
{{ commit.message|trim }} - ([{{ commit.id | truncate(length=7, end="") }}](<REPO>/commit/{{ commit.id }})) - {{ commit.author.name }}
{%- endfor -%}
{% raw %}\n{% endraw %}\
{%- for commit in commits %}
{%- if commit.scope -%}
{% else -%}
- {% if commit.breaking %} [**breaking**]{% endif %}\
{{ commit.message|trim }} - ([{{ commit.id | truncate(length=7, end="") }}](<REPO>/commit/{{ commit.id }})) - {{ commit.author.name }}
{% endif -%}
{% endfor -%}
{% endfor %}\n
"""
# template for the changelog footer
footer = """
<!-- generated by git-cliff -->
"""
# remove the leading and trailing whitespace from the templates
trim = true
# postprocessors
postprocessors = [
{ pattern = '<REPO>', replace = "https://github.com/RingsNetwork/rings" },
]

[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 = [
# Replace issue numbers
#{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
# Check spelling of the commit with https://github.com/crate-ci/typos
# If the spelling is incorrect, it will be automatically fixed.
#{ pattern = '.*', replace_command = 'typos --write-changes -' },
]
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^feat", group = "<!-- 0 -->Features" },
{ message = "^fix", group = "<!-- 1 -->Bug Fixes" },
{ message = "^refactor", group = "<!-- 2 -->Refactor" },
{ message = "^doc", group = "<!-- 3 -->Documentation" },
{ message = "^perf", group = "<!-- 4 -->Performance" },
{ message = "^style", group = "<!-- 5 -->Styling" },
{ message = "^test", group = "<!-- 6 -->Testing" },
{ message = "^chore|^ci", group = "<!-- 7 -->Miscellaneous Tasks" },
{ body = ".*security", group = "<!-- 8 -->Security" },
{ message = "^revert", group = "<!-- 9 -->Revert" },
{ message = ".*", group = "<!-- 10 -->Other" },
{ message = "^chore\\(release\\): prepare for", skip = true },
{ message = "^chore\\(deps.*\\)", skip = true },
{ message = "^chore\\(pr\\)", skip = true },
{ message = "^chore\\(pull\\)", skip = true },
]
# 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 = ""
# 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
34 changes: 15 additions & 19 deletions crates/core/src/message/handlers/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -292,8 +292,8 @@ pub mod tests {
println!("========================================");

manually_establish_connection(&node1.swarm, &node2.swarm).await;
wait_for_msgs(&node1, &node2, &node3).await;
assert_no_more_msg(&node1, &node2, &node3).await;
wait_for_msgs([&node1, &node2, &node3]).await;
assert_no_more_msg([&node1, &node2, &node3]).await;

node1.assert_transports(vec![node2.did()]);
node2.assert_transports(vec![node1.did()]);
Expand All @@ -307,8 +307,8 @@ pub mod tests {
println!("========================================");

manually_establish_connection(&node3.swarm, &node2.swarm).await;
wait_for_msgs(&node1, &node2, &node3).await;
assert_no_more_msg(&node1, &node2, &node3).await;
wait_for_msgs([&node1, &node2, &node3]).await;
assert_no_more_msg([&node1, &node2, &node3]).await;

println!("=== Check state before connect via DHT ===");
node1.assert_transports(vec![node2.did()]);
Expand All @@ -331,8 +331,8 @@ pub mod tests {
assert_eq!(node1.dht().successors().max()?, node2.did());

node1.swarm.connect(node3.did()).await.unwrap();
wait_for_msgs(&node1, &node2, &node3).await;
assert_no_more_msg(&node1, &node2, &node3).await;
wait_for_msgs([&node1, &node2, &node3]).await;
assert_no_more_msg([&node1, &node2, &node3]).await;

println!("=== Check state after connect via DHT ===");
node1.assert_transports(vec![node2.did(), node3.did()]);
Expand Down Expand Up @@ -368,8 +368,8 @@ pub mod tests {
println!("========================================");

manually_establish_connection(&node1.swarm, &node2.swarm).await;
wait_for_msgs(&node1, &node2, &node3).await;
assert_no_more_msg(&node1, &node2, &node3).await;
wait_for_msgs([&node1, &node2, &node3]).await;
assert_no_more_msg([&node1, &node2, &node3]).await;

assert_eq!(node1.dht().successors().list()?, vec![node2.did()]);
assert_eq!(node2.dht().successors().list()?, vec![node1.did()]);
Expand All @@ -380,8 +380,8 @@ pub mod tests {
println!("========================================");

manually_establish_connection(&node3.swarm, &node2.swarm).await;
wait_for_msgs(&node1, &node2, &node3).await;
assert_no_more_msg(&node1, &node2, &node3).await;
wait_for_msgs([&node1, &node2, &node3]).await;
assert_no_more_msg([&node1, &node2, &node3]).await;

println!("=== Check state before connect via DHT ===");
node1.assert_transports(vec![node2.did()]);
Expand All @@ -404,8 +404,8 @@ pub mod tests {
assert_eq!(node1.dht().successors().max()?, node2.did());

node1.swarm.connect(node3.did()).await.unwrap();
wait_for_msgs(&node1, &node2, &node3).await;
assert_no_more_msg(&node1, &node2, &node3).await;
wait_for_msgs([&node1, &node2, &node3]).await;
assert_no_more_msg([&node1, &node2, &node3]).await;

println!("=== Check state after connect via DHT ===");
node1.assert_transports(vec![node2.did(), node3.did()]);
Expand Down Expand Up @@ -522,22 +522,18 @@ pub mod tests {
async fn test_finger_when_disconnect() -> Result<()> {
let key1 = SecretKey::random();
let key2 = SecretKey::random();
let key3 = SecretKey::random();

let node1 = prepare_node(key1).await;
let node2 = prepare_node(key2).await;

// This is only a dummy node for using assert_no_more_msg function
let node3 = prepare_node(key3).await;

{
assert!(node1.dht().lock_finger()?.is_empty());
assert!(node1.dht().lock_finger()?.is_empty());
}

manually_establish_connection(&node1.swarm, &node2.swarm).await;
wait_for_msgs(&node1, &node2, &node3).await;
assert_no_more_msg(&node1, &node2, &node3).await;
wait_for_msgs([&node1, &node2]).await;
assert_no_more_msg([&node1, &node2]).await;

node1.assert_transports(vec![node2.did()]);
node2.assert_transports(vec![node1.did()]);
Expand Down Expand Up @@ -571,7 +567,7 @@ pub mod tests {
}
}

assert_no_more_msg(&node1, &node2, &node3).await;
assert_no_more_msg([&node1, &node2]).await;

node1.assert_transports(vec![]);
node2.assert_transports(vec![]);
Expand Down
Loading

0 comments on commit 9bd9aa7

Please sign in to comment.