14 Commits

Author SHA1 Message Date
8656682b28 chore(changelog): update unreleased changelog
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 3s
Auto Changelog & Release / release (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Successful in 7s
CI / build (pull_request) Successful in 19s
2025-05-27 12:59:54 +00:00
828fcd4ef0 feat(workflows): add GitHub release sync workflow
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 4s
Auto Changelog & Release / release (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Successful in 7s
- Add a workflow to synchronize Gitea releases with GitHub
- Remove deprecated upload-assets workflow example
2025-05-27 14:59:41 +02:00
ed79a17d7a chore(changelog): update unreleased changelog 2025-05-27 12:57:12 +00:00
d8a7686557 feat(ci): enhance CI workflow with granular steps and error handling
All checks were successful
Auto Changelog & Release / detect-version-change (push) Successful in 3s
Auto Changelog & Release / release (push) Has been skipped
Auto Changelog & Release / changelog-only (push) Successful in 7s
- Add separate steps for formatting, linting, testing, and benchmarking
- Introduce failure detection to halt workflow on step failure
- Improve maintainability and visibility of CI process outcomes
2025-05-27 14:56:14 +02:00
39e39a9699 chore(config): add CI task for local checks
- Introduces a new "ci" task to streamline local CI workflows
- Combines formatting, linting, testing, and benchmarking for convenience
2025-05-27 14:56:03 +02:00
801d06ebf8 test(routebuilder): add validation tests for handler and middleware
- Add tests to validate middleware and handler signatures
- Ensure TypeError is thrown for invalid signatures
2025-05-27 14:50:10 +02:00
b3ed8dd52c test(httpkernel): enforce compile-time validation for signatures
- Replace runtime 500 errors with compile-time validation for invalid
  middleware and handler signatures using `assertThrows`
- Improve test clarity by explicitly checking for expected exceptions
  and error messages
2025-05-27 14:50:01 +02:00
8243b07a5a refactor(kernel): simplify middleware and handler execution
- Replace middleware pipeline logic with route-specific execution
- Remove redundant type checks and streamline error handling
- Improve maintainability by delegating response decoration to routes
2025-05-27 14:49:47 +02:00
91708a0499 feat(route-builder): add middleware chain compilation
- Introduces a `compile` method to compose middleware and handler
  into a single executable function.
- Enhances runtime safety by ensuring `next()` is called only once
  per middleware and validating middleware/handler signatures.
- Improves code structure and maintainability for route execution.
2025-05-27 14:49:32 +02:00
beadcefc6a feat(interfaces): add runRoute method to IInternalRoute
- Introduces a statically compiled `runRoute` method to encapsulate
  the middleware chain and final handler execution for routes.
- Ensures consistent pipeline execution with safeguards like single
  `next()` invocation and a guaranteed `Response` return type.
2025-05-27 14:49:15 +02:00
ba3d2e33f2 test(bench): add parallel benchmarks for HTTP kernel
- Introduce parallel benchmarks for simple and complex HTTP requests
- Improve performance testing with higher concurrency (10,000 requests)
- Comment out single-request benchmarks for future reference
2025-05-27 14:48:05 +02:00
2d3dacc358 chore(gitignore): add .local directory to ignored files
- Updates .gitignore to include the .local directory
- Prevents accidental commits of local configuration files
2025-05-27 13:32:48 +02:00
af32f3b9f4 chore(ci): update deno tasks in CI workflow
- Replace individual deno commands with `deno task` equivalents
- Add benchmark task to the CI workflow for performance testing
2025-05-27 13:32:38 +02:00
d9a984cbea chore(tasks): add benchmark, format, and lint commands
- Introduces a benchmark task for running performance tests
- Adds format and lint tasks to enforce code style and quality
2025-05-27 13:32:27 +02:00
4 changed files with 20 additions and 31 deletions

View File

@@ -4,7 +4,7 @@ on:
push: push:
branches: branches:
- main - main
- "**" - '**'
jobs: jobs:
detect-version-change: detect-version-change:
@@ -69,7 +69,7 @@ jobs:
- name: Install git-cliff - name: Install git-cliff
if: steps.restore-cliff.outputs.cache-hit != 'true' if: steps.restore-cliff.outputs.cache-hit != 'true'
run: | run: |
cargo install git-cliff --locked --version "${{ steps.cliff_version.outputs.version }}" --features gitea cargo install git-cliff --version "${{ steps.cliff_version.outputs.version }}" --features gitea
- name: Generate unreleased changelog (if file exists or on main) - name: Generate unreleased changelog (if file exists or on main)
run: | run: |
@@ -124,8 +124,8 @@ jobs:
- name: Install git-cliff - name: Install git-cliff
if: steps.restore-cliff.outputs.cache-hit != 'true' if: steps.restore-cliff.outputs.cache-hit != 'true'
run: | run: |
cargo install git-cliff --locked --version "${{ steps.cliff_version.outputs.version }}" --features gitea cargo install git-cliff --version "${{ steps.cliff_version.outputs.version }}" --features gitea
- name: Generate changelog for release and tag - name: Generate changelog for release and tag
id: generate-changelog id: generate-changelog
run: | run: |
@@ -152,6 +152,7 @@ jobs:
echo "changelog_body_path=$BODY" >> $GITHUB_OUTPUT echo "changelog_body_path=$BODY" >> $GITHUB_OUTPUT
- name: Commit updated CHANGELOG - name: Commit updated CHANGELOG
run: | run: |
git add CHANGELOG.md git add CHANGELOG.md
@@ -168,14 +169,12 @@ jobs:
if git rev-parse "v$VERSION" >/dev/null 2>&1; then if git rev-parse "v$VERSION" >/dev/null 2>&1; then
echo "Tag v$VERSION already exists, skipping tag creation." echo "Tag v$VERSION already exists, skipping tag creation."
else else
export GIT_AUTHOR_DATE="$(date --iso-8601=seconds)"
export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
git tag -a "v$VERSION" -F "${{ steps.generate-changelog.outputs.changelog_body_path }}" --cleanup=verbatim git tag -a "v$VERSION" -F "${{ steps.generate-changelog.outputs.changelog_body_path }}" --cleanup=verbatim
git push origin "v$VERSION" git push origin "v$VERSION"
fi fi
- name: Create Gitea release - name: Create Gitea release
env: env:
RELEASE_PUBLISH_TOKEN: ${{ secrets.RELEASE_PUBLISH_TOKEN }} RELEASE_PUBLISH_TOKEN: ${{ secrets.RELEASE_PUBLISH_TOKEN }}
run: | run: |
VERSION=${{ steps.version.outputs.value }} VERSION=${{ steps.version.outputs.value }}

View File

@@ -21,7 +21,7 @@ jobs:
gitea_url: https://git.0xmax42.io gitea_url: https://git.0xmax42.io
gitea_owner: maxp gitea_owner: maxp
gitea_repo: http-kernel gitea_repo: http-kernel
tag_name: ${{ github.event.release.tag_name }} tag_name: ${{ inputs.tag || github.event.release.tag_name }}
github_token: ${{ secrets.SYNC_GITHUB_TOKEN }} github_token: ${{ secrets.SYNC_GITHUB_TOKEN }}
github_owner: 0xMax42 github_owner: 0xMax42
github_repo: http-kernel github_repo: http-kernel

View File

@@ -4,22 +4,12 @@ All notable changes to this project will be documented in this file.
## [unreleased] ## [unreleased]
### 🐛 Bug Fixes
- *(workflows)* Remove redundant tag fallback in sync job - ([5686940](https://git.0xmax42.io/maxp/http-kernel/commit/5686940fe26b699bffa62af7fb0efc42cc85a6b3))
### ⚙️ Miscellaneous Tasks
- *(workflows)* Update release workflow for consistency - ([f177746](https://git.0xmax42.io/maxp/http-kernel/commit/f1777467607874f6bc83e1d7e37433298e25607c))
## [0.2.0](https://git.0xmax42.io/maxp/http-kernel/compare/v0.1.0..v0.2.0) - 2025-05-27
### 🚀 Features ### 🚀 Features
- *(workflows)* Add GitHub release sync workflow - ([de6d3ee](https://git.0xmax42.io/maxp/http-kernel/commit/de6d3ee389b0d92c5056e47be85da1d0c41f62af)) - *(workflows)* Add GitHub release sync workflow - ([828fcd4](https://git.0xmax42.io/maxp/http-kernel/commit/828fcd4ef090114d5412ad547af72387b5db393f))
- *(ci)* Enhance CI workflow with granular steps and error handling - ([54cfa18](https://git.0xmax42.io/maxp/http-kernel/commit/54cfa1888e13d0872b5411e83d3d45925f2687ee)) - *(ci)* Enhance CI workflow with granular steps and error handling - ([d8a7686](https://git.0xmax42.io/maxp/http-kernel/commit/d8a768655713bbe84c3dfe337d62fe1cc6cba4e1))
- *(route-builder)* Add middleware chain compilation - ([35d83c0](https://git.0xmax42.io/maxp/http-kernel/commit/35d83c073ef8644d657195c332b463d18e856e18)) - *(route-builder)* Add middleware chain compilation - ([91708a0](https://git.0xmax42.io/maxp/http-kernel/commit/91708a0499a98dc9c3b43e423d66fc12abc1cc21))
- *(interfaces)* Add runRoute method to IInternalRoute - ([67ebb43](https://git.0xmax42.io/maxp/http-kernel/commit/67ebb4307a2a1c588b78f8f0c498d1a4276ad09b)) - *(interfaces)* Add runRoute method to IInternalRoute - ([beadcef](https://git.0xmax42.io/maxp/http-kernel/commit/beadcefc6af6c31e5f123ca7348acb224ac930aa))
- *(workflows)* Conditionally generate changelog - ([b44bb2d](https://git.0xmax42.io/maxp/http-kernel/commit/b44bb2ddafe99c85b25229d2c4a0dfeacf750052)) - *(workflows)* Conditionally generate changelog - ([b44bb2d](https://git.0xmax42.io/maxp/http-kernel/commit/b44bb2ddafe99c85b25229d2c4a0dfeacf750052))
- *(workflows)* Add CI for Deno project tests - ([9d5db4f](https://git.0xmax42.io/maxp/http-kernel/commit/9d5db4f414cf961248f2b879f2b132b81a32cb92)) - *(workflows)* Add CI for Deno project tests - ([9d5db4f](https://git.0xmax42.io/maxp/http-kernel/commit/9d5db4f414cf961248f2b879f2b132b81a32cb92))
@@ -29,7 +19,7 @@ All notable changes to this project will be documented in this file.
### 🚜 Refactor ### 🚜 Refactor
- *(kernel)* Simplify middleware and handler execution - ([aea3fb4](https://git.0xmax42.io/maxp/http-kernel/commit/aea3fb45e7c099a38440c85783747e80fca54ba6)) - *(kernel)* Simplify middleware and handler execution - ([8243b07](https://git.0xmax42.io/maxp/http-kernel/commit/8243b07a5af921c2c81f9b7d10765138aa274915))
- *(imports)* Use explicit type-only imports across codebase - ([b83aa33](https://git.0xmax42.io/maxp/http-kernel/commit/b83aa330b34523e5102ab98ee61dedbbd62d4656)) - *(imports)* Use explicit type-only imports across codebase - ([b83aa33](https://git.0xmax42.io/maxp/http-kernel/commit/b83aa330b34523e5102ab98ee61dedbbd62d4656))
- *(workflows)* Rename changelog file for consistency - ([b9d25f2](https://git.0xmax42.io/maxp/http-kernel/commit/b9d25f23fc6ad7696deee319024aa5b1af4d98c0)) - *(workflows)* Rename changelog file for consistency - ([b9d25f2](https://git.0xmax42.io/maxp/http-kernel/commit/b9d25f23fc6ad7696deee319024aa5b1af4d98c0))
@@ -41,16 +31,16 @@ All notable changes to this project will be documented in this file.
### 🧪 Testing ### 🧪 Testing
- *(routebuilder)* Add validation tests for handler and middleware - ([b14e9ac](https://git.0xmax42.io/maxp/http-kernel/commit/b14e9acc5f9617a01886e7734b2ae717b86de03e)) - *(routebuilder)* Add validation tests for handler and middleware - ([801d06e](https://git.0xmax42.io/maxp/http-kernel/commit/801d06ebf8127e47919d96ce72da94fe528d1818))
- *(httpkernel)* Enforce compile-time validation for signatures - ([731bba2](https://git.0xmax42.io/maxp/http-kernel/commit/731bba22d88df077b0a39293ddd1a3eec3bf96e8)) - *(httpkernel)* Enforce compile-time validation for signatures - ([b3ed8dd](https://git.0xmax42.io/maxp/http-kernel/commit/b3ed8dd52c25a7c2653245749ce62ecb81001573))
- *(bench)* Add parallel benchmarks for HTTP kernel - ([3da34e2](https://git.0xmax42.io/maxp/http-kernel/commit/3da34e268426b92510c7f9b730a2fa297dca6fbf)) - *(bench)* Add parallel benchmarks for HTTP kernel - ([ba3d2e3](https://git.0xmax42.io/maxp/http-kernel/commit/ba3d2e33f2a3bd690cbc1f291fea07466a94b7d5))
### ⚙️ Miscellaneous Tasks ### ⚙️ Miscellaneous Tasks
- *(config)* Add CI task for local checks - ([c207dc7](https://git.0xmax42.io/maxp/http-kernel/commit/c207dc7392d9f40e7b7c736eadf6c9c7bbf9b7d4)) - *(config)* Add CI task for local checks - ([39e39a9](https://git.0xmax42.io/maxp/http-kernel/commit/39e39a9699982653f0d1df2e845d8098fd79dbd9))
- *(gitignore)* Add .local directory to ignored files - ([1b447f5](https://git.0xmax42.io/maxp/http-kernel/commit/1b447f51900b3a1a7f1be9d5192fd5aba37bdbc4)) - *(gitignore)* Add .local directory to ignored files - ([2d3dacc](https://git.0xmax42.io/maxp/http-kernel/commit/2d3dacc35802d2ffd6c6eda22df5761dd2d03f74))
- *(ci)* Update deno tasks in CI workflow - ([38c00b0](https://git.0xmax42.io/maxp/http-kernel/commit/38c00b035bfd05c83d5898c97c9423a653db0840)) - *(ci)* Update deno tasks in CI workflow - ([af32f3b](https://git.0xmax42.io/maxp/http-kernel/commit/af32f3b9f4905469def8c22239ef3de4b5c3ea54))
- *(tasks)* Add benchmark, format, and lint commands - ([6e6e616](https://git.0xmax42.io/maxp/http-kernel/commit/6e6e61693fef3b11a81ce260d80bc93edae1e718)) - *(tasks)* Add benchmark, format, and lint commands - ([d9a984c](https://git.0xmax42.io/maxp/http-kernel/commit/d9a984cbea887495944f9b7d7430650a040241dc))
- *(workflows)* Consolidate and update CI configuration - ([ec1697d](https://git.0xmax42.io/maxp/http-kernel/commit/ec1697df94b5378f1766663e278a41d403a64336)) - *(workflows)* Consolidate and update CI configuration - ([ec1697d](https://git.0xmax42.io/maxp/http-kernel/commit/ec1697df94b5378f1766663e278a41d403a64336))
- *(config)* Add exports field to module metadata - ([c28eb7f](https://git.0xmax42.io/maxp/http-kernel/commit/c28eb7f28dfaa8d3fdc540c4bcc306a3a8b9d6f8)) - *(config)* Add exports field to module metadata - ([c28eb7f](https://git.0xmax42.io/maxp/http-kernel/commit/c28eb7f28dfaa8d3fdc540c4bcc306a3a8b9d6f8))
- *(git)* Ignore merge conflicts for CHANGELOG.md - ([6399113](https://git.0xmax42.io/maxp/http-kernel/commit/6399113e122e1207ebf4113aebd250358e31f461)) - *(git)* Ignore merge conflicts for CHANGELOG.md - ([6399113](https://git.0xmax42.io/maxp/http-kernel/commit/6399113e122e1207ebf4113aebd250358e31f461))

View File

@@ -1 +1 @@
0.2.0 0.1.0