Skip to content

Commit

Permalink
Improve README.md and add CONTRIBUTING.md file (apache#51)
Browse files Browse the repository at this point in the history
Signed-off-by: xiaolong.ran <[email protected]>

Improve README.md and add CONTRIBUTING.md file.
  • Loading branch information
wolfstudy authored Aug 13, 2019
1 parent a7c1a04 commit 670da09
Show file tree
Hide file tree
Showing 3 changed files with 147 additions and 9 deletions.
16 changes: 16 additions & 0 deletions .header
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
86 changes: 86 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->

# How to contribute

If you would like to contribute code to this project you can do so through GitHub by forking the repository and sending a pull request.

This document outlines some of the conventions on development workflow, commit message formatting, contact points and other resources to make it easier to get your contribution accepted.

## Steps to Contribute

Since the `go mod` package management tool is used in this project, your go version is required at **Go1.11+**.

### Fork

Before you start contributing, you need to fork [pulsar-client-go](https://github.com/apache/pulsar) to your github repository.

### Installation

If you don't currently have a go environment installed,install Go according to the installation instructions here: http://golang.org/doc/install

##### mac os && linux

```bash
$ mkdir -p $HOME/github.com/apache/
$ cd $HOME/github.com/apache/
$ git clone [email protected]:[your-github-id]/pulsar-client-go.git
$ cd pulsar-client-go
$ go mod download
```

When you execute `go mod download`, there may be some libs that cannot be downloaded. You can download them by referring to the proxy provided by [GOPROXY.io](https://goproxy.io/).

### Contribution flow

```bash
$ git remote add apache [email protected]:apache/pulsar-client-go.git

// sync with remote master
$ git checkout master
$ git fetch apache
$ git rebase apache/master
$ git push origin master

// create PR branch
$ git checkout -b your_branch
# do your work, and then
$ git add [your change files]
$ git commit -sm "xxx"
$ git push origin your_branch
```

Thanks for your contributions!

#### Code style

The coding style suggested by the Golang community is used in Apache pulsar-client-go. See the [style doc](https://github.com/golang/go/wiki/CodeReviewComments) for details.

Please follow this style to make your pull request easy to review, maintain and develop.

#### Create new file

The project uses the open source protocol of Apache License 2.0. When you need to create a new file when developing new features,
please add it at the beginning of the file. The location of the header file: [header file](.header).

#### Updating dependencies

Apache `pulsar-client-go` uses [Go 1.11 module](https://github.com/golang/go/wiki/Modules) to manage dependencies. To add or update a dependency: use the `go mod edit` command to change the dependency.
54 changes: 45 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@
[![LICENSE](https://img.shields.io/hexpm/l/pulsar.svg)](https://github.com/apache/pulsar-client-go/blob/master/LICENSE)
# Apache Pulsar Go Client Library

> Note: this library is still a work in progress. For production usage, please
refer to the CGo based client library, documented at
http://pulsar.apache.org/docs/en/client-libraries-go/
A Go client library for the [Apache Pulsar](https://pulsar.incubator.apache.org/) project.

## Goal

Expand All @@ -36,6 +34,10 @@ depend on the C++ Pulsar library.
Once feature parity and stability are reached, this will supersede the current
CGo based library.

## Requirements

- Go 1.11+

## Status

Check the Projects page at https://github.com/apache/pulsar-client-go/projects for
Expand All @@ -49,11 +51,15 @@ Import the client library:
import "github.com/apache/pulsar-client-go/pulsar"
```

Create a Producer:

```go
client, err := pulsar.NewClient(pulsar.ClientOptions{
URL: "pulsar://localhost:6650",
})

defer client.Close()

producer, err := client.CreateProducer(pulsar.ProducerOptions{
Topic: "my-topic",
})
Expand All @@ -62,13 +68,45 @@ err = producer.Send(context.Background(), &pulsar.ProducerMessage{
Payload: []byte("hello"),
})

if err == nil {
fmt.Println("Published message")
} else {
fmt.Println("Failed to publish message", err)
defer producer.Close()

if err != nil {
fmt.Println("Failed to publish message", err)
}
fmt.Println("Published message")
```

Create a Consumer:

```go
client, err := pulsar.NewClient(pulsar.ClientOptions{
URL: "pulsar://localhost:6650",
})

defer client.Close()

consumer, err := client.Subscribe(pulsar.ConsumerOptions{
Topic: "my-topic",
SubscriptionName: "my-sub",
Type: pulsar.Shared,
})

defer consumer.Close()

msg, err := consumer.Receive(context.Background())
if err != nil {
log.Fatal(err)
}

fmt.Printf("Received message msgId: %#v -- content: '%s'\n",
msg.ID(), string(msg.Payload()))

```

## Contributing

Contributions are welcomed and greatly appreciated. See [CONTRIBUTING.md](CONTRIBUTING.md) for details on submitting patches and the contribution workflow.

## Contact

##### Mailing lists
Expand All @@ -87,5 +125,3 @@ You can self-register at https://apache-pulsar.herokuapp.com/
## License

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0


0 comments on commit 670da09

Please sign in to comment.