J'ai trouvé un excellent projet sur github avec une fonctionnalité centrale utile mais qui est rude dans le "polissage" de la gestion des erreurs, de la journalisation, de la configuration et de la configuration. Le projet est intact depuis 5 ans, et seulement quelques centaines de lignes de code. C'est quand même assez utile pour avoir attiré l'attention sur un nombre décent d'observateurs et une poignée de fourchettes.
Un ajout spécifique était nécessaire pour mon utilisation, mais avant cela, j'ai fait un peu de nettoyage. Ensuite, je suis devenu un peu obsédé par l'ingénieur et au cours d'une semaine, j'ai fini par ajouter un système de journalisation, beaucoup de journalisation, une installation automatisée, une configuration factorisée à partir du code et dans des fichiers de configuration externes (et du code pour les lire), ainsi que quelques corrections de bugs tels que je les ai trouvés.
Je pense que tous mes changements sont raisonnables / bons et sont ce dont ils ont besoin pour être utilisables par un public. Mais il y a beaucoup de commits, presque autant que le repo avait à l'origine (en évitant les chiffres pour garder ce général). De plus, git blame montre que j'ai touché presque toutes les lignes de cette (petite!) Base de code. Je ne cherche pas le contrôle du projet, ni même nécessairement le mérite de ce que j'ai fait. Mais étant donné le choix, j'aimerais voir mes modifications fusionnées afin que tout le monde puisse en profiter, plutôt que de se cacher dans une fourchette sur mon github inconnu.
Je n'ai jamais soumis de pull request auparavant, mais je sais qu'elles devraient être petites et faciles à examiner. Pourtant, ici, je suis parti et j'ai apporté une grande quantité de changements transformateurs.
Mes engagements sont très nets car j'ai suivi l'histoire avec soin tout au long. Mais il serait difficile de les séparer en plusieurs branches / demandes d'extraction, car une grande partie de celles-ci s'appuient nécessairement sur elles-mêmes. Par exemple, l'externalisation de la configuration est basée sur un nettoyage préparatoire, et la configuration existe en partie pour remplir ces configurations, la journalisation est activée et configurée par les configurations externes créées dans la configuration, etc. Cela étant dit, je suis très disposé à faire ce que je peux pour rendre cette énorme pilule plus agréable au goût, je ne sais pas ce que ce serait. Je pourrais diviser quelques commits mais la grande refonte est toujours grande.
Alors, que faut-il faire s'ils révisent accidentellement le projet de quelqu'un?
Dois-je simplement apprendre ma leçon de ne pas le faire et garder mes modifications pour moi dans ma fourchette? Dois-je simplement faire une demande d'extraction et voir ce qui se passe? Dois-je dépenser un tas de mots pour m'expliquer dans la description? Dois-je le présenter d'une certaine manière?