Login
Update of ”home”
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

Artifact ID: 8cbd20743dea71655fa46127444ca8270e4fda35
Page Name:home
Date: 2013-08-21 21:24:57
Original User: stephan
Parent: 40a92caf45bb19550336b4180ac89c335ffd9335 (diff)
Next 53557d882d79bb3feec7e649dd310a53dc600cda
Content

Fossil Library API Scratchpad

See also: download, th1ish, f-tools, doxygen docs (refreshed occasionally from current sources)

This source code repository houses experimentation for a potential library API for the Fossil SCM. The primary goal is to port existing behaviour into a library form (the v1 app is extremely monolithic in nature). While it has been informally dubbed "v2", there are no format-breaking changes planned, 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 is intended for those interested in following or participating in the design of libfossil. All current Fossil committers (those who have a signed a license waiver on file with DRH) are welcomed contributors - email me your preferred user name to get access: sgbeal@googlemail.com.

License: same as Fossil: the "2-Clause BSD" a.k.a. "FreeBSD License" with the same license holder (D. Richard Hipp, author of Fossil).

Status, TODOs, and Whatnot

All of this code is an experiment, 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 SCM-specific infrastructure left to port in and refactor to make it 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.

A list of recent notable changes is maintained below. The code changes can be followed via the timeline.

The current public (and documented) API can be found in fossil.h, and occasionally that gets exported to doxygen.

TODOs, design discussions, etc... you might want to get a coffee/tee/beer before starting through the list.

An experimental script engine binding is being created in parallel with the library.

"Rules" for Code Contributors

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 shell_extend.c). If you prefer writing C-level tests, please add them to test.c in the top-level directory or to a new test app if you like. See FossilApp.c for a mini-framework to bootstrap new test apps and f-tools for examples which take that approach.

News

Notable changes (newest at the top)...