[devhelp] hacking: write 'Devhelp philosophy' section
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [devhelp] hacking: write 'Devhelp philosophy' section
- Date: Tue, 30 Jul 2019 17:30:45 +0000 (UTC)
commit 2b6265e1fe10a227f6610771e86c39c4e6a6ad1a
Author: Sébastien Wilmet <swilmet gnome org>
Date: Tue Jul 30 19:04:20 2019 +0200
hacking: write 'Devhelp philosophy' section
Note that I'm far from the original author(s) of Devhelp, this is rather
my understanding after refactoring the whole codebase (for devhelp being
a generic tool; this was also the opinion of Frédéric Péters written in
a bugzilla comment somewhere, and over drinks in Brussels).
There was already a Devhelp library used by Anjuta, I've just improved a
bit the situation :-) And having a flexible library can be powerful, it
enables new potential, new low-hanging fruits. The code is cleaner, more
maintainble, it lowers the bar to entry for contributors because they
can read the API reference of the libdevhelp… in Devhelp.
HACKING | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
---
diff --git a/HACKING b/HACKING
index 391b4f78..33d32df7 100644
--- a/HACKING
+++ b/HACKING
@@ -10,6 +10,34 @@ Read the following wiki page to know the conventions for the commit messages:
https://wiki.gnome.org/Git/CommitMessages
+Devhelp philosophy
+------------------
+
+The tool is generic and can be used by other development communities, as long
+as the API documentation is available in HTML and a *.devhelp2 index file is
+generated. It's important to keep the door open to other development
+communities, to increase diversity.
+
+If you want to make the Devhelp application GNOME-specific, for example to have
+a start page specific to GNOME libraries, or to download API references from
+gnome.org, read the next paragraph.
+
+Sébastien Wilmet has done a lot of refactorings to the code, to follow the
+“as a library” philosophy, like for the LLVM project [1]. Almost all the code
+is written as a flexible library. With a DAG (Directed Acyclic Graph) of
+classes for the containment hierarchy. With the goal to create a software
+product line [2] for Devhelp: keep the Devhelp application generic, and create
+a new application specific to GNOME, with both applications having a really
+small codebase (the GNOME-specific features would be written as a configurable
+library as well).
+
+[1] “a corpus of functionality built as a set of libraries that can be sliced
+ and remixed in different ways per the needs of different use-cases”
+ (Chris Lattner, original co-author of LLVM),
+ http://lists.llvm.org/pipermail/llvm-dev/2019-June/133274.html
+
+[2] https://www.amazon.com/Feature-Oriented-Software-Product-Lines-Implementation/dp/3642375200/
+
C code conventions
------------------
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]