TL;DR: I'd like to contribute a new plugin, what do I do?
About a year ago I wrote an Adium plugin for Quicksilver that provides Adium contacts to the catalog and allows "open chat" actions on them.
To make it work I had to fix some bugs in Adium as well as add some features.
Those patches were then released as part of Adium 1.5 so now I'd like to publish the Quicksilver plugin as well. I've attached the files so you can take a look.
What are the steps required to get a plugin repository as part of the Quicksilver github project? And how does the plugin show up in the official plugin list?
PS: I noticed that there seems to be code for another Adium plugin in Quicksilver - not sure if that one is still active and would conflict with my contribution?
I wonder if you had the same problem I did. I described it in great detail (to absolutely no one, it seems) on the forums.
Anyway, it looks like you “cheated” and just used AppleScript. I was obviously trying to avoid that. :-)
* Take a look at the cleanup section in the plug-in ref. That’ll bring your plug-in in line with the current standard. http://projects.skurfer.com/QuicksilverPlug-inReference.mdown#plugin_cleanup_and_modernization
If I do that [reworking the mediator protocol], would you be willing to rework your plug-in to use the chat mediator protocol?
It’s up to you. I guess all we ask is that you keep it available so we can get the source if you ever abandon it.
* Since the plugin only works with Adium 1.5+, it's probably worth adding a 'requirement' in the .plist so the plugin will only load for people who have Adium 1.5+See the 'bundles (array)' subheading at http://projects.skurfer.com/QuicksilverPlug-inReference.mdown#qsrequirements
Anyway, it looks like you “cheated” and just used AppleScript. I was obviously trying to avoid that. :-)Yes, those fixes to Adium's AppleScript were my doing. And while AppleScript is admittedly downright weird ObjectiveC isn't my favourite language either so I ended up going with the first thing that worked.
* Take a look at the cleanup section in the plug-in ref. That’ll bring your plug-in in line with the current standard. http://projects.skurfer.com/QuicksilverPlug-inReference.mdown#plugin_cleanup_and_modernizationI've completed most of these steps, however the first one still mystifies me. What "Configuration" folder?
IIRC from the stuff I did a year ago things got complicated because the template structure in XCode changed with version 4.3 or so and I'm running 4.4. For example the directory "~/Library/Developer/Xcode/Templates/Application Plug-in" doesn't exist on my machine.
If I do that [reworking the mediator protocol], would you be willing to rework your plug-in to use the chat mediator protocol?I can certainly look into it. I assume it supports the basic "add contact to catalog" and "open chat" functionality (besides other things)? Might take a while though since I'm often short on time. :)
It’s up to you. I guess all we ask is that you keep it available so we can get the source if you ever abandon it.In that case would you mind if I put it up with svn on code.google.com?
I know Subversion is a bit old fashioned but it's what I'm used to. :) Otherwise I'll make do with git although I'll have to figure out the details.
1. Build Quicksilver (if you haven't recently) to create things in `/tmp/QS`2. Right-click your project and add files3. Choose `/tmp/QS/Configuration`4. Don't copy items, do create groups for added folders, and don't add to the target5. Select “Configuration” in the project and open the File Inspector on the right (⌥⌘1)6. Change the path to “Absolute”7. Click the tiny icon that looks like a window next to the path8. Do nothing but click “Choose” to point it to the same folder. The path should now actually be absolute (without all the references to `..`)9. Select the project in the Project Navigator then go to the project’s “Info” tab. Under Configurations, you should see “Debug” and “Release”. The project under each should be based on “Debug” or “Release” respectively, and the target under each should be based on “QSPlugIn”.10. Go through the build settings for both the project and the target. As a general rule, nothing should be in bold except “Product Name”. Select anything that’s bold and hit Delete.
I used to use Subversion. I don’t miss it at all. If you’re just waiting for a good excuse to mess with Git, maybe this is it. :-)
I've finished these steps but now my project refuses to build - it apparently can't find the QS headers anymore: "/tmp/QS/Configuration/Quicksilver.pch:3:9: 'QSFoundation/QSFoundation.h' file not found"
I’ve started it. https://github.com/quicksilver/ChatSupport-qspluginYou’ll need to implement all the methods under `@protocol QSChatMediator`, but as I work on the Messages plug-in, this will likely change, so I wouldn’t dig into it yet.