Skip to content

Commit 87a2efd

Browse files
committed
Merge branch 'main' into feat/logging-improvements
2 parents 7b062b2 + 87b2f7b commit 87a2efd

File tree

319 files changed

+5072
-1733
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

319 files changed

+5072
-1733
lines changed

β€Ž.env.exampleβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
ENVIRONMENT=local
33

44
# The base URI that's used for all generated URIs
5-
BASE_URI=http://localhost
5+
BASE_URI=http://localhost:8000
66

77
# Setting to `false` force-disable internal caches.
88
INTERNAL_CACHES=true
99

1010
# Enable or disable discovery cache. Can be `true`, `partial` or `false`.
11-
DISCOVERY_CACHE=false
11+
DISCOVERY_CACHE=partial
1212

1313
# Overwrite default log paths (null = default)
1414
DEBUG_LOG_PATH=null

β€Ž.github/workflows/create-gh-release.ymlβ€Ž

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,22 @@ jobs:
3636
with:
3737
body_path: release_notes.txt
3838
tag_name: ${{ github.ref_name }}
39+
40+
- name: Broadcast release on Discord
41+
env:
42+
DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK_URL }}
43+
RELEASE_URL: https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}
44+
RELEASE_TAG: ${{ github.ref_name }}
45+
run: |
46+
processed_body=$(cat release_notes.txt | perl -0777 -pe 's/\n*### (\S+) (.+?)\n+/\n### `\1` \2\n/g')
47+
processed_body="${processed_body#$'\n'}"
48+
final_content=$(printf "%s\n%s" "-# Read the [GitHub release](<${RELEASE_URL}>)." "$processed_body")
49+
jq -n \
50+
--arg content "$final_content" \
51+
--arg username "Tempest ${RELEASE_TAG}" \
52+
'{
53+
content: $content,
54+
username: $username
55+
}' | curl -X POST "$DISCORD_WEBHOOK" \
56+
-H "Content-Type: application/json" \
57+
-d @-
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
name: Integration Tests (Windows)
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
- cron: '0 8 * * *'
7+
env:
8+
POSTGRES_USER: runner
9+
POSTGRES_PASSWORD: ""
10+
POSTGRES_DB: postgres
11+
12+
jobs:
13+
vitest:
14+
runs-on: ${{ matrix.os }}
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
php:
19+
- 8.4
20+
os:
21+
- windows-latest
22+
env:
23+
POSTGRES_USER: ${{ matrix.os == 'windows-latest' && 'postgres' || 'runner' }}
24+
25+
name: "Run tests: ${{ matrix.os }}"
26+
27+
steps:
28+
- name: Checkout code
29+
uses: actions/checkout@v4
30+
31+
- name: Setup PHP
32+
uses: shivammathur/setup-php@v2
33+
with:
34+
php-version: ${{ matrix.php }}
35+
extensions: dom, curl, libxml, mbstring, pcntl, fileinfo, pdo, sqlite, pdo_sqlite, pdo_mysql, pdo_pgsql, intl, ftp, zip
36+
coverage: pcov
37+
38+
- name: Setup Bun
39+
uses: oven-sh/setup-bun@v2
40+
41+
- name: Install dependencies
42+
run: bun install --frozen-lockfile
43+
44+
- name: Run build
45+
run: bun run build
46+
47+
- name: Run tests
48+
run: bun run test
49+
50+
phpunit:
51+
runs-on: ${{ matrix.os }}
52+
strategy:
53+
fail-fast: false
54+
matrix:
55+
os:
56+
- windows-latest
57+
php:
58+
- 8.4
59+
database:
60+
- sqlite
61+
- mysql
62+
- postgres
63+
stability:
64+
- prefer-stable
65+
env:
66+
POSTGRES_USER: ${{ matrix.os == 'windows-latest' && 'postgres' || 'runner' }}
67+
68+
name: "Run tests: PHP ${{ matrix.php }} - ${{ matrix.database }} - ${{ matrix.stability }} - ${{ matrix.os }}"
69+
70+
steps:
71+
- name: Checkout code
72+
uses: actions/checkout@v4
73+
74+
- name: Setup PHP
75+
uses: shivammathur/setup-php@v2
76+
with:
77+
php-version: ${{ matrix.php }}
78+
extensions: dom, curl, libxml, mbstring, pcntl, fileinfo, pdo, sqlite, pdo_sqlite, pdo_mysql, pdo_pgsql, intl, ftp, zip
79+
coverage: pcov
80+
81+
- name: Setup problem matchers
82+
run: |
83+
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
84+
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
85+
86+
- name: Install dependencies
87+
run: composer update --${{ matrix.stability }} --prefer-dist --no-interaction
88+
89+
- name: "Setup Redis"
90+
if: ${{ matrix.os != 'windows-latest' }}
91+
uses: supercharge/[email protected]
92+
93+
- name: "Setup MySQL"
94+
if: ${{ matrix.database == 'mysql' }}
95+
uses: ankane/setup-mysql@v1
96+
with:
97+
mysql-version: 8.0
98+
database: "app"
99+
100+
- name: "Setup PostgreSQL"
101+
if: ${{ matrix.database == 'postgres' }}
102+
uses: ankane/setup-postgres@v1
103+
104+
- name: Set database config - ${{ matrix.database }}
105+
run: php -r "copy('tests/Fixtures/Config/database.${{ matrix.database }}.php', 'tests/Fixtures/Config/database.config.php');"
106+
107+
- name: Tempest about
108+
run: php ./tempest about -v
109+
110+
- name: List discovered locations
111+
run: php ./tempest discovery:status
112+
113+
- name: Execute tests
114+
run: php -d"error_reporting = E_ALL & ~E_DEPRECATED" -dmemory_limit=1G vendor/bin/phpunit

