1
00:00:06,216 --> 00:00:09,468
Ok, welcome back to the second session
of the day.

2
00:00:10,239 --> 00:00:13,444
It's going to be Alexander Wirt talking
about salsa.debian.org.

3
00:00:14,377 --> 00:00:18,730
[Applause]

4
00:00:19,413 --> 00:00:20,598
Thank you, good morning.

5
00:00:21,653 --> 00:00:25,557
I usually don't give talks in english,
so please be nice to me.

6
00:00:26,776 --> 00:00:28,973
However, I'm here.

7
00:00:29,989 --> 00:00:33,283
I want to talk today about our journey
from Alioth

8
00:00:33,724 --> 00:00:36,082
which is still running, but not for long
anymore,

9
00:00:36,528 --> 00:00:38,685
to our new service, salsa.

10
00:00:39,579 --> 00:00:42,785
I want to get a little bit into the history
of old things

11
00:00:43,313 --> 00:00:46,892
and what we have already achieved,
what we still need to achieve

12
00:00:46,892 --> 00:00:49,898
and what are our plans for the future.

13
00:00:54,358 --> 00:00:56,794
Let's start with the basic things,
who am I.

14
00:00:58,784 --> 00:01:03,159
I am the guy who rejects the mails
on lists.debian.org,

15
00:01:03,371 --> 00:01:04,831
I am a listmaster.

16
00:01:07,715 --> 00:01:10,556
I am the guy that rejects your backports.

17
00:01:10,921 --> 00:01:12,550
I am the backports ftp master.

18
00:01:15,105 --> 00:01:17,919
And I am the guy that will destroy
alioth.debian.org.

19
00:01:18,402 --> 00:01:20,686
For the last ten years

20
00:01:20,963 --> 00:01:22,749
[Applause]

21
00:01:22,960 --> 00:01:26,164
I was an admin by accident of
alioth.debian.org.

22
00:01:26,448 --> 00:01:29,419
This is another story I will tell you
in a few minutes.

23
00:01:31,412 --> 00:01:36,371
Beside from that, I work as an OpenSource
consultant at credativ,

24
00:01:36,698 --> 00:01:40,883
which is a small company in Germany
which is specialized in OpenSource,

25
00:01:40,883 --> 00:01:43,818
we only do OpenSource consulting
in Germany.

26
00:01:44,096 --> 00:01:50,644
We do what today is called DevOps,
we do every kind of consulting.

27
00:01:51,053 --> 00:01:54,832
If you do something with OpenSource,
we are probably the ones you can talk with.

28
00:01:58,329 --> 00:02:00,743
I am a father of two wonderful girls,

29
00:02:00,929 --> 00:02:02,513
they're not here unfortunately,

30
00:02:02,513 --> 00:02:04,671
but otherwise I wouldn't be able
to work.

31
00:02:07,018 --> 00:02:12,952
And in my little bit spare time, I do
role playing games and Tabletop games.

32
00:02:17,136 --> 00:02:19,981
In theory there should be a picture now.

33
00:02:21,646 --> 00:02:24,857
There's a picture missing,
I don't know why,

34
00:02:25,628 --> 00:02:27,213
which should tell "We need you".

35
00:02:27,862 --> 00:02:31,802
A little bit of advertisement, if you
want to do OpenSource work in Germany,

36
00:02:32,290 --> 00:02:33,104
paid,

37
00:02:34,326 --> 00:02:36,639
and you need a job, please talk to me.

38
00:02:37,208 --> 00:02:42,159
We are always looking for good people,
especially in C development,

39
00:02:42,159 --> 00:02:47,117
kernel development, but also of course
consulting.

40
00:02:47,858 --> 00:02:49,603
So please talk to me.

41
00:02:50,780 --> 00:02:52,080
Some steps in history.

42
00:02:53,909 --> 00:02:58,050
Some years ago, ???
2008, 2009,

43
00:02:58,627 --> 00:03:00,620
I told the #alioth channel

44
00:03:00,620 --> 00:03:04,560
"Hey, if you need help, I can help with
system administration,

45
00:03:04,560 --> 00:03:09,145
not the GForge stuff which is running
above,

46
00:03:09,145 --> 00:03:10,693
but if you need help, tell me."

47
00:03:12,077 --> 00:03:13,216
[Audience] Big mistake

48
00:03:13,216 --> 00:03:14,023
Yeah.

49
00:03:14,023 --> 00:03:19,144
One or two years went by,
and step by step

50
00:03:19,144 --> 00:03:22,150
all remaining alioth admins left.

51
00:03:22,623 --> 00:03:24,498
We were alone in the channel.

52
00:03:25,067 --> 00:03:26,774
And around that time, I detected

53
00:03:26,774 --> 00:03:30,874
"Hey, I have sudo permissions
and I'm admin"

54
00:03:32,056 --> 00:03:33,966
Somebody made me an admin.

55
00:03:34,576 --> 00:03:41,157
So, I had to decide that I will be
the person that is the future alioth admin

56
00:03:41,157 --> 00:03:43,229
and I stepped in.

57
00:03:43,788 --> 00:03:47,089
So it was the beginning of our alioth
journey.

58
00:03:49,486 --> 00:03:53,225
Then, in DebConf15, we had a long
'Birds of a Feather'

59
00:03:53,542 --> 00:03:57,903
where we talked about several security
problems in collab-maint,

60
00:03:59,734 --> 00:04:03,465
some of you are maybe not aware of it,

61
00:04:03,465 --> 00:04:08,547
but since we use git at filesystem level
on alioth,

62
00:04:08,547 --> 00:04:13,263
we are introducing a number of interesting
security problems

63
00:04:13,263 --> 00:04:18,792
like if someone writes a hook, that hook
gets executed every time someone pushes.

64
00:04:19,524 --> 00:04:21,879
So you have basically shell access.

65
00:04:22,529 --> 00:04:24,924
And of course you execute it as
your own uid.

66
00:04:26,467 --> 00:04:31,791
So, if some DM (Debian Maintainer) or even
not DM, nearly the whole world

67
00:04:31,791 --> 00:04:33,660
has write access to collab-maint,

68
00:04:33,660 --> 00:04:36,216
drops some hooks in,

69
00:04:37,514 --> 00:04:43,286
it can make you execute code on Alioth
at your uid, which is a problem.

70
00:04:44,302 --> 00:04:51,014
We did some things to solve that problem,
but the main problem remained.

71
00:04:52,109 --> 00:04:57,397
So, along that time, we decided that we
would need a successor for git.debian.org.

72
00:04:58,334 --> 00:05:02,763
At that point, we are talking about gitolite

73
00:05:02,763 --> 00:05:05,768
which we evaluated at that time.

74
00:05:07,192 --> 00:05:11,012
However, as it sometimes happens.

75
00:05:11,283 --> 00:05:14,453
Two years went into the land and
nothing real happened,

