Forums | Mahara Community

Developers /
How open source is Mahara?


Andrew Langford's profile picture
Posts: 23

09 May 2011, 12:59

Gregor,

 

I'd love to learn how to be a developer for Mahara - however I am complete beginner - I don't know what I need to know in order to become competent - what steps would you recommend? ...

 

And thanks for your prolific output described here ...

Gregor Anželj's profile picture
Posts: 349

09 May 2011, 14:51

Since there is not much documentation, I would recommend that you start playing with blocktypes - they are easiest to learn/modify... Artefact are a bit more complex.

You need to learn PHP (but I assume you already know that), especially arrays. Mahara architecture utilize arrays a lot (and also Pieforms, that you need to learn/understand to create/modify forms... see http://pieforms.sourceforge.net/doc/html/ and "learn it by heart" Wink).

Regards,
Gregor

Gregor Anželj's profile picture
Posts: 349

11 May 2011, 1:52

Wrote "Tutorial: Creating blocktype plugin for Mahara" to show how to make a very basic blocktype plugin for Mahara.

Tutorial is available at http://mahara.org/view/view.php?id=39443

Feedback appreciated.

Regards,
Gregor

Kristina Hoeppner's profile picture
Posts: 4863

09 May 2011, 15:45

Hello Gregor,

Curiosity and selfish reasons are, I think, the motivator for a lot of people who use open source software. You want to create something, building on already existing code so that you don't re-invent the wheel and thus make the software better - either by contributing to the core functionality or by writing plugins.

Cheers

Kristina

anonymous profile picture
Account deleted
Posts: 131

10 May 2011, 7:13

Interesting discussion, and I think Marielle raises some useful points.

I would like to see a 'better' plugins page, a central catalogue of plugins which users can contribute to, with a page for each plugin. Wordpress is a good example here. This could be a good way to raise interest in Mahara and extend the user community.

There is nothing to stop someone outside of the Catalyst team from setting this up of course... except time and hosting costs.

Mike

anonymous profile picture
Account deleted
Posts: 30

10 May 2011, 18:15

Hi Mike,

Great suggestion. I have provided a crude example of a gallery generated from a google spreadsheet. Very lightweight, strictly client-side.

http://dl.dropbox.com/u/24333779/mahara/pluginGallery/mahara.html

A zip with the code can be found at:

http://dl.dropbox.com/u/24333779/mahara/pluginGallery.zip

The spreadsheet is available at:

https://spreadsheets0.google.com/spreadsheet/ccc?hl=en&key=t7DJCMZp50epMEoyRiqKbNw&hl=en#gid=0

It may be required to not allow public editing if the link to the spreadsheet is published on a site that a search robot can parse, as spam can really be a pain to manage. But at least, the editing rights can be easily be shared by as many who make the request for it. 

Hosting, as per above, this could be done on a free dropbox account. The best place to publish plugin information remains the Mahara wiki. That's where any newcommer will look. But if you feel that the wiki format restricts you too much, it is always possible to add a dedicated page with extended plugin information on a dedicated dropbox account (up to 2GB). On dropbox, folders can easily be shared between different users.

François Marier's profile picture
Posts: 411

10 May 2011, 18:24

Hi Mike,

Perhaps we could use the "mahara-contrib" group that's on Launchpad:

  https://launchpad.net/mahara-contrib

We [1] can create a new sub-project for each contrib plugin and the maintainer of that plugin can then customize their homepage, make use of the integrated bug tracker and host tarballs/zipfiles.

Here's the page for Ruslan's contrib plugin for example:

  https://launchpad.net/mahara-auth-janrain

Now that's for the infrastructure side of things (code, releases, bugs, etc.). I think you have a very good point with respect to marketing/showcasing contrib plugins better.

If someone has good ideas (sounds like Marielle has some good thoughts about it already) and wants to make this happen, that would be awesome!

Cheers,

Francois


[1] Anybody in one of these teams can create a sub-project:

https://launchpad.net/~mahara-contributors/+members

https://launchpad.net/~mahara-core/+members

anonymous profile picture
Account deleted
Posts: 30

10 May 2011, 20:11

Launchpad is good for managing team work and collaboration on projects. It really is not adequate for end-users who just want to discover what plugins exist, download it and give it a try.

get a copy of the branch using the command:
bzr branch lp:mahara-adminlang

Okey-dokey... I will just move on and not try that! (if I did try that in my terminal window, I will get "bzr: command not found"). Launchpad is really not user friendly for the occasional user. None of the current contribution had any bug report or question attached to them. It also adds to much overhead for mini-projects like plugins. Not clear that single-author plugin project would benefit much from launchpad. 

Github offers similar functionalities but is far more user friendly. There is little overhead if any to using github when writing plugins. You write your code, provide the expected readme file, once configured, you run git push origin master... and that's it. Done!  Launchpad favours a model that invite persons to contribute to an existing project rather than reinvent the wheel. Github favours one where you can fork. Use another person work as a starting point for your own module. More appropriate for plugins. FlickrFeed plugin now available for forking - https://github.com/widged/MaharaFlickrfeed (will only work with Mahara 1.4)

It's a better strategy to provide multiple paths, some of them that allow people to give it a shot as a complete newbie... and then help them progress to the level where they feel comfortable joining he launchpad "contributor list" (which looks frighteningly official to most of us).

It's all about providing a route for persons to become dedicated contributors instead of asking them to make that commitment from the start Wink.

I am personally not interested in joining launchpad. I am uncomfortable with Mahara business model. Instead of selling services and products to end-users for a premium as many OSS projects do, it relies on MoE commissioned work to sustain development. This creates a conflict of interest... Once I start writing Mahara plugins, I contribute to Mahara, but compete with Catalyst. Catalyst best interest is to do exactly what they do at the moment... centralize and control. It is healthier to acknowledge that a conflict of interest exists and promote a decentralized management of plugins. 

Yet, github is not very useful when it comes give better visibility to non developers. A plugin gallery ala wordpress, jquery, drupal, etc., as Mike suggested, would do better. 

anonymous profile picture
Account deleted
Posts: 30

10 May 2011, 20:20

Added as well - https://github.com/widged/MaharaSocialButtons

Will work with Mahara 1.3+

François Marier's profile picture
Posts: 411

10 May 2011, 22:23

It's the first time I see someone praise git for its user-friendliness :) I'm glad you like, I like it too!

By the way, the bzr repo that you point to is just an automatic import that Launchpad does. The master repository for the adminlang patch sits in git:

  https://gitorious.org/mahara-contrib/patch-adminlang

like many other contrib plugins:

  https://gitorious.org/mahara-contrib

But of course, you can use whatever you want to host your plugins. We don't want to control that at all, we'll gladly link to wherever your plugins lie.

As for "competing with Catalyst", please do :) The more plugins are out there, the better it is for the community!

Cheers,

Francois