Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents

Checking Out KIELER

Note

You shouldn't need to check out anything manually if you have installed Eclipse using our Oomph setup.

KIELER is essentially a large heap of Eclipse plug-ins that aren't easy to find your way through as a new developer. The Overview page has a nice overview of our sub-projects and what plug-ins belong where. This section will tell you how to get the KIELER sources. As for what plug-ins you will actually need to checkout, ask your advisor.

...

  1. If you don't have an SSH key yet, you have to create one. You can do this by:
    • Creating one using the command ssh-keygen on the command line. Simply type ssh-keygen, confirm the default destination file ~/.ssh/id_rsa, and choose whether to give a passphrase. If you have a passphrase, you need to enter it whenever you use your SSH key for the first time in a session. You can omit the passphrase, but that makes the key less secure. As result, the tool generates a private key ~/.ssh/id_rsa, which has to be kept secret, and a public key ~/.ssh/id_rsa.pub.
    • Using Eclipse to generate it. You can find this function under Preferences - General - Network Connections - SSH2 - Key Management.
  2. Register with Stash and upload your public SSH key (Profile - SSH Keys - Add Key).
  3. Copy one of the following repository URI URIs into the clipboard: ssh://git@git.rtsys.informatik.uni-kiel.de:7999/KIELER/mainline.git (if you insist in using HTTPthe_repo_to_clone.git where the_repo_to_clone is either pragmatics or semantics (if in doubt, ask your adviser which of these you need). If you for whatever reason insist on using the less efficient HTTP protocol, use the following URIhttp://youraccountname@git.rtsys.informatik.uni-kiel.de/scm/KIELER/mainlinethe_repo_to_clone.git)
  4. Open the Git Repositories view, right-click it, select Paste Repository Path or URI, select ssh connection protocol, Next, select master branch, Next, select destination directory (e.g. /home/<username>/shared/kieler), Finish. Wait for the repository to be downloaded to your computer. Note that the whole history of the repository will be stored in your local filesystem, which is pretty awesome.
  5. Right-click the Working directory entry in the kieler repository, select Import Projects, Next, select the projects that you want in your workspace, Finish.

...

  1. Click the button Add an existing local Git Repository to this view in the Git Repositories view and enter the local path.
  2. Import the plugin projects that you need.

Importing Plugins to the Eclipse Workspace

In the Git Repository View, perform Right-click

...

> Import Projects... on the Working directory or Plugins folder. Hit Next. In the following dialog you can Deselect all and afterwards select the plugins that you need for your developing task.

Image Added

For example, if you want to start KIELER with SCCharts you need to import

  1. all core plugins (core.*) from the semantics and pragmatics repositories

  2. all SCCharts plugins (sccharts.*) from the semantics repository, unless sccharts.prio.dependencies, sccharts.prio.dependencies.klighd, sccharts.prio.s, sccharts.prio.sim.s
  3. all required plugins for the already imported ones

As a result you will have the following plugin projects in your workspace:

  1. From the pragmatics repo: core, core.kgraph, core.kgraph.text, core.kgraph.text.ui, core.kivi, core.krendering, core.krendering.extensions, core.ui, kiml, kiml.formats, kiml.graphviz.dot, kiml.graphviz.layouter, kiml.service, kiml.ui, klay.layered, klighd, klighd.piccolo, klighd.ui, edu.umd.cs.piccolo
  2. From the semantics repo: core.annotations, core.annotations.edit, core.annotations.text, core.annotations.text.ui, core.kexpressions, core.kexpressions.edit, core.kexpressions.keffects, core.kexpressions.keffects.edit, core.kexpressions.keffects.ui, core.kexpressions.text, core.kexpressions.text.ui, core.kexpressions.ui, core.model, core.perspectives, core.product, kex, kex.ui, kico, kico.klighd, kico.ui, kitt, kitt.klighd, prom, s, s.sc, s.sim, s.sim.kivi, s.sim.sc, s.sim.sj, s.sj, s.ui, sc, sccharts, sccharts.edit, sccharts.editor, sccharts.eso, sccharts.kivi, sccharts.klighd, sccharts.prom, sccharts.s, sccharts.scg, sccharts.sim.c, sccharts.sim.s, sccharts.text, sccharts.text.ui, scg, scg.s, scl, sim.benchmark, sim.instructions, sim.kiem, sim.kiem.config, sim.kiem.ui, sim.kiem.ui.datacomponent, sim.kivi, sim.signals, sim.signals.ui, sim.syncsignalreset, sim.table, sjl, org.freemarker, org.json

Troubleshooting / Resolving Plugin Dependencies

If there are errors in your workspace, they are most likely the result of missing plugins. To solve this, check if the MANIFEST.MF file of the project has error markers. Import missing plugin dependencies if required.

Image Added

After all dependencies are solved and there are still errors, you should clean your workspace via Project > Clean > All projects.

If there are errors in an xtend-gen folder you can delete this folder so that the contents are re-compiled. (It sometimes happens that this folder is not deleted as part of the clean.)

There should not be any errors after all required plugins are imported and compiled correctly.

Updating the Repository

Your working copy must be clean before you can merge any updates into it. Therefore, always commit your changes locally before you pull. If you don't want to commit them into the master branch, commit them into a new branch. Note that pulling is the same as fetching remote changes and merging them into your local branch. Since a normal merge operation is involved, this can lead to conflicts, which need to be resolved as described below. Note that pulling always merges the remote changes into your current branch. If that's not what you want, checkout the correct branch first or just do a fetch.

...

When you push or pull branches, simply select the remote you wish to interfere with. Pulling is done by git pull <remote> <branch>, and pushing is done by git push <remote> <branch>.