Table of Contents

Source Code Repository

Author:Semen Cirit, Çağlar Kilimci
Date:October 26, 2011

Pardus developers may be located all around the world. We keep the source code in an internet-accessible version control system called Subversion SVN, in order to enable our developers to work together on Pardus Distribution.

Pardus has source code repositories and use SVN for source of packages, technologies and web pages. See Pardus svn web page.

Before explaining Pardus repositories structures, we need to explain first general subversion branch maintainance:

The trunk is the main line of development in a SVN repository.

A branch is a side-line of development created to make larger, experimental or disrupting work without annoying users of the trunk version. Also, branches can be used to create development lines for multiple versions of the same product, like having a place to backport bugfixes into a stable release.

Finally, tags are markers to highlight notable revisions in the history of the repository..

Special folder names can also be used as trunk, branch, or tags that can be more meaningful to use.

Package Source Repository

Following table shows binary/farm/source mappings for package source repository:

Binary Repo Farm Source Repo
devel/i686 devel/i686 devel
devel/x86_64 devel/x86_86 devel
testing/i686 testing/i686 testing
testing/x86_64 testing/x86_64 testing

distribution Folder

Each developed Pardus distribution has a special folder name in Pardus Package source repository and these folders are used as trunks. Each distribution on this Package source repository has a specific folder tree.

devel Folder

The under development package source files are included in this folder. This means whenever a package maintainer changes some code on his/her packages, it should be committed a related devel repository folder.

This folder may contain alfa, beta or latest unstable releases of packages.

testing Folder

This folder includes package source files which obtains their stable releases. In other words while devel folder can contain unstable packages testing can not.

But some exceptions can also be exist, if you are not sure please ask Pardus devel list.

These two folders also has a specific folder tree. In this tree, the folders are named with Pardus package components.

playground Folder

Package source repository includes also an other folder playground. When a new package is wants to be added to Pardus repositories or a new release of a complicated package will be implemented, the package maintainer use subfolder of the playground which is named with his/her name to commit the changes of packages.

review Folder

The playground has also a review folder. This folder also has folders named as package components. Whenever a package is ready for package review, the package maintainer should move packages from his/her named folder under playground to package component named folder under review.

tags Folder

Package source repository includes also an other folder tags. This folder includes distribution folders which reached their end of life.

Core Projects Source Repository

There are two kind of source repositories; subversion and git based. For now, git repository is using for testing. Uludag repository, core projects source repository, is based on subversion.

Subversion Repository

core projects source repository includes the projects which are included in at least one Pardus distribution.

There exist also the developer scripts and developer docs under this repository.

This repository use general subversion branch maintainance as mentioned above:

trunk Folder

This trunk folder includes the maintained projects, scripts, and documents of Pardus distribution.

branches Folder

Some projects need branches in order to create development lines for multiple versions, therefore these projects can be branched under this branches.

tags Folder

tags folder is used for unmaintained projects or unmaintained versions of a project.

Git Repository

Unlike core projects source repository, which all projects comes together in one path, every project has own git repository. For example:<project-name>.git

Responsibility of repository is responsibility of project. The merge requests are applied by project leader.

We do not need extra playground repositories because every developer have own git area, like:<developer-name><developer-name>/<project-name>.git

Tagging is easier on git for its own properties. Also code review process can be handled with code review plug in on issue tracking system.

External Projects Source Repository

external projects source repository includes the projects of Pardus developers, but these projects are not related any Pardus distribution. In other words Pardus developers use this repository to commit their self open source projects. When a project in that repository is decided to take place in a Pardus distribution, it should be moved to core projects source repository.

Özgürlük İçin Source Repository

oi source repository includes Özgürlük için projects and web page source codes.

This repository has also the folders trunk and branches.

Web Source Repository

web source repository includes the web page contents and codes of Pardus web pages.