[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.tools.buckminster] Re: Buckminster updating / change-list generation

I don't quite get the use case.
What exactly is it you want to keep track of?
Is it the delta between "what you have in your workspace", and "what you will have if you run a query"? A sort of "team synchronization" but done by Buckmisnter so it involves everything in the query, not just the source code repositories...


Or, is this intended as a mechanism to update a workspace for the purpose of making it faster to only update it instead of re-creating it?

Regards
- hnrik

Peter M. Murray wrote:


Greetings folks,

I'm relatively new to Buckminster, but enthusiastic! Please excuse me if I don't wield the vocabulary properly or don't grok some of the concepts.

I've read in this newsgroup various postings about extending Buckminster to allow for updating an existing workspace (presumably via a cquery) and generating change-lists as a side effect. Such a functionality would be useful for CI framework integration - the goal being to maintain a workspace and bump it to the latest code, recording changes, comments, authors, etc, then rebuild and run tests. In my case, integration with Hudson is most immediate, but I imagine that other CI frameworks would benefit from similar functionality.

Would something like the following make sense:

* add IComponentReader.update(IPath location, Resolution resolution, MaterializationContext ctx, IUpdateDeltaObserver observer, IProgressMonitor monitor)
* add IComponentReader.canUpdate(); ??
* create IUpdateDeltaObserver which will get update events based on what is being updated.
* create UpdateJob that is designed to update a materialized workspace and record update events into a file based on configuration params
* create UpdateCommand that is wired to buckminster update <cquery> with appropriate options to control placement, naming etc. of the change-list xml output
* Optional extensions
** allow for a quick-as-possible (early bail on first change detected) probe if an update would change something (IComponentReader.needsUpdate() and an additional command?)
** allow for an option to run the update, gather the deltas, but not actually do anything (additional boolean arg to IComponentReader.update?)


Questions:

* Would this be a reasonable pattern for all readers? I suppose, to start, some readers could update silently or noop & log on the update??
* Is the Reader the proper level of abstraction for differentiating the update functionality?
* Would it be better to offer the update as a set of parameters to the materialization Job/Command rather than a separate command entirely (enforce identical resolution and other workflow phases)?
* Is this the right direction?


If it's cool with the powers that be, I'd be happy to roll up my sleeves once a direction is agreed upon.

Cheers,

pete