blob: a1f1d19863d570187c3350c8adc9b91826b0a0f0 [file] [log] [blame]
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--><head>
<meta charset='utf-8'/><meta http-equiv='X-UA-Compatible' content='IE=edge'/><meta name='viewport' content='width=device-width, initial-scale=1'/><title>The Apache Groovy programming language - Contribute</title><link href='' type='image/x-ico' rel='icon'/><link rel='stylesheet' type='text/css' href=''/><link rel='stylesheet' type='text/css' href=''/><link rel='stylesheet' type='text/css' href=''/>
<div id='fork-me'>
<a href=''>
<img style='position: fixed; top: -14px; right: -14px; border: 0; z-index: 100' src='' alt='Fork me on GitHub' data-canonical-src=''/>
</div><div id='st-container' class='st-container st-effect-9'>
<nav class='st-menu st-effect-9' id='menu-12'>
<h2 class='icon icon-lab'>Socialize</h2><ul>
<a href='' class='icon'><span class='fa fa-envelope'></span> Discuss on the mailing-list</a>
<a href='' class='icon'><span class='fa fa-envelope-o'></span> Groovy newsletter</a>
<a href='' class='icon'><span class='fa fa-twitter'></span> Groovy on Twitter</a>
<a href='' class='icon'><span class='fa fa-calendar'></span> Events and conferences</a>
<a href='' class='icon'><span class='fa fa-github'></span> Source code on GitHub</a>
<a href='' class='icon'><span class='fa fa-bug'></span> Report issues in Jira</a>
<a href='' class='icon'><span class='fa fa-google-plus'></span> Google+ Groovy Page</a>
<a href='' class='icon'><span class='fa fa-google-plus'></span> Google+ Groovy Community</a>
<a href='' class='icon'><span class='fa fa-stack-overflow'></span> Stack Overflow questions</a>
<a href='' class='icon'><span class='fa fa-slack'></span> Slack Community</a>
</nav><div class='st-pusher'>
<div class='st-content'>
<div class='st-content-inner'>
<!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="">upgrade your browser</a> to improve your experience.</p>
<![endif]--><div><div class='navbar navbar-default navbar-static-top' role='navigation'>
<div class='container'>
<div class='navbar-header'>
<button type='button' class='navbar-toggle' data-toggle='collapse' data-target='.navbar-collapse'>
<span class='sr-only'></span><span class='icon-bar'></span><span class='icon-bar'></span><span class='icon-bar'></span>
</button><a class='navbar-brand' href='index.html'>
<i class='fa fa-star'></i> Apache Groovy
</div><div class='navbar-collapse collapse'>
<ul class='nav navbar-nav navbar-right'>
<li class=''><a href=''>Learn</a></li><li class=''><a href=''>Documentation</a></li><li class=''><a href=''>Download</a></li><li class=''><a href=''>Support</a></li><li class=''><a href=''>Contribute</a></li><li class=''><a href=''>Ecosystem</a></li><li>
<a data-effect='st-effect-9' class='st-trigger' href='#'>Socialize</a>
</li><li class=''>
<a href=''>
<i class='fa fa-search'></i>
</div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-8 col-lg-pull-0'><div id='contribute-btn'>
<button type='button' class='btn btn-default' onclick='window.location.href=""'>
<i class='fa fa-pencil-square-o'></i> Improve this doc
</div><h1><i class='fa fa-pencil-square-o'></i> Getting Involved</h1><article><p>
Would you like to help us make the Groovy programming language even better?
There are many ways in which you can get involved, make a difference and help
the Groovy development team to make Groovy even, well, groovier?
We really appreciate and welcome contributions and you can help us by:
</p><ul><li>helping other users or discussing future language directions on the <a href=''>mailing-lists</a></li><li>contribute to discussions on <a href=''>Slack</a> - this channel is not endorsed by the Apache Software Foundation, it&apos;s run by Groovy enthusiasts in the community for casual conversations and Q&amp;A,</li><li>reporting or fixing <a href='#reporting-issues'>issues</a> you encounter in our <a href=''>bug tracker</a></li><li><a href='#documenting'>documenting</a> various aspects of the language or its APIs</li><li>improving this <a href=''>website</a></li><li>covering the code base with more tests to avoid future regressions, </li><li>and of course, by <a href='#code'>contributing bug fixes or new features</a></li></ul><hr class='divider'/><h2>Discussing on the mailing-lists and forums</h2><p>
If you encounter a problem, want to discuss a new feature,
share interesting findings, and more, then the <a href=''>mailing-lists</a>
are the place to go to start a conversation with the Groovy developers
and other Groovy users. Discussions on the mailing list are archived.
It&apos;s the place to go to for all formal discussions or if you want to
search the archives. </p><p>Alternatively, for more casual conversations and Q&amp;A, consider using the <a href=''>Slack</a> channel. This channel is not endorsed by the Apache Software Foundation; it&apos;s run by Groovy enthusiasts in the community.</p><hr class='divider'/><a name='reporting-issues'></a><h2>Reporting issues</h2><p>
If you are wanting to search existing issues, raise a new one or are keen
to fix some existing issues, then you should become familiar with Groovy&apos;s <a href=''>Bug tracker</a>.</p><p><button type='button' class='btn btn-default' onclick='window.location.href=""'>Report an issue</button></p><hr class='divider'/><a name='documenting'></a><h2>Improving the documentation</h2><p>The documentation of the Groovy programming language comes in various forms:</p><ul><li>the <a href=''>reference documentation</a> covering the language specification, the user guides, getting started, and more.</li><li>the <a href=''>GroovyDoc APIs</a> documenting the classes of the Groovy code base</li><li>the <a href=''>Groovy GDK</a> documentation, explaining how Groovy enriches the JDK APIs</li><li>this <a href=''>website</a></li></ul><p>To contribute to the Groovy reference documentation, this <a href=''>blog post</a> gives all the details on how you can work on that documentation.</p><p>All the above is stored in our code <a href=''>repositories on Github</a>, so having an account on Github would be ideal.</p><p>
Contributing to this website is fairly easy, if you have a Github account already,
as you can click on the <em>Improve this doc</em> buttons that you can see on all the pages of this website.
So don't hesitate to help us improve it, fix typos, broken language, clarify complicated sections,
add new material, etc.
</p><p>Please check the following section for more information on how to contribute to our codebase.</p><hr class='divider'/><a name='code'></a><h2>Contributing code</h2><p>
If you know the area you want to contribute to, this is great, but if you are looking for
some first contributions, the Groovy development team tries to maintain a <a href=''>list of tickets</a>
of possible easy contributions that could get you started on your journey
to become a Groovy committer. Just raise your hand on the Groovy developer <a href=''>mailing-list</a> to tell us about your desire to work on that ticket.</p><p>
For more complicated tasks, the best approach is also to bring that to the attention of the Groovy developers,
so they can give you some guidance on how best to tackle a particular problem, discuss implementation ideas
and the semantics or scope of the proposed change.
</p><h3>Cloning the code base</h3><p>To work on the Groovy code base, you should be proficient enough in <a href=''>git</a> and you should have an account on <a href=''>Github</a> to be able to create <a href=''>pull requests</a> with your changes.</p><p>Please fork <a href=''></a> and create a local clone of your fork as explained in <a href=''>fork a repo</a>.</p><p>Make sure you configure Git appropriately with the same email that you registered with on Github:</p><pre><code>git config --global "YOUR NAME"
git config --global "YOUR EMAIL"</code></pre><p>You can verify these are configured appropriately by running:</p><pre><code>git config --list</code></pre><h3>Working on the code base</h3><p>If you are working with the IntelliJ IDEA development environment, this <a href=''>screencast</a> gives lots of details on how to setup your IDE.</p><p>Then, to work on the Groovy code base, to build and test Groovy, you can follow the <a href=''>instructions</a> from the readme file in the Groovy repository.</p><p>The most important command you will have to run before sending your changes is the test command:</p><pre><code>./gradlew test</code></pre><p>For a successful contribution, all tests should be green!</p><h3>Creating a pull request</h3><p>Once you are satisfied with your changes:</p><ul><li>commit your changes in your local branch</li><li>push your changes to your remote branch on Github</li><li>send us a <a href=''>pull requests</a></li></ul></article><hr class='divider'/><h2>Build status</h2><p>The Groovy sources are tested thanks to our <a href=''>continuous integration server</a>.</p></div></div></div></div><footer id='footer'>
<div class='row'>
<div class='colset-3-footer'>
<div class='col-1'>
<li><a href=''>Learn</a></li><li><a href=''>Documentation</a></li><li><a href=''>Download</a></li><li><a href=''>Support</a></li><li><a href=''>Contribute</a></li><li><a href=''>Ecosystem</a></li>
</div><div class='col-2'>
<li><a href=''>Source code</a></li><li><a href=''>Security</a></li><li><a href=''>Books</a></li><li><a href=''>Thanks</a></li><li><a href=''>Sponsorship</a></li><li><a href=''>FAQ</a></li><li><a href=''>Search</a></li>
</div><div class='col-3'>
<li><a href=''>Discuss on the mailing-list</a></li><li><a href=''>Groovy newsletter</a></li><li><a href=''>Groovy on Twitter</a></li><li><a href=''>Events and conferences</a></li><li><a href=''>Source code on GitHub</a></li><li><a href=''>Report issues in Jira</a></li><li><a href=''>Google+ Groovy Page</a></li><li><a href=''>Google+ Groovy Community</a></li><li><a href=''>Stack Overflow questions</a></li><li><a href=''>Slack Community</a></li>
</div><div class='col-right'>
The Groovy programming language is supported by the <a href=''>Apache Software Foundation</a> and the Groovy community
</p><img src='' title='The Apache Software Foundation' alt='The Apache Software Foundation' class='img-responsive'/>
</div><div class='clearfix'>&copy; 2003-2017 the Apache Groovy project &mdash; Groovy is Open Source, <a href=''>Apache 2 License</a></div>
</div><script src='' defer></script><script src='' defer></script><script src='' defer></script><script src='' defer></script><script src='' defer></script><script src='' defer></script><script>
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
ga('create', 'UA-257558-10', 'auto');
ga('send', 'pageview');