Daniel J. Lacks, PhD wrote:
[...] I
am interested to help, at this point I want to know what is the best way
for me to do that. For example, how to start: brainstorming,
collaborating (hosting a meeting, chat channel, or opening an issue
ticket), or just do it? What format: Wiki, Word document, PowerPoint
presentation, etc.? How much research should I do: you mentioned
client-side tool integration (TortoiseSVN, etc.) and other tools for
comparison (Git, Perforce, etc.)? My assumption is you are perhaps
looking to take a step back from what is already posted about SavePoints
and perhaps address a design that includes client side and server side
use cases, scenarios, and approaches. Then at some point I assume it is
reviewed and versioned, then someone can decide what to implement now or
in the future.
[TL;DR: Meta-discussion about how best to contribute.]
The reply you sent a few minutes before this one, in which you describe
your real life use cases and wishes, is a fantastic way to make
progress. Personally although I have used Subversion and other VCS in
several different settings, I have not tried such a diverse distributed
scenario as you are describing and so your description of that is really
helpful.
Next I would encourage you to try sketching some possible UIs and, as
much as possible, diagrams of how it all could work. (I find the visual
approach extremely much more powerful than writing, and it is
unfortunate that it is so difficult to do on computer. Attaching a photo
of a hand-drawn sketch works much better for me.) I am currently doing
this for local checkpointing and every little bit that I draw brings
some previously un-thought-of aspect to my attention.
We don't have a standard process for collaborating on a medium to large
feature beyond posting to this dev@ mailing list. Feel free to write up
in other formats and attach (if small) or post links to them where that
works better than plain text email, keeping in mind that open
easy-to-transfer formats are strongly preferred so maybe not MS Word
etc. The Wiki is a useful central place because its longevity is in our
control (unlike third-party web sites) but I find the Wiki clumsy for
anything more than a few paragraphs and a few links.
You are correct that I am looking to take a step back from what is
already posted about SavePoints and Checkpoints and Shelving. In
general, anything in our issue tracker and wiki is best taken as an idea
to think about rather than a plan that has been decided. We would
informally review the proposals (here on dev@) according to however much
interest the current community can collectively bring to it. In the end,
as an open source project, whoever steps up to do the work ultimately
gets to decide what they are willing to do; the community as a whole
gets to advise and guide and ultimately choose what goes into an
official release.
In practice, though, it is extremely helpful to have a well thought-out
design, and rationale, that somebody else has taken the trouble to
prepare. This can make the difference between somebody ever or never
stepping up to implement it.
At the same time as taking a step back to think about the wider picture,
in order to get something done in the short term I am implementing a
very simple initial version of local shelving and checkpointing, from
which to get some experience and feedback from others about how they
should evolve. That is the other direction you start from -- a simple
implementation, e.g. scripts around the existing 'svn' commands -- to
demonstrate what you want to accomplish and in what respects they lack
important usability or capabilities.
Lastly I want to say thank you for bringing your enthusiasm and
experience! This project only happens by people like you doing it, and
it is heartening to hear from you. Please stick around!
- Julian