How do I get started with GITHUB?

Permalink 1 user found helpful
I'd just like a quick run down - e.g. create a GITHUB account, download "xxx app" (if required) for version control, install a apache locally and copy the current 5.7 files, follow coding/commenting conventions here "xxx", etc.

I'd love to help out in some way but I have never used GITHUB, never contributed to an opensource project before... closest thing would have been working in an internal team maintaining Internet/Intranet sites using Dreamwaver, ColdFusion & subversion.

I've got web programming experience (got an IT degree and majored in Software Engineering, some experience with PHP - I know how to read docs :) Nowadays I just mostly do occasional frontend coding and mod existing c5 addons (usually only customing templates/views). So I figure I could help with some of the skinning tasks for 5.7

Cheers :)

malkau
 
Job replied on at Permalink Reply
Job
What OS?
malkau replied on at Permalink Reply
malkau
windows 7
thanks!
exchangecore replied on at Permalink Best Answer Reply
exchangecore
EDIT!!!: I have since the time of this post created a blog article that I felt should be a part of the selected answer.
https://www.exchangecore.com/blog/contributing-concrete5-github/...


Here's kind of a quick checklist for github:

1. Install git-scm (git-scm.com)
2. Create a GitHub account (github.com)
3. Create an SSH key on your computer and attach it to your github account. This allows github to authenticate from the git program to submit your changes without (or with if you so choose) requring you to enter your password for every single push from your computer. (https://help.github.com/articles/generating-ssh-keys)
4. Fork the Concrete5 repository on github
5. Clone your forked repository to your local computer
6. Make changes on your local computer, commit the changes, and push your changes back up to your forked repository / branch
7. When ready, create a Pull request from your fork branch to the Concrete5.7 repository
8. Wait for andy (or whomever) to accept the pull request
9. After it has been "Merged" with the main branch you are safe to delete your forked branch

If you are looking for a GUI tool to help out with this that's free SourceTree is a pretty good one that's great when you're first learning. Another comment I'll make is that when you "Fork" a repository it stays forked at that instance in time when you forked it. You will need to occasionally "rebase" your forked master branch to pull in updates fro the 5.7 repository.

Final piece of advice, when you fork it will create a Master branch for you. However, when you create a Pull request it will continue to add commits to it as you make more changes. For example say you want to put in a request to change the statistics dashboard page. Say also that you made those changes to the master branch. Now you go on to make changes to the image slider block. If you commit those changes to your master branch, they will automatically be added to the pull request that already exist for your statistics dashboard page changes.This is not ideal as it makes it hard to separate out what each pull request is for. Instead here's what you should do: Create a new branch, based off of your forked master branch, for every new issue you are working on. Then create separate pull requests for each branch.


A lot to take in and i'm by no means a great instructor and have only been using git for a relatively short time myself, but hopefully this gets you started. If you need additional help with this you should hit up the #concrete5 IRC channel sometime and maybe find someone to help you more in there (kiwiirc.com/client). P.S. Seems overwhelming and exhaustive now but I promise it gets pretty easy after you've gone through the process a few times.
malkau replied on at Permalink Reply
malkau
Thanks so much for that... it is a bit overwhelming but I am keen to give it a go.

Cheers again!
exchangecore replied on at Permalink Reply
exchangecore
For those who find this and go looking for some more detailed help, I've written a blog post on how to get started specific to the Concrete5.7 repository.

Hope some find this helpful:
https://www.exchangecore.com/blog/contributing-concrete5-github/...
JohntheFish replied on at Permalink Reply
JohntheFish
Brilliant. This howto has been needed for so long. You deserve a massive karma bonus for writing it in such detail.
exchangecore replied on at Permalink Reply
exchangecore
Thanks John, it always feels good to know our work is appreciated. What with 5.7 being largely over on github now, I thought it would be beneficial for those who have no idea where to begin to have something to guide them. I figure a few hours of my time has got to be worth the tens of hours (or maybe more) it will hopefully help newcomers save.

If something is incomplete / missing please feel free to shoot me a PM. Working on getting a lightbox on there so some of the larger images are a little easier to view in a browser.