Project

General

Profile

Source tree restructuring » History » Version 3

Jos Collin, 04/21/2017 06:46 AM

1 1 Jessica Mack
h1. Source tree restructuring
2
3
h3. Summary
4
5
During the makefile cleanup, there was some mention on the mailing list about a possible 'phase 2' - the cleanup of the source tree.
6
I've got a scratchbook file with an idea of how the source tree could look like. I thought it might be good to share that and use it as a basis for discussion.
7
I invite people to add comments to the 'detailed description' below.
8
9
h3. Owners
10
11
* Roald van Loon (roaldvanloon@gmail.com)
12
* Name (Affiliation)
13
* Name
14
15
h3. Interested Parties
16
17 3 Jos Collin
* Jos Collin
18 1 Jessica Mack
* Name (Affiliation)
19
* Name
20
21
h3. Current Status
22
 
23
h3. Detailed Description
24
25
<pre>
26
/Makefile.am
27
/configure.ac
28
/autogen.sh
29
/AUTHORS, /COPYING, /README, etc
30
/SubmittingPatches
31
/Doxyfile
32
/ChangeLog
33
/CodingStyle
34
/PendingReleaseNotes
35
36
/contrib -- scripts and extras (/admin, /keys, /share, /src/script, /src/bash_completion)
37
/contrib/dist -- distro stuff for rpm/debian/etc (including /udev, /src/upstart)
38
/contrib/m4 -- autotools scripts
39
/contrib/qa
40
/contrib/wireshark
41
/contrib/gtest
42
/contrib/libs3
43
/contrib/pybind
44
45
/examples
46
47
/doc
48
49
/rados -- librados (installed as librados.so)
50
/rados/include -- exports will become "#include <ceph/rados/XYZ>"
51
/rados/src
52
/rados/test
53
54
/rbd -- librbd (installed as librbd.so)
55
/rbd/include -- exports will become "#include <ceph/rbd/XYZ>"
56
/rbd/src
57
/rbd/fuse
58
/rbd/test
59
60
# Uses msgr, messages, osdc, and osdmap/mdsmap/monmap
61
# Maybe better to also put MonClient in here?
62
/client -- libclient (install as libcephclient.so, or only use as convenience lib?)
63
/client/include -- exports will become "#include <ceph/client/XYZ>"
64
/client/src
65
/client/test
66
67
# Or is this nicer in /client/cephfs, /client/hadoop, /client/cephfs_jni or something?
68
/cephfs -- libcephfs (installed as libcephfs.so)
69
/cephfs/include -- exports will become "#include <ceph/cephfs/XYZ>"
70
/cephfs/src
71
/cephfs/jni
72
/cephfs/hadoop
73
/cephfs/test
74
75
/rgw -- librgw (future, install as librgw.so)
76
/rgw/include -- exports will become "#include <ceph/rgw/XYZ>"
77
/rgw/src
78
/rgw/test
79
80
# Do we want this standalone? It's also used by cephfs, rgw, 
81
/auth -- libauth (install as libcephauth.so, or only use as convenience lib?)
82
/auth/src
83
/auth/test
84
85
# Do we want os + backends standalone, or shall we put it in /ceph/os ?
86
/os -- libos (install as libcephos.so, or only use as convenience lib?)
87
/os/include -- exports will become "#include <ceph/os/XYZ>"
88
/os/test
89
90
# This can be completely standalone
91
/crush -- libcrush (installed as libcrush.so)
92
/crush/include -- exports will become "#include <ceph/crush/XYZ>"
93
/crush/src
94
/crush/tools -- like crushtool
95
/crush/test
96
97
/ceph
98
/ceph/include -- exports will become "#include <ceph/XYZ>"
99
/ceph/common
100
/ceph/src -- main daemons like ceph_mon.cc etc
101
/ceph/mon -- current /src/mon/*
102
/ceph/mds
103
/ceph/osd
104
/ceph/osdc
105
/ceph/msg -- should this be here?
106
/ceph/test
107
/ceph/tools
108
109
# What about msg/messages? And events?
110
</pre>
111
 
112
h3. Work items
113
114
h3. Coding tasks
115
116
# Task 1
117
# Task 2
118
# Task 3
119
120
h3. Build / release tasks
121
122
# Task 1
123
# Task 2
124
# Task 3
125
126
h3. Documentation tasks
127
128
# Task 1
129
# Task 2
130
# Task 3
131
132
h3. Deprecation tasks
133
134
# Task 1
135
# Task 2
136
# Task 3