Adding initial skeleton for sphinx documentation project. Fixes T139
ClosedPublic

Authored by tflink on Apr 23 2014, 4:28 PM.

Details

Summary

This is a set of initial documentation for libtaskotron. It still needs work and more content but it's ready for initial review.

Test Plan

This is just docs, so no real test plan.

Diff Detail

Branch
feature/T139-initial-sphinx-project
Lint
No Linters Available
Unit
No Unit Test Coverage
mkrizek added inline comments.Apr 24 2014, 7:51 AM
docs/source/devguide.rst
50

The binary is called py.test, at least on my system.

54

Same as above.

kparal requested changes to this revision.Apr 24 2014, 1:38 PM

I have proposed a few changes, but apart from that, I think it looks good. Thanks for working on this.

docs/source/devguide.rst
46

are not run as often

That almost sounds like we run it only very occasionally. I think everyone should run the full functional test suite before pushing a patch. Can we rephrase it a bit? E.g. "They are often slower, but offer better test coverage."

79

Output redirection doesn't work with sudo. Use this instead:

sudo curl http://repos.fedorapeople.org/repos/tflink/phabricator/fedora-phabricator.repo -o /etc/yum.repos.d/fedora-phabricator.repo

Maybe fedora-qa-phabricator.repo would a better file name?

152

I have seen arc behaving very weirdly very often. Please recommend this command instead:

arc diff develop

Otherwise it sometimes ends up detecting wrong parent branches, creating new reviews instead of updating existing one, etc.

174

When using arc diff develop, I have never seen a problem in existing Differential Review detection. But --update obviously works as well.

For problems mentioned above, I think develop should always be a part of the command:

arc diff develop

or

arc diff develop --update DXXX
186–187

The problem with arc land is that it puts a lot of clutter into your commit message without your control and pushes immediately (you can use special cmdline options to avoid that). I think it's much better to use traditional:

git checkout develop
git merge --squash feature/TXXX
git commit
# remove all the clutter from the commit message, just keep in short summary and Differential link
git push origin

Alternatively, git flow feature finish can be used and then git commit --amend to remove the clutter.

205

arcpatch-DXXX

225–235

Would it make sense to copy this section to readme.rst in top-level directory?

Maybe fedora-qa-phabricator.repo would a better file name?

The differentiation was between fedora-phabricator and epel-phabricator, so I'm not sure fedora-qa-phabricator would make a whole lot of sense here. Then again, I did create the repo before we started patching the upstream sources. I don't see much of a benefit to changing that filename but I'm not hugely against it either.

> are not run as often
That almost sounds like we run it only very occasionally. I think everyone should run the full functional test suite before pushing a patch. Can we rephrase it a bit? E.g. "They are often slower, but offer better test coverage."

I'm usually running the unit tests at least every couple minutes when I'm writing code, so that interpretation didn't occur to me :)

re: arc land:
Yeah, suppose that there are better ways of doing that. Come to think of it, I usually use git flow feature finish myself. I don't really mind the 'noise' from arcanist, though. Do you really think that it needs to be cleaned up?

Would it make sense to copy this section to readme.rst in top-level directory?

It probably does, yes. I'll add the section.

tflink updated this revision.Apr 24 2014, 7:41 PM
  • updating to current develop branch
  • adding doc building instructions to readme, changing the title
  • fixing mistakes, clarifying unit tests and adding merge instructions to devguide to fix comments from review

I don't really mind the 'noise' from arcanist, though. Do you really think that it needs to be cleaned up?

I'm not really a fan of the Phab's idea that commit message == full review description. In my view, commit message should be concise and clear and link to the review ticket for further details. The review description should be the opposite, very detailed. Also, I usually raise some questions in it. The commit message should reflect the final decisions taken after the discussion in the review, not the questions. Look at D26, D39 or D52. Would you really like to have all of it in the commit message?

One minor annoyance is also the line length. When writing the review descriptions, I don't wrap lines, obviously, it's just a text in a web page. But if we end up with 200+ characters commit title or 500+ characters-wide lines in the commit body, it breaks the formatting in all the usual tools, like git log or git branch. Of course, it might be seen as a deficiency of those tools. But the git guidelines say that the commit title should not be longer than 50-80 chars (and vim notifies you of a longer title by showing red background for longer titles), so the situation is a bit different from e.g. email line wrapping, I think.

I can certainly live with it, but I don't think commit message should equal review request description and I personally always adjust it before pushing to origin.

docs/source/devguide.rst
192

I think that a squash merge is better, because who would like to see a number of "WIP" commits in the log? It makes operations on the history (e.g. navigating or bisecting) much harder. But that's just my personal preference.

I can certainly live with it, but I don't think commit message should equal review request description and I personally always adjust it before pushing to origin.

Any suggestions for what to use as a suggested template?

docs/source/devguide.rst
192

For that particular line, a squash merge is a really bad idea. That's just updating the feature branch from develop.

For the actual merge into develop (with the git flow feature finish), I could go both ways. Personally, I think that the bigger problem is all the meaningless "WIP" commit messages but that being said, I usually rebase my feature branches before merging them in.

Is using --squash trustworthy? I usually prefer to to my rebases by hand to make sure that it looks right before merging.

kparal added inline comments.Apr 25 2014, 4:15 PM
docs/source/devguide.rst
192

Oh, I misunderstood the line, sorry. In this case, git merge develop or git rebase develop makes sense, but the --ff-only never works, I believe. I tried locally on a trivial example and it didn't work.

193

Let's recommend this:

  1. If you want to push several commits (there are several no-nonsense logically separated commits):

If the commits are not yet to your liking, run

git rebase -i develop

and adjust the commits.
Then run

git flow feature finish TXXX-some-feature
  1. If your feature can be nicely expressed in just a single commit, run:
git flow feature finish --squash TXXX-some-feature

(This should be identical approach to manually rebasing and squashing commits.)

194

Any suggestions for what to use as a suggested template?

Before pushing, it's nice of you to make the commit message pretty. You can amend the latest commit message:

git commit --amend

and remove any unnecessary noise (Test Plan, Reviewers, CC, too detailed description) and wrap lines properly. Please keep the review hyperlink.

tflink added inline comments.Apr 25 2014, 5:20 PM
docs/source/devguide.rst
192

I guess the question becomes whether to suggest merge or rebase, then. I think that rebase could lead to cleaner history but merge would work in more situations. Any objections to suggesting rebase and say something like "if you run into problems, please ask for help"?

193

if we go that route, I'd prefer to specify a preferred default. Any objections to saying "a single commit per feature is preferred in most cases."?

194

Is that specific enough or should we have an example template?

kparal accepted this revision.Apr 28 2014, 8:36 AM

Once you're satisfied with the small tweaks, please merge into develop. The important thing is that we have the sphinx config and doc build instructions. We can discuss and amend the guides any time in the future, let's not hold this review on this :) Thanks.

docs/source/devguide.rst
192

I have the same understanding as you do. No objections at all.

193

I completely agree. Most features are small changes and it's easiest to have them in a single commit.

194

Isn't that overkill? Just a quick look to git log will tell the person how the commit messages usually look like. We can also just say this ("Have a look at how commits usually look like") instead of enumerating things that can possibly be removed.