rabbit-slide-kou-biopackathon-2022-4 2022.4.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4543d7a43598772f7fe641d9193863658514b9b708e6886b8a6516a34f5c5f28
4
+ data.tar.gz: d9c0e02757f071aedd27c4f45b79a59e517a041dcccd38c7d0dd2c6426c23603
5
+ SHA512:
6
+ metadata.gz: 7edbf7a4cd4d854c062e49d8fd807bd9595fb98e3acacc68b0b24f39303a67b17b428ae92aaf07fba06546a5decd3b5e64a5d4156c46eb00ffaf80aed42aa49e
7
+ data.tar.gz: 98dde2e6758db49eee89f3b787948cd82d5807f15aefe8e0f98173eb46ce5bd375f4b91141d9928309bba97ef430d485dffc5d8a182772d6a96c1b3811d599d1
data/.rabbit ADDED
@@ -0,0 +1,2 @@
1
+ --size 1920,1080
2
+ treefit-packaging.rab
data/README.rd ADDED
@@ -0,0 +1,25 @@
1
+ = Treefitのパッケージング
2
+
3
+ 細胞分化の軌跡推定に関するソフトウェアTreefitのパッケージまわりについ
4
+ て紹介します。
5
+
6
+ == 作者向け
7
+
8
+ === 表示
9
+
10
+ rake
11
+
12
+ === 公開
13
+
14
+ rake publish
15
+
16
+ == 閲覧者向け
17
+
18
+ === インストール
19
+
20
+ gem install rabbit-slide-kou-biopackathon-2022-4
21
+
22
+ === 表示
23
+
24
+ rabbit rabbit-slide-kou-biopackathon-2022-4.gem
25
+
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ spec.add_runtime_dependency("rabbit-theme-clear-code")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: biopackathon-2022-4
3
+ base_name: treefit-packaging
4
+ tags:
5
+ - rabbit
6
+ - treefit
7
+ presentation_date: 2022-04-13
8
+ version: 2022.4.13.0
9
+ licenses:
10
+ - CC-BY-SA-4.0
11
+ slideshare_id:
12
+ speaker_deck_id:
13
+ vimeo_id:
14
+ youtube_id:
15
+ width: 1920
16
+ height: 1080
17
+ source_code_uri:
18
+ author:
19
+ markup_language: :rd
20
+ name: 須藤功平
21
+ email: kou@clear-code.com
22
+ rubygems_user: kou
23
+ slideshare_user: kou
24
+ speaker_deck_user:
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,259 @@
1
+ = Treefitのパッケージング
2
+
3
+ : author
4
+ 須藤功平
5
+ : institution
6
+ 株式会社クリアコード
7
+ : content-source
8
+ Bio"Pack"athon 2022 #4
9
+ : date
10
+ 2022-04-13
11
+ : allotted-time
12
+ 20m
13
+ : start-time
14
+ 2022-04-13T16:30:00+09:00
15
+ : end-time
16
+ 2022-04-13T16:50:00+09:00
17
+ : theme
18
+ clear-code
19
+
20
+ = 自己紹介
21
+
22
+ * 須藤功平
23
+ * 株式会社クリアコード代表取締役
24
+ * フリーソフトウェア開発者
25
+ * TreefitのR版・Python版パッケージの\n
26
+ 開発者・メンテナー
27
+
28
+ # image
29
+ # src = images/github-public-contributions-ranking-kou-2022-03.png
30
+ # relative-width = 50
31
+ # align = right
32
+ # vertical-align = top
33
+ # relative-margin-right = -10
34
+ # relative-margin-bottom = 0.5
35
+ # caption = https://github.com/gayanvoice/top-github-users/blob/main/markdown/public_contributions/japan.md
36
+ # caption-font-size = 1
37
+
38
+ = バックグラウンド
39
+
40
+ * バイオ関連のバックグラウンドはない
41
+ * PythonとRは日常使いしていない
42
+ * Pythonのパッケージを作ったことはあった
43
+ * Rのパッケージは作ったことがなかった
44
+ * C・C++・Rubyをよく使うしパッケージも作っている
45
+ * データ関連ではApache Arrowの現PMC chair
46
+
47
+ = 今日の話
48
+
49
+ * Python・Rのパッケージングの実例紹介
50
+ * どんなツールを使っているか
51
+ * どうメンテナンスしているか
52
+ * よさそう!と思ったところは参考にしてね
53
+
54
+ = Treefitの立ち位置
55
+
56
+ * 応用ではなく基盤となる機能を提供
57
+ * 細胞分化の軌跡推定という応用を想定しているが\n
58
+ 木っぽさの指標を与えるというのは汎用的
59
+ * 細胞分化の軌跡推定に限らず使って欲しい
60
+
61
+ = Treefitのパッケージの方針
62
+
63
+ * できるだけ依存関係を少なく
64
+ * 依存関係が多いほど他のパッケージと競合しやすい
65
+ * 導入の障壁を減らしてユーザーを増やしたい
66
+ * メンテナンスコストも上がる
67
+ * 依存するパッケージはデファクトのものを
68
+ * 著名パッケージと統合されていると使いやすい\n
69
+ 例:PythonでのNumPy
70
+
71
+ = Treefitの研究プロセス
72
+
73
+ (1) アイディアを実験する
74
+ (2) 実験結果を元にディスカッション\n
75
+ (('note:よい成果がでるまで1., 2.を繰り返す'))
76
+ (3) よい成果がでたアイディアをリリース\n
77
+ (('note:この1年で次のリリースをできるかも?'))
78
+
79
+ = Treefitの研究チーム
80
+
81
+ * 早水先生・鈴木さん・石井さん
82
+ * 生物・数学などに詳しい人たち
83
+ * 担当:アルゴリズム考案(1.と2.)
84
+ * 須藤
85
+ * プログラミングとかパッケージング一般に詳しい人
86
+ * 担当:パッケージング(3.)
87
+
88
+ = コードベース
89
+
90
+ (1) 実験用コードベース
91
+ * 非公開:Jupyter Notebookベース
92
+ * 必要なら便利なものはバンバン使う
93
+ * Haskellを使っていたこともある
94
+ (2) リリース用コードベース
95
+ * 公開:((<URL:https://github.com/hayamizu-lab/>))
96
+ * 前述の方針で1.を元に実装
97
+
98
+ = Treefitパッケージの実装
99
+
100
+ * アルゴリズムが洗練されているので\n
101
+ 実装は非常にコンパクト\n
102
+ (('note:(コメントを抜くと500行程度)'))
103
+ * R版の依存パッケージ
104
+ * 演算:igraph, pracma
105
+ * 可視化:ggplot2, patchwork
106
+
107
+ = Treefitのドキュメント
108
+
109
+ * ユーザー獲得のために重視!
110
+ * 全体のデザイン:今どきっぽく
111
+ * チュートリアル:
112
+ * 図とサンプルコードをたっぷり
113
+ * リファレンス:網羅
114
+
115
+ = ドキュメントのデザイン:R版
116
+
117
+ # image
118
+ # src = images/treefit-r-pkgdown.png
119
+ # relative-width = 30
120
+ # align = right
121
+ # vertical-align = top
122
+ # relative-margin-right = -10
123
+
124
+ (('tag:center'))
125
+ ((*pkgdown*))
126
+
127
+ * なんかシュッとしていてキレイ
128
+ * いろんなRのパッケージで使われている
129
+ * vignetteやRoxygenも含めて\n
130
+ サイト一式を生成できる
131
+
132
+ = ドキュメントのデザイン:Python版
133
+
134
+ # image
135
+ # src = images/treefit-python-sphinx.png
136
+ # relative-width = 30
137
+ # align = right
138
+ # vertical-align = top
139
+ # relative-margin-right = -10
140
+
141
+ (('tag:center'))
142
+ ((*Sphinx*))
143
+
144
+ * Read the Docsテーマ
145
+ * よく見るやつ
146
+ * 今ならPyData Sphinxテーマを使う
147
+ * 追加文書やdocstringも含めて\n
148
+ サイト一式を生成できる
149
+
150
+ = チュートリアル
151
+
152
+ # image
153
+ # src = images/treefit-r-tutorial.png
154
+ # relative-width = 30
155
+ # align = right
156
+ # vertical-align = top
157
+ # relative-margin-right = -10
158
+
159
+ * 図をたっぷり
160
+ * 研究者が論文を読むときは\n
161
+ まずざっと図を眺める
162
+ * サンプルコードをたっぷり
163
+ * リファレンスを見なくても使えるくらい
164
+
165
+ = リファレンス
166
+
167
+ # image
168
+ # src = images/treefit-r-reference.png
169
+ # relative-width = 30
170
+ # align = right
171
+ # vertical-align = top
172
+ # relative-margin-right = -10
173
+
174
+ * 最低限:網羅する
175
+ * どんな公開APIがあるかわかる
176
+ * 使用例と実行結果をつける
177
+ * 文章での説明よりピンとくる
178
+
179
+ = ドキュメントのデプロイ
180
+
181
+ * GitHub Pages
182
+ * 各プロジェクトごとにWebページを管理できる
183
+ * github.com/hayamizu-lab/treefit-r/ →\n
184
+ hayamizu-lab.github.io/treefit-r/
185
+ * github.com/hayamizu-lab/treefit-python/ →\n
186
+ hayamizu-lab.github.io/treefit-python/
187
+ * タグを打ったらCIでデプロイ
188
+ * 未設定\n
189
+ (('note:難しくないのでメンテナンスコストを減らすためにやったほうがよい'))
190
+
191
+ = Treefitのテスト
192
+
193
+ * CIを整備する
194
+ * GitHub Actionsを使用
195
+ * Linux/macOS/Windowsでテストできるのがうれしい
196
+ * CRANへのsubmitには複数環境でのテストが必須!
197
+ * Winbuilder/R-hubとの使い分け
198
+ * CRANへのsubmit前のチェックだけ
199
+ * 通常はGitHub ActionsのCIでチェック
200
+
201
+ = Treefitのパッケージ登録
202
+
203
+ * Rは難しい
204
+ * CRANへのsubmit後にレビューがあるから
205
+ * Pythonは難しくない
206
+ * (({twine upload}))ですぐにPyPIに反映
207
+
208
+ = CRANへのパッケージ登録・更新
209
+
210
+ * (('note:((<URL:https://blog.atusy.net/2019/06/28/cran-submission/>))'))か\n
211
+ (('note:((<URL:https://cran.r-project.org/web/packages/policies.html>))'))を読む
212
+ * 忘れるので毎回読んでいる
213
+ * devtools::release()とかdevtools::*()を\n
214
+ 使ってsubmit
215
+ * ↑も忘れるのでRakefileに書いてある\n
216
+ (('note:Rで書くべきなんだろうけど。。。'))
217
+
218
+ = Treefitのメンテナンス
219
+
220
+ * CRANでのパッケージの維持
221
+ * GitHubでのフィードバック対応
222
+
223
+ = CRANでのパッケージの維持
224
+
225
+ * パッケージが削除されることがある!
226
+ * 公開してから2年で2回あった
227
+ * 原因:関連ライブラリーの非互換な更新
228
+ * 原因:CRANのテスト環境の更新
229
+ * 削除される前にCRANから連絡がある
230
+ * 少なくとも1回目はあった
231
+ * 2回目は気づかなかった\n
232
+ (('note:もしかしたら連絡がなかったのかも。。。'))
233
+
234
+ = CRANでパッケージが削除されたら
235
+
236
+ * 問題を修正してバージョンアップ
237
+ * 1回目のsubmitよりは早く処理してもらえる\n
238
+ (('note:気がする'))
239
+ * 2回目以降は差分を中心にレビューしているから?
240
+ * CIがあるとマジ助かる!
241
+ * 数ヶ月単位で実装を触らない期間があるから
242
+
243
+ = GitHubでのフィードバック対応
244
+
245
+ * (('note:((<URL:https://github.com/hayamizu-lab/treefit-r/issues/1>))'))
246
+ * 露崎さんが問題を報告してくれた!
247
+ * pull requestへの誘導とレビュー・マージ
248
+ * CRANへのsubmit
249
+ * みんなも使って気になることがあったら\n
250
+ 報告してね!
251
+
252
+ = 今日の話
253
+
254
+ * Python・Rのパッケージングの実例紹介
255
+ * どんなツールを使っているか
256
+ * どうメンテナンスしているか
257
+ * よさそう!と思ったところは参考にしてね
258
+ * 経験を積みたいならTreefitの研究・開発に\n
259
+ 参加するといいかも!
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-kou-biopackathon-2022-4
3
+ version: !ruby/object:Gem::Version
4
+ version: 2022.4.13.0
5
+ platform: ruby
6
+ authors:
7
+ - 須藤功平
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-04-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rabbit-theme-clear-code
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: |-
42
+ 細胞分化の軌跡推定に関するソフトウェアTreefitのパッケージまわりについ
43
+ て紹介します。
44
+ email:
45
+ - kou@clear-code.com
46
+ executables: []
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - ".rabbit"
51
+ - README.rd
52
+ - Rakefile
53
+ - config.yaml
54
+ - images/github-public-contributions-ranking-kou-2022-03.png
55
+ - images/treefit-python-sphinx.png
56
+ - images/treefit-r-pkgdown.png
57
+ - images/treefit-r-reference.png
58
+ - images/treefit-r-tutorial.png
59
+ - pdf/biopackathon-2022-4-treefit-packaging.pdf
60
+ - treefit-packaging.rab
61
+ homepage: https://slide.rabbit-shocker.org/authors/kou/biopackathon-2022-4/
62
+ licenses:
63
+ - CC-BY-SA-4.0
64
+ metadata: {}
65
+ post_install_message:
66
+ rdoc_options: []
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ requirements: []
80
+ rubygems_version: 3.4.0.dev
81
+ signing_key:
82
+ specification_version: 4
83
+ summary: Treefitのパッケージング
84
+ test_files: []