apache / apache/pulsar-client-cpp

[C++] pulsar-client-cpp stability enhancements and code cleanup

オープン
#112 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C++
スター
71
フォーク
90
平均マージ
2時間 33分
マージ済み PR(30日)
3

説明

Howdy! My company is investing heavily into event driven workflows, and we're utilizing Pulsar to accomplish this end. We're primarily a C++ shop, and I'm a Principal Engineer and in charge of the integration of Pulsar into our system, and experienced in C++. I've made a few bug fixes to the C++ client already, and in doing so I've noticed that it could use a bit of love to bring greater consistency to the design and fix up some low-hanging fruit. We've integrated Pulsar into our own build system, and it required a lot of changes to pass our build (which uses many more warnings and runs tests with ASAN). We've found that enforcing a more strict set of warnings helps to keep a c++ codebase healthy and stable, and I'd like to upstream these changes for the benefit of everyone, and to make continued maintenance easier.

Would anyone be opposed to me undertaking some general cleanup of the C++ client?

My proposed TODO list:

- Enable many more warnings (`-Wall`, `-Wvla`, `-Wformat-security`, etc)
- Enforce warnings as errors to prevent changes being submitted with warnings
- Fix all the subsequent warnings that will be generated
- Fix compatibility with boost 1.41 (the documentation claims it should be compatible, but it's not, and that happens to be the version we're stuck on).
- Use consistent format for `#include`s of local files (some have a `/lib` prefix, others don't)
- Run the tests via ASAN or Valgrind, if available (not sure how easy this will be yet...)
- Update syntax to take advantage of more C++11 features (like `std::make_shared`, move semantics, etc)

I'll obviously split this stuff up into a series of smaller changes. I'm hopeful that by doing this I'll gain more experience working with Pulsar and could potentially contribute more significant improvements in the future, i.e. performance enhancements and helping to keep feature parity between the C++ and Java clients.

Thanks!

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

この提案は、C++クライアントのビルド、警告、Boost 1.41との互換性、includeのフォーマット、テスト、C++11への更新を対象としていますが、具体的なファイルやテストを指定していません。まず現在のビルド構成とテスト設定を確認し、その後、TODOリストを、影響を受けるファイルと明示的な検証基準を含むスコープの明確な変更に分割してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
backend, build-system, testing
issue の種類
リファクタリング
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。