Updated FAQ (markdown)

Steven L 2017-10-03 12:28:23 -04:00
parent 7b628847f1
commit 6cb4b1bb45

65
FAQ.md

@ -17,70 +17,9 @@ It can be for some scenarios, but the goals are not identical.
ssh-chat focuses more on secure chat with small teams. Traditionally to achieve this with IRC, you'd setup an ssh server for your friends and run a localhost IRC server on it that your friends would connect to by tunnelling over ssh. ssh-chat achieves a similar level of security without setting up multiple servers and tunnels.
## How can I build ssh-chat?
## Building and Contributing
You'll need a recent version of the Go compiler (1.7 is best, but 1.5+ should work).
Next you'll need to setup your Go development environment. Check this article for details: [How to Write Go Code](https://golang.org/doc/code.html).
Long story short, something like this:
``` bash
$ export GOPATH=$HOME/go # Add this to your ~/.bashrc or similar
$ go get -u github.com/shazow/ssh-chat
$ cd $GOPATH/src/github.com/shazow/ssh-chat
$ make
```
That should make the workspace directory, export the GOPATH to your environment, clone the
repository into the workspace, change directory into the code, and run the Makefile instructions
for you.
If you have any trouble building, please open an issue on the tracker and let us know what problems you run
into during the build process.
## How can I contribute to ssh-chat?
So once you've set up the build phase, you can start contributing right away! `ssh-chat` uses
Go, so if you are familiar with C/C++ or Java, Go should be a snap. Check out the following
sites for quick insight into the Go language.
* [A Tour of Go](https://tour.golang.org/)
* [Go By Example](https://gobyexample.com/)
Next, before you start committing changes, you will want to create a different branch to work on, and
fork `ssh-chat` so you can create Pull Requests. First [create a fork](https://github.com/shazow/ssh-chat#fork-destination-box), then we will go over how to create a branch.
Once you've forked `ssh-chat`, go into your shell and create a new Git branch. Name it something
based on what you're adding to the project. Try for simple names like `readme-fix` or `new-themes`,
something short and easy that describes a feature or addition. Then, you check out into that new branch
you made.
``` bash
$ git checkout -b my-branch-name # Make a new branch and switch to it
```
Now you can make your changes. Once you've finished that, you will then have to add these files to be
staged for committing. Once added, we can create a commit message, and push it to your fork repository.
``` bash
$ git add host_test.go # Add any new files
$ git commit -m "sshchat: Added host tests."
```
Try to keep commit messages [similar to the style the project already uses](https://github.com/shazow/ssh-chat/commits/master). Generally we prefix commit titles with the package name or topic of the change to make it easy to convert commit messages into change logs.
Now the changes are ready to be pushed. Currently, Git doesn't know where to push these changes, since
we're on a different branch. We need to set a remote that we can push these changes to.
``` bash
$ git remote add myrepo https://github.com/my-username/ssh-chat
$ git push -u myrepo
```
That should push your changes to your repository instead of the `ssh-chat` repository. Now you can
create a Pull Request which will compare your changes to the upstream's (original repository) Git, and
if the changes are approved by the owner, then they will get merged!
Building `ssh-chat` and contributing are covered on the Wiki page [Contributing to ssh-chat](https://github.com/shazow/ssh-chat/wiki/Contributing-to-ssh-chat). Check that out for build instructions and contribution basics.
## What features are planned for ssh-chat?