summaryrefslogtreecommitdiffstats
path: root/doc/unsorted/contribute.txt
blob: e43ed4ad3c5f3092bc2eff5377608ef9bd92051e (plain)
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
.. -*- mode: rst -*-

.. _unsorted-contribute:

=====================
Contributing to Bcfg2
=====================

There are several ways users can contribute to the Bcfg2 project.

* Developing code
* Testing prereleases
* Adding to the common repository
* Improving the wiki

Development
===========

Send patches to the [wiki:MailingList bcfg mailing list] or create a trac [https://trac.mcs.anl.gov/projects/bcfg2/newticket ticket] with the patch included. In order to submit a ticket via the trac system, you will need to create a session by clicking on the [https://trac.mcs.anl.gov/projects/bcfg2/prefs Preferences] link and filling out/saving changes to the form. In order to be considered for mainline inclusion, patches need to be BSD licensed. The most convenient way to prepare patches is by using svn diff inside of a source tree checked out of subversion. The source tree can be checked out by running::

    svn co https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2

Users wishing to contribute on a regular basis can apply for direct subversion access. Mail the mailing list for details.

Several resources for developers exist in the wiki:

* [wiki:DevelopmentTips]
* [wiki:Development/WritingPlugins Writing Bcfg2 Server Plugins]
* [wiki:Architecture]
* [wiki:WritingClientToolDrivers]
* [wiki:Bcfg2SubversionHowto]
* [wiki:LearningPython]
* [wiki:UsingRcache]

Bcfg2 is the result of a lot of work by many different people. They are listed on the [wiki:Contributors contributors page.]

Feel free to drop in during a [wiki:CodeSprintIdeas code sprint] if you would like to help out with some easier problems.

Testing Prereleases
===================

Before each release, several prereleases will be tagged. It is helpful to have users test these releases (when feasible) because it is hard to replicate the full range of potential reconfiguration situations; between different operating systems, system management tools, and configuration specification variation, there can be large differences between sites.

See the [wiki:TrackingDevelopmentTrunk] page for a better view of changes in the prereleases.

Adding to the Common Repository
===============================

The Bcfg2 common repository is a set of portable examples that new repositories can be based on. This repo has several parts. The first is a series of group definitions that describe a wide range of client systems. The second is a set of portable bundles that have been ported to use these groups. This makes these bundles transparently portable across new client architectures.

This approach has several benefits to users

* Configuration specification can be shared across sites where appropriate
* This common configuration specification can be reused, allowing sites to migrate to new systems that other sites have already ported the common repository to
* Setup of new systems becomes a lot easier.

Improving the wiki
==================

Mail the [wiki:MailingList mailing list] for an account on the wiki.