diff --git a/README.md b/README.md index 2e8ffc373..26dda63f6 100644 --- a/README.md +++ b/README.md @@ -1,70 +1,53 @@ -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.partiql/partiql-lang-kotlin/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.partiql/partiql-lang-kotlin) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.partiql/partiql-lang/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.partiql/partiql-lang) [![License](https://img.shields.io/hexpm/l/plug.svg)](https://github.com/partiql/partiql-lang-kotlin/blob/main/LICENSE) [![CI Build](https://github.com/partiql/partiql-lang-kotlin/actions/workflows/build.yml/badge.svg)](https://github.com/partiql/partiql-lang-kotlin/actions?query=workflow%3A%22Build+and+Report+Generation%22) [![codecov](https://codecov.io/gh/partiql/partiql-lang-kotlin/branch/main/graph/badge.svg)](https://codecov.io/gh/partiql/partiql-lang-kotlin) -# PartiQL Lang Kotlin +[partiql-specification]: https://partiql.org/assets/PartiQL-Specification.pdf +[partiql-website]: https://www.partiql.org +[partiql-website-plk]: https://www.partiql.org/plk/latest/ +[partiql-tests]: https://github.com/partiql/partiql-tests +[plk-releases]: https://github.com/partiql/partiql-lang-kotlin/releases +[maven-partiql-namespace]: https://central.sonatype.com/namespace/org.partiql +[git-submodule]: https://git-scm.com/book/en/v2/Git-Tools-Submodules -This is a Kotlin implementation of the [PartiQL specification](https://partiql.org/assets/PartiQL-Specification.pdf). -PartiQL is based on SQL-99 and has added support for working with schemaless hierarchical data. -PartiQL’s extensions to SQL are easy to understand, treat nested data as first class citizens and -compose seamlessly with each other and SQL. +# PartiQL Lang Kotlin -This repository contains an embeddable reference interpreter, test framework, and tests for PartiQL in Kotlin. +This is a Kotlin/JVM implementation of the [PartiQL specification][partiql-specification]. +PartiQL is based on SQL:1999 and has added support for working with schemaless hierarchical data. +PartiQL’s extensions to SQL are easy to understand, treat nested data as first class citizens, and +compose seamlessly with SQL. ## About -Check out the [PartiQL Lang Kotlin Wiki](https://github.com/partiql/partiql-lang-kotlin/wiki) for documentation, -tutorials, upgrade guides, and more! +Check out the [PartiQL website][partiql-website] for documentation, usage guides, and more! ## Status -Users of PartiQL should consider PartiQL to be in "preview" status. It has been leveraged within a number of Amazon internal -systems and AWS products for over a year. The behavior of the language itself is mostly stable, however, -the public API of the interpreter is slated to undergo significant improvements in the near term. (See the -GitHub issues list for details.) +Users of PartiQL should consider the PartiQL library to be stable. It has been leveraged within a number of Amazon internal +systems and AWS products for multiple years. The behavior of the language itself is mostly stable. ## Using In Your Project -This project is published to [Maven Central](https://search.maven.org/artifact/org.partiql/partiql-lang-kotlin). - -| Group ID | Artifact ID | Recommended Version | -|---------------|-----------------------|---------------------| -| `org.partiql` | `partiql-lang-kotlin` | `0.14.9` | - -If you are looking for a pre-release version, the latest is: `1.0.0-rc.3`. - -For Maven builds, add the following to your `pom.xml`: - -```xml - - org.partiql - partiql-lang-kotlin - ${version} - -``` - -For Gradle 5+, add the following to your `build.gradle`: - -```groovy -repositories { - mavenCentral() -} +All [releases][plk-releases] are published to [Maven Central][maven-partiql-namespace]. For the most up-to-date version +of our library, please add the following to your `build.gradle.kts`. +```kotlin dependencies { - implementation "org.partiql:partiql-lang-kotlin:${version}" + implementation("org.partiql:partiql-lang:1.+") } ``` -Be sure to replace `${version}` with the desired version. +For more information on how to integrate this library (or a specific subproject) into your project, please follow the +guidelines on the [partiql-lang-kotlin documentation site][partiql-website-plk] under the [PartiQL website][partiql-website]. ## Building **Pre-requisite**: Building this project requires Java 11+. -This project uses a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) to pull in -[partiql-tests](https://github.com/partiql/partiql-tests). The easiest way to pull everything in is to clone the +This project uses a [git submodule][git-submodule] to pull in +[partiql-tests][partiql-tests]. The easiest way to pull everything in is to clone the repository recursively: ```bash @@ -80,7 +63,7 @@ $ git submodule update --init --recursive To build this project, from the root directory execute: ```shell -./gradlew build +./gradlew assemble ``` This will build the reference interpreter and test framework, then run all unit and integration tests. @@ -91,46 +74,25 @@ This will build the reference interpreter and test framework, then run all unit $ tree -d -L 2 -I build -I src` . ├── buildSrc Gradle multi-project build -├── docs Documentation -│   ├── upgrades -│   └── wiki -├── examples Code examples ├── lib -│   ├── isl Ion Schema DOM │   └── sprout IR codegen ├── partiql-ast PartiQL ast data structures and utilities ├── partiql-cli CLI & Shell application ├── partiql-coverage Code coverage library -├── partiql-lang Top-level project containing all subprojects +├── partiql-eval PartiQL compiler +├── partiql-lang Top-level project depending on all subprojects ├── partiql-parser PartiQL parser ├── partiql-plan PartiQL plan data structures and utilities ├── partiql-planner PartiQL planner ├── partiql-spi Common interfaces: types, values, catalogs, functions, etc. -├── plugins PartiQL plugins used in testing -│   ├── partiql-local -│   └── partiql-memory └── test ├── partiql-tests Conformance test data └── partiql-tests-runner Conformance test runner ``` -### Running JMH Benchmarks - -To run JMH benchmarks located in `lang/jmh`, build the entire project first and then run -the following command: - -```shell -./gradlew jmh -``` - -### Examples - -See the [examples](examples) project in this repository for examples covering -use of the PartiQL interpreter in your project. - ## Contributing -See [CONTRIBUTING](CONTRIBUTING.md) +See [CONTRIBUTING](CONTRIBUTING.md). ## License