69 lines
3.1 KiB
Markdown
69 lines
3.1 KiB
Markdown
# Source dependencies
|
|
|
|
| Entry | Purpose |
|
|
| --- | --- |
|
|
| `README.md` | Source checkout, version selection, and update instructions |
|
|
| [aster](aster/README.md) | `endorphin-aster-vm` source submodule; provides the Endor frontend, compiler, objects, and VM |
|
|
|
|
## Checkout
|
|
|
|
The Aster submodule URL is
|
|
`ssh://git@gitea.entroia.com:22222/Zayden-Jung/endorphin-aster-vm.git`.
|
|
The repository owner in this URL is separate from the authentication identity.
|
|
For this host, use only the dedicated `codex-bot` SSH identity. Set
|
|
`GIT_SSH_COMMAND` to the environment's isolated SSH command before network
|
|
operations: it must disable inherited SSH configuration (`-F /dev/null`), use
|
|
`IdentitiesOnly=yes`, select the dedicated bot key with `-i`, and use port 22222.
|
|
Do not fall back to the repository owner's credentials. The key path belongs in
|
|
the checkout environment, not in tracked project files.
|
|
|
|
From the Tessera repository root, after cloning or checking out another Tessera
|
|
revision:
|
|
|
|
```bash
|
|
git submodule update --init --recursive
|
|
git submodule status
|
|
```
|
|
|
|
Initialization fetches Aster source at the commit recorded by Tessera. It does
|
|
not build Aster or download Cargo packages. A normal clone without submodule
|
|
initialization does not populate `vendor/aster`.
|
|
|
|
## Cargo integration
|
|
|
|
Tessera's root `Cargo.toml` references the submodule's `crates/frontend`,
|
|
`crates/compiler`, and `crates/core` directories. Aster's workspace supplies
|
|
their inherited package settings and internal dependencies. Keep the submodule's
|
|
workspace intact; do not copy its crates into Tessera's workspace.
|
|
|
|
The Git submodule entry selects Aster's source revision. Tessera's root
|
|
`Cargo.lock` records the combined application dependency graph; the lockfile
|
|
inside Aster belongs to its standalone workspace. Updating Aster's lockfile does
|
|
not replace Tessera's lockfile.
|
|
|
|
In the designated build environment, building Tessera also builds the required
|
|
Aster libraries. A separate Aster executable or service is unnecessary. Runtime
|
|
validation runs locally using the commands in the [project guide](../README.md#validation); initializing the
|
|
submodule alone does not validate compilation or Endor execution.
|
|
|
|
## Updating Aster
|
|
|
|
Select an explicit, published Aster commit. From the Tessera root, with the bot
|
|
SSH command configured for network operations:
|
|
|
|
```bash
|
|
git -C vendor/aster fetch origin
|
|
git -C vendor/aster checkout --detach <aster-commit>
|
|
```
|
|
|
|
Review the Aster changes and reconcile Tessera's dependencies and lockfile as needed; build and validate the integration locally. Commit `vendor/aster` in Tessera
|
|
along with any integration changes; that records the new Aster commit. Aster
|
|
updates do not automatically advance Tessera's recorded revision.
|
|
|
|
If Aster itself needs development, make and publish those commits in its own
|
|
repository first. Configure the repository-local author as `Codex Bot` /
|
|
`codex-bot@gitea.entroia.local` before committing on this host. Then select the
|
|
published commit in Tessera. Do not point a shared Tessera revision at an
|
|
unpublished Aster commit, and do not add Tessera-specific patches to Aster as
|
|
part of this embedding work.
|