upload tizen1.0 source
[pkgs/e/elektra.git] / NEWS
1 0.7.0
2
3 Finally it is done, the 0.7.0 API is finished.
4 The API covers everything shown in kdb.h and all
5 releases in 0.7.0 will be 100% ABI and API compatible
6 supported for at least a year.
7 Of course except for the bugs, but there should not be
8 many any more, because every method is at least checked
9 twice and most have hundred of test cases.
10
11 There will be a separate release for libelektratools,
12 backend interface which will be supported from that
13 moment on.
14
15 kdb-tool and kdbedit and so will also have separate
16 releases, but because they are not a library there
17 is no API or ABI issue there.
18
19 Download it from:
20 (sourceforge?)
21 http://www.markus-raab.org/ftp/elektra-0.7.0svn.tar.gz
22 ftp://www.markus-raab.org/elektra-0.7.0svn.tar.gz
23
24
25
26
27
28
29
30 ---------------
31
32
33
34
35 0.7.0rc5 The last release candidate before 0.7.0
36
37 I am proud to present the finished  0.7.0 external API in
38 kdb.h [0].
39
40 A lot changed to 0.6.10 but the fundamentals are clearer then
41 ever before: 3 Classes with their methods, a clear, easy and
42 mature API. It is very hard to use it wrong but you get
43 best results with very short code:
44
45 http://www.libelektra.org/Tutorial
46
47 Other parts are not finished, like libelektratools, the
48 kdb-tool and the backend interface. They are not part of
49 the official 0.7 release and get their own release later.
50
51 The reasons to release within the next week are:
52  - The API is finished
53  - Oyranos needs a stable release from elektra
54  - the last release is long ago
55  - unstable has been much more stable than stable since some time
56  - there have been no commits to the stable branch since
57    unstable existed
58  - Elektra grows just too complex to wait for all parts to finish
59
60 Now some highlights from one month of work from 333 ChangeLog
61 lines:
62  - many many bugs were fixed
63  - the core completely compiles with -ansi -pedantic -std=c99
64  - all code compiles with -Wall -Werror
65  - the test-suite is now complete
66  - much cleaner infrastructure within the code
67  - many autoconf/automake issues fixed
68  - static, dynamic building, linking with defaults backends
69    everything works!
70  - many new options to stat and remove all keys and so on..
71  - environment variables and passwd database allow subtle
72    influence of where the user configuration resides
73  - kdb info now prints where configuration lies on hard disc
74
75
76
77
78 ---------------
79
80
81
82
83 0.7.0rc4 - 12.05.2008
84 I am proud to present the fourth release candidate of elektra
85 0.7.0.
86
87 It is now possible to enable and disable Backends and Bindings
88 with configure switches. The documentation was improved.
89 The c++ binding now basically works, see the tests for examples.
90 Ini and Berkleydb backends now compile again.
91 There were a lot of bug fixes, like mntent.h fix for Mac OS X.
92
93
94
95
96 ---------------
97
98
99
100
101 0.7.0rc3 - 24.04.2008
102 Call for 0.7 finish
103
104 Unfortunately there is not much response about the 0.7 release
105 candidates but there is still a lot to do to have a mature
106 library worth to be announced as stable.
107
108 Specifically there are following things to do and we really need
109 help to achieve that faster than end of this year:
110
111 There are now only 3 backends working well tested but undistinguished
112 in handling error scenarios. At least 3 more Backends are needed
113 also tested in real world applications. Favoured are existing but
114 not ported backends like berkleydb, ini, winregistry and uniconf.
115
116 Working bindings have a lot meaning in how complete and useful
117 the API is. It would be preferable to have at least 3 bindings
118 working with at least an example application like kdb-tool.
119 They could be cpp, python and one open.
120
121 A lot of bug squashing is left open. Please don't hesitate to open
122 and fix more bugs on http://bugs.libelektra.org.
123
124 Documentation is not yet completely updated to 0.7. Especially the
125 homepage has a lot of outdated information, but also the API documentation
126 needs another eye on it and the tutorial needs a rewrite.
127
128 There might be some licencing issues in some parts of elektra,
129 everything should be BSD, if you find something please open a bug.
130
131 A partial blocker is the kdb-tool, where a rewrite would be nice but
132 is not necessary for 0.7 (the library counts not the environment).
133
134 Other things like portability are taken seriously but are not blockers,
135 they can be fixed later too.
136
137 What is really good working in elektra is the infrastructure like
138 svn, homepage, bug tracking, many thanks to José Luis Tallón for
139 that!
140
141 Now some words about 0.7.0rc3:
142
143 Version macros were added to have static information about
144 the elektra version compiled against. There were many
145 enhancements in the C++ Binding, the Key Class is now
146 quite well complete.
147
148 While writing the C++ binding I realized that there is need
149 for keyInc() the opposite of keyDel() to increase the
150 viability of a key object.
151
152 keyVNew() and ksVNew() were added to make it possible to pass
153 the va_list from the C++ binding.
154
155 The blocker bug that libelektra assumes system/elektra/mountpoints
156 to exist was solved, many thanks to Patrick Sabin. The tests
157 now work without any preloading without memory leaks.
158
159 And lots of bug fixes (Many thanks to Kai-Uwe Behrmann):
160 - sed changed for macosx compatibility
161 - fixed signature ssize_t ksToStream
162 - also set CXXFlags
163 - fix wrong parent at end in ksToStream
164 - fix return value of successful kdb import
165 - string is default type for xml without type=""
166 - fix extra_dist some missing files
167 - remove , at end of enumeration lists
168
169 The svn id is unstable@1352:
170 https://svn.libelektra.org/svn/elektra/unstable/
171
172 The release candidate is available under:
173 http://www.markus-raab.org/ftp/elektra-0.7.0rc3.tar.gz
174
175
176
177 ---------------
178
179
180
181 0.7.0rc2 - 23.03.2008
182 Second Release Candidate of unstable repository.
183
184 We proudly present the second release candidate for Elektra 0.7.0. Many
185 bugs were fixed, kdbGet() and kdbSet() is now really stable, useful and
186 well documentated. test_kdb also tests hosts and fstab next to filesys
187 with 6598 test cases.
188
189 kdbSet() now supports a parent key to only set a part of the
190 configuration passed by the keyset, allowing to e.g. save system and
191 user configuration seperately. It only calls kdbSet_backend() when it
192 is actually necessary. The splitting works much more efficient with n*b
193 instead of n^2*b.
194
195 The highlevel functions kdbGetKey() and kdbSetKey() now work well with
196 Capabilities. This allows very easy changing of keys inside backends
197 even with some lacking capabilities, see GetStartedMounting.
198
199 Patrick Sabin and I wrote our bachelor thesis about mounting backends for
200 configuration. It gives a detailed introduction in problem and choices
201 and the actual implementation.
202 See: doc/elektra.pdf doc/elektra.ps.gz
203
204
205
206
207
208 ---------------
209
210
211
212
213 0.7.0rc1 - 06.12.2007
214 First Release Candidate of unstable repository.
215 = Large Changes =
216
217 == Multiple Backends ==
218
219 Elektra now supports multiple backends at once. That means every path
220 like user/sw or system/filesystems can reside in a different backend.
221
222 Use cases for backend mounting: 1. There are many configurationfiles lying
223 on every system that can't be replaced for various reasons. These files
224 can be fade in into the global elektra namespace without any notice by
225 applications using these files. Backends for /etc/fstab, /etc/mtab and
226 /etc/passwd exist right now.
227
228 2. Users or administrators might get used by ordained files or syntax
229 without wanting to change the whole configuration using elektra. The
230 mounting technique allows them to choose.
231
232 3. Specific programs may have very complex and large configuration. Binary
233 files with index may give them a fairly better performance without
234 missing the connection to the global namespace.
235
236 4. Configuration provided by network or local daemons for notification
237 and caching can't be used for every program. Configuration related to
238 bootup or some system users need to be available without them, but should
239 also be accessed by applications needing configuration from network.
240
241 If you are not convinced - Its just about choice and you can go on using
242 only one backend.
243
244 See http://www.libelektra.org/Backends what is and might be possible.
245
246 == kdbOpen(), kdbClose(), kdbGet() and kdbSet() ==
247
248 These 4 core functions do now everything related to backend
249 communication. All the other functions are build upon it. This makes
250 backend writing much easier. Removing and Stat works by setting a flag
251 in a key.
252
253 KDB * is now a typedef for the _KDB structure and not a
254 void* pointer.
255
256 == Keyset ==
257
258 Starting with ksNew you can give a hint how large the keyset may grow. You
259 can also give a list of keys which should be added at startup.
260
261 ksGenerate() makes use out of that and generates you a keyset in C-Code
262 which you can use in your applications or for regression testing.
263
264 The internal structure of keyset is now a growing (and shrinking)
265 array. Keys may belong to multiple keysets now. The last ksDel() deletes
266 the key automatically (reference counter).
267
268 This implementation is a lot faster, the benchmark is for 0.7.0rc1 better
269 then for 0.6.*, even though the mounting logic takes a bit of performance,
270 but very little and something about zero when no backend is mounted.
271
272 == Key ==
273
274 The key now uses sizes for name, owner, value and comment. This allows a
275 complete new technique of serializing: keyCompose(). With that you can
276 serialize a key without a single malloc(). keySerialize() is rewritten
277 for the new key struct too.
278
279 == Access Types ==
280
281 The directory is now marked by the executable flags. That means you can
282 disallow other users or groups to list your keys.
283
284 == Capabilites ==
285
286 Some backends fullfill the whole specification of kdbGet_template() and
287 kdbSet_template() and can be used by any program for any purpose. Other
288 backends have principle limitations and do not fullfill the specification,
289 but can do more than enough to be useful.
290
291 To handle this problem we created a data structure describing what
292 capabilites a backend does not have. With that technique you can use the
293 testing framework from early steps developing the backend on. To do so,
294 just declare your backend can do nothing and delete step by step while
295 your backend evolves.
296
297 == Testing framework ==
298
299 There is now a large testing framework with 11 collections with up to
300 8128 tests each. Most conditions of the whole sourcecode are checked,
301 that means if you random change something in the code you have a good
302 chance that a test case will fail.
303
304 There are 2 new flags:
305  --enable-valgrind-tests
306    Allows you to enable valgrind for testing, a full list of memory
307    leaks is printed after every test.
308  --enable-gcov
309    Use it to see what lines of code are covered by tests.
310
311 The testcases are without any memory leak (dozens of leaks are fixed,
312 especially in xml code).
313
314
315 0.6.10 - 10.03.2007 Elektra received some stability updated from Patrice
316 Dumas.
317
318 0.6.6 - 21.12.2006 support for directories with values and comments on
319 filesys, berkeleydb and daemon backends.
320
321 0.6.4 - 08.09.2006 Tons of improvements and standarizations to the build
322 system from Patrice Dumas and Yannick.  Many improvements to the daemon
323 backend from Yannick.  Several other bug fixes.  We are getting closer
324 to a production daemon.
325
326
327 0.6.2 - 02.06.2006 - Includes more robust key name handling and
328 intelligent duplicate "/" removal - Escaping of "/" on key names is
329 now supported - Better automatic UTF-8 conversions - More tunnings for
330 better future daemon backend support - More robust berkeleydb backend -
331 Backends are now installed on /lib/elektra/ - The build system was tunned
332 to be included as a Fedora Extras package
333
334
335 0.6.0 - 30.03.2006 Public release of the new API.  Check it out in SF.