I would like to contribute to the development of Quicksilver.

2 views
Skip to first unread message

Jordan Kay

unread,
Aug 29, 2009, 4:13:58 PM8/29/09
to Blacktree: Quicksilver
I am familiar with Cocoa and have written a few plugins for
Quicksilver, so I know how the basics work. I would like to contribute
to development of the Quicksilver project proper.

Just a few questions:
1. Which branch is currently being actively developed? Which should I
check out in Xcode, and what steps should I take to make sure it
builds properly?
2. Is there a list of issues that need to be focused on for fixing in
Quicksilver, and their priorities? I would like to start by fixing the
trigger scoping issue and proper display of modifier keys and keyboard
shortcuts for triggers. What are some other things that are currently
broken?
3. How exactly should I commit my changes to the code?

I would really like to actively contribute to the project and help
secure Twitter's future, so I would like to know everything I can
before starting. I know there are people here who are familiar with
the code base, so I'd love to hear from them.

Thanks,
Jordan Kay

Jordan Kay

unread,
Aug 29, 2009, 4:27:04 PM8/29/09
to Blacktree: Quicksilver
And by Twitter, I mean Quicksilver. :)

andreb

unread,
Aug 29, 2009, 7:05:36 PM8/29/09
to Blacktree: Quicksilver
The branch for current QS releases is "branches/B5X"
"trunk" holds the next big thing with significant API chances and
therefore all B5X plugins are incompatible for the trunk version.

Main classes are QSApp, QSObject, QSAction. etc. But if you wrote
plugins you most likely know all that.

A "trick" which helped me to get a better picture of the whole is to
let Xcode build a Data Quick Model of each of the QS frameworks.
To do that:

1. In Xcode select all header and implentation files which belong to a
framework (e.g. group "Code-QuickStepCore" for QSCore.framework) in
their respective Xcode group.
2. With the selection chose Design > Class Model > Quick Model from
the Xcode menu.
3. Explore DAG of the complete object hierarchy.

To get it to build you will need to open in Xcode the group
"Configuration" and find the file "Developer.xcconfig".
You need to adjust the path given for QS_SOURCE_ROOT in that file.
That's absolutely crucial. It also doesn't hurt to define the same
path setting in Xcode's Source Trees (via Preferences) again for a
variable named "QS_SOURCE_ROOT". You can check if Xcode got the path
(s) right if you open build prefs and look at the User-Defined
Settings. Two entries should be visible: QS_SOURCE_ROOT and
QS_APP_CONTENTS_FOLDER which both should take the path you have set
for QS_SOURCE_ROOT into account.
Also, if you get weird build results sometimes it's needed to open the
build prefs on both project and target level and adjust the "based on"
setting in the lower right corner of the build prefs pane. Pick one of
the build styles provided by the xcconfig files. (Debug for
devlopement, Release for distribution, QSPlugIn_Debug/Release for
plugin development).

Be aware that the Quicksilver target has a run script phase which uses
rsync to overwrite /Applications/Quicksilver.app with the build
product!

Hope everything works out for you.
Nice to see more devs are jumping on board :)

Cheers,

André

andreb

unread,
Aug 29, 2009, 7:05:56 PM8/29/09
to Blacktree: Quicksilver
Reply all
Reply to author
Forward
0 new messages