76
00:05:14,939 --> 00:05:16,362
we just played with it.

77
00:05:16,851 --> 00:05:23,432
Then, May 2017, a thread comes up,
"Moving away from fusionforge".

78
00:05:24,695 --> 00:05:30,881
What nobody was really aware of, is that
alioth is on a Wheezy machine

79
00:05:31,119 --> 00:05:33,800
and Wheezy is running out of security
support end of the month.

80
00:05:34,336 --> 00:05:36,438
So time was running up.

81
00:05:39,167 --> 00:05:43,603
The thread was long as usual on
debian-devel and

82
00:05:43,603 --> 00:05:49,088
we decided to do a few steps, like
evaluating things

83
00:05:50,106 --> 00:05:59,253
and in June 2017, I did a survey about
our new alioth services.

84
00:06:00,882 --> 00:06:06,341
It was clear at that point that I wouldn't
be able to maintain all the things

85
00:06:06,341 --> 00:06:08,370
alioth had in the future

86
00:06:09,143 --> 00:06:14,272
so we decided to just bring over
the important things.

87
00:06:15,284 --> 00:06:18,372
What is important? For everyone,
everything else is important

88
00:06:18,372 --> 00:06:22,843
so I decided to do a survey which was
pretty successful

89
00:06:22,843 --> 00:06:24,997
with a few hundreds submissions.

90
00:06:26,297 --> 00:06:27,803
Then, in…

91
00:06:44,250 --> 00:06:49,733
Then we evaluated… "we" as probably "me",

92
00:06:50,831 --> 00:06:57,539
evaluated a few solutions, named pagure,
which is the git solution Fedora is using,

93
00:06:57,782 --> 00:07:01,603
which is a Python thing based on gitolite,

94
00:07:03,473 --> 00:07:12,248
gitlab, which is the biggest Github
competitor

95
00:07:15,465 --> 00:07:20,827
gogs/gitea, which is some golang-based
small git service.

96
00:07:22,886 --> 00:07:28,712
pagure turned out to be not stable enough
for our needs

97
00:07:28,712 --> 00:07:36,511
and we would have to do to much coding
inside pagure to use it in our infrastructure

98
00:07:36,511 --> 00:07:41,628
because pagure is very strongly binded
with the Fedora infrastructure,

99
00:07:41,941 --> 00:07:47,189
specially its user authentication and
user management stuff.

100
00:07:48,452 --> 00:07:52,024
Gitlab had an other problem called
"opencore" and

101
00:07:52,024 --> 00:07:55,529
"contributor license agreement"
which means

102
00:07:55,529 --> 00:08:00,605
I and others were not very happy with
contributing code to Gitlab

103
00:08:01,173 --> 00:08:06,493
which is something that will always
happen if you maintain such a service.

104
00:08:08,163 --> 00:08:11,579
And gogs and gitea is nice but it's small

105
00:08:11,822 --> 00:08:18,444
It will not be able to manage 10,000s
of repositories.

106
00:08:22,873 --> 00:08:27,954
Next step happened in August 2017 when
we had a sprint here in Hamburg

107
00:08:28,443 --> 00:08:31,902
at the hackerlab CCC on the other side
of the building,

108
00:08:33,642 --> 00:08:35,236
where we talked about it.

109
00:08:36,497 --> 00:08:41,335
After long discussions, we decided to go
with Gitlab

110
00:08:41,335 --> 00:08:48,930
because Gitlab, at that point, was
the best solution that was already ready.

111
00:08:49,745 --> 00:08:53,389
We didn't have to adapt too much, we don't
need to patch it

112
00:08:55,339 --> 00:08:58,885
which turned out it isn't true, but it's
an other problem

113
00:09:01,362 --> 00:09:06,118
It had features like continuous integration
ready,

114
00:09:06,118 --> 00:09:12,499
it had features like code review ready,
wiki pretty good working

115
00:09:13,256 --> 00:09:18,421
and ??? very scalable
in all directions

116
00:09:18,907 --> 00:09:24,438
Every component is scalable which is
good for us.

117
00:09:29,760 --> 00:09:35,454
This is a TODO point, I wanted to add
an image about the restaurant

118
00:09:35,454 --> 00:09:37,611
where we decided on the name "salsa".

119
00:09:38,098 --> 00:09:42,896
Somebody of you may ask yourself where
the name is coming from.

120
00:09:43,377 --> 00:09:46,355
There's a small mexican restaurant
a few hundred meters from here

121
00:09:46,841 --> 00:09:51,596
where you can get great burritos and
they have a painting at the back

122
00:09:51,596 --> 00:09:55,123
with the term "salsa" written

123
00:09:55,123 --> 00:10:00,984
and we were deciding on a name which
just not describes the type of service on it

124
00:10:01,419 --> 00:10:02,773
so we wanted…

125
00:10:05,167 --> 00:10:11,591
Yes, it's also a sauce. So salsa had sauce.

126
00:10:13,284 --> 00:10:18,697
I wanted to call it Klaus, but we decided
against it so somebody came up

127
00:10:18,697 --> 00:10:24,360
in the restaurant with the name "salsa"
and so it's called salsa.

128
00:10:28,418 --> 00:10:30,970
In the meanwhile, we talked a lot with
the Gitlab people

129
00:10:31,338 --> 00:10:34,757
which were very kind and helped us
with our problems.

130
00:10:36,061 --> 00:10:41,951
We also talked with them about the CLA
problem and after some discussions,

131
00:10:41,951 --> 00:10:47,110
the lawyer of SPI was also involved,

132
00:10:47,110 --> 00:10:51,461
we made them to remove the CLA
and replace it with something better.

133
00:10:52,925 --> 00:10:57,721
Contributing patches to Gitlab is now
much easier and better

134
00:10:57,721 --> 00:11:00,082
which is something we are very proud of

135
00:11:00,405 --> 00:11:05,169
[Applause]

136
00:11:07,162 --> 00:11:13,222
And between November and the 25th of
December, we implemented salsa two times

137
00:11:13,994 --> 00:11:17,327
First time on godard.debian.net where we had
root but

138
00:11:17,800 --> 00:11:25,476
after more discussions we decided having
this maintained at a (debian).org box

139
00:11:25,842 --> 00:11:29,618
would be better, which made us
??? ansible stuff

140
00:11:30,198 --> 00:11:35,844
and develop a ??? to be able to install
gitlab as a non-privileged user

141
00:11:36,989 --> 00:11:38,491
but we did that.

142
00:11:40,367 --> 00:11:45,773
In Christmas, he was able to release
salsa into public beta.

143
00:11:50,122 --> 00:11:55,736
Things went well, which allowed, at the
end of January, salsa to leave the beta

144
00:11:55,736 --> 00:12:00,853
Since then it's official, our official
git successor.

145
00:12:05,442 --> 00:12:06,909
What will happen in the future?

