An Umbraco Contribution Experience with Candid Contributions
It all started in 2010 in my first home, sunny Turkey, when I wrote my very own experimental CMS project. I moved to my second home, the not so sunny UK, in 2014 to start working at Felinesoft. There I learned about Umbraco for the first time and ever since it has become an important part of my daily job & personal life and more importantly my passion.
I follow all sorts of Umbraco related news as much as I can, attend Umbraco meetups and conferences. At work; I write wikis, do lunch & learns to share my knowledge about anything that is worth sharing. I write blogs about my development experiences to reach a wider community, also try to answer questions on programming forums and Stack Overflow as much as I can. I do all these things to help others and my future self. Giving back to people leads to a much deeper understanding and learning, eventually making me a more successful Developer and happier person. So I think it is fair to say that I'm very passionate about sharing my knowledge & contributing, and yet it took me a while to understand how I could contribute to Umbraco properly. For this; I'm thankful to Candid Contributions, namely Lotte Pitcher, Emma Burstow, Carole Rennie Logan, Laura Weatherhead and their wonderful event the CanCon Umbrackathon, which they hosted during the annual Hacktober fest challenge.
The CanCon Umbrackathon
This is a 2-day Umbraco event that took place during the annual Hacktober fest challenge which is a month-long celebration of all things open source. The general idea with the CanCon hackathon is to help people come together to contribute to Umbraco while learning about Umbraco and having fun. This event was also a golden opportunity to ask questions to fellow Umbracians, including people from Umbraco HQ, like Sebastiaan Janssen.
The CanCon hackathon started with a warm "Welcome", followed by "Getting started with contributing" by Candid Contributions Podcast Team, "Getting started with building packages" by the Umbraco Package Team and all day long learning, hacking activities with a lot of games and fun! The following day was similar to the previous day which was great for people like myself who couldn't follow everything the previous day due a full-time job (and looking after children), and here are some tips to help you get your hands dirty and start contributing to Umbraco!
Get set contribute!
Here are the steps that you should follow to complete your setup and start contributing to the Umbraco source code;
- Login to github, if you don't have a github account then sign up.
- Find the Umbraco CMS project on github and fork it - simply click on the Fork icon on this page to create your own copy of this project.
- Please note; if you have previously forked an older version of the Umbraco CMS project, then you might need to delete the old project from your github repository and fork the latest version again, otherwise you might not be able to see the correct branches, including v8/contrib branch.
- For higher resolution screenshot images, please click here.
- Check that you are on the correct branch - for my case it was v8/contrib.
- Clone your fork to get the code to your computer, browse the src folder of your local Umbraco-CMS project and open the solution in Visual Studio.
git clone email@example.com:NurhakKaya/Umbraco-CMS.git
- Build the solution in Visual Studio. First time build will load a lot of nuget packages, so be patient as this takes some time.
- Once the build is successful, then open the Task Runner Explorer window. At first this might say; "Failed to load" and you might have to try building the project again or restart your Visual Studio. See that Gulpfile.js is loaded correctly with the following tasks, and then hit on the build task. Wait for task to complete and you should see a screen similar to the one below;
- At this point, you should be ready to run the project. Hit Ctrl+F5 to start the web project, follow the directions on the following screen to get a working Umbraco solution up and running. Login to Umbraco and see that things look ok.
- You are all set! It is time to go and find the open Umbraco issues that you think you can fix on github and start working on them!
- Issues that are tagged as community/up-for-grabs are the best candidates for you as an Umbraco community member.
- While choosing your issue, check the notes of that issue to make sure nobody has started working on it.
- Once you are ready to start working on an issue, first add a note to the issue, so that other Umbraco community members will know somebody has already started working on it. Then create a new bugfix branch locally and start working on it.
- Please note; creating a new separate Umbraco project with some very basic templates can be very handy to debug some problems. You can add code references to this project directly from your local Umbraco source code and debug & fix things easier.
- Do your code changes and test them.
- Commit your changes and push them.
- Create a new Pull Request from your bugfix branch into v8/contrib branch on github for your changes. Make sure that there are no merge problems, see that changes between 2 branches are how they should be. Add a title and description for your PR and create the pull request!
- Congratulations on completing your work on your issue! It is now time for somebody from Umbraco HQ or the Umbraco Community to take a look at your PR and if all is good, then they will approve your PR and close your issue after merging your changes into the parent branch (for our case it is v8/contrib). Alternatively, they might ask for some additional changes or refuse your changes if things are not right. On this day I spent some time for this issue and I'm looking forward to working on more Umbraco issues.
- For Hacktoberfest contributions, a message similar to the following one can be used while creating PRs;
I'm Nurhak and I'm taking some time to triage some issues on the Umbraco CMS issue tracker as part of my Hacktoberfest contribution. I will assess the issue reported, maybe ask some questions if I need more information and ultimately decide whether the issue should be progressed. If so, I'll label and if it has been fixed in a later release or is no longer relevant, I'll close, leaving a friendly message explaining why.
This year's CanCon Umbrackathon was also great to learn about how to create Umbraco packages. Richard Ockerby, Nik Rimington and Jesper Manytzhusen showed the workshop attendees how to use UmbPack and follow some standard steps to create an Umbraco package successfully!
There are many ways to contribute to Umbraco project, and one way is helping to fix the issues. While fixing these issues you might need the Umbraco source code and your local Umbraco solution up and running quickly. Hopefully my article will help you with this and will also remind you of the friendly Umbraco community and their wonderful events, like the CanCon Umbrackathon.
Nurhak is on Twitter as @nurhakkaya14