#For current work done, see CURRENT
#For possible extensions in future, see FUTURE

== CONTRACTS ==

add following configuration for storage plugins:
	use_absolute 
	use_namespaces 
	use_owner 

if given use information inside file rather then parent key
if storage plugin cannot represent this information, make it as information only
give (hardcoded) defaults in contract
Warn on ignored settings -> But better to always check contract!! 
let those values be changed on mount/import/export

 == PLUGINS ==

yail
	advanced functionality
	finish kdbSet
	test roundtrips
	configureable root

cppplugin:
	make a nice header-only(?) cpp solution for plugins
	(integration into cpp binding)
	assemble C symbols with macros
	keep C->C++ problems at one place to be included


json serialization:
	write a json storage using yajl and cppplugin
	* should handle cppcms config files
	  http://cppcms.com/wikipp/en/page/cppcms_1x_config
	* should handle openicc
	  doc/standards/OpenICC_device_config_DB.json
	  http://www.freedesktop.org/wiki/Specifications/icc_meta_tag_for_monitor_profiles

C serialization
	(ksNew(keyNew()))
	using cppplugin

xdg:
	write a xdg plugin which does xdg conforming resolving

struct: checker
	cannot be deeply nested

default plugin handling: resolver/storage

plugins:
	using libraries:
		libconfig
		eet
	using keysets:
		bind
		memory

== BINDINGS ==

bindings: using swig?
	python
	scheme
	java


== DOCUMENTATION ==

write tutorials:
	api introduction
	examples
	how to use kdb tools
	how to mount

bsd licence:
	check for documentation, homepage, modules,...

all exported methods of elektra need to be:
	useful in current state
	well documented in behavior
	having test cases for behavior
	behavior not overlapping with another function
	well documented error cases, return and errno values
	having test cases for error cases
	otherwise fix or mark it obsolete

symbols:
	check exported symbols
	use symbol table

add projects using elektra


== Testing ==

testing coverage:
	-fprofile-arcs
	-ftest-coverage
	reasoning which parts are tested

advanced testing:
	get and set a real big amount of keys
	multithreading testing

kdb tool

