4.2 KiB
CurrentModule = PSBoardDataBase
Index
Pages = ["about_software.md"]
Depth = 4
このリポジトリのソフトウェアについての説明
このリポジトリにあるのは、JATHub masterのログファイル、及びGoogle SheetsからエクスポートしたCSVファイルからデータベースを作成するためのコードである。
メインの関数はcreate_database_from_exported_csvs
である。
!!! info
TLDR;
データベースがほしいときは_Masterのログ_と_Slaveのログ_を用意して、create_database_from_exported_csvs
julia create_database_from_exported_csvs( "database_name.db"; masterlog_dir = "dir/to/master/logs", slavelog_dir = "dir/to/slave/logs" )
動かし方
Juliaはjuliaupでインストールする。
リポジトリのルート(Project.toml
がある)で
$ julia --project
をするとJuliaのREPLが立ち上がる。
]
をおしてPkg
モードに入り、instantiate
を実行すると、必要なパッケージを自動でインストールする。
backspaceでjulianモードに戻り(左側がjulia>
になってる)、using PSBoardDataBase
をすると使えるようになる。
?
を押すとhelpモードに入り、関数名などをいれるとそのドキュメント(下にあるものと同じ)が閲覧できる。
PSBoardDataBase.create_database_from_exported_csvs
を検索すると使い方がわかる。
テストについて
テストでは実際にデータベースを作成している。
デフォルトでは全部は実行しないが、master logとslave logをおき、かつ環境変数LOCAL_TEST
を設定することで、すべての工程を実行できる。1
用意するものの詳細は下に書いてある。
Pkgモード(]
を押す)でtest
とうつと実行できる。
環境変数の設定はENV["LOCAL_TEST"] = "1"
とでも書く。
自動でsqlite browserを開く設定になっている。
Master logを用意する
start-shiftwork
が生成するログファイル(同じリポジトリの../log
のところ、通常はJATHub Masterにある)をtest/input/
以下に置く。
以下のようにする。
$ tree -L 2 test/input/
test/input/
└── log
├── 100.log
├── 101_long.log
├── 102_long.log
├── 103.log
├── 104_long.log
├── 105.log
├── 106_long.log
├── 107.log
├── 108_long.log
├── 109_long.log
├── 110.log
...
Slave logを用意する
同様にJATHub slaveで作られるログも用意する。 これはskewを抽出するのに使われる。 最悪なくてもいいのでそのときは空のディレクトリを関数に渡す。
tree -L 2 test/input/slavelogs/ | head -n 10
test/input/slavelogs/
└── main
├── 101_28_longrun.txt
├── 101_29.txt
├── 101_29_clk.txt
├── 103_28_longrun.txt
├── 103_29.txt
├── 103_29_clk.txt
├── 103_89.txt
├── 103_89_clk.txt
Coverage Reportの出し方
using LocalCoverage
html_coverage(generate_coverage(), open = true)
Full testのほうが当然だがcoverageが高くなる。
新しいQAQCキャンペーン時に更新すべき内容
PSBoardDataBase.insert_qaqc_campaign_id
: キャンペーンの日時PSBoardDataBase.get_campaign_id_from_run_id
: runidとの関係
API
Modules = [PSBoardDataBase]
QaqcMasterLog
Modules = [QaqcMasterLog]
DownloadCSVs
Modules = [DownloadCSVs]
ClockParser
Modules = [ClockParser]
SlaveLogParser
部分的な実装。 そして活用も部分的。
Modules = [SlaveLogParser]
DispatchChecker
Modules = [DispatchChecker]
-
master log fileはgitには入れたくないので、このような形態をとっている。 ↩︎