Jump to: navigation, search

Difference between revisions of "Sharing a Project (Buckminster)"

Line 29: Line 29:
 
http://www.eclipse.org/buckminster/pub/demo/snapshots/ok_workspace.jpg
 
http://www.eclipse.org/buckminster/pub/demo/snapshots/ok_workspace.jpg
 
=Sharing using Buckminster=
 
=Sharing using Buckminster=
Tom, a Buckminster user asks Harry if it is ok to automate the process using Buckminster. Tom adds descriptions of how the components depend on each other and where the components can be found (in CVS, and on Ibiblio). This is expressed in some XML files as described in more detail in [[Hello XML World Example (Buckminster)|Hello XML World Example]].
+
Tom, recently having discovered Buckminster, asks Harry if it is ok to automate the process using Buckminster. Tom adds descriptions of how the components depend on each other and where the components can be found (in CVS, and on Ibiblio). This is expressed in some XML files as described in more detail in [[Hello XML World Example (Buckminster)|Hello XML World Example]].
 
==Hey Harry, look - no hands!==
 
==Hey Harry, look - no hands!==
 
Tom demonstrates the new setup. Fetching and "installing" things is called materialization in Buckminster terms, and the materialization is started by querying for the top component. Such a query can be entered manually, but Tom has prepared the query and stored it in a file. This type of query is called Component Query (CQUERY). Tom simply uses the File > Open dialoge and types in the URL. The file is placed on a web server reachable by everyone.
 
Tom demonstrates the new setup. Fetching and "installing" things is called materialization in Buckminster terms, and the materialization is started by querying for the top component. Such a query can be entered manually, but Tom has prepared the query and stored it in a file. This type of query is called Component Query (CQUERY). Tom simply uses the File > Open dialoge and types in the URL. The file is placed on a web server reachable by everyone.

Revision as of 04:27, 23 October 2006

< To: Buckminster Project

What is this scenario about?

Harry, a developer has created a project called Hello XML World. The developer Tom wants to help with the development, and asks Harry how to set up the project. This scenario shows how Harry sets up the project manually, and then how the same is aceheived using Buckminster.

Sharing without using Buckminster

An empty workspace

Tom starts Eclipse with an empty workspace. http://www.eclipse.org/buckminster/pub/demo/snapshots/empty_workspace.jpg

Getting the source

Harry tells Tom that the source is in CVS, and that a CVS Team Project Set file is available to aid in setting this up. Tom runs the wizard that imports a Team Project Set. http://www.eclipse.org/buckminster/pub/demo/snapshots/pfs-wizard.jpg

Getting the source is not enough

When source access has been configured, Eclipse builds the project. As you can see there are errors. http://www.eclipse.org/buckminster/pub/demo/snapshots/broken_workspace.jpg

Hey, Harry, this thing does not build!

Harry had forgot to give Tom all the details on how to set up the project. Since Harry (for good reasons) does not want to check in binaries from other sources, he now tells Tom to fetch the missing component from Ibiblio. He instructs Tom where to place it in the project, and that Harry also must remove the version information in the file name as manifest otherwise has to be changed for every revision of the used compoment. Tom agrees that this makes sense and performs the two steps.

Creating a jars folder where the component from Ibiblio is downloaded: http://www.eclipse.org/buckminster/pub/demo/snapshots/create_jars_folder.jpg

After download (not shown), the file is renamed: http://www.eclipse.org/buckminster/pub/demo/snapshots/fetch_and_strip_version_from_ibiblio.jpg

Hey, Harry! This still does not build!

There are more problems. One of the projects contains a jar that needs to be built. Harry tells Tom to use the JAR Packagager to solve this. http://www.eclipse.org/buckminster/pub/demo/snapshots/open_jar_packager.jpg

In the JAR Packager, Tom finds an absolute path that only makes sense on Harry's machine. Unfortunately, there is no way to specify this in relative terms, so Tom (and everyone else setting up this project) will just have to manually change this. http://www.eclipse.org/buckminster/pub/demo/snapshots/change_absolute_path.jpg

Finally the project builds ok

http://www.eclipse.org/buckminster/pub/demo/snapshots/ok_workspace.jpg

Sharing using Buckminster

Tom, recently having discovered Buckminster, asks Harry if it is ok to automate the process using Buckminster. Tom adds descriptions of how the components depend on each other and where the components can be found (in CVS, and on Ibiblio). This is expressed in some XML files as described in more detail in Hello XML World Example.

Hey Harry, look - no hands!

Tom demonstrates the new setup. Fetching and "installing" things is called materialization in Buckminster terms, and the materialization is started by querying for the top component. Such a query can be entered manually, but Tom has prepared the query and stored it in a file. This type of query is called Component Query (CQUERY). Tom simply uses the File > Open dialoge and types in the URL. The file is placed on a web server reachable by everyone. http://www.eclipse.org/buckminster/pub/demo/snapshots/open-cquery.jpg

This opens the CQUERY dialogue. There are many options, but in this case everything is set up, and all that is needed is to press the "Materialize" button. http://www.eclipse.org/buckminster/pub/demo/snapshots/cquery-editor.jpg

Buckminster then runs the query, transitively finds all required components, downloads them, and runs all required actions (such as building the required jar). http://www.eclipse.org/buckminster/pub/demo/snapshots/resolving.jpg

Done

When Buckminster has finished, the workspace is set up, and builds ok. http://www.eclipse.org/buckminster/pub/demo/snapshots/ok_workspace.jpg

Summary

This Usaqe Scenario shows how even a very simple project can be quite difficult to share. With Buckminster, automation of materialization and building is very simple. New users only need one step "materialize using a component query".