146
00:12:07,559 --> 00:12:09,389
Oh no, this is already past.

147
00:12:11,257 --> 00:12:15,810
On May, we disabled user and project
creation on alioth.

148
00:12:21,744 --> 00:12:27,763
Still in May, we disabled the not so much
used version control systems,

149
00:12:27,763 --> 00:12:30,486
bazaar, mercurial and darcs

150
00:12:34,144 --> 00:12:37,147
On Thursday (May 17th 2018), I disabled
projects web sites.

151
00:12:38,572 --> 00:12:40,888
And this is future, at the end the month,

152
00:12:40,888 --> 00:12:45,732
all other remaining version control systems
on alioth will get disabled.

153
00:12:46,017 --> 00:12:50,739
So if you have anything running on alioth,
still running on alioth,

154
00:12:50,739 --> 00:12:55,195
cron jobs are also disabled so
you don't have cron jobs enabled anymore

155
00:12:56,092 --> 00:13:00,358
Be it whatever you think of, remove it.

156
00:13:02,354 --> 00:13:08,449
1st of June, alioth will be off, you won't
be able to get any data anymore

157
00:13:08,449 --> 00:13:09,951
from alioth.

158
00:13:10,276 --> 00:13:15,929
You can get the ??? via DSA to get
subsequent backups, that's up to you

159
00:13:15,929 --> 00:13:18,777
but I don't recommend it and they won't
like it.

160
00:13:24,299 --> 00:13:25,316
Yeah

161
00:13:27,504 --> 00:13:29,897
In June, alioth will come to an end.

162
00:13:31,117 --> 00:13:37,501
It served us well for 10, 15 years, but
its time is over.

163
00:13:41,605 --> 00:13:43,635
Some numbers.
Where are we now?

164
00:13:45,910 --> 00:13:50,951
Yesterday (May 18th 2018), we had
23,700 repositories on gitlab,

165
00:13:53,425 --> 00:14:04,123
3200 users, 400 groups, which sums up
around 90GB on disk, which is nice.

166
00:14:05,334 --> 00:14:10,748
For a service running for more or less
6 months, it's a pretty nice number.

167
00:14:16,639 --> 00:14:18,544
What are our future plans.

168
00:14:20,762 --> 00:14:26,654
??? Docker registry, by now
you can use external registries

169
00:14:26,863 --> 00:14:28,113
which is working

170
00:14:28,366 --> 00:14:30,967
You can the gitlab registry for
Docker images

171
00:14:30,967 --> 00:14:34,424
but it will be nicer to have our own
registry.

172
00:14:35,036 --> 00:14:39,347
That is pretty high on my todo list, after
alioth is gone.

173
00:14:41,865 --> 00:14:46,951
We want more runners, so you are able to
sponsor runners, if you have machines or

174
00:14:46,951 --> 00:14:52,563
some money you want to spend on runners,
please tell us.

175
00:14:53,377 --> 00:14:58,777
What are runners? Runners are the things
that are used by Gitlab CI to build code

176
00:14:59,711 --> 00:15:02,146
or test code, or do things.

177
00:15:03,770 --> 00:15:09,670
You can use it to build your packages,
you can use it to autopkgtest your packages

178
00:15:09,670 --> 00:15:14,788
you can use it to build websites or
whatever you like.

179
00:15:15,964 --> 00:15:22,300
It's pretty useful and I think using CI more
will be a big step forward for Debian.

180
00:15:25,024 --> 00:15:28,398
We should really get more into it.

181
00:15:29,128 --> 00:15:34,502
There are already some projects like
the reproducible builds, the debci guys

182
00:15:34,502 --> 00:15:36,579
that are working on such stuff

183
00:15:36,774 --> 00:15:43,163
and now we have the infrastructure that
every DD, every developer or package maintainer

184
00:15:43,163 --> 00:15:44,422
can use it.

185
00:15:48,691 --> 00:15:49,820
There's also an other feature called

186
00:15:49,820 --> 00:15:54,584
"devops" which is based on kubernetes
which allows you to even

187
00:15:54,584 --> 00:15:58,570
deploy and test things properly.

188
00:15:59,039 --> 00:16:03,323
So if you have package which implements
a web service, you can even run

189
00:16:03,323 --> 00:16:06,936
??? kubernetes part which runs
a web server,

190
00:16:06,936 --> 00:16:10,838
you can test it, you can even record it,
do QA test and so on

191
00:16:10,838 --> 00:16:16,172
all based on this devops feature which
would also be a nice thing.

192
00:16:16,577 --> 00:16:20,075
By now, we don't have a kubernetes instance
we can use for it,

193
00:16:20,075 --> 00:16:24,834
so if you have a spare kubernetes instance
you want to offer Debian,

194
00:16:24,834 --> 00:16:26,135
please talk to us.

195
00:16:29,051 --> 00:16:34,962
And integration with sso.debian.org,
which is another side project of mine

196
00:16:34,962 --> 00:16:38,131
and some of ??? students, sitting there.

197
00:16:39,556 --> 00:16:43,657
We want to build a successor for
the command sso.debian.org

198
00:16:43,657 --> 00:16:47,675
which has a problem that it doesn't have
a user backend,

199
00:16:47,919 --> 00:16:50,440
the user backend is alioth,
you see the problem

200
00:16:52,894 --> 00:16:55,215
But it just the case for our guest users.

201
00:16:55,736 --> 00:17:00,208
The official Debian Developers come from
the ldap which will still work,

202
00:17:00,208 --> 00:17:06,999
but we have a problem with guest users,
so we currently don't have a way to

203
00:17:06,999 --> 00:17:14,428
source for managing those guest users,
especially give additional groups like

204
00:17:14,428 --> 00:17:16,384
"Hey, the user's a DM"

205
00:17:16,628 --> 00:17:22,069
I would love to give all DMs access to
the Debian group, write access,

206
00:17:22,069 --> 00:17:25,403
but I can't currently because I'm not able
to identify them

207
00:17:25,961 --> 00:17:29,816
which is something we want to solve with
the new sso.debian.org feature.

208
00:17:31,032 --> 00:17:37,222
sso.debian.org should also develop a new
authentication protocol like OAuth2,

209
00:17:37,257 --> 00:17:43,041
which we will use for salsa but new
web services can also rely on,

210
00:17:43,676 --> 00:17:51,343
??? a way from this certificate stuff
which is somewhat nice

211
00:17:51,343 --> 00:17:54,627
but it's not that good integrated in most
browsers anymore

212
00:17:55,236 --> 00:17:57,876
and it doesn't work that well.

213
00:18:01,375 --> 00:18:06,419
We hope to have, we already have
a prototype, and we hope to have it live

214
00:18:06,419 --> 00:18:08,164
until the end of the summer.

215
00:18:10,813 --> 00:18:12,646
What we left behind.

