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 requis 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 configuration 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 demande de traction 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 faire si on refait 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 passer un tas de mots à m'expliquer dans la description? Dois-je le présenter d'une certaine manière?
Si le projet n'a pas été modifié pendant 5 ans, comme vous l'avez écrit, il est probable que les demandes d'extraction ne seront pas acceptées, que quelqu'un corrige une faute de frappe dans un commentaire ou fasse une réécriture complète. Le projet a probablement été abandonné par les auteurs originaux.
La première chose que j'essaierais serait de contacter les auteurs et de leur demander ce qu'ils en pensent. S'ils ne répondent pas dans un délai raisonnable, pourquoi ne pas simplement rendre votre fork public (en supposant que la licence le permet), ajouter un résumé de ce que vous avez amélioré et voir ce qui se passe?
Si d'autres pensent que vos améliorations leur sont utiles, ils préféreront peut-être utiliser votre fork comme projet de démarrage en faveur de l'original. Si l'auteur d'origine doit relancer le projet d'origine, vous pouvez tous les deux décider si le projet d'origine et votre fork doivent être fusionnés et qui sera le futur responsable.
Si les auteurs originaux ne montrent aucun signe de maintenance active, vous pouvez envisager de détacher complètement votre fourche du projet d'origine. Dans ce cas, configurez votre propre référentiel indépendant pour cela. N'oubliez pas de donner du crédit aux auteurs originaux et assurez-vous que cela est couvert par la licence du projet.