Releases
v0.2.0
Compare
Sorry, something went wrong.
No results found
[0.2.0] - 2026-09-14
🚀 Features
(kermit-bench) Move tuple generators into generation module
(kermit-bench) Add graph generation stub with GraphModel enum
(kermit-bench) Add exponential and factorial benchmark configs
(kermit) Add SpaceMeasurement module for Criterion space benchmarks
(kermit) Add bench suite subcommand for running named benchmark workloads
(bench) Replace synthetic benchmarks with cloud-based YAML system
(bench) Support multiple named queries per benchmark
(bench) Add list subcommand to show available benchmarks
(bench) Add Oxford .tbl to Parquet conversion script
(bench) Add Oxford DSI benchmark definitions
(algos) Add SingletonTrieIter for Const-view rewrite
(algos) Add TrieIterKind dispatch enum
(algos) Add const_rewrite for paper-canonical atom filtering
(kermit) Wire Const-view rewrite into DatabaseEngine::join
(watdiv) Preprocessor dictionary builder
(watdiv) Preprocessor predicate partitioner
(watdiv) Preprocessor SPARQL → Datalog translator
(watdiv) Preprocessor YAML emitter and end-to-end driver
(watdiv) Preprocessor emits expected.json from .desc files
(watdiv) Add generic-workload driver (sparql-preprocess CLI)
(watdiv) Add stress-100/1000 benchmark YAMLs
(kermit) Wire SpaceMeasurement through bench ds + bench run
(kermit) Unified bench metadata writer + BytesFormatter integration
(kermit) Add --report-json channel for bench subcommands
(kermit) Tighten bench output and CLI surface
(kermit-rdf) Scaffold crate with empty stub modules
(kermit-rdf) Add RdfError enum
(kermit-rdf) Add RdfValue enum
(kermit-rdf) Add streaming N-Triples parser
(kermit-rdf) Add Dictionary type
(kermit-rdf) Add predicate sanitization
(kermit-rdf) Add triple partitioning by predicate
(kermit-rdf) Add Parquet writers for dict + relations
(kermit-rdf) Add SPARQL parser wrapper
(kermit-rdf) SPARQL→Datalog translator with golden tests
(kermit-rdf) Emit BenchmarkDefinition YAML
(kermit-rdf) Harvest watdiv .desc cardinalities into expected/ CSVs
(kermit-rdf) Add TempStagingDir for watdiv driver
(kermit-rdf) Driver invokes watdiv -d/-s/-q
(kermit-rdf) Driver entry point and DriverInputs
(kermit-rdf) Pipeline orchestrator and meta.json schema
(kermit-rdf) Vendor watdiv binary + support files
(kermit-bench) Discovery walks workspace + cache roots
(kermit) Add bench watdiv-gen subcommand
(kermit) List/fetch/run walk workspace + cache roots
(kermit) Drop criterion auto-plot rendering
(kermit) Bump bench-report schema to v2 with axes map
(kermit-plot) Add python plotter for bench reports
(kermit) Always write json bench report
(kermit-lab) Add DataFrame loading API
(kermit-lab) Plot functions return Figure; CLI is a thin wrapper
(kermit-lab) Add summary, compare, and stats functions
(kermit-rdf) Add lubm benchmark generation pipeline
(kermit) Add bench lubm-gen subcommand
(kermit) Add declarative generator yaml for bench run
(kermit) Sweep --indexstructure and --algorithm via 'all' selectors
(kermit-lab) Scaffold full-timeline notebook with prereq cells
(kermit-lab) Notebook phase 1 — bench gen lubm
(kermit-lab) Notebook phases 2-3 — bench run time and space
(kermit-lab) Notebook phase 4 — load reports into DataFrame
(kermit-lab) Notebook phases 5-6 — plots + outro
(kermit-lab) Bar_queries accepts multi ds/algo with stacked layout
(iters) Add hash_attribute for hash-trie iterator family
(iters) Add HashTrieIterator trait
(iters) Add HashTrieIterable trait
(iters) Re-export HashTrieIterator family from crate root
(ds) Scaffold HashTable primitive
(ds) HashTable::get/get_mut with linear probing
(ds) HashTable::entry_or_insert_with (pre-resize)
(ds) HashTable resize on load factor > 0.7
(ds) HashTable::iter over occupied buckets
(ds) HashTrieNode recursive enum
(ds) HashTrie struct + Relation::new
(ds) HashTrie::insert via recursive insert_at
(ds) HashTrie::from_tuples and insert_all
(ds) HashTrie::collect_tuples for projection and tests
(ds) HashTrie HeapSize impl
(ds) HashTrie Projectable impl
(ds) HashTrieIter scaffolding with open
(ds) HashTrieIter::{key,next,at_end,size}
(ds) HashTrieIter::lookup with HashTable::index_of
(ds) HashTrieIter::up
(ds) HashTrieIter::leaf_tuples
(ds) HashTrie HashTrieIterable impl
(ds) Expose HashTrie via IndexStructure and crate root
(algos) SingletonHashTrieIter skeleton
(algos) SingletonHashTrieIter::leaf_tuples
(algos) HashTrieIterKind dispatch enum
(algos) Hash_triejoin query indexing helpers
(algos) Verify_and_construct for leaf-level emission
(algos) Enumerate + emit_leaf — Algorithm 3 verbatim
(algos) HashTriejoin entry point
(cli) Add HashTrie/HashTriejoin to selectors
(cli) IndexStructureSelector::supports_algorithm
(cli) Hash_join free function for HashTrie family
(cli) Wire HashTrie + HashTriejoin into bench dispatch
(iters) Add optimization trait family
(iters) Add HashStrategy trait + Sip/FxHash strategies
(ds) Implement HasOptimizationAxes on HashTrie
(cli) Add HasherChoice and LayoutChoices CLI scaffolding
(cli) Bench-report axes include ds_layout_hasher
(rdf) Vendor WatDiv Basic Testing query templates (L/S/F/C)
(bench) Add watdiv-basic GeneratorSpec variant
(rdf) Add drive_basic for the WatDiv Basic Testing workload
(rdf) Add run_basic_pipeline; parameterize process_artifacts meta kind
(cli) Dispatch watdiv-basic generator to run_basic_pipeline
(bench) Add watdiv-basic and watdiv-stress-default benchmarks
(kermit-lab) Add optimization-axis defaults registry
(kermit-lab) Wildcard-wide optimization-axis ingest in loader
(kermit-lab) Column-aware colour/marker/linestyle + HashTrie colour
(kermit-lab) Aesthetic-map encoding + scalar series resolution
(kermit-lab) Bar + line geom drawers
(kermit-lab) Facet grid + shared-legend helper
(kermit-lab) Kl.plot entry point (bar + line)
(kermit-lab) Scatter + violin geoms and tradeoff metric-x path
(kermit-lab) Presets over the general plot engine
(kermit-lab) Rewire public API to engine + presets
(kermit-lab) Preset-based render-all with ablation auto-discovery
(kermit-lab) General plot subcommand + preset routing in CLI
(bench) Add lubm-reference declarative benchmark
(kermit-lab) Reference notebook — preflight and profile knob
(kermit-lab) Reference notebook — correctness phase
(kermit-lab) Reference notebook — benchmark sweep phase
(kermit-lab) Reference notebook — load phase
(kermit-lab) Reference notebook — comparison figures
(kermit-lab) Reference notebook — statistical analysis
(kermit-lab) Reference notebook — summary and outro
(kermit-ds) Cardinality trait with O(1) TreeTrie tuple counter
(kermit-ds) ColumnTrie Cardinality impl via matched-existing insert signal
(kermit-ds) HashTrie Cardinality impl (multiset stored-tuple count)
(kermit-algos) Optimiser module with shared query analysis (hoisted from build_variable_index)
(kermit-algos) QueryPlan with validation and rank-parameterised topological ordering
(kermit-algos) QueryOptimiser trait, CatalogStats, LexicographicOptimiser default
(kermit-algos) CardinalityOptimiser — smallest-relation-first variable ordering
[breaking ] JoinAlgo::join_iter consumes a QueryPlan; engine plans via QueryOptimiser
(cli) --optimiser flag on join/bench join/bench run with 'optimiser' report axis
(bench) Add end-to-end metric timing build + K queries per sample
(bench) Let a benchmark commit its relation file via path:
(ds) Add HashTrieConfig with the singleton_pruning flag
(ds) Add ConfigurableRelation and carry HashTrieConfig on HashTrie
(ds) Singleton pruning at HashTrie build time (paper Fig. 5)
(ds) Emulate pruned levels in HashTrieIter with singleton frames
(ds) Add Configured<R, P> to lift a Config value to a type for test suites
(kermit-lab) Back-fill ds_config_singleton_pruning=false for pre-Config reports
(kermit) Carry HashTrieConfig on the HashHtj execution cell
(kermit) Add --ds-config with singleton-pruning for hash-trie benches
(ds) Add the PruningPolicy Layout markers with an uninhabited off payload
(ds) Make the HashTable load-factor cap a HashTrieConfig value (ds_config_load_factor)
(kermit-lab) Ds_layout_pruning and ds_config_load_factor defaults; fixtures name real axes
(kermit) Accept --ds-config load-factor and report ds_config_load_factor
(ds) [breaking ] Singleton pruning becomes the P Layout parameter of HashTrie (ds_layout_pruning)
(kermit) [breaking ] --ds-layout-pruning and the hasher × pruning Layout dispatch
(kermit-ds) Add IndexStructure::axis_value as the pinned identity label
(kermit-algos) Add JoinAlgorithm::axis_value as the pinned identity label
(kermit) Resolve the workspace root at runtime with a KERMIT_WORKSPACE override
(kermit) Add ReportSink for atomic per-cell report rewrites
(kermit) Write bench reports incrementally through ReportSink
(kermit) Add bench::Workload, the runner's input for bench run and bench join
(kermit) Run bench join through the generic runner with metrics, axes and --ds-config
(kermit-bench) Optional expected result cardinality on query definitions
(kermit-rdf) Write expected cardinalities into benchmark.yml and drop the sidecars
(kermit) Bench run --verify checks result cardinalities before timing
(kermit-lab) Verified column and a real-binary contract test
(kermit-bench) Optional sha256 on relations, checked on download and by verify_integrity
(kermit) Bench fetch verifies declared sha256 digests; pin triangle's relation
(scripts) Add WatDiv stress snapshot installer and per-template sampler
(algos) Selection rewrite and equality-selection views for repeated variables
🐛 Bug Fixes
Address code review findings
(bench) Reject HTTP errors on download and use distinct placeholder URLs
(watdiv) Thread URI→name map through preprocessor to prevent predicate aliasing
(watdiv) Make emitter fail loud on unknown predicates; document head-atom scope
(watdiv) Include literal-object triples in predicate partitions
(watdiv) Absorb query-only URIs into dictionary instead of raising
(watdiv-gen) Apply code review feedback for on-the-fly rollout
(kermit-rdf) Align watdiv -s/-q driver with vendored binary CLI
(kermit-rdf) Canonicalize watdiv binary path before staging
(kermit-plot) Handle slashed group names and null slope from criterion
(kermit-lab) Accept glob patterns in load(); preserve CLI exit codes
(kermit-lab) Make quick-start notebook robust to single-scale data
(kermit-lab) Document data-shape requirements and unhardcode DS names in notebooks
(kermit-lab) Correct --report-json flag position in watdiv notebook
(kermit-lab) Correct watdiv benchmark names in 04 notebook
(kermit) Address code review issues for declarative generator yaml
(kermit-lab) Stream run_phase output and align launch command
(kermit-ds) Update interval_index in duplicate-key descent path
(iters) Seek works on unstarted iterator
(rdf) Inverse rule skips blank-node objects
(ds) Guard ColumnTrieIter::open against post-exhaustion descent
(ds) Assert header arity in from_tuples
(kermit) Report missing relation name in DB diagnostics
(kermit) Propagate cache-dir errors and dedupe cache lookups
(rdf) Tighten subprocess and path error handling
(algos) Enforce valid global attribute order in triejoins
(rdf) Seed empty relations for predicates absent from basic-workload data
(kermit-lab) Deterministic stable colour fallback, preserve committed-colour separation
(kermit-lab) Dedup group cols, neutral fallback colour, error-path tests for encoding
(kermit-lab) Generalize tradeoff orientation + keys, strengthen plot tests, drop redundant path comments
(kermit-lab) Clean-break API rewire — revert preset compat shims, drop obsolete top-level-API tests
(kermit-lab) Reference notebook — per-config sweeps, F5/T2 labels, citation fixes
(kermit-lab) Reference notebook — align intro sweep phrasing with per-config invocations
(kermit) Make bench run sweeps enumerate valid cells, unify runners
(kermit) Build the bench run insertion metric with the family's config
(ds) Plain doc comment on define_config_provider! marker so rustfmt is idempotent
(kermit-algos) Make a failed LFTJ descent atomic
(kermit) Resolve the workspace root once per process
(rdf) Seed empty relations for absent predicates in the stress workload too
(kermit-rdf) Describe RdfError::Expected by all the stages that raise it
(kermit-lab) Contract test runs in a temp dir and surfaces kermit's output
(db) Enforce repeated variables via selection views; suite runs through real entry points
(bench) Reject downloads that are not Parquet files before caching
(bench,lab) Resolve Criterion results by id, refuse truncating sweeps
💼 Other
Add algorithm and data-structure docs
(cli) Optimiser flag hardening — axis guard test, tempfile hygiene, naming
🚜 Refactor
(kermit-bench) Remove download infrastructure, rewrite config types
(kermit-ds) Remove Criterion benchmarks
(kermit) Remove Benchmarker stub and Commands::Benchmark
(watdiv) Extract run_pipeline from main
(watdiv) Decouple expected.py from watdiv-stress-* glob
(watdiv) Move WatDiv CLI into drivers/watdiv
(kermit-lab) Hoist PATHS and CRITERION_ROOT to constants in notebooks
(kermit) Nest gen subcommands under bench gen
(kermit-algos) Clarify LFTJ naming and state machine
(kermit-ds) Tighten Relation trait and clarify trie internals
(kermit-rdf) Extract shared timestamp helpers
(kermit-rdf) Name parquet column strings as constants
(kermit) Name default group and byte-unit constants
(kermit) Drop unused PhantomData in DatabaseEngine
(kermit-ds) Rename TreeTrieIter pos to sibling_idx
(kermit-algos) Rename LFTJ iterator_pool to idle_iterators
(kermit) Replace anyhow rewrap boilerplate with bare ?
(kermit) Introduce CacheState enum in materialize
(kermit-bench) Extract try_load_cache_subdir helper
(kermit-rdf) Split LUBM entailment loop into per-rule fns
(kermit-ds) Extract LayerStep enum from internal_insert
(kermit) Extract add_space_bench helper for space metrics
(ds) Extract project_via_trie_iter helper
(rdf) Lift sha256_file helper to crate root
(bench) Expose base_cache_dir and load_cached_benchmark
(derive) Validate IntoTrieIter input generics
(kermit) Parameterize DatabaseEngine name from caller
(iters) Remove legacy hash_attribute function
(ds) Make HashTrie generic over H: HashStrategy
(ds) Make HashTrieIter generic over H: HashStrategy
(algos) SingletonHashTrieIter takes precomputed hash
(kermit) Make hash_join generic over HashStrategy
(kermit-lab) Polish optimization-axis loader per review
(kermit-lab) Delete legacy plots/ package and its tests
(kermit-lab) Final polish — drop dead axis_mapping fns, boolean dtype, README + test gaps
(kermit-algos) Share Const_ predicate prefix between rewrite and stats; harden docs+tests
Readability pass — document contracts, clarify names, name magic values
(cli) Decompose main dispatch into per-subcommand handlers
(rdf) Consolidate duplicated watdiv/lubm pipeline logic
(ds) Reduce trie internal complexity, behavior-preserving
(algos) LFTJ literature alignment — uniform ring indexing
(rdf) Share WatDiv/LUBM post-driver orchestration via Generator trait
(kermit-rdf) Drop unused kermit-parser and kermit-ds dependencies
(ds) Tighten pruning invariant walker and insert_at readability
(ds) Close the Configured<R, P> drift hole and pin its contract
(ds) Panic on Singleton-in-Table frames and tighten HashTrieIter docs/tests
(ds) Expose read_csv/read_parquet so callers can build with a config
(kermit) Make build_relation the single construction site and pin the load path
(ds,kermit) Drop the redundant singleton-frame depth, tighten Layout docs and tests
(kermit) Move optimisation-axis CLI options into options.rs
(kermit) Derive HashHtj's report labels from its Layout types
(kermit) Pin the Layout macro pairings and tighten options docs
(kermit) Collapse run_ds_bench/run_ds_bench_hash onto ExecutionFamily
(kermit) Split RelationFamily out of ExecutionFamily for bench ds
(kermit) Collapse the DB layer into family-symmetric join functions
(kermit) Derive identity labels from axis_value instead of Debug
(algos) Drop dead dependency, dead spelling, unreachable pub
(algos) Split src/ by iterator family into sorted/ and hash/
(algos) Fix planner/executor layering; split optimiser/mod.rs
(kermit) Move Metric, Criterion helpers and the bench ds runner into bench/
(kermit) Run bench run through bench::run on a Workload
(kermit) Group the runner's per-invocation inputs into RunSettings
📚 Documentation
Update CLAUDE.md and benchmarking architecture spec for consolidation
Update README benchmarking section for consolidated CLI
Update CLAUDE.md for cloud-based benchmark system
Fix inaccuracies and add missing context to CLAUDE.md
Document bench list subcommand in CLAUDE.md
(bench) Add benchmarks/README.md documenting YAML schema
(iters) Add README, crate-level example, clean JoinIterable doc
(derive) Add README and expand crate-level example
(parser) Add README, crate-level doctests, # Errors
(ds) Add # Errors sections and expand trait docs
(ds) Expand TreeTrie and ColumnTrie struct docs
(ds) Add README and deny missing_docs
(algos) Add leapfrog_triejoin module doc and variant doc
(algos) Add README and deny missing_docs
(bench) Add module docs, field docs, and # Errors sections
(bench) Add doctests, README, and deny missing_docs
(kermit) Expand lib.rs and db module docs
(kermit) Add main.rs crate doc
(kermit) Add README and deny missing_docs
(plans) Add WatDiv benchmark integration design
Note Const-view rewrite and WatDiv generated YAMLs
(watdiv) Document generic driver
(watdiv) Document literal partitioning and dict/YAML coupling
(benchmarking) Refresh architecture spec for current CLI
Add gotchas for rustfmt noise and bench CLI quirks
(watdiv) Spec on-the-fly generation pipeline
(plans) Add watdiv on-the-fly implementation plan
Note miri's fchmod limitation in gotchas
(specs) Add design and schema specs for bench-report v2
(kermit) Document bench --report-json + kermit-plot in readme
Add usage guide with end-to-end examples
Document kermit-plot uv workflow and new path
(kermit-lab) Add notebook templates and reposition as analysis library
Fix USAGE.md --format claim and add bench watdiv-gen section
Document kermit-rdf as 8th crate and lubm-gen subcommand
(benchmarks) Add lubm benchmark reference
(benchmarks) Add watdiv benchmark reference
Polish claude.md after lubm work
Clarify rustfmt and cache-yaml gotchas in claude.md
(benchmarks) Add minimal declarative generator examples
Update CLI references for bench gen subcommands
Note iter_custom calibration trap in space-bench gotcha
Refresh user-facing docs for kermit-rdf and bench surface
(specs) Add design for example jupyter notebook full timeline
(plans) Add implementation plan for full-timeline notebook
(kermit-lab) Correct phase 1 prose accuracy
(kermit-lab) Point at 00_full_timeline.ipynb as the entry point
Point root readme at the full-timeline notebook
(benchmarks) Unify LUBM and WatDiv docs under shared schema
(kermit-rdf) Document VarOrder first-appearance invariant
(kermit-algos) Document LFTJ invariants and K-var naming
Address review nits from readability refactor
(kermit-ds) Clarify LayerStep semantics for duplicate-key path
(kermit) Fix misleading doc-link target in add_space_bench
(rdf) Clarify StressParams forwarded vs informational fields
(ds) Fix HashTrie::collect_tuples doc link path
(data-structures) Hash-trie.md per Priorities item 3
(algorithms) Hash-triejoin.md per Priorities item 3
(specs) Add optimization-standard.md (normative)
(claude.md) Document optimization standard in 'Extending the System'
(specs) Document standard axis prefixes in bench-report-schema
(data-structures) Add Optimizations section to hash-trie.md
(specs,plans) Restore hash-triejoin design + plan
(specs,plans) Restore optimization-standard design + plan
(benchmarks) Document WatDiv default workloads, templates, and absent-predicate tolerance
(plans) Add WatDiv default workloads implementation plan
Add human-facing optimization-standard guide
(specs) Design for optimization-axis-aware kermit-lab plotting
(plans) Implementation plan for optimization-axis-aware plotting
(kermit-lab) Document the general plot engine + ablation
(kermit-lab) Update example notebooks for the new plotting API
Add BENCHMARKING.md methodology guide; refresh USAGE.md plotting
(specs) Consolidate optimization-standard guide and normative spec
(specs) Add LUBM reference comparison notebook design
(plans) Add LUBM reference notebook implementation plan
(specs,plans) Correct false claim that bench run all×all skips incompatible pairs
Audit and correct documentation across the workspace
(specs) Query optimiser design — planner trait, QueryPlan, cardinality policy
(plans) Query optimiser implementation plan — 12 TDD tasks
(specs) Correct Cardinality seam — lives in kermit-ds, stored-tuple (multiset-aware) semantics
(kermit) Tighten db.rs plan-flow comments; note measured-path planning cost
Optimiser component docs, extension recipe, architecture and schema updates
(optimisers) House-style headers, See-also cross-links, CLAUDE.md trim
Surface --optimiser in README, USAGE, and benchmarking-architecture
Fix hasher-ablation example — hash-trie pairs with hash-triejoin
Sync ARCHITECTURE.md and CLAUDE.md with the current architecture
Correct ARCHITECTURE.md sections overtaken by the #56 fix
(specs) Design singleton pruning as the first Config consumer ([#58 ](#58 ))
(plans) Implementation plan for singleton pruning as first Config consumer ([#58 ](#58 ))
(ds) Tighten ConfigurableRelation contract and HashTrie constructor docs
Document singleton pruning, ConfigurableRelation, and the with_config suite
Correct optimization-standard walkthrough and stale hash-trie text
Record measured singleton-pruning overhead and the open design decision
(specs) Amendment 1 — pruning is a Layout, the load-factor cap is the Config consumer
(plans) Implementation plan for Amendment 1 (pruning Layout, load-factor Config)
Pruning as a Layout, load factor as the Config; classification rule in the standard
Correct layout-guarantee wording and stale claims after the Layout switch
Record Amendment 1 acceptance measurements
(specs) Mark the pre-amendment optimisation specs superseded and update their axis examples
Point the option-group references at kermit/src/options.rs
Record the FxHash pivots in the Amendment 1 acceptance record
(claude) Require the LUBM hook when adding a query optimiser
Name the merged bench ds families correctly
(architecture) Name the HashHtj cell's Layout and Config fields
Finish renaming the HashHtj cell and runner references after the merge
(kermit) Describe the family-symmetric join layer; bump kermit to 0.2.0
(benchmarks) Explain why scripts/ is retained
(specs) Sweep-hardening design (sub-project A)
(plans) Sweep-hardening implementation plan
(specs) Mark sweep-hardening as implemented
Note incremental reports and runtime workspace root
(algos) Rewrite README for the reorganised crate
(algos) Record why the triejoin tests stay inline
(specs) Design for seeding absent predicates in the WatDiv stress workload ([#63 ](#63 ))
(plans) Implementation plan for WatDiv stress absent-predicate seeding ([#63 ](#63 ))
(benchmarks) Absent predicates are seeded in both WatDiv workloads; note 1-second seed granularity
(specs) Runner-consolidation design (sub-project B)
(specs) Fix criterion_groups count in runner-consolidation test bullet
(plans) Runner-consolidation implementation plan
Describe bench join's generic-runner surface and the bench/ module
Fix stale bench join and module-location sentences
(specs) Answer-verification design (sub-project C)
(specs) Fold sub-projects D and E into the answer-verification spec
(plans) Answer-verification, Rust–Python contract and download-integrity plan
Expected cardinalities, --verify, sha256 integrity, and the kermit-lab contract test
(benchmarks) Keep the static-fields schema table contiguous
Note sha256 verification in bench fetch and disambiguate the run-time hash
Selection rewrite for repeated variables; 14 standard join patterns
⚡ Performance
(kermit) Skip per-iter trie rebuild in space benchmarks
(kermit) Load each parquet relation once in run_benchmark
(ds) Keep HashTrieNode table accessors inlined despite the Singleton panic arm
🎨 Styling
Apply nightly rustfmt formatting
Apply nightly rustfmt formatting
Apply nightly rustfmt formatting
Apply nightly rustfmt formatting
Apply nightly rustfmt formatting
Apply nightly rustfmt formatting
Apply nightly rustfmt to documentation edits
(kermit) Apply nightly rustfmt to recently-touched files
(kermit-rdf) Wrap long doc comments in error.rs to satisfy rustfmt
(kermit) Apply nightly rustfmt to bench_report
Apply nightly rustfmt formatting pass
(kermit-ds) Regroup hex literal in column_trie test seed
(iters) Cargo fmt + doc/param naming consistency
(ds) Cargo fmt + clippy fixes after Phase 2
(ds) Cargo fmt after Phase 3
(ds) Cargo fmt after Phase 4
(algos) Cargo fmt after Phase 7
(iters) Cargo fmt after Phase 1
(cli) Cargo fmt after Phase 4
Apply rustfmt to watdiv default-workload changes
Cargo fmt
Cargo fmt
Cargo fmt
Run rustfmt over the dependency-bump edits
Rustfmt and align axis_value test imports with the optimiser precedent
🧪 Testing
(kermit-bench) Add tests for tuple generators and benchmark configs
(kermit) Add trimmed WatDiv fixture for correctness checks
(kermit) Integration test — WatDiv mini fixture
(kermit-rdf) Integration test for stages 4-6
(kermit-rdf) E2e SF=1 against real watdiv binary
(kermit) CLI smoke test for bench watdiv-gen
(kermit-rdf) Gate driver fs tests behind cfg(miri)
(kermit-rdf) Add lubm pipeline integration tests
(kermit-ds) Move tree_trie tests to a sibling file
(kermit-ds) Add randomised round-trip test for column_trie inserts
(kermit) Pin bench run JSON-schema with triangle benchmark
(kermit) Address review findings on bench-run schema test
Miri-gate e2e_watdiv and de-collide cli_join temp path
Sort both sides in test_join for multiset equality
Define_multiway_join_test_suite!(HashTrie, HashTriejoin)
(cli) Unit tests for validate_layout_choices
Split HashTrie suite by Layout variant via type aliases
(lubm) Add cardinality regression test
(rdf) E2e test for the WatDiv Basic Testing pipeline
(kermit-ds) Harden HashTrie multiset counter — from_tuples duplicate pin + desync guard comment
(kermit-algos) Pin repeated-variable analysis edge; state head-index guarantee
(kermit-algos) Pin out-of-range plan rejection; document rank call frequency
(kermit-algos) Pin CardinalityOptimiser min-fold semantics; drop redundant tie-break
Run the 11-pattern multiway join suite under both optimisers (88 tests)
(ds) Add HashTrie iterator-contract, Parquet, and collision suites
(ds) Run HashTrie iterator, Parquet and collision suites with pruning on
(kermit) Add define_multiway_join_test_suite_with_config! and pruning-on suites
(kermit) CLI smoke test for --ds-config singleton-pruning
(kermit) CLI smoke test for --ds-layout-pruning
(kermit) Share the CLI smoke-test helpers in tests/common/cli.rs
(kermit) Run the LUBM cardinality check under every optimiser
(kermit) Add a deep-dead-end pattern to the standard join suite
(kermit) Partial bench run sweep keeps finished benchmarks' reports
(rdf) Pin seed_missing_predicates with a deterministic unit test
(rdf) Accept seeded relations in e2e_watdiv and assert YAML/seeded relations reach Parquet
(kermit) Pin the Python schema version to REPORT_SCHEMA_VERSION
Reference the head-projection issue from the diagonal tests
(rdf) Pin pipeline artifact contents on hand-crafted input
(rdf) Assert the exact entailment closure of interacting rules
(kermit) Java-free miniature LUBM oracle
(rdf) Tighten pipeline fixture; document partition tuple order
(kermit) Mini LUBM oracle covers every optimiser and constant
🔧 Build
(flake) Expose python and ld_library_path for kermit-plot
(kermit-plot) Migrate to uv with hatchling backend
(flake) Add uv to dev shell
(flake) Add jdk 8 for lubm-uba jar runtime
(kermit-lab) Sync uv.lock with 0.2.0 package version
(flake) Track CI's nightly and fix the drift it exposes
(deps) Bump dirs to 7 and reqwest to 0.13
(deps) Bump sha2 to 0.11 and hex-encode digests explicitly
(deps) Bump syn to 3
(deps) Bump winnow to 1.0
(deps) Bump arrow and parquet to 59
(deps) Bump oxrdf, oxttl and spargebra
(deps) Bump criterion to 0.8
⚙️ Miscellaneous Tasks
Add .worktrees/ to .gitignore
(watdiv) Scaffold Python preprocessor skeleton
(kermit) Fail loud on missing relation in join; ignore watdiv-data/
(kermit-rdf) Drop redundant tempfile dev-dep + premature kermit-algos dep
Add watdiv binary to .gitignore
Ignore .loom/ output directory
(kermit-plot) Move project from scripts/ to python/
(kermit-lab) Rename from kermit-plot
Ignore log.txt files emitted by lubm-uba jar
(kermit-rdf) Vendor lubm-uba jar with provenance
Ignore .serena/ MCP server config dir
Ignore .claude.local.md
(release) Bump crate versions and add kermit-rdf changelog
Remove dead Node trait and stale commented test block
Update CLAUDE.md
(kermit) Stub HashTrie arms in CLI dispatch until phase 9
(release) Bump workspace crate versions
(python) Ignore Jupyter notebook checkpoint directories
(kermit-lab) Resave timeline notebook with kermit-lab kernelspec
Resolve architecture-review cleanups ([#60 ](#60 ))
(algos) Drop four dependencies the crate never used
Run kermit-lab tests with the real-binary contract test
Cache uv in the kermit-lab job
(release) Stop publishing to crates.io
You can’t perform that action at this time.