Login
Changes To home
Login

Changes to "home" between 2014-03-23 10:50:36 and 2014-10-01 16:48:59

1
2
3
4
5
6
7
8
9
10

11
12

13
14
15
16
17
18
19

20
21
22
23

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
1
2
3
4
5
6
7
8
9

10
11

12
13
14
15
16
17
18
19
20
21
22
23

24
25
26
27
28
29
30



31
32
33
34
35
36
37
38
39


40
41
42
43
44
45
46
47









-
+

-
+







+



-
+






-
-
-









-
-
+







<h1>libfossil: Fossil SCM Library API</h1>

See also: [download], [building], [th1ish], [f-tools],
[DbFunctions], [SQLSnippets], [HackersGuide],
[http://fossil.wanderinghorse.net/repos/libfossil/doxygen/|doxygen docs] (refreshed from current sources relatively frequently)


This source code repository houses an in-development library API for the [http://fossil-scm.org|Fossil SCM]. The primary goal is to port existing behaviour into a library form (the v1 app is extremely monolithic in nature). This effort, officially called "libfossil", intends to introduce no breaking changes, and the intention is to provide an alternative interface into fossil repositories, as opposed to a replacement for the core fossil application.

This code currently doesn't do much which would interest non-Fossil hackers. It might be of interest to those wanting to follow or participate in the design of libfossil. All current Fossil committers (those who have a signed a license waiver on file with DRH) are welcomed as contributors - email me your preferred user name to get access: sgbeal@googlemail.com. Those without a waiver may of course contribute in other ways (ideas, discussions, docs, ...).
This code currently doesn't do much which would interest non-Fossil hackers. It might be of interest to those wanting to follow or participate in the design of libfossil.

<strong>License:</strong> same as Fossil: the "2-Clause BSD" a.k.a. "FreeBSD License" with the same license holder (D. Richard Hipp, author of Fossil).
<strong>License:</strong> same as Fossil: the "2-Clause BSD" a.k.a. "FreeBSD License" with the same license holder (D. Richard Hipp, author of Fossil). To keep this code as "license clean" as possible vis-a-vis Fossil, code contributions require having a Fossil copyright waiver on file. All Fossil committers (those who have a signed a license waiver on file with DRH, whether or not they actually commit code to Fossil) are welcomed as contributors - email me your preferred user name to get access: sgbeal@googlemail.com. Those without a waiver may of course contribute in other ways (ideas, discussions, docs, ...). Getting a waiver is a simple matter of [http://www.fossil-scm.org/index.html/doc/trunk/www/copyright-release.html|filling it out and sending it off to DRH].

<h2>Online Demo</h2>

We have an online demonstration of CGI applications implemented using the [th1ish] bindings to libfossil here:

    [http://fossil.wanderinghorse.net/repos/libfossil/cgidemo/index.cgi]

Those particular script bindings have been obsoleted by newer ones (based on a different language), but the newer ones don't yet have CGI-level demos.

<h2>Status, TODOs, and Whatnot</h2>

All of this code is an <em>experiment</em>, and it does not represent a commitment by anyone that any of this code wll some day end up living under the umbrella of the larger Fossil SCM project. If all goes well, that's the eventual goal, though. It is alpha quality. What's there works but is subject to change and there is still a great deal of the higher-level SCM bits left to port in and refactor to make them usable via library-style interfaces. Anyone looking for a project roadmap/timeline is asked respectfully to look elsewhere - there is no timebox on nor schedule for this project/experiment.
All of this code is an <em>experiment</em>, and it does not represent a commitment by anyone that any of this code will some day end up living under the umbrella of the larger Fossil SCM project. If all goes well, that's the eventual goal, though. It is alpha quality. What's there works but is subject to change and there is still a great deal of the higher-level SCM bits left to port in and refactor to make them usable via library-style interfaces. Anyone looking for a project roadmap/timeline is asked respectfully to look elsewhere - there is no timebox on nor schedule for this project/experiment.

The code changes can be followed via [/timeline | the timeline].

The current public (and documented) API can be found in [/dir?name=include/fossil-scm | the header files], and occasionally that gets [http://fossil.wanderinghorse.net/repos/libfossil/doxygen/|exported to doxygen].

TODOs, design discussions, etc... you might want to get a coffee/tee/beer before starting through [https://docs.google.com/document/d/12g0s5A2TPX7-y47Nsw235rvsjcuh49TnHfMDB4ASvlo/view|the list].

A [th1ish|script engine binding] is being created in parallel with the library.


<h2>"Rules" for Code Contributors</h2>

   *  All code contributors must have a license waiver on file with DRH, as the hope is to eventually release this code as the next generation of Fossil. Non-code contributions are happily accepted from anyone.
   *  When working on bits which themselves write to the repository, e.g. creating checkins, please be exceedingly careful not to corrupt the db :-D.
   *  Please try to conform to the overall coding style (as laid out by Fossil v1). We're not picky about whether or not spaces belong before/after an <tt>if</tt>, but the general overall style should be uniform.
   *  Please build with the highest possible warning level and enable fatal warnings (in GCC and similar compilers: <tt>-Wall -Werror</tt>).
   *  Don't bother using branches unless you really want to - the trunk has no stability guarantees and is very much in flux, so feel free to work there instead of a branch if you like.

There is nothing holy or sacred about this repo, so feel free to hack at will. Generally the quickest/most complete way to test changes it to add them to the th1ish script bindings (in <tt>[/finfo?name=th1ish/shell_extend.c|shell_extend.c]</tt>). If you prefer writing C-level tests, please add them to <tt>[/finfo?name=src/f-sanity.c|f-sanity.c]</tt> or to a new test app if you like. See <tt>[/finfo?name=include/fossil-scm/fossil-cli.h|fossil-cli.h]</tt> for a mini-framework to bootstrap new test apps and [f-tools] for examples which take that approach.

There is nothing holy or sacred about this repo, so feel free to hack at will. Most of the library's sanity tests are packaged in <tt>[/finfo?name=src/f-sanity.c|f-sanity.c]</tt>. See <tt>[/finfo?name=include/fossil-scm/fossil-cli.h|fossil-cli.h]</tt> for a mini-framework to bootstrap new apps and [f-tools].


<h2>News</h2>

Notable changes (newest at the top)...
   *  20130919: Realized i hadn't updated the news in a while. Future news will be posted as [/timeline?y=e|Events in the /timeline].
   *  20130901: <b>Milestone:</b> side-by-side (SBS) diff generation was ported in.