summaryrefslogtreecommitdiffstats
path: root/README.devel
blob: d55e47edcb303ce4e707bbab2e431124bbd0c554 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

 Notes for util-linux-ng developers
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

AUTOTOOLS:

     * "./autogen.sh" generates all necessary files (run it after checkout from
       git)

     * "make distclean" removes all unnecessary files, but code is still possible 
       recompile by "./configure; make"

     * "make dist-gzip" (or -bzip2) creates tarball which is possible use without
      autogen.sh


PATCHES:

     * send your patches to the mailing list or to upstream maintainer
       (see the AUTHORS file)

     * diff -u

     * don't include generated (autotools) stuff to your patches (use git-clean [-X])

     * patches are delivered via email only.  Downloading them from internet
       servers is a pain.

     * one patch per email, with the changelog in the body of the email.

     * Subject: [PATCH] subsystem: description

     * if someone else wrote the patch, they should be credited (and blamed) for it.
       To communicate this, add a line:

          From: John Doe <jdoe@wherever.com>

     * add a Signed-off-by line:

          Signed-off-by: Foo Bar <fb@wherever.com>

     * there is a lot of really useful rules. Please, read:

       The perfect patch
                http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt



SCM (source code management):

     git clone git://git.kernel.org/pub/scm/utils/util-linux-ng/util-linux-ng.git util-linux-ng


    * maintenance (stable) branch(es)
        - created for every <major>.<minor> release, branch name: v<major>.<minor>-stable

    * master branch
        - the status of this branch is: "it works for me". It means useful
          but not well tested patches.
        - it's source for occasional snapshots
        - for long-term development or invasive changes should be an active
          development forked into a separate branch (topic branches) from the
          tip of "master".

    * A new tag object is created for:
        - every release, tag name: v<version>
        - every public snapshot, tag name: s<version>-YYYYMMDD