From 955f1fd4819383a42b544945839cb2f62246aa07 Mon Sep 17 00:00:00 2001 From: Chantal Loncle <82039410+bog-walk@users.noreply.github.com> Date: Wed, 20 Dec 2023 10:48:55 -0500 Subject: [PATCH] chore: Bump Exposed version from 0.45.0 to 0.46.0 Update BREAKING_CHANGES and CHANGELOG files. --- README.md | 42 +++++++++---------- docs/BREAKING_CHANGES.md | 30 +++++++++++++ docs/ChangeLog.md | 40 ++++++++++++++++++ .../Writerside/topics/Getting-Started.md | 8 ++-- .../topics/Modules-Documentation.md | 24 +++++------ exposed-bom/README.md | 4 +- exposed-spring-boot-starter/README.md | 6 +-- gradle.properties | 2 +- samples/exposed-ktor/gradle.properties | 2 +- samples/exposed-spring/gradle.properties | 2 +- 10 files changed, 115 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 57e0113ef8..1b13a28d58 100644 --- a/README.md +++ b/README.md @@ -81,52 +81,52 @@ repositories { org.jetbrains.exposed exposed-core - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-crypt - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-dao - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-java-time - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-jdbc - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-jodatime - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-json - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-kotlin-datetime - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-money - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-spring-boot-starter - 0.45.0 + 0.46.0 @@ -136,20 +136,20 @@ repositories { ```groovy dependencies { - implementation 'org.jetbrains.exposed:exposed-core:0.45.0' - implementation 'org.jetbrains.exposed:exposed-crypt:0.45.0' - implementation 'org.jetbrains.exposed:exposed-dao:0.45.0' - implementation 'org.jetbrains.exposed:exposed-jdbc:0.45.0' + implementation 'org.jetbrains.exposed:exposed-core:0.46.0' + implementation 'org.jetbrains.exposed:exposed-crypt:0.46.0' + implementation 'org.jetbrains.exposed:exposed-dao:0.46.0' + implementation 'org.jetbrains.exposed:exposed-jdbc:0.46.0' - implementation 'org.jetbrains.exposed:exposed-jodatime:0.45.0' + implementation 'org.jetbrains.exposed:exposed-jodatime:0.46.0' // or - implementation 'org.jetbrains.exposed:exposed-java-time:0.45.0' + implementation 'org.jetbrains.exposed:exposed-java-time:0.46.0' // or - implementation 'org.jetbrains.exposed:exposed-kotlin-datetime:0.45.0' + implementation 'org.jetbrains.exposed:exposed-kotlin-datetime:0.46.0' - implementation 'org.jetbrains.exposed:exposed-json:0.45.0' - implementation 'org.jetbrains.exposed:exposed-money:0.45.0' - implementation 'org.jetbrains.exposed:exposed-spring-boot-starter:0.45.0' + implementation 'org.jetbrains.exposed:exposed-json:0.46.0' + implementation 'org.jetbrains.exposed:exposed-money:0.46.0' + implementation 'org.jetbrains.exposed:exposed-spring-boot-starter:0.46.0' } ``` @@ -180,7 +180,7 @@ dependencies { and in `gradle.properties` ``` -exposedVersion=0.45.0 +exposedVersion=0.46.0 ``` ## Samples diff --git a/docs/BREAKING_CHANGES.md b/docs/BREAKING_CHANGES.md index f8e7c3fcf8..60f470ff9b 100644 --- a/docs/BREAKING_CHANGES.md +++ b/docs/BREAKING_CHANGES.md @@ -1,5 +1,35 @@ # Breaking Changes +## 0.46.0 + +* When an Exposed table object is created with a keyword identifier (a table or column name) it now retains the exact case used before being automatically quoted in generated SQL. + This primarily affects H2 and Oracle, both of which support folding identifiers to uppercase, and PostgreSQL, which folds identifiers to lower case. + + If `preserveKeywordCasing = true` had been previously set in `DatabaseConfig` to remove logged warnings about any keyword identifiers, this can now be removed as the property is `true` by default. + + To temporarily opt-out of this behavior and to not keep the defined casing of keyword identifiers, please set `preserveKeywordCasing = false` in `DatabaseConfig`: +```kotlin +object TestTable : Table("table") { + val col = integer("select") +} + +// default behavior (preserveKeywordCasing is by default set to true) +// H2 generates SQL -> CREATE TABLE IF NOT EXISTS "table" ("select" INT NOT NULL) + +// with opt-out +Database.connect( + url = "jdbc:h2:mem:test", + driver = "org.h2.Driver", + databaseConfig = DatabaseConfig { + @OptIn(ExperimentalKeywordApi::class) + preserveKeywordCasing = false + } +) +// H2 generates SQL -> CREATE TABLE IF NOT EXISTS "TABLE" ("SELECT" INT NOT NULL) +``` + +**Note:** `preserveKeywordCasing` is an experimental flag and requires `@OptIn`. It may become deprecated in future releases. + ## 0.44.0 * `SpringTransactionManager` no longer extends `DataSourceTransactionManager`; instead, it directly extends `AbstractPlatformTransactionManager` while retaining the previous basic functionality. diff --git a/docs/ChangeLog.md b/docs/ChangeLog.md index a755bb84bf..2dfae60530 100644 --- a/docs/ChangeLog.md +++ b/docs/ChangeLog.md @@ -1,3 +1,43 @@ +# 0.46.0 +Infrastructure: +* Kotlinx Datetime JVM 0.5.0 +* Joda Time 2.12.5 +* Kotlinx Serialization Json 1.6.2 +* log4j2 2.22.0 +* slf4j 2.0.9 +* MariaDB (V3) driver 3.3.1 +* PostgreSQL driver 42.7.1 +* h2-database (V2) driver 2.2.224 +* SQLite driver 3.44.1.0 +* Spring Framework 6.1.2 +* Spring Boot 3.2.0 +* Spring Security Crypto 5.8.8 + +Breaking changes: +* chore!: EXPOSED-239 Set `preserveKeywordCasing` flag to true by default by @bog-walk in https://github.com/JetBrains/Exposed/pull/1948 +* More details at [Breaking changes](BREAKING_CHANGES.md#0460) + +Features: +* feat: EXPOSED-65 Design query DSL consistent with SQL language by @bog-walk in https://github.com/JetBrains/Exposed/pull/1916 +* More details in the [Migration guide](MIGRATION_GUIDE.md#migrating-from-0450-to-0460) + +Bug fixes: +* perf: EXPOSED-204 Performance problem with getConnection() by @bog-walk in https://github.com/JetBrains/Exposed/pull/1943 +* fix: EXPOSED-242 [PostgreSQL] Cannot change connection setting in middle of a transaction by @bog-walk in https://github.com/JetBrains/Exposed/pull/1949 + +Build: +* build: Add dependencies to Version Catalog by @pank-su in https://github.com/JetBrains/Exposed/pull/1887 + +Docs: +* docs: Add KDoc for `databaseGenerated` feature by @joc-a in https://github.com/JetBrains/Exposed/pull/1904 +* WRS-3621 Update project configuration by @e5l in https://github.com/JetBrains/Exposed/pull/1911 +* docs: Add missing Wiki documentation by @bog-walk in https://github.com/JetBrains/Exposed/pull/1910 +* docs: Apply query DSL changes to writerside docs by @bog-walk in https://github.com/JetBrains/Exposed/pull/1926 +* docs: Add missing KDocs for exposed-core queries API by @bog-walk in https://github.com/JetBrains/Exposed/pull/1941 +* docs: Add missing KDocs for exposed-core database API by @bog-walk in https://github.com/JetBrains/Exposed/pull/1945 +* docs: Add missing KDocs for exposed-core table API by @bog-walk in https://github.com/JetBrains/Exposed/pull/1946 +* docs: Add MIGRATION_GUIDE by @bog-walk in https://github.com/JetBrains/Exposed/pull/1933 + # 0.45.0 Infrastructure: * Kotlin 1.9.21 diff --git a/documentation-website/Writerside/topics/Getting-Started.md b/documentation-website/Writerside/topics/Getting-Started.md index 86c2a4a560..f305b7e8ac 100644 --- a/documentation-website/Writerside/topics/Getting-Started.md +++ b/documentation-website/Writerside/topics/Getting-Started.md @@ -18,17 +18,17 @@ org.jetbrains.exposed exposed-core - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-dao - 0.45.0 + 0.46.0 org.jetbrains.exposed exposed-jdbc - 0.45.0 + 0.46.0 ]]> @@ -37,7 +37,7 @@ - val exposedVersion: String = "0.45.0" + val exposedVersion: String = "0.46.0" dependencies { implementation("org.jetbrains.exposed:exposed-core:$exposedVersion") implementation("org.jetbrains.exposed:exposed-crypt:$exposedVersion") @@ -88,59 +88,59 @@ Dependencies mapping listed below is similar (by functionality) to the previous <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-core</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-crypt</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-dao</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-java-time</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-jdbc</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-jodatime</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-json</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-kotlin-datetime</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-money</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> <dependency> <groupId>org.jetbrains.exposed</groupId> <artifactId>exposed-spring-boot-starter</artifactId> - <version>0.45.0</version> + <version>0.46.0</version> </dependency> </dependencies> - def exposedVersion = "0.45.0" + def exposedVersion = "0.46.0" dependencies { implementation "org.jetbrains.exposed:exposed-core:$exposedVersion" implementation "org.jetbrains.exposed:exposed-crypt:$exposedVersion" diff --git a/exposed-bom/README.md b/exposed-bom/README.md index 150b43ade3..88fa18bff5 100644 --- a/exposed-bom/README.md +++ b/exposed-bom/README.md @@ -17,7 +17,7 @@ Bill of Materials for all Exposed modules org.jetbrains.exposed exposed-bom - 0.45.0 + 0.46.0 pom import @@ -51,7 +51,7 @@ repositories { } dependencies { - implementation(platform("org.jetbrains.exposed:exposed-bom:0.45.0")) + implementation(platform("org.jetbrains.exposed:exposed-bom:0.46.0")) implementation("org.jetbrains.exposed", "exposed-core") implementation("org.jetbrains.exposed", "exposed-dao") implementation("org.jetbrains.exposed", "exposed-jdbc") diff --git a/exposed-spring-boot-starter/README.md b/exposed-spring-boot-starter/README.md index dd1d137038..eaae7eb796 100644 --- a/exposed-spring-boot-starter/README.md +++ b/exposed-spring-boot-starter/README.md @@ -18,7 +18,7 @@ This starter will give you the latest version of [Exposed](https://github.com/Je org.jetbrains.exposed exposed-spring-boot-starter - 0.45.0 + 0.46.0 ``` @@ -28,7 +28,7 @@ repositories { mavenCentral() } dependencies { - implementation 'org.jetbrains.exposed:exposed-spring-boot-starter:0.45.0' + implementation 'org.jetbrains.exposed:exposed-spring-boot-starter:0.46.0' } ``` ### Gradle Kotlin DSL @@ -44,7 +44,7 @@ dependencies { ``` In `gradle.properties` ```properties -exposedVersion=0.45.0 +exposedVersion=0.46.0 ``` ## Setting up a database connection diff --git a/gradle.properties b/gradle.properties index 6c8c9fd504..3062d031c7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,4 +4,4 @@ org.gradle.configuration.cache=true org.gradle.caching=true group=org.jetbrains.exposed -version=0.45.0 +version=0.46.0 diff --git a/samples/exposed-ktor/gradle.properties b/samples/exposed-ktor/gradle.properties index c4452a5bc1..7ef191cf2e 100644 --- a/samples/exposed-ktor/gradle.properties +++ b/samples/exposed-ktor/gradle.properties @@ -2,5 +2,5 @@ ktorVersion=2.3.4 kotlinVersion=1.8.10 logbackVersion=1.2.11 kotlin.code.style=official -exposedVersion=0.45.0 +exposedVersion=0.46.0 h2Version=2.1.214 diff --git a/samples/exposed-spring/gradle.properties b/samples/exposed-spring/gradle.properties index 66c485aafd..10ef4e9c54 100644 --- a/samples/exposed-spring/gradle.properties +++ b/samples/exposed-spring/gradle.properties @@ -1,2 +1,2 @@ -exposedVersion=0.45.0 +exposedVersion=0.46.0 kotlinVersion=1.8.21