Fixed 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.
====
Acronyms:
* VCS - version control system.
* SCM - source code management,
* DVCS - distributed version control system.
Popular VCS:
* Git
* CVS
* SVN
* Mercurial (hg)
* bazaar