scmproj: plugin for organizing set of VCS branches as complex project

Alexander Belchenko bialix at ukr.net
Mon Dec 22 15:11:58 GMT 2008


Hi all,

I'd like to present new plugin for bzr: scmproj.

This plugin is designed to help handling complex project configurations
where each project component is actually separate branch.
This plugin inspired by CVS modules, svn:externals, hg forest extension,
git submodules support and Bazaar Nested Trees specification.

Project at Launchpad: https://launchpad.net/bzr-scmproj

Basic idea of the plugin is: you describe your project in the special config,
provide for each project component information about where to get the
source branch and where to put working copy of the component in the
local project workspace. Then you're using special project-* commands
(provided by scmproj plugin) to work with entire project as single unit.
(Well, almost).

I need this plugin for my work. We have some products here where our build process
is required to checkout several branches to build final executable.

And it seems not only me need similar solution.
Recently Marius Kruger started to successfully use scmproj plugin and
joined to development. Thank you, Marius, I'm very high appreciate
your help. Your question and suggestions makes scmproj much much better.

I consider current state of the project as Alpha.

It means there is many things worked, but some still are not.
But I think it reaches the point when fearless hackers can try to use it
with their own complex projects and provide some feedback.
I don't mind to get some patches as well.

To start with the scmproj you need to read some documentation.
I have a little: http://bialix.com/scmproj/docs

There is not enough user documentation, but there is very detailed devel
documentation. It can provide you very useful info about scmproj internals
and about project config syntax. After then you most likely want to read howto
document, it provides some useful tips how to emulate some project-wide commands
with special command (project-command) that serves as commands constructor.
Please, excuse me if some parts of documentation written in bad English :-(
I'm trying to write as better as I can, but I'm not very good in English.
(sometimes).

Thanks to Marius Kruger who helps me with devel.txt.

Also I've prepared testing project for bzr.exe build workspace.
I've mention it before in reply to Mark Hammond. Details about testing project
you can find in another mail with corresponding subject line.

What's next?

We started to use this project at my work. I have some very important feedback
from my coworkers, and I'm planning to improve plugin in some important areas
(task #1 for me is to implement snapshot support ASAP).

There is many planned but not implemented features. There is lack of user documentation.
If you want to try this plugin with your complex projects -- feel free to ask questions,
and provide your use cases.

If you want to help: I need help with documentation (English corrections at least),
bug reports are welcome, feature requests will be better to discuss first.
Current design of scmproj is generic enough to handle various project configurations,
may be your use case already covered.
Of course, patches are welcome too (but I guess I've said this already :-)

If you think your use case or project configuration is not covered by current design
of scmproj and you want to share your use case, feel free to add it to the wiki:
http://bazaar-vcs.org/ScmProj/UseCases

Alexander




More information about the bazaar mailing list