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
*.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.
- Docs: add index page for published notebooks
- Added converter git version info (`git describe --dirty`) to the database and JLD2 cache.
### Changed

View file

@ -104,7 +104,7 @@ function create_database(
jldopen(jld2_slavelog_path, "w")
end
insert_version_info(db)
insert_version_info(db, jld2_slavelog)
insert_qaqc_campaign_id(db)
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.
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(
db,
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(
stmt_insert_version,
(; converter = pkgversion(@__MODULE__) |> string),
(;
converter = pkgversion(@__MODULE__) |> string,
converter_git = converter_git_describe,
),
)
jld2_slavelog["meta"] = converter_git_describe
nothing
end

View file

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

View file

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