Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
cc4ff5f
Plan: CCDB 2.5 AI-readiness program (PHASE-A0 to A5)
DraTeots Nov 3, 2026
0c1d9cd
Readiness profile: ccdb.readiness.profile counts metadata, history an…
DraTeots Nov 3, 2026
2ba41b4
CLI: `ccdb db readiness [--stale-years N] [--json]` prints the readin…
DraTeots Nov 3, 2026
575bb68
HTTP API: GET /api/v1/readiness serves the readiness profile, cached …
DraTeots Nov 3, 2026
2b0a4ca
MCP: the `readiness(stale_years)` tool answers the readiness profile
DraTeots Nov 3, 2026
380cdea
Web GUI: /readiness shows the readiness profile with one bar per share
DraTeots Nov 3, 2026
f861e8e
Docs: the AI readiness page and `db readiness` in the CLI and HTTP AP…
DraTeots Nov 3, 2026
5328448
Plan: the record of resolved assignments is off by default (EnableUsa…
DraTeots Nov 3, 2026
d1f25a0
Usage record: which assignment each request resolved to, off by default
DraTeots Nov 3, 2026
1987cf5
JANA2 service: startup log with a warning, and ccdb:provenance writes…
DraTeots Nov 3, 2026
85b7623
CLI: `ccdb provenance FILE.json [--tag]` checks a job's record agains…
DraTeots Nov 3, 2026
8946e6e
Docs: what a job resolved, in the JANA2, C++, Python and CLI pages
DraTeots Nov 3, 2026
0811006
Tags carry properties: `prop set @NAME KEY VALUE`, shown by tag, info…
DraTeots Nov 4, 2026
2bf5700
CLI: `ccdb export tag @NAME -o DIR` writes a tag as a SQLite file, it…
DraTeots Nov 4, 2026
76c7f77
C++: the [export] test opens a tag exported by `ccdb export tag`
DraTeots Nov 4, 2026
7c42ef7
Tag export: the instance contact is the ContactPerson of the DataCite…
DraTeots Nov 4, 2026
111c47e
Docs: tag properties and the export of a tag
DraTeots Nov 4, 2026
3cf4fef
UCUM units: ccdb.ucum checks them, mktbl warns, the profile counts them
DraTeots Nov 4, 2026
7daaac6
Property vocabulary: prop set warns outside it, --free, property_name…
DraTeots Nov 4, 2026
0629210
Data cards as schema.org Dataset: /card?format=jsonld and a JSON-LD b…
DraTeots Nov 4, 2026
7f08fdd
Docs: UCUM units, the property vocabulary and JSON-LD cards
DraTeots Nov 4, 2026
7b4eadc
Example: Great Expectations checks a Parquet export of a CCDB table
DraTeots Nov 4, 2026
99c966e
Docs: checks with Great Expectations, and the AI-ready items of the i…
DraTeots Nov 4, 2026
1bbbda6
Plan: the state of the program and its deviations from the phases as …
DraTeots Nov 4, 2026
d069e4f
Docs check: vocabulary_table.py loads ccdb/vocabulary.py by path, so …
DraTeots Nov 4, 2026
a2d5726
JSON-LD url from the instance property, and the MySQL C++ job exports…
DraTeots Nov 4, 2026
3021116
Docs: the GlueX AI-readiness study cited by its arXiv authors and id …
DraTeots Nov 4, 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
25 changes: 25 additions & 0 deletions .github/workflows/cli-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,31 @@ jobs:
ccdb db stats
ccdb db stats | grep "Num shared constant sets" > /dev/null

- name: ccdb db readiness (text and JSON)
run: |
ccdb db readiness
ccdb db readiness | grep "columns with units" > /dev/null
ccdb db readiness --stale-years 2 --json | python -c "import json, sys; p = json.load(sys.stdin); assert p['config']['stale_years'] == 2, p['config']"

- name: ccdb provenance (a true record passes; another hash exits 1)
run: |
echo '[{"request": "/test/test_vars/test_table:100:default", "path": "/test/test_vars/test_table", "run": 100, "variation": "default", "time": "", "tag": "", "assignment_id": 4, "sha256": "55d35b501c1a5775b00fe77c00e7195ebe4d0b1b513ec0948d60df9cba239346"}]' > record.json
ccdb provenance record.json
sed 's/"sha256": "55/"sha256": "00/' record.json > changed.json
set +e
ccdb provenance changed.json
code=$?
set -e
test "$code" -eq 1

- name: ccdb db readiness refuses a negative window (exit 1)
run: |
set +e
ccdb db readiness --stale-years -1
code=$?
set -e
test "$code" -eq 1

- name: ccdb db upgrade refuses a schema 6 database (exit 1)
run: |
set +e
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/cpp-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ jobs:
CCDB_TEST_FIXTURE_CONNECTION: "sqlite:///${{ github.workspace }}/ccdb_fixture.sqlite"
# The time resolution cases of testdata/time (docs/concepts/time.md); required under CI
CCDB_TEST_TIME_SQLITE_CONNECTION: "sqlite:///${{ github.workspace }}/time_tests.sqlite"
# A tag of the time database exported by `ccdb export tag`, read by the [export] test
CCDB_TEST_EXPORT_SQLITE: "${{ github.workspace }}/export/tag_b.sqlite"

steps:
- uses: actions/checkout@v7
Expand Down Expand Up @@ -42,6 +44,9 @@ jobs:
- name: Build the time resolution database
run: python scripts/time/make_time_db.py "$CCDB_TEST_TIME_SQLITE_CONNECTION"

- name: Export a tag of it (ccdb export tag)
run: ccdb -c "$CCDB_TEST_TIME_SQLITE_CONNECTION" export tag @tag_b -o "$GITHUB_WORKSPACE/export"

- name: Configure
run: cmake -S cpp -B cpp/build -DCMAKE_BUILD_TYPE=Release

Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/mysql-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,11 @@ jobs:
tests.unit_test_tags
tests.unit_test_deprecation
tests.unit_test_properties
tests.unit_test_readiness
tests.unit_test_usage_record
tests.unit_test_provenance
tests.unit_test_export_tag
tests.unit_test_ucum
tests.unit_test_units
tests.unit_test_tags_mysql
tests.unit_test_time_zone_mysql
Expand Down Expand Up @@ -175,6 +180,8 @@ jobs:
# The time resolution cases of testdata/time on both engines (docs/concepts/time.md)
CCDB_TEST_TIME_SQLITE_CONNECTION: "sqlite:///${{ github.workspace }}/time_tests.sqlite"
CCDB_TEST_TIME_MYSQL_CONNECTION: mysql://ccdb_user@127.0.0.1:3306/ccdb_test_time
# A tag of the MySQL time database exported by `ccdb export tag`, read by the [export] test
CCDB_TEST_EXPORT_SQLITE: "${{ github.workspace }}/export/tag_b.sqlite"
# Schema 5 databases, upgraded and then deduplicated, for the later runs of the suite
UPGRADED_MYSQL_CONNECTION: mysql://ccdb_user@127.0.0.1:3306/ccdb_test_upgraded
UPGRADED_SQLITE_CONNECTION: "sqlite:///${{ github.workspace }}/cpp_test_upgraded.sqlite"
Expand Down Expand Up @@ -219,6 +226,9 @@ jobs:
python scripts/time/make_time_db.py "$CCDB_TEST_TIME_SQLITE_CONNECTION"
python scripts/time/make_time_db.py "$CCDB_TEST_TIME_MYSQL_CONNECTION"

- name: Export a tag of the MySQL time database (ccdb export tag)
run: ccdb -c "$CCDB_TEST_TIME_MYSQL_CONNECTION" export tag @tag_b -o "$GITHUB_WORKSPACE/export"

# Full C++ suite: the [mysql]-tagged cases (excluded from the cpp-tests
# workflow) AND the SQLite cases - both env vars point at seeded databases
- name: Run full C++ test suite
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/python-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ jobs:
- name: Create database (ccdb db init)
run: ccdb db init --init-i-am-sure

# Runs first, on the standard test content, before other examples add versions. This step installs
# Great Expectations, which is no dependency of CCDB (docs/apis/analysis.md)
- name: example_expectations_parquet (Great Expectations on a Parquet export)
working-directory: python
run: |
pip install "${GITHUB_WORKSPACE}[export]" "great_expectations>=1,<2"
python examples/example_expectations_parquet.py

- name: example_llapi_readout
working-directory: python
run: python examples/example_llapi_readout.py
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ jobs:
tests.unit_test_tags
tests.unit_test_deprecation
tests.unit_test_properties
tests.unit_test_readiness
tests.unit_test_usage_record
tests.unit_test_provenance
tests.unit_test_export_tag
tests.unit_test_ucum
tests.unit_test_units
tests.unit_test_metadata_files

Expand Down
Loading
Loading