Skip to content

Contributor Guidelines

mikert edited this page Aug 2, 2011 · 2 revisions

How to Contribute

The Melody Community is a "do-ocracy" in which everyone is encouraged to jump in and help create the best blogging software around doing whatever it is they do best.

Whether you're Just Another Perl hacker, a rock-star designer, an Ajax/jQuery wizard, a user experience guru, a technical writer/editor, a QA maven or just someone who has an opinion about the software they love to use, you can contribute to Melody!

To the right, you'll find links to all of the ways you can start.

Spread the Word, Share the Love

You don't need to be a coder to help us with this project. The one thing everyone can do is help us spread the word by telling your friends, colleagues and contacts about Melody.

On Your Blog

If Melody is exciting or of interest to you, share it with the contacts throughout your network by writing a blog post about Melody and linking back to this site. Be sure to share with everyone why this project is exciting for you and encourage your friends to learn more.

We've even got some fun toys you can use to stir up conversation about Melody:

White Button White Button White Button White Button

Stop by the toy page for more badges, buttons and desktop wallpaper.

On Digg

If you use Digg, then digg Melody up!

On Twitter

If writing a blog post is just two much work, then consider condensing your excitement down to 140 characters via everyone's favorite micro-blogging service or simply follow @openmelody on Twitter and tell others to do the same.

On Facebook

If you use Facebook then tell your friends about Melody by updating your status, sharing a link, or becoming a fan of your new favorite blogging app.

On Delicious

If you have an account on Delicious, then what can be easier than simply bookmarking this website?

Design a Theme

What is a Theme?

A Melody theme is a collection of the pieces needed to create and publish a complete blog or website: CSS, Javascript, images, templates, and maybe some configuration options and theme metadata.

All of these pieces are pulled together into a plugin so that your theme can be easily installed. (Yes, you are technically creating a plugin.) With the Theme Manager feature you can select a different theme or develop a new one.

How Can I Get Started?

New to Melody and not familiar with the templating language? Start with An Introduction to the Melody Templating Language.

Also take a look at the selection on Training, Screencasts and Seminars.

The best way to familiarize yourself with Melody's theming framework is to read through the Melody Theme Designer Guide. Here are some pages we've found particularly helpful:

Other useful resources can be found in the Open Melody documentation wiki including:

Create a Plugin

What is a Plugin?

Melody's Plugin API provides developers with the ability to extend Melody's core platform with additional functionality. Developers use this API to create "plugins," which can be as simple as providing a template tag for designers to use in their templates, or as complex as providing an entire suite of capabilities. Plugins can also function as an entire stand alone application that runs on top of the Melody Publishing Platform.

How Can I Get Started?

The best way to get started with the Melody API is to read the Melody Developer Guide and Melody Developer Best Practices. Here are some pages we've found particularly helpful:

Feeling Generous?

Do you have a plugin that you'd like to see in the core Melody distribution?  You can donate it to the project and sleep better at night knowing that your Open Source contribution is helping the community. File a ticket and let us know!

Pitch In to Help the Project

Like any community-run project, everything that happens happens because we-the Melody Community-make it happen. And there's so much more to a successful open source project than a bunch of people writing code-oh SO much more.

If you don't feel like you have the chops to contribute on the development side or would just help in additional ways to build this project and community into something special, we've got plenty of things you can do:

  • Help us feed the hamsters powering the website
  • Be our Social Maven posting announcements to our Facebook page and Twitter account.
  • Help us write documentation for the project or the software
  • Organize a Meet-Up.
  • Design a badge for people to display on their blogs.
  • Be a wiki gnome and help us keep our wiki garden well tended
  • Answer questions people have about Melody on GetSatisfaction or anywhere else.
  • Donate money. There is no shame in dropping some change in the donation jar.

It doesn't stop there. If you don't see something you want to do, let us know what you do want to do and we'll make you the Melody Czar of That Thing!

Improve the Software

Melody is powered by a powerful cast of characters comprised of several languages and technologies. These include:

  • Core Perl code
  • Core PHP code (for dynamic rendering of published blogs)
  • Default application templates (MTML: HTML + MT template tags)
  • Application UI stylesheets (CSS)
  • Application UI Javascript
  • Blog-side themes (CSS + MTML)
  • Perl and/or PHP-based plugins
  • POD-formatted documentation
  • Perl-based automated testing

