Spot coupling by finding out which files are always in the same commit

Overview

git moves-together

This tells you when files in the repository frequently move together. This lets you identify where the coupling is in the system. Coupling is negative and to an extent unavoidable, this tool aims to make it visible.

Getting Started

If every time I commit no file moves at the same time, that's 0 coupling

echo "no-coupling-setup - file_1" > file_1
git add .
git commit --message "demo: no-coupling-setup"
echo "no-coupling-setup - file_2" > file_2
git add .
git commit --message "demo: no-coupling-setup"

When we run git-moves-together we can see that these files have no direct commit based coupling

git-moves-together
0 files move together

If we then make a change to both files in the same commit

echo "coupling-setup - file_1" > file_1
echo "coupling-setup - file_2" > file_2
echo "coupling-setup - file_3" > file_3
git add .
git commit --message "demo: coupling-setup"

When we run git-moves-together we can see that these files have no direct commit based coupling

git-moves-together $PWD
╭──────────────────┬──────────────────┬────────────┬──────────┬─────────╮
│ File A           ┆ File B           ┆ Together % ┆ Together ┆ Commits │
╞══════════════════╪══════════════════╪════════════╪══════════╪═════════╡
│ some-repo@file_1 ┆ some-repo@file_2 ┆ 50.00%     ┆ 1        ┆ 2       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ some-repo@file_1 ┆ some-repo@file_3 ┆ 100.00%    ┆ 1        ┆ 1       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ some-repo@file_2 ┆ some-repo@file_3 ┆ 50.00%     ┆ 1        ┆ 2       │
╰──────────────────┴──────────────────┴────────────┴──────────┴─────────╯

You can also reduce the commits you're including, by limiting the changes to a specific time period

echo "day-limit-setup - file_1" > file_1
git add .
GIT_COMMITTER_DATE="2005-04-07T22:13:13" git commit --message "demo: day-limit-setup"
git-moves-together -d 30 $PWD
╭──────────────────┬──────────────────┬────────────┬──────────┬─────────╮
│ File A           ┆ File B           ┆ Together % ┆ Together ┆ Commits │
╞══════════════════╪══════════════════╪════════════╪══════════╪═════════╡
│ some-repo@file_1 ┆ some-repo@file_2 ┆ 50.00%     ┆ 1        ┆ 2       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ some-repo@file_1 ┆ some-repo@file_3 ┆ 100.00%    ┆ 1        ┆ 1       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ some-repo@file_2 ┆ some-repo@file_3 ┆ 50.00%     ┆ 1        ┆ 2       │
╰──────────────────┴──────────────────┴────────────┴──────────┴─────────╯

You can also set a window of time to group by rather than the commit id, which is useful when you're looking for coupling over multiple repositories

Let's make another git repository

echo "time-window-setup - file_1" > "../other-repo/file_1"
echo "time-window-setup - file_2" > "../other-repo/file_2"
echo "time-window-setup - file_3" > "../other-repo/file_3"
git -C "../other-repo" add .
git -C "../other-repo" commit --message "demo: time-window-setup"
echo "time-window-setup - file_1 update" > "../other-repo/file_1"
echo "time-window-setup - file_2 update" > "../other-repo/file_2"
echo "time-window-setup - file_3 update" > "../other-repo/file_3"
git -C "../other-repo" add .
git -C "../other-repo" commit --message "demo: time-window-setup"

Now we can look at the coupling across two repositories

