Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
85 changes: 85 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Format code and generate schemas
permissions:
contents: write
on:
workflow_call:
jobs:
format:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
name: Checkout
with:
ref: ${{ github.head_ref }}
- uses: ./.github/actions/setup_rust
name: Setup Rust
- name: Setup nightly rust
run: |
rustup toolchain install nightly --allow-downgrade -c rustfmt
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: Swatinem/rust-cache@v2
name: Cargo cache
with:
cache-all-crates: true
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.14.0"
cache: 'pip'
- name: Install Python dependencies
run: |
python -m pip install black mypy pandas-stubs
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install raphtory
run: |
MATURIN_PEP517_ARGS="--profile=build-fast" pip install -e "./python[all]"

- name: Run rust format
run: |
cargo +nightly fmt --all

- name: Run stubsgen
run: |
python -m pip install -e stub_gen
cd python/scripts && python gen-stubs.py

- name: Update graphQL schema
run: |
raphtory schema > raphtory-graphql/schema.graphql
- name: Validate graphQL schema
run: |
npx graphql-schema-linter --rules fields-have-descriptions,types-have-descriptions raphtory-graphql/schema.graphql || true
- name: Update docs from graphQL schema
run: |
python docs/scripts/gen_docs_graphql_pages.py

- name: Run python linter
run: |
cd python && black .

- name: Run mypy
run: |
mypy -m raphtory

- name: Check for uncommitted changes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "Changes detected. Committing and pushing..."
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git checkout ${{ github.head_ref }}
git add .
git commit -m "chore: apply tidy-public auto-fixes"
git push --force-with-lease origin HEAD:${{ github.head_ref }}
else
echo "No changes to commit."
fi
25 changes: 14 additions & 11 deletions .github/workflows/test_during_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,55 +11,58 @@ concurrency:
cancel-in-progress: true

jobs:
rust-format-check:
name: Rust format check
uses: ./.github/workflows/rust_format_check.yml
call-test-rust-workflow-in-local-repo:
name: Run Rust tests
uses: ./.github/workflows/test_rust_workflow.yml
secrets: inherit
needs: rust-format-check
call-test-rust-storage-workflow-in-local-repo:
name: Run Rust storage tests
uses: ./.github/workflows/test_rust_disk_storage_workflow.yml
secrets: inherit
needs: rust-format-check
call-test-python-workflow-in-local-repo:
name: Run Python tests
uses: ./.github/workflows/test_python_workflow.yml
with:
test_python_lower: false
secrets: inherit
needs: rust-format-check
call-test-python-disk-storage-workflow-in-local-repo:
name: Run Python storage tests
uses: ./.github/workflows/test_python_disk_storage_workflow.yml
with:
test_python_lower: false
secrets: inherit
needs: rust-format-check
call-test-ui-in-local-repo:
name: Run UI Tests
uses: ./.github/workflows/test_ui.yml
secrets: inherit
needs: rust-format-check
permissions:
contents: read
call-benchmark-workflow-in-local-repo:
name: Run benchmarks
uses: ./.github/workflows/benchmark.yml
secrets: inherit
needs: rust-format-check
call-graphql-bench-workflow-in-local-repo:
name: Run benchmarks
uses: ./.github/workflows/bench-graphql.yml
secrets: inherit
needs: rust-format-check
call-stress-test-workflow-in-local-repo:
name: Run benchmarks
uses: ./.github/workflows/stress-test.yml
secrets: inherit
needs: rust-format-check
call-format:
name: Formatting autofixes
uses: ./.github/workflows/format.yml
secrets: inherit
needs: [
call-test-rust-workflow-in-local-repo,
call-test-rust-storage-workflow-in-local-repo,
call-test-python-workflow-in-local-repo,
call-test-python-disk-storage-workflow-in-local-repo,
# call-test-ui-in-local-repo, # TODO: currently broken, re-enable when fixed
call-benchmark-workflow-in-local-repo,
call-graphql-bench-workflow-in-local-repo,
call-stress-test-workflow-in-local-repo
]
# call-code-coverage:
# name: Code Coverage
# uses: ./.github/workflows/code_coverage.yml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_python_disk_storage_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
steps:
- id: set-matrix
run: |
echo "python-versions=[\"3.11\",\"3.14\"]" >> $GITHUB_OUTPUT
echo "python-versions=[\"3.11\",\"3.14.0\"]" >> $GITHUB_OUTPUT
python-test:
if: ${{ !inputs.skip_tests }}
name: Python Tests
Expand Down
46 changes: 1 addition & 45 deletions .github/workflows/test_python_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
steps:
- id: set-matrix
run: |
echo "python-versions=[\"3.11\",\"3.14\"]" >> $GITHUB_OUTPUT
echo "python-versions=[\"3.11\",\"3.14.0\"]" >> $GITHUB_OUTPUT
python-test:
if: ${{ !inputs.skip_tests }}
name: Python Tests
Expand Down Expand Up @@ -64,53 +64,9 @@ jobs:
python -m pip install black
echo "Installing linting dependencies from cache..."
python -m pip install maturin mypy networkx pyvis pandas-stubs
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Run Python tests
run: |
cd python && tox run
- name: Run Python extension tests
run: |
cd examples/netflow/test && pytest .
- name: Validate graphQL schema
if: matrix.os == 'ubuntu-latest' && matrix.python == '3.13'
run: |
npx graphql-schema-linter --rules fields-have-descriptions,types-have-descriptions raphtory-graphql/schema.graphql || true
- name: Update docs from graphQL schema
if: matrix.os == 'ubuntu-latest' && matrix.python == '3.13'
run: |
python docs/scripts/gen_docs_graphql_pages.py
- name: Run python linter
if: matrix.os == 'ubuntu-latest' && matrix.python == '3.13'
run: |
cd python && black .
- name: Run stubsgen
if: matrix.os == 'ubuntu-latest' && matrix.python == '3.13'
run: |
echo "Installing Raphtory from ./python"
pip install -e ./python
echo "Installing stubsgen"
python -m pip install -e stub_gen
cd python/scripts && python gen-stubs.py
- name: Run mypy
run: |
mypy -m raphtory

