Open-Source Project Directory Structure

專案資料夾架構

基本檔案

主程式

編譯所需標頭檔、函式庫

Plugins

Build Source 主程式與輔助工具

Build package

Release 版本

Patches

測試

CI 設定檔

使用範例 (library 或 API 使用範例程式)

設定檔範例

文件

部署指令稿

開發時的輔助工具,或是第三方貢獻者使用的輔助工具,但與主程式通常沒有直接關係

貢獻

Makefile 常見選項

all

install

install-html

install-dvi

install-pdf

install-ps

uninstall

install-strip

clean

distclean

mostlyclean

maintainer-clean

TAGS

info

dvi

html

pdf

ps

dist

check

installcheck

installdirs

常見安裝系統路徑

Filesystem Hierarchy Standard (FHS)

/

/usr

/var

語言範例

C / C++

linux-test-project/ltp https://github.com/linux-test-project/ltp 

mongodb/mongo https://github.com/mongodb/mongo

openssl/openssl https://github.com/openssl/openssl 

antirez/redis https://github.com/antirez/redis 

C#

nunit/nunit https://github.com/nunit/nunit 

Go

docker/docker https://github.com/docker/docker 

Python

mattharrison/poachplate https://github.com/mattharrison/poachplate 

版本號

N.N[.N]+[{a|b|c|rc}N[.N]+][.postN][.devN]

PEP 386 - Changing the version comparison module in Distutils | Python.org 

twisted/twisted https://github.com/twisted/twisted 

django/django https://github.com/django/django/tree/master/django 

qtile/qtile https://github.com/qtile/qtile 

Open Sourcing a Python Project the Right Way 

Interesting Things, Largely Python and Twisted Related: Filesystem structure of a Python project 

6. Modules — Python 2.7.9 documentation 

Packaging Your Code — The Hitchhiker’s Guide to Python  

PyPI

Python project layout

PyCon 2013 : Scripting to PyPi to GitHub and More   (p28)

JAVA

jenkinsci/jenkins https://github.com/jenkinsci/jenkins

JAVA - Maven

Maven – Introduction to the Standard Directory Layout 

Ruby

rails/rails https://github.com/rails/rails 

opscode/chef https://github.com/opscode/chef

puppetlabs/puppet https://github.com/puppetlabs/puppet 

Directory layout for pure Ruby project - Stack Overflow 

Ruby on Rails

sass/sass https://github.com/sass/sass 

JavaScript / 

jquery/jquery https://github.com/jquery/jquery 

What is the best directory structure for organizing an Open Source JavaScript project? - Quora 

NodeJS

less/less.js https://github.com/less/less.js 

strongloop/express https://github.com/strongloop/express 

跨平臺程式

ruby/ruby 

go

參考網站

Chapter 2: Project management and the GNU coding standards

Starting An Open-Source Project - Smashing Magazine

PyCon 2013 : Scripting to PyPi to GitHub and More