14 November 2023

How to turn your idea into a new Moodle Feature

Davo Smith

Davo Smith

Senior Developer

The steps you need to follow to turn your idea for a new Moodle feature into reality.

You’ve got an amazing idea for a brand new feature for Moodle, an improvement to an existing feature or a fix for a bug. So, how do you take your idea and make it a feature or fix that appears in the next Moodle release?

Here at Synergy Learning, we’ve been Moodle Partners since 2005. In the years since, we’ve made scores of contributions to the Moodle code. It’s one of the great benefits of Moodle being a piece of open-source software with such an activity community around it.

Typically, though not always, these contributions come about when we spot — or a customer requests — a new feature that one of our customers needs. If we think it will benefit other Moodle users, we will share it with the community.

So, how can you do something similar and have your big idea become a new Moodle feature? We’d recommend following these steps.

Step 1. Find out what others think

Post on the Moodle.org forums with a clear description of your idea. Discuss it with other Moodle users. Do they agree that it’s a great idea? Would it be helpful? Is there a better way of achieving what you’ve got in mind?

Step 2. Open a ticket on tracker.moodle.org

Create a Moodle Tracker ticket that describes exactly how your feature should work and why it’s helpful. Add screenshots and, if it’s a bug fix, give step-by-step instructions on how to see the problem. If you’ve never posted before, ‘watch’ or comment on another ticket first to be able to create your first ticket.

Step 3. Get a developer involved

It’s time to make your idea a reality and that means writing the code. This could mean:

  • Having the coding skills to write it yourself
  • Getting Moodle HQ to take it on (encouraging people to ‘Vote for the issue’ on the ticket will generate more interest)
  • Hiring a Moodle Partner to make the code change for you

Whoever’s writing the code, any changes should match the Moodle coding guidelines and also include Behat and/or PHPUnit tests to make sure the changes keep working in future versions.

Step 4. Submit your code

When your code is submitted, automated tests are run and your code is automatically checked against Moodle coding guidelines and documentation.

Step 5. Undergo code reviews

Now it’s time for other Moodle users to check the code. Another developer will test:

  • Does it work?
  • Is the code well written?
  • Is it a sensible way to tackle the problem you’re solving?
  • Were the automated tests appropriate? 

If there are any issues, the code goes back to the developer to make the required changes. If not, it goes forward to an integration review, which involves checks being done by an experienced Moodle HQ developer. The code could go back to the developer again at this stage or move forward to…

Step 6. Integration

Once it’s approved by an experienced Moodle HQ developer, your code is added to the weekly integration build. All of Moodle’s automated tests are run to see if anything has broken. Your new feature or fix will also be manually tested to make sure it works and made available for developers to access.

Step 7. Release

Your big idea can now become part of a Moodle release. Bug fixes will be included in the next minor release, while new features or improvements will be included in the next major release. Any relevant documentation will be updated to incorporate your changes.

Want help to bring your new Moodle feature to life?

If you’re looking for a developer to help with a new Moodle feature, we’re a Moodle Premium Certified Services Provider and have been working with the platform since 2005. Just fill out the form below to discuss what you’ve got in mind.

Tags

Share

Request a Callback. It’s easy!

Whether it’s about upgrading your current platform, starting from scratch with an LMS of your choice or you need guidance on where to begin, we’ll be happy to help!

newsletter

Learning tips straight to your inbox

Keep up to date with the latest learning technologies, e-learning insight and advice on getting the best results from your learners and your platforms. Sign up to get regular email updates.