Skip to content

Commit a4b4819

Browse files
committed
Credit upstream package projects
Add consistent Credits sections to the user guides for non-Laravel upstream ports that have dedicated documentation pages. Each section links to the original project and explains that the Hypervel package has been adapted for the framework architecture and coroutine runtime. Move repeated lineage details out of the JWT, Nested Set, Permission, and Testbench introductions so attribution lives in one predictable place without interrupting the documentation flow.
1 parent 9c01cd2 commit a4b4819

12 files changed

Lines changed: 76 additions & 6 deletions

src/docs/coroutine-context.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
- [Request Context](#request-context)
2525
- [Parent Coroutine Context](#parent-coroutine-context)
2626
- [Common Pitfalls](#common-pitfalls)
27+
- [Credits](#credits)
2728

2829
<a name="introduction"></a>
2930
## Introduction
@@ -466,3 +467,8 @@ Values set outside a coroutine are stored in the shared non-coroutine context. T
466467
Values stored in one coroutine are not visible inside another unless you copy them. Use `Coroutine::fork`, `go(..., copyContext: true)`, `parallel(..., copyContext: true)`, or `CoroutineContext::copyFrom(...)` when a child needs values from its parent.
467468

468469
Objects remain shared when context is copied unless they implement `ReplicableContext`. Avoid copying mutable request-specific objects when shared changes would be unsafe.
470+
471+
<a name="credits"></a>
472+
## Credits
473+
474+
Hypervel Coroutine Context began as a port of [Hyperf Context](https://github.com/hyperf/context) and has been adapted for Hypervel's framework architecture and coroutine runtime.

src/docs/coroutines.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
- [Lockers](#lockers)
2929
- [Advanced Coroutine APIs](#advanced-coroutine-apis)
3030
- [Common Pitfalls](#common-pitfalls)
31+
- [Credits](#credits)
3132

3233
<a name="introduction"></a>
3334
## Introduction
@@ -824,3 +825,8 @@ Use `Coroutine::defer()` for cleanup that belongs to one coroutine. Use [`Hyperv
824825
Prefer the [Concurrency facade](/docs/{{version}}/concurrency) or the `parallel` helper when the parent coroutine needs results or exceptions from child coroutines. Use `go`, `co`, `Coroutine::create`, or `Concurrent` when a child may run independently and its exceptions may be reported instead of returned to the parent.
825826

826827
Swoole can make most stream-based I/O operations yield to other coroutines while they wait. Some PHP extensions cannot be hooked and will block the entire worker process. For CPU-intensive work or extensions that cannot yield, you should run the work in a separate process.
828+
829+
<a name="credits"></a>
830+
## Credits
831+
832+
Hypervel Coroutine began as a port of [Hyperf Coroutine](https://github.com/hyperf/coroutine) and has been adapted for Hypervel's framework architecture and coroutine runtime.

src/docs/jwt.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@
2424
- [Guard Methods](#guard-methods)
2525
- [Exceptions](#exceptions)
2626
- [Differences From php-open-source-saver/jwt-auth](#differences-from-php-open-source-saver-jwt-auth)
27+
- [Credits](#credits)
2728

2829
<a name="introduction"></a>
2930
## Introduction
3031

31-
Hypervel JWT provides stateless bearer token authentication using Hypervel's authentication guard system. It is based on the `php-open-source-saver/jwt-auth` package and adapted for Hypervel's long-lived Swoole workers and coroutine runtime.
32+
Hypervel JWT provides stateless bearer token authentication using Hypervel's authentication guard system.
3233

3334
JWT authentication is useful when your application needs signed tokens that can be sent with API, mobile, or service-to-service requests. If you need first-party SPA session authentication or database-backed personal access tokens, consider [Sanctum](/docs/{{version}}/sanctum) instead.
3435

@@ -593,7 +594,7 @@ Common exceptions include:
593594
<a name="differences-from-php-open-source-saver-jwt-auth"></a>
594595
## Differences From php-open-source-saver/jwt-auth
595596

596-
Hypervel JWT is based on `php-open-source-saver/jwt-auth`, but its internals are adapted for Hypervel:
597+
Hypervel JWT differs from `php-open-source-saver/jwt-auth` in several ways:
597598

598599
<div class="content-list" markdown="1">
599600

@@ -606,3 +607,8 @@ Hypervel JWT is based on `php-open-source-saver/jwt-auth`, but its internals are
606607
- The `show_black_list_exception` option is not included; JWT exceptions fail normally.
607608

608609
</div>
610+
611+
<a name="credits"></a>
612+
## Credits
613+
614+
Hypervel JWT began as a port of [PHP Open Source Saver JWT Auth](https://github.com/PHP-Open-Source-Saver/jwt-auth) and has been adapted for Hypervel's framework architecture and coroutine runtime.

src/docs/nested-set.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
- [Soft Deleting Nodes](#soft-deleting-nodes)
2929
- [Rendering Trees](#rendering-trees)
3030
- [Performance](#performance)
31+
- [Credits](#credits)
3132

3233
<a name="introduction"></a>
3334
## Introduction
@@ -36,8 +37,6 @@ Hypervel's nested set package provides tools for storing hierarchical data in a
3637

3738
Nested sets store each node with left and right boundary columns. This makes ancestor and descendant reads efficient, while inserts and moves update the affected boundary ranges.
3839

39-
The package is based on Aimeos's maintained `laravel-nestedset` package and adapted for Hypervel's Eloquent implementation.
40-
4140
<a name="installation"></a>
4241
## Installation
4342

@@ -896,3 +895,8 @@ If a model observer vetoes a mutation and it returns `false`, throw from the tra
896895
Concurrent writers to the same table and nested set scope must also be serialized by your application. The package does not add an implicit distributed lock or network call.
897896

898897
The schema helpers create separate indexes for right-bound scans, left-bound scans, and parent lookups. Scope columns prefix each index, which keeps each scoped tree's reads isolated and substantially reduces ancestor, descendant, child, and sibling query work. These indexes add a bounded cost to structural writes; this favors the read-heavy workloads nested sets are designed for. Add a depth index only when your application frequently filters large trees by depth.
898+
899+
<a name="credits"></a>
900+
## Credits
901+
902+
Hypervel Nested Set began as a port of [Aimeos Laravel Nested Set](https://github.com/aimeos/laravel-nestedset) and has been adapted for Hypervel's framework architecture and coroutine runtime.

src/docs/permission.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,14 @@
5757
- [Performance](#performance)
5858
- [Exceptions](#exceptions)
5959
- [Differences From Spatie Laravel Permission](#differences-from-spatie-laravel-permission)
60+
- [Credits](#credits)
6061

6162
<a name="introduction"></a>
6263
## Introduction
6364

6465
Hypervel's permission package provides role-based access control for Eloquent models. A permission represents one ability, such as `edit articles`. A role is a named group of permissions, such as `editor`. You may assign roles and permissions to users or other models, then check access by role, direct permission, or permission inherited through a role.
6566

66-
The package is based on Spatie's `laravel-permission` package and adapted for Hypervel. It also supports denied permissions, which explicitly reject an ability even when the model receives the same permission directly or through a role.
67+
The package also supports denied permissions, which explicitly reject an ability even when the model receives the same permission directly or through a role.
6768

6869
<a name="installation"></a>
6970
## Installation
@@ -1514,3 +1515,8 @@ Partition registration and isolation failures use focused exceptions:
15141515
- Hypervel adds opt-in generic row partitioning through `PermissionRegistrar::resolvePartitionUsing(...)`. It scopes model lifecycle operations, every package relation and pivot, queries, commands, cache identities, and invalidation without depending on any partition domain.
15151516
- Hypervel's cache config uses `expiration_seconds` and separate named cache keys so role, model-role, model-permission, and assignment-token caches can be invalidated independently.
15161517
- Undefined `permission.cache.store` values fail fast through Hypervel's cache manager instead of silently falling back to an array store.
1518+
1519+
<a name="credits"></a>
1520+
## Credits
1521+
1522+
Hypervel Permission began as a port of [Spatie Laravel Permission](https://github.com/spatie/laravel-permission) and has been adapted for Hypervel's framework architecture and coroutine runtime.

src/docs/redis.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
- [Pub / Sub](#pubsub)
2727
- [Wildcard Subscriptions](#wildcard-subscriptions)
2828
- [Using the Subscriber](#using-the-subscriber)
29+
- [Credits](#credits)
2930

3031
<a name="introduction"></a>
3132
## Introduction
@@ -777,3 +778,8 @@ try {
777778
```
778779

779780
The subscriber supports `subscribe`, `unsubscribe`, `psubscribe`, `punsubscribe`, `ping`, `channel`, and `close` methods. It uses the selected connection's standalone, Sentinel, or Cluster topology and supports TCP, TLS, IPv4, IPv6, and Unix sockets. Message payloads are returned as the exact bytes sent by Redis, including embedded newlines and null bytes. Messages received from pattern subscriptions include the matched pattern on the message's `pattern` property.
781+
782+
<a name="credits"></a>
783+
## Credits
784+
785+
Hypervel Redis began as a port of [Hyperf Redis](https://github.com/hyperf/hyperf/tree/master/src/redis) and has been adapted for Hypervel's framework architecture and coroutine runtime.

src/docs/saloon.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
- [Fixtures](#fixtures)
7373
- [Publishing Configuration and Stubs](#publishing-configuration-and-stubs)
7474
- [Differences From Saloon](#differences-from-saloon)
75+
- [Credits](#credits)
7576

7677
<a name="introduction"></a>
7778
## Introduction
@@ -2026,3 +2027,8 @@ Hypervel Saloon keeps the connector, request, middleware, authentication, respon
20262027
- The optional `xmlReader` response extension is not included. Use the built-in `xml` or `dom` methods instead.
20272028

20282029
These differences remove framework-neutral adapter layers while retaining the public concepts needed to build complete integrations and reusable SDKs for Hypervel.
2030+
2031+
<a name="credits"></a>
2032+
## Credits
2033+
2034+
Hypervel Saloon began as a port of [Saloon](https://github.com/saloonphp/saloon) and has been adapted for Hypervel's framework architecture and coroutine runtime.

src/docs/sentry.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
- [Sensitive Data](#sensitive-data)
1818
- [Spotlight](#spotlight)
1919
- [Delivery and Shutdown](#delivery-and-shutdown)
20+
- [Credits](#credits)
2021

2122
<a name="introduction"></a>
2223
## Introduction
@@ -327,3 +328,8 @@ use Swoole\Constant;
327328
```
328329

329330
Increasing these values does not change normal request latency. They only bound transport operations and graceful shutdown work.
331+
332+
<a name="credits"></a>
333+
## Credits
334+
335+
Hypervel Sentry began as a port of [Sentry Laravel](https://github.com/getsentry/sentry-laravel) and has been adapted for Hypervel's framework architecture and coroutine runtime.

src/docs/server-processes.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
- [Inter-Process Communication](#inter-process-communication)
1616
- [Sending Messages](#sending-messages)
1717
- [Receiving Messages](#receiving-messages)
18+
- [Credits](#credits)
1819

1920
<a name="introduction"></a>
2021
## Introduction
@@ -241,3 +242,8 @@ Values such as `false`, `null`, `0`, empty strings, and empty arrays are deliver
241242

242243
> [!WARNING]
243244
> Server-process IPC uses PHP serialization, so you should only send data created by code you trust. Swoole owns the collected process handles and exported sockets, so you should not close them in application code.
245+
246+
<a name="credits"></a>
247+
## Credits
248+
249+
Hypervel Server Process began as a port of [Hyperf Process](https://github.com/hyperf/hyperf/tree/master/src/process) and has been adapted for Hypervel's framework architecture and coroutine runtime.

src/docs/testbench.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,14 @@
3636
- [Purging the Skeleton](#purging-the-skeleton)
3737
- [Testing Published Files](#testing-published-files)
3838
- [Helpers](#helpers)
39+
- [Credits](#credits)
3940

4041
<a name="introduction"></a>
4142
## Introduction
4243

4344
Testbench provides a convenient way to write feature and integration tests for Hypervel packages. It creates a small Hypervel application around your package so your tests may register service providers, publish files, define routes, run migrations, dispatch jobs, and make HTTP requests as if the package were installed in a real application.
4445

45-
Hypervel Testbench is a port of [Orchestra Testbench](https://github.com/orchestral/testbench) adapted for Hypervel's Swoole and coroutine runtime. It also includes several package-development helpers that are commonly useful when testing generated files, command-line behavior, and Workbench applications.
46+
It also includes several package-development helpers that are commonly useful when testing generated files, command-line behavior, and Workbench applications.
4647

4748
If you are building a package for Hypervel applications, you should generally use Testbench for your package's feature tests. For general package development concepts, see the [package development documentation](/docs/{{version}}/packages).
4849

@@ -1163,3 +1164,8 @@ $process->mustRun();
11631164
```
11641165

11651166
The `remote` helper reuses the active Testbench runtime skeleton so subprocesses operate on the same disposable application copy as the parent test process.
1167+
1168+
<a name="credits"></a>
1169+
## Credits
1170+
1171+
Hypervel Testbench began as a port of [Orchestra Testbench Core](https://github.com/orchestral/testbench-core) and has been adapted for Hypervel's framework architecture and coroutine runtime.

0 commit comments

Comments
 (0)