Skip to content
Closed
Show file tree
Hide file tree
Changes from 103 commits
Commits
Show all changes
170 commits
Select commit Hold shift + click to select a range
f61e764
feat: optimize data structures for memory efficiency and performance
Copilot Aug 31, 2025
c431733
fix: update tests to work with optimized SmallVec data structures
Copilot Aug 31, 2025
e1115fd
feat: implement robust caching system with intelligent eviction and c…
Copilot Aug 31, 2025
8f1019c
style: format code according to rustfmt standards
Copilot Aug 31, 2025
898758e
chore: lint fix
MuntasirSZN Aug 31, 2025
8426154
fix: resolve all clippy warnings with code improvements and boxing op…
Copilot Aug 31, 2025
9547f23
chore: lint fix and remove allow 'unused' and 'dead_code' annotations
MuntasirSZN Aug 31, 2025
8758985
fix: remove unused smallvec macro import
Copilot Aug 31, 2025
d83e2ff
fix: apply coderabbitai review fixes for cache, documentation, and un…
Copilot Aug 31, 2025
f1293db
refactor: use target/rustowl/cache, bring back dead_code and unused
MuntasirSZN Aug 31, 2025
57d6da3
fix: prevent cache memory overshoot by adding post-insertion eviction…
Copilot Aug 31, 2025
e555ccb
chore: apply fixes
MuntasirSZN Aug 31, 2025
0f96914
chore: format
MuntasirSZN Aug 31, 2025
98ce316
chore: fix
MuntasirSZN Aug 31, 2025
cd118b9
chore: remove unused import
MuntasirSZN Aug 31, 2025
c8a3c5d
feat: implement error handling with eros crate
Copilot Sep 1, 2025
e2ebac7
feat: migrate from tower-lsp to tower-lsp-server for better maintenance
Copilot Sep 1, 2025
c8c6f6d
refactor: improve shells.rs to delegate to clap_complete instead of c…
Copilot Sep 1, 2025
fd4c969
docs: add comprehensive documentation to core modules
Copilot Sep 1, 2025
75fae53
test: add comprehensive unit tests for utils, error, and shells modules
Copilot Sep 1, 2025
5ea3ff9
perf: optimize string operations and improve error handling robustness
Copilot Sep 1, 2025
dab8dde
chore: fix deps and issues
MuntasirSZN Sep 1, 2025
47aba25
chore: cleanup
MuntasirSZN Sep 1, 2025
3ac859c
chore: cleanup again
MuntasirSZN Sep 1, 2025
0be4ce6
chore: format
MuntasirSZN Sep 1, 2025
f7dfd5f
chore: remove pub extern crate
MuntasirSZN Sep 1, 2025
d28d08f
chore: remove tracing again
MuntasirSZN Sep 1, 2025
c0ae6b0
chore: invasive replace all hashmaps and hashsets with indexmap + fol…
MuntasirSZN Sep 1, 2025
717fc6a
chore: fix, use quality foldhash hasher, fix seen_ids|
MuntasirSZN Sep 1, 2025
aa5c873
chore: fix tests
MuntasirSZN Sep 1, 2025
b84b9e3
chore: foldhash, tracing, tracing_subscriber
MuntasirSZN Sep 2, 2025
4e296af
chore: format sh files and shellcheck
MuntasirSZN Sep 2, 2025
5198f6c
fix: resolve rustowl check command workspace detection issue
Copilot Sep 2, 2025
43b3f1a
chore: format
MuntasirSZN Sep 2, 2025
d25c27d
chore: remove debug
MuntasirSZN Sep 2, 2025
305e2c3
perf: centralize MIR helpers, optimize range merging, add SmolStr + o…
MuntasirSZN Sep 4, 2025
f073cc4
perf: enable memchr path by default, remove simd_opt feature
MuntasirSZN Sep 4, 2025
c190dc1
chore: remove unused effective_live helper
MuntasirSZN Sep 4, 2025
9002718
chore(bench): run both rustowl_bench_simple and line_col_bench via BE…
MuntasirSZN Sep 4, 2025
b667a19
chore(bench): remove duplicate body, fix measurement_time collection …
MuntasirSZN Sep 4, 2025
19e042e
feat(bench): add line_col_bench and rand dev-dependency
MuntasirSZN Sep 4, 2025
92d522f
perf(analyze): stream live location ranges and reduce allocations
MuntasirSZN Sep 4, 2025
356a1d0
refactor(core): reorder modules and replace async join loop with sync…
MuntasirSZN Sep 4, 2025
e7618d0
refactor(logging): centralize initialize_logging in library and use a…
MuntasirSZN Sep 4, 2025
f9713bf
chore(lsp): elevate invalid target to error and async file read
MuntasirSZN Sep 4, 2025
0213f70
chore: minor fs path usage and formatting in utils/toolchain
MuntasirSZN Sep 4, 2025
237c3a7
chore: update deps and lockfile
MuntasirSZN Sep 4, 2025
d019847
chore: add a lot of tests (coverage 64.02%) (#91)
Copilot Sep 6, 2025
a1b309a
chore: remove weird tests
MuntasirSZN Sep 6, 2025
1630cb5
feat(cache,lsp): add mtime invalidations metric, refactor cache get, …
MuntasirSZN Sep 7, 2025
822902b
chore: format
MuntasirSZN Sep 7, 2025
8cd6250
chore: add more tests (72% coverage)
MuntasirSZN Sep 7, 2025
3989cb3
chore: remove weird tests
MuntasirSZN Sep 7, 2025
433d748
chore: remove weird tests
MuntasirSZN Sep 7, 2025
44a05a5
chore: fix miri
MuntasirSZN Sep 7, 2025
0684c3e
chore: add coverage workflow + change checks workflow
MuntasirSZN Sep 7, 2025
ffca827
chore: fix tests
MuntasirSZN Sep 7, 2025
9b809ae
chore: fix workflow
MuntasirSZN Sep 7, 2025
ebef0bc
chore: fix workflow
MuntasirSZN Sep 7, 2025
b62beca
chore: fix and enrich
MuntasirSZN Sep 7, 2025
4ec6636
chore: fix
MuntasirSZN Sep 7, 2025
02fcce8
chore: add perms
MuntasirSZN Sep 7, 2025
89362a9
chore: add cache
MuntasirSZN Sep 7, 2025
463a074
chore: fix workflow
MuntasirSZN Sep 7, 2025
fe8e34c
Update coverage.yml
MuntasirSZN Sep 8, 2025
cda0d98
Update coverage.yml
MuntasirSZN Sep 8, 2025
0f47fee
chore: fix?
MuntasirSZN Sep 8, 2025
6d03e7b
Merge branch 'main' into feat/test-frenzy
MuntasirSZN Sep 19, 2025
1ac6f85
chore: fix lockfile
MuntasirSZN Sep 19, 2025
9ec0d53
Merge branch 'main' into feat/test-frenzy
MuntasirSZN Oct 6, 2025
cf2e049
Merge branch 'main' into feat/test-frenzy
MuntasirSZN Nov 6, 2025
eefd856
chore: lockfile
MuntasirSZN Nov 6, 2025
0324904
ci: use moonrepo/setup-rust, use oidc in crates.io, use committed, ca…
MuntasirSZN Dec 9, 2025
b6c993f
fix
MuntasirSZN Dec 9, 2025
2ced635
Update build.yaml
MuntasirSZN Dec 10, 2025
0e68bfc
remove
MuntasirSZN Dec 10, 2025
a0f4fc7
fix
MuntasirSZN Dec 10, 2025
a6f45b9
fix
MuntasirSZN Dec 10, 2025
5daa325
Merge remote-tracking branch 'origin/main' into feat/test-frenzy
MuntasirSZN Dec 10, 2025
955c3c6
finale
MuntasirSZN Dec 10, 2025
47fe970
finale
MuntasirSZN Dec 10, 2025
7719c4a
Update zizmor.yml
MuntasirSZN Dec 11, 2025
3e5db6b
Update validate-pr-title.yml
MuntasirSZN Dec 11, 2025
7fe4e17
finale
MuntasirSZN Dec 11, 2025
c959f78
finale
MuntasirSZN Dec 11, 2025
48ebe6f
feat: rustc 1.92.0
MuntasirSZN Dec 12, 2025
dac801a
fix: now errors if rustowlc (child) errors, fixed erroring in 1.92.0
MuntasirSZN Dec 12, 2025
bbb125b
format
MuntasirSZN Dec 12, 2025
0eb60fb
chore: move to divan instead of criterion
MuntasirSZN Dec 12, 2025
d730f06
Merge remote-tracking branch 'origin/main' into feat/test-frenzy
MuntasirSZN Dec 21, 2025
3a6eecd
Merge remote-tracking branch 'upstream/ci/refactor' into feat/test-fr…
MuntasirSZN Dec 21, 2025
6c7735f
fix: run pinact
MuntasirSZN Dec 21, 2025
40246bd
fix: zizmor
MuntasirSZN Dec 21, 2025
cf07985
fix: fixes>
MuntasirSZN Dec 21, 2025
7049c79
feat: improve logging by a gazillion times
MuntasirSZN Dec 21, 2025
b984475
fix: remove spammy TRACE
MuntasirSZN Dec 21, 2025
d4e08b3
fix: update deps (cve)
MuntasirSZN Dec 21, 2025
df1f155
fix: workflow
MuntasirSZN Dec 22, 2025
3e74532
Update build.yaml
MuntasirSZN Dec 22, 2025
598b009
fix: workflows issues
MuntasirSZN Dec 23, 2025
c50a868
refactor!: more perf, acknowledge review comments
MuntasirSZN Dec 23, 2025
f7bb77d
Merge remote-tracking branch 'upstream/main' into feat/test-frenzy
MuntasirSZN Dec 23, 2025
d86a781
chore: done
MuntasirSZN Dec 29, 2025
69b7a5e
Delete PROMPT.md
MuntasirSZN Dec 29, 2025
2cdc554
Update utils.rs
MuntasirSZN Dec 29, 2025
9ac8672
Update cache.rs
MuntasirSZN Dec 29, 2025
230d4dc
Update rustowlc.rs
MuntasirSZN Dec 29, 2025
af20da8
Merge remote-tracking branch 'upstream/main' into feat/test-frenzy
MuntasirSZN Dec 31, 2025
cf738cf
fix: allow webpki license
MuntasirSZN Dec 31, 2025
09ee9bb
fix: acknowledge comments?
MuntasirSZN Dec 31, 2025
972a633
fix: acknowledge more comments
MuntasirSZN Dec 31, 2025
61a0dbf
feat: coverage, miri, 75%
MuntasirSZN Jan 5, 2026
a37a68e
chore: run tests and build explicitly on target and os (no grey area)
MuntasirSZN Jan 5, 2026
95b7f60
chore: explicit result type
MuntasirSZN Jan 5, 2026
0ce45ca
Merge remote-tracking branch 'upstream/main' into feat/test-frenzy
MuntasirSZN Jan 5, 2026
ea16740
chore: fix
MuntasirSZN Jan 5, 2026
bb182a6
chore: never run in prs
MuntasirSZN Jan 5, 2026
c356ca1
chore: fix windows by forcing bash
MuntasirSZN Jan 5, 2026
7d5b205
chore: fix again
MuntasirSZN Jan 5, 2026
d6cd701
chore: fix again 2
MuntasirSZN Jan 5, 2026
76a50cb
chore: fix again 3
MuntasirSZN Jan 5, 2026
54065f6
chore: fix again 4
MuntasirSZN Jan 5, 2026
92d353d
chore: fix again 5
MuntasirSZN Jan 5, 2026
59ce701
chore: fix again 6
MuntasirSZN Jan 5, 2026
fe58ba5
chore: fix again 7
MuntasirSZN Jan 5, 2026
4c00270
chore: fix again 8
MuntasirSZN Jan 5, 2026
3179257
chore: fix again 9
MuntasirSZN Jan 5, 2026
694655a
refactor: use after finished download to disk then extract
MuntasirSZN Jan 6, 2026
6940051
chore: fix
MuntasirSZN Jan 6, 2026
d0e9cbe
chore: fix
MuntasirSZN Jan 6, 2026
3421205
chore: add codeql
MuntasirSZN Jan 6, 2026
a320fc5
chore: fix miri
MuntasirSZN Jan 10, 2026
97ebaed
chore: fix codeql
MuntasirSZN Jan 10, 2026
7d87080
chore: fix codeql 2
MuntasirSZN Jan 10, 2026
ffa5b95
test: remove early return (so it fails regardless)
MuntasirSZN Jan 10, 2026
ff676a7
test: fix windows test
MuntasirSZN Jan 10, 2026
b38a64c
test: fix tests
MuntasirSZN Jan 10, 2026
fccd4ff
test: fix tests for windows again
MuntasirSZN Jan 11, 2026
e0b81ac
test: fix tests by installing msvc
MuntasirSZN Jan 11, 2026
4581de5
test: fix tests by installing msvc 2
MuntasirSZN Jan 11, 2026
8370e4a
test: fix tests again by correcting script
MuntasirSZN Jan 11, 2026
126709b
test: fix tests again by correcting script 2
MuntasirSZN Jan 11, 2026
7d6dd2f
test: fix tests again by correcting script 3
MuntasirSZN Jan 11, 2026
f15582c
test: rename miri_async_test! to async_test!
MuntasirSZN Jan 11, 2026
ad69ed3
test: fix arm64 windows last time?
MuntasirSZN Jan 11, 2026
72c061e
feat!: convert to workspace
MuntasirSZN Jan 11, 2026
b02aea8
fix: windows again (now ci in nightly)
MuntasirSZN Jan 11, 2026
e6f731e
ci: fix again
MuntasirSZN Jan 11, 2026
45df60f
ci: fix again 2
MuntasirSZN Jan 11, 2026
8f04bf0
ci: fix again 3
MuntasirSZN Jan 11, 2026
f4d4035
ci: fix again 4
MuntasirSZN Jan 11, 2026
23fe75e
ci: fix again 5
MuntasirSZN Jan 11, 2026
7bde1cc
ci: fix again 6
MuntasirSZN Jan 11, 2026
cb7b1c9
ci: fix again 7
MuntasirSZN Jan 11, 2026
5719720
ci: fix again 8
MuntasirSZN Jan 11, 2026
197cae8
ci: fix again 10
MuntasirSZN Jan 11, 2026
0ec8069
ci: fix again 11
MuntasirSZN Jan 11, 2026
3e2763e
ci: fix again 12
MuntasirSZN Jan 11, 2026
4c48ced
ci: fix again 13
MuntasirSZN Jan 11, 2026
41cb6a4
ci: fix again 13
MuntasirSZN Jan 12, 2026
582f753
fix: use newest rustc jemalloc setup, fix tests, fix coverage
MuntasirSZN Jan 12, 2026
46c309f
ci: fix finale
MuntasirSZN Jan 12, 2026
bc173f1
ci: finally fixed...
MuntasirSZN Jan 12, 2026
563e501
ci: finally fixed... 2?
MuntasirSZN Jan 12, 2026
c4b9778
ci: fix x86_64-pc-windows-msvc
MuntasirSZN Jan 12, 2026
fbd549f
Merge remote-tracking branch 'upstream/main' into feat/test-frenzy
MuntasirSZN Jan 12, 2026
7a60d79
chore: final update (@cordx56)
MuntasirSZN Jan 13, 2026
fdc0e76
fix: fix docker
MuntasirSZN Jan 13, 2026
a5c3ebc
fix: fix toolchain
MuntasirSZN Jan 13, 2026
c7e8217
fix: fix some more
MuntasirSZN Jan 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ body:
Before submitting, please search existing issues to avoid duplicates. If a similar issue exists, comment there instead of opening a new one.

To help us resolve the issue efficiently, please provide the necessary details below.

- type: textarea
id: bug-description
attributes:
Expand All @@ -19,7 +18,6 @@ body:
placeholder: Provide a clear and concise description of the problem, including what you expected to happen and what actually occurred.
validations:
required: true

- type: textarea
id: environment
attributes:
Expand Down
2 changes: 0 additions & 2 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,13 @@ body:
A clear and concise description of what the problem is.
validations:
required: true

- type: textarea
attributes:
label: Describe the solution you'd like
description: |
A clear and concise description of what you'd like to happen.
validations:
required: true

- type: textarea
attributes:
label: Additional context
Expand Down
23 changes: 12 additions & 11 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,22 @@ updates:
update-types:
- patch
- minor
cooldown:
default-days: 7
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
- package-ecosystem: npm
directory: "/vscode"
schedule:
interval: weekly
groups:
version:
applies-to: version-updates
update-types:
- patch
- minor
ignore:
- dependency-name: "@types/vscode"
- package-ecosystem: docker
directory: "/"
cooldown:
default-days: 7
- package-ecosystem: npm
directory: "/vscode"
schedule:
interval: weekly
groups:
Expand All @@ -36,8 +34,10 @@ updates:
update-types:
- patch
- minor
- package-ecosystem: npm
directory: "/scripts"
cooldown:
default-days: 7
- package-ecosystem: docker
directory: "/"
schedule:
interval: weekly
groups:
Expand All @@ -46,4 +46,5 @@ updates:
update-types:
- patch
- minor
- major
cooldown:
default-days: 7
39 changes: 12 additions & 27 deletions .github/workflows/build.yaml → .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
name: Build RustOwl

on:
push:
branches: ["main"]
Expand All @@ -11,7 +10,6 @@ on:
run_id:
description: Run ID of this workflow
value: ${{ github.run_id }}

jobs:
rustowl:
if: github.event.action != 'labeled' || github.event.label.name == 'do-build-check'
Expand All @@ -21,21 +19,20 @@ jobs:
- ubuntu-24.04
- ubuntu-24.04-arm
- macos-15
- macos-13
- macos-15-intel
- windows-2022
- windows-11-arm

runs-on: ${{ matrix.os }}
permissions:
contents: write
defaults:
run:
shell: bash

steps:
- name: Checkout
uses: actions/checkout@v6

uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this pinned to specific version?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Security?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Security? I thought that specifying patch version results in missing security patch update...

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And if you do the old syntax, one can push anything and change tag and boom! @cordx56

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then, we should use version checking bot like dependabot.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thats already done @cordx56. Its just another layer so its kind of bullet proof.

Copy link
Collaborator Author

@MuntasirSZN MuntasirSZN Dec 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The vulnerability i mentioned, none can do nothing. Other than pinning the long hash (all big projects do this)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dependabot tracks tags, not anything else. So keeping tag same will silently pull new commits. This stops that. Dependabot will still update this (see the comment after some space? Thats the format)

with:
persist-credentials: false
# Using fat LTO causes failure to link on Windows ARM
- name: Set build profile
run: |
Expand All @@ -44,12 +41,10 @@ jobs:
else
echo "build_profile=release" >> $GITHUB_ENV
fi

# uname on Windows on ARM returns "x86_64"
- name: Set ARCH flag for Windows on ARM
if: matrix.os == 'windows-11-arm'
run: echo "TOOLCHAIN_ARCH=aarch64" >> $GITHUB_ENV

- name: setup env
run: |
host_tuple="$(./scripts/build/toolchain eval 'echo $HOST_TUPLE')"
Expand All @@ -60,13 +55,11 @@ jobs:
([[ "$host_tuple" == *msvc* ]] && echo "exec_ext=.exe" || echo "exec_ext=") >> $GITHUB_ENV
([[ "$host_tuple" == *windows* ]] && echo "is_windows=true" || echo "is_windows=false") >> $GITHUB_ENV
([[ "$host_tuple" == *linux* ]] && echo "is_linux=true" || echo "is_linux=false") >> $GITHUB_ENV

- name: Install zig
if: ${{ env.is_linux == 'true' }}
uses: mlugg/setup-zig@v2
uses: mlugg/setup-zig@fa65c4058643678a4e4a9a60513944a7d8d35440 # v2.1.0
with:
version: 0.13.0

- name: Build
run: |
if [[ "${{ env.is_linux }}" == "true" ]]; then
Expand All @@ -75,19 +68,16 @@ jobs:
else
./scripts/build/toolchain cargo build --target ${{ env.host_tuple }} --profile=${{ env.build_profile }}
fi

- name: Check the functionality
run: |
./target/${{ env.host_tuple }}/${{ env.build_profile }}/rustowl${{ env.exec_ext }} check ./perf-tests/dummy-package

- name: Set archive name
run: |
if [[ "${{ env.is_windows }}" == "true" ]]; then
echo "archive_name=rustowl-${{ env.host_tuple }}.zip" >> $GITHUB_ENV
else
echo "archive_name=rustowl-${{ env.host_tuple }}.tar.gz" >> $GITHUB_ENV
fi

- name: Setup archive artifacts
run: |
rm -rf rustowl && mkdir -p rustowl/sysroot/${{ env.toolchain }}/bin
Expand All @@ -113,43 +103,38 @@ jobs:
fi

cp ./rustowl/rustowl${{ env.exec_ext }} ./rustowl-${{ env.host_tuple }}${{ env.exec_ext }}

- name: Upload
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: rustowl-runtime-${{ env.host_tuple }}
path: |
rustowl-${{ env.host_tuple }}${{ env.exec_ext }}
${{ env.archive_name }}

vscode:
if: github.event.action != 'labeled' || github.event.label.name == 'do-build-check'
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- name: Checkout
uses: actions/checkout@v6

uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version: 20

- name: Setup PNPM And Install dependencies
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
with:
package_json_file: ./vscode/package.json
run_install: |
- cwd: ./vscode

- name: Create VSIX
run: pnpm build
working-directory: ./vscode

- name: Upload
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: rustowl-vscode
path: vscode/**/*.vsix
9 changes: 3 additions & 6 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
@@ -1,25 +1,22 @@
name: Generate Changelog

on:
workflow_dispatch:

jobs:
changelogen:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0

persist-credentials: false
- run: |
docker pull quay.io/git-chglog/git-chglog:latest
docker run -v "$PWD":/workdir quay.io/git-chglog/git-chglog --tag-filter-pattern '^v\d+\.\d+\.\d+$' -o CHANGELOG.md

- name: Create Pull Request
uses: peter-evans/create-pull-request@v8
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
with:
add-paths: |
CHANGELOG.md
Expand Down
58 changes: 31 additions & 27 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
@@ -1,90 +1,94 @@
name: Basic Checks

on:
pull_request:
branches: ["main"]
workflow_dispatch:
workflow_call:

permissions:
contents: read
env:
CARGO_TERM_COLOR: always
RUSTC_BOOTSTRAP: 1

jobs:
check:
name: Format & Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6

uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Get Rust version
run: |
echo RUSTUP_TOOLCHAIN=$(cat ./scripts/build/channel) >> $GITHUB_ENV

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561
with:
toolchain: ${{ env.RUSTUP_TOOLCHAIN }}
components: clippy,rustfmt,llvm-tools,rust-src,rustc-dev

- name: Cache dependencies
uses: Swatinem/rust-cache@v2
uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
with:
save-if: ${{ github.ref == 'refs/heads/main' }}

- name: Check formatting
run: cargo fmt --check

- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings

test:
name: Build & Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6

uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Install cargo-nextest
uses: taiki-e/install-action@bfc291e1e39400b67eda124e4a7b4380e93b3390 # v2.65.0
with:
tool: cargo-nextest
- name: Cache dependencies
uses: Swatinem/rust-cache@v2

uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
- name: Run tests with nextest
run: cargo nextest run
- name: Run doc tests
run: cargo test --doc
- name: Build release
run: ./scripts/build/toolchain cargo build --release

- name: Install binary
run: ./scripts/build/toolchain cargo install --path .

- name: Test rustowl check
run: rustowl check ./perf-tests/dummy-package

vscode:
name: VS Code Extension Checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6

uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version: 20

- name: Setup PNPM And Install dependencies
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
with:
package_json_file: ./vscode/package.json
run_install: |
- cwd: ./vscode

- name: Check formatting
run: pnpm prettier -c src
working-directory: ./vscode

- name: Lint and type check
run: pnpm lint && pnpm check-types
working-directory: ./vscode

- name: Run tests
run: xvfb-run -a pnpm run test
working-directory: ./vscode
cargo-deny:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- uses: EmbarkStudios/cargo-deny-action@76cd80eb775d7bbbd2d80292136d74d39e1b4918 # v2.0.14
Loading
Loading