Difference between revisions of "Extending or Contributing to Buckminster"

From Eclipsepedia

Jump to: navigation, search
(Fixed the 3.5 url.)
 
Line 1: Line 1:
 
{{Backlink|Buckminster Project}}
 
{{Backlink|Buckminster Project}}
  
If you are going to be working with Buckminster itself, writing your own extensions, or provide patches, you should first install Buckminster as described in [http://www.eclipse.org/downloads/download.php?file=/tools/buckminster/doc/BuckyBook.pdf The Definitive Guide]. As Buckminster source is stored in a Subversion repository, you need to install either a Subversive or a Subclipse client.
+
If you are going to be working with Buckminster itself, writing your own extensions, or provide patches, you should first install Buckminster as described in [http://www.eclipse.org/downloads/download.php?file=/tools/buckminster/doc/BuckyBook.pdf The Definitive Guide]. As Buckminster source is stored in a Git repository, you need to install the EGit and JGit features from the release train.
  
=Installation for Buckminster contributors=
+
==Initial clone of the repository==
==Set up a platform agnostic target platform==
+
#Ensure that the '''Git Repositories''' view is visible. You should be able to find it under ''"Window"'' => ''"Show View"'' => ''"Other..."'' => ''"Git"'' if its not.
Prior to resolving this query you MUST ensure that your workspace is set up with a target platform containing the Eclipse SDK and the delta pack.
+
#Click on ''"Clone a Git repository"''
#Go to ''Window'' -> ''Preferences'' -> ''Plugin-In Development'' -> ''Target Platform'' and select ''Add...''
+
#Paste the following URL into the URI field in the wizard that pops up <pre>git://git.eclipse.org/gitroot/buckminster/buckminster.git</pre>
#A wizard pops up. On the first page, check ''Nothing: Start with an empty target definition''
+
#Click ''"Next>"'' twice, then ''"Finish"''
#On the next page, give you definition a ''Name'' such as "Eclipse SDK with delta pack".
+
#Click ''Add...'' (under the Locations tab).
+
#An ''Add Content'' Dialog pops up. Select ''Software Site''
+
#Select ''The Eclipse Project Updates'' site and the ''Eclipse SDK'' feature for install.
+
#Uncheck the ''Include required software''
+
#Check the ''Include all environmnents''
+
#Click ''Finish'' to get back to the Target Content page
+
#Click ''Finish'' to get back to the Preferences page
+
#Select (put a check mark in) the new platform to make it current.
+
#Click ''OK''
+
 
+
We recommend that you restart your Eclipse at this point although it should not be strictly necessary.
+
  
 
==Populating the workspace==
 
==Populating the workspace==
#Execute one of the following component queries - (Select "File" > "Open a Component Query", and paste in out of these URL's depending on which version you want:
+
===Create the local clone and check out the releng project===
:* For '''head development''' [http://www.eclipse.org/buckminster/samples/queries/buckminster-dev.cquery http://www.eclipse.org/buckminster/samples/queries/buckminster-dev.cquery]
+
#Expand ''"buckminster"'' => ''"Working Directory"'' in the '''Git Repositories''' view.
:* For '''eclipse 3.5.x''' [http://www.eclipse.org/buckminster/samples/queries/buckminster-3.5.cquery http://www.eclipse.org/buckminster/samples/queries/buckminster-3.5.cquery]
+
#Select ''"org.eclipse.buckminster.releng"'', right click, and then select ''"Import projects..."''
 +
#Click ''"Next>"'' in the list of projects. A page where only the selected project is visible shows up.
 +
#Click ''"Finish"''
 +
 
 +
===Prepare an empty target platform===
 +
#Create a new general project named '''TP''' (or some name of your preference)
 +
#Open ''"Window"'' => ''"Preferences"'' and expand ''"Plug-in Development"''
 +
#Select ''"Target Platform"''
 +
#Click ''"Add..."''
 +
#Click ''"Next>"'' (i.e. start with nothing)
 +
#Enter '''TP''' in the ''Name:'' field
 +
#Click ''"Add..."''
 +
#Select ''"Directory"'' and click ''"Next"''
 +
#Click on ''"Variables..."''
 +
#Scroll down and select ''"workspace_loc"'' and then type '''TP''' in the ''Argument:'' field.
 +
#Click ''"OK"'' and then ''"Finish"'' and then ''"Finish"'' again.
 +
#Set your new target definition active by checking it in the list of ''Target definitions:'' and click ''"OK"''
 +
 
 +
===Run the cquery to populate the workspace===
 +
#Expand the '''org.eclipse.buckminster.releng''' project and open the '''build.cquery''' file. It should open using the Buckminster cquery editor.
 
# Press "Resolve & Materialize" in the CQUERY editor that appears
 
# Press "Resolve & Materialize" in the CQUERY editor that appears
 
# Buckminster will now fetch and build Buckminster from source.
 
# Buckminster will now fetch and build Buckminster from source.
=More elaborate patches to Buckminster=
+
 
If you are going to contribute code to Buckminster in the form of patches, you may want to look at some of the coding policies and conventions used by Buckminster Committers.
+
==Submitting a patch==
 +
#Make necessary changes
 +
#Ideally, write a JUnit test case that test your change and add it to the set of JUnit tests in the corresponding test project
 +
#Commit your changes to your local Buckminster clone
 +
#Use EGit to create a patch for your commit. This can be done by viewing the repository history, right clicking a commit, and then select ''"Create Patch..."''
 +
#Submit this patch as an attachment to a bug in our [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Buckminster Bugzilla]
 
[[Category:Buckminster]]
 
[[Category:Buckminster]]

Latest revision as of 02:25, 14 September 2012

< To: Buckminster Project

If you are going to be working with Buckminster itself, writing your own extensions, or provide patches, you should first install Buckminster as described in The Definitive Guide. As Buckminster source is stored in a Git repository, you need to install the EGit and JGit features from the release train.

Contents

[edit] Initial clone of the repository

  1. Ensure that the Git Repositories view is visible. You should be able to find it under "Window" => "Show View" => "Other..." => "Git" if its not.
  2. Click on "Clone a Git repository"
  3. Paste the following URL into the URI field in the wizard that pops up
    git://git.eclipse.org/gitroot/buckminster/buckminster.git
  4. Click "Next>" twice, then "Finish"

[edit] Populating the workspace

[edit] Create the local clone and check out the releng project

  1. Expand "buckminster" => "Working Directory" in the Git Repositories view.
  2. Select "org.eclipse.buckminster.releng", right click, and then select "Import projects..."
  3. Click "Next>" in the list of projects. A page where only the selected project is visible shows up.
  4. Click "Finish"

[edit] Prepare an empty target platform

  1. Create a new general project named TP (or some name of your preference)
  2. Open "Window" => "Preferences" and expand "Plug-in Development"
  3. Select "Target Platform"
  4. Click "Add..."
  5. Click "Next>" (i.e. start with nothing)
  6. Enter TP in the Name: field
  7. Click "Add..."
  8. Select "Directory" and click "Next"
  9. Click on "Variables..."
  10. Scroll down and select "workspace_loc" and then type TP in the Argument: field.
  11. Click "OK" and then "Finish" and then "Finish" again.
  12. Set your new target definition active by checking it in the list of Target definitions: and click "OK"

[edit] Run the cquery to populate the workspace

  1. Expand the org.eclipse.buckminster.releng project and open the build.cquery file. It should open using the Buckminster cquery editor.
  2. Press "Resolve & Materialize" in the CQUERY editor that appears
  3. Buckminster will now fetch and build Buckminster from source.

[edit] Submitting a patch

  1. Make necessary changes
  2. Ideally, write a JUnit test case that test your change and add it to the set of JUnit tests in the corresponding test project
  3. Commit your changes to your local Buckminster clone
  4. Use EGit to create a patch for your commit. This can be done by viewing the repository history, right clicking a commit, and then select "Create Patch..."
  5. Submit this patch as an attachment to a bug in our Bugzilla