WEBVTT 99:59:59.999 --> 99:59:59.999 Ok, welcome back to the second session of the day. 99:59:59.999 --> 99:59:59.999 It's going to be Alexander Wirt talking about salsa.debian.org. 99:59:59.999 --> 99:59:59.999 [Applause] 99:59:59.999 --> 99:59:59.999 Thank you, good morning. 99:59:59.999 --> 99:59:59.999 I usually don't give talks in english, so please be nice to me. 99:59:59.999 --> 99:59:59.999 However, I'm here. 99:59:59.999 --> 99:59:59.999 I want to talk today about our journey for Alioth 99:59:59.999 --> 99:59:59.999 which is still running, but not for long anymore, 99:59:59.999 --> 99:59:59.999 to our new service, salsa. 99:59:59.999 --> 99:59:59.999 I want to get a little bit into the history of old things 99:59:59.999 --> 99:59:59.999 and what we have already achieved, what we still need to achieve 99:59:59.999 --> 99:59:59.999 and what are our plans for the future. 99:59:59.999 --> 99:59:59.999 Let's start with the basic things, who am I. 99:59:59.999 --> 99:59:59.999 I am the guy who rejects the mails on lists.debian.org, 99:59:59.999 --> 99:59:59.999 I am a listmaster. 99:59:59.999 --> 99:59:59.999 I am the guy that rejects your backports. 99:59:59.999 --> 99:59:59.999 I am the backports ftp master. 99:59:59.999 --> 99:59:59.999 And I am the guy that will destroy alioth.debian.org. 99:59:59.999 --> 99:59:59.999 For the last ten years 99:59:59.999 --> 99:59:59.999 [Applause] 99:59:59.999 --> 99:59:59.999 I was an admin by accident of alioth.debian.org. 99:59:59.999 --> 99:59:59.999 This is another story I will tell you in a few minutes. 99:59:59.999 --> 99:59:59.999 Beside from that, I work as an OpenSource consultant at credativ, 99:59:59.999 --> 99:59:59.999 which is a small company in Germany which is specialized in OpenSource, 99:59:59.999 --> 99:59:59.999 we only do OpenSource consulting in Germany. 99:59:59.999 --> 99:59:59.999 We do what today is called DevOps, we do every kind of consulting. 99:59:59.999 --> 99:59:59.999 If you do something with OpenSource, we are probably the ones you can talk with. 99:59:59.999 --> 99:59:59.999 I am a father of two wonderful girls, 99:59:59.999 --> 99:59:59.999 they're not here unfortunately, 99:59:59.999 --> 99:59:59.999 but otherwise I wouldn't be able to work. 99:59:59.999 --> 99:59:59.999 And in my little bit spare time, I do role playing games and Tabletop games. 99:59:59.999 --> 99:59:59.999 In theory there should be a picture now. 99:59:59.999 --> 99:59:59.999 There's a picture missing, I don't know why, 99:59:59.999 --> 99:59:59.999 which should tell "We need you". 99:59:59.999 --> 99:59:59.999 A little bit of advertisement, if you want to do OpenSource work in Germany, 99:59:59.999 --> 99:59:59.999 paid, 99:59:59.999 --> 99:59:59.999 and you need a job, please talk to me. 99:59:59.999 --> 99:59:59.999 We are always looking for good people, especially in C development, 99:59:59.999 --> 99:59:59.999 kernel development, but also of course consulting. 99:59:59.999 --> 99:59:59.999 So please talk to me. 99:59:59.999 --> 99:59:59.999 Some steps in history. 99:59:59.999 --> 99:59:59.999 Some years ago, ??? 2008, 2009, 99:59:59.999 --> 99:59:59.999 I told the alioth channel 99:59:59.999 --> 99:59:59.999 "Hey, if you need help, I can help with system administration, 99:59:59.999 --> 99:59:59.999 not the GForge stuff which is running above, 99:59:59.999 --> 99:59:59.999 but if you need help, tell me." 99:59:59.999 --> 99:59:59.999 [Audience] Big mistake 99:59:59.999 --> 99:59:59.999 Yeah. 99:59:59.999 --> 99:59:59.999 One or two years went by, and step by step 99:59:59.999 --> 99:59:59.999 all alioth admins left. 99:59:59.999 --> 99:59:59.999 We were alone in the channel. 99:59:59.999 --> 99:59:59.999 And around that time, I detected 99:59:59.999 --> 99:59:59.999 "Hey, I have sudo permissions and I'm admin" 99:59:59.999 --> 99:59:59.999 Somebody made me an admin. 99:59:59.999 --> 99:59:59.999 So, I had to decide that I will be the person that is the future alioth admin 99:59:59.999 --> 99:59:59.999 and I stepped in. 99:59:59.999 --> 99:59:59.999 So it was the beginning of our alioth journey. 99:59:59.999 --> 99:59:59.999 Then, in DebConf15, we had a long 'Birds of a Feather' 99:59:59.999 --> 99:59:59.999 where we talked about several security problems in collab-maint, 99:59:59.999 --> 99:59:59.999 some of you are maybe not aware of it, 99:59:59.999 --> 99:59:59.999 but since we use git at filesystem level on alioth, 99:59:59.999 --> 99:59:59.999 we are introducing a number of interesting security problems 99:59:59.999 --> 99:59:59.999 like if someone writes a hook, that hook gets executed every time someone pushes. 99:59:59.999 --> 99:59:59.999 So you have basically shell access. 99:59:59.999 --> 99:59:59.999 And of course you execute it as your own uid. 99:59:59.999 --> 99:59:59.999 So, if some DM (Debian Maintainer) or even not DM, nearly the whole world 99:59:59.999 --> 99:59:59.999 has write access to collab-maint, 99:59:59.999 --> 99:59:59.999 drops some hooks in, 99:59:59.999 --> 99:59:59.999 it can make you execute code on Alioth at your uid, which is a problem. 99:59:59.999 --> 99:59:59.999 We did some things to solve that problem, but the main problem remained. 99:59:59.999 --> 99:59:59.999 So, along that time, we decided that we would need a successor for git.debian.org. 99:59:59.999 --> 99:59:59.999 At that point, we are talking about gitolite 99:59:59.999 --> 99:59:59.999 which we evaluated at that time. 99:59:59.999 --> 99:59:59.999 However, as ??? 99:59:59.999 --> 99:59:59.999 Two years went into the land and nothing real happened, 99:59:59.999 --> 99:59:59.999 we just played with it. 99:59:59.999 --> 99:59:59.999 Then, May 2017, a thread comes up, "Moving away from fusionforge". 99:59:59.999 --> 99:59:59.999 What nobody was really aware of, is that alioth is on a Wheezy machine 99:59:59.999 --> 99:59:59.999 and Wheezy is ??? out of security support end of the month. 99:59:59.999 --> 99:59:59.999 So time was running up. 99:59:59.999 --> 99:59:59.999 The thread was long as usual on debian-devel and 99:59:59.999 --> 99:59:59.999 we decided to do a few steps, like evaluating things 99:59:59.999 --> 99:59:59.999 and in June 2017, I did a survey about our new alioth services. 99:59:59.999 --> 99:59:59.999 It was clear at that point that I wouldn't be able to maintain all the things 99:59:59.999 --> 99:59:59.999 alioth had in the future 99:59:59.999 --> 99:59:59.999 so we decided to just bring over the important things. 99:59:59.999 --> 99:59:59.999 What is important? For everyone, everything else is important 99:59:59.999 --> 99:59:59.999 so I decided to do a survey which was pretty successful 99:59:59.999 --> 99:59:59.999 with a few hundreds submissions. 99:59:59.999 --> 99:59:59.999 Then, in… 99:59:59.999 --> 99:59:59.999 Then we evaluated… "we" as probably "me", 99:59:59.999 --> 99:59:59.999 evaluated a few solutions, named pagure, which is the git solution Fedora is using, 99:59:59.999 --> 99:59:59.999 which is a Python thing based on gitolite, 99:59:59.999 --> 99:59:59.999 gitlab, which is the biggest Github competitor 99:59:59.999 --> 99:59:59.999 gogs/gitea, which is some golang-based small git service. 99:59:59.999 --> 99:59:59.999 pagure turned out to be not stable enough for our needs 99:59:59.999 --> 99:59:59.999 and we would have to do to much coding inside pagure to use it in our infrastructure 99:59:59.999 --> 99:59:59.999 because pagure is very strongly ??? with the Fedora infrastructure, 99:59:59.999 --> 99:59:59.999 specially its user authentication and user management stuff. 99:59:59.999 --> 99:59:59.999 Gitlab had an other problem called "opencore" and 99:59:59.999 --> 99:59:59.999 "contributor license agreement" which means 99:59:59.999 --> 99:59:59.999 I and others were not very happy with contributing code to Gitlab 99:59:59.999 --> 99:59:59.999 which is something that will always happen if you maintain such a service. 99:59:59.999 --> 99:59:59.999 And gogs and gitea is nice but it's small 99:59:59.999 --> 99:59:59.999 It will not be able to manage 10,000s of repositories. 99:59:59.999 --> 99:59:59.999 Next step happened in August 2017 when we had a sprint here in Hamburg 99:59:59.999 --> 99:59:59.999 at the hackerlab CCC on the other side of the building, 99:59:59.999 --> 99:59:59.999 where we talked about it. 99:59:59.999 --> 99:59:59.999 After long discussions, we decided to go with Gitlab 99:59:59.999 --> 99:59:59.999 because Gitlab, at that point, was the best solution that was already ready. 99:59:59.999 --> 99:59:59.999 We didn't have to adapt too much, we don't need to patch it 99:59:59.999 --> 99:59:59.999 which turned out it isn't true, but it's an other problem 99:59:59.999 --> 99:59:59.999 It had features like continuous integration ready, 99:59:59.999 --> 99:59:59.999 it had features like code review ready, wiki pretty good working 99:59:59.999 --> 99:59:59.999 and ??? very scalable in all directions 99:59:59.999 --> 99:59:59.999 Every component is scalable which is good for us. 99:59:59.999 --> 99:59:59.999 This is a TODO point, I wanted to add an image about the restaurant 99:59:59.999 --> 99:59:59.999 where we decided on the name "salsa". 99:59:59.999 --> 99:59:59.999 Somebody of you may ask yourself where the name is coming from. 99:59:59.999 --> 99:59:59.999 There's a small mexican restaurant a few hundred meters from here 99:59:59.999 --> 99:59:59.999 where you can get great burritos and they have a painting at the back 99:59:59.999 --> 99:59:59.999 with the term "salsa" written 99:59:59.999 --> 99:59:59.999 and we were deciding on a name which just not describes the type of service on it 99:59:59.999 --> 99:59:59.999 so we wanted… 99:59:59.999 --> 99:59:59.999 Yes, it's also a sauce. So salsa had sauce. 99:59:59.999 --> 99:59:59.999 I wanted to call it Klaus, but we decided against it so somebody came up 99:59:59.999 --> 99:59:59.999 in the restaurant with the name "salsa" and so it's called salsa. 99:59:59.999 --> 99:59:59.999 In the meanwhile, we talked a lot with the Gitlab people 99:59:59.999 --> 99:59:59.999 which were very kind and helped us with our problems. 99:59:59.999 --> 99:59:59.999 We also talked with them about the CLA problem and after some discussions, 99:59:59.999 --> 99:59:59.999 the lawyer of SPI was also involved, 99:59:59.999 --> 99:59:59.999 we made them to remove the CLA and replace it with something better. 99:59:59.999 --> 99:59:59.999 Contributing patches to Gitlab is now much easier and better 99:59:59.999 --> 99:59:59.999 which is something we are very proud of 99:59:59.999 --> 99:59:59.999 [Applause] 99:59:59.999 --> 99:59:59.999 And between November and the 25th of December, we implemented salsa two times 99:59:59.999 --> 99:59:59.999 First time on ???.debian.net where we had root but 99:59:59.999 --> 99:59:59.999 after more discussions we decided having this maintained at a (debian).org box 99:59:59.999 --> 99:59:59.999 would be better, which made us ??? ansible stuff 99:59:59.999 --> 99:59:59.999 and develop a ??? to be able to install gitlab as a non-privileged user 99:59:59.999 --> 99:59:59.999 but we did that. 99:59:59.999 --> 99:59:59.999 In Christmas, he was able to release salsa into public beta. 99:59:59.999 --> 99:59:59.999 Things went well, which allowed, at the end of January, salsa to leave the beta 99:59:59.999 --> 99:59:59.999 Since then it's official, our official git successor. 99:59:59.999 --> 99:59:59.999 What will happen in the future? 99:59:59.999 --> 99:59:59.999 Oh no, this is already past. 99:59:59.999 --> 99:59:59.999 On May, we disable user and project creation on alioth. 99:59:59.999 --> 99:59:59.999 Still in May, we disabled the not so much used version control systems, 99:59:59.999 --> 99:59:59.999 bazaar, mercurial and darcs 99:59:59.999 --> 99:59:59.999 On Thursday (May 17th 2018), I disabled projects web sites. 99:59:59.999 --> 99:59:59.999 And this is future, at the end the month, 99:59:59.999 --> 99:59:59.999 all other remaining version control systems on alioth will get disabled. 99:59:59.999 --> 99:59:59.999 So if you have anything running on alioth, still running on alioth, 99:59:59.999 --> 99:59:59.999 cron jobs are also disabled so you don't have cron jobs enabled anymore 99:59:59.999 --> 99:59:59.999 Be it whatever you think of, remove it. 99:59:59.999 --> 99:59:59.999 1st of June, alioth will be off, you won't be able to get any data anymore 99:59:59.999 --> 99:59:59.999 from alioth. 99:59:59.999 --> 99:59:59.999 You can get the ??? via DSA to get subsequent backups, that's up to you 99:59:59.999 --> 99:59:59.999 but I don't recommend it and they won't like it. 99:59:59.999 --> 99:59:59.999 Yeah 99:59:59.999 --> 99:59:59.999 In June, alioth will come to an end. 99:59:59.999 --> 99:59:59.999 It served us well for 10, 15 years, but its time is over. 99:59:59.999 --> 99:59:59.999 Some numbers. Where are we now? 99:59:59.999 --> 99:59:59.999 Yesterday (May 18th 2018), we had 23,700 repositories on gitlab, 99:59:59.999 --> 99:59:59.999 3200 users, 400 groups, which sums up around 90GB on disk, which is nice. 99:59:59.999 --> 99:59:59.999 For a service running for more or less 6 months, it's a pretty nice number. 99:59:59.999 --> 99:59:59.999 What are our future plans. 99:59:59.999 --> 99:59:59.999 ??? Docker registry, by now you can use external registries 99:59:59.999 --> 99:59:59.999 which is working 99:59:59.999 --> 99:59:59.999 You can the gitlab registry for Docker images 99:59:59.999 --> 99:59:59.999 but it will be nicer to have our own registry. 99:59:59.999 --> 99:59:59.999 That is pretty high on my todo list, after alioth is gone. 99:59:59.999 --> 99:59:59.999 We want more runners, so you are able to sponsor runners, if you have machines or 99:59:59.999 --> 99:59:59.999 some money you want to spend on runners, please tell us. 99:59:59.999 --> 99:59:59.999 What are runners? Runners are the things that are used by Gitlab CI to build code 99:59:59.999 --> 99:59:59.999 or test code, or do things. 99:59:59.999 --> 99:59:59.999 You can use it to build your packages, you can use it to autopkgtest you packages 99:59:59.999 --> 99:59:59.999 you can use it to build websites or whatever you like. 99:59:59.999 --> 99:59:59.999 It's pretty useful and I think using CI more will be a big step forward for Debian. 99:59:59.999 --> 99:59:59.999 We should really get more into it. 99:59:59.999 --> 99:59:59.999 There are already some projects like the reproducible builds, the debci guys 99:59:59.999 --> 99:59:59.999 that are working on such stuff 99:59:59.999 --> 99:59:59.999 and now we have the infrastructure that every DD, every developer or package maintainer 99:59:59.999 --> 99:59:59.999 can use it. 99:59:59.999 --> 99:59:59.999 There's also an other feature called 99:59:59.999 --> 99:59:59.999 "devops" which is based on kubernetes which allows you to even 99:59:59.999 --> 99:59:59.999 deploy and test things properly. 99:59:59.999 --> 99:59:59.999 So if you have package which implements a web service, you can even run 99:59:59.999 --> 99:59:59.999 ??? kubernetes part which runs a web server, 99:59:59.999 --> 99:59:59.999 you can test it, you can even record it, do QA test and so on 99:59:59.999 --> 99:59:59.999 all based on this devops feature which would also be a nice thing. 99:59:59.999 --> 99:59:59.999 By now, we don't have a kubernetes instance we can use for it, 99:59:59.999 --> 99:59:59.999 so if you have a spare kubernetes instance you want to offer Debian, 99:59:59.999 --> 99:59:59.999 please talk to us. 99:59:59.999 --> 99:59:59.999 And integration with sso.debian.org, which is another side project of mine 99:59:59.999 --> 99:59:59.999 and some of ??? students, sitting there. 99:59:59.999 --> 99:59:59.999 We want to build a successor for the command sso.debian.org 99:59:59.999 --> 99:59:59.999 which has a problem that it doesn't have a user backend, 99:59:59.999 --> 99:59:59.999 the user backend is alioth, you see the problem 99:59:59.999 --> 99:59:59.999 But it just the case for our guest users. 99:59:59.999 --> 99:59:59.999 The official Debian Developers come from the ldap which will still work, 99:59:59.999 --> 99:59:59.999 but we have a problem with guest users, so we currently don't have a way to 99:59:59.999 --> 99:59:59.999 source for managing those guest users, especially give additional groups like 99:59:59.999 --> 99:59:59.999 "Hey, the user's a DM" 99:59:59.999 --> 99:59:59.999 I would love to give all DMs access to the Debian group, write access, 99:59:59.999 --> 99:59:59.999 but I can't currently because I'm not able to ??? 99:59:59.999 --> 99:59:59.999 which is something we want to solve with the new sso.debian.org feature. 99:59:59.999 --> 99:59:59.999 sso.debian.org should also develop a new authentication protocol like OAuth2, 99:59:59.999 --> 99:59:59.999 which we will use for salsa but new services can also rely on, 99:59:59.999 --> 99:59:59.999 ??? a way from this certificate stuff which is somewhat nice 99:59:59.999 --> 99:59:59.999 but it's not that good integrated in most browsers anymore 99:59:59.999 --> 99:59:59.999 and it doesn't work that well. 99:59:59.999 --> 99:59:59.999 We hope to have, we already have a prototype, and we hope to have it live 99:59:59.999 --> 99:59:59.999 until the end of the summer. 99:59:59.999 --> 99:59:59.999 What we left behind. 99:59:59.999 --> 99:59:59.999 We don't have shells anymore. 99:59:59.999 --> 99:59:59.999 So you won't be able to run any cron jobs or other stuff on salsa and 99:59:59.999 --> 99:59:59.999 please don't ask, we won't give anyone a shell on salsa.debian.org or godard 99:59:59.999 --> 99:59:59.999 which is the host hosting it. 99:59:59.999 --> 99:59:59.999 We hape APIs, several of them, I will show them 99:59:59.999 --> 99:59:59.999 Please use them, we won't run any cron jobs or custom stuff on gitlab, 99:59:59.999 --> 99:59:59.999 it was a nightmare on alioth to maintain and to administrate 99:59:59.999 --> 99:59:59.999 and I will never, never want to get into this again. 99:59:59.999 --> 99:59:59.999 What we also don't have are custom domains which is a feature gitlab has, but 99:59:59.999 --> 99:59:59.999 DSA decided against it, so you will have to live with 99:59:59.999 --> 99:59:59.999 projectname.pages.debian.net until someone decides for that feature. 99:59:59.999 --> 99:59:59.999 We also left behind old version… not so much anymore version control systems 99:59:59.999 --> 99:59:59.999 like darcs, bazaar, subversion which isn't a problem, 99:59:59.999 --> 99:59:59.999 but we also don't have cvs anymore, which may be a surprise for someone 99:59:59.999 --> 99:59:59.999 but Debian is still a heavy user of cvs, especially for our web site 99:59:59.999 --> 99:59:59.999 and translations. 99:59:59.999 --> 99:59:59.999 But maybe they will now migrate faster away from cvs. 99:59:59.999 --> 99:59:59.999 They are working on it, I know, they're working on it for 10 years 99:59:59.999 --> 99:59:59.999 but things are getting faster and they're making progress 99:59:59.999 --> 99:59:59.999 in migrating away from cvs. 99:59:59.999 --> 99:59:59.999 Yeah, ???, that's right, we also left mercurial, 99:59:59.999 --> 99:59:59.999 or whatever people have in their home directory. 99:59:59.999 --> 99:59:59.999 Yeah we also had rcs on alioth, there were rcs repos, yes. 99:59:59.999 --> 99:59:59.999 What we got instead. 99:59:59.999 --> 99:59:59.999 We got a bunch of new features we didn't have before. 99:59:59.999 --> 99:59:59.999 So, this is such… maybe a start of new ways of working in Debian, 99:59:59.999 --> 99:59:59.999 we got a bunch of collaboration features. 99:59:59.999 --> 99:59:59.999 In the past, collaboration often meant finding the right mailing list, 99:59:59.999 --> 99:59:59.999 sending a patch and hoping. 99:59:59.999 --> 99:59:59.999 Now we can use merge requests, which allow people to easily fork and 99:59:59.999 --> 99:59:59.999 modify packages or repositories, and after they are done, they can just hit a button 99:59:59.999 --> 99:59:59.999 or whatever and create a nice merge request which is already heavily used 99:59:59.999 --> 99:59:59.999 by some projects like apt or dak or my own redirector. 99:59:59.999 --> 99:59:59.999 That allows ???, the admins of those repositories/projects 99:59:59.999 --> 99:59:59.999 to review code easily, they can add comments, they can discuss with 99:59:59.999 --> 99:59:59.999 ??? people out of the mailing list. 99:59:59.999 --> 99:59:59.999 If people update a bunch and they commited, those merge requests 99:59:59.999 --> 99:59:59.999 get updated which is a workflow we are also using very heavily in our company 99:59:59.999 --> 99:59:59.999 which is pretty nice in my eyes. 99:59:59.999 --> 99:59:59.999 This also allows contribution to packages from outside people 99:59:59.999 --> 99:59:59.999 It lowers the barrier for people to collaborate with Debian, 99:59:59.999 --> 99:59:59.999 which is in my eyes a good feature, 99:59:59.999 --> 99:59:59.999 something I always liked on Github and I'm happy we are having it too now. 99:59:59.999 --> 99:59:59.999 Gitlab has a nice feature of good, well designed web frontend, 99:59:59.999 --> 99:59:59.999 some things could be better, but it's always the case, 99:59:59.999 --> 99:59:59.999 but in most cases Gitlab is still blazingly fast 99:59:59.999 --> 99:59:59.999 except if you've hit some of the bugs in the API 99:59:59.999 --> 99:59:59.999 but that's an other problem. 99:59:59.999 --> 99:59:59.999 And you can work with it. 99:59:59.999 --> 99:59:59.999 If you don't like the web frontend, use the API, 99:59:59.999 --> 99:59:59.999 nearly everything the web frontend supports is exposed via the API 99:59:59.999 --> 99:59:59.999 And there are also a bunch of command line clients 99:59:59.999 --> 99:59:59.999 which can integrate into git to allow things like merge requests, 99:59:59.999 --> 99:59:59.999 allow you to process merge requests from the command line 99:59:59.999 --> 99:59:59.999 if you don't like web frontends. 99:59:59.999 --> 99:59:59.999 You can also open merge requests by e-mail if you still like it 99:59:59.999 --> 99:59:59.999 you can just hit the right buttons, you'll get a mail address 99:59:59.999 --> 99:59:59.999 that you can use. 99:59:59.999 --> 99:59:59.999 And if you send a patch to that mail address you will create a merge request, 99:59:59.999 --> 99:59:59.999 some of the not so known research. 99:59:59.999 --> 99:59:59.999 Issues. 99:59:59.999 --> 99:59:59.999 You can track todo items or bugs. 99:59:59.999 --> 99:59:59.999 Please, this is not intended for Debian packages, 99:59:59.999 --> 99:59:59.999 so please don't replace the BTS 99:59:59.999 --> 99:59:59.999 but using it as an issue tracker or todo lists is great. 99:59:59.999 --> 99:59:59.999 We are using it all the time. 99:59:59.999 --> 99:59:59.999 We're also having some upstream projects on salsa, like sane or ??? 99:59:59.999 --> 99:59:59.999 which is ??? 99:59:59.999 --> 99:59:59.999 So, they're using issues, that's fine too. 99:59:59.999 --> 99:59:59.999 Issues are disabled by default for a project, 99:59:59.999 --> 99:59:59.999 but every project has ??? to just enable it and to use it. 99:59:59.999 --> 99:59:59.999 You have boards where you can organize your work, 99:59:59.999 --> 99:59:59.999 you can add sprints, you can add milestones and other things, 99:59:59.999 --> 99:59:59.999 all the basic stuff you need to have an issue tracker is included. 99:59:59.999 --> 99:59:59.999 And we also enabled reply by mail so you don't have to use the web frontend, 99:59:59.999 --> 99:59:59.999 you can just use your mail client to reply ??? into gitlab. 99:59:59.999 --> 99:59:59.999 You can also close issues by merge requests. 99:59:59.999 --> 99:59:59.999 So, similar to our BTS, Gitlab has this "closes" feature. 99:59:59.999 --> 99:59:59.999 It's all the same. So "Close", "Closes"… and so on, it's all the same 99:59:59.999 --> 99:59:59.999 and we close here your issues. 99:59:59.999 --> 99:59:59.999 You can even close issues in other projects, 99:59:59.999 --> 99:59:59.999 so if you have projects related together and you fix something in another project 99:59:59.999 --> 99:59:59.999 you can even close it with that syntax. 99:59:59.999 --> 99:59:59.999 You can also create issues by mail, which is basically the same 99:59:59.999 --> 99:59:59.999 as for merge requests, 99:59:59.999 --> 99:59:59.999 you have that "email new issue" button where you get a custom mail address you can use 99:59:59.999 --> 99:59:59.999 and then you can use that mail address for the future 99:59:59.999 --> 99:59:59.999 to submit bugs if you don't want to use the issue tracker. 99:59:59.999 --> 99:59:59.999 What we also got are webhooks. 99:59:59.999 --> 99:59:59.999 Custom hooks are not anymore possible because you don't have access to 99:59:59.999 --> 99:59:59.999 the repositories directly 99:59:59.999 --> 99:59:59.999 but what you can use are webhooks. 99:59:59.999 --> 99:59:59.999 Webhooks are common standard in the web world, 99:59:59.999 --> 99:59:59.999 you can use them to react to events in your repository, 99:59:59.999 --> 99:59:59.999 events may be things like someone created an issue, someone created a pull request, 99:59:59.999 --> 99:59:59.999 someone pushed something, someone took something, things like that. 99:59:59.999 --> 99:59:59.999 And you can use those events to create IRC notifications, 99:59:59.999 --> 99:59:59.999 we have two IRC bots available for you to use, which is KGB 99:59:59.999 --> 99:59:59.999 and my own irker instance. 99:59:59.999 --> 99:59:59.999 You can automatically close or tag bugs 99:59:59.999 --> 99:59:59.999 If you look into our documentation, wiki.debian.org, 99:59:59.999 --> 99:59:59.999 you find a small paragraph about it where you can just, 99:59:59.999 --> 99:59:59.999 as we did before, if you close a bug and you enable the tag pending, 99:59:59.999 --> 99:59:59.999 tag pending webhook, your bug will be tagged automatically as pending 99:59:59.999 --> 99:59:59.999 like before if you used the ??? hooks on alioth. 99:59:59.999 --> 99:59:59.999 And you can also trigger external CI QA systems, like Jenkins or SonarQube 99:59:59.999 --> 99:59:59.999 or whatever you like to test you code. 99:59:59.999 --> 99:59:59.999 In the future, we will also use it for collab, for the collaboration stuff 99:59:59.999 --> 99:59:59.999 from tincho, where we will just forward every push happened on the whole salsa system 99:59:59.999 --> 99:59:59.999 so you don't have to configure that manually, it will happen automatically 99:59:59.999 --> 99:59:59.999 So if you contribute something to Debian, it will come up on collab.debian.net 99:59:59.999 --> 99:59:59.999 If you want to provide webhooks but you don't want to run your own web server, 99:59:59.999 --> 99:59:59.999 you can come to us, which means you have to code Ruby. 99:59:59.999 --> 99:59:59.999 We have our own webhook server implementation for salsa.debian.org, 99:59:59.999 --> 99:59:59.999 which is currently also running on salsa, but that must be the case in the future. 99:59:59.999 --> 99:59:59.999 So, if you want to run a webhook, provide us a patch for our webhook implementation 99:59:59.999 --> 99:59:59.999 which is pluggable, so write a plugin which listens to your webhooks, 99:59:59.999 --> 99:59:59.999 provide a patch, a merge request and we'll happily add it to our webhook implementation 99:59:59.999 --> 99:59:59.999 so it can be used for everybody. 99:59:59.999 --> 99:59:59.999 Documentation is in the wiki.