Contributing to Umbraco.
A couple of months ago (over 4 months now!) at the Edinburgh Umbraco Users Group, a conversation started about contributing to the Umbraco CMS. This conversation then moved on to things people felt could be improved in the backoffice of Umbraco.
At the time, a new version of Umbraco had just been released and the document type icon picker had been given some more colours.
As you can see, there are a lot of colours to choose from! One of the members of the meetup suggested the dropdown could maybe be replaced with a colour picker. If my memory is correct, I think it was either Paul or Marc from Uskinned that made the suggestion.
I thought it sounded like a good idea and asked if they would mind if I made a Pull Request for such a feature.
That night, I raised an issue on the Umbraco issue tracker. You log in to the issues tracker, create your issue and then one of two things can happen. The first is someone sees your issue and fixes it or, you fix it yourself and create a Pull Request.
My original issue: http://issues.umbraco.org/issue/U4-11168
I decided to try and fix the issue myself.
I started by just changing the CSS on the dropdown menu text and making the words the colour they were describing. e.g. Orange
As you will see from the conversation that followed, although the idea was there, the implementation wasn't as good as it could be.
What happened next was unexpected. The Umbraco community took hold of the PR and added lots of great feedback. You can see all the feedback on the GitHub Pull Request
Over the months I made tweaks, broke things, got help from the community, fixed things, submitted changes and finally I got the Pull Request to a stage where it was merged in to the core code! I'm not sure what version of Umbraco the final solution will appear in but I can't wait to see it.
This is what it eventually became :
I think in the final version, I changed the order of the colours but it's pretty much the same as above.
Due to me making a complete mess of some of the merging it was suggested that I make a fresh PR and start again, this wasn't so bad as I was familiar with what I needed to do. I did miss a couple of the changes but again, the community and PR team were on hand to help.
I love the final comment by Sebastiaan - I think we were both glad to see the back of this PR.
I've learned so much by doing this PR and the community has been amazing. Really supportive and patient with me. #h5yr (High 5, you rock!)
If you fancy contributing to the core, I highly recommend it! It's not as scary or as difficult as I first imagined.
This is how I got started:
- Either find an issue on the issue tracker that is "up for grabs" or create your own issue.
- If you create your own issue, it's probably worth logging in to Gitter and checking with the PR team that the issue is worth spending your time doing. It might be someone has already fixed the issue and it's waiting to be merged in to the Core.
- Follow these instructions on how to get your hands on the source code for Umbraco.
- Once you have the code working on your computer, it can be a bit daunting trying to work out what you need to change. What I did was, I logged in to the backoffice then used the Chrome Developer Tools and inspected an element, found a unique class name, then searched the visual studio solution for that unique class name. That then at least gave me a place to start from.
- Don't be afraid of asking questions or help. I got tons of help with my PR, I couldn't have done it on my own.
- Don't get put off if the issue becomes harder than you initial thought it would be. Small steps will lead to success, eventually!
I just want to thank some people who contributed in one way or another to my first ever Pull Request.
and everyone on twitter who gave support and feedback.
Where to find Owain