contributing.md 5.74 KB
Newer Older
Houtan Bastani's avatar
Houtan Bastani committed
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
---
title: Contributing
---
<br />

# How can you contribute to the Dynare Project ?

As a free, open-source software project, we think of Dynare as a
community. Though primary development is undertaken to varying degrees by a
[core team](/about#team), we encourage others to be involved in any way that
interests them. That could be anything from attending the [Dynare
Conference](#come-to-the-conference), to participating actively in the [Dynare
Forum](#participate-actively-in-the-forum), to spotting and [reporting
bugs](#reporting-bugs), to directly making [changes to the
codebase](#code-development). [Financial
contributions](#financial-contributions) also help ensure the continued
stability of the Dynare project.

## Project Contributions

### Come to the Conference

Every year we organize the Dynare Conference, usually in the
summer. Participation is encouraged even if your paper does not use Dynare. The
application period opens in May and will be announced on this website.

### Participate actively in the forum

The [Dynare Forum](https://forum.dynare.org/) is a great resource to turn to
when you're stuck. Along with the manual, it should be a point of reference
when working with Dynare.

As an advanced user, your contribution will be useful in several ways. First
and foremost, you'll be helping others out who are just beginning on the same
path that you're on. Second, you may be able to bring a perspective to the
table that's different than that of a beginner and that of someone on the [core
team](/about#team). Finally, your participation will help foster a larger sense
of community and will hopefully allow you gain a deeper understanding of
something you already understand well.


### Reporting Bugs

If you find a bug in Dynare, please report it on our [Gitlab Issue
page](https://git.dynare.org/Dynare/dynare/issues). But! Before you do, please ensure you are working with the latest version of Dynare.

 - If reporting a bug in the ***stable*** version of Dynare:
Houtan Bastani's avatar
Houtan Bastani committed
48
Ensure the bug exists in the [latest stable version of Dynare](/download#stable) telling us exactly how to reproduce the problem.
Houtan Bastani's avatar
Houtan Bastani committed
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
 - If reporting a bug in the ***unstable*** version of Dynare:
   - Ensure the bug exists in the most recent version of the Dynare source code. You can either test it by installing the latest [Dynare snapshot](/download#snapshot) or by installing the source code from the [Git repository](https://git.dynare.org/Dynare/dynare)

If you have encountered a bug in the stable version of Dynare, there's a chance
we have alreday fixed it. You can see alist of bugs fixed on the [fixed bugs
Wiki page](https://git.dynare.org/Dynare/dynare/wikis/FixedBugs). There's also
a chance the bug has already been reported. You can see a list of reported bugs
by checking both the [known bugs Wiki
page](https://git.dynare.org/Dynare/dynare/wikis/KnownBugs) and the [Gitlab Issue
page](https://git.dynare.org/Dynare/dynare/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=bug).

Once you have ensured you're working with the correct version of Dynare and
that this bug has not yet been reported, report the bug on our [Gitlab Issue
page](https://git.dynare.org/Dynare/dynare/issues), providing all the code
necessary (`.mod` files, `.m` files, data) to reproduce the bug. If working
with a larger `.mod` file, please pare it down as much as possible. This will
help us find the bug more quickly.


### Fixing Bugs

Even more helpful than finding a bug is to take a crack at fixing it
yourself. First things first though, please [report the bug](#reporting-bugs)!
In your report, if you'd like to fix it as well, please indicate as much. We'll
take a look at the bug and tell you if it's ok to proceed or if we prefer to
fix it ourselves.

### Code development

We track the issues we're working on our [Gitlab Issue
page](https://git.dynare.org/Dynare/dynare/issues). You can organize those
issues by the tags associated with them
(e.g. [bug](https://git.dynare.org/Dynare/dynare/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=bug),
[enhancement](https://git.dynare.org/Dynare/dynare/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=enhancement),
[documentation](https://git.dynare.org/Dynare/dynare/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=documentation),
etc.). Further each issue has an assignee associated with it. If you find an
issue you'd like to work on that doesn't have an assignee, feel free to
manifest your interest in working on it. Further, if it does have an assignee
but the issue itself is very old, let us know you're interested in working on
it too.

To get started, assuming you have Git installed on your machine you can obtain
the latest development version of the Dynare source code with the following
command:

{% highlight text %}git clone https://git.dynare.org/Dynare/dynare.git{% endhighlight %}

As Dynare is free software licensed under the [GNU General Public License
(GPL)](https://www.gnu.org/licenses/gpl-3.0.en.html), any enhancements you make
to the Dynare codebase would need to be under GPLv3+ or some other compatible
license (e.g. public domain) so that it could be merged back into Dynare.

## Financial Contributions

Contrary to proprietary software, as a free and open-source software platform,
we do not recieve funding by licensing the use of Dynare. That means that
Dynare will remain a public good that will always be free to download and
free to modify.

As we don't receive revenue from licensing the use of Dynare, and as our other
potential sources of revenue (summer school) is provided at cost to not set up
barriers to participation, we depend on financing from various
institutions. That financing is often linked to improvements in the Dynare
source code itself. If you or your institution would like finance an
enhancement to Dynare, please get in touch.