Getting started with Apache Allura and Contribution Guide
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?
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 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.
Install Apache Allura today!
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.
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.
Apache Allura source structure is well designed. Therefore it is very easy to extend or to add some fixes.
- 📁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 ..
- 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
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.