Compare commits

...

6 commits

Author SHA1 Message Date
4d374028cf Merge pull request 'Changed text to match Policy changes in cacert-webdb.' (#6) from policy-changes-from-webdb into main
Reviewed-on: #6
2024-09-21 06:03:18 +00:00
50edea030d Changed text to match Policy changes in cacert-webdb.
Due to the change of the base of operations from
Australia to Switzerland, a few text changes,
primarily relating to the address, were necessary.

[Ticket: #bug-1537]
2024-06-16 17:18:30 -04:00
55a8ccbaca Merge pull request 'Add a contribution guide' (#5) from contribution-guide into main
Reviewed-on: #5
2024-03-25 10:00:35 +00:00
b4947436f9 Add a section about MarkDown
This commit adds a short documentation about Markdown/CommonMark and
tool recommendations.
2024-02-24 14:22:54 +01:00
2ffc4a5161 Add .gitignore and .gitattributes
This commit adds basic .gitignore and .gitattributes files to ensure
normalized line endings and avoid adding editor configuration or
temporary files.
2024-02-24 14:06:06 +01:00
db0346d8a9 Add Git workflow documentation 2024-02-24 14:03:16 +01:00
5 changed files with 950 additions and 7 deletions

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
*.md text eol=lf
*.html text eol=lf

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
.*.swp
/.idea/

View file

@ -0,0 +1,779 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title> CAcert Community Agreement </title>
<style type="text/css">
<!--
.comment {
color : steelblue;
}
.first-does-not-work {
color : red;
}
.q {
color : green;
font-weight: bold;
text-align: center;
font-style:italic;
}
.change {
color : blue;
font-weight: bold;
}
.change2 {
color : mediumaquamarine;
font-weight: bold;
}
.change3 {
color : Chartreuse;
font-weight: bold;
}
.change4 {
color : darkcyan;
font-weight: bold;
}
.change5 {
color : green;
font-weight: bold;
}
.change6 {
color : orange;
font-weight: bold;
}
.change7 {
color : lightSalmon ;
font-weight: bold;
}
.change8 {
color : deepPink;
font-weight: bold;
}
.change9 {
color : darkblue;
font-weight: bold;
}
.change10 {
color : indianRed;
font-weight: bold;
}
.change11 {
color : cornflowerBlue;
font-weight: bold;
}
.change12 {
color : purple;
font-weight: bold;
}
.change13 {
color : lightGreen;
font-weight: bold;
}
.strike {
color : blue;
text-decoration:line-through;
}
.strike2 {
color : mediumaquamarine;
text-decoration:line-through;
}
.strike4 {
color : darkcyan;
text-decoration:line-through;
}
.strike5 {
color : green;
text-decoration:line-through;
}
.strike6 {
color : orange;
text-decoration:line-through;
}
.strike7 {
color : lightSalmon;
text-decoration:line-through;
}
.strike8 {
color : deepPink;
text-decoration:line-through;
}
.strike9 {
color : darkblue;
text-decoration:line-through;
}
.strike10 {
color : indianRed;
text-decoration:line-through;
}
.strike11 {
color : cornflowerBlue;
text-decoration:line-through;
}
.strike12 {
color : purple;
text-decoration:line-through;
}
.strike13 {
color : lightGreen;
text-decoration:line-through;
}
-->
</style>
</head>
<body>
<p style="text-align: center;">
<big>
<br /><b>WARNING:</b><br />
The proper policy document is located<br />
<a href="//www.cacert.org/policy/CAcertCommunityAgreement.php">
on the CAcert website </a>.<br />
</big>
This document is a <b>work-in-progress</b> to include future revisions only,<br />
and is currently <b>only relevant for the [policy] group</b>.<br />
<span class="change">Additions in COLOR</span> <span class="strike">strikes in COLOR</span> <!--now up for <a href="//wiki.cacert.org/PolicyDecisions#p20101009">vote in PG</a>,.<br />-->
</p>
<a href="http://validator.w3.org/check?uri=referer"><img style="float: right; border-width: 0" src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1" height="31" width="88" /></a>
<ul>
<li>Benedikt<span class="change2">20140215</span>:
<ol>
<li> header: to match current PoP requirements</li>
<li>1.1: Opend the options to accept CCA by other ways than the listed ones</li>
</ol>
</li>
<li>Benedikt <span class="change">20140330</span> merged with 20140401 which was an update to this:
<ol>
<li>1.1: Clarified the general character of CCA as general terms and conditions</li>
<li>1.3: Updated with additional cases</li>
<li>1.3: Changed "privacy related data" to "personal data"</li>
</ol>
</li>
<li>Ian <span class="change3">20140405</span>(original version and idea from Ted as 20140329, added "with" by Eva):
<ol>
<li>2.3: Included obligation to assist truthfully in Arbitration with truthful information (This obligation already can be derived from DRP 2.6.2)</li>
</ol>
</li>
<li>Marcus <span class="change5">20140407</span>:
<ol>
<li>3.3: We should not use the online forum for any support request containing personal data as the online forum is open for everyone.</li>
</ol>
</li>
<li>Eva <span class="change6">20140417</span>:
<ol>
<li>3.5: CAcert is not limited to use primary email-address, if other contact forms are more sensible.</li>
</ol>
</li>
<li>Eva <span class="change7">20140501.1</span> updated at 20140514 and 20140602:
<ol>
<li>0.1: Remove references to withdrawn policy</li>
<li>2.3: Ban of sharing of accounts.</li>
</ol>
</li>
<li>Benedikt <span class="change9">20140504.1</span>:
<ol>
<li>4.3: Review </li>
<li>4.4: Remove </li>
</ol>
</li>
<li>Benedikt <span class="change11">20140508.2</span>:
<ol>
<li>4.2: Review (drop Links to selection of policies)</li>
</ol>
</li>
<li>Benedikt <span class="change4">20140515</span>:
<ol>
<li>0.1: Remove reference to policy in WIP status</li>
</ol>
</li>
<li>Eva <span class="change10">20140522</span>:
<ol>
<li>4.1: Remove </li>
</ol>
</li>
<li>Eva <span class="change12">20140602</span>:
<ol>
<li>3.3: other termination reasons added, rephrased</li>
<li>3.3a: consequences of termination, added</li>
</ol>
</li>
<li>Eva <span class="change8">20140705.2</span>:
<ol>
<li>2.5: Clarify context of allowed certificte usage (as in CPS) </li>
</ol>
</li>
</ul>
<hr />
<div class="comment">
<table width="100%">
<tr>
<td rowspan="2">
Name: CCA <a style="color: steelblue" href="https://svn.cacert.org/CAcert/Policies/ControlledDocumentList.html">COD9</a><br />
Status: WIP<br />
Editor: <a style="color: steelblue" href="https://wiki.cacert.org/Community/HomePagesMembers/BenediktHeintel">Benedikt</a><br />
Licence: <a style="color: steelblue" href="https://wiki.cacert.org/Policy#Licence" title="this document is Copyright &copy; CAcert Inc., licensed openly under CC-by-sa with all disputes resolved under DRP. More at wiki.cacert.org/Policy">CC-by-sa+DRP</a><br />
</td>
<td valign="top" align="right">
<a href="https://www.cacert.org/policy/PolicyOnPolicy.php"><img src="images/cacert-policy.png" alt="CCA Status - POLICY" height="31" width="88" style="border-style: none;" /></a>
<!-- XXXXXXXXXXXXXX delete this going to DRAFT -->
<br />
<a href="https://www.cacert.org/policy/PolicyOnPolicy.php"><img src="images/cacert-wip.png" alt="CCA Status - WIP" height="31" width="88" style="border-style: none;" /></a>
</td>
</tr>
</table>
</div>
<h2> CAcert Community Agreement </h2>
<h3> <a name="0"> 0. </a> Introduction </h3>
<p>
This agreement is between
you, being a registered member ("Member")
within CAcert's community at large ("Community")
and CAcert Incorporated ("CAcert"),
being an operator of services to the Community.
</p>
<h4> <a name="0.1"> 0.1 </a> Terms </h4>
<ol><li>
"CAcert"
means CAcert Inc.,
a non-profit Association of Members.
Note that Association Members are distinct from
the Members defined here.
</li><li>
"Member"
means you, a registered participant within CAcert's Community,
with an account on the website and the
facility to request certificates.
Members may be individuals ("natural persons")
or organisations ("legal persons").
</li><li>
"Organisation"
is defined under the Organisation Assurance programme,
and generally includes corporations and other entities
that become Members and become Assured.
</li><li>
"Community"
means all of the Members
that are registered by this agreement
and other parties by other agreements,
all being under CAcert's Arbitration.
</li><li>
"Non-Related Person" ("NRP"),
being someone who is not a
Member, is not part of the Community,
and has not registered their agreement.
<span class="strike7">Such people are offered the NRP-DaL
another agreement allowing the USE of certificates.</span>
</li><li>
<span class="strike7">"Non-Related Persons - Disclaimer and Licence" ("NRP-DaL"),
another agreement that is offered to persons outside the
Community.</span><span class="change7">(withdrawn)</span>
</li><li>
"Arbitration"
is the Community's forum for
resolving disputes, or jurisdiction.
</li><li>
"Dispute Resolution Policy" ("DRP" => COD7)
is the policy and
rules for resolving disputes.
</li><li>
"USE"
means the act by your software
to conduct its tasks, incorporating
the certificates according to software procedures.
</li><li>
"RELY"
means your human act in taking on a
risk and liability on the basis of the claim(s)
bound within a certificate.
</li><li>
"OFFER"
means the your act
of making available your certificate to another person.
Generally, you install and configure your software
to act as your agent and facilite this and other tasks.
OFFER does not imply suggestion of reliance.
</li><li>
"Issue"
means creation of a certificate by CAcert.
To create a certificate,
CAcert affixes a digital signature from the root
onto a public key and other information.
This act would generally bind a statement or claim,
such as your name, to your key.
</li><li>
"Root"
means CAcert's top level key,
used for signing certificates for Members.
In this document, the term includes any subroots.
</li><li>
"CAcert Official Document" ("COD" <span class="strike4">=> COD3</span>)
<span class="strike4">in a standard format for describing the details of
operation and governance essential to a certificate authority.
Changes are managed and controlled.
CODs define more technical terms.
See 4.2 for listing of relevant CODs.</span>
<span class="change4"> is an official managed and
controlled document (e. g. a Policy) of CAcert.</span>
</li><li>
"Certification Practice Statement" ("CPS" => COD6)
is the document that controls details
about operational matters within CAcert.
</li></ol>
<h3> <a name="1"> 1. </a> Agreement and Licence </h3>
<h4> <a name="1.1"> 1.1 </a> Agreement </h4>
<p>You <span class="strike">and CAcert both</span> agree to the terms and conditions in this agreement. Your agreement is given by <span class="change2"> but not limited to</span> <span class="strike2">any of</span></p>
<ul><li>
your signature on a form to request assurance of identity
("CAP" form),
</li><li>
your request on the website
to join the Community and create an account,
</li><li>
your request for Organisation Assurance,
</li><li>
your request for issuing of certificates, or
</li><li>
if you USE, RELY, or OFFER
any certificate issued to you.
</li></ul>
<p>
Your agreement
is effective from the date of the first event above
that makes this agreement known to you.
This Agreement
replaces and <span class="strike2"> supercedes prior agreements,
including the NRP-DaL.</span> <span class="change2">supersedes any prior agreements.</span>
</p>
<h4> <a name="1.2"> 1.2 </a> Licence </h4>
<p>
As part of the Community, CAcert offers you these rights:
</p>
<ol><li>
You may USE any certificates issued by CAcert.
</li><li>
You may RELY on any certificate issued by CAcert,
as explained and limited by CPS (COD6).
</li><li>
You may OFFER certificates issued to you by CAcert
to Members for their RELIANCE.
</li><li>
You may OFFER certificates issued to you by CAcert
to NRPs for their USE, within the general principles
of the Community.
</li><li>
This Licence is free of cost,
non-exclusive, and non-transferrable.
</li></ol>
<h4> <a name="1.3"> 1.3 </a> Your Contributions </h4>
<p>
You agree to a non-exclusive non-restrictive non-revokable
transfer of Licence to CAcert for your contributions.
That is, if you post an idea or comment on a CAcert forum,
or email it to other Members,
your work can be used freely by the Community for
CAcert purposes, including placing under CAcert's licences
for wider publication.
</p>
<p>
You retain authorship rights, and the rights to also transfer
non-exclusive rights to other parties.
That is, you can still use your
ideas and contributions outside the Community.
</p>
<p>
Note that the following exceptions override this clause:
</p>
<ol><li>
Contributions to controlled documents are subject to
Policy on Policy ("PoP" => COD1)
</li><li>
Source code is subject to an open source licence regime.
</li>
<li><span class="change">Personal data</span></li>
<li><span class="change">Postings under competing licenses if clearly stated when posted<span></li>
</ol>
<h4> <a name="1.4"> 1.4 </a> Privacy </h4>
<p>
You give rights to CAcert to store, verify and process
and publish your data in accordance with policies in force.
These rights include shipping the data to foreign countries
for system administration, support and processing purposes.
Such shipping will only be done among
CAcert Community administrators and Assurers.
</p>
<p>
Privacy is further covered in the Privacy Policy ("PP" => COD5).
</p>
<h3> <a name="2"> 2. </a> Your Risks, Liabilities and Obligations </h3>
<p>
As a Member, you have risks, liabilities
and obligations within this agreement.
</p>
<h4> <a name="2.1"> 2.1 </a> Risks </h4>
<ol><li>
A certificate may prove unreliable.
</li><li>
Your account, keys or other security tools may be
lost or otherwise compromised.
</li><li>
You may find yourself subject to Arbitration
(DRP => COD7).
</li></ol>
<h4> <a name="2.2"> 2.2 </a> Liabilities </h4>
<ol><li>
You are liable for any penalties
as awarded against you by the Arbitrator.
</li><li>
Remedies are as defined in the DRP (COD7).
An Arbitrator's ruling may
include monetary amounts, awarded against you.
</li><li>
Your liability is limited to
a total maximum of
<b>1000 Euros</b>.
</li><li>
"Foreign Courts" may assert jurisdiction.
These include your local courts, and are outside our Arbitration.
Foreign Courts will generally refer to the Arbitration
Act of their country, which will generally refer
civil cases to Arbitration.
The Arbitration Act will not apply to criminal cases.
</li></ol>
<h4> <a name="2.3"> 2.3 </a> Obligations </h4>
<p>
You are obliged
</p>
<ol><li>
to provide accurate information
as part of Assurance.
You give permission for verification of the information
using CAcert-approved methods.
</li><li>
to make no false representations.
</li><li>
to submit all your disputes to Arbitration
(DRP => COD7).
</li><span class="change3"><li>
to assist the Arbitrator by truthfully providing information, or with any other reasonable request.
</li></span>
<span class="change7"><li>
to not share your CAcert account.
</li></span></ol>
<h4> <a name="2.4"> 2.4 </a> Principles </h4>
<p>
As a Member of CAcert, you are a member of
the Community.
You are further obliged to
work within the spirit of the Principles
of the Community.
These are described in
<a href="http://svn.cacert.org/CAcert/principles.html">Principles of the Community</a>.
</p>
<h4> <a name="2.5"> 2.5 </a> Security </h4>
<p>
CAcert exists to help you to secure yourself.
You are primarily responsible for your own security.
Your security obligations include
</p>
<ol><li>
to secure yourself and your computing platform (e. g. PC),
</li><li>
to keep your email account in good working order,
</li><li>
to secure your CAcert account
(e. g., credentials such as username, password),
</li><li>
to secure your private keys,<span class="change8"> ensuring that they are
only used as indicated by the certificate, or by wider agreement with others,</span>
</li><li>
to review certificates for accuracy,
and
</li><li>
when in doubt, notify CAcert,
</li><li>
when in doubt, take other reasonable actions, such as
revoking certificates,
changing account credentials,
and/or generating new keys.
</li></ol>
<p>
Where, above, 'secure' means to protect to a reasonable
degree, in proportion with your risks and the risks of
others.
</p>
<h3> <a name="3"> 3. </a> Law and Jurisdiction </h3>
<h4> <a name="3.1"> 3.1 </a> Governing Law </h4>
<p>
This agreement is governed under the law of
New South Wales, Australia.
</p>
<h4> <a name="3.2"> 3.2 </a> Arbitration as Forum of Dispute Resolution </h4>
<p>
You agree, with CAcert and all of the Community,
that all disputes arising out
of or in connection to our use of CAcert services
shall be referred to and finally resolved
by Arbitration under the rules within the
Dispute Resolution Policy of CAcert
(DRP => COD7).
The rules select a single Arbitrator chosen by CAcert
from among senior Members in the Community.
The ruling of the Arbitrator is binding and
final on Members and CAcert alike.
</p>
<p>
In general, the jurisdiction for resolution of disputes
is within CAcert's own forum of Arbitration,
as defined and controlled by its own rules (DRP => COD7).
</p>
<p>
We use Arbitration for many purposes beyond the strict
nature of disputes, such as governance and oversight.
A systems administrator may
need authorisation to conduct a non-routine action,
and Arbitration may provide that authorisation.
Thus, you may find yourself party to Arbitration
that is simply support actions, and you may file disputes in
order to initiate support actions.
</p>
<h4> <a name="3.3"> 3.3 </a> Termination </h4>
<span class="strike12">
<p>
You may terminate this agreement by resigning from CAcert. You may do this at any time by
writing to CAcert's online support forum and filing dispute to resign.
All services will be terminated, and your certificates will be revoked.
However, some information will continue to be held for certificate processing purposes.
</p>
<p>
The provisions on Arbitration survive any termination by you by leaving CAcert.
That is, even if you resign from CAcert, you are still bound by the DRP (COD7),
and the Arbitrator may reinstate any provision of this agreement or bind you to a ruling.
</p>
<p>
Only the Arbitrator may terminate this agreement with you.
</p>
</span>
<span class="change12">
<p>The CAcert Community Agreement is terminated</p>
<ol>
<li>based on a Policy Group decision following (PoP => COD1). This
terminates the Agreement with every member.</li>
<li>with a ruling of the Arbitrator or the completion of a termination
process defined by an Arbitrator ruling (DRP => COD7).</li>
<li>by the end of existence of a member (i.e. death in the case of
individuals).</li>
</ol>
<p>A member may declare the wish to resign from CAcert at any time by
writing to <em>support AT cacert.org</em>. This triggers a process for
termination of this agreement with the member.</p>
<h4> <a name="3.3"> 3.3a </a> Consequences of Termination </h4>
<p>The termination discontinues the right to USE, OFFER and CREATE
personal certificates in any account of the former member. Those
certificates will be revoked and all services to the former member will
be terminated as soon as possible. However, some information will
continue to be held for certificate processing purposes.</p>
<p>The provisions on Arbitration for the time of membership survive any
termination. Former members
are still bound by the DRP (COD7), and the Arbitrator may reinstate any
provision of this agreement or bind them to a ruling.</p>
<p>As far as Organisations are concerned details are also defined in the
Organisation Assurance Policy (OAP => COD11).</p>
<p>Every member learning about the death of a member or termination of
existence of a member should notify <em>support AT cacert.org</em>.</p>
</span>
<h4> <a name="3.4"> 3.4 </a> Changes of Agreement </h4>
<p>
CAcert may from time to time vary the terms of this Agreement.
Changes will be done according to the documented CAcert policy
for changing policies, and is subject to scrutiny and feedback
by the Community.
Changes will be notified to you by email to your primary address.
</p>
<p>
If you do not agree to the changes, you may terminate as above.
Continued use of the service shall be deemed to be agreement
by you.
</p>
<h4> <a name="3.5"> 3.5 </a> Communication </h4>
<p><span class="change6">
You are responsible for keeping your primary email account in good working order and able to receive emails from CAcert.</span></p>
<p>Notifications to CAcert are to be sent by email to the address <em>support AT cacert.org</em>. You should attach a digital signature<span class="strike6">, but need not do so in the event of security or similar urgency</span>.</p>
<span class="strike6">
<p>Notifications to you are sent by CAcert to the primary email address registered with your account. You are responsible for keeping your email account in good working order and able to receive emails from CAcert.</p>
<p>Arbitration is generally conducted by email.</p></span>
<h3> <a name="4"> 4. </a> Miscellaneous </h3>
<h4> <a name="4.1"> 4.1 </a> <span class="strike10">Other Parties Within the Community</span> <span class="change10">(withdrawn)</span></h4>
<p class="strike10">
As well as you and other Members in the Community,
CAcert forms agreements with third party
vendors and others.
Thus, such parties will also be in the Community.
Such agreements are also controlled by the same
policy process as this agreement, and they should
mirror and reinforce these terms.
</p>
<h4> <a name="4.2"> 4.2 </a> References and Other Binding Documents </h4>
<p class="strike11">
This agreement is CAcert Official Document 9 (COD9)
and is a controlled document.
</p>
<p>
You are also bound by
<span class="change11">
the Policies of the Community under the control of Policy on Policy ("PoP" => COD1) and listed in
<a href="https://svn.cacert.org/CAcert/Policies/ControlledDocumentList.html">Controlled Document List</a>.
</span>
</p>
<span class="strike11">
<ol><li>
<a href="http://www.cacert.org/policy/CertificationPracticeStatement.php">
Certification Practice Statement</a> (CPS => COD6).
</li><li>
<a href="http://www.cacert.org/policy/DisputeResolutionPolicy.php">
Dispute Resolution Policy</a> (DRP => COD7).
</li><li>
<a href="PrivacyPolicy.html">
Privacy Policy</a> (PP => COD5).
</li><li>
<a href="http://svn.cacert.org/CAcert/principles.html">
Principles of the Community</a>.
</li></ol>
</span>
<p class="strike11">
Where documents are referred to as <i>=> COD x</i>,
they are controlled documents
under the control of Policy on Policies (COD1).
</p>
<p class ="strike11">
This agreement and controlled documents above are primary,
and may not be replaced or waived except
by formal policy channels and by Arbitration.
</p>
<p class="change11">
Controlled documents are primary, and may not be replaced or waived except by formal policy
channels and Arbitration.
</p>
<p class="change11">
This agreement is controlled document COD9.
</p>
<h4> <a name="4.3"> 4.3 </a> Informative References </h4>
<p>
The governing documents are in English. Documents may be translated for convenience.
Because we cannot control the legal effect of translations, the English documents are the ruling ones.
</p>
<p class="strike9">
You are encouraged to be familiar with the Assurer Handbook,
which provides a more readable introduction for much of the information needed.
The Handbook is not however an agreement, and is overruled
by this agreement and others listed above.
</p>
<p class="change9">
Beside this Agreement and the Policies, there are other documents, i.
e. Policy Guides, Manuals and Handbooks, supporting and explaining this
Agreement and the Policies. These documents are not binding and in doubt
this Agreement and the Policies are valid.</p>
<h4> <a name="4.4"> 4.4 </a> <span class="strike9">Not Covered in this Agreement</span> <span class="change9">(withdrawn)</span></h4>
<p class="strike9">
<b>Intellectual Property.</b>
This Licence does not transfer any intellectual property rights ("IPR") to you. CAcert asserts and
maintains its IPR over its roots, issued certificates, brands, logos and other assets.
Note that the certificates issued to you are CAcert's intellectual property
and you do not have rights other than those stated.
</p>
</body>
</html>

View file

@ -72,13 +72,7 @@ ensures that valid authority is given to whoever complies with the supoena or th
</p>
<p><?=_("If you need to contact us in writing, address your mail to:")?></p>
<p>
CAcert Inc.<br>
PO Box 66<br>
Oatley NSW 2223<br>
Australia
</p>
<p><?=_("If you need to contact us in writing, address your mail to to the postal address of CAcert Inc. The current postal address of Cacert Inc. can be found on CAcert's web site.")?></p>

166
README.md Normal file
View file

@ -0,0 +1,166 @@
# The CAcert policy repository
This repository contains work in progress policy documents for CAcert.
## Getting started using Git
We use [Git](https://www.git-scm.com/) for working with this repository. Git is
a free and open source distributed version control system.
### Installing Git
To work with Git you need a piece of client software. Git is available for all
major operating systems. On Linux systems Git is available from your
distribution's package manager and can be installed using something like
```shell
# install Git on Debian based systems
sudo apt install git
```
or
```shell
# install Git on Fedora based systems
sudo dnf install git
```
For Windows or MacOS you should use the binary installers from the [Git
Download Page](https://www.git-scm.com/downloads).
### First steps with Git
Open a Terminal window (Linux and MacOS have default terminal applications, on
Windows you might want to use the *Git bash* that comes bundled with the Git
client installation).
Tell Git who you are and what email address you would like to use. This
information will be put in commits you will do later.
```shell
# Tell Git who you are
git config --global user.name "Your Full Name"
git config --global user.email "yourname@cacert.org"
```
### Get a clone of this repository
A local working copy is called a *clone* in Git terminology. Run
```shell
cd $HOME/where-your-projects-live
git clone https://code.cacert.org/cacert/cacert-policies.git
```
to get your local copy.
### Update your local copy
If you have not worked on your copy for a while you can update it with the
following commands:
```shell
cd $HOME/where-your-projects-live/cacert-policies
git pull -r
```
### Making changes
If you want to make changes to the content of the repository, working on a Git
branch is recommended. You can have multiple branches in your local Git clone
and can switch between these.
```shell
cd $HOME/where-your-projects-live/cacert-policies
# create a branch for your work
git checkout -b some-topic-you-will-work-on
```
You can then make changes in the files in your working copy as you like. You
can also add new files. When you are satisfied with what you have, you can add
the changes to Git's staging area (in some documents this is also called the
*index*):
```shell
git add .
```
You can show the status of your local copy using
```shell
git status
```
If you would like to remove a file you can run
```shell
git rm the-file-you-do-not-want-anymore
```
To publish your changes for review you need to create a commit and push your
branch to the origin repository.
Please make yourself familiar with [how to write good Git commit
messages](https://cbea.ms/git-commit/). It will make the life of your future
self and of other contributors a lot better.
```shell
# Make a commit
git commit -m "Add inspiration quotes
Fixes #1"
# Push your branch to the origin repository
git push origin some-topic-you-will-work-on
```
You may repeat the edit, commit, push cycle multiple times and finally create a
pull request by clicking on the link in the output of the git push command.
### Switching to another branch
If you wait for a review on your pull request or want to work on a different
topic you can switch to the main branch and start a new branch from there as
described above.
```shell
git switch main
```
### Recommended reading
Git comes with a very comprehensive built-in help. Help can be retrieved using
```shell
# get help for Git as a whole
git help
# get help for a specific command, in this case git switch
git help switch
```
If you would like to dive deeper into Git you can read the free [Pro Git
book](https://www.git-scm.com/book/) on the Git website.
## Markdown
New documents should be written in Markdown syntax. Markdowns goal is to
provide a human readable and writable syntax that can easily be transformed to
representations in several output formats.
We use the [CommonMark](https://commonmark.org/) variant of Markdown with the
[table extension](https://github.github.com/gfm/#tables-extension-). CommonMark
is well supported in Markdown libraries and conversion tools. The
code.cacert.org system can render CommonMark Markdown documents to HTML
allowing for easily accessible previews.
### Recommended tooling
To preview Markdown in several formats (HTML, PDF, Office documents) you can
use [Pandoc](https://pandoc.org/) which is packaged for multiple Linux
distributions and has installers for Windows and MacOS.
As Markdown is a plain text format you may use any text editor like Vim,
notepad++ and a lot of alternatives.
If you prefer a live preview and some more assistance you may use a more
heavyweight tool like Visual Studio Code or any of the JetBrains IDEs like
PyCharm.