Add converter version info to db and jld2 cache

This commit is contained in:
Wataru Otsubo 2025-01-27 10:04:46 +01:00
parent c87cc47232
commit 3a3f7a53f8
6 changed files with 24 additions and 8 deletions

2
.gitignore vendored
View file

@ -1 +1,3 @@
docs/build docs/build
*.db
*.jld2

View file

@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `create_database`(formally `create_database_from_exported_csvs`) now can save a JLD2 cache to store parsed slave logs. - `create_database`(formally `create_database_from_exported_csvs`) now can save a JLD2 cache to store parsed slave logs.
- Docs: add index page for published notebooks - Docs: add index page for published notebooks
- Added converter git version info (`git describe --dirty`) to the database and JLD2 cache.
### Changed ### Changed

View file

@ -104,7 +104,7 @@ function create_database(
jldopen(jld2_slavelog_path, "w") jldopen(jld2_slavelog_path, "w")
end end
insert_version_info(db) insert_version_info(db, jld2_slavelog)
insert_qaqc_campaign_id(db) insert_qaqc_campaign_id(db)
insert_qaqc_positions(db, jathubs_table) insert_qaqc_positions(db, jathubs_table)

View file

@ -1,20 +1,32 @@
""" """
insert_version_info(db::SQLite.DB) insert_version_info(db::SQLite.DB, jld2_slavelog::JLD2.JLDFile)
Insert version information of this software as string. Insert version information of this software as string.
In `db`, these are located in `versions` table and in JLD2 cache, they are located in "meta".
""" """
function insert_version_info(db::SQLite.DB) function insert_version_info(db::SQLite.DB, jld2_slavelog::JLD2.JLDFile)
stmt_insert_version = DBInterface.prepare( stmt_insert_version = DBInterface.prepare(
db, db,
sql""" sql"""
INSERT INTO versions VALUES (:converter) INSERT INTO versions VALUES (:converter, :converter_git)
""", """,
) )
@info "converter version info" pkgversion(@__MODULE__) |> string converter_git_describe = try
read(`git describe --dirty`, String)
catch e
@warn "Failed to get git describe: $e"
""
end
@info "converter version info" converter = pkgversion(@__MODULE__) |> string converter_git_describe
DBInterface.execute( DBInterface.execute(
stmt_insert_version, stmt_insert_version,
(; converter = pkgversion(@__MODULE__) |> string), (;
converter = pkgversion(@__MODULE__) |> string,
converter_git = converter_git_describe,
),
) )
jld2_slavelog["meta"] = converter_git_describe
nothing nothing
end end

View file

@ -1,5 +1,6 @@
CREATE TABLE versions ( CREATE TABLE versions (
converter TEXT converter TEXT,
converter_git TEXT
); );
CREATE TABLE ps_boards ( CREATE TABLE ps_boards (

View file

@ -206,7 +206,7 @@ true || include("../src/PSBoardDataBase.jl")
jld2_slavelog = jldopen(jld2path, "w") jld2_slavelog = jldopen(jld2path, "w")
@info "" db jld2_slavelog @info "" db jld2_slavelog
@test PSBoardDataBase.insert_version_info(db) |> isnothing @test PSBoardDataBase.insert_version_info(db, jld2_slavelog) |> isnothing
let stmt let stmt
stmt = DBInterface.prepare( stmt = DBInterface.prepare(
db, db,