Skip to content
Extraits de code Groupes Projets
Valider fddec1e1 rédigé par Lionel Dricot's avatar Lionel Dricot
Parcourir les fichiers

Merge branch 'holodiline-master-patch-82931' into 'master'

Report-Jeremy-Holodiline

See merge request ldricot/lingi2401!291
parents ce2f96ba 9228b31b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# Open Source Contribution Project
| **Author:** | *Jeremy Holodiline* |
| ------------------------ | ---------------------------------------------------------------------------------- |
| **Date:** | 08/12/2022 (last update) |
| **NOMA:** | 45922000 |
| **Academic Year:** | 2022-2023 |
| **Open Source Project:** | [TheAlgorithms/Python](https://github.com/TheAlgorithms/Python) |
| **Pull Request made:** | [PR](https://github.com/TheAlgorithms/Python/pull/7998) |
| **License:** | [MIT license](https://github.com/TheAlgorithms/Python/blob/master/LICENSE.md) |
## Finding the project (October 2022)
To find a projet to contribute I searched on the "Explore" tab on Github. Then I choosed to look into projects that are in the "Algorithm" topic. I thought that it would be there I would be most likely to find a project that interests me. One of the first that appeared is the "TheAlgorithms" project. This projet is splitted into many projects corresponding of different languages (Python, C, Java, Javascript, C++ & Go). I choosed to contribute to the Python project because it's a language that I like and I'm comfortable with. The projet consists on implementing algorithms of several topics (mathematics, graphs, sorting, algebra, hashing, machine learning, solvers, etc.) and centralize them in one project. This projet is for learning purposes only. This projet is very active. There are hundreds of contributors, features, algorithms, pull request and nearly every day the project is updated.
## Project license
The projet is under a MIT License which is a permissive license (commercial use, modification, distribution, personal use, etc.), so basically a "do whatever you want" license. The only thing that we have to know and on they insists is that the code is without any kind of warranty and the project holders/authors/contributers are not responsible of any kind of malfunction.
## Compiling the project (November 2022)
The first thing I did is to read the contribution guildines. They basically describe the goal of the project, what is an "algorithm", what is the the license, the tests and the rules for the code syntax style. After that I cloned the code on my computer. I used "Ubuntu on Windows" as operating system which is a linux subsystem for Windows. For compiling and running the project it wasn't very complicated, the only requirement is to have Python 3 installed. I obviously didn't run every single file/algorithm because there are to many but I ran some of them, specifically those that are interesting for me and for my future contribution.
## Coding (November 2022)
After some days of browsing a lot of algorithms and some reflexion I decided to make my contribution for the polynomials in the maths topic. There was already a file with a class that represents polynomials that had some methods corresponding on polynomials operations (add, sub, derivate, etc.). My contribution was to add a new method to this class that calculates the root of a degree 1 polynomial (-b/a for a polynomial under the form ax+b).
## Pushing the projet and making a Pull Request (November/December 2022)
After coding and testing my method locally, I installed a plugin called "pre-commit". The guidlines asked to use this plugin that allows to run some tests automatically when we make a git commit command. These tests mainly check the code style and the documentation. After the tests passed I pushed my code to the repository in a new branch. Then I made a pull request where I had to describe what kind of modification I made. When the PR was created some tests ran on it (mainly the same tests as the pre-commit). After the tests passed successfully it was put in the open PR list waiting to be reviewed. More than hundred PR were waiting on this list on the moment mine arrived. I also added a comment under my PR to say that my PR passed all requirements and asking if someone can review it. After a week without any news I decided to join the Discord server of the projet in order to ask if a reviewer can check my PR. Someone responded with a ping to the python maintainer but I didn't have any other news for now (08/12/2022). I will obviously update this report if I got any new about my Pull Request.
## What I learned
What I saw during this project is that even with a small easy contribution, the steps until the Pull Request is merged to the main repository can be a lot and very complicated. Also, a living project depends on the activity of the contributors but also of the maintainers. Even a project with a high activity can be complicated to make a PR accpeted on it (too many PR, few maintainers/working on their free time, my PR is not enought interesting, etc.) or getting any feedback.
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter