# How to Contribute

## Bug Report

- Do a search on GitHub under Issues in case it has already been reported
- Submit __executable script__ or failing test pull request that could demonstrates the issue is *MUST HAVE*

## Feature Request

- Feature request with pull request is welcome
- Or it won't be implemented until I (other developers) find it is helpful for my (their) daily work

## Pull Request

- Prefer single commit pull request, that make the git history can be a bit easier to follow.
- New features need to be covered with tests to make sure your code works as expected, and won't be broken by others in future

## Contributing to Documentation

- You are welcome ;)
- You can help improve the README by making them more coherent, consistent or readable, and add more godoc documents to make people easier to follow.
- Blogs & Usage Guides & PPT also welcome, please add them to https://github.com/jinzhu/gorm/wiki/Guides

### Executable script template

```go
package main

import (
    _ "github.com/mattn/go-sqlite3"
    _ "github.com/go-sql-driver/mysql"
    _ "github.com/lib/pq"
    "github.com/jinzhu/gorm"
)

var db gorm.DB

func init() {
    var err error
    db, err = gorm.Open("sqlite3", "test.db")
    // db, err := gorm.Open("postgres", "user=username dbname=password sslmode=disable")
    // db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True")
    if err != nil {
        panic(err)
    }
    db.LogMode(true)
}

func main() {
    // Your code
}
```