Skip to content

[hical61-hical] Update to version 2.1.0#51358

Merged
BillyONeal merged 14 commits intomicrosoft:masterfrom
Hical61:hical61-hical-v2.1.0
Apr 24, 2026
Merged

[hical61-hical] Update to version 2.1.0#51358
BillyONeal merged 14 commits intomicrosoft:masterfrom
Hical61:hical61-hical-v2.1.0

Conversation

@Hical61
Copy link
Copy Markdown
Contributor

@Hical61 Hical61 commented Apr 24, 2026

Description

Update hical61-hical port from version 2.0.0 to 2.1.0.

hical is a modern C++20/C++26 high-performance web framework built on Boost.Asio/Beast, featuring PMR memory pools, coroutine-based async I/O, and C++20 Concepts.

Changes in v2.1.0

New Features:

  • Async file sending (sendFile + WriteNode polymorphic write queue)
  • WebSocket Origin whitelist, middleware chain, and idle timeout
  • Session regenerate() / migrateFrom() for session fixation prevention
  • MetaJson ALIAS / REQUIRED / HICAL_IGNORE decorators
  • Idle connection timeout cleanup + IdleFd fd exhaustion protection
  • HTTP Header CR/LF injection protection

Performance:

  • Session shared_mutex read-write separation + lazy GC
  • Parameter routes grouped by HTTP method
  • StaticFiles PathCache (4096 entries / 60s TTL) + async file I/O
  • PmrBuffer exponential growth + auto-shrink

Breaking:

  • Boost minimum version: 1.70 → 1.78

  • serveStatic() now returns Awaitable<HttpResponse>

  • Linux requires liburing-dev

  • Homepage: https://github.com/Hical61/Hical

  • License: MIT

  • Dependencies: boost, openssl

Checklist

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version, or no changes were necessary.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Exactly one version is added in each modified versions file.

@dg0yt
Copy link
Copy Markdown
Contributor

dg0yt commented Apr 24, 2026

ports/hical61-hical/versions_template.json doesn't belong here.

And instead of posting the change log, implement the required changes ("Linux requires liburing-dev")?

@Hical61
Copy link
Copy Markdown
Contributor Author

Hical61 commented Apr 24, 2026

ports/hical61-hical/versions_template.json doesn't belong here.

And instead of posting the change log, implement the required changes ("Linux requires liburing-dev")?

Thanks for the review! Fixed both issues:

Removed versions_template.json from the port
Added liburing as a Linux platform-conditional dependency in vcpkg.json

Copy link
Copy Markdown
Member

@BillyONeal BillyONeal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Going to reference what I said last time again: #51251 (comment)

It's better to base your changes off the target branch originally rather than dragging a wholly separate branch of changes into each subsequent PR.

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version, or no changes were necessary.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Exactly one version is added in each modified versions file.

In the future can you please use the actual checklist instead of once again making up something different?

- [ ] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] SHA512s are updated for each updated download.
- [ ] The "supports" clause reflects platforms that may be fixed by this new version, or no changes were necessary.
- [ ] Any fixed [CI baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt) and [CI feature baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.feature.baseline.txt) entries are removed from that file, or no entries needed to be changed.
- [ ] All patch files in the port are applied and succeed.
- [ ] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result.
- [ ] Exactly one version is added in each modified versions file.

We put these checklists here not because we are sticklers about paperwork but because these are things we have often seen people do incorrectly and it tells them the things we are going to be looking for upon review.

The missing items were:

  • Any fixed CI baseline and CI feature baseline entries are removed from that file, or no entries needed to be changed.
  • All patch files in the port are applied and succeed.

I don't know if this is because AI tools are involved or what. We have no objection to AI tools but we do expect people to read and understand what they are expecting us to read, review, and understand.

Thanks for the update!

@BillyONeal BillyONeal merged commit 5a39b68 into microsoft:master Apr 24, 2026
16 checks passed
@Hical61
Copy link
Copy Markdown
Contributor Author

Hical61 commented Apr 25, 2026

Going to reference what I said last time again: #51251 (comment)

It's better to base your changes off the target branch originally rather than dragging a wholly separate branch of changes into each subsequent PR.

  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version, or no changes were necessary.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Exactly one version is added in each modified versions file.

In the future can you please use the actual checklist instead of once again making up something different?

- [ ] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] SHA512s are updated for each updated download.
- [ ] The "supports" clause reflects platforms that may be fixed by this new version, or no changes were necessary.
- [ ] Any fixed [CI baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt) and [CI feature baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.feature.baseline.txt) entries are removed from that file, or no entries needed to be changed.
- [ ] All patch files in the port are applied and succeed.
- [ ] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result.
- [ ] Exactly one version is added in each modified versions file.

We put these checklists here not because we are sticklers about paperwork but because these are things we have often seen people do incorrectly and it tells them the things we are going to be looking for upon review.

The missing items were:

  • Any fixed CI baseline and CI feature baseline entries are removed from that file, or no entries needed to be changed.
  • All patch files in the port are applied and succeed.

I don't know if this is because AI tools are involved or what. We have no objection to AI tools but we do expect people to read and understand what they are expecting us to read, review, and understand.

Thanks for the update!

Thank you for the review and approval, @BillyONeal!

You're right — I did use AI tools to help prepare the PR, but that's no excuse for not using the official checklist. I've now read through the PR template and the maintainer guide carefully, and will use the actual checklist going forward.

For future PRs, I'll also base changes off the target branch directly instead of carrying over a separate branch.

Thanks for the patience and clear feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants