Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
3a2b6a6
feat!: linear-time derivation, classed conditions, split_spec 0.3.0 c…
selcukorkmaz Sep 16, 2026
6d45025
docs: quick start, FAQ, a real-data case study, and the corrected con…
selcukorkmaz Sep 16, 2026
fbd2f14
ci: run every skipped check, add perf and pkgdown workflows, release …
selcukorkmaz Sep 16, 2026
33f146a
chore: release 0.4.0
selcukorkmaz Sep 16, 2026
b0280d6
fix: keep the graph_from_metadata examples inside the CRAN time limit
selcukorkmaz Sep 16, 2026
3b5544e
docs: bring the four pre-existing vignettes up to the 0.4.0 contract
selcukorkmaz Sep 16, 2026
a18b53c
docs: rewrite the quick start, and let a sample_id-only table build
selcukorkmaz Sep 16, 2026
61d1eb0
docs: make the leakage-aware workflow cover the whole 0.4.0 surface
selcukorkmaz Sep 16, 2026
826258b
docs: give the structure vignette the failure modes it was demonstrating
selcukorkmaz Sep 16, 2026
dadcb13
docs: make the cross-language vignette verify what it claims
selcukorkmaz Sep 17, 2026
914bfba
docs: close the adapter cookbook's gaps against the 0.4.0 contract
selcukorkmaz Sep 17, 2026
b0dd4b7
docs: correct the GSE60424 case study against the data it ships
selcukorkmaz Sep 17, 2026
708b65e
chore: keep build artifacts out of the tarball and the repository
selcukorkmaz Sep 17, 2026
3dcdcd2
docs: rewrite the JOSS paper against the 2026 submission criteria
selcukorkmaz Sep 17, 2026
9af36bd
docs: restructure the JOSS paper to match a published exemplar
selcukorkmaz Sep 17, 2026
c96d637
docs: correct the FAQ's performance claim and show the schema boundary
selcukorkmaz Sep 17, 2026
01adbd1
fix: drop the pkgdown site URL from DESCRIPTION for the CRAN submission
selcukorkmaz Sep 17, 2026
ff5f204
docs: add cran-comments.md for the 0.4.0 submission
selcukorkmaz Sep 17, 2026
fcf7b5e
docs: record the spell-check result in cran-comments
selcukorkmaz Sep 17, 2026
de7db7e
docs: bring the AI disclosure up to JOSS policy, add COI and funding
selcukorkmaz Sep 17, 2026
0fec5c3
docs: add the ROR id and corresponding-author flag to paper.md
selcukorkmaz Sep 17, 2026
91a8203
fix: give igraph's GML writer explicit node ids, and un-dangle two RE…
selcukorkmaz Sep 17, 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
Binary file removed .DS_Store
Binary file not shown.
40 changes: 39 additions & 1 deletion .Rbuildignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,52 @@
^docs$
^\\.Rproj\\.user$

^.*\.Rproj$
^\.Rproj\.user$
^\.Renviron$
^\.Rhistory$
\.Rhistory$
^\.claude$
^\.vscode$
^\.idea$

# Check / build artifacts produced in the source tree.
^splitGraph\.Rcheck$
^.*\.Rcheck$
^splitGraph_.*\.tar\.gz$
^revdep$
^MD5$

# Repository-only material: roadmaps, the JOSS paper, CI, coverage and
# pkgdown configuration, and the developer scripts behind dev/release.md.
^ROADMAP.*\.md$
^\.github$
^paper\.md$
^paper\.bib$
^paper-figures$
^codecov\.yml$
^CODE_OF_CONDUCT\.md$
^cran-comments\.md$
^_pkgdown\.yml$
^_pkgdown\.yml\.bak$
^\.lintr$
^dev$
^pkgdown$
^pkgdown-site$

# Python bytecode. The cache directory sits at
# inst/python/splitspec/__pycache__, so match it at any depth rather than at a
# fixed path: an anchored pattern silently let the .pyc files into the tarball.
__pycache__
\.pyc$

# knitr leftovers from rendering a vignette in place. The vignettes shipped to
# users are built into inst/doc by `R CMD build`, never from here.
^vignettes/figure$
^vignettes/.*_cache$
^vignettes/.*_files$
^vignettes/.*\.html$
^tests/testthat/Rplots\.pdf$
^Rplots\.pdf$

^\.DS_Store$
^.*/\.DS_Store$
77 changes: 0 additions & 77 deletions .claude/settings.local.json

This file was deleted.

11 changes: 11 additions & 0 deletions .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,21 @@ jobs:
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes
# Neither check-r-package nor rcmdcheck sets NOT_CRAN, so without this
# every skip_on_cran() test (the Python conformance check, the
# performance budget) would be skipped in CI too.
NOT_CRAN: true
# The performance budget has its own Linux-only workflow; skip it here so
# slow shared Windows/macOS runners cannot fail the check with noise.
SPLITGRAPH_SKIP_PERF: true

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.x"

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r@v2
Expand Down
37 changes: 37 additions & 0 deletions .github/workflows/perf-budget.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Wall-clock budget guard for the core pipeline (tests/testthat/test-performance.R).
# Runs on Linux only: the budgets are generous, but a shared Windows/macOS runner
# can be slow enough to produce noise, and the point is to catch a return to
# superlinear behaviour, not to benchmark.
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]

name: perf-budget

permissions: read-all

jobs:
perf-budget:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
NOT_CRAN: true
steps:
- uses: actions/checkout@v4

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::testthat, any::pkgload

- name: Run the performance budget tests
run: |
Rscript -e 'pkgload::load_all(".", quiet = TRUE); testthat::test_file("tests/testthat/test-performance.R", reporter = "progress", stop_on_failure = TRUE)'

- name: Print the benchmark table
run: Rscript inst/bench/pipeline.R 500 2000 5000
53 changes: 53 additions & 0 deletions .github/workflows/pkgdown.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Build the pkgdown site and publish it to GitHub Pages. The DESCRIPTION `URL`
# field advertises https://selcukorkmaz.github.io/splitGraph/, so this workflow
# has to run at least once (and Pages has to be enabled for the repository)
# before a CRAN submission, or `R CMD check --as-cran` reports that URL as a
# 404 NOTE.
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
release:
types: [published]
workflow_dispatch:

name: pkgdown

permissions: read-all

jobs:
pkgdown:
runs-on: ubuntu-latest
# Only restrict concurrency for non-PR jobs
concurrency:
group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }}
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
permissions:
contents: write
steps:
- uses: actions/checkout@v4

- uses: r-lib/actions/setup-pandoc@v2

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::pkgdown, local::.
needs: website

- name: Build site
run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)
shell: Rscript {0}

- name: Deploy to GitHub pages
if: github.event_name != 'pull_request'
uses: JamesIves/github-pages-deploy-action@v4.5.0
with:
clean: false
branch: gh-pages
folder: pkgdown-site
8 changes: 8 additions & 0 deletions .github/workflows/test-coverage.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,18 @@ jobs:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
# covr does not set NOT_CRAN either; without it the Python conformance
# test is skipped and its lines are never counted.
NOT_CRAN: true
SPLITGRAPH_SKIP_PERF: true

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.x"

- uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true
Expand Down
32 changes: 32 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,36 @@
# R session state
.Rproj.user
.Rhistory
.RData
.Ruserdata
.Renviron

# Build and check artifacts produced in the source tree by `R CMD build` /
# `R CMD check` / revdepcheck. None of these belong in the repository.
*.tar.gz
*.Rcheck/
revdep/

# Generated by `R CMD build --md5` (as CRAN does) inside the tarball; never part of the source tree.
MD5

# Rendered pkgdown site (the workflow deploys it to the gh-pages branch).
pkgdown-site/

# knitr leftovers from rendering a vignette in place; the shipped copies are
# built into inst/doc by `R CMD build`.
vignettes/figure/
vignettes/*_cache/
vignettes/*_files/
vignettes/*.html
Rplots.pdf

# Python bytecode from running the shipped splitspec reader.
__pycache__/
*.pyc

# Claude Code's machine-local permission allowlist. A shared `.claude/settings.json`
# would still be committable; this one is per-machine.
.claude/settings.local.json

.DS_Store
14 changes: 14 additions & 0 deletions .lintr
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
linters: linters_with_defaults(
line_length_linter(160), # signature-heavy R; 8 offenders were rewrapped, this is now a real gate
object_name_linter = NULL, # `.depgraph_*` internal prefix and S3 method names
object_length_linter = NULL, # the same prefix pushes internal names past 30 characters by design
commented_code_linter = NULL,
indentation_linter = NULL, # roxygen-heavy files trip this on continuation lines
object_usage_linter = NULL # false positives on data.frame column names in `[`
)
exclusions: list(
"inst/bench",
"docs",
"tests/testthat/_snaps"
)
encoding: "UTF-8"
6 changes: 4 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: splitGraph
Title: Dataset Dependency Graphs for Leakage-Aware Evaluation
Version: 0.3.0
Version: 0.4.0
Authors@R: c(
person("Selcuk", "Korkmaz", role = c("aut","cre"), email = "selcukorkmaz@gmail.com",
comment = c(ORCID = "0000-0003-4632-6850"))
Expand All @@ -17,8 +17,10 @@ BugReports: https://github.com/selcukorkmaz/splitGraph/issues
Encoding: UTF-8
Depends: R (>= 4.1.0)
Imports: graphics, igraph, stats, utils
Suggests: bioLeak, jsonlite, knitr, pkgload, rmarkdown, testthat (>= 3.0.0)
Suggests: bioLeak, jsonlite, knitr, pkgload, rmarkdown, rsample,
SummarizedExperiment, testthat (>= 3.0.0)
VignetteBuilder: knitr
Config/testthat/edition: 3
Config/Needs/website: selcukorkmaz/leakdown
NeedsCompilation: no
RoxygenNote: 7.3.3
42 changes: 0 additions & 42 deletions MD5

This file was deleted.

Loading
Loading