git-moves-together -t 30 "$PWD" "$PWD/../other-repo"
╭───────────────────┬───────────────────┬────────────┬──────────┬─────────╮
│ File A            ┆ File B            ┆ Together % ┆ Together ┆ Commits │
╞═══════════════════╪═══════════════════╪════════════╪══════════╪═════════╡
│ other-repo@file_1 ┆ other-repo@file_2 ┆ 100.00%    ┆ 2        ┆ 2       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_1 ┆ other-repo@file_3 ┆ 100.00%    ┆ 2        ┆ 2       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_1 ┆ some-repo@file_1  ┆ 33.33%     ┆ 2        ┆ 6       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_1 ┆ some-repo@file_2  ┆ 40.00%     ┆ 2        ┆ 5       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_1 ┆ some-repo@file_3  ┆ 40.00%     ┆ 2        ┆ 5       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_2 ┆ other-repo@file_3 ┆ 100.00%    ┆ 2        ┆ 2       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_2 ┆ some-repo@file_1  ┆ 33.33%     ┆ 2        ┆ 6       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_2 ┆ some-repo@file_2  ┆ 40.00%     ┆ 2        ┆ 5       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_2 ┆ some-repo@file_3  ┆ 40.00%     ┆ 2        ┆ 5       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_3 ┆ some-repo@file_1  ┆ 33.33%     ┆ 2        ┆ 6       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_3 ┆ some-repo@file_2  ┆ 40.00%     ┆ 2        ┆ 5       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ other-repo@file_3 ┆ some-repo@file_3  ┆ 40.00%     ┆ 2        ┆ 5       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ some-repo@file_1  ┆ some-repo@file_2  ┆ 83.33%     ┆ 5        ┆ 6       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ some-repo@file_1  ┆ some-repo@file_3  ┆ 83.33%     ┆ 5        ┆ 6       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌┤
│ some-repo@file_2  ┆ some-repo@file_3  ┆ 100.00%    ┆ 5        ┆ 5       │
╰───────────────────┴───────────────────┴────────────┴──────────┴─────────╯

Which is why you see the coupling as shown above

Usage

git-moves-together -h
git-moves-together 2.5.0

Billie Thompson <[email protected]>

Find files that move at the same time in a git repository to identify coupling

USAGE:
    git-moves-together [OPTIONS] [git-repo]...

ARGS:
    <git-repo>...    A repository to analyse [env: GIT_REPO=] [default: .]

FLAGS:
    -h, --help       Print help information
    -V, --version    Print version information

OPTIONS:
    -d, --from-days <max-days-ago>
            Ignore deltas older than the given days [env: MAX_DAYS_AGO=]

    -t, --time-window-minutes <time-window-minutes>
            Group commits by similar time window rather than by commit id [env:
            TIME_WINDOW_MINUTES=]

Installing

See the releases page we build for linux and mac (all x86_64), alternatively use brew

