starting to use ditrack - dev roadmap
Vlad Skvortsov
vss at 73rus.com
Thu Feb 14 11:50:23 PST 2008
Luke Kenneth Casson Leighton wrote:
> hi guys,
> just to let you know that i'm planning to use ditrack, because it's
> 1) python 2) beautiful 3) dead frickin simple.
> plans include an email interface. i already have "new" working,
> and i'll have "add comment" this afternoon.
> i have a couple of issues that need to be resolved - one of them
> is that any changes can result in conflict - there's no race-condition
> checking on creation of new issues, creation of new comments, etc.
>
Ultimately the serialization of updates to the database is to be done on
the server side (e.g. by Subversion server currently). The client-side
conflicts which would happen because of this need to be properly handled
and it's one of the must-fix items for 1.0.
> a solution is to do spin-lock using the svn repository:
>
> while 1:
> svn update repository/etc/newissue.txt
> newissue = int(open("repository/etc/newissue.txt").read()) + 1
> open("repository/etc/newissue.txt").write("%d" % newissue)
> try:
> svn commit -m 'new issue number %d' % newissue
> except:
> # remove from local repository, ready for update on next loop.
> # eventually this will work.
> rm "repository/etc/newissue.txt"
> continue
> break
>
> obviously, this can't be done in an offline situation: under
> such circumstances, #1 #2 #3 etc. etc. isn't good enough,
> you'd need to prefix by username or some other unique
> identifier, or have random numbering large enough to not
> have conflicts.
>
> _after_ a commit, _then_ a nice unique ordered numbering
> could be applied.
>
We have "local" entity names specifically for working off-line.
> basically, ditrack as it stands is perfect for a single user,
> and.... i'm not planning on using it as a single user system.
>
Well, we use it for self-hosting for quite a while now, so it can serve
well for a small team of developers. There are issues that have to be
addressed before 1.0 (concurrent access is one of them), but it works
pretty good in 90% of real-life situations. And for the remaining 10%
you can usually fix things manually. :-)
I know that it's been used in production at some small companies.
> anyway have you seen git? it looks _far_ more interesting
> than svn as a back-end:
> http://www.tuxmachines.org/node/23855
> http://www.advogato.org/person/apenwarr/diary/371.html
>
The choice of the backend is primarily dictated by the following 3 factors:
1) it is mainstream now, with plenty of hosting services offering SVN;
2) it is easily comprehensible;
3) we use it ourselves.
We are not ideologically opposed to other kinds of backends, but given
limited resources we have, we focus the development on what we perceive
is the most important thing to support.
> btw if you're curious as to why i'm interested in ditrack instead
> of the one that is used for bugs.python.org it's because
> ditrack is so damn small and it has the word "distributed".
> the tracker on bugs.python.org is targetted as a web service:
> i'm not interested in single points of failure.
>
> more later, gotta get coding!
>
> l.
> _______________________________________________
> Dev mailing list
> Dev at lists.ditrack.org
> http://lists.ditrack.org/mailman/listinfo/dev
>
--
Vlad Skvortsov, vss at 73rus.com, http://vss.73rus.com
More information about the Dev
mailing list