snowdriftcoop / snowdrift

Infrastructure for Snowdrift.coop. This is a MIRROR of https://gitlab.com/snowdrift/snowdrift. Your issue reports and merge requests are welcome, but they will be moved to gitlab.com. You are encouraged to start there instead!
https://snowdrift.coop
GNU Affero General Public License v3.0
92 stars 36 forks source link

Beginner guide #300

Closed wolftune closed 9 years ago

wolftune commented 9 years ago

This may be good enough to be merged already, but I'm reviewing the Wikibooks and other reading suggestions. Some should maybe be changed / omitted. The Haskell Wikibook is a "featured book" (it's that good), and the others really may be not so great… We can still fix this later though, it isn't a blocker to merging.

pharpend commented 9 years ago

If the idea is to give people a minimal path to contributing, you don't want to be discussing somewhat advanced concepts, like the staging area. Just tell them to use git add ., or to use git add -p if they want to split up the commit into smaller commits.

We should also mention that it's imperative that they read the Git book, at least Chapter 2, so they can be somewhat competent.

These gripes are pretty minor, so I think this should be merged.

wolftune commented 9 years ago

git add . + git commit = git commit -a

Either way, it tells people to skip understanding the idea of staging and do X command to commit. Bryan (and Nikita) complained about telling anyone to use git commit -a.

There is no way around this. Either we tell people a simple "do this = committing everything" and they do not get the idea that there's a staging stage or we do something where doing git stage first actually means something at all so that they realize it is a different step. I don't like all the verbosity. I'm okay with saying "commit -a works for now, but please learn about staging when you have a chance" with a link… or something like that.

We can't actually avoid this entirely (i.e. Satisfy Bryan's opposition to commit -a) because git status itself includes a suggestion of using commit -a)

pharpend commented 9 years ago

git add . + git commit = git commit -a

Not quite. git add . also adds unstaged files. git commit -a doesn't touch unstaged files.

I think we should say "for your first commit it's okay to use git commit -a, but after that, please read Chapter 2 of the Git book".

wolftune commented 9 years ago

I made a slightly more verbose and generalized version of "use git commit -a if you must, but it's better if you learn more about git stuff.

singpolyma commented 9 years ago

Why don't we kill all this crazy complex setup stuff for beginners and just use vagrant? I'll look into getting a box setup either way, useful to have

wolftune commented 9 years ago

Sounds ok to me. I hate all this mindless complexity. Halcyon, Nix, vagrant, whatever it is that makes this stuff work actually. So far, we've gotten close with various attempts but not pushed ahead to where any reliable thing is all there, ready to actually get beginners going.

FWIW, I think Halcyon is the most promising best answer, but I'll defer to whatever the more experienced folks figure out to ease the process for newcomers.

Anyway, until we have some simpler solution though…

pharpend commented 9 years ago

@singpolyma I'm not familiar with vagrant, could you elaborate?

pharpend commented 9 years ago

At this point, I really thing we should merge this, and then open up a new PR with edits. It's good enough to be merged, and it's not helping anybody just sitting here in a PR.

wolftune commented 9 years ago

Yup, I'm going to merge shortly

singpolyma commented 9 years ago

@pharpend good idea

singpolyma commented 9 years ago

It seems that libpq-dev also needs to be installed?

wolftune commented 9 years ago

ok, adding that, thanks. By the way, the new official primary repo is now https://git.gnu.io/snowdrift/snowdrift