This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/arrow-flight-sql-postgresql.git


The following commit(s) were added to refs/heads/main by this push:
     new 5ef700b  Add README (#82)
5ef700b is described below

commit 5ef700b0a3d0e12ccc6fadeb37d98d60c4bf14a2
Author: Sutou Kouhei <[email protected]>
AuthorDate: Tue Aug 29 09:05:06 2023 +0900

    Add README (#82)
    
    Closes GH-3
---
 .asf.yaml                        |   4 +-
 .github/workflows/lint.yaml      |   4 +-
 .pre-commit-config.yaml          |   7 +
 CONTRIBUTING.md                  | 325 +++++++++++++++++++++++++++++++++++++++
 doc/source/index.md => README.md |  25 ++-
 benchmark/integer/README.md      |  19 ++-
 dev/run-postgresql.sh            |  41 +++--
 doc/index.html                   |   7 +-
 doc/source/_static/switcher.json |  30 ++--
 doc/source/configuration.md      |   4 +-
 doc/source/index.md              |   7 +-
 doc/source/install.md            |  14 +-
 doc/source/release-notes.md      |   2 +-
 13 files changed, 414 insertions(+), 75 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index 6043b67..84deac3 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -30,9 +30,9 @@ github:
     issues: true
 
 notifications:
-  commits:      [email protected]
+  commits: [email protected]
   issues_status: [email protected]
-  issues:       [email protected]
+  issues: [email protected]
   pullrequests: [email protected]
 
 publish:
diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml
index 57eede9..c25fb32 100644
--- a/.github/workflows/lint.yaml
+++ b/.github/workflows/lint.yaml
@@ -35,7 +35,7 @@ jobs:
       - uses: actions/checkout@v3
       - uses: actions/setup-python@v4
         with:
-          python-version: '3.x'
+          python-version: "3.x"
       - name: Run Release audit tool (Rat)
         run: dev/release/run_rat.sh .
 
@@ -46,7 +46,7 @@ jobs:
       - uses: actions/checkout@v3
       - uses: actions/setup-python@v4
         with:
-          python-version: '3.x'
+          python-version: "3.x"
       - name: Run pre-commit
         run: |
           python -m pip install pre-commit
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 3b5e536..c30f15a 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -20,3 +20,10 @@ repos:
     rev: "v15.0.7"
     hooks:
       - id: clang-format
+        types_or:
+          - c++
+          - c
+  - repo: https://github.com/pre-commit/mirrors-prettier
+    rev: "v3.0.2"
+    hooks:
+      - id: prettier
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..29c8f6b
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,325 @@
+<!--
+  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
+
+Thanks for contributing this project!
+
+## Report your problems or requests
+
+Please file issues on the GitHub issue tracker:
+https://github.com/apache/arrow-flight-sql-postgresql/issues
+
+You can also use the following mailing lists:
+
+- `[email protected]`: for discussions about contributing to the
+  project development.
+- `[email protected]`: for questions on usage.
+
+See https://arrow.apache.org/community/#mailing-lists how to subscribe
+these mailing lists.
+
+## Build for development
+
+### Install dependencies
+
+You need to install the following dependencies before you build Apache
+Arrow Flight SQL adapter for PostgreSQL:
+
+- PostgreSQL
+- Apache Arrow Flight SQL C++
+- Meson
+- CMake
+- Ninja
+- C++ compiler such as `g++` and `clang++`
+
+#### PostgreSQL
+
+You can find packages and source archive of PostgreSQL at
+https://www.postgresql.org/download/ . If you use packages, you need
+to install packages for development. For example,
+`postgresql-server-dev-XXX` is for deb packages and
+`postgresqlXXX-devel` is for RPM packages.
+
+The latest release is recommended.
+
+#### Apache Arrow Flight SQL C++
+
+You can find packages and source archive of Apache Arrow C++ at
+https://arrow.apache.org/install/ . If you use packages, you need to
+install packages for development. For example,
+`libarrow-flight-sql-dev` is for deb packages and
+`arrow-flight-sql-devel` is for RPM packages.
+
+The latest release is recommended.
+
+#### Meson
+
+Meson is a build system that is also used by PostgreSQL.
+
+You can install Meson by system package managers such as `apt` and
+`brew`.
+
+For example, you can install Meson by `apt` on Debian GNU/Linux and
+Ubuntu:
+
+```bash
+sudo apt install meson
+```
+
+For example, you can install Meson by `brew` on macOS:
+
+```bash
+brew install meson
+```
+
+Or you can use `pip3` to install Meson:
+
+```bash
+pip3 install meson
+```
+
+See also: https://mesonbuild.com/Getting-meson.html
+
+#### CMake
+
+CMake is also a build system. Meson uses CMake to find CMake
+packages. Apache Arrow Flight SQL adapter for PostgreSQL uses Apache
+Arrow Flight SQL C++ CMake package. So both of Meson and CMake are
+needed.
+
+If installing CMake bothers contributors, we can improving our build
+system to use CMake or pkg-config to find Apache Arrow Flight SQL
+C++. If you want the improvement, please report it to our issue
+tracker: https://github.com/apache/arrow-flight-sql-postgresql/issues
+
+You can install CMake by package managers such as `apt` and `brew`.
+
+For example, you can install CMake by `apt` on Debian GNU/Linux and
+Ubuntu:
+
+```bash
+sudo apt install cmake
+```
+
+For example, you can install CMake by `brew` on macOS:
+
+```bash
+brew install cmake
+```
+
+See also: https://cmake.org/install/
+
+#### Ninja
+
+Ninja is also a build system but it differs from Meson and
+CMake. Meson and CMake only generate configuration files for Ninja and
+Ninja runs C++ compilers and so on based on the generated
+configuration files.
+
+You can install Ninja by package managers such as `apt` and `brew`.
+
+For example, you can install Ninja by `apt` on Debian GNU/Linux and
+Ubuntu:
+
+```bash
+sudo apt install ninja-build
+```
+
+For example, you can install Ninja by `brew` on macOS:
+
+```bash
+brew install ninja
+```
+
+See also: https://ninja-build.org/
+
+### Build
+
+If you install PostgreSQL and Apache Arrow Flight SQL C++ to system
+directory such as `/usr`, you can use the following simple command
+lines:
+
+```bash
+meson setup build
+meson compile -C build
+meson install -C build
+```
+
+If you install PostgreSQL to `/tmp/local`, you can use
+`-Dpostgresql_dir=/tmp/local` option:
+
+```bash
+meson setup -Dpostgresql_dir=/tmp/local build
+meson compile -C build
+meson install -C build
+```
+
+If you specify `postgresql_dir`, it's recommended that you also
+specify `--prefix` with the same location. Apache Arrow Flight SQL
+adapter for PostgreSQL installs README and so on to
+`--prefix`:
+
+```bash
+meson setup -Dpostgresql_dir=/tmp/local --prefix=/tmp/local build
+meson compile -C build
+meson install -C build
+```
+
+If you install Apache Arrow Flight SQL C++ to `/tmp/local`, you can
+use `--cmake-prefix-path`:
+
+```bash
+meson setup --cmake-prefix-path=/tmp/local build
+meson compile -C build
+meson install -C build
+```
+
+I you want to build benchmark programs, you can use
+`-Dbenchmark=true`:
+
+```bash
+meson setup -Dbenchmark=true build
+meson compile -C build
+meson install -C build
+```
+
+I you want to build example programs, you can use `-Dexmaple=true`:
+
+```bash
+meson setup -Dexample=true build
+meson compile -C build
+meson install -C build
+```
+
+### Test
+
+You need Ruby and Red Arrow Flight SQL (red-arrow-flight-sql gem,
+Apache Arrow Flight SQL C++ bindings for Ruby) to run tests.
+
+You can install Ruby by package managers such as `apt` and `brew`.
+
+For example, you can install Ruby by `apt` on Debian GNU/Linux and
+Ubuntu:
+
+```bash
+sudo apt install ruby
+```
+
+```bash
+brew install ruby
+```
+
+You can install Red Arrow Flight SQL by Bundler that is bundled in
+Ruby:
+
+```bash
+bundle install
+```
+
+You can run tests in the build directory. We can change the current
+directory before we run a Ruby script by `ruby`'s `-C` option:
+
+```bash
+bundle exec ruby -C build ../test/run.rb
+```
+
+### Run
+
+You can use `dev/run-postgresql.sh` to run PostgreSQL with Apache
+Arrow Flight SQL adapter for PostgreSQL. You need to specify
+PostgreSQL data directory to use `dev/run-postgresql.sh`:
+
+```bash
+dev/run-postgresql.sh /tmp/afs
+```
+
+You can connect to `grpc://127.0.0.1:15432`.
+
+If you build example programs, you can test the endpoint by the
+following command line:
+
+```bash
+PGDATABASE=postgres example/flight-sql/authenticate-password
+```
+
+If you specify CA name, server name and client name, it also prepare
+TLS.
+
+For example, you can prepare `root.home`, `server.home` and
+`client.home` by adding the following entry to `/etc/hosts`:
+
+```text
+127.0.0.1 localhost root.home server.home client.home
+```
+
+In this case, you can prepare TLS and run PostgreSQL by the following
+command line:
+
+```bash
+dev/run-postgresql.sh /tmp/afs root.home server.home client.home
+```
+
+You can connect to `grpc+tls://server.home:15432`. You need to use
+`/tmp/afs/root.crt` for TLS root certificates.
+
+If you build example programs, you can test the endpoint by the
+following command line:
+
+```bash
+PGDATABASE=postgres \
+  PGHOST=server.home \
+  PGSSLMODE=require \
+  PGSSLROOTCERT=/tmp/afs/root.crt \
+  example/flight-sql/authenticate-password
+```
+
+## Pull request
+
+Please open a new issue before you open a pull request. It's for the
+[Openness](http://theapacheway.com/open/) of this project.
+
+We don't have rules for pull request titles and commit messages
+yet. We may create rules later. Please see other merged pull requests
+for now.
+
+You can format codes automatically by
+[`pre-commit`](https://pre-commit.com/).
+
+You can install `pre-commit` by package managers such as `apt` and
+`brew`.
+
+For example, you can install `pre-commit` by `apt` on Debian GNU/Linux
+and Ubuntu:
+
+```bash
+sudo apt install pre-commit
+```
+
+For example, you can install `pre-commit` by `brew` on macOS:
+
+```bash
+brew install pre-commit
+```
+
+You can run `pre-commit` before you commit:
+
+```shell
+pre-commit run
+```
diff --git a/doc/source/index.md b/README.md
similarity index 67%
copy from doc/source/index.md
copy to README.md
index fedc6db..b19f803 100644
--- a/doc/source/index.md
+++ b/README.md
@@ -19,22 +19,17 @@
 
 # Apache Arrow Flight SQL adapter for PostgreSQL
 
-```{toctree}
-:maxdepth: 1
-release-notes.md
-```
+This is a PostgreSQL extension that adds an [Apache Arrow Flight
+SQL][apache-arrow-flight-sql] endpoint to PostgreSQL.
 
-```{toctree}
-:maxdepth: 2
-overview.md
-install.md
-configuration.md
-client.md
-```
+See https://arrow.apache.org/flight-sql-postgresql/ for details.
 
+## How to contribute
 
-## Indices and tables
+See [CONTRIBUTING.md](CONTRIBUTION.md).
 
-* {ref}`genindex`
-* {ref}`modindex`
-* {ref}`search`
+## License
+
+The Apache License 2.0. See [LICENSE.txt](LICENSE.txt) for details.
+
+[apache-arrow-flight-sql]: https://arrow.apache.org/docs/format/FlightSql.html
diff --git a/benchmark/integer/README.md b/benchmark/integer/README.md
index 6ec23ae..86fe02d 100644
--- a/benchmark/integer/README.md
+++ b/benchmark/integer/README.md
@@ -40,9 +40,9 @@ It also inserts 10M records with random integers to the table.
 
 Run the following programs:
 
-* `select.rb`: It uses Apache Arrow Flight SQL
-* `select`: It uses PostgreSQL's C API
-* `select.sql`: You need to use `psql` to run this
+- `select.rb`: It uses Apache Arrow Flight SQL
+- `select`: It uses PostgreSQL's C API
+- `select.sql`: You need to use `psql` to run this
 
 All of them just run `SELECT * FROM data`.
 
@@ -50,14 +50,14 @@ All of them just run `SELECT * FROM data`.
 
 Here is a benchmark result on the following environment:
 
-* OS: Debian GNU/Linux sid
-* CPU: AMD Ryzen 9 3900X 12-Core Processor
-* Memory: 64GiB
-* PostgreSQL: 16 (not released yet)
+- OS: Debian GNU/Linux sid
+- CPU: AMD Ryzen 9 3900X 12-Core Processor
+- Memory: 64GiB
+- PostgreSQL: 16 (not released yet)
   019f8624664dbf1e25e2bd721c7e99822812d109
-* Apache Arrow: 12.0.0-SNAPSHOT
+- Apache Arrow: 12.0.0-SNAPSHOT
   237705bf17486cfc35ab7d1ddfe59dd60f042ab8
-* Apache Arrow Flight SQL PostgreSQL adapter:
+- Apache Arrow Flight SQL PostgreSQL adapter:
   0.1.0 (not released yet)
   120e7bbd3fd580c892c988499d488c7e8b34efe2
 
@@ -80,4 +80,3 @@ Here is a benchmark result on the following environment:
 | Apache Arrow Flight SQL | C     | psql  |
 | ----------------------- | ----- | ----- |
 | 0.653                   | 1.154 | 1.128 |
-
diff --git a/dev/run-postgresql.sh b/dev/run-postgresql.sh
index 209bfb9..834b618 100755
--- a/dev/run-postgresql.sh
+++ b/dev/run-postgresql.sh
@@ -19,16 +19,29 @@
 
 set -eu
 
-if [ $# -ne 4 ]; then
+if [ $# -ne 1 -a $# -ne 4 ]; then
+  echo "Usage: $0 DATA_DIRECTORY"
+  echo " e.g.: $0 /tmp/afs"
+  echo "Or:"
   echo "Usage: $0 DATA_DIRECTORY CA_NAME SERVER_NAME CLIENT_NAME"
   echo " e.g.: $0 /tmp/afs root.example.com server.example.com 
client.example.com"
   exit 1
 fi
 
 data_directory=$1
-root_name=$2
-server_name=$3
-client_name=$4
+if [ $# -eq 1 ]; then
+  scheme=grpc
+  ssl=off
+  ssl_ca_file=
+  server_name=127.0.0.1
+else
+  scheme=grpc+tls
+  ssl=on
+  ssl_ca_file=root.crt
+  root_name=$2
+  server_name=$3
+  client_name=$4
+fi
 
 base_directory="$(cd "$(dirname "$0")" && pwd)"
 
@@ -36,15 +49,17 @@ rm -rf "${data_directory}"
 
 initdb \
   --locale=C \
-  --set=arrow_flight_sql.uri=grpc+tls://${server_name}:15432 \
+  --set=arrow_flight_sql.uri=${scheme}://${server_name}:15432 \
   --set=shared_preload_libraries=arrow_flight_sql \
-  --set=ssl=on \
-  --set=ssl_ca_file=root.crt \
+  --set=ssl=${ssl} \
+  --set=ssl_ca_file=${ssl_ca_file} \
   "${data_directory}"
-pushd "${data_directory}"
-"${base_directory}/prepare-tls.sh" \
-  "${root_name}" \
-  "${server_name}" \
-  "${client_name}"
-popd
+if [ "${ssl}" = "on" ]; then
+  pushd "${data_directory}"
+  "${base_directory}/prepare-tls.sh" \
+    "${root_name}" \
+    "${server_name}" \
+    "${client_name}"
+  popd
+fi
 LANG=C postgres -D "${data_directory}"
diff --git a/doc/index.html b/doc/index.html
index b1fa92d..382d778 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
@@ -19,8 +19,7 @@
 -->
 <html>
   <head>
-    <meta http-equiv="Refresh" content="0; url=current/">
+    <meta http-equiv="Refresh" content="0; url=current/" />
   </head>
-  <body>
-  </body>
+  <body></body>
 </html>
diff --git a/doc/source/_static/switcher.json b/doc/source/_static/switcher.json
index 5d13223..f0f778b 100644
--- a/doc/source/_static/switcher.json
+++ b/doc/source/_static/switcher.json
@@ -1,17 +1,17 @@
 [
-       {
-               "name": "devel",
-               "url": "https://arrow.apache.org/flight-sql-postgresql/devel/";,
-               "version": "devel"
-       },
-       {
-               "name": "current",
-               "url": 
"https://arrow.apache.org/flight-sql-postgresql/current/";,
-               "version": "current"
-       },
-       {
-               "name": "0.1.0",
-               "url": "https://arrow.apache.org/flight-sql-postgresql/0.1.0/";,
-               "version": "0.1.0"
-       }
+  {
+    "name": "devel",
+    "url": "https://arrow.apache.org/flight-sql-postgresql/devel/";,
+    "version": "devel"
+  },
+  {
+    "name": "current",
+    "url": "https://arrow.apache.org/flight-sql-postgresql/current/";,
+    "version": "current"
+  },
+  {
+    "name": "0.1.0",
+    "url": "https://arrow.apache.org/flight-sql-postgresql/0.1.0/";,
+    "version": "0.1.0"
+  }
 ]
diff --git a/doc/source/configuration.md b/doc/source/configuration.md
index ae220b9..49b586e 100644
--- a/doc/source/configuration.md
+++ b/doc/source/configuration.md
@@ -50,7 +50,7 @@ Note that you also need to setup client side. For example, 
see the
 following documentations for the C++ implementation of Apache Arrow
 Flight SQL client:
 
-* [Enable TLS][arrow-flight-tls]
+- [Enable TLS][arrow-flight-tls]
 
 ```{note}
 mTLS (mutual-TLS) isn't implemented yet. If you're interested in mTLS,
@@ -72,7 +72,7 @@ automatically.
 
 The maximum number of rows per record batch.
 
-The default is 1 * 1024 * 1024 rows.
+The default is 1 \* 1024 \* 1024 rows.
 
 If this value is small, total data exchange time will be slower.
 
diff --git a/doc/source/index.md b/doc/source/index.md
index fedc6db..ca70714 100644
--- a/doc/source/index.md
+++ b/doc/source/index.md
@@ -32,9 +32,8 @@ configuration.md
 client.md
 ```
 
-
 ## Indices and tables
 
-* {ref}`genindex`
-* {ref}`modindex`
-* {ref}`search`
+- {ref}`genindex`
+- {ref}`modindex`
+- {ref}`search`
diff --git a/doc/source/install.md b/doc/source/install.md
index 4daa30e..b716a7b 100644
--- a/doc/source/install.md
+++ b/doc/source/install.md
@@ -23,8 +23,8 @@
 
 Supported versions:
 
-* Debian GNU/Linux bookworm
-* Ubuntu 22.04 LTS
+- Debian GNU/Linux bookworm
+- Ubuntu 22.04 LTS
 
 Enable the PostgreSQL APT repository:
 
@@ -63,11 +63,11 @@ See {doc}`configuration` how to configure Apache Arrow 
Flight SQL adapter for Po
 You need to install the followings before you build Apache Arrow
 Flight SQL adapter for PostgreSQL:
 
-* PostgreSQL: https://www.postgresql.org/download/
-* Apache Arrow C++ with Flight SQL support: https://arrow.apache.org/install/
-* Meson: https://mesonbuild.com/
-* Ninja: https://ninja-build.org/
-* C++ compiler such as `g++` and `clang++
+- PostgreSQL: https://www.postgresql.org/download/
+- Apache Arrow C++ with Flight SQL support: https://arrow.apache.org/install/
+- Meson: https://mesonbuild.com/
+- Ninja: https://ninja-build.org/
+- C++ compiler such as `g++` and `clang++
 
 Here are command lines to build Apache Arrow Flight SQL adapter for
 PostgreSQL:
diff --git a/doc/source/release-notes.md b/doc/source/release-notes.md
index f3159e3..3f9dd1a 100644
--- a/doc/source/release-notes.md
+++ b/doc/source/release-notes.md
@@ -23,4 +23,4 @@
 
 ### Improvements
 
-  * The initial release!
+- The initial release!

Reply via email to