Code

Re-add deleted preference setting for paint bucket tolerance
[inkscape.git] / HACKING.txt
1 Compiling the SVN version
2 =========================
3 grep Build-Depends debian/control to see a list of (Debian) packages needed for
4 compilation.
6 inkscape.spec.in has a partial list of requirements: 
8   grep Requires inkscape.spec.in
10 At the time of writing, it contains only one package; if you use an RPM-based
11 distribution, then please consider updating the Requires/BuildRequires lines to
12 help other users of your distribution.  If you don't have SVN write access,
13 then you can submit a patch to the patch tracker
14 <http://sourceforge.net/tracker/?group_id=93438&atid=604308>.
17 See http://wiki.inkscape.org/wiki/index.php/CompilingInkscape for more general
18 remarks about compiling, including how to find some of the needed packages for
19 your distribution, and suggestions for developers.
22 Contributing to Inkscape
23 ========================
24 Inkscape welcomes your contributions to help turn it into a fully
25 SVG-compliant drawing program for the Open Source community. 
27 While many developers work on fixing bugs and creating new features, it
28 is worth strong emphasis that even non-programmers can help make
29 Inkscape more powerful and successful. You probably already have an idea
30 of something you'd like to work on. If not, here are just a few ways you
31 can help: 
33    * Pick a bug, fix it, and send in a patch ("diff -uNrp" or "cvs diff -up")
34    * Choose a feature you want to see developed, and make it
35    * If you speak a language in addition to English, work on your
36      language's i18n file in the po/ directory
37    * Find a new bug and report it
38    * Help answer questions for new Inkscapers on Jabber, IRC or the
39      mailing lists
40    * Write an article advocating Inkscape
41    * Author a HOWTO describing a trick or technique you've figured out
44 SVN Access
45 ==========
46 See http://inkscape.org/svn.php for how to access SVN,
47 including browsing SVN from a web client.
49 We give SVN write access out to people with proven interest in helping develop
50 the codebase.  Proving your interest is straightforward:  Make two
51 contributions and request access.
54 Patch Decisions
55 ===============
56 Our motto for changes to the codebase is "Patch first, ask questions
57 later".  When someone has an idea, rather than endlessly debating it, we
58 encourage folks to go ahead and code something up (even prototypish).
59 This is then incorporated into the development branch of the code for
60 folks to try out, poke and prod, and tinker with.  We figure, the best
61 way to see if an idea fits is to try it on for size.
64 Coding Style
65 ============
66 Please refer to the Coding Style Guidelines
67 (http://www.inkscape.org/doc/coding_style.php) if you have specific questions
68 on the style to use for code.  If reading style guidelines doesn't interest
69 you, just follow the general style of the surrounding code, so that it is at
70 least consistent.
73 Makefiles
74 =========
75 Makefiles under the src directory are all more or less merged into one
76 src/Makefile.am that sources the Makefile_insert files from each directory.
78 Note that it's still logically just one file, so variable definitions
79 (including INCLUDES etc.) are shared, and variables defined in one
80 Makefile_insert can be used in another.
82 Thus, consider either adding a `blah_' prefix to the name of any variables you
83 define in blah/Makefile_insert (if it's intended to be local to that
84 Makefile_insert), or putting the definition in src/Makefile.am.  In particular,
85 note that check_PROGRAMS, DISTCLEANFILES, etc. are in src/Makefile.am.