 Most of us are contributors to some projects or we start projects, but sometimes you're interested in contributing directly to Python It's really interesting and rewarding. I'm going to explain to you how and why So first heads up is going to be a text slide presentation You don't have to take notes because I'll give you a link at the end Which is the master link which links to all the resources so you can just enjoy First we talk about documentation that's a common entry point because it's easy to get started with it And you see the result in the next day live, and you know you work on something that will help Everybody using the dogs on the next day. So that's a common entry point Then we can go to bugs which is the the meat of the work we do in Python a lot of it is new feature And a lot of it is bug fixing so everybody can help fixing bugs then More ambitious and complicated is proposing new features in the external library or in the language itself and Then we'll talk about a few other things Okay, so introduction that's a title I stole from a Python developer documentation It's called credo some guys and a mailing list. So this is the Python creator greater than rossum and This summarizes the development of Python in the early age Like there was the creator which is still called a benevolent dictator for life that's a joke from anti-Python, of course Which still has the the last say when we have a debate He decides this feels my instinct of how the language should behave and he's very rarely been wrong in 20 years Some guys means we have companies employees with free time employees without free time students some guy who was in high school and Everybody can be part of the contributors team And the mailing list actually know we have a lot of mailing list, but that's mostly What development happens? We have of course a bug tracker, which is a website, but most of it happened on the mailing lists Right now the development is more complex because we have more people two different mailing lists different repositories and And We have put together a guide last year developers guide while you have all the links and it will explain to you in more detail That's what I'm going to do how to get the code how to contribute and so on So first part documentation work First thing you're reading the Python documentation because you're using it you find a problem. What do you do? There's a link on each page where you can report a bug the quick way is to send a mail to the documentation mailing list and You'll someone will transform it into a proper bug report And maybe a make a patch That's the first thing you can just shoot a mail and it will be taken care of or you can create an income Sorry account in the bug tracker system and there you can say I found this problem I propose this solution or even make a patch If you want to just not report a problem, but also fix it You can get the Python code repository I am talk about it later and documentation is built from source files We use a system called Sphinx with a lightweight markup language called a restrict read text Which is some somewhat easy to use and from simple markup and text You can it generates the htma documentation and also PDF So Sphinx is easy to install on any platform and then you change the files You want a command which is make html and you will be able to see the result in your browser so you can check it locally and Then produce the the deep the patch to answer it looks that's Somewhat old ambition you have some efforts which have which have been started and stopped and most recently the the French speaking community the association francophone piton Started a new github repository. Well, it's easy to translate the doc to French and using a pull requests So that's something hot because for many people even though the language is in English with keywords Many in many areas in when learning when using its high school You start with your native language So it's an ongoing battle, but it's worth it Translating documentation and it can appeal to different people that people would do bug fixing. So that's really a worth use of time Now fixing bugs How to find a bug a lot of the time you just find a bug when you use Python Some things unexplained comes into your program and you found that some function does not behave as it should or as you would have thought or differently to what's documented So you can also do explicit bug searching you can look at the dog and say this is unspecified This is different than some what some of our platform does or some of our language My platform like Android or what Solaris has a problem with its C library So you can also do systematic testing It's interesting to use like static analyzers for the C code or to use a fuzzing tool like fuzzy or you just throw garbage at Python and you see if it crashes or not and That's how you can find bugs just naturally or looking for them both are useful Know how to report it Contrary to documentation we don't use a mailing list. It's always the bug tracker. It's a website It's bugs.pyphone.org You can log in with open ID or create an account with an email and there you can search if the bug exists And if it exists, if there's a patch, if there's a patch, is it reviewed? Is it good? Just apply it on your computer and see if it works otherwise you can create a new bug and The interface is a bit complex so you have to say okay if it's in the library or the core Python interpreter you can say if it affects version 2.7 or 3.2 and You have a nosy field which is interested person like a copy and If it's in the module like for example schlex you can type shlex and you will see a schlex is maintained by this Python core developer and you can click on the name and the person will get an email Now how to make a fix? That's a big part of our job if we are programmers a fix for Python Has a high level of quality with high standards. We can just make a fix without a test We use we have a comprehensive not comprehensive But a very big test fit to make sure we don't have regressions because if you fix something and you change the system You change some code behind the scenes your bug can come again so You can also make a patch with a fix without a test and some a second person can do it. That's also a useful contribution Right and then in the end This is all explained in the developers gate grid you use a material command to the version control system to make a patch Which is then applied we don't use a pre-request system We use my career so that everyone can keep a clone, but in the end you make a patch and the patch is applied How to have fun sprints like these goats. It's more funny to To be together and to to profit from more experienced developers or just you know People are shy. We have a mailing list, which is called a co-mentorship Where all questions are welcome? there is no stupid questions and we we help people at the time to Compile Python install the dependencies use the version control system they ask is this a bug worth reporting or not Is this a mistake on my part and in this mailing list? You can ask everything you want, but it's more fun instead of being at home alone to have a sprint Which is a gathering of programmers who want to fix bugs sometimes a sprint is to work on some features on some project But you can also have a bug sprint. We're going to have one this Saturday at caravan The whole day and people will join us on IRC from the rest of the world And we're going to fix as many bugs as possible. So there if you're interested in contributing to Python you can just come Just you just need to know to program and will help each other doing fixing the fixes for Python You can follow the Montreal Python mailing list or blog. I send the mail with the exact details tomorrow probably And we're soft prints have conferences. It's really fun because at the conference you you get stuff for you you learn about Everything in the talks you attend, but you can also give back and network with people and contribute something with a sprint So that's a really good thing To become a contributor No proposing features Yeah, there's a high barrier to Changing the language itself, but lower barrier for the Stoner library What to do It's nothing goes without saying but It's Yeah, if you say this is useful if you have use case if you can compare with other languages without saying this This language is better Python sucks But if you can make constructive proposals with use cases or pointing a source of confusion for people You can make a useful proposal You need to have a bit of time because some features just go to a bug request Which is a request for enhancement and it will be accepted like this module misses the small thing it would help Other things are discussed on the Python IDs mailing list where you can also have wide IDs But it could lead up to a thousand email like recently there's talk about concurrency asynchronous stuff So yeah, when you throw an ID it can come back to you and bite you. It's very interesting That's how you make the language better That's how Python 3 was in the end done at first for just ideas like if we could break compatibility We could do this better. This would be less confusing and so on and in the end it was done So we already have a list of 20 items for Python 4 which is going to to come in 20 years and Yeah, but there are still ideas that are implemented in Python 3.2 Python 3.3 and which are going to come from 3.4 And if you have a good ideas you can propose it But please do it in a polite constructive ways Because what not to do we have on the mailing list trolls. We have name-calling We have Python 6 we have I demand you implement this and that's just know how it works in a free software project with volunteers so You're going to be frustrated if you're in a vendor client mentality While you demand stuff you really need to to think Python is not them It's us so you can't be a part of it and be empowered to to propose changes But yeah, don't feed the trolls Other areas Advocacy most of us will agree that Python rocks, but In my opinion, thank you In my opinion in Cipantan to always be constructive When we say this and this sucks even if it's true Java we It's more interesting to to to recognize the strengths of our languages and say Python is good in this area Fun boys I tend to it we tend to it but it can harm the image of the language and as members of the community represent the community and if we are heated if we are stubborn in discussions Like I am often it can hurt the global image and it doesn't help Python So if you are moderate people and you like to write for instance, but you go to conferences or two meetings or local communities You can help Python without coding, but with advocacy and that's also useful We have a lot of people still to convince in the industry so the global IT industry Governments or schools and if we believe that Python can really help like learning how to program in high schools or just you know removing pain in a lot of environments We can use positive arguments to advocate Python and make it grow Blogging you can of course blog on your own blog and you can be syndicated to Planet Python and It's always useful to have a success stories return of experience libraries new projects use case success stories and Yeah on your own blog you can also contribute to the official Python blog you have the Python software foundation, which is the legal umbrella of a Python and You have the Python foundation blog white Like the awards are announced or the really big big projects or grants And you also have the Python inside our blog It's a new blog just only one year old Well, we announced the big stuff for people who don't have the time to follow the mailing list So we say this platform is going to be removed in Python 3.3 This new big change was done in the email module and and so on and this is translated So they are teams of volunteers which are quite small right now and you can translate this into a French for instance and That's a very useful contribution if you don't have the time to program because that's your job for instance You can still do something which is really useful That's the master links. I was talking about dogs.byphone.org is the documentation of the language and library and if you happen dev guide You have everything you need to know how to download Macorial how to make a patch Some guidance on how to write a test How to get the dog what's the markup for the documentation? Everything's there. It's from my first patch my first bug report to being a core developer I did that in four months. You can do it That's just the links for all the images because I'm a hippie free software enthusiast questions