If you are familiar with any one of these, you can (and, dare we say, should!) contribute to the core Melody software. Here's how...

Download the code

In order to contribute, you have to get the source code. Although we strongly suggest that code contributors (especially frequent contributors) learn the basics of Git (the version control software we use), it's really important to us that anyone who has something to contribute be able to do so without barriers that might otherwise keep them on the sidelines.

Git-savvy

For those of you who are familiar with Git or want to be, everything you need to know to be a rock star Melody contributor can be found in the Development Start Guide.

Regardless of whether your new to all of this or an old hand, we sincerely welcome and appreciate all of your contributions and the fact that you're a part of our community.

Git-challenged

If Git gives you the willies, you can actually download one of the latest Melody developer snapshots in either tar/gzip and zip format. Once you have it downloaded and installed, you can make your changes and then get them to us using the following method:

  1. Create a patchfile by performing a recursive diff between your Melody application directory and a pristine copy of it. Don't be scared! It's actually much easier than it sounds. The nice folks in the mailing list will be happy to help you with this.
  2. Create a new case in LightHouse, attaching your patch file and any new or changed binary assets (e.g. images) to the case.
  3. In the case, explain fully what you did so that the reviewer can easily understand

And that's it! You've contributed. Congratulations and make sure to pick up your Awesome Merit Badge on the way out!

Send in Feedback and Ideas

Whether your having an issue with the software or the site or you've had a bolt of inspiration for a great feature or you simply want to tell us how much you love us, we want to hear from you. (Especially for that last thing...)

Mailing List

Google Groups - Open Melody

The Open Melody Google Group is staffed by all of the project contributors as well as a whole lot of smart and attractive Melody users. It serves as the primary channel for all discussion relating to the planning and development of Melody, the Melody Project and the Open Melody Software Group.

Get Satisfaction

Get Satisfaction - Open Melody

Like the Open Melody Google Group, GetSatisfaction is monitored by nearly all of the project contributors and many Melody users including some who may not for one reason or another subscribe to the Open Melody Google Group. More importantly, GetSatisfaction offers an incredible feature set which is specifically tailored for getting help with an issue or suggesting a fantastic idea without the overhead of a noisy mailing list. In the future after we've grown, we will most likely ask all users to use GetSatisfaction exclusively for seeking out help and contributing feature ideas.

Bugs and Ticketing System

Lighthouse

Unlike the previous two which are well suited for discussion, brainstorming, troubleshooting, corroboration of issues between multiple users, Lighthouse is an honest-to-goodness issue tracker. This is the place you go:

  • When you have have found an honest-to-goodness bug in Melody
  • When you discover an issue with the Open Melody infrastructure (website, code repo, etc)
  • When you wish to contribute a patch, plugin or implemented feature to Melody
  • As a place of absolute last resort when you simply can't get a mysterious issue solved.

We also use Lighthouse for tracking each of Melody's release milestones and as the absolutely canonical reference for what goes into every single release.

Inside our Lighthouse account you will see two projects:

  • Melody - This project covers the core source code and related files of Melody, the software.
  • Open Melody Project - This is the project which covers all issues, todos, requests related to the Open Melody Software Foundation, the Melody project, its infrastructure and associated websites.

Create a New Ticket

Lighthouse allows you to create tickets either through the web interface or via email.

If this is your first time logging a ticket with the project, please continue reading.

View and Search Melody Tickets

Tips for Creating Tickets

Lighthouse uses Markdown to help us all create nicely formatted tickets without all the fuss of HTML. See "How to format text in email." Markdown is also used for tickets submitted through the web interface.

Search First

To help us all build the best product possible, it is essential for us to collect all relevant and related information relating a problem or idea in the same place. It is also important to be respectful of everyone's time by actively working to reduce the number of redundant and duplicate tickets in the system.

So, before you file a ticket, please search the ticket system first to see if your issue has already been reported. Lighthouse's search system is pretty robust, so be sure to check out "Searching for tickets" for tips and tricks to find the ticket you might be looking for.

Clone this wiki locally