doc: added Developer's Manual

Just a start...
This commit is contained in:
Max Kellermann 2009-06-02 21:09:45 +02:00
parent 516e52c67b
commit 3483c891dc
3 changed files with 111 additions and 1 deletions

1
.gitignore vendored
View File

@ -39,6 +39,7 @@ tags
doc/protocol.html doc/protocol.html
doc/protocol doc/protocol
doc/user doc/user
doc/developer
doc/sticker doc/sticker
doc/api doc/api
test/software_volume test/software_volume

View File

@ -720,7 +720,7 @@ endif
man_MANS = doc/mpd.1 doc/mpd.conf.5 man_MANS = doc/mpd.1 doc/mpd.conf.5
doc_DATA = AUTHORS COPYING NEWS README UPGRADING doc/mpdconf.example doc_DATA = AUTHORS COPYING NEWS README UPGRADING doc/mpdconf.example
DOCBOOK_FILES = doc/protocol.xml doc/user.xml doc/sticker.xml DOCBOOK_FILES = doc/protocol.xml doc/user.xml doc/developer.xml doc/sticker.xml
if ENABLE_DOCUMENTATION if ENABLE_DOCUMENTATION
protocoldir = $(docdir)/protocol protocoldir = $(docdir)/protocol
@ -729,6 +729,9 @@ protocol_DATA = $(wildcard doc/protocol/*.html)
userdir = $(docdir)/user userdir = $(docdir)/user
user_DATA = $(wildcard doc/user/*.html) user_DATA = $(wildcard doc/user/*.html)
developerdir = $(docdir)/developer
developer_DATA = $(wildcard doc/developer/*.html)
if HAVE_XMLTO if HAVE_XMLTO
DOCBOOK_HTML = $(patsubst %.xml,%/index.html,$(DOCBOOK_FILES)) DOCBOOK_HTML = $(patsubst %.xml,%/index.html,$(DOCBOOK_FILES))
@ -762,6 +765,7 @@ upload: $(DOCBOOK_HTML) doc/api/html/index.html
--chmod=Dug+rwx,Do+rx,Fug+rw,Fo+r \ --chmod=Dug+rwx,Do+rx,Fug+rw,Fo+r \
--include=protocol --include=protocol/** \ --include=protocol --include=protocol/** \
--include=user --include=user/** \ --include=user --include=user/** \
--include=developer --include=developer/** \
--include=api --include=api/** \ --include=api --include=api/** \
--exclude=* --exclude=*

105
doc/developer.xml Normal file
View File

@ -0,0 +1,105 @@
<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"docbook/dtd/xml/4.2/docbookx.dtd">
<book>
<title>The Music Player Daemon - Developer's Manual</title>
<chapter>
<title>Introduction</title>
<para>
This is a guide for those who wish to hack on the MPD source
code. MPD is an open project, and we are always happy about
contributions. So far, more than 50 people have contributed
patches.
</para>
<para>
This document is work in progress. Most of it may be incomplete
yet. Please help!
</para>
</chapter>
<chapter>
<title>Code Style</title>
<itemizedlist>
<listitem>
<para>
indent with tabs (width 8)
</para>
</listitem>
<listitem>
<para>
don't write CPP when you can write C: use inline functions
and enums instead of macros
</para>
</listitem>
<listitem>
<para>
the code should be C99 compliant, and must compile with
<application>GCC</application>;
<application>clang</application> support is highly desirable
</para>
</listitem>
<listitem>
<para>
C++ is ok (for integrating C++ only libraries), but it
should be avoided
</para>
</listitem>
<listitem>
<para>
Some example code:
</para>
<programlisting lang="C">static inline bool
foo(const char *abc, int xyz)
{
if (abc == NULL) {
g_warning("Foo happened!\n");
return -1;
}
return xyz;
}
</programlisting>
</listitem>
</itemizedlist>
</chapter>
<chapter>
<title>Hacking The Source</title>
<para>
Always write your code against the latest git:
</para>
<programlisting>git clone git://git.musicpd.org/master/mpd.git</programlisting>
<para>
Configure with the options <option>--enable-debug
--enable-werror</option>. Enable as many plugins as possible,
to be sure that you don't break any disabled code.
</para>
<para>
Don't mix several changes in one single patch. Create a
separate patch for every change. Tools like
<application>stgit</application> help you with that.
</para>
</chapter>
<chapter>
<title>Submitting Patches</title>
<para>
Send your patches to the mailing list:
musicpd-dev-team@lists.sourceforge.net
</para>
</chapter>
</book>