Code Repositories
This page contains an overview of code repositories for various projects maintained by us. We use Github to run these repositories and use various organizations and repositories to structure the code. An overview is given in a following section.
Every repository has a repository owner who ensures that the contained code is up-to-date. Please note that a repository owner does not refer to the owner of the repository as recorded by Github because that would be the Github organization instead of an individual person. A repository owner that leaves KIT has to pass ownership to another member. An overview of tasks and technical support utilities for maintaining repositories is given in a following section.
If there is no repository owner and the repository will not be maintained anymore, it will be marked as discontinued as described in a following section.
We encourage every repository owner to set up a build process (e.g. Maven) that is integrated into a continous integration system. A good way of setting up a build process for Eclipse plugins is Maven Tycho. Usually, an organization specifies ways of setting up builds but a general documentation is available as well. Continuous integration systems are also usually operated separately for organizations but for small projects, Travis CI is also a good and free option that is well integrated with Github.
Repository Owners
Every repository shall define an owner that has to be updated by the owner if he/she leaves the organization.
The repository owner has the following responsibilities
- ensure that code is up-to-date
- ensure that code is compatible to dependencies
- set up and maintain continuous integration
- Definition of Owner
The repository owner is defined as code owner. This is defined by creating a file CODEOWNERS in the folder .github that is located in the repository root. The content has to be * @GithubUserName.
An example of this file is given in the project SDQ-Commons on Github.
- Overview
In order to provide an overview of all repositories including their owners, we created a simple website that queries the Github API and visualizes the results. The code is available in a repository of the KIT-SDQ organization.
Unmaintained Repositories
If a project is not maintained anymore, a repository owner is not required anymore. The continuous integration of the project shall be shut down and build jobs shall be archived. The project has to be marked as discontinued by adding the topic discontinued to it. In addition, the project shall be archived on Github to prevent further write operations. The overview page of repository owners also shows topics.
Github Organizations
MDSD-Tools
The organization MDSD-Tools aims for providing tools that support model driven software development. The development takes place at several universities (e.g. KIT, University of Stuttgart).
Only stable projects that are integrated into continuous integration / continuous delivery shall be provided here.
KIT-SDQ
The organization KIT-SDQ contains repositories of all researchers at the chairs SDQ and ARE. This includes common utilitites, example models, and so on. All projects that may be relevant for all researchers at SDQ and ARE and do not fit into one of the project-specific organizations (especially PalladioSimulator and vitruv-tools) may be placed here.
This organization can also contain incubation projects. However, all projects shall be integrated into continuous integration / continuous delivery for providing nightly builds. This helps finding issues and reporting incompatibilities. In contrast to previous policies, we now prefer each project to deploy its artifacts on an own updatesite, which can be provided by GitHub Pages. Even existing projects should start to change their deployment policy using an own updatesite. We will later provide specific aggregators, which combine topic-specific updatesites instead of the monolithic updatesite that we provide right now.
An overview of all repository owners of the KIT-SDQ organization is available.
Important: The project BuildUtilities contains important scripts that are used to prepare builds (maventychonization), to deploy build artifacts (travis-ci/deploy.sh), or to perform releases (versioning/release.sh).
Vitruv
https://github.com/vitruv-tools bzw. http://vitruv.tools
The organization Vitruv contains all repositories of the Vitruv project.
This organization can also contain incubation projects. However, all projects shall be integrated into continuous integration / continuous delivery for providing nightly builds. This helps finding issues and reporting incompatibilities.
PalladioSimulator
https://github.com/palladiosimulator
The organization Palladiosimulator contains all Palladio-related projects.
An overview of naming schemes and guidelines for creating repositories are available in the description of the build infrastructure.