devel-ideal-proj.rst
changeset 736 9b962c4c86e3
parent 670 ee6f31557087
child 737 e0b618d34942
equal deleted inserted replaced
735:5c437e2d5fe1 736:9b962c4c86e3
     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