216
00:18:14,518 --> 00:18:17,117
We don't have shells anymore.

217
00:18:17,848 --> 00:18:21,747
So you won't be able to run any cron jobs
or other stuff on salsa and

218
00:18:21,747 --> 00:18:30,045
please don't ask, we won't give anyone
a shell on salsa.debian.org or godard

219
00:18:30,045 --> 00:18:31,793
which is the host hosting it.

220
00:18:33,700 --> 00:18:36,543
We have APIs, several of them,
I will show them

221
00:18:38,168 --> 00:18:43,890
Please use them, we won't run any
cron jobs or custom stuff on gitlab,

222
00:18:43,890 --> 00:18:49,584
it was a nightmare on alioth to maintain
and to administrate

223
00:18:49,584 --> 00:18:53,848
and I will never, never want to get
into this again.

224
00:18:56,204 --> 00:19:02,676
What we also don't have are custom domains
which is a feature gitlab has, but

225
00:19:02,676 --> 00:19:07,803
DSA decided against it, so you will have
to live with

226
00:19:07,803 --> 00:19:16,619
projectname.pages.debian.net until
someone decides for that feature.

227
00:19:18,366 --> 00:19:26,977
We also left behind old version…
not so much used anymore version control systems

228
00:19:26,977 --> 00:19:30,837
like darcs, bazaar, subversion which isn't
a problem,

229
00:19:31,842 --> 00:19:37,777
but we also don't have cvs anymore,
which may be a surprise for someone

230
00:19:37,777 --> 00:19:44,161
but Debian is still a heavy user of cvs,
especially for our web site

231
00:19:44,161 --> 00:19:45,499
and translations.

232
00:19:46,756 --> 00:19:52,648
But maybe they will now migrate faster
away from cvs.

233
00:19:53,259 --> 00:19:56,670
They are working on it, I know,
they're working on it for 10 years

234
00:19:57,849 --> 00:20:03,782
but things are getting faster and
they're making progress

235
00:20:03,782 --> 00:20:05,695
in migrating away from cvs.

236
00:20:08,380 --> 00:20:12,886
Yeah, ???, that's right,
we also left mercurial,

237
00:20:14,593 --> 00:20:16,868
or whatever people have in their
home directory.

238
00:20:19,635 --> 00:20:24,388
Yeah we also had rcs on alioth, there
were rcs repos, yes.

239
00:20:27,557 --> 00:20:29,067
What we got instead.

240
00:20:32,879 --> 00:20:36,492
We got a bunch of new features
we didn't have before.

241
00:20:37,918 --> 00:20:45,268
So, this is such… maybe a start of new
ways of working in Debian,

242
00:20:45,268 --> 00:20:48,192
we got a bunch of collaboration features.

243
00:20:48,476 --> 00:20:52,908
In the past, collaboration often meant
finding the right mailing list,

244
00:20:52,908 --> 00:20:55,148
sending a patch and hoping.

245
00:20:57,130 --> 00:21:03,355
Now we can use merge requests, which
allow people to easily fork and

246
00:21:03,355 --> 00:21:09,455
modify packages or repositories, and after
they are done, they can just hit a button

247
00:21:09,455 --> 00:21:15,915
or whatever and create a nice merge
request which is already heavily used

248
00:21:15,915 --> 00:21:20,871
by some projects like apt or dak or my own
redirector.

249
00:21:21,926 --> 00:21:26,722
That allows ???, the admins
of those repositories/projects

250
00:21:26,722 --> 00:21:34,411
to review code easily, they can add
comments, they can discuss with

251
00:21:34,411 --> 00:21:37,455
those people out of the mailing list.

252
00:21:38,146 --> 00:21:44,366
If people update a bunch and they
commited, those merge requests

253
00:21:44,366 --> 00:21:50,504
get updated which is a workflow we are
also using very heavily in our company

254
00:21:50,504 --> 00:21:53,999
which is pretty nice in my eyes.

255
00:21:56,682 --> 00:22:00,423
This also allows contribution to packages
from outside people

256
00:22:00,991 --> 00:22:04,601
It lowers the barrier for people to
collaborate with Debian,

257
00:22:04,601 --> 00:22:06,922
which is in my eyes a good feature,

258
00:22:07,494 --> 00:22:13,790
something I always liked on Github and
I'm happy we are having it too now.

259
00:22:18,669 --> 00:22:24,358
Gitlab has a nice feature of good, well
designed web frontend,

260
00:22:24,358 --> 00:22:27,123
some things could be better, but it's
always the case,

261
00:22:27,123 --> 00:22:33,180
but in most cases Gitlab is still
blazingly fast

262
00:22:33,180 --> 00:22:37,363
except if you've hit some of the bugs
in the API

263
00:22:37,363 --> 00:22:39,317
but that's an other problem.

264
00:22:41,755 --> 00:22:43,370
And you can work with it.

265
00:22:43,583 --> 00:22:45,653
If you don't like the web frontend,
use the API,

266
00:22:45,653 --> 00:22:49,392
nearly everything the web frontend
supports is exposed via the API

267
00:22:52,442 --> 00:22:55,205
And there are also a bunch of
command line clients

268
00:22:55,978 --> 00:23:01,630
which can integrate into git to allow
things like merge requests,

269
00:23:01,630 --> 00:23:05,537
allow you to process merge requests
from the command line

270
00:23:06,104 --> 00:23:07,849
if you don't like web frontends.

271
00:23:13,337 --> 00:23:21,187
You can also open merge requests
by e-mail if you still like it

272
00:23:22,123 --> 00:23:25,333
you can just hit the right buttons,
you'll get a mail address

273
00:23:26,106 --> 00:23:27,124
that you can use.

274
00:23:27,408 --> 00:23:30,127
And if you send a patch to that mail address
you will create a merge request,

275
00:23:30,781 --> 00:23:32,775
some of the not so known features.

276
00:23:42,081 --> 00:23:43,343
Issues.

277
00:23:43,868 --> 00:23:46,270
You can track todo items or bugs.

278
00:23:48,102 --> 00:23:51,354
Please, this is not intended for Debian
packages,

279
00:23:51,354 --> 00:23:53,672
so please don't replace the BTS

280
00:23:54,403 --> 00:23:57,249
but using it as an issue tracker or todo
lists is great.

281
00:23:58,267 --> 00:23:59,484
We are using it all the time.

282
00:23:59,968 --> 00:24:05,248
We're also having some upstream projects
on salsa, like sane or ???

283
00:24:05,781 --> 00:24:07,080
which is ???

284
00:24:07,689 --> 00:24:09,716
So, they're using issues, that's fine too.

285
00:24:10,212 --> 00:24:12,733
Issues are disabled by default for
a project,

286
00:24:12,733 --> 00:24:16,596
but every project has ??? to just
enable it and to use it.