- name: Check for uncommitted changes
if: matrix.os == 'ubuntu-latest' && matrix.python == '3.13'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "Changes detected. Committing and pushing..."
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git checkout ${{ github.head_ref }}
git add .
git commit -m "chore: apply tidy-public auto-fixes"
git push --force-with-lease origin HEAD:${{ github.head_ref }}
else
echo "No changes to commit."
fi
2 changes: 1 addition & 1 deletion .github/workflows/test_ui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
steps:
- id: set-matrix
run: |
echo "python-versions=[\"3.11\",\"3.14\"]" >> $GITHUB_OUTPUT
echo "python-versions=[\"3.11\",\"3.14.0\"]" >> $GITHUB_OUTPUT
ui-test:
name: UI Tests
needs: select-strategy
Expand Down
22 changes: 11 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ default-members = ["raphtory"]
resolver = "2"

[workspace.package]
version = "0.16.3"
version = "0.17.0"
documentation = "https://raphtory.readthedocs.io/en/latest/"
repository = "https://github.com/Raphtory/raphtory/"
license = "GPL-3.0"
Expand Down Expand Up @@ -53,11 +53,11 @@ incremental = false
pometry-storage = { version = ">=0.8.1", path = "pometry-storage" }
#[private-storage]
# pometry-storage = { path = "pometry-storage-private", package = "pometry-storage-private" }
raphtory = { path = "raphtory", version = "0.16.3" }
raphtory-api = { path = "raphtory-api", version = "0.16.3" }
raphtory-core = { path = "raphtory-core", version = "0.16.3" }
raphtory-storage = { path = "raphtory-storage", version = "0.16.3" }
raphtory-graphql = { path = "raphtory-graphql", version = "0.16.3" }
raphtory = { path = "raphtory", version = "0.17.0" }
raphtory-api = { path = "raphtory-api", version = "0.17.0" }
raphtory-core = { path = "raphtory-core", version = "0.17.0" }
raphtory-storage = { path = "raphtory-storage", version = "0.17.0" }
raphtory-graphql = { path = "raphtory-graphql", version = "0.17.0" }
async-graphql = { version = "7.0.16", features = ["dynamic-schema"] }
bincode = "1.3.3"
async-graphql-poem = "7.0.16"
Expand Down
Binary file added docs/assets/images/gandalf-importance.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading