Contributions are welcome to all Apache Accumulo repositories. While most contributions are code, there are other ways to contribute to Accumulo:
Contributions are reviewed (via GitHub pull requests) by the community before being merged by a committer.
This document provides basic instructions for contributing to Accumulo. If you are looking for more information, check out the more comprehensive contributor guide.
Accumulo uses GitHub issues to track bugs and features. Each git repository has its own issues. In GitHub pull request are issues, therefore creating an issue before a pull request is optional. If unsure whether to start with an issue or pull request, then create an issue. If you need help finding an issue to work on, check out the open issues labeled ‘helpwanted’ or contact us.
Accumulo previously used [JIRA], but is now transitioning to GitHub issues. All new issues should be opened using GitHub. When working an existing JIRA issue, please do the following :
Eventually JIRA will be transitioned to a read-only state for reference. For finding issues to work, there may still be open issues labeled for newbies in JIRA.
Labels, such as bug
, enhancement
, and duplicate
, are used to descriptively organize issues and pull requests. Issues labeled with blocker
indicate that the developers have determined that the issue must be fixed prior to a release (to be used in conjunction with a version-specific project board; see the next section for information on project boards).
Currently only Accumulo committers can set labels. If you think a label should be set, comment on the issue and someone will help.
Project boards (also “projects”) are used to track the status of issues and pull requests for a specific milestone. Projects with names such as 2.1.0
, and 1.9.2
are used for tracking issues associated with a particular release and release planning. These are set up as basic Kanban boards with automation, with To do
, In progress
, and Done
statuses. These projects are marked as “closed” when the version indicated is released. Other projects may exist for miscellaneous puposes, such as tracking multiple issues related to a larger effort. These projects will be named appropriate to indicate their purpose.
Committers manage the project boards. If you need help with a project board or have questions, contact the developers using the link at the top of this page.
Contributions can be made to the following repositories. While the general contribution workflow is described below, repositories have special instructions in their CONTRIBUTING.md
file which can be viewed by clicking on contribute
in the Links column below.
Repository | Links | Description |
---|---|---|
Accumulo | Contribute Issues | Core Project |
Accumulo Website | Contribute Issues | Source for this website |
Accumulo Examples | Contribute Issues | Accumulo example code |
Accumulo Testing | Contribute Issues | Accumulo test suites such as continuous ingest and random walk |
Accumulo Docker | Contribute Issues | Source for Accumulo Docker image |
Accumulo Wikisearch | Contribute Issues | Accumulo example application that indexes and queries Wikipedia data |
git checkout -b accumulo-4321
CONTRIBUTING.md
file.git push origin accumulo-4321
[WIP]
in the subject.Feel free to use any editor when contributing Accumulo. If you are looking for a recommendation, many Accumulo developers use [IntelliJ][intellij] or [Eclipse][eclipse]. Below are some basic instructions to help you get started.
git clone https://github.com/apache/accumulo.git
Eclipse-Accumulo-Codestyle.xml
from Accumulo's [contrib][accumulo-contrib] directoryFile
> Settings
> Code Style
and clicking on cog wheelgit clone https://github.com/apache/accumulo.git
Preferences
> Java
> Code Style
> Formatter
and import the Eclipse-Accumulo-Codestyle.xml
downloaded in the previous step.Preferences
> Java
> Code Style
> Code Templates
and import the Eclipse-Accumulo-Template.xml
. Make sure to check the “Automatically add comments” box. This template adds the ASF header and so on for new code.For more details, see the contributor guide.
[manual]: {{ site.baseurl }}/{{ site.latest_minor_release }}/accumulo_user_manual.html [JIRA]: https://issues.apache.org/jira/browse/ACCUMULO [GitHub]: https://github.com/apache/accumulo/pulls [Jenkins]: https://builds.apache.org/view/A/view/Accumulo [TravisCI]: https://travis-ci.org/apache/accumulo [making]: {{ “/contributor/making-release” | relative_url }} [verifying]: {{ “/contributor/verifying-release” | relative_url }} [Fork]: https://help.github.com/articles/fork-a-repo/ [Pull Request]: https://help.github.com/articles/about-pull-requests/ [Push]: https://help.github.com/articles/pushing-to-a-remote/ [clone]: https://help.github.com/articles/cloning-a-repository/ [srcheaders]: https://www.apache.org/legal/src-headers [styles]: https://gitbox.apache.org/repos/asf?p=accumulo.git;a=tree;f=contrib;hb=HEAD [accumulo-readme]: https://github.com/apache/accumulo/blob/master/README.md#api [semver]: http://semver.org/spec/v2.0.0.html [eclipse]: https://www.eclipse.org/ [eclipse-import]: https://stackoverflow.com/questions/2061094/importing-maven-project-into-eclipse [intellij]: https://www.jetbrains.com/idea/ [intellij-import]: https://www.jetbrains.com/help/idea/maven.html#maven_import_project_start [accumulo-contrib]: https://github.com/apache/accumulo/tree/master/contrib [messages]: https://chris.beams.io/posts/git-commit/ [squash-tutorial]: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html [squash-stack]: https://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using-git