You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by rx...@apache.org on 2019/08/13 06:56:43 UTC
[pulsar-client-go] branch master updated: Improve README.md and add
CONTRIBUTING.md file (#51)
This is an automated email from the ASF dual-hosted git repository.
rxl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar-client-go.git
The following commit(s) were added to refs/heads/master by this push:
new 670da09 Improve README.md and add CONTRIBUTING.md file (#51)
670da09 is described below
commit 670da091a38f16779aa4a905f95959ee03c6a120
Author: 冉小龙 <ra...@gmail.com>
AuthorDate: Tue Aug 13 14:56:39 2019 +0800
Improve README.md and add CONTRIBUTING.md file (#51)
Signed-off-by: xiaolong.ran <ra...@gmail.com>
Improve README.md and add CONTRIBUTING.md file.
---
.header | 16 +++++++++++
CONTRIBUTING.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
README.md | 54 ++++++++++++++++++++++++++++++------
3 files changed, 147 insertions(+), 9 deletions(-)
diff --git a/.header b/.header
new file mode 100644
index 0000000..b248758
--- /dev/null
+++ b/.header
@@ -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.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..7a6e414
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -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 git@github.com:[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 git@github.com: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.
diff --git a/README.md b/README.md
index 8c48e16..f7a2953 100644
--- a/README.md
+++ b/README.md
@@ -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
@@ -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
@@ -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",
})
@@ -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
@@ -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
-
-