Story of Unsuccessful PR to Open Source Project!

It’s about the painful and unsuccessful PR to Open Source Ansible Project.

May 2018

I was working on CI / CD Part for the Company and I had to integrate a Monitoring Product called #NewRelic. After doing a little research, I found out that NewRelic has Record Deployment. On Each Deployment / Re-Deployment, we can hit NewRelic Record Deployment API.

Ansible has a default module called newrelic_deployment which was developed by someone in 2016 or earlier which worked fine for my use case. Later, I realized that the default module is using NewRelic V1 API which was deprecated in 2017 so I thought It’s a good chance for me to update the module and start using v2 API from NewRelic.

It took me a week to update the module and make it work with the v2 API of NewRelic. I tried integrating the v2 Module with CI / CD of the company but the Maintainer of the CI/CD Team rejected it saying “We only want to use default NewRelic Modules” even though the default module is using deprecated API which can be closed anytime by NewRelic. We were literally relying on Ansible Community to Update the Module when v1 API will be gone.

From Above Talks, I decided that I will f**king update the default module so I started my research, how to create a PR to Open Source Project?. After a week, I was able to make PR to Ansible Repository with New Changes.

PR: https://github.com/ansible/ansible/pull/40029

PR was created on May 11, 2018, with Ansible Version 2.5.2. I heard so much that Ansible is Hot Project and its community was very active but unfortunately It wasn’t like that.

Once the PR was created, I realized that my Python Module wasn’t compliant with PEP8 Standards so I spent the next 2–3 days fixing those.

I thought, now Ansible Community will help me in merging new code but Nothing happened on my PR for the Next 3 Months, I was a bit shocked that how come no one was interested in reviewing the code. Even the Original Author had no response on it.

Oct 2018

Finally, someone came in and comment on PR for Review and AnsibleBot removed a couple of labels and added a couple of more labels.

Again, Nothing Happened for Next One month on PR. No Comment / No Reviews / literally Nothing.

Nov 2018

I tried a trick to close the PR and Open so someone can see it but Nothing happened again. This time for Next Year.

Nov 2019

Finally, Another Person came in In Nov 2019 and asked “when it will be merged/reviewed?
Again, AnsibleBot removed a couple of labels and added a couple of labels. Nothing Happened Again for Next 6 Months.

May 2020

I replied to the Last guy saying that “I don’t know, It has been waiting for more than 2 years and I didn’t manage to find the right process as well like who should review it / who should merge it.

Aug 2020

I already stopped checking this PR and In Aug 2020 I thought, let’s check it and see if any miracle happened or not but I got another surprise that Ansible Community Decided to Migrate, All community Code to New Repository.

Thank you very much for your interest in Ansible. Ansible has migrated much of the content into separate repositories to allow for more rapid, independent development. We are closing this issue/PR because this content has been moved to one or more collection repositories.

lib/ansible/modules/monitoring/newrelic_deployment.py -> https://galaxy.ansible.com/community/general

For further information, please see:
https://github.com/ansible/ansibullbot/blob/master/docs/collection_migration.md

Finally, AnsibleBot closed my PR saying it should be migrated to New Repository.

Now, I don’t know how to say positive things about Ansible Open Source Project + Its Community.

More than 2 Years for review to Approx. 45 Lines of Code.

Recently, I have started my second pr ansible-collections/community.general/pull/876 in the hope that someone/community will help me in merging new code. Let’s see how it goes if not then wait for the Next Part of this story.

Have Fun! and Stay Safe.

Senior Software Engineer III ( R&D )

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store