287
00:24:17,002 --> 00:24:19,965
You have boards where you can organize
your work,

288
00:24:19,965 --> 00:24:27,192
you can add sprints, you can add
milestones and other things,

289
00:24:27,404 --> 00:24:31,428
all the basic stuff you need to have
an issue tracker is included.

290
00:24:33,093 --> 00:24:39,173
And we also enabled reply by mail so
you don't have to use the web frontend,

291
00:24:39,504 --> 00:24:45,233
you can just use your mail client
to reply your answers into Gitlab.

292
00:24:48,323 --> 00:24:50,803
You can also close issues by merge requests.

293
00:24:52,221 --> 00:24:57,139
So, similar to our BTS, Gitlab has
this "closes" feature.

294
00:24:59,578 --> 00:25:06,361
It's all the same. So "Close", "Closes"…
and so on, it's all the same

295
00:25:06,898 --> 00:25:09,376
and we close here your issues.

296
00:25:11,167 --> 00:25:13,653
You can even close issues in other
projects,

297
00:25:14,384 --> 00:25:20,150
so if you have projects related together
and you fix something in another project

298
00:25:20,150 --> 00:25:22,424
you can even close it with that syntax.

299
00:25:26,409 --> 00:25:29,870
You can also create issues by mail,
which is basically the same

300
00:25:29,870 --> 00:25:33,042
as for merge requests,

301
00:25:33,042 --> 00:25:38,811
you have that "email new issue" button
where you get a custom mail address you can use

302
00:25:38,811 --> 00:25:41,470
and then you can use that mail address
for the future

303
00:25:41,470 --> 00:25:46,792
to submit bugs if you don't want to use
the issue tracker.

304
00:26:00,933 --> 00:26:02,924
What we also got are webhooks.

305
00:26:03,576 --> 00:26:09,427
Custom hooks are not anymore possible
because you don't have access to

306
00:26:09,427 --> 00:26:11,090
the repositories directly

307
00:26:11,415 --> 00:26:13,325
but what you can use are webhooks.

308
00:26:13,937 --> 00:26:17,398
Webhooks are common standard in the
web world,

309
00:26:18,211 --> 00:26:21,577
you can use them to react to events
in your repository,

310
00:26:21,577 --> 00:26:26,979
events may be things like someone created
an issue, someone created a pull request,

311
00:26:26,979 --> 00:26:31,611
someone pushed something, someone took
something, things like that.

312
00:26:33,513 --> 00:26:38,390
And you can use those events to create
IRC notifications,

313
00:26:38,390 --> 00:26:42,859
we have two IRC bots available for you
to use, which is KGB

314
00:26:42,859 --> 00:26:45,379
and my own irker instance.

315
00:26:46,388 --> 00:26:49,002
You can automatically close or tag
bugs

316
00:26:49,442 --> 00:26:53,159
If you look into our documentation,
wiki.debian.org,

317
00:26:53,159 --> 00:26:57,590
you find a small paragraph about it
where you can just,

318
00:26:57,590 --> 00:27:03,274
as we did before, if you close a bug
and you enable the tag pending,

319
00:27:03,274 --> 00:27:09,979
tag pending webhook, your bug will
be tagged automatically as pending

320
00:27:09,979 --> 00:27:15,747
like before if you used the ???
hooks on alioth.

321
00:27:16,359 --> 00:27:21,231
And you can also trigger external CI QA
systems, like Jenkins or SonarQube

322
00:27:21,231 --> 00:27:24,035
or whatever you like to test you code.

323
00:27:26,670 --> 00:27:31,340
In the future, we will also use it
for collab, for the collaboration stuff

324
00:27:31,340 --> 00:27:38,287
from tincho, where we will just forward
every push happened on the whole salsa system

325
00:27:38,287 --> 00:27:44,786
so you don't have to configure that
manually, it will happen automatically

326
00:27:44,786 --> 00:27:52,101
So if you contribute something to Debian,
it will come up on collab.debian.net

327
00:28:01,591 --> 00:28:05,220
If you want to provide webhooks but you
don't want to run your own web server,

328
00:28:05,950 --> 00:28:09,075
you can come to us, which means you have
to code Ruby.

329
00:28:10,006 --> 00:28:14,360
We have our own webhook server implementation
for salsa.debian.org,

330
00:28:14,360 --> 00:28:19,719
which is currently also running on salsa,
but that must be the case in the future.

331
00:28:20,336 --> 00:28:26,022
So, if you want to run a webhook, provide us
a patch for our webhook implementation

332
00:28:26,022 --> 00:28:30,612
which is pluggable, so write a plugin which
listens to your webhooks,

333
00:28:30,612 --> 00:28:36,797
provide a patch, a merge request and we'll
happily add it to our webhook implementation

334
00:28:37,325 --> 00:28:39,930
so it can be used for everybody.

335
00:28:41,599 --> 00:28:43,023
Documentation is in the wiki.

336
00:28:47,864 --> 00:28:51,201
Currently provided hooks are, as already
mentioned, tagpending

337
00:28:51,851 --> 00:28:57,776
which allows you to tag bug as pending if
you mention them in you changelog

338
00:28:58,397 --> 00:29:05,959
and some projects directly working with
commits are using the close webhook

339
00:29:05,959 --> 00:29:08,798
which allows you to directly close
a bug with a commit

340
00:29:10,073 --> 00:29:14,582
which is used by some web servers and
other stuff directly used in Debian.

341
00:29:19,581 --> 00:29:23,278
One of the most powerful features we got
is Gitlab CI.

342
00:29:24,127 --> 00:29:27,144
Gitlab CI is a system that allows
a continuous integration,

343
00:29:27,144 --> 00:29:29,742
continuous development on salsa

344
00:29:30,681 --> 00:29:36,907
and that allows you to build, test and
eventually deploy software and packages

345
00:29:36,907 --> 00:29:38,657
from within Gitlab.

346
00:29:40,242 --> 00:29:43,450
You can nearly do whatever you want
in this CI stuff,

347
00:29:44,135 --> 00:29:51,492
you can compile ???, run linter,
run autopkgtest,

348
00:29:52,346 --> 00:29:54,422
whatever you can imagine you can do.

349
00:29:55,276 --> 00:29:59,103
We have two runners provided.

350
00:30:00,485 --> 00:30:05,194
One of it is running as an ???
on Google cloud,

351
00:30:05,641 --> 00:30:09,020
the other one is hardware sponsored
by a sponsor

352
00:30:10,201 --> 00:30:15,713
and for every CI run, we launch a docker
container in it,

353
00:30:16,078 --> 00:30:20,505
You can even provide an image you want
to use as this one

354
00:30:20,831 --> 00:30:24,328
and then you can do whatever you want
with it.

355
00:30:25,182 --> 00:30:28,267
But please don't do bitmining or
something like that,

356
00:30:30,583 --> 00:30:34,485
be kind to them, we all have to use them
and we have only two of them,

