devel-ideal-proj.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Thu, 25 Apr 2024 22:33:14 +0300
changeset 2593 f0ab046a080f
parent 2228 837f1337c59b
permissions -rw-r--r--
Installing Android SDK from command line tools.

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