Doing it in Drupal way : Merging all slider modules
While ago i was looking for an slider module (implementation of JQuery UI slider module), surprisingly i couldn't find any solution except jSlider Form API which wasn't exactly what i was looking for. So i did what every good Drupal developer does, I wrote a generic slider module and shared it on Drupal.org (jQuery UI Slider Field). I even implemented "jSlider Form API" features.
Several months later and after i published several new minor versions, one of the users mentioned that there is in fact another slider module similar to mine!! SliderField and it was quite old too. He suggested joining forces to prevent duplicate modules. I usually find what I'm looking for so it was very unexpected. I think there are two reasons i couldn't find it. The main reason is, the name of the module which is"SliderField" instead of "Slider Field" which makes it difficult to find it only by searching titles that's why having search-able keywords for modules is very useful. Another reason is that I didn't ask the community via IRC and forum, i usually do before writing a new module, there is a group for this purpose in case you didn't konw. Contributed Module Ideas
My module was much more completed and had many more features so it was too late for me, but for the sake of the community i decided to join the two projects and probably any other similar slider related module. For straightforward module like this there shouldn't be really several different modules it wastes community's valuable resources. I contacted the maintainer of the SliderField module proposing to join forces, and since nobody was working on SliderField module for quite some time he agreed and gave me access.
Since the SliderField module was older and had more users, proper thing to do was to make it the main module. Here is what i did afterwards :
- Implemented all the missing features of SliderField
- Renamed jQuery UI Slider Field
- Created a new branch and cloned the new module preserving the git history using this tutorial
- Implement upgrade path for previous version of SliderField and migrate path for jQuery UI Slider Field
- Published a working version - Updated module's page
- Added a note on jQuery UI Slider Field page notifying its users of the new module and my plans
- Moved all the active issues of jQuery UI Slider Field to SliderField
- Contacted maintainers of several other slider modules asking them to put a note on their module's page notifying their users about the existence of a generic solution
You may ask why? I could simply continue maintaining my own module, why go into this much trouble!
As you may have already noticed one of the great things about Drupal community is that we all work together to make Drupal better. At the end it doesn't really matter if it's my module , my patch or someone else's. What matters is to have a greater and more powerful tool which we can all use.
All well known Drupal developers have done the same, they gave up their own modules to the other developers because they simply didn't have time or interest to continue developing it or joined the others instead of reinventing the wheel! I personally took over several different abandoned modules and revived them instead of making another similar one, Community allowed me to do that. The fact is if it wasn't because of this attitude we would never had powerful modules like Views, FileFiled, Panels,CCK, etc , Instead we might have had Views2, Views Plus, MyViews! and certainly none of them could possible do what Views can today, it's the hard work of many talented developers, they decided to work together and continue each other's work and that's the result.
So let's all do it in Drupal way :)