357
00:30:34,485 --> 00:30:38,339
so please, if you want to do something
bigger, talk to us

358
00:30:38,987 --> 00:30:40,942
like the KDE people already did.

359
00:30:43,951 --> 00:30:45,211
How to use it?

360
00:30:46,005 --> 00:30:48,298
Using Gitlab CI is surprisingly easy.

361
00:30:48,990 --> 00:30:55,496
There is this gitlab-ci.yml file which is
usually in the root of your repository

362
00:30:56,427 --> 00:31:00,899
but you can add configuration to your
repository, for example to

363
00:31:00,899 --> 00:31:04,354
add it to your /debian repository
which works better for

364
00:31:04,354 --> 00:31:06,588
??? packages

365
00:31:08,131 --> 00:31:13,440
or whatever you have, if you don't want to
clutter the upstream directories

366
00:31:13,440 --> 00:31:15,282
of your gitlab-ci file.

367
00:31:16,541 --> 00:31:26,664
[Question about potential conflicts with
gitlab-ci files from upstream]

368
00:31:28,739 --> 00:31:32,069
We already have a bug opened on the
Gitlab issue tracker

369
00:31:32,069 --> 00:31:36,622
that allows us to change the default name
of the gitlab-ci file because

370
00:31:36,622 --> 00:31:41,700
currently, if you import an external
repository, which has a gitlab-ci file

371
00:31:41,700 --> 00:31:43,452
which can happen,

372
00:31:43,452 --> 00:31:48,286
if we happily run on our infrastructure
and for example,

373
00:31:48,286 --> 00:31:52,019
it's ansible or some other project
which has it

374
00:31:52,019 --> 00:31:56,374
for every upstream commit, salsa will
happily run our runners

375
00:31:56,374 --> 00:31:59,056
and build the pipeline.

376
00:32:01,823 --> 00:32:04,183
After you edit your file, that's it.

377
00:32:05,972 --> 00:32:10,801
From then on, you can watch every commit
happening on your pipeline.

378
00:32:11,901 --> 00:32:16,458
This is a simple gitlab-ci file, gitlab-ci
files are yaml-based,

379
00:32:16,458 --> 00:32:21,940
documentation is in the Gitlab repository,
the documentation repository and

380
00:32:27,920 --> 00:32:33,135
as you can see, it's pretty easy, you have
a pre-step, which allows you to do things

381
00:32:33,368 --> 00:32:36,662
like installing dependencies which is
what's happening here.

382
00:32:38,091 --> 00:32:45,650
Since Gitlab CI is running a detached
head, if you want to ???

383
00:32:45,650 --> 00:32:48,453
use git buildpackage, we will have to
checkout master

384
00:32:48,851 --> 00:32:50,401
for it to properly work,

385
00:32:50,684 --> 00:32:53,931
then you can do a git pull, git buildpackage
and, after that,

386
00:32:53,931 --> 00:32:57,061
you have build your package.

387
00:32:57,872 --> 00:32:59,419
That's basically all.

388
00:32:59,945 --> 00:33:01,244
You can also use artifacts.

389
00:33:01,244 --> 00:33:11,120
Artifacts allow you to… keep a build
artifact for downloading, so

390
00:33:11,120 --> 00:33:18,056
if you want someone to use a package,
you can just add an artifact stanza here

391
00:33:18,056 --> 00:33:20,698
and that allows you to later download
your deb files.

392
00:33:21,105 --> 00:33:26,540
Now that doesn't allow you to create
a repository ???

393
00:33:27,352 --> 00:33:28,859
but it's an other problem.

394
00:33:30,645 --> 00:33:36,251
If it's too much, you can also use this
thing we published yesterday.

395
00:33:36,713 --> 00:33:43,900
This is a prepared docker container which
is prepared for git buildpackage and

396
00:33:43,900 --> 00:33:46,584
all you have to do is to execute this.

397
00:33:48,578 --> 00:33:50,443
After that, you have Gitlab CI.

398
00:33:50,723 --> 00:33:54,801
[Applause]

399
00:33:55,036 --> 00:33:58,830
I don't know who provided it, but it popped
up in the wiki yesterday

400
00:33:58,830 --> 00:34:00,333
or something like that.

401
00:34:05,048 --> 00:34:06,877
We also have Gitlab pages.

402
00:34:07,202 --> 00:34:13,045
Gitlab pages are like Github pages and
allow you to host web sites,

403
00:34:13,045 --> 00:34:15,852
static web sites from within Gitlab.

404
00:34:18,089 --> 00:34:24,305
Internally they also use Gitlab CI, so
you provide a Gitlab CI job

405
00:34:24,305 --> 00:34:29,630
that just deploys your website, so
it's nothing to do

406
00:34:29,630 --> 00:34:31,537
and here's our build artifact feature.

407
00:34:32,665 --> 00:34:39,089
All we do here is just add those public
files in the public directory to our pages

408
00:34:39,089 --> 00:34:42,675
and we only do this on the master branch

409
00:34:42,675 --> 00:34:44,706
and basically that's it.

410
00:34:45,967 --> 00:34:51,126
The magic is happening here, it's the
"pages" step and

411
00:34:51,126 --> 00:34:56,516
if you correctly configure pages in your
repository configuration,

412
00:34:56,516 --> 00:34:59,082
you have a Gitlab page after that.

413
00:35:02,826 --> 00:35:06,030
You can also do more fancy things like
a Hugo web site,

414
00:35:06,030 --> 00:35:11,359
just depend on a docker image which has
hugo installed

415
00:35:11,359 --> 00:35:19,614
and then execute a script which builds
Hugo, add some artifacts

416
00:35:19,614 --> 00:35:22,088
and after that you have a Hugo website.

417
00:35:22,374 --> 00:35:26,558
You can also use it for blogs, you can
use it in personal repositories,

418
00:35:26,558 --> 00:35:29,565
then for example for your own web site
or blogs.

419
00:35:30,133 --> 00:35:35,375
Of course, it's not intended to serve
big web sites

420
00:35:35,375 --> 00:35:42,486
but providing blogs for planet.debian.org
is perfectly fine, for example

421
00:35:42,486 --> 00:35:48,662
or web site of ??? project or
whatever is Debian-related.

422
00:35:51,718 --> 00:35:55,539
This brings me to an other topic
not mentioned in my slides

423
00:35:56,557 --> 00:36:00,093
some people asked us what is fine to host
on salsa.

424
00:36:01,553 --> 00:36:07,128
As long as it's open source, as long as
it's intended to be Debian-related

425
00:36:07,128 --> 00:36:10,783
or open source related or can be included
in Debian,

426
00:36:11,351 --> 00:36:13,952
it's perfectly fine to host it on salsa.

427
00:36:14,844 --> 00:36:18,130
So we invite every upstream which is
looking for a home,

