I did not do one for cloudstack-docs yet because it did not have an existing README file and I am relatively new to this documentation system and I didn't want to break something by adding a new file.
I don't mind adding a README.rst file assuming it won't cause any problems. :) Cheers, Will On Mon, May 26, 2014 at 2:07 PM, sebgoa <run...@gmail.com> wrote: > > On May 26, 2014, at 6:08 PM, Will Stevens <williamstev...@gmail.com> > wrote: > > > Thank you all for the feedback, that was very helpful. > > > > I have adjusted my steps quite a bit. Here is an overview... > > - I have removed the 'squashed' concept. I think it makes sense that > the 'default' way that people contribute is with a full history of their > changes and commit messages. I hope this does not increase the amount of > work for the people committing the pull requests, but I have not seen that > process yet. > > - I have removed the concept of 'patches' from this flow. I originally > wrote this for patching because this is how I commit to code, but this flow > is different and we should not confuse the two when documenting how to > contribute to the documentation. > > - I have done a much better job of describing why we do the different > steps and why the different pieces are important. You guys made good > comments on those aspects, so I tried to incorporate your feedback. > > - Instead of making a generic guide, I customized this guide to the > specific documentation repository. I will do an initial pull request for > this addition to the README.rst file for the 'cloudstack-docs-admin' > repository. If everyone is happy with this, I will create the equivalent > customized additions for the other README.rst files and create pull request > for them. I did this because not seeing a real URL may confuse new people > when trying to do these steps. Since this will be shown on the front page > of the GitHub repo, it makes sense that it is setup for that repo. > > > > I think that is pretty much it. I will create a pull request for the > 'cloudstack-docs-admin' repo now with what is below. If you have comments > or suggestions, please let me know and I will update the doc. > > > > Looks fine to me at a glance. > > I committed to all three repos (did not see anything for cloudstack-docs > itself). > > thanks a lot for the patch > > -sebastien > > > Cheers, > > > > Will > > > > ----- > > > > Contributing to the documentation > > ================================= > > > > Initial setup of your fork > > -------------------------- > > > > In your browser, navigate to: > https://github.com/apache/cloudstack-docs-admin > > > > Fork this repository by clicking on the 'Fork' button on the top right > hand side. The fork will happen and you will be taken to your own fork of > the repository. On the right hand side of the page of your fork, under > 'HTTPS clone URL', copy the URL to your clipboard by clicking the the > clipboard just right of the URL. > > > > On your computer, follow these steps to setup a local repository for > working on the documentation: > > > > .. code:: bash > > > > $ git clone > https://github.com/YOUR_ACCOUNT/cloudstack-docs-admin.git > > $ cd cloudstack-docs-admin > > $ git remote add upstream > https://github.com/apache/cloudstack-docs-admin > > $ git checkout master > > $ git fetch upstream > > $ git merge upstream/master > > > > > > Making changes > > -------------- > > > > It is important that you create a new branch to make changes on and that > you do not change the `master` branch (other than to pull in changes from > `upstream/master`). In this case I will assume you will be creating a > branch called `dev` to make your changes in. This `dev` branch will be > created on your local repository and will then be pushed to your forked > repository on GitHub where you will create a Pull Request for the changes > to be committed into the official documentation. > > > > It is good practice to create a new branch each time you want to > contribute to the documentation and only track the changes for that pull > request in this branch. > > > > .. code:: bash > > > > $ git checkout -b dev > > (make your changes) > > $ git add . > > $ git commit -a -m "commit message for your changes" > > > > .. note:: > > The `-b` specifies that you want to create a new branch called > `dev`. You only specify `-b` the first time because you are creating a new > branch. Once the `dev` branch exists, you can later switch to it with only > `git checkout dev`. > > > > > > Merging `upstream/master` into your `dev` branch > > ------------------------------------------------ > > > > It is important that you maintain an up-to-date `master` branch in your > local repository. This is done by merging in the `upstream/master` (the > official documentation repository) into your local repository. You will > want to do this before you start working on a feature as well as right > before you submit your changes as a pull request. You can also do this > process periodically while you work on your changes to make sure you are > working off the most recent version of the documentation. > > > > This process will do the following: > > > > #. Checkout your local `master` branch > > > > #. Synchronize your local `master` branch with the `upstream/master` so > you have all the latest changes from the official docs > > > > #. Merge the latest changes from the official docs into your `dev` > branch so it is up-to-date with the latest changes > > > > .. code:: bash > > > > $ git checkout master > > $ git fetch upstream > > $ git merge upstream/master > > $ git checkout dev > > $ git pull . master > > > > .. note:: Now your `dev` branch is up-to-date with all the recent > changes in the `upstream/master`. > > > > > > Making a pull request on GitHub to contribute your changes > > ---------------------------------------------------------- > > > > When you are happy with your changes and you want to contribute them, > you will be creating a Pull Request on GitHub to do so. This is done by > pushing your changes to your forked repository (usually called 'origin') > and then initiating a pull request. > > > > .. note:: Make sure you have merged `upstream/master` into your `dev` > branch before you do this. > > > > .. code:: bash > > > > $ git push origin master > > $ git push origin dev > > > > Now that the `dev` branch has been pushed to your GitHub repository, you > can initiate the pull request. > > > > To initiate the pull request, do the following: > > > > #. Navigate your browser to your forked repository: > https://github.com/YOUR_ACCOUNT/cloudstack-docs-admin.git > > > > #. Click the new button called 'Compare & pull request' that showed up > just above the main area in your forked repository > > > > #. Enter a good description of the work you have done and then click > 'Send pull request' > > > > If you are requested to make modifications to your proposed changes, > make the changes locally on your `dev` branch, re-push the changes and > submit the pull request again. > > > > > > Cleaning up after a successful pull request > > ------------------------------------------- > > > > Once the `dev` branch has been committed into the `upstream/master` > branch, your local `dev` branch and the `origin/dev` branch are not needed > anymore. If you want to make additional documentation changes, restart the > process with a new branch. > > > > .. note:: Make sure that your changes are in `upstream/master` before > you delete your `dev` and `origin/dev` branches! > > > > You can delete these deprecated branches with the following: > > > > .. code:: bash > > > > $ git checkout master > > $ git branch -D dev > > $ git push origin :dev > > > > > > > > On Fri, May 23, 2014 at 9:01 AM, Will Stevens <williamstev...@gmail.com> > wrote: > > All good feedback. Thanks. > > > > I will rework this on Monday and add a PR for adding it to the readmes. > > > > Thx, > > > > Will > > > > > > On Friday, May 23, 2014, Stephen Turner <stephen.tur...@citrix.com> > wrote: > > > I've not seen Phabricator, but yes, what I like about github is that > the code review is built into the source control. This makes the whole > workflow much simpler. > > > > > > -- > > > Stephen Turner > > > > > > > > > -----Original Message----- > > > From: rohityada...@gmail.com [mailto:rohityada...@gmail.com] On > Behalf Of Rohit Yadav > > > Sent: 23 May 2014 11:35 > > > To: dev@cloudstack.apache.org > > > Cc: Sebastien Goasguen; Pierre-Luc Dion > > > Subject: Re: [DOCS] Git Flow > > > > > > Hi, > > > > > > Good effort. Will you should also see this and update the wiki as > needed: > > > https://cwiki.apache.org/confluence/display/CLOUDSTACK/Git > > > > > > I would say, squashed merges are much better when you're going through > list of changes [1] instead of having a branch based workflow, > reverting/fixing/bisecting it becomes much easier. I would recommend > Stephen and others to checkout Phabricator's pre and post code reviewing > and their CLI tool arcanist which IMO give a much better workflow. > > > > > > Right now it's too much pain for a contributor to create a patch, > upload to reviewboard, get it reviewed and then for the committer to go see > RB, test/review patch and merge it. This is all manual work. Pull request > is one good way to solve it at the cost of complicating git trees/graphs, > emailing patch directly to ML can be another (historically worked?) and > using something like Phabricator (that can be hosted on ASF infra) is > another way as well. > > > > > > [1] See the git network/graph: git log --graph --decorate > --pretty=oneline --abbrev-commit --all > > > > > > Regards. > > > > > > > > > On Fri, May 23, 2014 at 3:20 PM, Stephen Turner > > > <stephen.tur...@citrix.com>wrote: > > > > > >> I'm not a fan of squashed merges myself, because you lose the history, > > >> which can often contain useful check-in comments. > > >> > > >> My preferred github workflow is to make a new local branch before > > >> starting any change, push that to a branch in my fork of the project > > >> on github, and then send a pull request. I don't do subsequent work on > > >> the same branch (unless the maintainer wants further changes before > > >> accepting the pull request), so I don't run into the problem where > > >> pull requests build on each other. > > >> > > >> Having said that, I'm talking about code, not documentation. There may > > >> be some reason I'm not aware of why documentation works better with a > > >> different workflow. > > >> > > >> -- > > >> Stephen Turner > > >> > > >> > > >> -----Original Message----- > > >> From: williamstev...@gmail.com [mailto:williamstev...@gmail.com] On > > >> Behalf Of Will Stevens > > >> Sent: 22 May 2014 21:36 > > >> To: dev@cloudstack.apache.org; Sebastien Goasguen; Pierre-Luc Dion > > >> Subject: [DOCS] Git Flow > > >> > > >> Hey All, > > >> In the the README.rst files in the documentation, it refers to this > > >> page if you want to contribute: > > >> http://cloudstack.apache.org/developers.html > > >> > > >> I am not sure those instructions are actually up-to-date or valid for > > >> contributing to the documentation. > > >> > > >> I originally tried to use this process ( > > >> https://help.github.com/articles/syncing-a-fork) to keep my > > >> documentation fork up-to-date with the upstream/master, but after the > > >> first pull request the commits have to be cherry-picked because the > > >> pull requests will always take everything I have committed in my fork > > >> rather than the changes since the last pull request. This got > annoying quickly. > > >> > > >> When contributing to the actual CloudStack code I used a squashed > > >> patch approach which worked very well. I have written up that flow as > > >> well as a similar flow for working with Github pull requests. > > >> > > >> I would like you to review what I have written. If you guys approve > > >> of the flow, I would like to add it to the README.rst files in the > > >> different documentation repositories to make it easier for people to > > >> contribute to the documentation. I know I found it really hard to > > >> figure out how to contribute to the documentation initially. We want > > >> to lower the bar a bit on this so more people feel comfortable > helping with the documentation. > > >> > > >> L > > > >