mirror of
https://gitlab.cern.ch/wotsubo/PSBoardDataBase.git
synced 2025-06-08 05:55:42 +09:00
152 lines
4.1 KiB
Markdown
152 lines
4.1 KiB
Markdown
```@meta
|
|
CurrentModule = PSBoardDataBase
|
|
```
|
|
|
|
# Index
|
|
|
|
```@contents
|
|
Pages = ["about_software.md"]
|
|
Depth = 4
|
|
```
|
|
|
|
# このリポジトリのソフトウェアについての説明
|
|
|
|
このリポジトリにあるのは、JATHub masterのログファイル、及びGoogle SheetsからエクスポートしたCSVファイルからデータベースを作成するためのコードである。
|
|
メインの関数は[`create_database`](@ref)である。
|
|
|
|
!!! info
|
|
**TLDR**;
|
|
データベースがほしいときは_Masterのログ_と_Slaveのログ_を用意して、[`create_database`](@ref)
|
|
```julia
|
|
create_database(
|
|
"database_name.db";
|
|
masterlog_dir = "dir/to/master/logs",
|
|
slavelog_dir = "dir/to/slave/logs"
|
|
)
|
|
```
|
|
|
|
## 動かし方
|
|
[Julia](https://julialang.org)は[juliaup](https://github.com/JuliaLang/juliaup)でインストールする。
|
|
リポジトリのルート(`Project.toml`がある)で
|
|
```
|
|
$ julia --project
|
|
```
|
|
をするとJuliaのREPLが立ち上がる。
|
|
|
|
`]`をおして`Pkg`モードに入り、`instantiate`を実行すると、必要なパッケージを自動でインストールする。
|
|
|
|
backspaceでjulianモードに戻り(左側が`julia>`になってる)、`using PSBoardDataBase`をすると使えるようになる。
|
|
|
|
`?`を押すとhelpモードに入り、関数名などをいれるとそのドキュメント(下にあるものと同じ)が閲覧できる。
|
|
|
|
`PSBoardDataBase.create_database`を検索すると使い方がわかる。
|
|
|
|
# テストについて
|
|
|
|
テストでは実際にデータベースを作成している。
|
|
デフォルトでは全部は実行しないが、master logとslave logをおき、かつ環境変数`LOCAL_TEST`を設定することで、すべての工程を実行できる。[^1]
|
|
用意するものの詳細は下に書いてある。
|
|
|
|
Pkgモード(`]`を押す)で`test`とうつと実行できる。
|
|
環境変数の設定は`ENV["LOCAL_TEST"] = "1"`とでも書く。
|
|
自動でsqlite browserを開く設定になっている。
|
|
|
|
[^1]: master log fileはgitには入れたくないので、このような形態をとっている。
|
|
|
|
## Master logを用意する
|
|
|
|
[`start-shiftwork`](https://gitlab.cern.ch/dhashimo/PS_Board_QAQC/-/blob/master/Software_Test/ShiftWorks/script/start-shiftwork?ref_type=heads)が生成するログファイル(同じリポジトリの`../log`のところ、通常はJATHub Masterにある)を`test/input/`以下に置く。
|
|
以下のようにする。
|
|
|
|
```sh
|
|
$ 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を抽出するのに使われる。
|
|
最悪なくてもいいのでそのときは空のディレクトリを関数に渡す。
|
|
|
|
```sh
|
|
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の出し方
|
|
|
|
```julia
|
|
using LocalCoverage
|
|
html_coverage(generate_coverage(), open = true)
|
|
```
|
|
Full testのほうが当然だがcoverageが高くなる。
|
|
|
|
# 新しいQAQCキャンペーン時に更新すべき内容
|
|
|
|
- [`PSBoardDataBase.insert_qaqc_campaign_id`](@ref): キャンペーンの日時
|
|
- [`PSBoardDataBase.get_campaign_id_from_run_id`](@ref): runidとの関係
|
|
|
|
# API
|
|
|
|
```@index
|
|
```
|
|
|
|
```@autodocs
|
|
Modules = [PSBoardDataBase]
|
|
```
|
|
|
|
## `QaqcMasterLog`
|
|
|
|
```@autodocs
|
|
Modules = [QaqcMasterLog]
|
|
```
|
|
|
|
## `DownloadCSVs`
|
|
|
|
```@autodocs
|
|
Modules = [DownloadCSVs]
|
|
```
|
|
|
|
## `ClockParser`
|
|
|
|
```@autodocs
|
|
Modules = [ClockParser]
|
|
```
|
|
|
|
## `SlaveLogParser`
|
|
|
|
部分的な実装。
|
|
そして活用も部分的。
|
|
|
|
```@autodocs
|
|
Modules = [SlaveLogParser]
|
|
```
|
|
|
|
## `DispatchChecker`
|
|
|
|
```@autodocs
|
|
Modules = [DispatchChecker]
|
|
```
|