428
00:36:18,496 --> 00:36:22,030
like the SANE guys, to host them
on salsa.

429
00:36:28,487 --> 00:36:31,946
What we got with the latest major version
is a web editor

430
00:36:34,308 --> 00:36:35,881
which is pretty new,

431
00:36:37,029 --> 00:36:40,323
probably buggy, but it works.

432
00:36:40,811 --> 00:36:43,251
So, if you don't want to clone
a repository

433
00:36:44,755 --> 00:36:49,787
or you have just to have simple changes,
you can add your file in the web editor,

434
00:36:49,787 --> 00:36:52,185
you get a web editor with syntax
highlighting,

435
00:36:52,185 --> 00:36:56,248
you get even a markdown preview if you
just do documentation,

436
00:36:56,532 --> 00:36:59,657
so that's great for every one just doing
documentation

437
00:36:59,980 --> 00:37:03,396
that doesn't want to ??? with git

438
00:37:04,372 --> 00:37:08,806
or the code inside, you can even
preview it,

439
00:37:09,821 --> 00:37:11,571
then you can write a commit message,

440
00:37:16,440 --> 00:37:18,067
and that's it.

441
00:37:47,562 --> 00:37:51,787
What we also have is two-factor
authentication, which is a security feature

442
00:37:52,032 --> 00:37:54,920
that allows you to add a second factor
to your Gitlab login.

443
00:37:55,776 --> 00:38:04,305
I can only recommend to use it, that's
well integrated and adds a lot of security.

444
00:38:08,614 --> 00:38:12,275
It works with Yubikeys or any U2F-compatible
key

445
00:38:12,926 --> 00:38:17,114
and also with software solutions that
implement TOTP,

446
00:38:17,439 --> 00:38:21,827
time-based one time passwords.

447
00:38:23,368 --> 00:38:28,610
So every TOTP-compatible generator also
works, for example the Google authenticator

448
00:38:28,610 --> 00:38:32,267
but there are also others which are
open source, that all works.

449
00:38:33,164 --> 00:38:34,626
Adding it is easy.

450
00:38:38,807 --> 00:38:41,815
???

451
00:38:46,534 --> 00:38:47,308
It's easy.

452
00:38:48,080 --> 00:38:51,291
What you can't see now is me getting
my smartphone out,

453
00:38:51,982 --> 00:38:54,899
scanning the bar code, generating a PIN
code,

454
00:38:56,367 --> 00:38:59,856
and in 2 seconds I will enter the PIN code

455
00:39:08,441 --> 00:39:10,559
What you see here are recovery codes,

456
00:39:10,917 --> 00:39:12,673
I will mention them in a few minutes.

457
00:39:14,176 --> 00:39:19,304
You can use them to recover your account
if you lost your one-time password generator

458
00:39:20,891 --> 00:39:22,684
So, if I log in now,

459
00:39:28,246 --> 00:39:32,444
I have to use my smartphone to generate
an authentication code, add it,

460
00:39:32,889 --> 00:39:34,595
and now I'm in, that's it.

461
00:39:35,041 --> 00:39:36,780
So it's pretty easy.

462
00:39:37,517 --> 00:39:44,305
Some people say "Oh, what if I lost
my token, that is such much work."

463
00:39:45,603 --> 00:39:46,663
No, it's easy.

464
00:39:46,988 --> 00:39:49,548
If you want to recover your token,
I do that all the time,

465
00:39:49,548 --> 00:39:56,051
you can just use SSH and do
"ssh git@salsa.debian.org"

466
00:39:56,659 --> 00:40:00,847
and the command "2fa_recovery_codes"
which will generate you

467
00:40:00,847 --> 00:40:03,003
a number of new recovery codes,

468
00:40:04,093 --> 00:40:06,456
and you can use it to log in.

469
00:40:06,905 --> 00:40:12,350
So if I don't have my authentication
token with, I just use this every time.

470
00:40:14,504 --> 00:40:15,843
It works.

471
00:40:16,290 --> 00:40:18,864
And SSH also has an other token.
Huh?

472
00:40:18,864 --> 00:40:20,234
[Q] It's cheating.

473
00:40:20,287 --> 00:40:22,742
[A] No, it works, it's a second factor,
so it's fine.

474
00:40:29,160 --> 00:40:31,638
So, the API.

475
00:40:31,759 --> 00:40:33,464
I have to get faster.

476
00:40:37,731 --> 00:40:40,495
Gitlab exposes a powerful JSON REST API,

477
00:40:41,026 --> 00:40:44,311
that allows you to query and to manipulate
nearly all aspects of Gitlab.

478
00:40:44,595 --> 00:40:49,919
If I say "all", I really mean all, nearly
everything you can do with the web frontend

479
00:40:49,919 --> 00:40:51,425
is covered by the API.

480
00:40:51,751 --> 00:40:55,699
The API has an extensive documentation
in that link.

481
00:40:56,999 --> 00:41:01,634
Ensure that you use the CE, for
"Community Edition", in the docs,

482
00:41:02,070 --> 00:41:06,879
otherwise you will see features that
aren't available in our edition.

483
00:41:09,358 --> 00:41:10,981
You can use it for everything.

484
00:41:12,400 --> 00:41:16,711
Small hint, you often see the term
"namespace ID".

485
00:41:17,800 --> 00:41:22,195
In nearly all cases, you can replace
the namespace ID with the path

486
00:41:22,195 --> 00:41:26,788
of the project, of the thing, mostly
projects,

487
00:41:26,788 --> 00:41:31,701
but if your project includes slashes,
which is nearly always the case,

488
00:41:31,701 --> 00:41:40,858
you have to replace a slash with "%2F"
and you can use it as the namespace ID

489
00:41:40,858 --> 00:41:47,307
so you don't have to look up every time
your IDs, you can just use names.

490
00:41:51,380 --> 00:41:52,600
Some examples.

491
00:41:52,968 --> 00:41:54,227
Get data about your user.

492
00:41:54,227 --> 00:41:56,338
If you want to know ???
in your user,

493
00:41:56,338 --> 00:41:58,493
you can just ask the API.

494
00:41:59,185 --> 00:42:02,807
For every use of things that need
authentication,

495
00:42:02,807 --> 00:42:05,122
you need to generate a private token,
which is easy,

496
00:42:06,179 --> 00:42:10,403
just go to your profile and there's
a link to access tokens

497
00:42:10,403 --> 00:42:12,315
and generate one for your usecase.

498
00:42:12,599 --> 00:42:14,658
You can also add expiration dates.

499
00:42:17,143 --> 00:42:20,853
Even if I use curl here, I can only
recommend to use a proper library.

500
00:42:21,747 --> 00:42:24,919
Don't use curl, please do me a favor and
don't use curl.

501
00:42:26,343 --> 00:42:31,058
There's a bunch of ???
flying around ??? curl

