From 5f9ba1835f7543ca5987e28ad758e3debd4c6d07 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sat, 19 Apr 2025 21:38:25 +0100 Subject: [PATCH 01/22] testing with docs & testcov --- .github/workflows/docs-and-testcov.yml | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/docs-and-testcov.yml diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml new file mode 100644 index 0000000..414db70 --- /dev/null +++ b/.github/workflows/docs-and-testcov.yml @@ -0,0 +1,54 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +permissions: + contents: read + id-token: write + pages: write + +jobs: + coverage-and-docs: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + + - name: Install cargo-tarpaulin + run: cargo install cargo-tarpaulin + + - name: Generate coverage report + run: | + mkdir -p testcov + cargo tarpaulin --out Html + mv tarpaulin-report.html testcov/index.html + + - name: Build documentation + run: cargo doc --no-deps + + - name: Prepare documentation for Pages + run: | + mkdir -p docs + cp -r target/doc/* docs/ + + - name: Upload Pages artifact + # if: github.event_name == 'push' + uses: actions/upload-pages-artifact@v1 + with: + path: | + testcov + docs + + - name: Deploy to GitHub Pages + # if: github.event_name == 'push' + uses: actions/deploy-pages@v1 From 55294056fc30980d4c9934f3c52972eff057d20b Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sat, 19 Apr 2025 21:40:04 +0100 Subject: [PATCH 02/22] update GitHub Actions to use latest versions of upload-pages-artifact and deploy-pages --- .github/workflows/docs-and-testcov.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 414db70..ee2518f 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -43,7 +43,7 @@ jobs: - name: Upload Pages artifact # if: github.event_name == 'push' - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-pages-artifact@v3 with: path: | testcov @@ -51,4 +51,4 @@ jobs: - name: Deploy to GitHub Pages # if: github.event_name == 'push' - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v4 From 65819b53c0d8f67ada5cc2123cb95996ff5ecee9 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sat, 19 Apr 2025 22:08:03 +0100 Subject: [PATCH 03/22] refactor CI workflow to install cargo-tarpaulin via cargo-binstall and streamline output directory setup --- .github/workflows/docs-and-testcov.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index ee2518f..25451e8 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -24,8 +24,11 @@ jobs: toolchain: stable override: true - - name: Install cargo-tarpaulin - run: cargo install cargo-tarpaulin + - name: Install cargo-binstall + run: cargo install cargo-binstall + + - name: Install cargo-tarpaulin via binstall + run: cargo binstall cargo-tarpaulin --no-confirm --locked - name: Generate coverage report run: | @@ -41,6 +44,12 @@ jobs: mkdir -p docs cp -r target/doc/* docs/ + - name: Copy files to output directory + run: | + mkdir output + cp -r testcov/* output/ + cp -r docs/* output/ + - name: Upload Pages artifact # if: github.event_name == 'push' uses: actions/upload-pages-artifact@v3 From 083e71f81b124e938b0c01343ee0e62f84713ee6 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sat, 19 Apr 2025 23:07:11 +0100 Subject: [PATCH 04/22] refactor CI workflow to consolidate output directory and simplify artifact upload --- .github/workflows/docs-and-testcov.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 25451e8..4945df4 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -48,15 +48,13 @@ jobs: run: | mkdir output cp -r testcov/* output/ - cp -r docs/* output/ + cp -r docs/* output/ - name: Upload Pages artifact # if: github.event_name == 'push' uses: actions/upload-pages-artifact@v3 with: - path: | - testcov - docs + path: output - name: Deploy to GitHub Pages # if: github.event_name == 'push' From c155fbd7afff0eaaebbd5074a6df9862a14cbb24 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sat, 19 Apr 2025 23:12:08 +0100 Subject: [PATCH 05/22] refactor CI workflow to install Cargo binstall step using action instead of manual installation --- .github/workflows/docs-and-testcov.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 4945df4..a34c534 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -23,9 +23,13 @@ jobs: with: toolchain: stable override: true + + - name: Install Cargo binstall + uses: cargo-bins/cargo-binstall@main - - name: Install cargo-binstall - run: cargo install cargo-binstall + + # - name: Install cargo-binstall + # run: cargo install cargo-binstall - name: Install cargo-tarpaulin via binstall run: cargo binstall cargo-tarpaulin --no-confirm --locked From cd8ebe2625f3880378e6a7a88816464554a4e8a9 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sat, 19 Apr 2025 23:56:50 +0100 Subject: [PATCH 06/22] refactor CI workflow to remove manual installation of cargo-binstall --- .github/workflows/docs-and-testcov.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index a34c534..26501c7 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -27,10 +27,6 @@ jobs: - name: Install Cargo binstall uses: cargo-bins/cargo-binstall@main - - # - name: Install cargo-binstall - # run: cargo install cargo-binstall - - name: Install cargo-tarpaulin via binstall run: cargo binstall cargo-tarpaulin --no-confirm --locked From f5b9f2442a435c26d0684f58b1797e98d4650d9e Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sat, 19 Apr 2025 23:58:58 +0100 Subject: [PATCH 07/22] refactor CI workflow name and output directory handling --- .github/workflows/docs-and-testcov.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 26501c7..6b49eeb 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -1,4 +1,4 @@ -name: CI +name: docs-and-testcov on: push: @@ -12,7 +12,7 @@ permissions: pages: write jobs: - coverage-and-docs: + docs-and-testcov: runs-on: ubuntu-latest steps: @@ -47,8 +47,8 @@ jobs: - name: Copy files to output directory run: | mkdir output - cp -r testcov/* output/ - cp -r docs/* output/ + cp -r testcov output/ + cp -r docs output/ - name: Upload Pages artifact # if: github.event_name == 'push' From 69b240f7a8ce3e2c616646cfd6103208e21655e1 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:00:49 +0100 Subject: [PATCH 08/22] fix: correct output directory for documentation files in CI workflow --- .github/workflows/docs-and-testcov.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 6b49eeb..7c95407 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -48,7 +48,7 @@ jobs: run: | mkdir output cp -r testcov output/ - cp -r docs output/ + cp -r docs/rustframe output/ - name: Upload Pages artifact # if: github.event_name == 'push' From bbc401225bfd0e7bbcfaba72afa3edfb591d778b Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:04:25 +0100 Subject: [PATCH 09/22] refactor: reorganize documentation build steps and update output directory structure --- .github/workflows/docs-and-testcov.yml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 7c95407..5b09f0b 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -24,6 +24,15 @@ jobs: toolchain: stable override: true + + - name: Build documentation + run: cargo doc --no-deps + + - name: Prepare documentation for Pages + run: | + mkdir -p docs + cp -r target/doc/* docs/ + - name: Install Cargo binstall uses: cargo-bins/cargo-binstall@main @@ -36,19 +45,12 @@ jobs: cargo tarpaulin --out Html mv tarpaulin-report.html testcov/index.html - - name: Build documentation - run: cargo doc --no-deps - - - name: Prepare documentation for Pages - run: | - mkdir -p docs - cp -r target/doc/* docs/ - - name: Copy files to output directory run: | mkdir output + mkdir -p output/docs cp -r testcov output/ - cp -r docs/rustframe output/ + cp -r docs/rustframe output/docs/ - name: Upload Pages artifact # if: github.event_name == 'push' From d864986432b30c1b2618f27e4555f735cc31fffc Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:10:20 +0100 Subject: [PATCH 10/22] fix: correct documentation output directory in CI workflow --- .github/workflows/docs-and-testcov.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 5b09f0b..0dbb8ee 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -50,7 +50,7 @@ jobs: mkdir output mkdir -p output/docs cp -r testcov output/ - cp -r docs/rustframe output/docs/ + cp -r docs output/ - name: Upload Pages artifact # if: github.event_name == 'push' From 1003cae8099c916a5331f9006fe0567304e48523 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:55:55 +0100 Subject: [PATCH 11/22] docs: update README.md to improve structure and formatting --- README.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 80aebc7..8b2aac7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,23 @@ # rustframe -A simple dataframe library. \ No newline at end of file +[![codecov](https://codecov.io/gh/Magnus167/rustframe/graph/badge.svg?token=J7ULJEFTVI)](https://codecov.io/gh/Magnus167/rustframe) + +A simple dataframe library. + +--- + +`tarpaulin` coverage report: [tarpaulin-report](tarpaulin-report.html). + +--- + +## Build + +```bash +cargo build +``` + +## Test + +```bash +cargo test +``` From bb60d8e017a3907da1c0dc52569b3e444f170013 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:56:20 +0100 Subject: [PATCH 12/22] fix: add tarpaulin report to .gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1f5fdb2..3aafca8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,6 @@ data/ *.pkl .env -.venv/ \ No newline at end of file +.venv/ + +tarpaulin-report.html \ No newline at end of file From 19ae101bcc21393908eb712a3e0995154d1f1b9a Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:56:25 +0100 Subject: [PATCH 13/22] fix: update documentation workflow to correctly prepare and check for coverage report --- .github/workflows/docs-and-testcov.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 0dbb8ee..31e9165 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -30,8 +30,7 @@ jobs: - name: Prepare documentation for Pages run: | - mkdir -p docs - cp -r target/doc/* docs/ + - name: Install Cargo binstall uses: cargo-bins/cargo-binstall@main @@ -43,14 +42,19 @@ jobs: run: | mkdir -p testcov cargo tarpaulin --out Html - mv tarpaulin-report.html testcov/index.html + + - name: Check for tarpaulin-report.html + run: | + if [ ! -f target/tarpaulin-report.html ]; then + echo "tarpaulin-report.html not found!" + exit 1 + fi - name: Copy files to output directory run: | mkdir output - mkdir -p output/docs - cp -r testcov output/ - cp -r docs output/ + cp tarpaulin-report.html target/doc/rustframe/ + cp -r target/doc/* output/ - name: Upload Pages artifact # if: github.event_name == 'push' From 34f89d60464049e967778d2631b13ef21ab6b83b Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:56:30 +0100 Subject: [PATCH 14/22] fix: ensure README.md is included in documentation output --- src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 6c9faf4..7ea02d4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,7 @@ +#![doc = include_str!("../README.md")] pub mod matrix; pub mod frame; -pub mod utils; \ No newline at end of file +pub mod utils; From 34b88c466f852a119287e174418ac9dd76d16fb5 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:57:29 +0100 Subject: [PATCH 15/22] fix: correct path for tarpaulin report check in CI workflow --- .github/workflows/docs-and-testcov.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 31e9165..adb7313 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -45,7 +45,7 @@ jobs: - name: Check for tarpaulin-report.html run: | - if [ ! -f target/tarpaulin-report.html ]; then + if [ ! -f tarpaulin-report.html ]; then echo "tarpaulin-report.html not found!" exit 1 fi From 1a1e820e2e2e8b181962bcb67d3d388b84e9b1a6 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 01:04:37 +0100 Subject: [PATCH 16/22] fix: add step to test documentation generation in CI workflow --- .github/workflows/run-unit-tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml index 860f96d..eb5b81f 100644 --- a/.github/workflows/run-unit-tests.yml +++ b/.github/workflows/run-unit-tests.yml @@ -20,6 +20,8 @@ jobs: uses: taiki-e/install-action@cargo-llvm-cov - name: Generate code coverage run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info + - name: Test docs generation + run: cargo doc --no-deps - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: From 45b45f5817faa9042b214955d0f3d38a093f52bf Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 01:04:43 +0100 Subject: [PATCH 17/22] fix: correct output directory path for documentation files --- .github/workflows/docs-and-testcov.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index adb7313..45dad78 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -54,7 +54,7 @@ jobs: run: | mkdir output cp tarpaulin-report.html target/doc/rustframe/ - cp -r target/doc/* output/ + cp -r target/doc/rustframe/* output/ - name: Upload Pages artifact # if: github.event_name == 'push' From 33ea2d93346f77a0642583b1b46779d8d2e5dc07 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 01:08:40 +0100 Subject: [PATCH 18/22] testing with updated output directory for Pages artifact upload --- .github/workflows/docs-and-testcov.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 45dad78..5fa53cc 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -54,13 +54,13 @@ jobs: run: | mkdir output cp tarpaulin-report.html target/doc/rustframe/ - cp -r target/doc/rustframe/* output/ + # cp -r target/doc/rustframe/* output/ - name: Upload Pages artifact # if: github.event_name == 'push' uses: actions/upload-pages-artifact@v3 with: - path: output + path: target/doc/ - name: Deploy to GitHub Pages # if: github.event_name == 'push' From 7f90c5cb4cced0177a70f1061639c783789e9a1c Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 01:14:58 +0100 Subject: [PATCH 19/22] add meta refresh tag to index.html for documentation navigation --- .github/workflows/docs-and-testcov.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 5fa53cc..9bab088 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -54,6 +54,8 @@ jobs: run: | mkdir output cp tarpaulin-report.html target/doc/rustframe/ + echo "" > target/doc/index.html + # cp -r target/doc/rustframe/* output/ - name: Upload Pages artifact From a9780261a7bbf18bb7d17a054672a1a7b38daf10 Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 01:17:22 +0100 Subject: [PATCH 20/22] enable manual triggering of documentation and test coverage workflow --- .github/workflows/docs-and-testcov.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 9bab088..6096165 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -5,6 +5,7 @@ on: branches: [main] pull_request: branches: [main] + workflow_dispatch: permissions: contents: read @@ -56,14 +57,12 @@ jobs: cp tarpaulin-report.html target/doc/rustframe/ echo "" > target/doc/index.html - # cp -r target/doc/rustframe/* output/ - - name: Upload Pages artifact - # if: github.event_name == 'push' + if: github.event_name == 'push' uses: actions/upload-pages-artifact@v3 with: path: target/doc/ - name: Deploy to GitHub Pages - # if: github.event_name == 'push' + if: github.event_name == 'push' uses: actions/deploy-pages@v4 From 3bf432fd952e6ab783edeff4cdf0fd6f4adf8cda Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 01:18:14 +0100 Subject: [PATCH 21/22] fix: comment out pull request trigger in workflow --- .github/workflows/docs-and-testcov.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs-and-testcov.yml b/.github/workflows/docs-and-testcov.yml index 6096165..e683ec4 100644 --- a/.github/workflows/docs-and-testcov.yml +++ b/.github/workflows/docs-and-testcov.yml @@ -3,8 +3,8 @@ name: docs-and-testcov on: push: branches: [main] - pull_request: - branches: [main] +# pull_request: +# branches: [main] workflow_dispatch: permissions: From 0a0360a37ea9d4900838a77ee2a6c8d55b1df6dc Mon Sep 17 00:00:00 2001 From: Palash Tyagi <23239946+Magnus167@users.noreply.github.com> Date: Sun, 20 Apr 2025 01:24:05 +0100 Subject: [PATCH 22/22] refactor: remove build and test sections from README.md --- README.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/README.md b/README.md index 8b2aac7..c7d7494 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,3 @@ A simple dataframe library. `tarpaulin` coverage report: [tarpaulin-report](tarpaulin-report.html). --- - -## Build - -```bash -cargo build -``` - -## Test - -```bash -cargo test -```