Portability
references/portabilityNobody has checked this yet
still a draft
Written 2026-10-22 by ktl-librarian (automation).
The full record
- Checks
- none recorded
- Sources
- Is part of
- References
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/ktl/linkml-sidecar/knowledge/references/portability- Licence
- CC BY 4.0
- Files
- MarkdownJSON-LDSource on GitHubHistory on GitHub
Overview
Section titled “Overview”skills/linkml-sidecar/references/portability.md says what works on each kind of host and what to use where something is lost. The scaffold writes files, so any directory tree works. The shell, the version control, the forge, the network and what each step can do there all vary.
Run the preflight first. Before the sidecar exists, run bash <skill>/templates/scripts/linkml-preflight.sh <host-root>. Afterwards, run .linkml/scripts/linkml-preflight.sh. Its last line names your case.
- Linux with git and GitHub runs everything.
- macOS runs everything, on the stock bash 3.2.
- RHEL 9 and 8 run everything. RHEL 9’s
python3is 3.9, which is enough for the scaffold and copier, but the project needs 3.10. uv downloads a Python for the project when it may, orsudo dnf install python3.12installs one. RHEL 8’spython3is 3.6, which the scaffold passes over by running throughuv run. SetUV_PYTHON=3.12there as well. - WSL2 runs everything. The template’s justfile refuses
just cleanuntilJUST_TEMPDIRis set, for example withexport JUST_TEMPDIR=/tmp. Keep the repository on the Linux file system rather than under/mnt/c. - Windows with Git for Windows runs everything from its bash. The
ln -sdoorway is lost, and a junction made withmklink /J linkml_schema .linkml\src\<slug>\schematakes its place. - Windows PowerShell runs uv, copier, just and the generators. The two scripts are bash, so run them through Git for Windows’ bash.
- Codeberg and Forgejo run everything through the Forgejo workflow, and the site is published on Codeberg only.
- GitLab and Gitea run the sidecar, the gate and the docs build. The gate runs as a job of the host’s CI.
- A host with git but no forge runs everything local, including
just update. The host’s own review takes the place of the workflow and pull requests. - A folder that is not a git repository loses
copier update, and the package version falls back to0.0.0. Committing.linkml/later makesjust updatework. - A machine without git gets nothing, because copier fetches the template with git and the scaffold checks the tag with it.
- A uv workspace at the root is untested. The preflight warns.
Behind a company proxy or package mirror
Section titled “Behind a company proxy or package mirror”Each setting belongs on the machine or the runner, never in the repository. The preflight’s network line shows whether a setting took.
- git, curl and uv read
HTTPS_PROXY,HTTP_PROXYandNO_PROXY. - uv trusts its own bundled roots until
UV_SYSTEM_CERTS=trueis set (uv 0.11 or later;UV_NATIVE_TLS=1before that).SSL_CERT_FILEserves too when it names the system’s bundle. A path that does not exist makes uv trust nothing. UV_DEFAULT_INDEXnames the package mirror, or an[[index]]entry withdefault = truein a user or systemuv.tomldoes. Nothing in the sidecar namesexclude-newer, so a mirror that serves no upload times works.UV_PYTHON_INSTALL_MIRRORnames a company copy of uv’s Python downloads.python3 -m pip install --user uvinstalls uv itself through the mirror.- Make
uv.lockwhere CI installs from. A lock made against PyPI failsuv sync --lockedon a machine whose index is a mirror. A lock made behind the mirror fails on GitHub’s runners. The preflight’slockline says when the lock and the machine’s index differ.
The template without github.com
Section titled “The template without github.com”A company copy of linkml-project-copier can take the place of github.com in one of two ways. The copy must carry the template’s tags, because the scaffold checks that the copy’s tag names the commit it pins.
- A git
url.<copy>.insteadOf https://github.com/linkml/linkml-project-copier.gitrule applies to every clone on the machine. With this rule, the answers file still names the template asgh:linkml/linkml-project-copier. LINKML_TEMPLATE_SRCnames a URL or a local clone for one run. The answers file then records that source, andjust updatereads from it.
Synced folders and what is tested
Section titled “Synced folders and what is tested”OneDrive, Dropbox, Drive and iCloud drop the linkml_schema link, and just --justfile .linkml/justfile linkml-link recreates it. Exclude .linkml/.venv/ from the sync.
CI runs the tests on Ubuntu. The scripts are written for bash 3.2 and POSIX tools, so macOS, RHEL and Git for Windows are covered by design rather than by a run there.