β€Ž.github/workflows/integration-tests.ymlβ€Ž

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- 8.4
2424
os:
2525
- ubuntu-latest
26-
- windows-latest
26+
# - windows-latest
2727

2828
name: "Run tests: ${{ matrix.os }}"
2929

@@ -35,7 +35,7 @@ jobs:
3535
uses: shivammathur/setup-php@v2
3636
with:
3737
php-version: ${{ matrix.php }}
38-
extensions: dom, curl, libxml, mbstring, pcntl, fileinfo, pdo, sqlite, pdo_sqlite, pdo_mysql, pdo_pgsql intl, ftp, zip
38+
extensions: dom, curl, libxml, mbstring, pcntl, fileinfo, pdo, sqlite, pdo_sqlite, pdo_mysql, pdo_pgsql, intl, ftp, zip
3939
coverage: pcov
4040

4141
- name: Setup Bun
@@ -57,7 +57,7 @@ jobs:
5757
matrix:
5858
os:
5959
- ubuntu-latest
60-
- windows-latest
60+
# - windows-latest
6161
php:
6262
- 8.4
6363
database:
@@ -67,9 +67,9 @@ jobs:
6767
stability:
6868
- prefer-stable
6969
- prefer-lowest
70-
exclude:
71-
- os: windows-latest
72-
database: postgres
70+
# exclude:
71+
# - os: windows-latest
72+
# database: postgres
7373

7474
name: "Run tests: PHP ${{ matrix.php }} - ${{ matrix.database }} - ${{ matrix.stability }} - ${{ matrix.os }}"
7575

@@ -81,7 +81,7 @@ jobs:
8181
uses: shivammathur/setup-php@v2
8282
with:
8383
php-version: ${{ matrix.php }}
84-
extensions: dom, curl, libxml, mbstring, pcntl, fileinfo, pdo, sqlite, pdo_sqlite, pdo_mysql, intl, ftp, zip
84+
extensions: dom, curl, libxml, mbstring, pcntl, fileinfo, pdo, sqlite, pdo_sqlite, pdo_mysql, pdo_pgsql, intl, ftp, zip
8585
coverage: pcov
8686

8787
- name: Setup problem matchers

β€Ž.github/workflows/isolated-tests.ymlβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
uses: supercharge/[email protected]
6767

