Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Additional documentation, especially notes on how to contribute code or documentation to Fossil. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
98f1131c0d8059d0818ca97258fe94cc |
| User & Date: | drh 2011-02-18 00:52:55.579 |
References
|
2011-09-08
| ||
| 22:30 | • Fixed ticket [15dfbde729]: Question for FAQ: how to contribute to Fossil? plus 2 other changes ... (artifact: 0252c6186f user: dmitry) | |
Context
|
2011-02-18
| ||
| 01:03 | Fix typo and make enhancements to the build-process document. Add file omitted from the previous commit. (I should follow my own checklist more closely!) ... (check-in: 2a02aa49e1 user: drh tags: trunk) | |
| 00:52 | Additional documentation, especially notes on how to contribute code or documentation to Fossil. ... (check-in: 98f1131c0d user: drh tags: trunk) | |
|
2011-02-17
| ||
| 22:43 | Add a new contributor agreement that is based loosely on the Oracle CLA. ... (check-in: 252e83d952 user: drh tags: trunk) | |
Changes
Changes to www/build.wiki.
| ︙ | ︙ | |||
68 69 70 71 72 73 74 | run "<b>make -f win/Makefile.mingw</b>" instead of just "<b>make</b>" in step 8 above.</p> <h2>3.0 Installing</h2> <ol> <li value="9"> | | > | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | run "<b>make -f win/Makefile.mingw</b>" instead of just "<b>make</b>" in step 8 above.</p> <h2>3.0 Installing</h2> <ol> <li value="9"> <p>The finished binary is named "fossil" (or "fossil.exe" on windows). Put this binary in a directory that is somewhere on your PATH environment variable. It does not matter where.</p> <li> <p><b>(Optional:)</b> To uninstall, just delete the binary.</p> </ol> |
| ︙ | ︙ |
Added www/checkin.wiki.
> > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<title>Checkin Checklist</title>
Before every checkins:
1. <b>fossil diff</b> → no stray changes
2. <b>fossil extra</b> → no unmanaged files need to be added.
3. The checkin will go onto the desired branch.
4. "Autosync" is enabled →
<ol>
<li> The checkin will not cause a unintentional fork.
<li> The local system clock is set correctly.
</ol>
Before every checkin to <b>trunk</b>:
5. No compiler warnings on the development machine.
6. Changes will not cause problems on a future <b>bisect</b>.
|
Added www/contribute.wiki.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | <title>Contributing To Fossil</title> Users are encouraged to contributed enhancements back to the Fossil project. This note outlines some of the procedures for making useful contributions. <h2>1.0 Contributor Agreement</h2> In order your contributions, we <u>must</u> have a [./copyright-release.pdf | Contributor Agreement (PDF)] (or [./copyright-release.html | as HTML]) on file for you. We require this in order to maintain clear title to the Fossil code and prevent the introduction of code with incompatible licenses or other entanglements that might cause legal problems for Fossil users. Many larger companies and other lawyer-rich organizations require this as a precondition to using Fossil. If you do not wish to submit a Contributor Agreement, we would still welcome your suggestions and example code, but we will not use your code directly - we will be forced to reimplement your changes from scratch which might take longer. <h2>2.0 Submitting Patches</h2> Suggested changes or bug fixes can be submitted by creating a patch against the current source tree. Email patches to <a href="mailto:drh@sqlite.org">drh@sqlite.org</a>. Be sure to describe in detail what the patch does and which version of Fossil it is written against. A contributor agreement is not strictly necessary to submit a patch. However, without a contributor agreement on file, your patch will be used for reference only - it will not be applied to the code. This may delay acceptance of your patch. Your patches or changes might not be accepted even if you do have a contributor agreement on file. Please do not take this personally or as an affront to your coding ability. Sometimes patches are rejected because they seem to be taking the project in a direction that the architect does not want to go. Or, there might be an alternative implementation of the same feature being prepared separately. <h2>3.0 Check-in Privileges</h2> Check-in privileges are granted on a case-by-case basis. Your chances of getting check-in privileges are much improved if you have a history of submitting quality patches and/or making thoughtful posts on the [http://www.mail-archive.com/fossil-users@lists.fossil-scm.org/ | mailing list]. A contributor agreement is, of course, a prerequisite for check-in privileges.</p> Contributors are asked to make all non-trivial changes on a branch. The Fossil Architect (Richard Hipp) will merge changes onto the trunk.</p> Contributors are required to following the [./checkin.wiki | pre-checkin checklist] prior to every checkin to the Fossil self-hosting repository. This checklist is short and succinct and should only require a few seconds to follow. Contributors should print out a copy of the pre-checkin checklist and keep it on a notecard beside their workstations, for quick reference. Contributors should review the [./style.wiki | Coding Style Guidelines] and mimic the coding style used through the rest of the Fossil source code. Your code should blend in. A third-party reader should be unable to distinguish your code from any other code in the source corpus. <h2>4.0 Testing</h2> Fossil has the beginnings of a [../test/release-checklist.wiki | release checklist] but this is an area that needs further work. (Your contributions here are welcomed!) Contributors with check-in privileges are expected to run the release checklist on any major changes they contribute, and if appropriate expand the checklist and/or the automated test scripts to cover their additions. <h2>5.0 See Also</h2> * [./build.wiki | How To Build And Install Fossil] * [./makefile.wiki | The Fossil Build Process] * [./tech_overview.wiki | A Technical Overview of Fossil] |
Changes to www/index.wiki.
| ︙ | ︙ | |||
138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
* Customizing the [./custom_ticket.wiki | ticket system].
* Methods to [./checkin_names.wiki | identify a specific check-in].
* [./inout.wiki | Import and export] from and to Git.
* [./fossil-v-git.wiki | Fossil versus Git].
<h3>Links For Fossil Developer:</h3>
* [./theory1.wiki | Thoughts On The Design Of Fossil].
* [./pop.wiki | Principles Of Operation]
* [./tech_overview.wiki | A Technical Overview Of Fossil].
* The [./fileformat.wiki | file format] used by every content
file stored in the repository.
* The [./delta_format.wiki | format of deltas] used to
efficiently store changes between file revisions.
| > > | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
* Customizing the [./custom_ticket.wiki | ticket system].
* Methods to [./checkin_names.wiki | identify a specific check-in].
* [./inout.wiki | Import and export] from and to Git.
* [./fossil-v-git.wiki | Fossil versus Git].
<h3>Links For Fossil Developer:</h3>
* [./contribute.wiki | Contributing] code or documentation to the
Fossil project.
* [./theory1.wiki | Thoughts On The Design Of Fossil].
* [./pop.wiki | Principles Of Operation]
* [./tech_overview.wiki | A Technical Overview Of Fossil].
* The [./fileformat.wiki | file format] used by every content
file stored in the repository.
* The [./delta_format.wiki | format of deltas] used to
efficiently store changes between file revisions.
|
| ︙ | ︙ |
Changes to www/mkindex.tcl.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#!/bin/sh
#
# Run this TCL script to generate a WIKI page that contains a
# permuted index of the various documentation files.
#
# tclsh mkindex.tcl >permutedindex.wiki
#
set doclist {
bugtheory.wiki {Bug Tracking In Fossil}
branching.wiki {Branching, Forking, Merging, and Tagging}
build.wiki {Building and Installing Fossil}
checkin_names.wiki {Checkin And Version Names}
concepts.wiki {Fossil Core Concepts}
custom_ticket.wiki {Customizing The Ticket System}
delta_encoder_algorithm.wiki {Fossil Delta Encoding Algorithm}
delta_format.wiki {Fossil Delta Format}
embeddeddoc.wiki {Embedded Project Documentation}
event.wiki {Events}
faq.wiki {Frequently Asked Questions}
fileformat.wiki {Fossil File Format}
fossil-v-git.wiki {Fossil Versus Git}
index.wiki {Home Page}
inout.wiki {Import And Export To And From Git}
makefile.wiki {The Fossil Build Process}
password.wiki {Password Management And Authentication}
pop.wiki {Principles Of Operations}
qandc.wiki {Questions And Criticisms}
quickstart.wiki {Fossil Quick Start Guide}
quotes.wiki
{Quotes: What People Are Saying About Fossil, Git, and DVCSes in General}
selfcheck.wiki {Fossil Repository Integrity Self Checks}
selfhost.wiki {Fossil Self Hosting Repositories}
server.wiki {How To Configure A Fossil Server}
shunning.wiki {Shunning: Deleting Content From Fossil}
stats.wiki {Performance Statistics}
sync.wiki {The Fossil Sync Protocol}
tech_overview.wiki {A Technical Overview Of The Design And Implementation
Of Fossil}
tech_overview.wiki {SQLite Databases Used By Fossil}
theory1.wiki {Thoughts On The Design Of The Fossil DVCS}
webui.wiki {The Fossil Web Interface}
wikitheory.wiki {Wiki In Fossil}
| > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#!/bin/sh
#
# Run this TCL script to generate a WIKI page that contains a
# permuted index of the various documentation files.
#
# tclsh mkindex.tcl >permutedindex.wiki
#
set doclist {
bugtheory.wiki {Bug Tracking In Fossil}
branching.wiki {Branching, Forking, Merging, and Tagging}
build.wiki {Building and Installing Fossil}
checkin_names.wiki {Checkin And Version Names}
copyright-release.html {Contributor License Agreement}
concepts.wiki {Fossil Core Concepts}
contribute.wiki {Contributing Code or Documentation To The Fossil Project}
custom_ticket.wiki {Customizing The Ticket System}
delta_encoder_algorithm.wiki {Fossil Delta Encoding Algorithm}
delta_format.wiki {Fossil Delta Format}
embeddeddoc.wiki {Embedded Project Documentation}
event.wiki {Events}
faq.wiki {Frequently Asked Questions}
fileformat.wiki {Fossil File Format}
fossil-v-git.wiki {Fossil Versus Git}
index.wiki {Home Page}
inout.wiki {Import And Export To And From Git}
makefile.wiki {The Fossil Build Process}
password.wiki {Password Management And Authentication}
pop.wiki {Principles Of Operations}
qandc.wiki {Questions And Criticisms}
quickstart.wiki {Fossil Quick Start Guide}
quotes.wiki
{Quotes: What People Are Saying About Fossil, Git, and DVCSes in General}
../test/release-checklist.wiki {Pre-Release Testing Checklist}
selfcheck.wiki {Fossil Repository Integrity Self Checks}
selfhost.wiki {Fossil Self Hosting Repositories}
server.wiki {How To Configure A Fossil Server}
shunning.wiki {Shunning: Deleting Content From Fossil}
stats.wiki {Performance Statistics}
style.wiki {Source Code Style Guidelines}
sync.wiki {The Fossil Sync Protocol}
tech_overview.wiki {A Technical Overview Of The Design And Implementation
Of Fossil}
tech_overview.wiki {SQLite Databases Used By Fossil}
theory1.wiki {Thoughts On The Design Of The Fossil DVCS}
webui.wiki {The Fossil Web Interface}
wikitheory.wiki {Wiki In Fossil}
|
| ︙ | ︙ |
Changes to www/permutedindex.wiki.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<title>Permuted Index Of Fossil Documentation</title>
<nowiki>
<ul>
<li><a href="event.wiki">Events</a></li>
<li><a href="tech_overview.wiki">A Technical Overview Of The Design And Implementation
Of Fossil</a></li>
<li><a href="delta_encoder_algorithm.wiki">Algorithm — Fossil Delta Encoding</a></li>
<li><a href="faq.wiki">Asked Questions — Frequently</a></li>
<li><a href="password.wiki">Authentication — Password Management And</a></li>
<li><a href="branching.wiki">Branching, Forking, Merging, and Tagging</a></li>
<li><a href="bugtheory.wiki">Bug Tracking In Fossil</a></li>
<li><a href="makefile.wiki">Build Process — The Fossil</a></li>
<li><a href="build.wiki">Building and Installing Fossil</a></li>
<li><a href="checkin_names.wiki">Checkin And Version Names</a></li>
<li><a href="selfcheck.wiki">Checks — Fossil Repository Integrity Self</a></li>
<li><a href="concepts.wiki">Concepts — Fossil Core</a></li>
<li><a href="server.wiki">Configure A Fossil Server — How To</a></li>
<li><a href="shunning.wiki">Content From Fossil — Shunning: Deleting</a></li>
<li><a href="concepts.wiki">Core Concepts — Fossil</a></li>
<li><a href="qandc.wiki">Criticisms — Questions And</a></li>
<li><a href="custom_ticket.wiki">Customizing The Ticket System</a></li>
<li><a href="tech_overview.wiki">Databases Used By Fossil — SQLite</a></li>
<li><a href="shunning.wiki">Deleting Content From Fossil — Shunning:</a></li>
<li><a href="delta_encoder_algorithm.wiki">Delta Encoding Algorithm — Fossil</a></li>
<li><a href="delta_format.wiki">Delta Format — Fossil</a></li>
<li><a href="tech_overview.wiki">Design And Implementation Of Fossil — A Technical Overview Of The</a></li>
<li><a href="theory1.wiki">Design Of The Fossil DVCS — Thoughts On The</a></li>
<li><a href="embeddeddoc.wiki">Documentation — Embedded Project</a></li>
<li><a href="theory1.wiki">DVCS — Thoughts On The Design Of The Fossil</a></li>
<li><a href="quotes.wiki">DVCSes in General — Quotes: What People Are Saying About Fossil, Git, and</a></li>
<li><a href="embeddeddoc.wiki">Embedded Project Documentation</a></li>
<li><a href="delta_encoder_algorithm.wiki">Encoding Algorithm — Fossil Delta</a></li>
<li><a href="inout.wiki">Export To And From Git — Import And</a></li>
<li><a href="fileformat.wiki">File Format — Fossil</a></li>
<li><a href="branching.wiki">Forking, Merging, and Tagging — Branching,</a></li>
| > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<title>Permuted Index Of Fossil Documentation</title>
<nowiki>
<ul>
<li><a href="event.wiki">Events</a></li>
<li><a href="tech_overview.wiki">A Technical Overview Of The Design And Implementation
Of Fossil</a></li>
<li><a href="copyright-release.html">Agreement — Contributor License</a></li>
<li><a href="delta_encoder_algorithm.wiki">Algorithm — Fossil Delta Encoding</a></li>
<li><a href="faq.wiki">Asked Questions — Frequently</a></li>
<li><a href="password.wiki">Authentication — Password Management And</a></li>
<li><a href="branching.wiki">Branching, Forking, Merging, and Tagging</a></li>
<li><a href="bugtheory.wiki">Bug Tracking In Fossil</a></li>
<li><a href="makefile.wiki">Build Process — The Fossil</a></li>
<li><a href="build.wiki">Building and Installing Fossil</a></li>
<li><a href="checkin_names.wiki">Checkin And Version Names</a></li>
<li><a href="../test/release-checklist.wiki">Checklist — Pre-Release Testing</a></li>
<li><a href="selfcheck.wiki">Checks — Fossil Repository Integrity Self</a></li>
<li><a href="contribute.wiki">Code or Documentation To The Fossil Project — Contributing</a></li>
<li><a href="style.wiki">Code Style Guidelines — Source</a></li>
<li><a href="concepts.wiki">Concepts — Fossil Core</a></li>
<li><a href="server.wiki">Configure A Fossil Server — How To</a></li>
<li><a href="shunning.wiki">Content From Fossil — Shunning: Deleting</a></li>
<li><a href="contribute.wiki">Contributing Code or Documentation To The Fossil Project</a></li>
<li><a href="copyright-release.html">Contributor License Agreement</a></li>
<li><a href="concepts.wiki">Core Concepts — Fossil</a></li>
<li><a href="qandc.wiki">Criticisms — Questions And</a></li>
<li><a href="custom_ticket.wiki">Customizing The Ticket System</a></li>
<li><a href="tech_overview.wiki">Databases Used By Fossil — SQLite</a></li>
<li><a href="shunning.wiki">Deleting Content From Fossil — Shunning:</a></li>
<li><a href="delta_encoder_algorithm.wiki">Delta Encoding Algorithm — Fossil</a></li>
<li><a href="delta_format.wiki">Delta Format — Fossil</a></li>
<li><a href="tech_overview.wiki">Design And Implementation Of Fossil — A Technical Overview Of The</a></li>
<li><a href="theory1.wiki">Design Of The Fossil DVCS — Thoughts On The</a></li>
<li><a href="embeddeddoc.wiki">Documentation — Embedded Project</a></li>
<li><a href="contribute.wiki">Documentation To The Fossil Project — Contributing Code or</a></li>
<li><a href="theory1.wiki">DVCS — Thoughts On The Design Of The Fossil</a></li>
<li><a href="quotes.wiki">DVCSes in General — Quotes: What People Are Saying About Fossil, Git, and</a></li>
<li><a href="embeddeddoc.wiki">Embedded Project Documentation</a></li>
<li><a href="delta_encoder_algorithm.wiki">Encoding Algorithm — Fossil Delta</a></li>
<li><a href="inout.wiki">Export To And From Git — Import And</a></li>
<li><a href="fileformat.wiki">File Format — Fossil</a></li>
<li><a href="branching.wiki">Forking, Merging, and Tagging — Branching,</a></li>
|
| ︙ | ︙ | |||
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | <li><a href="shunning.wiki">From Fossil — Shunning: Deleting Content</a></li> <li><a href="inout.wiki">From Git — Import And Export To And</a></li> <li><a href="quotes.wiki">General — Quotes: What People Are Saying About Fossil, Git, and DVCSes in</a></li> <li><a href="fossil-v-git.wiki">Git — Fossil Versus</a></li> <li><a href="inout.wiki">Git — Import And Export To And From</a></li> <li><a href="quotes.wiki">Git, and DVCSes in General — Quotes: What People Are Saying About Fossil,</a></li> <li><a href="quickstart.wiki">Guide — Fossil Quick Start</a></li> <li><a href="index.wiki">Home Page</a></li> <li><a href="selfhost.wiki">Hosting Repositories — Fossil Self</a></li> <li><a href="server.wiki">How To Configure A Fossil Server</a></li> <li><a href="tech_overview.wiki">Implementation Of Fossil — A Technical Overview Of The Design And</a></li> <li><a href="inout.wiki">Import And Export To And From Git</a></li> <li><a href="build.wiki">Installing Fossil — Building and</a></li> <li><a href="selfcheck.wiki">Integrity Self Checks — Fossil Repository</a></li> <li><a href="webui.wiki">Interface — The Fossil Web</a></li> <li><a href="password.wiki">Management And Authentication — Password</a></li> <li><a href="branching.wiki">Merging, and Tagging — Branching, Forking,</a></li> <li><a href="checkin_names.wiki">Names — Checkin And Version</a></li> <li><a href="pop.wiki">Operations — Principles Of</a></li> <li><a href="tech_overview.wiki">Overview Of The Design And Implementation Of Fossil — A Technical</a></li> <li><a href="index.wiki">Page — Home</a></li> <li><a href="password.wiki">Password Management And Authentication</a></li> <li><a href="quotes.wiki">People Are Saying About Fossil, Git, and DVCSes in General — Quotes: What</a></li> <li><a href="stats.wiki">Performance Statistics</a></li> <li><a href="pop.wiki">Principles Of Operations</a></li> <li><a href="makefile.wiki">Process — The Fossil Build</a></li> <li><a href="embeddeddoc.wiki">Project Documentation — Embedded</a></li> <li><a href="sync.wiki">Protocol — The Fossil Sync</a></li> <li><a href="faq.wiki">Questions — Frequently Asked</a></li> <li><a href="qandc.wiki">Questions And Criticisms</a></li> <li><a href="quickstart.wiki">Quick Start Guide — Fossil</a></li> <li><a href="quotes.wiki">Quotes: What People Are Saying About Fossil, Git, and DVCSes in General</a></li> <li><a href="selfhost.wiki">Repositories — Fossil Self Hosting</a></li> <li><a href="selfcheck.wiki">Repository Integrity Self Checks — Fossil</a></li> <li><a href="quotes.wiki">Saying About Fossil, Git, and DVCSes in General — Quotes: What People Are</a></li> <li><a href="selfcheck.wiki">Self Checks — Fossil Repository Integrity</a></li> <li><a href="selfhost.wiki">Self Hosting Repositories — Fossil</a></li> <li><a href="server.wiki">Server — How To Configure A Fossil</a></li> <li><a href="shunning.wiki">Shunning: Deleting Content From Fossil</a></li> <li><a href="tech_overview.wiki">SQLite Databases Used By Fossil</a></li> <li><a href="quickstart.wiki">Start Guide — Fossil Quick</a></li> <li><a href="stats.wiki">Statistics — Performance</a></li> <li><a href="sync.wiki">Sync Protocol — The Fossil</a></li> <li><a href="custom_ticket.wiki">System — Customizing The Ticket</a></li> <li><a href="branching.wiki">Tagging — Branching, Forking, Merging, and</a></li> <li><a href="tech_overview.wiki">Technical Overview Of The Design And Implementation Of Fossil — A</a></li> <li><a href="makefile.wiki">The Fossil Build Process</a></li> <li><a href="sync.wiki">The Fossil Sync Protocol</a></li> <li><a href="webui.wiki">The Fossil Web Interface</a></li> <li><a href="theory1.wiki">Thoughts On The Design Of The Fossil DVCS</a></li> <li><a href="custom_ticket.wiki">Ticket System — Customizing The</a></li> <li><a href="bugtheory.wiki">Tracking In Fossil — Bug</a></li> <li><a href="checkin_names.wiki">Version Names — Checkin And</a></li> <li><a href="fossil-v-git.wiki">Versus Git — Fossil</a></li> <li><a href="webui.wiki">Web Interface — The Fossil</a></li> <li><a href="quotes.wiki">What People Are Saying About Fossil, Git, and DVCSes in General — Quotes:</a></li> <li><a href="wikitheory.wiki">Wiki In Fossil</a></li> </ul> | > > > > > > > > | 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | <li><a href="shunning.wiki">From Fossil — Shunning: Deleting Content</a></li> <li><a href="inout.wiki">From Git — Import And Export To And</a></li> <li><a href="quotes.wiki">General — Quotes: What People Are Saying About Fossil, Git, and DVCSes in</a></li> <li><a href="fossil-v-git.wiki">Git — Fossil Versus</a></li> <li><a href="inout.wiki">Git — Import And Export To And From</a></li> <li><a href="quotes.wiki">Git, and DVCSes in General — Quotes: What People Are Saying About Fossil,</a></li> <li><a href="quickstart.wiki">Guide — Fossil Quick Start</a></li> <li><a href="style.wiki">Guidelines — Source Code Style</a></li> <li><a href="index.wiki">Home Page</a></li> <li><a href="selfhost.wiki">Hosting Repositories — Fossil Self</a></li> <li><a href="server.wiki">How To Configure A Fossil Server</a></li> <li><a href="tech_overview.wiki">Implementation Of Fossil — A Technical Overview Of The Design And</a></li> <li><a href="inout.wiki">Import And Export To And From Git</a></li> <li><a href="build.wiki">Installing Fossil — Building and</a></li> <li><a href="selfcheck.wiki">Integrity Self Checks — Fossil Repository</a></li> <li><a href="webui.wiki">Interface — The Fossil Web</a></li> <li><a href="copyright-release.html">License Agreement — Contributor</a></li> <li><a href="password.wiki">Management And Authentication — Password</a></li> <li><a href="branching.wiki">Merging, and Tagging — Branching, Forking,</a></li> <li><a href="checkin_names.wiki">Names — Checkin And Version</a></li> <li><a href="pop.wiki">Operations — Principles Of</a></li> <li><a href="contribute.wiki">or Documentation To The Fossil Project — Contributing Code</a></li> <li><a href="tech_overview.wiki">Overview Of The Design And Implementation Of Fossil — A Technical</a></li> <li><a href="index.wiki">Page — Home</a></li> <li><a href="password.wiki">Password Management And Authentication</a></li> <li><a href="quotes.wiki">People Are Saying About Fossil, Git, and DVCSes in General — Quotes: What</a></li> <li><a href="stats.wiki">Performance Statistics</a></li> <li><a href="../test/release-checklist.wiki">Pre-Release Testing Checklist</a></li> <li><a href="pop.wiki">Principles Of Operations</a></li> <li><a href="makefile.wiki">Process — The Fossil Build</a></li> <li><a href="contribute.wiki">Project — Contributing Code or Documentation To The Fossil</a></li> <li><a href="embeddeddoc.wiki">Project Documentation — Embedded</a></li> <li><a href="sync.wiki">Protocol — The Fossil Sync</a></li> <li><a href="faq.wiki">Questions — Frequently Asked</a></li> <li><a href="qandc.wiki">Questions And Criticisms</a></li> <li><a href="quickstart.wiki">Quick Start Guide — Fossil</a></li> <li><a href="quotes.wiki">Quotes: What People Are Saying About Fossil, Git, and DVCSes in General</a></li> <li><a href="selfhost.wiki">Repositories — Fossil Self Hosting</a></li> <li><a href="selfcheck.wiki">Repository Integrity Self Checks — Fossil</a></li> <li><a href="quotes.wiki">Saying About Fossil, Git, and DVCSes in General — Quotes: What People Are</a></li> <li><a href="selfcheck.wiki">Self Checks — Fossil Repository Integrity</a></li> <li><a href="selfhost.wiki">Self Hosting Repositories — Fossil</a></li> <li><a href="server.wiki">Server — How To Configure A Fossil</a></li> <li><a href="shunning.wiki">Shunning: Deleting Content From Fossil</a></li> <li><a href="style.wiki">Source Code Style Guidelines</a></li> <li><a href="tech_overview.wiki">SQLite Databases Used By Fossil</a></li> <li><a href="quickstart.wiki">Start Guide — Fossil Quick</a></li> <li><a href="stats.wiki">Statistics — Performance</a></li> <li><a href="style.wiki">Style Guidelines — Source Code</a></li> <li><a href="sync.wiki">Sync Protocol — The Fossil</a></li> <li><a href="custom_ticket.wiki">System — Customizing The Ticket</a></li> <li><a href="branching.wiki">Tagging — Branching, Forking, Merging, and</a></li> <li><a href="tech_overview.wiki">Technical Overview Of The Design And Implementation Of Fossil — A</a></li> <li><a href="../test/release-checklist.wiki">Testing Checklist — Pre-Release</a></li> <li><a href="makefile.wiki">The Fossil Build Process</a></li> <li><a href="sync.wiki">The Fossil Sync Protocol</a></li> <li><a href="webui.wiki">The Fossil Web Interface</a></li> <li><a href="theory1.wiki">Thoughts On The Design Of The Fossil DVCS</a></li> <li><a href="custom_ticket.wiki">Ticket System — Customizing The</a></li> <li><a href="bugtheory.wiki">Tracking In Fossil — Bug</a></li> <li><a href="checkin_names.wiki">Version Names — Checkin And</a></li> <li><a href="fossil-v-git.wiki">Versus Git — Fossil</a></li> <li><a href="webui.wiki">Web Interface — The Fossil</a></li> <li><a href="quotes.wiki">What People Are Saying About Fossil, Git, and DVCSes in General — Quotes:</a></li> <li><a href="wikitheory.wiki">Wiki In Fossil</a></li> </ul> |
Added www/style.wiki.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
<title>Coding Style</title>
Fossil source code should following the style guidelines below.
<b>General points:</b>:
10. No line of code exceeds 80 characters in length. (Occasional
exceptions are made for HTML text on @-lines.)
11. There are no tab characters.
12. Line terminators are \n only. Do not use a \r\n line terminator.
13. 2-space indentation is used. Remember: No tabs.
14. Comments contain no spelling or grammatical errors. (Abbreviations
and sentence fragments are acceptable when trying to fit a comment
on a single line as long as the meaning is clear.)
15. The tone of comments is professional and courteous. Comments
contain no profanity, obscenity, or innuendo.
16. All C-code conforms to ANSI C-89.
17. All comments and identifiers are in English.
18. The program is single-threaded. Do not use threads.
(One except to this is the HTTP server implementation for windows,
which we do not know how to implement without the use of threads.)
<b>C preprocessor macros</b>:
20. The purpose of every preprocessor macros is clearly explained in a
comment associated with its definition.
21. Every preprocessor macro is used at least once.
22. The names of preprocessor macros clearly reflect their use.
23. Assumptions about the relative values of related macros are
verified by asserts. Example: <tt>assert(READ_LOCK+1==WRITE_LOCK);</tt>
<b>Function header comments</b>:
30. Every function has a header comment describing the purpose and use
of the function.
31. Function header comment defines the behavior of the function in
sufficient detail to allow the function to be reimplemented from
scratch without reference to the original code.
32. Functions that perform dynamic memory allocation (either directly
or indirectly via subfunctions) say so in their header comments.
<b>Function bodies</b>:
<ol>
<li value=40> The name of a function clearly reflects its purpose.
<li> Automatic variables are small, not large objects or arrays. Avoid
excessive stack usage.
<li> The check-list items for functions also apply to major subsections
within a function.
<li> All code subblocks are enclosed in {...}.
<li> <b>assert() macros are used as follows </b>:
<ol type="a">
<li> Function preconditions are clearly stated and verified by asserts.
<li> Invariants are identified by asserts.
</ol>
</ol>
<b>Class (struct) declarations</b>:
50. The purpose and use of every class (a.k.a. structure) is clearly defined
in the header comment of its declaration.
51. The purpose and use of every class member is clearly defined either
in the header comment of the class declaration or when the member is
declared or both.
52. The names of class members clearly reflect their use.
53. Invariants for classes are clearly defined.
<b>Variables and class instances</b>:
60. The purpose and use of every variable is defined by a comment at the
variable definition.
61. The names of variables clearly reflect their use.
62. Related variables have related names. (ex: aSavepoint and nSavepoint.)
63. Variables have minimum practical scope.
64. Automatic variables are small, not large objects or arrays.
65. Constants are "const".
66. Invariants on variables or groups of variables are defined and
tested by asserts.
67. When a variable that refers to the same value is used within
multiple scopes, the same name is used in all cases.
68. When variables refer to different values, different names are used
even when the names are in different scopes.
69. Variable names with wide scope are sufficiently distinctive to allow
searching for them using grep.
|