While the overview and release notes proclaim this version is "Independent from feedapi_node processor", it does not state that it is now dependent on Chaos Tools for its "Exportable mappings" feature. Having never used, or even heard of Chaos Tools before now, this information could've saved me a bit of time when choosing to update to this version.
In the end I found this thread: http://drupal.org/node/433388
While primarily a Chaos Tools issue, the overview for that module states "This suite is primarily a set of APIs and tools to improve the developer experience. ".
Nowhere in either of the modules' descriptions is it made clear that production modules may be dependent on the self-described developer module. It was only when I checked dependencies after updating did I see dependency requirement.
The update of an the activated module produced this error:
Fatal error: Call to undefined function ctools_include() in /sites/all/modules/feedapi_mapper/feedapi_mapper.module on line 446
My point (eventually): it could be a good idea to mention this dependency on the project page.
Comments
Comment #1
alex_b commentedThe dependency is declared in .info.
I wonder how you could install the module without ctools. Did you do an upgrade from FeedAPI Mapper 1.x ?
I haven't particularly tested the upgrades from 1.x to 2.x - I'll have to do this yet. One of the reasons why the module is still in alpha.
For now, I assume that your error ocurred on upgrade to 2.x, I added a note to this regard on the front page.
How did the upgrade otherwise go? Did you lose mappings?
Comment #2
imclean commentedI wasn't particularly clear either. Yes I upgraded from 1.x to 2.x and the mappings were fine, I didn't lose anything (although I didn't have much). I performed a usual upgrade: replaced the old version and ran update.php. (it's a dev server with backups so no problems doing this)
Fair enough about .info, and of course it tells me in the module listing after I've installed it. Putting the note on the front page certainly makes things easier.
Is ctools only used for exporting in FeedAPI Mapper 2? If so, would it be possible (or useful) to make it optional so it isn't required unless exporting is required?
Comment #3
alex_b commented"Is ctools only used for exporting in FeedAPI Mapper 2? If so, would it be possible (or useful) to make it optional so it isn't required unless exporting is required?"
Using Ctools for exportables means using it for loading too, as any time we load we need to check whether a default has been defined in code. That said, this doesn't mean that the dependency on CTools couldn't be conditional. It would mean slightly though.
I am convinced that the CTools/export approach is going to get only more popular within Drupal: it is a safe and sustainable way to export configuration, share it and keep it in version control. We may even see this approach in Drupal 8. For these reasons, I'm very intentionally including CTools as hard requirement.
Comment #4
imclean commentedThanks for the explanation and I agree that dependency on common tools is generally a good idea. I'm getting my head around the idea of CTools now so this has been a learning experience.
Comment #5
alex_b commented