DITrack development

Vlad Skvortsov vss at 73rus.com
Thu Jul 5 12:43:38 PDT 2007


Stefan Reichör wrote:

[skipped]

>>>> 1. Invent command line switches to provide all required information.
>>>>     
>>>>         
>>> That is the way I would prefer. It has also the advantage for ditrack
>>> that ditrack is then fully scriptable.
>>>   
>>>       
>> I guess the primary target for improving scriptability is the 'act'
>> command, followed by 'new'. Let's start with 'act' and work our way
>> for 'new' later.
>>
>> My [rough] proposal is to add the command line options to 'act' as follows:
>>
>>     

[skipped]

>> Comments?
>>     
>
> That looks good to me.
>   

Ok, opened i#162, scheduled to 0.7.

>>>> 2. Use the DITrack Python API from within a separate thin application
>>>> integrated into Emacs. This application may accept custom command line
>>>> parameters from Emacs and trigger the API for the real action.
>>>>  

[skipped]

>>>> 3. Create a "shell" around the command line client (similar to how our
>>>> test suite driver is constructed) to feed commands/data from Emacs to
>>>> dt's standard input.
>>>>     
>>>>         
>>>

[skipped]

> I think I will use the svn version and send patches or ask for help
> when I need improved functionality on the ditrack side.
> I will start with #3, skip #2 and help to improve ditrack to use #1.
>   

Ok, cool.


[skipped]

>>> My first step would be to improve dt-createdb to allow the
>>> initialization of an issues directory without the need for subversion.
>>>   
>>>       
>> Yeah. I would first factor out backend-specific code into separate
>> functions/classes, extend those to include 'null backend' and then add
>> a command line switch to choose either way.
>>     
>
> That is needed for dt - isn't it?
>   

I was actually talking about dt-createdb here.

> You like to keep dt-createdb seperate. There are no classes used from
> the rest of ditrack yet.
>
> I still think it would be better to integrate dt-createdb as extra
> command to dt. But I have no problem with keeping it seperate.#
>   

Actually I had some thoughts about this separation some time back, and 
one of the reasons for keeping these separate is that we [ultimately] 
want to use Subversion Python bindings instead of command invocation. 
Thus, the 'svnadmin' functionality might not be available to DITrack 
client.

This is more of a gut feeling than any reasonable objection though. :-) 
So if you feel strong enough about merging dt with dt-createdb, the 
patches are welcome for discussion. :-)

> I propose to add a Backend.py file that serves as base for SVN.py and
> NullBackend.py
>   

Yep. Let me write up a text on backend assumptions first though. We need 
to clearly define what we expect of a backend to be DITrack-compatible. 
Opened i#163 as a reminder.

[skipped]
> First I suggest to change the invocation parameters for dt-createdb.
> Currently it uses:
>
>   
>> Syntax:
>>     dt-createdb <repository-url> <issue-db-dir> <local-wc>
>>  
>> The script non-recursively checks out <repository-url> into <local-wc> (which
>> should not exist), creates <issue-db-dir> there and schedules it for addition.
>>     
>
>
> I would drop the checkout part and assume that the issues should be
> added to an existing working copy. The checkout part can be done
> seperatly before - or we can supply these parameters by extra command
> line switches if we want.
>   

Agreed.

> So I suppose something like:
>
> dt-createdb <issue-db-dir> --backend svn
> dt-createdb <issue-db-dir> --backend none
> dt-createdb <issue-db-dir> --backend bzr
>
> I would add the needed code in dt-createdb to support these
> invocations.
>   

Since the backend type is going to be mandatory, I suggest dropping the 
'--backend' switch. Maybe we should make that parameter optional and 
default to 'none'.

-- 
Vlad Skvortsov, vss at 73rus.com, http://vss.73rus.com



More information about the Dev mailing list