 Thank you So I am Sylvain. I am part of the Savanna Hacker's group and I'm going to talk to you about Savanna So what is it? If you already saw this website, then you have already been to the one of the project that is hosted on your platform Savanna is essentially like other hosting platforms such as Thoughtforge or Davian Aliott or Launchpad It is sponsored by the GNU project. We have 3,200 projects around more than 40,000 users What do we provide? We provide tools for you to work efficiently on your project in your team So we provide VCS-E such as CVS, SVN, Git, Marker, Al-Bazar We provide back trackers so you can report back to your project We have an upload area for you to put files, which is mirrored worldwide We also have mailing lists and webpages, static webpages, which are Those are on another infrastructure. So I'm not going to present them in details. We have jobs. That means you want to look for a developer for your project and You can say I'm looking for a C developer or for a technical writer You have an interface to post the jobs and people can browse the jobs and check what projects they want to contribute to And all of this is free advertising. On our hosting platform, we use advertising We can see that when you look at the project, you can see advertising for proprietary competitors So we don't run ads on the server A brief history. So it all started in 2001 Well, we decided to take the existing serious infrastructure and put it more structured And we used the source-forge source code. Source-forge is a website. It was also a source code A piece of source-forge that you could install on your own computer to make your own source-forge So we use that and install it at Savannah's because it was a good methodology to be efficient when you work in team Sadly, it quickly became proprietary So we decided to run our own fork of this code We've been maintaining it ever ever since in 2002 we opened the platform for non-new project Previously it was only for new projects. I know everybody can contribute to the project Host a project on the platform If they meet a few requirements In 2004 we decided to make things more clearer The code was called Savannah and the website was called Savannah also So we decided to call the code Savannah to make things clearer And then at the top of the dates, but we since then we've added more support for more VCSs I mentioned Geed Bazaar We have cleaned up the system level with a lot of virtualization first with the server on with the exam We've introduced mirrors and our latest Work is rewriting the code. I will mention it later So what is different in all platform first? We are we're showing that we can make a free hosting platform using only 100% free software. We don't use any non-free software. You don't have any need to We use in particular old package from from devian on all the code that we code including seven Is under the AGPL license the AGPL license is a GPL for web applications If you make a GPL web application and somebody takes it make changes on put it on a website He did not have to give you back the changes with the AGPL He asked to provide you to the changes so you have to contribute back to the community I recommend AGPL for your web-based applications And also we want to promote base licensing practices When a project is submitted to our platform we review it for legal issues Ever since the SEO attack on the Linux kernel We know that we have to be perfectly clean on licensing and so we have to warn people we want to educate them about What's dangerous as I might Encounter on what they should do a bit of what this is recent apparently So so sort of Google code are no blocking countries Based on the origin of the visitors So our IP to countries databases and they decided to block completely users from using or contributing to the platform So this is a problem or some people are moving towards our team platform because of this So currently I don't have an official position, but Because this is a very recent that we do not intend to apply such such blocks If there is a problem if the US government because the service located at Boston if there was governments For us to make such Such blocks we have a backup hosting plan in France that you might migrate to hopefully not So now let's talk a bit about the technical details So first it is not exactly this hard one. I found the perfect picture later So we recently moved to another hardware It is donated by the free software foundation it is quite a good computer we hadn't changed it for five or six years so it is relieving The other identity but fsf on it is hosted at the global maps, which is donated Which is donating the colocation that is a space to physically place the server on the bandwagon So we have good hosting condition Now we can implement more services easily Yes, we recently switched to exam because fsf infrastructure is also using them, which means that if this particular box is crashing then we might easily migrate to other Hardware easily enough I have to mention now also. This is another installation of the sovereign software, which is located in France So again everything is torn on a single box and it is easily hosting 1300 projects, so you do not if you don't have to have a lot of expensive hardware to run your own forge It is very efficient So let's have a look at the architecture So So seven is the central component. It is essentially the glue that makes everything together People use the web interface This changes the database at this level and then so is a lot of system level scripts That replicates the database to all the services that we provide Vcs is the main list the websites etc So we have two distinct parts Above the front and which is the web interface on the system back and which is the system All the system stuff Now we're going to say what? We are going to make changes. We are making changes to both of those. I'm going to introduce what we are working on right now So first the front end I Said we forked the search for original code which is Like ten years old. It wasn't really so great. It didn't use a model view controller models So we try to clean it up, but we face the fact that this is not enough We also saw that there are a lot of new web frameworks that allow to program efficiently and we consider that we might more easily we write All the the web front end using far less code was doesn't try to clean up the existing code So that's what we are working right now we also wanted to Use something else on PHP because PHP wasn't so satisfying as a programming language and are a few legal issues because since the PHP license is not compatible with the GPL license. You might have problems with PHP extensions. Don't use a PHP license So we try to find a good web framework and a good programming language and essentially we choose Python and Django Python might not be the greatest language which it is a good compromise and Django has a Lot of advantages in particular. It is very well documented so that newcomers might Quickly learn how it works and it is also not so complicated. So again Somebody who wants to contribute does not need months of experience. You can learn the basic of Django in a couple weeks There are some limitations because It is not really meant for reusable applications. So we had to choose a few naming conventions Do some tests, but I think we did it right now at the same time. We try to clean up the backhand So the system level Previously We are the huge cron job that was supposed to take the database and Merge it with the system trying to preserve the system changes and it was not very maintainable on We decided to use NSS. NSS is a name service switch Which is a standard UNIX way to access your users. You can put your users out there in a slash etc slash password or such this group and with NSS you can put it in an LDAP directory And you can also put it in our SQL database and that's exactly what we did so now each time you we make a change using the web front end to the Database it is immediately replicated to the system. So there is no replication. It is directly available It greatly simplifies the code because all of the complexity is delegated to NSS Or cron jobs, we still have cron jobs. For example, we have a cron job That is used to replicate all the usage keys to the system and source cron jobs are really simpler to write This is a time-training slide. I'm going to talk about it later So what I wanted to say is that we are greatly looking for contributors in particular, we are looking for Moderators, that is we want people to review the projects and verify the licensing good practices so that we can So that we can approve projects more quickly We are also looking for web designers because we think that our design is a bit old-ish now and we would really like to make it more attractive We are also looking for coders. This I explained for programming the new web front-end adding new features and We're also looking for system administrators because each time we add a new feature. It's like we add a new VCS it requires experiences, skills and also requires time to deal with users, request, upgrade the system, make sure it is good that it's a greater level and make it evolve So currently we would like to introduce more services and we would like more system administrators to Implement these changes So what are the challenges if you want to contribute? First you have 80% of history. So you have to make sure that all the history is kept clean It is quite easy to make a new service from scratch without any data. Here you have to respect all the data that is existing or maybe migrate it to something more clean Also, this is a web service, which means there can only be one version at once. You cannot fork the service and put it on on your computer because you want it to be available for everybody. You can Just copy parts hardware. You can copy parts the bandwagon So we have to you only have one website. Only one can work at once So we have to first please everybody And then we when we make a change we have to make sure that it is perfectly clean before putting it into the public. We cannot really make release candidates So we have to have a good testing environment Also, I said that we are 80% of data We have to think about the future in 80 years. We will also have to maintain this data. So we we cannot just go to the fashion service implemented if we know that we might have trouble to maintain it in the long run. We have to think about it At the security level we decided to Restrict shell access. If there is a vulnerability in the kernel People won't be able to exploit it because they are using a restricted shell. We will of course try to patch the security issues as soon as possible But at least the window the vulnerable window won't be as critical So this has a certain number of impacts in particular people can do things on their owner This needs to be implemented. We need to have current jobs for everything that people need to do And it needs to be scalable. It is easy to make a service for 10 projects But when it comes to 300 projects 3000 projects Then we can't manually fix things. So we have to make sure that everything works Usually what we do is we implement it as beta for a few selected projects and when it is fine We implement it for all the platforms and thank you Do you have any questions?