rabbit-slide-kenhys-debconf2020-online 2020.08.25.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rabbit +1 -0
- data/README.md +14 -0
- data/Rakefile +17 -0
- data/cfp.md +22 -0
- data/config.yaml +22 -0
- data/debconf2020-online.md +383 -0
- data/images/345px-Jean-henri_fabre.jpg +0 -0
- data/images/bugs-d-o.png +0 -0
- data/images/easy-to-find-no-one-working.png +0 -0
- data/images/easy-to-send-control-email.png +0 -0
- data/images/easy-to-view-blocking.png +0 -0
- data/images/fabre-dashboards.png +0 -0
- data/images/fabre-internals.png +0 -0
- data/images/fabre-internals.svg +948 -0
- data/images/libappindicator-blocked-by.png +0 -0
- data/images/libdbus-glib-blocked-by.png +0 -0
- data/images/logo-combination-standard.svg +255 -0
- data/images/profile.png +0 -0
- data/images/udd-blocking-and-usertag.png +0 -0
- data/images/user-tag-ayatana-appindicator.png +0 -0
- data/old.pdf +0 -0
- data/pdf/debconf2020-online-debconf2020-online.pdf +0 -0
- data/presentation-memo.md +390 -0
- data/theme.rb +3 -0
- metadata +81 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7c4a6656a968b56fb12bbac07cdf2ac7cd7bde498bebfd7fd2ed490ae1f2e18e
|
4
|
+
data.tar.gz: cf839104319c975ed6420c4150ce5a97690ab5ae9cdfd2a180a2870d14d82438
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 63418802b608c1429ebbdb1995a9580b9cd44b10df3920720164ff35bb6c9046d346db7133b38f2073449bd89db8006748468012b02f329f98dde6ea1b8115a2
|
7
|
+
data.tar.gz: 5760305af4357bd4a1b62769264a1f68147f29331f32913f9a2cd8ed56fc3691ff98ab97ea54c00f3770a19bbb0fbecb2692721f14def421175de48d32f2af08
|
data/.rabbit
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
debconf2020-online.md
|
data/README.md
ADDED
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-YOUR-THEME")
|
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/cfp.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Experiment about Debian's bug tracking front-end
|
2
|
+
|
3
|
+
### Experiment about Debian's bug tracking front-end
|
4
|
+
|
5
|
+
Debian has a bug tracking system and bugs.debian.org is a key infrastructure for Debian project.
|
6
|
+
It tracks many reports and the bug number is assigned to each reports.
|
7
|
+
You can view such a report via https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=NNNNNN.
|
8
|
+
|
9
|
+
This bug tracking mechanism is working well for a long time.
|
10
|
+
It is very cool but it may be not friendly for newcomers.
|
11
|
+
|
12
|
+
#### Target audience
|
13
|
+
|
14
|
+
* Debian contributor or maintainer who want to fix bugs not only the bugs which
|
15
|
+
is related to maintained packages by you
|
16
|
+
|
17
|
+
It may not interesting for Debian developer because DD is already familiar with bugs.debian.org.
|
18
|
+
|
19
|
+
#### What will talk about
|
20
|
+
|
21
|
+
In this session, I’ll talk about one experiment about Debian's bug tracking mechanism.
|
22
|
+
It is constructed on traditional E-mail archives and simple front-end for it.
|
data/config.yaml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
id: debconf2020-online
|
3
|
+
base_name: debconf2020-online
|
4
|
+
tags: []
|
5
|
+
presentation_date:
|
6
|
+
presentation_start_time:
|
7
|
+
presentation_end_time:
|
8
|
+
slideshare_id:
|
9
|
+
version: 2020.08.25.1
|
10
|
+
licenses:
|
11
|
+
- CC-BY-SA-4.0
|
12
|
+
slideshare_id: kenhys
|
13
|
+
speaker_deck_id:
|
14
|
+
vimeo_id:
|
15
|
+
youtube_id:
|
16
|
+
author:
|
17
|
+
markup_language: :rd
|
18
|
+
name: Kentaro Hayashi
|
19
|
+
email: kenhys@gmail.com
|
20
|
+
rubygems_user: kenhys
|
21
|
+
slideshare_user: kenhys
|
22
|
+
speaker_deck_user:
|
@@ -0,0 +1,383 @@
|
|
1
|
+
# An experiment about personalized front-end of bugs.debian.org
|
2
|
+
|
3
|
+
subtitle
|
4
|
+
: E-mail archives + UDD + Simple web front-end = 🤔
|
5
|
+
|
6
|
+
author
|
7
|
+
: Kentaro Hayashi
|
8
|
+
|
9
|
+
institution
|
10
|
+
: ClearCode Inc.
|
11
|
+
|
12
|
+
content-source
|
13
|
+
: DebConf20 online August 25, 2020
|
14
|
+
|
15
|
+
allotted-time
|
16
|
+
: 15m
|
17
|
+
|
18
|
+
theme
|
19
|
+
: .
|
20
|
+
|
21
|
+
# NOTE: Presentation slide is published
|
22
|
+
|
23
|
+
* This presentation slide is available via Rabbit Slide Show
|
24
|
+
* <https://slide.rabbit-shocker.org/authors/kenhys/debconf20-online/>
|
25
|
+
"An experiment about personalized front-end of bugs.debian.org"
|
26
|
+
|
27
|
+
# Personal profile
|
28
|
+
|
29
|
+
![](images/profile.png){:relative-height="40"}
|
30
|
+
|
31
|
+
* Debian Maintainer (@kenhys)
|
32
|
+
* Trackpoint(soft dome) and Wasa beef(Yamayoshi Wasabi Potato Chips) fan
|
33
|
+
* Working for ClearCode Inc.
|
34
|
+
|
35
|
+
# ClearCode Inc.
|
36
|
+
|
37
|
+
![](images/logo-combination-standard.svg){:relative-height="30"}
|
38
|
+
|
39
|
+
* <https://www.clear-code.com/>
|
40
|
+
* Free software is important in ClearCode Inc.
|
41
|
+
* We develop/support software with our free software development experiences
|
42
|
+
* We feedback our business experiences to free software
|
43
|
+
|
44
|
+
# Not talk about
|
45
|
+
|
46
|
+
* Improving bugs.debian.org (debbugs) itself
|
47
|
+
* Explaining bugs.debian.org (debbugs) internal in details
|
48
|
+
|
49
|
+
# Agenda
|
50
|
+
|
51
|
+
* Why so curious about bugs.d.o?
|
52
|
+
* The troublesome cases about bugs.d.o
|
53
|
+
* What is Fabre and why is it needed?
|
54
|
+
* Demonstrate a front-end
|
55
|
+
* Conclusion
|
56
|
+
|
57
|
+
# We use bugs.d.o
|
58
|
+
|
59
|
+
![](images/bugs-d-o.png){:relative-height="100"}
|
60
|
+
|
61
|
+
# Usage of bugs.debian.org - prerequisite
|
62
|
+
|
63
|
+
* Communicate each other by E-mail
|
64
|
+
* Change the bug status by sending E-mail
|
65
|
+
* Send E-mail to control@bugs.d.o
|
66
|
+
* Use control command in E-mail reply
|
67
|
+
|
68
|
+
# Why so curious about bugs.d.o?
|
69
|
+
|
70
|
+
* I've received deprecated notification bugs
|
71
|
+
* Bug# 956770 growl-for-linux: Depends on deprecated libappindicator
|
72
|
+
* Bug# 955899 growl-for-linux: Depends on deprecated dbus-glib
|
73
|
+
|
74
|
+
# How did you fixed?
|
75
|
+
|
76
|
+
* Bug# 956770 growl-for-linux: Depends on deprecated libappindicator
|
77
|
+
* <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=956770>
|
78
|
+
* Migrated to libayatana-indicator
|
79
|
+
* It is easy because there are enough compatibility
|
80
|
+
* I've fixed pkg-config target and include path
|
81
|
+
|
82
|
+
# How did you fixed? (again)
|
83
|
+
|
84
|
+
* Bug# 955899 growl-for-linux: Depends on deprecated dbus-glib
|
85
|
+
* <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955899>
|
86
|
+
* Migrated to GDBus
|
87
|
+
* Use d-feet to detect interface change (Rhythmbox plugin)
|
88
|
+
* Fixed a interface to follow GDBus API
|
89
|
+
* Send PR to upstream <https://github.com/mattn/growl-for-linux/>
|
90
|
+
* Fixed a potential Rhythmbox related bug, too
|
91
|
+
|
92
|
+
# growl-for-linux was fixed
|
93
|
+
|
94
|
+
* But...What about other packages? 🤔
|
95
|
+
|
96
|
+
# What about other packages?
|
97
|
+
|
98
|
+
* libappindicator: deprecated in Debian; AppIndicator based applications, please switch to Ayatana (App)Indicator(s)
|
99
|
+
* <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037>
|
100
|
+
* libdbus-glib-1-dev: is deprecated
|
101
|
+
* <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895291>
|
102
|
+
|
103
|
+
# libappindicator: deprecated in Debian
|
104
|
+
|
105
|
+
![](images/libappindicator-blocked-by.png){:relative-height="80"}
|
106
|
+
|
107
|
+
* Many blocked bugs
|
108
|
+
|
109
|
+
# libdbus-glib-1-dev: is deprecated in Debian
|
110
|
+
|
111
|
+
![](images/libdbus-glib-blocked-by.png){:relative-height="80"}
|
112
|
+
|
113
|
+
* *Too many* blocked bugs (Need to scroll!) 😵
|
114
|
+
|
115
|
+
# How to track many blocked?
|
116
|
+
|
117
|
+
* In this case, UserTags is recommended
|
118
|
+
* <https://wiki.debian.org/bugs.debian.org/usertags>
|
119
|
+
* <https://udd.debian.org/cgi-bin/bts-usertags.cgi>
|
120
|
+
|
121
|
+
# Does it work with libappindicator?
|
122
|
+
|
123
|
+
![](images/user-tag-ayatana-appindicator.png){:relative-height="80"}
|
124
|
+
|
125
|
+
* UserTag is: *ayatana-appindicator*
|
126
|
+
|
127
|
+
# Does it work with libdbus-glib1-dev?
|
128
|
+
|
129
|
+
* It is a case that UserTag is *not available*
|
130
|
+
* It should be tagged...
|
131
|
+
|
132
|
+
# The troublesome cases about bugs.d.o
|
133
|
+
|
134
|
+
* UserTag is not always used
|
135
|
+
* It may be difficult to see many blocked bugs
|
136
|
+
* *How to solve this situation?*
|
137
|
+
|
138
|
+
# Use udd.debian.org!
|
139
|
+
|
140
|
+
![](images/udd-blocking-and-usertag.png){:relative-width="80"}
|
141
|
+
|
142
|
+
* UDD can track usertags
|
143
|
+
* UDD can track blocking bugs
|
144
|
+
|
145
|
+
# In my experience through contribution, I need
|
146
|
+
|
147
|
+
* I need easy to:
|
148
|
+
|
149
|
+
* Track a specified bug (tagged/not tagged)
|
150
|
+
* Find a bug that no one working on
|
151
|
+
* Send control E-mail
|
152
|
+
* Find affected bugs
|
153
|
+
|
154
|
+
# In my experience through contribution (again)
|
155
|
+
|
156
|
+
* I need easy to:
|
157
|
+
* ~~Track a specified bug (tagged/not tagged)~~ *Use UDD!*
|
158
|
+
* Find a bug that no one working on 🤔
|
159
|
+
* Send control E-mail 🤔
|
160
|
+
* Find affected bugs 🤔
|
161
|
+
|
162
|
+
# How to solve rest issues?
|
163
|
+
|
164
|
+
* Find a bug that no one working on 🤔
|
165
|
+
* It's a good attitude to fix a bug
|
166
|
+
* Send control E-mail easily 🤔
|
167
|
+
* It's a good attitude to triage a bug
|
168
|
+
* Find affected bugs 🤔
|
169
|
+
* Remember misery bugs #932855, #965164
|
170
|
+
|
171
|
+
# Supplementary explanation: Find affected bugs 🤔
|
172
|
+
|
173
|
+
* Sometimes grave/critical bug was found
|
174
|
+
* 2019, critical, e2fsprogs 1.45.3-1 breaks initramfs-tools-core <=0.133
|
175
|
+
* <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=932855>
|
176
|
+
* 2020, grave, policykit-1: fails to install
|
177
|
+
* <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=965164>
|
178
|
+
|
179
|
+
# What about existing solution?
|
180
|
+
|
181
|
+
<https://wiki.debian.org/Services>
|
182
|
+
|
183
|
+
* Developer Horizon - A dashboard for developers
|
184
|
+
* <http://horizon.debian.net/> *Not available*
|
185
|
+
|
186
|
+
# What about existing solution?
|
187
|
+
|
188
|
+
* Fabre - fulltext search service
|
189
|
+
* <http://fabre.debian.net> Around 2005, *Discontinued*
|
190
|
+
* Undocumented Debian "debbugs internal" {::note}written in Japanese{:/note}
|
191
|
+
* <https://tokyodebian-team.pages.debian.net/pdf2005/debianmeetingresume2005-fuyu.pdf>
|
192
|
+
|
193
|
+
# What about existing solution?
|
194
|
+
|
195
|
+
* Debbugs Enhancement Suite
|
196
|
+
* <https://salsa.debian.org/lamby/debbugs-enhancement-suite>
|
197
|
+
* A Chrome extension to enhance using Debbugs
|
198
|
+
* Tidy up each bug rendering, it's cool (Thanks @lolamby FYI:)
|
199
|
+
* *...But It is not what I want*
|
200
|
+
|
201
|
+
# What about existing solution?
|
202
|
+
|
203
|
+
* Debian Popularity Contest
|
204
|
+
* <http://popcon.debian.org/>
|
205
|
+
* It provides a method to collect installed packages information
|
206
|
+
|
207
|
+
* Public UDD Mirror
|
208
|
+
* <https://udd-mirror.debian.net/>
|
209
|
+
* It provides a statistical information about packages
|
210
|
+
|
211
|
+
# Starting personal project
|
212
|
+
|
213
|
+
* Concept
|
214
|
+
* *Make "unstable life" comfortable*
|
215
|
+
* Fix a bug (by finding a bug that no one working on)
|
216
|
+
* Triage a bug (by sending control E-mail easily)
|
217
|
+
* Avoid affected bugs (by finding affected important bugs)
|
218
|
+
|
219
|
+
# Starting personal project (again)
|
220
|
+
|
221
|
+
* Concept
|
222
|
+
* Make "unstable life" comfortable
|
223
|
+
* Fix a bug (by finding a bug that no one working on) *Count comment in bug#NNNNNN*
|
224
|
+
* Triage a bug (by sending control E-mail easily) *Add mailto: link explicitly*
|
225
|
+
* Avoid affected bugs (by finding affected important bugs) *Alert recent grave bugs*
|
226
|
+
|
227
|
+
# How to realize concept?
|
228
|
+
|
229
|
+
* Collect bug information regularly (E-mail archives)
|
230
|
+
* Collect Popcon data (Fix a bug with your familiar packages)
|
231
|
+
* Collect your installed packages information (popularity-contest)
|
232
|
+
* Process collected data and make it accessible!
|
233
|
+
|
234
|
+
# Collect bug information
|
235
|
+
|
236
|
+
* Get E-mail archive with rsync
|
237
|
+
* <https://salsa.debian.org/debbugs-team/debbugs>
|
238
|
+
* rsync -av rsync://bugs-mirror.debian.org/bts-spool-db/
|
239
|
+
{::note}It requires 15GiB!{:/note}
|
240
|
+
* Use *.log and *.summary
|
241
|
+
|
242
|
+
# Extract .log and .summary
|
243
|
+
|
244
|
+
* Use perl module which is used for bugs.d.o (Debbugs)
|
245
|
+
* Debbugs::Log, Debbugs::Status, Debbugs::MIME and so on
|
246
|
+
* *.log contains multiple raw E-mail content with control sequence
|
247
|
+
* *.summary contains metadata of each bug
|
248
|
+
|
249
|
+
# How to parse .log
|
250
|
+
|
251
|
+
my $log = Debbugs::Log->new(log_name => $path);
|
252
|
+
my @records = $log->read_all_records();
|
253
|
+
for my $record (@records) {
|
254
|
+
...
|
255
|
+
my $entity = Debbugs::MIME::parse_to_mime_entity($record);
|
256
|
+
print "From: " . $entity->head->get("From");
|
257
|
+
print "To: " . $entity->head->get("To");
|
258
|
+
print "Subject: " . get_field($entity, "Subject");
|
259
|
+
print "Date: " . $entity->head->get("Date");
|
260
|
+
}
|
261
|
+
{: lang="perl"}
|
262
|
+
|
263
|
+
# How to parse .summary
|
264
|
+
|
265
|
+
Format-Version: 3
|
266
|
+
Submitter: Nis Martensen <nis.martensen@web.de>
|
267
|
+
Subject: libexo-helpers: starting thunderbird fails for some mailto URIs
|
268
|
+
Found-In: exo/0.12.4-1
|
269
|
+
Tags: patch
|
270
|
+
Package: libexo-helpers
|
271
|
+
Message-Id: <159439678897.3833.10774950364480956704.reportbug@siamos.nes.net>
|
272
|
+
Severity: normal
|
273
|
+
Date: 1594396982
|
274
|
+
|
275
|
+
my $summary = Debbugs::Status::read_bug(summary => $path);
|
276
|
+
print $summary->{"tags"}
|
277
|
+
{: lang="perl"}
|
278
|
+
|
279
|
+
# Collect Popcon data and so on
|
280
|
+
|
281
|
+
* UDD: UltimateDebianDatabase
|
282
|
+
* <https://wiki.debian.org/UltimateDebianDatabase>
|
283
|
+
* You can access with:
|
284
|
+
psql --host=udd-mirror.debian.net --user=udd-mirror udd --password
|
285
|
+
* Schema is available: <https://udd.debian.org/schema/udd.html>
|
286
|
+
* Import popcon and package data
|
287
|
+
|
288
|
+
# Collect installed packages information
|
289
|
+
|
290
|
+
POPULARITY-CONTEST-0 TIME:1596711793 ID:XXX ARCH:amd64 POPCONVER:1.70 VENDOR:Debian
|
291
|
+
1596672000 1570622400 libgail-common /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so
|
292
|
+
1596672000 1596585600 libavcodec58 /usr/lib/x86_64-linux-gnu/libavcodec.so.58.91.100 <RECENT-CTIME>
|
293
|
+
1596672000 1586736000 libgoa-1.0-0b /usr/lib/x86_64-linux-gnu/libgoa-1.0.so.0.0.0
|
294
|
+
...
|
295
|
+
1596672000 1586217600 libzvbi0 /usr/lib/x86_64-linux-gnu/libzvbi.so.0.13.2
|
296
|
+
1596672000 1590624000 udisks2 /usr/share/locale/ja/LC_MESSAGES/udisks2.mo
|
297
|
+
END-POPULARITY-CONTEST-0 TIME:1596711817
|
298
|
+
|
299
|
+
* Just upload popcon file
|
300
|
+
* /usr/sbin/popularity-contest --su-nobody
|
301
|
+
|
302
|
+
# Process collected data and make it accessible!
|
303
|
+
|
304
|
+
* Polling subscribed debian-bugs-dist@lists.debian.org
|
305
|
+
* Importing latest E-mail archives from bugs-mirror.debian.org
|
306
|
+
* Merging metadata + Web front-end
|
307
|
+
|
308
|
+
# Prepared server specs for experiment
|
309
|
+
|
310
|
+
* Start with small VPS instance (about 3.26 USD/mo)
|
311
|
+
* 1vCPU
|
312
|
+
* 1GiB memory
|
313
|
+
* 20GiB disk space
|
314
|
+
* Max 100Mbps bandwidth
|
315
|
+
|
316
|
+
# System diagrams
|
317
|
+
|
318
|
+
![](images/fabre-internals.png){:relative-height="100"}
|
319
|
+
|
320
|
+
# Named my project as Fabre
|
321
|
+
|
322
|
+
![](images/345px-Jean-henri_fabre.jpg){:relative-height="80"}
|
323
|
+
|
324
|
+
cite: <https://en.wikipedia.org/wiki/Jean-Henri_Fabre>
|
325
|
+
|
326
|
+
# Why Fabre?
|
327
|
+
|
328
|
+
* Fabre is "The father of modern entomology" - the study of insects(bugs)
|
329
|
+
* Just reuse previous (maybe) similar project (fabre.debian.net)
|
330
|
+
|
331
|
+
# Concept of Fabre (again)
|
332
|
+
|
333
|
+
* *Make "unstable life" comfortable*
|
334
|
+
* Fix a bug (by finding a bug that no one working on)
|
335
|
+
* Triage a bug (by sending control E-mail easily)
|
336
|
+
* Avoid affected bugs (by checking installed packages)
|
337
|
+
|
338
|
+
# Finding a bug that no one working on
|
339
|
+
|
340
|
+
![](images/easy-to-find-no-one-working.png){:relative-height="80"}
|
341
|
+
|
342
|
+
* Show each number of comments (orange background color means no one working on yet)
|
343
|
+
|
344
|
+
# Sending control E-mail easily
|
345
|
+
|
346
|
+
|
347
|
+
![](images/easy-to-send-control-email.png)
|
348
|
+
|
349
|
+
* Show each mailto: button to control bugs
|
350
|
+
|
351
|
+
# Easy to view blocked bugs
|
352
|
+
|
353
|
+
![](images/easy-to-view-blocking.png){:relative-height="80"}
|
354
|
+
|
355
|
+
* List blocked bugs appropriately
|
356
|
+
|
357
|
+
# Finding affected important bugs
|
358
|
+
|
359
|
+
![](images/fabre-dashboards.png){:relative-height="100"}
|
360
|
+
|
361
|
+
# How Fabre is good enough to work?
|
362
|
+
|
363
|
+
* Now ready to DEMO
|
364
|
+
|
365
|
+
# More things about Fabre
|
366
|
+
|
367
|
+
* Tracked bugs: about 89,000 (UDD: 90,780)
|
368
|
+
* {::note}Archived bugs: 720,000 (UDD: 85,0331){:/note}
|
369
|
+
* Import bugs: every 1 hour
|
370
|
+
* Update affected bugs: every 1 day
|
371
|
+
* Disk usage (Database): about 1.5 GiB
|
372
|
+
|
373
|
+
# Conclusion
|
374
|
+
|
375
|
+
* There are plenty room of improvements to develop
|
376
|
+
* In my experiment, mashup some data sources may improve UX
|
377
|
+
* bug report (E-mail archives)
|
378
|
+
* UDD metadata (Popcon and package metadata)
|
379
|
+
* installed packages list (popularity-contest)
|
380
|
+
|
381
|
+
# Any questions?
|
382
|
+
|
383
|
+
Could you speak slowly if you have a question, please?
|