quickly team mailing list archive
-
quickly team
-
Mailing list archive
-
Message #00010
Re: Reworking quickly commands
On Thu, Oct 29, 2009 at 11:13 AM, John Barstow <jbowtie@xxxxxxxxxxxxx> wrote:
>>
>> Hum? No, the spec is normally "all commands should be at the root,
>> having execution right". Other things are in subfolder, see
>> http://bazaar.launchpad.net/~quickly/quickly/trunk/files/head%3A/data/templates/ubuntu-project/
>> for ubuntu-project template.
>>
> That wasn't true when I made my branch. I suppose that's not so bad then.
I guess the switch was done on Quickly 0.2. The change is done on
commit 221 (http://bazaar.launchpad.net/~quickly/quickly/trunk/revision/221
) 2009-08-12 16:09:56.
A lot of changes has been done in this commit to rework the command
detection. On which commit did you base?
>
>> This was my first draft on Quickly, but I changed it for dynamic
>> introspection and seeking for execution rights as we really want
>> template developers to be able to develop their templates in whatever
>> languages they want.
>>
>> I've already met some people developing their own template in
>> ~/quickly-templates in shell and I think that to have the largest
>> userbase, we don't want to change this now.
>> See http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-6
>>
>
> Developers can still do that, in my proposal ShellCommand handles
> non-Python commands.
> My rationale is that since quickly is written in Python, we should
> make it much simpler for Python developers.
>
I guess you are talking about this branch:
https://code.launchpad.net/~jbowtie/quickly/testability
What made me think you're only supporting python was
quickly/management/__init__.py, where you have:
"def find_commands(management_dir):
...
return [f[:-3] for f in os.listdir(command_dir)
if not f.startswith('_') and f.endswith('.py')]"
I see that (just done a quick review) as something doing the same that
what is currently done by quickly/commands:
http://bazaar.launchpad.net/~quickly/quickly/trunk/annotate/head%3A/quickly/commands.py
which is a module detecting all available commands in a template and
caching it.
>
>>
>> That's a great idea, but we can't implement that if we still want
>> using other template languages than python. That's why we just call
>> the template with help or shell-completion argument to enable our own
>> advanced shell completion method.
>>
>
> As I said, we can have both with no problem.
>
>> I'm not sure that every templates wants those commands.
>> We already have "builtin commands" (again, sorry for quoting my blog
>> post but all those notions are described there:
>> http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part2)
>> So, builtin command are commons to every templates and we will have
>> very soon inheritance model to state command compatibility and
>> incompatibility.
>>
>
> I know, but right now > 90% of the functionality of quickly is
> implemented in the template rather than the core.
Not so true :)
A lot of shared functionalities has been moved to quickly/ module in
quickly 0.2 : http://bazaar.launchpad.net/~quickly/quickly/trunk/files/head%3A/quickly/
Those common functionalities to share between template are located in:
- builtincommands.py: containing all builtin commands previously
exposed and common functionalities like:
- launchpadaccess.py: Launchpad configuration and project binding
- bzrbinding.py: using and configuring bzr on a project.
- configurationhandler.py: make parsing and adding project values easier
- templatetools.py: as the name implies, little tools for making
easier template developped in python.
(cf my previous link on the blog post I pointed)
>
>>
>> I'm really aware of the benefits and again, thanks to proposing that, but :
>> 1- that prevents having multiple languages in templates, which was the
>> main reason of Quickly design
>> 2- we won't have access anymore to "advanced completion"
>>
>
> Both these assertions are wrong.
>
>
>
>> Yeah, I must have already done the test suite earlier, I know, but
>> it's in progress. I'll happily share with you that once UDS has passed
>> (do you attend to it, we will have some Quickly session?).
>>
>
> I can't attend UDS until there's one in New Zealand.
>
I've attended to Barcelona UDS and will attend to Dallas one as part
of the community sponsored by canonical on my personal holidays.
>> Once my first draft available, I'm really happy to share that with
>> your (more advanced than I, I guess) knowledge on that subject so that
>> Quickly 0.4 is really "strong, but quickly" :)
>>
>
> Can you publish the branch?
>
>> Welcome on board, I hope that this won't prevent your for starting
>> contributing to Quickly. Do not hesitate to come on #quickly in
>> freenode so that we can discuss together :)
>>
>
> I do not use IRC, only mailing lists and bug reports.
>
Ok, we can try going on this way, but think to click on "reply to all"
for a ML discussion :)
Didier
References