blob: 4fedb34e26b57b148d4abddeefbc77f3ddd2ca0e [file] [log] [blame]
gdtd9fd04c2003-12-19 19:20:25 +00001-*- mode: text; -*-
2
jardin9e867fe2003-12-23 08:56:18 +00003$Id: HACKING,v 1.3 2003/12/23 08:56:18 jardin Exp $
gdtd9fd04c2003-12-19 19:20:25 +00004
5GUIDELINES FOR HACKING ON QUAGGA
6
7[this is a strawman on which consensus has been neither tested nor reached]
8
9[this is a draft in progress]
10
11Generally, GNU coding standards apply. The indentation style is a bit
12different from standard GNU style, and the existing style should be
13maintained and used for new code.
14
15PATCH SUBMISSION
16
17* Send a clean diff against the head of CVS.
18
19* Include ChangeLog and NEWS entries as appropriate before the patch
20 (or in it if you are 100% up to date).
21
22* Inclue only one semantic change or group of changes per patch.p
23
24* Do not make gratuitous changes to whitespace.
25
26* State on which platforms and with what daemons the patch has been
27 tested. Understand that if the set of testing locations is small,
28 and the patch might have unforeseen or hard to fix consequences that
29 there may be a call for testers on quagga-dev, and that the patch
30 may be blocked until test results appear.
31
32 If there are no users for a platform on quagga-dev who are able and
33 willing to verify -current occasionally, that platform may be
34 dropped from the "should be checked" list.
35
36PATCH APPLICATION TO CVS
37
38* Only apply patches that meet the submission guidelines.
39
40* If a patch is large (perhaps more than 100 new/changed lines), tag
41 the repository before and after the change with e.g. before-foo-fix
42 and after-foo-fix.
43
44* If the patch might break something, issue a call for testing on the
45 mailinglist.
46
47* By committing a patch, you are responsible for fixing problems
48 resulting from it (or backing it out).
49
50STABLE PLATFORMS AND DAEMONS
51
52The list of platforms that should be tested follow. This is a list
53derived from what quagga is thought to run on and for which
54maintainers can test or there are people on quagga-dev who are able
55and willing to verify that -current does or does not work correctly.
56
57 BSD (Free, Net or Open, any platform) # without capabilities
58 GNU/Linux (any distribution, i386)
59 [future: some 64-bit machine, e.g. NetBSD/sparc64]
60 [Solaris? (could address 64-bit issue)]
61
62The list of daemons that are thought to be stable and that should be
63tested are:
64
65 zebra
66 bgpd
67 ripd
68 ospfd
69 ripngd
gdt1f431d22003-12-22 15:45:01 +000070
71CHANGELOG
72
73[TBD: when to add to per-dir Changelog, when to add to top-level]
jardin9e867fe2003-12-23 08:56:18 +000074
75IMPORT OR UPDATE VENDOR SPECIFIC ROUTING PROTOCOLS
76
77The source code of Quagga is based on two vendors:
78
79 zebra_org (http://www.zebra.org/)
80 isisd_sf (http://isisd.sf.net/)
81
82In order to import source code, the following procedure should be used:
83
84* Tag the Current Quagga CVS repository:
85
86 cvs tag import_isisd_sf_20031223
87
88* Import the source code into the Quagga's framework. You must not modified
89 this source code. It will be merged later.
90
91 cd dir_isisd
92 export CVSROOT=:pserver:LOGIN@anoncvs.quagga.net:/var/cvsroot
93 cvs import quagga/isisd isisd_sf isisd_sf_20031223
94 ---COMMENTS---
95 Vendor: [isisd_sf] Sampo's ISISd from Sourceforge
96 Tag: [isisd_sf_20031217] Current CVS release
97 ---
98
99* Update your Quagga's directory:
100
101 cd dir_quagga
102 cvs update -dP
103
104 or
105
106 cvs co -d quagga_isisd quagga
107
108* Merge the code, then commit:
109
110 cvs commit
111