KIWI - Appliance Builder Next Generation EL8 fork
Go to file
Marcus Schäfer febd69ec0f Refactor variable name for root directory
If it is clear the source directory is the root directory of
the image the variable should be named root_dir not source_dir
2016-01-19 11:15:18 +01:00
doc/man KIWI - appliance builder next generation 2015-12-05 16:17:10 +01:00
helper KIWI - appliance builder next generation 2015-12-05 16:17:10 +01:00
kiwi Refactor variable name for root directory 2016-01-19 11:15:18 +01:00
test Refactor variable name for root directory 2016-01-19 11:15:18 +01:00
tools Added repo handling to compat caller 2016-01-09 21:56:41 +01:00
.bumpversion.cfg Fix #4: support bumpversion with .bumpversion.cfg 2015-12-14 21:16:41 +01:00
.coveragerc KIWI - appliance builder next generation 2015-12-05 16:17:10 +01:00
.fuzzy Consolidate use of Makefiles for locale setup 2015-12-17 15:41:56 +01:00
.gitattributes Added __githash__ to version.py 2015-12-18 16:46:04 +01:00
.gitignore Consolidate use of Makefiles for compiling tools 2015-12-17 14:43:18 +01:00
.landscape.yml Added landscap config file 2015-12-05 21:04:53 +01:00
.locale Consolidate use of Makefiles for locale setup 2015-12-17 15:41:56 +01:00
.releasetags KIWI - appliance builder next generation 2015-12-05 16:17:10 +01:00
.travis.requirements.txt KIWI - appliance builder next generation 2015-12-05 16:17:10 +01:00
.travis.script KIWI - appliance builder next generation 2015-12-05 16:17:10 +01:00
.travis.yml Fixed travis setup 2015-12-10 14:01:10 +01:00
.virtualenv.dev-requirements.txt Added coverage to developer requirements 2015-12-15 15:05:32 +01:00
.virtualenv.requirements.txt Minor changes in virtualenv setup file names 2015-12-15 12:19:31 +01:00
LICENSE Fix #5: Improve setup.py 2015-12-14 22:32:25 +01:00
Makefile Fixed Makefile target to build data structures 2016-01-12 10:38:53 +01:00
MANIFEST.in Minor changes in virtualenv setup file names 2015-12-15 12:19:31 +01:00
README.md Review and add corrections 2015-12-15 13:26:45 +01:00
setup.cfg Fix #5: Improve setup.py 2015-12-14 22:32:25 +01:00
setup.py Merge branch 'version-fix' of https://github.com/tomschr/kiwi-1 into tomschr-version-fix 2015-12-15 11:58:21 +01:00

KIWI—Next Generation

Build Status Health

This is a rewrite of the current KIWI appliance builder which you can find here: https://github.com/openSUSE/kiwi.

Contents

Status

Development Status: 3 - Alpha(no release yet)

This project is in an early development phase and some parts the old KIWI version can do are not yet available in the new code base. If you are missing a feature at the time of the first release don't hesitate to open an issue such that I can collect them. Of course external contributions are very much appreciated.

Motivation

During the last years KIWI has evolved a lot. Many features were added, even some which are not in use anymore because new technologies made them obsolete. There is a lot of legacy code in KIWI to support older distributions too. We would like to get rid of all of these and come back with a clean appliance building system.

However, the current design and the lack of tests in core parts of the code prevents us from major refactoring as I see them required. Because of that, a rewrite of KIWI with a stable version in the background seems to be the best way.

Users will be able to use both versions in parallel. Also the new KIWI will be 100% compatible with the current format of the image description. This means, you can build an image from the same image description with the old and the new KIWI if the new KIWI supports the distribution and all features the image description has configured.

Supported Distributions

This version of KIWI is targeted to build appliances for distributions which are equal or newer compared to the following list:

  • SUSE Linux Enterprise 12
  • Red Hat Enterprise 7
  • Fedora 22
  • openSUSE 13.2
  • SUSE Leap 42
  • SUSE Tumbleweed

For anything older please consider to use the old version

Contributing

The core appliance builder is developed in Python and follows the test driven development rules. The XML, schema, and stylesheets are taken from the old version of KIWI. Also the entire boot code (written in bash) is taken from the old KIWI codebase.

The Python project uses virtualenv to setup a development environment for the desired Python version. The following procedure describes how to create such an environment for Python 2.7. Although it's targetted for openSUSE, it's very similar for other distributions with minor corrections:

$ sudo zypper in python-virtualenv

$ virtualenv-2.7 .env2

Once the development environment exists it needs to be activated and initialized with the project required Python modules:

$ . .env2/bin/activate

$ pip install -r .virtualenv.dev-requirements.txt

$ ./setup.py develop

The develop target of the setup.py script automatically creates the application entry point called kiwi, which allows to simply call the application from the current code base

$ kiwi --help

In order to leave the development mode just call

$ deactivate

Packaging

The creation of an RPM package is still work in progress because there is still no release of this KIWI version. However, in order to create the source tarball, use the following command:

$ ./setup.py sdist

The result can be found in the dist/ directory.