devel-ideal-proj.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 30 Jan 2017 00:44:30 +0200
changeset 2075 ccaa2f364422
parent 1912 8b81a8f0f692
child 2228 837f1337c59b
permissions -rw-r--r--
Improve page formatting.

.. -*- 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