Getting started with Apache Allura and Contribution Guide

Image for post
Image for post

Open source communities are working with multiple projects. Therefore requirement of having a methodology for proper management of works is needed. Here are several ways that are used by many organizations in order to manage their works

  • Managing source code and bug tracking (with related discussions) in Github and doing somewhat long discussions in a Google forum.
  • Using Github, Google forum and Slack or Gitter for quick/real-time discussions.

And there are other several methodologies too. like JIRA based approaches or using project management tool like Trello.

What is a Forge?

Image for post
Image for post

In FOSS development communities, a forge is a web-based collaborative software platform for both developing and sharing computer applications. A forge platform is generally able to host multiple independent projects. — wikipedia

Forge is kind of software that can be used to manage open source projects. Also those software projects which are hosted inside a Forge are open for the community. Forge software comes with these features in general.

General Features of a Forge

  • Managing multiple projects
  • Source code management features (working with Git, svn also merge requests, forks etc.)
  • Forum or a mailing list or both integrated approach for open discussions
  • Wiki for managing documentation
  • Bug tracking system

Apache Allura

Apache Allura is an open source implementation of a software forge, a web site that manages source code repositories, bug reports, discussions, wiki pages, blogs, and more for any number of individual projects — allura.apache.org

Apache Allura is a downloadable forge. It means you will be able to setup Allura on-premise (on your own servers) or on your third party cloud servers. Indeed Apache Allura is coming with all the required features such as Wikis, SCM support, forum + mailing enabled, Blog, Bug tracker and many other useful features.

Image for post
Image for post
Apache Allura Git module

Install Apache Allura today!

Apache Allura can be installed and configured using two different ways. If you are using Docker you can go with this easy way. Otherwise you need to go on bit long way

Apache Allura internals

Apache allura is a web application. Back-end is written in Python with Turbo Gears web application framework. Allura uses Mongodb as database service and ORM is ming library. Front-end uses technologies like JQuery, Reactjs and template engine is awesome Jinja. Furthermore for search indexing it uses Apache Solr.

Contribution Guide

Apache Allura is an open source Forge. Therefore anyone from the world can contribute this project 😊.

If you like to contribute this project, become a user first. Configure an Allura instance in local or on cloud. If you are an open source enthusiast or lead who is maintaining multiple open source projects, give a try with Apache Allura.

Subscribe the mailing list and be updated with latest discussions. And of course suggest your ideas too in email threads. Thus if you got an issue or a bug you can open a ticket explaining the issue. Community will resolve the ticket by replying or doing some fixes to source.

Writing Codes for Apache Allura

If you like to contribute this project by writing code. You may begin with doing some patches(Bug fixes), Also keep your eye on bug tracker. All the information you need can be found here

Blog , Wiki like modules are install-able modules for each projects. Therefore multiple wiki or blog like modules can be added to a single project.

Code Modules

Apache Allura source structure is well designed. Therefore it is very easy to extend or to add some fixes.

Image for post
Image for post
  • 📁Allura — site admin, filesystem like general core sources.
  • 📁 ForgeActivity — General activity log module
  • 📁 ForgeBlog — Blog module
  • 📁 ForgeChat — in site messaging module
  • 📁 ForgeDiscussion — Forum module
  • 📁 ForgeGit — Git repository support module
  • 📁 ForgeImporters — Importing from Github, Trac or Allura
  • 📁 ForgeLink — External links module
  • 📁 ForgeSVN — Subversion repository support module
  • 📁ForgeTracker — Ticket management module
  • 📁 ForgeUserStats — User statistics module
  • 📁ForgeWiki — Wiki module

For each module there are ..

Image for post
Image for post
  • Controllers — exposed http endpoints
  • Models — Database mapped classes with associated functions
  • nf — js and css like resources for specific module
  • Commands — background commands
  • Templates — Jinja based html templates
  • Tests — Unit tests
  • Widgets — components of a particular module

This video explains the features and internals

Conclusion

Allura is a project by Apache. Therefore the licensing of used libraries and software architecture is well managed. Apache Allura can be used for large scale open source organizations. Thus for the feature requests and issue reporting you will use Allura bug tracker. Great thing is Apache Allura is an uses self hosted instance of Apache Allura.

Image for post
Image for post

Happy coding!

Written by

Software Engineer at 99x | Apache PMC member | Open Source Contributor (Author of Neutralinojs) | Technical Writer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store