| <!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='img/favicon.ico' type='image/x-ico' rel='icon'/><link rel='stylesheet' type='text/css' href='css/bootstrap.css'/><link rel='stylesheet' type='text/css' href='css/font-awesome.min.css'/><link rel='stylesheet' type='text/css' href='css/style.css'/> |
| </head><body> |
| <div id='fork-me'> |
| <a href='https://github.com/apache/groovy'> |
| <img style='position: fixed; top: 20px; right: -58px; border: 0; z-index: 100; transform: rotate(45deg);' src='/img/horizontal-github-ribbon.png'/> |
| </a> |
| </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> |
| <li> |
| <a href='https://groovy-lang.org/mailing-lists.html' class='icon'><span class='fa fa-envelope'></span> Discuss on the mailing-list</a> |
| </li><li> |
| <a href='https://twitter.com/ApacheGroovy' class='icon'><span class='fa fa-twitter'></span> Groovy on Twitter</a> |
| </li><li> |
| <a href='https://groovy-lang.org/events.html' class='icon'><span class='fa fa-calendar'></span> Events and conferences</a> |
| </li><li> |
| <a href='https://github.com/apache/groovy' class='icon'><span class='fa fa-github'></span> Source code on GitHub</a> |
| </li><li> |
| <a href='https://groovy-lang.org/reporting-issues.html' class='icon'><span class='fa fa-bug'></span> Report issues in Jira</a> |
| </li><li> |
| <a href='http://stackoverflow.com/questions/tagged/groovy' class='icon'><span class='fa fa-stack-overflow'></span> Stack Overflow questions</a> |
| </li><li> |
| <a href='http://groovycommunity.com/' class='icon'><span class='fa fa-slack'></span> Slack Community</a> |
| </li> |
| </ul> |
| </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="http://browsehappy.com/">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 |
| </a> |
| </div><div class='navbar-collapse collapse'> |
| <ul class='nav navbar-nav navbar-right'> |
| <li class=''><a href='https://groovy-lang.org/learn.html'>Learn</a></li><li class=''><a href='https://groovy-lang.org/documentation.html'>Documentation</a></li><li class=''><a href='/download.html'>Download</a></li><li class=''><a href='https://groovy-lang.org/support.html'>Support</a></li><li class=''><a href='/'>Contribute</a></li><li class=''><a href='https://groovy-lang.org/ecosystem.html'>Ecosystem</a></li><li class=''><a href='/blog'>Blog posts</a></li><li class=''><a href='https://groovy.apache.org/events.html'></a></li><li> |
| <a data-effect='st-effect-9' class='st-trigger' href='#'>Socialize</a> |
| </li><li class=''> |
| <a href='search.html'> |
| <i class='fa fa-search'></i> |
| </a> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </div><div id='content' class='page-1'><section 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="https://github.com/apache/groovy-website/tree/asf-site/site/src/site/pages/index.groovy"'> |
| <i class='fa fa-pencil-square-o'></i> Improve this doc |
| </button> |
| </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='http://groovy-lang.org/mailing-lists.html'>mailing-lists</a></li><li>contribute to discussions on <a href='https://groovycommunity.com/'>Slack</a> - this channel is not endorsed by the Apache Software Foundation, it's run by Groovy enthusiasts in the community for casual conversations and Q&A,</li><li>reporting or fixing <a href='#reporting-issues'>issues</a> you encounter in our <a href='https://issues.apache.org/jira/browse/GROOVY'>bug tracker</a></li><li><a href='#documenting'>documenting</a> various aspects of the language or its APIs</li><li><a href='#blogging'>writing a blog post</a> about some Groovy feature or your Groovy usage</li><li>creating or commenting on the <a href='wiki/geps.html'>Groovy Enhancement Proposals</a> which describe how we make significant changes to the language</li><li>improving this <a href='https://github.com/apache/groovy-website'>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='http://groovy-lang.org/mailing-lists.html'>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'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&A, consider using the <a href='https://groovycommunity.com/'>Slack</a> channel. (This channel is not endorsed by the Apache Software Foundation; it'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's <a href='https://issues.apache.org/jira/browse/GROOVY'>Bug tracker</a>.</p><p>Before submitting a new issue, we recommend you read our guide to <a href='http://groovy-lang.org/reporting-issues.html'>reporting issues</a></p><p><button type='button' class='btn btn-default' onclick='window.location.href="https://issues.apache.org/jira/browse/GROOVY"'>Report an issue</button></p><hr class='divider'/><a name='blogging'></a><h2>Writing a blog post</h2><p> |
| Groovy has a lot of great features that some folks have never heard of. |
| Why not write an interesting post about your favourite feature. You can |
| use your own blogging platform or create a pull request for a new post in the <a href='https://github.com/apache/groovy-website/tree/asf-site/site/src/site/blog'>blog part</a> of our website which are published onto our own <a href='https://groovy.apache.org/blog'>blogging site</a>.</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='http://groovy-lang.org/single-page-documentation.html'>reference documentation</a> covering the language specification, the user guides, getting started, and more.</li><li>the <a href='http://groovy-lang.org/api.html'>GroovyDoc APIs</a> documenting the classes of the Groovy code base</li><li>the <a href='http://groovy-lang.org/gdk.html'>Groovy GDK</a> documentation, explaining how Groovy enriches the JDK APIs</li><li>this <a href='https://github.com/apache/groovy-website'>website</a></li></ul><p>To contribute to the Groovy reference documentation, this <a href='http://blog.cacoethes.co.uk/groovyandgrails/contributing-to-the-groovy-documentation'>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='https://github.com/apache/groovy-website'>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='https://issues.apache.org/jira/secure/IssueNavigator%21executeAdvanced.jspa?jqlQuery=project%3DGROOVY+and+labels+%3D+contrib+AND+resolution%3DUnresolved&runQuery=true&clear=true'>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='http://groovy-lang.org/mailing-lists.html'>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='http://git-scm.com/'>git</a> and you should have an account on <a href='https://github.com/'>Github</a> to be able to create <a href='https://help.github.com/articles/creating-a-pull-request'>pull requests</a> with your changes.</p><p>Please fork <a href='https://github.com/apache/groovy'>https://github.com/apache/groovy</a> and create a local clone of your fork as explained in <a href='https://help.github.com/articles/fork-a-repo/'>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 user.name "YOUR NAME" |
| git config --global user.email "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='http://melix.github.io/blog/2014/06/contribute-groovy-ide.html'>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='https://github.com/apache/groovy/blob/master/README.adoc'>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='https://help.github.com/articles/creating-a-pull-request'>pull request</a></li></ul></article><hr class='divider'/><h2>Donating to Friends of Groovy Open Collective</h2><p> |
| As an independent initiative, members of the broader Groovy community have set up an open collective for Groovy: |
| <a href='https://opencollective.com/friends-of-groovy'>Friends of Groovy Open Collective</a> |
| This initiative is designed to complement the Apache project and the many contributions we get from our great community and supporters. |
| </p><hr class='divider'/><h2>Build status</h2><p>The Groovy sources are tested thanks to our <a href='buildstatus.html'>continuous integration server</a>.</p></div></div></section></div><footer id='footer'> |
| <div class='row'> |
| <div class='colset-3-footer'> |
| <div class='col-1'> |
| <h1>Groovy</h1><ul> |
| <li><a href='https://groovy-lang.org/learn.html'>Learn</a></li><li><a href='https://groovy-lang.org/documentation.html'>Documentation</a></li><li><a href='/download.html'>Download</a></li><li><a href='https://groovy-lang.org/support.html'>Support</a></li><li><a href='/'>Contribute</a></li><li><a href='https://groovy-lang.org/ecosystem.html'>Ecosystem</a></li><li><a href='/blog'>Blog posts</a></li><li><a href='https://groovy.apache.org/events.html'></a></li> |
| </ul> |
| </div><div class='col-2'> |
| <h1>About</h1><ul> |
| <li><a href='https://github.com/apache/groovy'>Source code</a></li><li><a href='https://groovy-lang.org/security.html'>Security</a></li><li><a href='https://groovy-lang.org/learn.html#books'>Books</a></li><li><a href='https://groovy-lang.org/thanks.html'>Thanks</a></li><li><a href='http://www.apache.org/foundation/sponsorship.html'>Sponsorship</a></li><li><a href='https://groovy-lang.org/faq.html'>FAQ</a></li><li><a href='https://groovy-lang.org/search.html'>Search</a></li> |
| </ul> |
| </div><div class='col-3'> |
| <h1>Socialize</h1><ul> |
| <li><a href='https://groovy-lang.org/mailing-lists.html'>Discuss on the mailing-list</a></li><li><a href='https://twitter.com/ApacheGroovy'>Groovy on Twitter</a></li><li><a href='https://groovy-lang.org/events.html'>Events and conferences</a></li><li><a href='https://github.com/apache/groovy'>Source code on GitHub</a></li><li><a href='https://groovy-lang.org/reporting-issues.html'>Report issues in Jira</a></li><li><a href='http://stackoverflow.com/questions/tagged/groovy'>Stack Overflow questions</a></li><li><a href='http://groovycommunity.com/'>Slack Community</a></li> |
| </ul> |
| </div><div class='col-right'> |
| <p> |
| The Groovy programming language is supported by the <a href='http://www.apache.org'>Apache Software Foundation</a> and the Groovy community. |
| </p><div text-align='right'> |
| <img src='img/asf_logo.png' title='The Apache Software Foundation' alt='The Apache Software Foundation' style='width:60%'/> |
| </div><p>Apache® and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p> |
| </div> |
| </div><div class='clearfix'>© 2003-2023 the Apache Groovy project — Groovy is Open Source: <a href='http://www.apache.org/licenses/LICENSE-2.0.html' alt='Apache 2 License'>license</a>, <a href='https://privacy.apache.org/policies/privacy-policy-public.html'>privacy policy</a>.</div> |
| </div> |
| </footer></div> |
| </div> |
| </div> |
| </div> |
| </div><script src='js/vendor/jquery-1.10.2.min.js' defer></script><script src='js/vendor/classie.js' defer></script><script src='js/vendor/bootstrap.js' defer></script><script src='js/vendor/sidebarEffects.js' defer></script><script src='js/vendor/modernizr-2.6.2.min.js' defer></script><script src='js/plugins.js' defer></script><script> |
| (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ |
| (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), |
| m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) |
| })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); |
| |
| ga('create', 'UA-257558-10', 'auto'); |
| ga('send', 'pageview'); |
| </script> |
| </body></html> |