Skip to content

Data dictionary user workflow

lfronc edited this page Nov 19, 2014 · 8 revisions

This page proposes a user workflows for data dictionary. The accepted proposition is Using imported user packages.

(Rejected) Using registered packages for data dictionary

Pros:

Each time the plugin is built, a transformation in produced to update other models.

Issues:

  • Each time someone modifies the data dictionary, a plugin has to be build and the workspace updated.

  • The data dictionary should not be part of the toolchain because it is workspace specific.

  • Users want fast feedback for their changes.

Proposed solution:

Using a local eclipse update site that can be stored within the user project.

This update site is part of the user git repository. It allows for local updates of user workspace and reviews of changes without pushing the git repository. A user can also pull the git repository and update his workspace using this local update site.

The user workflow

data dictionary user workflow

Automatisable steps:

  • Updating the data dictionary plugin.

  • Pushing the local update site.

  • Updating workspace (load the new plugin).

Issues

  • Conflicts may arise, they are similar to conflicts with other models.

  • The git repository may bloat up because we store binaries.

(Accepted) Using imported user packages

Using imported packages is simpler. The only constraint here is to save all models before modifying an imported package, otherwise modifications will not be propagated.

The workflow

The workflow is based on EMF compare tool, is easy to follow, but conflicts can arise (concurrent modifications on same objects). For conflict resolution we propose EMF Compare tool which allows for comparing and merging EMF models.

The workflow is an usual process using git. First users pull the remote to have a version of the workspace that is up to date. Then they make their changes, commit the changes to their local repository and fetch upstream to get changes (if any) from the remote repository. Then there are two possibilities, there are no conflicts so the user can push his changes, otherwise he has to resolve conflicts first.

data dictionary user workflow

If there are conflicts a dialog box pops up and asks what to do, the way to precise is depicted in the picture below.

conflict resolution

Clone this wiki locally