Skip to content

Commit 263ef28

Browse files
committed
chore: release v3.9.0
1 parent da2ee87 commit 263ef28

File tree

31 files changed

+122
-95
lines changed

31 files changed

+122
-95
lines changed

CHANGELOG.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,34 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
## [3.8.0](https://github.com/tempestphp/tempest-framework/compare/v3.7.1..3.8.0) — 2026-03-27
5+
## [3.9.0](https://github.com/tempestphp/tempest-framework/compare/v3.8.0..3.9.0) — 2026-04-01
6+
7+
### 🚨 Breaking changes
8+
9+
- **core**: [**breaking**] migrate installers from interfaces to attributes (#2073) ([f116247](https://github.com/tempestphp/tempest-framework/commit/f1162475c1a432bec8d9c8442f46f7c895db7765))
10+
11+
### 🚀 Features
12+
13+
- **database**: add support for `whereHas` and `whereDoesntHave` (#2081) ([5469e01](https://github.com/tempestphp/tempest-framework/commit/5469e0107937302ea572ad4ffb0749b0a38d44d5))
14+
- **database**: add `min`, `max`, `avg` and `sum` to query builders (#2083) ([c83783c](https://github.com/tempestphp/tempest-framework/commit/c83783cd6e7109cb0ff54d878fd065d9006574ac))
15+
- **discovery**: support containers with autowiring (#2084) ([4a85663](https://github.com/tempestphp/tempest-framework/commit/4a85663685b0f8af3e3894934dbf5b4711e4abde))
16+
17+
### ⚡ Performance
18+
19+
- **discovery**: support caching discovery in one build pass (#2085) ([5e1731f](https://github.com/tempestphp/tempest-framework/commit/5e1731f94689626c720b1c9b5bd3a0d938419815))
20+
21+
### 🐛 Bug fixes
22+
23+
- **core**: properly check paths during config loading on Windows (#2091) ([e71f2b3](https://github.com/tempestphp/tempest-framework/commit/e71f2b39ec375e820c0a22dbb4f919f435d8bdda))
24+
- **database**: convert backtick identifiers to double quotes for postgres (#2093) ([c0d6ebe](https://github.com/tempestphp/tempest-framework/commit/c0d6ebefd082d3ae0e5cc637fa8c62f9ad613d7d))
25+
- **database**: check explicit relation attributes after singularizing property names (#2090) ([ccd398f](https://github.com/tempestphp/tempest-framework/commit/ccd398fe8a3ae55ec16808b96df38d63c2ccd82d))
26+
- **database**: support multiple model properties joining the same table (#2080) ([806c7c0](https://github.com/tempestphp/tempest-framework/commit/806c7c0d70537e65aa8ed6b4dbcc20cbf2d177b8))
27+
- **database**: target `whereHas` callback to the target table instead of the pivot table (#2095) ([da2ee87](https://github.com/tempestphp/tempest-framework/commit/da2ee878736a29edf7424131585e9b883eda1623))
28+
- **discovery**: discover packages using `tempest/discovery` (#2082) ([148c698](https://github.com/tempestphp/tempest-framework/commit/148c6986ac21ab85281fe50af54eb271a1585e40))
29+
- **intl**: handle snake case when singularizing/pluralizing last words (#2089) ([ba92595](https://github.com/tempestphp/tempest-framework/commit/ba925951610e8987599a77663e7d8e779b8af89d))
30+
31+
32+
## [3.8.0](https://github.com/tempestphp/tempest-framework/compare/v3.7.1..v3.8.0) — 2026-03-27
633

734
### 🚀 Features
835

packages/auth/composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
"description": "A flexible authentication package for Tempest, providing authentication and authorization.",
44
"require": {
55
"php": "^8.5",
6-
"tempest/core": "3.x-dev",
7-
"tempest/router": "3.x-dev",
8-
"tempest/database": "3.x-dev",
9-
"tempest/mapper": "3.x-dev",
6+
"tempest/core": "3.9.0",
7+
"tempest/router": "3.9.0",
8+
"tempest/database": "3.9.0",
9+
"tempest/mapper": "3.9.0",
1010
"league/oauth2-client": "^2.8"
1111
},
1212
"require-dev": {

packages/cache/composer.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
"php": "^8.5",
66
"psr/cache": "^3.0",
77
"symfony/cache": "^7.3",
8-
"tempest/core": "3.x-dev",
9-
"tempest/clock": "3.x-dev",
10-
"tempest/kv-store": "3.x-dev",
11-
"tempest/container": "3.x-dev"
8+
"tempest/core": "3.9.0",
9+
"tempest/clock": "3.9.0",
10+
"tempest/kv-store": "3.9.0",
11+
"tempest/container": "3.9.0"
1212
},
1313
"require-dev": {
14-
"tempest/clock": "3.x-dev"
14+
"tempest/clock": "3.9.0"
1515
},
1616
"autoload": {
1717
"psr-4": {

packages/clock/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"require": {
55
"php": "^8.5",
66
"psr/clock": "^1.0.0",
7-
"tempest/datetime": "3.x-dev"
7+
"tempest/datetime": "3.9.0"
88
},
99
"autoload": {
1010
"psr-4": {

packages/command-bus/composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
"description": "A command bus component designed to dispatch commands to their respective handlers.",
44
"require": {
55
"php": "^8.5",
6-
"tempest/core": "3.x-dev",
7-
"tempest/console": "3.x-dev",
8-
"tempest/container": "3.x-dev"
6+
"tempest/core": "3.9.0",
7+
"tempest/console": "3.9.0",
8+
"tempest/container": "3.9.0"
99
},
1010
"autoload": {
1111
"files": [

packages/console/composer.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
"require": {
77
"php": "^8.5",
88
"symfony/filesystem": "^7.3",
9-
"tempest/core": "3.x-dev",
10-
"tempest/container": "3.x-dev",
11-
"tempest/generation": "3.x-dev",
9+
"tempest/core": "3.9.0",
10+
"tempest/container": "3.9.0",
11+
"tempest/generation": "3.9.0",
1212
"tempest/highlight": "^2.11.4",
13-
"tempest/log": "3.x-dev",
14-
"tempest/reflection": "3.x-dev",
15-
"tempest/support": "3.x-dev",
16-
"tempest/validation": "3.x-dev",
13+
"tempest/log": "3.9.0",
14+
"tempest/reflection": "3.9.0",
15+
"tempest/support": "3.9.0",
16+
"tempest/validation": "3.9.0",
1717
"ext-readline": "*"
1818
},
1919
"suggest": {

packages/container/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"minimum-stability": "dev",
66
"require": {
77
"php": "^8.5",
8-
"tempest/reflection": "3.x-dev",
8+
"tempest/reflection": "3.9.0",
99
"psr/container": "^2.0"
1010
},
1111
"autoload": {

packages/core/composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
"minimum-stability": "dev",
66
"require": {
77
"php": "^8.5",
8-
"tempest/container": "3.x-dev",
9-
"tempest/discovery": "3.x-dev",
10-
"tempest/reflection": "3.x-dev",
11-
"tempest/support": "3.x-dev",
8+
"tempest/container": "3.9.0",
9+
"tempest/discovery": "3.9.0",
10+
"tempest/reflection": "3.9.0",
11+
"tempest/support": "3.9.0",
1212
"vlucas/phpdotenv": "^5.6.1",
1313
"symfony/cache": "^7.3",
1414
"filp/whoops": "^2.15"
1515
},
1616
"require-dev": {
17-
"tempest/validation": "3.x-dev",
18-
"tempest/intl": "3.x-dev"
17+
"tempest/validation": "3.9.0",
18+
"tempest/intl": "3.9.0"
1919
},
2020
"autoload": {
2121
"psr-4": {

packages/core/src/Kernel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
interface Kernel
1010
{
11-
public const string VERSION = '3.8.0';
11+
public const string VERSION = '3.9.0';
1212

1313
public string $root { get; }
1414

packages/cryptography/composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"minimum-stability": "dev",
66
"require": {
77
"php": "^8.5",
8-
"tempest/container": "3.x-dev",
9-
"tempest/support": "3.x-dev",
10-
"tempest/clock": "3.x-dev"
8+
"tempest/container": "3.9.0",
9+
"tempest/support": "3.9.0",
10+
"tempest/clock": "3.9.0"
1111
},
1212
"autoload": {
1313
"psr-4": {

0 commit comments

Comments
 (0)