6868
- name: Install PHPUnit
69-
run: composer global require phpunit/phpunit:^12.2.3
69+
run: composer global require phpunit/phpunit:12.4.0
7070

7171
- name: Setup problem matchers
7272
run: |

β€ŽCHANGELOG.mdβ€Ž

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

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

5-
## [2.2.0](https://github.com/tempestphp/tempest-framework/compare/v2.1.0..2.2.0) β€” 2025-10-02
5+
## [2.8.0](https://github.com/tempestphp/tempest-framework/compare/v2.7.2..2.8.0) β€” 2025-11-10
6+
7+
### 🚨 Breaking changes
8+
9+
- **router**: [**breaking**] add route decorators (#1695) ([c901dfe](https://github.com/tempestphp/tempest-framework/commit/c901dfeec7c01394a4481a08ca8381988a0b03ad))
10+
11+
12+
## [2.7.2](https://github.com/tempestphp/tempest-framework/compare/v2.7.1..v2.7.2) β€” 2025-11-10
13+
14+
### πŸ› Bug fixes
15+
16+
- **console**: respect default value in confirm when forced (#1698) ([708c8f9](https://github.com/tempestphp/tempest-framework/commit/708c8f9ee5cef6c19d26e8ebcb069633341413ce))
17+
18+
19+
## [2.7.1](https://github.com/tempestphp/tempest-framework/compare/v2.7.0..v2.7.1) β€” 2025-11-09
20+
21+
### πŸš€ Features
22+
23+
- **auth**: mark password property with `#[SensitiveParameter]` (#1693) ([129fdd5](https://github.com/tempestphp/tempest-framework/commit/129fdd54cd989203508b461bbbbddf85448aabb7))
24+
25+
### πŸ› Bug fixes
26+
27+
- **view**: discovery locations for view compiler (#1701) ([8604b86](https://github.com/tempestphp/tempest-framework/commit/8604b86e3118a79f8813df5a6f2315a802368a5c))
28+
29+
30+
## [2.7.0](https://github.com/tempestphp/tempest-framework/compare/v2.6.3..v2.7.0) β€” 2025-11-07
31+
32+
### πŸš€ Features
33+
34+
- **router**: add `#[Stateless]` attribute (#1692) ([86d140d](https://github.com/tempestphp/tempest-framework/commit/86d140d8ac03b9fb1c49eaa867cc89fa448f5da8))
35+
36+
37+
## [2.6.3](https://github.com/tempestphp/tempest-framework/compare/v2.6.2..v2.6.3) β€” 2025-11-07
38+
39+
### πŸ› Bug fixes
40+
41+
- **database**: revert broken mysql dsn changes (#1689) ([9edc4d2](https://github.com/tempestphp/tempest-framework/commit/9edc4d2ba4e132aeb5bba6f6114a60b175f50b2a))
42+
43+
44+
## [2.6.2](https://github.com/tempestphp/tempest-framework/compare/v2.6.1..v2.6.2) β€” 2025-11-07
45+
46+
### πŸ› Bug fixes
47+
48+
- **http**: cleanup session without starting a new one (#1688) ([9a7dee6](https://github.com/tempestphp/tempest-framework/commit/9a7dee6491e314841fb758223370cdaeb5e88239))
49+
50+
51+
## [2.6.1](https://github.com/tempestphp/tempest-framework/compare/v2.6.0..v2.6.1) β€” 2025-11-07
52+
53+
### πŸ› Bug fixes
54+
55+
- **http**: gracefully recover from corrupt session retrieval (#1687) ([8c5d8cc](https://github.com/tempestphp/tempest-framework/commit/8c5d8cc501096a27aaeb96e520643727e741eec9))
56+
57+
58+
## [2.6.0](https://github.com/tempestphp/tempest-framework/compare/v2.5.0..v2.6.0) β€” 2025-11-07
59+
60+
### πŸš€ Features
61+
62+
- **view**: standalone `TempestViewRenderer` support (#1686) ([2f5a3bc](https://github.com/tempestphp/tempest-framework/commit/2f5a3bc317f24852bdff5851a70bb8007248c0aa))
63+
64+
65+
## [2.5.0](https://github.com/tempestphp/tempest-framework/compare/v2.4.0..v2.5.0) β€” 2025-11-06
66+
67+
### πŸš€ Features
68+
69+
- **core**: support booting in phar (#1672) ([536db47](https://github.com/tempestphp/tempest-framework/commit/536db4750fa5c2d1497e93645199be333a558132))
70+
- **core**: make discovery cache environment variable partial by default (#1682) ([f50af80](https://github.com/tempestphp/tempest-framework/commit/f50af80f5f72ff467b827ef18341b03c2569aef0))
71+
- **view**: add `:isset` attribte (#1675) ([1af3b23](https://github.com/tempestphp/tempest-framework/commit/1af3b23e843d7646617413a57b4fb0a8fa9ff3a4))
72+
- **view**: support single-quote attributes (#1678) ([071993a](https://github.com/tempestphp/tempest-framework/commit/071993ab2b29e3a909812062bfbccaf482c6f2f8))
73+
74+
### πŸ› Bug fixes
75+
76+
- **database**: fix dsn format for mysql connection (#1664) ([6c3cbe2](https://github.com/tempestphp/tempest-framework/commit/6c3cbe24442353d85a6a05d9a5320fb6a01e3301))
77+
- **events**: prevent enum event naming collisions (#1681) ([1602654](https://github.com/tempestphp/tempest-framework/commit/16026543ab6f38d4f676b95c58797d83a56c089d))
78+
- **view**: zero-values in attributes (#1679) ([66dda2f](https://github.com/tempestphp/tempest-framework/commit/66dda2f2f57b4292e96348904901cf27fac84cb8))
79+
- psr-discovery dependency (#1655) ([a1679a1](https://github.com/tempestphp/tempest-framework/commit/a1679a125de8eb32bafe576d78d2af6a829ee641))
80+
81+
82+
## [2.4.0](https://github.com/tempestphp/tempest-framework/compare/v2.3.3..v2.4.0) β€” 2025-10-22
83+
84+
### 🚨 Breaking changes
85+
86+
- **http**: [**breaking**] add `--crawl` flag to `static:generate` command (#1656) ([fee1230](https://github.com/tempestphp/tempest-framework/commit/fee1230971fed3cc7ec1836fe29c89f5d32a87b5))
87+
88+
### πŸš€ Features
89+
90+
- **http**: add accepts helper method (#1638) ([b61d352](https://github.com/tempestphp/tempest-framework/commit/b61d352e9842fc5a4bcd5aef7ec93ae63bba8a6b))
91+
- **intl**: add `current_locale` util (#1643) ([1dab1c7](https://github.com/tempestphp/tempest-framework/commit/1dab1c7e6629725e81f40e13aefd6dbcf81302ff))
92+
93+
### πŸ› Bug fixes
94+
95+
- **auth**: invalid key file arguments for Apple OAuth provider (#1640) ([bf476c0](https://github.com/tempestphp/tempest-framework/commit/bf476c00ac80e6b2ef6abbbfbd2159f180d3bb33))
96+
- **http**: desrialize csrf token from headers (#1616) ([d1ee721](https://github.com/tempestphp/tempest-framework/commit/d1ee7211e9dd457350fc9d22819e09de22beafff))
97+
- **reflection**: return null for method return type if not defined (#1645) ([b3acd5f](https://github.com/tempestphp/tempest-framework/commit/b3acd5f4cf6195ab9047a1b8ca21b8b50d4cddb1))
98+
- **view**: handle boolean attribute followed by non space whitespace or self-closing tags (#1632) ([cd226a3](https://github.com/tempestphp/tempest-framework/commit/cd226a3d9ad99875cf2bc707b2e8e5820f739c0a))
99+
100+
101+
## [2.3.3](https://github.com/tempestphp/tempest-framework/compare/v2.3.2..v2.3.3) β€” 2025-10-09
102+
103+
### πŸš€ Features
104+
105+
- **http**: support passing `JsonSerializable` to `Json` response (#1626) ([930e7ee](https://github.com/tempestphp/tempest-framework/commit/930e7eed7cecde43ebf61d9928f71fbdd0c57301))
106+
107+
### πŸ› Bug fixes
108+
109+
- **core**: optional dependency guards (#1630) ([1b23fd4](https://github.com/tempestphp/tempest-framework/commit/1b23fd4113a6f42a89b0894714ad48e86801ac33))
110+
111+
112+
## [2.3.2](https://github.com/tempestphp/tempest-framework/compare/v2.3.1..v2.3.2) β€” 2025-10-08
113+
114+
### πŸ› Bug fixes
115+
116+
- **installer**: set correct default port on base_uri (#1625) ([ef00d98](https://github.com/tempestphp/tempest-framework/commit/ef00d98f5996882dcac5898dc64e9f467512548f))
117+
- make package dependencies optional where possible (#1624) ([530c226](https://github.com/tempestphp/tempest-framework/commit/530c226b51732e6e290b575e7a55cda751f05cd9))
118+
119+
120+
## [2.3.1](https://github.com/tempestphp/tempest-framework/compare/v2.3.0..v2.3.1) β€” 2025-10-07
121+
122+
### πŸ› Bug fixes
123+
124+
- **view**: support void tag rendering for XML files (#1621) ([a395534](https://github.com/tempestphp/tempest-framework/commit/a3955340171d2ae8eb4a35934418906e40026c34))
125+
126+
127+
## [2.3.0](https://github.com/tempestphp/tempest-framework/compare/v2.2.1..v2.3.0) β€” 2025-10-06
128+
129+
### πŸš€ Features
130+
131+
- **console**: support variadic argument (#1572) ([b5f4185](https://github.com/tempestphp/tempest-framework/commit/b5f41858d6674efca092d71f3504323392a103f4))
132+
- **container**: support decorators (#1537) ([2d29bd5](https://github.com/tempestphp/tempest-framework/commit/2d29bd5452e2363b4e44b5218df9a9291f1798cf))
133+
- **http**: support database-based sessions (#1605) ([174044c](https://github.com/tempestphp/tempest-framework/commit/174044c7726d8d804465474ab2905c43cc0113df))
134+
- **view**: parse RSS feeds with tempest/view (#1617) ([7398040](https://github.com/tempestphp/tempest-framework/commit/7398040393997d886f59fb4a8ba6d351ee56f9ac))
135+
136+
### πŸ› Bug fixes
137+
138+
- **database**: handle loading circular eager relations (#1556) ([b2e0c75](https://github.com/tempestphp/tempest-framework/commit/b2e0c75c67eb46458d4c8c32f9ae289b4a7ad930))
139+
- **database**: multiple select fields in one statement (#1603) ([cd51bcf](https://github.com/tempestphp/tempest-framework/commit/cd51bcf9a8c9380d216295178517d4202b40561c))
140+
- **http**: improve failed request exception messages (#1598) ([a84ce29](https://github.com/tempestphp/tempest-framework/commit/a84ce292496175de43a3685aece3210863a1fc2d))
141+
- **http**: publish migration during database session driver installation (#1606) ([2d6fa1b](https://github.com/tempestphp/tempest-framework/commit/2d6fa1b843deaddc998f0cd59c9abbc5e03e982c))
142+
143+
144+
## [2.2.1](https://github.com/tempestphp/tempest-framework/compare/v2.2.0..v2.2.1) β€” 2025-10-03
145+
146+
### πŸ› Bug fixes
147+
148+
- **database**: update or create with initial values (#1597) ([d4450aa](https://github.com/tempestphp/tempest-framework/commit/d4450aa6a3b5bab0ccad38617b698ba51a5fe705))
149+
150+
151+
## [2.2.0](https://github.com/tempestphp/tempest-framework/compare/v2.1.0..v2.2.0) β€” 2025-10-02
6152

7153
### πŸš€ Features
8154

0 commit comments

Comments
Β (0)