502
00:42:31,546 --> 00:42:35,325
then they hit the first time pagination
or something like that,

503
00:42:35,325 --> 00:42:37,322
and they start wondering why
it doesn't work.

504
00:42:39,594 --> 00:42:42,972
There are Python libraries, Ruby libraries,
Perl libraries for Gitlab,

505
00:42:43,377 --> 00:42:46,097
so we have everything in place that
you need.

506
00:42:46,992 --> 00:42:50,000
What you can do too, create a repo
in your namespace.

507
00:42:50,326 --> 00:42:52,929
If you do it that way, the repo will be
private.

508
00:42:53,457 --> 00:42:56,181
Of course, there are parameters to create
a public repo,

509
00:42:56,181 --> 00:42:58,539
but that means you have to read
the documentation.

510
00:43:06,022 --> 00:43:09,550
List open merge requests of a project,
also easy,

511
00:43:10,367 --> 00:43:14,149
just go to Projects, which is a namespace
for project-related stuff,

512
00:43:14,961 --> 00:43:17,675
add your project, in my case it's
"AliothRewriter",

513
00:43:18,974 --> 00:43:22,020
it's a merge request, ???
specific state

514
00:43:22,303 --> 00:43:28,470
and you get a nice formatted JSON
to get nice JSON you can format

515
00:43:29,689 --> 00:43:31,356
to list all your merge request.

516
00:43:31,722 --> 00:43:33,185
So, I have to get to an end.

517
00:43:34,482 --> 00:43:35,830
How to get support.

518
00:43:36,883 --> 00:43:40,540
If you have any problems with alioth,
you can of course talk to me or to ganneff

519
00:43:43,382 --> 00:43:47,369
The channel is still #alioth, and will
probably stay for some time.

520
00:43:49,732 --> 00:43:55,185
You find us on IRC, you can ???
e-mail, salsa-admin@debian.org.

521
00:43:56,363 --> 00:43:59,492
We also have an issue tracker, so if you
have a problem, open an issue

522
00:43:59,816 --> 00:44:03,881
but please don't open upstream gitlab
stuff in our issue tracker.

523
00:44:04,159 --> 00:44:06,158
If you have a problem with salsa, fine,
create a ticket.

524
00:44:06,518 --> 00:44:09,695
If you have some problem with how Gitlab
is doing things,

525
00:44:09,981 --> 00:44:13,876
or have found a bug in Gitlab, please
do us a favor and open those bugs

526
00:44:13,876 --> 00:44:17,540
in the Gitlab issue tracker because it's
the same thing we would have to do,

527
00:44:18,884 --> 00:44:20,878
and we won't ??? your bugs.

528
00:44:24,375 --> 00:44:26,934
How we do it. If you're interested in
how we did those stuff,

529
00:44:28,359 --> 00:44:31,936
we are all doing it unprivileged in git
on godard.debian.org,

530
00:44:32,344 --> 00:44:35,349
and everything we do is automated
via ansible

531
00:44:35,761 --> 00:44:40,678
and you find it in our ansible repository
in the salsa group on salsa.debian.org.

532
00:44:43,921 --> 00:44:45,145
Who are we?

533
00:44:48,796 --> 00:44:50,677
Salsa currently has 3 administrators:

534
00:44:51,246 --> 00:44:56,576
Bastian Blank (waldi), Jörg Jaspert (ganneff)
here, and me.

535
00:45:03,159 --> 00:45:05,429
My picture is gone.

536
00:45:06,129 --> 00:45:09,177
What you would see here is a "thanks"
picture.

537
00:45:09,299 --> 00:45:14,180
Thank you for your attention, and we have
maybe 1 or 2 minutes left for questions.

538
00:45:14,996 --> 00:45:22,638
[Applause]

539
00:45:27,226 --> 00:45:30,966
[Q] I have a quick question about SSO
going down.

540
00:45:31,170 --> 00:45:34,221
Is SSO going down with alioth? On the first
of June?

541
00:45:34,466 --> 00:45:35,278
[A] No, but…

542
00:45:35,604 --> 00:45:38,901
As mentioned in the announcement,
I usually do wide annoucements

543
00:45:38,901 --> 00:45:40,320
and I hope people read it.

544
00:45:41,172 --> 00:45:47,756
I will back up authentication database
of alioth to ???.debian.org,

545
00:45:47,756 --> 00:45:50,316
which is the host running SSO

546
00:45:50,518 --> 00:45:57,397
and I will maintain those users by hand
until we have the new SSO backend ready.

547
00:45:58,006 --> 00:46:01,825
[Q] So, if there's people going to
the registers of debconf, which are not

548
00:46:01,825 --> 00:46:07,353
Debian Developpers, in Taiwan, can they
still register after the first of June, or not?

549
00:46:07,758 --> 00:46:10,196
[A] They can, they can't SSO anymore
for registration,

550
00:46:10,196 --> 00:46:13,979
but they did implement a second
authentication, but…

551
00:46:14,872 --> 00:46:20,886
It's been 3 years since debconf doesn't
need SSO.

552
00:46:23,124 --> 00:46:25,148
Any further questions on salsa?

553
00:46:29,911 --> 00:46:33,325
[Q] I have a little question about salsa
at all.

554
00:46:34,097 --> 00:46:40,122
There is some howtos, how to create
an account on salsa,

555
00:46:40,122 --> 00:46:46,142
how to manipulate that account, create
repositories for example.

556
00:46:46,524 --> 00:47:00,256
I mean, just for people who never came
to it, just use it. ??? documentation.

557
00:47:00,662 --> 00:47:04,200
[A] Except for user registration, there's
nothing specific on salsa.debian.org,

558
00:47:04,200 --> 00:47:09,970
so you can just use the gitlab documentation
which has videos, webcasts,

559
00:47:09,970 --> 00:47:11,712
tutorials and so on.

560
00:47:11,712 --> 00:47:15,941
Just use it, it's good documentation,
nearly everything is covered by it

561
00:47:16,667 --> 00:47:19,480
and if you still have questions after that,
ask us.

562
00:47:20,049 --> 00:47:22,728
If you have Debian-specific stuff, look
at the wiki.

563
00:47:23,629 --> 00:47:30,418
wiki.debian.org/salsa/doc has nearly
everything, I hope, most things covered.

564
00:47:31,270 --> 00:47:34,482
If not, tell us, and in the end it's a wiki

565
00:47:34,767 --> 00:47:38,180
so if you find something or think it's
interesting for other people,

566
00:47:38,180 --> 00:47:40,292
please, please add it to the wiki.

567
00:47:43,870 --> 00:47:45,659
Any other questions?

568
00:47:48,790 --> 00:47:50,375
Ok, everything's answered.

569
00:47:50,620 --> 00:47:51,922
Thanks a lot again.

570
00:47:52,248 --> 00:47:57,440
[Applause]
