devel-ideal-proj.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 09 Oct 2017 10:49:36 +0300
changeset 2188 e95731eef030
parent 1912 8b81a8f0f692
child 2228 837f1337c59b
permissions -rw-r--r--
Fixed: NameError: name 'locale_encoding' is not defined File /bin/rst2html.py, line 17, in <module> from docutils.core import publish_cmdline, default_description File /usr/lib/python2.7/site-packages/docutils/core.py, line 20, in <module> from docutils import frontend, io, utils, readers, writers File /usr/lib/python2.7/site-packages/docutils/frontend.py, line 41, in <module> import docutils.utils File /usr/lib/python2.7/site-packages/docutils/utils/__init__.py, line 20, in <module> import docutils.io File /usr/lib/python2.7/site-packages/docutils/io.py, line 18, in <module> from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput File /usr/lib/python2.7/site-packages/docutils/utils/error_reporting.py, line 60, in <module> codecs.lookup(locale_encoding or '') # None -> '' NameError: name 'locale_encoding' is not defined

.. -*- coding: utf-8; -*-

=====================================
 Ideal software development project.
=====================================
.. contents::
   :local:

About ideal software development model.
=======================================

This file mainly discuss about open source software project.

Open source.
============

Open source software project have freedom on how organise project workflow and
which development toolchains to use.

Close source.
=============

Close source projects have proprietary nature because of:

 * interest to make money (another parties can not easily reproduce project to
   get monopoly on market)
 * low code quality (to stop stain company good name or to stop malicious
   attacks based on code analysis)
 * security consideration (to hide protocols and data format to make harder
   malicious attack)
 * business model (closed data formats allow vendor lock)

Disadvantages of closed source project (in many case):

 * you can not directly contact with developers (only through support)
 * low support quality (supported ugually don't have tech skills)
 * paid support (and you have no enough money)
 * can not access to product bug tracing system (you only can submit bug via
   crash report application or technical support; publishing internal bugs can
   damage product reputation)

Component of software project.
==============================

 * Sources.
 * Documentation.
 * Version control system (VCS).
 * Bug tracking system (BTS).
 * Project news/history/changelog.

Project home page.
==================

Project home page must provide:

 * project name
 * short info about project goal
 * project license
 * current project status
 * links to binary release
 * links to source release, how to get latest source from VCS
 * links to online/printed docs
 * how report bug (BUGS)
 * where send patch
 * contact info

Additionally:

 * help welcome, requirement to join to project
 * mail/news list for users/developers, how to subscribe/unsubscribe, where
   find archive, how search for keyword in archive
 * project history (NEWS, ChangeLog)
 * project policy (HACKING)
 * how build project (README, INSTALL)
 * list of contributor with contact info (MAINTAINERS, AUTHORS)
 * who use project

Docs.
=====

TODO

VCS.
====

TAGS: VCS, version control system, SCM, source code management, DVCS,
      distributed version control system.

 * CVS
 * SVN
 * Mercurial (hg)
 * git
 * bazaar