brew install PurpleBooth/repo/git-moves-together
Comments
  • merge-queue: embarking main (dfd7a60) and #140 together

    merge-queue: embarking main (dfd7a60) and #140 together

    🎉 This combination of pull requests has been checked successfully 🎉

    Branch main (dfd7a60) and #140 are embarked together for merge.

    This pull request has been created by Mergify to speculatively check the mergeability of #140. You don't need to do anything. Mergify will close this pull request automatically when it is complete.

    Required conditions of queue default for merge:

    • [X] base=main
    • [X] check-success=commit-checks / version
    • [X] check-success=lint-markdown / lint-markdown
    • [X] check-success=rust-checks / bench (macos-latest)
    • [X] check-success=rust-checks / bench (ubuntu-latest)
    • [X] check-success=rust-checks / bench (windows-latest)
    • [X] check-success=rust-checks / check
    • [X] check-success=rust-checks / lints (macos-latest)
    • [X] check-success=rust-checks / lints (ubuntu-latest)
    • [X] check-success=rust-checks / lints (windows-latest)
    • [X] check-success=rust-checks / security-audit
    • [X] check-success=rust-checks / test (macos-latest)
    • [X] check-success=rust-checks / test (ubuntu-latest)
    • [X] check-success=rust-checks / test (windows-latest)
    • [X] check-success=specdown / specdown (macos-latest)
    • [X] check-success=specdown / specdown (ubuntu-latest)
    • [X] check-success=specdown / specdown (windows-latest)

    More informations about Mergify merge queue can be found in the documentation.

    Mergify commands

    You can also trigger Mergify actions by commenting on this pull request:

    • @Mergifyio refresh will re-evaluate the queue rules

    Additionally, on Mergify dashboard you can:

    • look at your merge queues
    • generate the Mergify configuration with the config editor.

    Finally, you can contact us on https://mergify.com

    ---
    pull_requests:
      - number: 140
    ...
    
    
    opened by mergify[bot] 2
  • merge-queue: embarking main (8640efd) and #134 together

    merge-queue: embarking main (8640efd) and #134 together

    🎉 This combination of pull requests has been checked successfully 🎉

    Branch main (8640efd) and #134 are embarked together for merge.

    This pull request has been created by Mergify to speculatively check the mergeability of #134. You don't need to do anything. Mergify will close this pull request automatically when it is complete.

    Required conditions of queue default for merge:

    • [X] base=main
    • [X] check-success=commit-checks / version
    • [X] check-success=lint-markdown / lint-markdown
    • [X] check-success=rust-checks / bench (macos-latest)
    • [X] check-success=rust-checks / bench (ubuntu-latest)
    • [X] check-success=rust-checks / bench (windows-latest)
    • [X] check-success=rust-checks / check
    • [X] check-success=rust-checks / lints (macos-latest)
    • [X] check-success=rust-checks / lints (ubuntu-latest)
    • [X] check-success=rust-checks / lints (windows-latest)
    • [X] check-success=rust-checks / security-audit
    • [X] check-success=rust-checks / test (macos-latest)
    • [X] check-success=rust-checks / test (ubuntu-latest)
    • [X] check-success=rust-checks / test (windows-latest)
    • [X] check-success=specdown / specdown (macos-latest)
    • [X] check-success=specdown / specdown (ubuntu-latest)
    • [X] check-success=specdown / specdown (windows-latest)

    More informations about Mergify merge queue can be found in the documentation.

    Mergify commands

    You can also trigger Mergify actions by commenting on this pull request:

    • @Mergifyio refresh will re-evaluate the queue rules

    Additionally, on Mergify dashboard you can:

    • look at your merge queues
    • generate the Mergify configuration with the config editor.

    Finally, you can contact us on https://mergify.com

    ---
    pull_requests:
      - number: 134
    ...
    
    
    opened by mergify[bot] 1
  • merge-queue: embarking main (c92cdd1) and #124 together

    merge-queue: embarking main (c92cdd1) and #124 together

    🎉 This combination of pull requests has been checked successfully 🎉

    Branch main (c92cdd1) and #124 are embarked together for merge.

    This pull request has been created by Mergify to speculatively check the mergeability of #124. You don't need to do anything. Mergify will close this pull request automatically when it is complete.

    Required conditions of queue default for merge:

    • [X] base=main
    • [X] check-success=commit-checks / version
    • [X] check-success=lint-markdown / lint-markdown
    • [X] check-success=rust-checks / bench (macos-latest)
    • [X] check-success=rust-checks / bench (ubuntu-latest)
    • [X] check-success=rust-checks / bench (windows-latest)
    • [X] check-success=rust-checks / check
    • [X] check-success=rust-checks / lints (macos-latest)
    • [X] check-success=rust-checks / lints (ubuntu-latest)
    • [X] check-success=rust-checks / lints (windows-latest)
    • [X] check-success=rust-checks / security-audit
    • [X] check-success=rust-checks / test (macos-latest)
    • [X] check-success=rust-checks / test (ubuntu-latest)
    • [X] check-success=rust-checks / test (windows-latest)
    • [X] check-success=specdown / specdown (macos-latest)
    • [X] check-success=specdown / specdown (ubuntu-latest)
    • [X] check-success=specdown / specdown (windows-latest)

    More informations about Mergify merge queue can be found in the documentation.

    Mergify commands

    You can also trigger Mergify actions by commenting on this pull request:

    • @Mergifyio refresh will re-evaluate the queue rules

    Additionally, on Mergify dashboard you can:

    • look at your merge queues
    • generate the Mergify configuration with the config editor.

    Finally, you can contact us on https://mergify.com

    ---
    pull_requests:
      - number: 124
    ...
    
    
    opened by mergify[bot] 1
  • merge-queue: embarking main (a61ab80) and #124 together

    merge-queue: embarking main (a61ab80) and #124 together

    ✨ Unexpected queue change: an external action moved the target branch head to c92cdd1b5a99b4306c82c9a59cd4e13c0c0a0fb6. The pull request #124 has been re-embarked. ✨

    Branch main (a61ab80) and #124 are embarked together for merge.

    This pull request has been created by Mergify to speculatively check the mergeability of #124. You don't need to do anything. Mergify will close this pull request automatically when it is complete.

    Required conditions of queue default for merge:

    • [ ] check-success=rust-checks / lints (macos-latest)
    • [X] base=main
    • [X] check-success=commit-checks / version
    • [X] check-success=lint-markdown / lint-markdown
    • [X] check-success=rust-checks / bench (macos-latest)
    • [X] check-success=rust-checks / bench (ubuntu-latest)
    • [X] check-success=rust-checks / bench (windows-latest)
    • [X] check-success=rust-checks / check
    • [X] check-success=rust-checks / lints (ubuntu-latest)
    • [X] check-success=rust-checks / lints (windows-latest)
    • [X] check-success=rust-checks / security-audit
    • [X] check-success=rust-checks / test (macos-latest)
    • [X] check-success=rust-checks / test (ubuntu-latest)
    • [X] check-success=rust-checks / test (windows-latest)
    • [X] check-success=specdown / specdown (macos-latest)
    • [X] check-success=specdown / specdown (ubuntu-latest)
    • [X] check-success=specdown / specdown (windows-latest)

    More informations about Mergify merge queue can be found in the documentation.

    Mergify commands

    You can also trigger Mergify actions by commenting on this pull request:

    • @Mergifyio refresh will re-evaluate the queue rules

    Additionally, on Mergify dashboard you can:

    • look at your merge queues
    • generate the Mergify configuration with the config editor.

    Finally, you can contact us on https://mergify.com

    ---
    pull_requests:
      - number: 124
    ...
    
    
    opened by mergify[bot] 1
  • ci(deps): bump PurpleBooth/versio-release-action from 0.1.13 to 0.1.14

    ci(deps): bump PurpleBooth/versio-release-action from 0.1.13 to 0.1.14

    Bumps PurpleBooth/versio-release-action from 0.1.13 to 0.1.14.

    Release notes

    Sourced from PurpleBooth/versio-release-action's releases.

    Release v0.1.14

    Changelog

    v0.1.14 (2022-10-03)

    Commits
    • f8719ad fix: bump ncipollo/release-action from 1.10.0 to 1.11.0
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • fix(deps): bump tokio from 1.18.2 to 1.21.2

    fix(deps): bump tokio from 1.18.2 to 1.21.2

    Bumps tokio from 1.18.2 to 1.21.2.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.21.2

    1.21.2 (September 27, 2022)

    This release removes the dependency on the once_cell crate to restore the MSRV of 1.21.x, which is the latest minor version at the time of release. (#5048)

    #5048: tokio-rs/tokio#5048

    Tokio v1.21.1

    1.21.1 (September 13, 2022)

    Fixed

    • net: fix dependency resolution for socket2 (#5000)
    • task: ignore failure to set TLS in LocalSet Drop (#4976)

    #4976: tokio-rs/tokio#4976 #5000: tokio-rs/tokio#5000

    Tokio v1.21.0

    1.21.0 (September 2, 2022)

    This release is the first release of Tokio to intentionally support WASM. The sync,macros,io-util,rt,time features are stabilized on WASM. Additionally the wasm32-wasi target is given unstable support for the net feature.

    Added

    • net: add device and bind_device methods to TCP/UDP sockets (#4882)
    • net: add tos and set_tos methods to TCP and UDP sockets (#4877)
    • net: add security flags to named pipe ServerOptions (#4845)
    • signal: add more windows signal handlers (#4924)
    • sync: add mpsc::Sender::max_capacity method (#4904)
    • sync: implement Weak version of mpsc::Sender (#4595)
    • task: add LocalSet::enter (#4765)
    • task: stabilize JoinSet and AbortHandle (#4920)
    • tokio: add track_caller to public APIs (#4805, #4848, #4852)
    • wasm: initial support for wasm32-wasi target (#4716)

    Fixed

    • miri: improve miri compatibility by avoiding temporary references in linked_list::Link impls (#4841)
    • signal: don't register write interest on signal pipe (#4898)
    • sync: add #[must_use] to lock guards (#4886)
    • sync: fix hang when calling recv on closed and reopened broadcast channel (#4867)
    • task: propagate attributes on task-locals (#4837)

    Changed

    • fs: change panic to error in File::start_seek (#4897)
    • io: reduce syscalls in poll_read (#4840)
    • process: use blocking threadpool for child stdio I/O (#4824)
    • signal: make SignalKind methods const (#4956)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • fix(deps): bump tokio from 1.18.2 to 1.21.1

    fix(deps): bump tokio from 1.18.2 to 1.21.1

    Bumps tokio from 1.18.2 to 1.21.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.21.1

    1.21.1 (September 13, 2022)

    Fixed

    • net: fix dependency resolution for socket2 (#5000)
    • task: ignore failure to set TLS in LocalSet Drop (#4976)

    #4976: tokio-rs/tokio#4976 #5000: tokio-rs/tokio#5000

    Tokio v1.21.0

    1.21.0 (September 2, 2022)

    This release is the first release of Tokio to intentionally support WASM. The sync,macros,io-util,rt,time features are stabilized on WASM. Additionally the wasm32-wasi target is given unstable support for the net feature.

    Added

    • net: add device and bind_device methods to TCP/UDP sockets (#4882)
    • net: add tos and set_tos methods to TCP and UDP sockets (#4877)
    • net: add security flags to named pipe ServerOptions (#4845)
    • signal: add more windows signal handlers (#4924)
    • sync: add mpsc::Sender::max_capacity method (#4904)
    • sync: implement Weak version of mpsc::Sender (#4595)
    • task: add LocalSet::enter (#4765)
    • task: stabilize JoinSet and AbortHandle (#4920)
    • tokio: add track_caller to public APIs (#4805, #4848, #4852)
    • wasm: initial support for wasm32-wasi target (#4716)

    Fixed

    • miri: improve miri compatibility by avoiding temporary references in linked_list::Link impls (#4841)
    • signal: don't register write interest on signal pipe (#4898)
    • sync: add #[must_use] to lock guards (#4886)
    • sync: fix hang when calling recv on closed and reopened broadcast channel (#4867)
    • task: propagate attributes on task-locals (#4837)

    Changed

    • fs: change panic to error in File::start_seek (#4897)
    • io: reduce syscalls in poll_read (#4840)
    • process: use blocking threadpool for child stdio I/O (#4824)
    • signal: make SignalKind methods const (#4956)

    Internal changes

    • rt: extract basic_scheduler::Config (#4935)
    • rt: move I/O driver into runtime module (#4942)
    • rt: rename internal scheduler types (#4945)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • fix(deps): bump tokio from 1.18.2 to 1.21.0

    fix(deps): bump tokio from 1.18.2 to 1.21.0

    Bumps tokio from 1.18.2 to 1.21.0.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.21.0

    1.21.0 (September 2, 2022)

    This release is the first release of Tokio to intentionally support WASM. The sync,macros,io-util,rt,time features are stabilized on WASM. Additionally the wasm32-wasi target is given unstable support for the net feature.

    Added

    • net: add device and bind_device methods to TCP/UDP sockets (#4882)
    • net: add tos and set_tos methods to TCP and UDP sockets (#4877)
    • net: add security flags to named pipe ServerOptions (#4845)
    • signal: add more windows signal handlers (#4924)
    • sync: add mpsc::Sender::max_capacity method (#4904)
    • sync: implement Weak version of mpsc::Sender (#4595)
    • task: add LocalSet::enter (#4765)
    • task: stabilize JoinSet and AbortHandle (#4920)
    • tokio: add track_caller to public APIs (#4805, #4848, #4852)
    • wasm: initial support for wasm32-wasi target (#4716)

    Fixed

    • miri: improve miri compatibility by avoiding temporary references in linked_list::Link impls (#4841)
    • signal: don't register write interest on signal pipe (#4898)
    • sync: add #[must_use] to lock guards (#4886)
    • sync: fix hang when calling recv on closed and reopened broadcast channel (#4867)
    • task: propagate attributes on task-locals (#4837)

    Changed

    • fs: change panic to error in File::start_seek (#4897)
    • io: reduce syscalls in poll_read (#4840)
    • process: use blocking threadpool for child stdio I/O (#4824)
    • signal: make SignalKind methods const (#4956)

    Internal changes

    • rt: extract basic_scheduler::Config (#4935)
    • rt: move I/O driver into runtime module (#4942)
    • rt: rename internal scheduler types (#4945)

    Documented

    • chore: fix typos and grammar (#4858, #4894, #4928)
    • io: fix typo in AsyncSeekExt::rewind docs (#4893)
    • net: add documentation to try_read() for zero-length buffers (#4937)
    • runtime: remove incorrect panic section for Builder::worker_threads (#4849)
    • sync: doc of watch::Sender::send improved (#4959)
    • task: add cancel safety docs to JoinHandle (#4901)
    • task: expand on cancellation of spawn_blocking (#4811)
    • time: clarify that the first tick of Interval::tick happens immediately (#4951)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • fix(deps): bump comfy-table from 5.0.1 to 6.1.0

    fix(deps): bump comfy-table from 5.0.1 to 6.1.0

    Bumps comfy-table from 5.0.1 to 6.1.0.

    Changelog

    Sourced from comfy-table's changelog.

    [6.1.0] - 2022-08-28

    Added

    • Add Table::add_rows to add multiple rows at the same time.

    Misc

    • Update crossterm to v0.24

    [6.0.0] - 2022-05-31

    Added

    • Add Table::style_text_only(), which prevents non-delimiter whitespaces in cells to be styled.
    • Add the Table::discover_columns function and add info on when to use it to Row::add_cell.

    Breaking Changes

    • Renaming of several functions to be Rust idiomatic:
      • Cell::get_content -> Cell::content
      • Column::get_padding_width -> Column::padding_width
      • Column::get_constraint -> Column::constraint
      • Table::get_header -> Table::header
      • Table::get_table_width -> Table::width
      • Table::set_table_width -> Table::set_width
      • Table::set_style -> Table::style
      • Table::get_column -> Table::column
      • Table::get_column_mut -> Table::column_mut
      • Table::get_row -> Table::row
      • Table::get_row_mut -> Table::row_mut
    • Column::get_max_width and Column::get_max_content_width have been removed as we cannot guarantee that these numbers are always correct. Use Table::column_max_content_widths instead

    Changed

    • Table::column_max_content_widths now performs a full scan of the table's content when called.
    • Don't include Table::is_tty, Table::force_no_tty and Table::should_style if tty feature isn't enabled.
    Commits
    • a8f9ded (cargo-release) version 6.1.0
    • f4e6b9f add: Table::add_rows()
    • 5bc5696 Merge pull request #83 from Nukesor/dependabot/cargo/crossterm-0.25
    • 7ef0bc4 build(deps): update crossterm requirement from 0.24 to 0.25
    • 832dbda chore: Fix v1.63 clippy issues
    • 0562cea fix: Proofread some docs
    • 58b8824 change: Don't use crossterm's style if not needed
    • bf486c6 Merge pull request #81 from Nukesor/dependabot/cargo/crossterm-0.24
    • debfd2c build(deps): update crossterm requirement from 0.23 to 0.24
    • 17c7b66 Merge pull request #80 from Nukesor/dependabot/github_actions/codecov/codecov...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • fix(deps): bump tokio from 1.18.2 to 1.20.1

    fix(deps): bump tokio from 1.18.2 to 1.20.1

    Bumps tokio from 1.18.2 to 1.20.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.20.1

    1.20.1 (July 25, 2022)

    Fixed

    • chore: fix version detection in build script (#4860)

    #4860: tokio-rs/tokio#4860

    Tokio v1.20.0

    1.20.0 (July 12, 2022)

    Added

    Changed

    • time: remove src/time/driver/wheel/stack.rs (#4766)
    • rt: clean up arguments passed to basic scheduler (#4767)
    • net: be more specific about winapi features (#4764)
    • tokio: use const initialized thread locals where possible (#4677)
    • task: various small improvements to LocalKey (#4795)

    Fixed

    Documented

    • fs: warn about performance pitfall (#4762)
    • chore: fix spelling (#4769)
    • sync: document spurious failures in oneshot (#4777)
    • sync: add warning for watch in non-Send futures (#4741)
    • chore: fix typo (#4798)

    Unstable

    • joinset: rename join_one to join_next (#4755)
    • rt: unhandled panic config for current thread rt (#4770)

    #4677: tokio-rs/tokio#4677 #4741: tokio-rs/tokio#4741 #4755: tokio-rs/tokio#4755 #4758: tokio-rs/tokio#4758 #4762: tokio-rs/tokio#4762 #4764: tokio-rs/tokio#4764 #4766: tokio-rs/tokio#4766 #4767: tokio-rs/tokio#4767 #4769: tokio-rs/tokio#4769 #4770: tokio-rs/tokio#4770 #4772: tokio-rs/tokio#4772 #4777: tokio-rs/tokio#4777

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • fix(deps): bump tokio from 1.18.2 to 1.20.0

    fix(deps): bump tokio from 1.18.2 to 1.20.0

    Bumps tokio from 1.18.2 to 1.20.0.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.20.0

    1.20.0 (July 12, 2022)

    Added

    Changed

    • time: remove src/time/driver/wheel/stack.rs (#4766)
    • rt: clean up arguments passed to basic scheduler (#4767)
    • net: be more specific about winapi features (#4764)
    • tokio: use const initialized thread locals where possible (#4677)
    • task: various small improvements to LocalKey (#4795)

    Fixed

    Documented

    • fs: warn about performance pitfall (#4762)
    • chore: fix spelling (#4769)
    • sync: document spurious failures in oneshot (#4777)
    • sync: add warning for watch in non-Send futures (#4741)
    • chore: fix typo (#4798)

    Unstable

    • joinset: rename join_one to join_next (#4755)
    • rt: unhandled panic config for current thread rt (#4770)

    #4677: tokio-rs/tokio#4677 #4741: tokio-rs/tokio#4741 #4755: tokio-rs/tokio#4755 #4758: tokio-rs/tokio#4758 #4762: tokio-rs/tokio#4762 #4764: tokio-rs/tokio#4764 #4766: tokio-rs/tokio#4766 #4767: tokio-rs/tokio#4767 #4769: tokio-rs/tokio#4769 #4770: tokio-rs/tokio#4770 #4772: tokio-rs/tokio#4772 #4777: tokio-rs/tokio#4777 #4791: tokio-rs/tokio#4791 #4793: tokio-rs/tokio#4793 #4795: tokio-rs/tokio#4795 #4798: tokio-rs/tokio#4798 #4806: tokio-rs/tokio#4806 #4808: tokio-rs/tokio#4808

    Tokio v1.19.2

    1.19.2 (June 6, 2022)

    ... (truncated)

    Commits
    • b343767 chore: prepare Tokio v1.20.0 (#4830)
    • be620e9 chore: fix ci by hard-coding nightly version for miri (#4825)
    • ad942de chore: add a regression test for WASI (#4822)
    • 4daeea8 sync: add track_caller to public APIs (#4808)
    • 18efef7 signal: add track_caller to public APIs (#4806)
    • d8cad13 tests: alter integration tests for stdio to not use a handrolled cat implemen...
    • 8ed06ef chore: fix typo (#4798)
    • e6020c0 task: various small improvements to LocalKey (#4795)
    • 7f92bce tokio: use const initialized thread locals where possible (#4677)
    • 7ed2737 sync: Add has_changed method to watch::Ref (#4758)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
Releases(v2.5.46)
Owner
Billie Thompson
I am quite tall and have curly hair. She/Her
Billie Thompson
A git prepare-commit-msg hook for authoring commit messages with GPT-3.

gptcommit A git prepare-commit-msg hook for authoring commit messages with GPT-3. With this tool, you can easily generate clear, comprehensive and des

Roger Zurawicki 3 Jan 19, 2023
This is the github repo for the Spot Lite protocol.

spot-contract This is the github repo for the Spot Lite protocol. Set up local Sei Please follow the documentation on the official Sei doc to set up y

nick 3 Nov 8, 2023
Use winit like the async runtime you've always wanted

async-winit Use winit like the async runtime you've always wanted. winit is actually asynchronous, contrary to popular belief; it's just not async. It

John Nunley 17 Apr 23, 2023
Make the github cli even better with fuzzy finding

github-repo-clone (grc) Github Repo Clone is a command line utility written in rust that leverages the power of fuzzy finding with the github cli Usag

Jared Moulton 2 Jul 9, 2022
Translate C++/Rust type into C type with the same memory layout

clayout, translate C++/Rust type into C type with the same memory layout. Generally, clayout is used together with bpftrace. clayout is developed on d

盏一 11 Nov 17, 2022
Mirror of oxipng for pre-commit.

oxipng pre-commit mirror Mirror of oxipng for pre-commit. Installation Add to your pre-commit config: - repo: https://github.com/adamchainz/pre-comm

Adam Johnson 11 Jan 15, 2022
Openfare - Monetize software with one commit.

OpenFare ?? Monetize software with one commit. ?? OpenFare monetizes any software library with one code change. The goal: fund the next million softwa

null 172 Dec 2, 2022
Universal changelog generator using conventional commit+ with monorepo support. Written in Rust.

chlog Universal changelog generator using conventional commit+ with monorepo support. chlog can generate the changelog from the conventional commits w

Jeff Yang 3 Nov 27, 2022
A gitmoji interactive client for using gitmojis on commit messages.

gitmoji in Rust This is just an opinionated version of gitmoji-cli written in Rust . A gitmoji interactive client for using gitmojis on commit message

igor 2 Aug 16, 2022
A CLI tool that automatically writes commit messages for you.

Automagically-generated commit messages A CLI tool that generates commit messages from your staged changes, built in Rust and using OpenAI's Codex. In

Miguel Piedrafita 839 Jan 6, 2023
Easily add emojis to your git commit messages 😎

gimoji A CLI tool that makes it easy to add emojis to your git commit messages. It's very similar to (and is based on) gitmoji-cli but written in Rust

Zeeshan Ali Khan 12 May 29, 2023
A partial reimplementation of pre-commit in Rust

preco A partial reimplementation of pre-commit in Rust. Important Heavily just a proof-of-concept and work-in-progress. There are bits that could prob

Aarni Koskela 8 Feb 22, 2024
A dead-simple AI-powered CLI tool for effortlessly crafting meaningful Git commit messages

AI Commit Message acm A dead-simple AI-powered CLI tool for effortlessly crafting meaningful Git commit messages. Features Effortlessly create meaning

syeijs 3 Nov 5, 2024
Rust crate which provides direct access to files within a Debian archive

debarchive This Rust crate provides direct access to files within a Debian archive. This crate is used by our debrep utility to generate the Packages

Pop!_OS 11 Dec 18, 2021
Utilities to gather data out of roms. Written in Rust. It (should) support all types.

snesutilities Utilities to gather data out of roms. Written in Rust. It (should) support all types. How Have a look at main.rs: use snesutilities::Sne

Layle | Luca 5 Oct 12, 2022
This crate allows writing a struct in Rust and have it derive a struct of arrays layed out in memory according to the arrow format.

Arrow2-derive - derive for Arrow2 This crate allows writing a struct in Rust and have it derive a struct of arrays layed out in memory according to th

Jorge Leitao 29 Dec 27, 2022
bustd is a lightweight process killer daemon for out-of-memory scenarios for Linux!

bustd: Available memory or bust! bustd is a lightweight process killer daemon for out-of-memory scenarios for Linux! Features Small memory usage! bust

Pop!_OS 8 Oct 6, 2022
A Rust utility library, making easier by taking the hassle out of working. :octocat:

reddish A Rust utility library, making easier by taking the hassle out of working. Usage Add this to your Cargo.toml: [dependencies] reddish = "0.2.0"

Rogério Araújo 12 Jan 21, 2023
A cross platform tool which instantly notifies about COVID vaccine availability.

?? CoWIN Notifier ?? A cross-platform tool written in rust, which instantly notifies users about COVID-19 vaccine availability at their regions. Curre

Sanskar Jaiswal 20 May 20, 2021