1 -*- mode: outline; coding: utf-8 -*- |
1 -*- mode: outline; coding: utf-8; fill-column: 80 -*- |
2 |
2 |
3 Ideal software development model. |
3 * Ideal software development model. |
4 |
4 |
|
5 This file mainly discuss about open source software project. |
5 |
6 |
6 * Open source. |
7 * Open source. |
7 |
8 |
8 Open source development have much freedom select any development model. |
9 Open source software project have freedom how develop project and which |
9 |
10 development toolchains use. |
10 |
11 |
11 * Close source. |
12 * Close source. |
12 |
13 |
13 Close source sortware development restrict in using models, technic or |
14 Close source projects have proprietary nature because of: |
14 software resources; restrict their public appear because of its proprietary |
|
15 nature. |
|
16 |
15 |
17 In many case you can not directly contact with developers (only through |
16 * interest to make money (another parties can not easily reproduce project or |
18 support). You can not access to product bug tracing system (you only can |
17 steal realisation ideas/code, allowing another party get same product and get |
19 submit bug via crash report application or technical support); publicly appear |
18 company money) |
20 internal bug tracing can damage product reputation. Internal |
19 * low code quality (to stop stain company good name or to stop malicious |
21 architecture/protocol description can drop leading product position (allowing |
20 attacks based on code analysis) |
22 another party get same product and get company money). |
21 * security consideration (to hide protocols and data format to make harder |
|
22 malicious attack) |
|
23 * business model (closed data formats allow vendor lock) |
23 |
24 |
24 * Component. |
25 Disadvantage of closed source project (in many case): |
25 |
26 |
26 * Docs. |
27 * you can not directly contact with developers (only through support) |
27 * VCS. |
28 * low support quality |
28 * Bug track. |
29 * paid support (and you have no enough money) |
29 * News. |
30 * can not access to product bug tracing system (you only can submit bug via |
|
31 crash report application or technical support, publicly appear internal bug |
|
32 tracing can damage product reputation |
30 |
33 |
31 ** Docs. |
34 * Component of software project. |
32 |
35 |
33 Documentation must provide: |
36 * Src (sources). |
|
37 * Doc (documentation). |
|
38 * VCS (version control system). |
|
39 * BTS (bug tracking). |
|
40 * News (project news/history/changelog). |
34 |
41 |
35 ** Home page. |
42 * Project sources. |
36 |
43 |
37 Home page must provide: |
44 ** README file. |
|
45 |
|
46 Assumed that users first read this file before start using project. |
|
47 |
|
48 * Project name. |
|
49 * Project goal. |
|
50 * Point to license statements. |
|
51 * Point to build instructions. |
|
52 * Point to documentations. |
|
53 |
|
54 ** INSTALL file. |
|
55 |
|
56 * List of supported platform. |
|
57 * Build dependencies/prerequisites. |
|
58 * Build instructions. |
|
59 |
|
60 ** COPYING/LICENSE file. |
|
61 |
|
62 COPYING usually used for GNU GPL like license. Another license put in LICENSE |
|
63 file. |
|
64 |
|
65 If some component comes with different license put it into file with name like: |
|
66 |
|
67 LICENSE.libmy LICENSE.regex LICENSE.doc |
|
68 |
|
69 ** AUTHORS file. |
|
70 |
|
71 Usually regular contributors. |
|
72 |
|
73 * List of project members. |
|
74 |
|
75 ** THANKS/CREDITS file. |
|
76 |
|
77 Usually casual/non-regular contributors. |
|
78 |
|
79 * List of contributors. |
|
80 |
|
81 ** NEWS/CHANGES file. |
|
82 |
|
83 Here goes news and descriptions of user visible changes: |
|
84 |
|
85 * Important project news. |
|
86 * New features. |
|
87 * Obsolescense/deprecation of UIs/APIs/protocols/formats. |
|
88 * Incompatibilities with previous version. |
|
89 |
|
90 ** HISORY file. |
|
91 |
|
92 * Project history in long perspective. |
|
93 |
|
94 ** FAQ file. |
|
95 |
|
96 * List of frequency asked questions with answers. |
|
97 |
|
98 * Docs. |
|
99 |
|
100 * Project home page. |
|
101 |
|
102 Project home page must provide: |
38 |
103 |
39 * project name |
104 * project name |
40 * short info about project goal |
105 * short info about project goal |
41 * project licence (COPYING) |
106 * project license |
42 * currect project status |
107 * current project status |
43 * links to binary release |
108 * links to binary release |
44 * links to source release, how to get latest source from VCS |
109 * links to source release, how to get latest source from VCS |
45 * links to online/printed docs |
110 * links to online/printed docs |
46 * how report bug (BUGS) |
111 * how report bug (BUGS) |
47 * where send patch |
112 * where send patch |
56 * project policy (HACKING) |
121 * project policy (HACKING) |
57 * how build project (README, INSTALL) |
122 * how build project (README, INSTALL) |
58 * list of contributor with contact info (MAINTAINERS, AUTHORS) |
123 * list of contributor with contact info (MAINTAINERS, AUTHORS) |
59 * who use project |
124 * who use project |
60 |
125 |
61 ** VCS. |
126 * VCS. |
62 |
127 |
63 TAGS: VCS, version control system, SCM, source code management, DVCS, |
128 TAGS: VCS, version control system, SCM, source code management, DVCS, |
64 distributed version control system. |
129 distributed version control system. |
65 |
130 |
66 * CVS |
131 * CVS |
67 * SVN |
132 * SVN |
68 * Mercurial (hg) |
133 * Mercurial (hg) |
69 * git |
134 * git |
70 * bazaar |
135 * bazaar |
71 |
136 |
72 *** CVS |
|
73 |
|
74 *** SVN |
|
75 |
|
76 *** Mercurial (hg) |
|
77 |
|
78 *** git |
|
79 |
|
80 *** bazaar |
|
81 |
|