43 lines
1.2 KiB
Markdown
43 lines
1.2 KiB
Markdown
# Vendored Python packages
|
|
|
|
This package exposes vendored Python dependencies through stable public Bazel targets.
|
|
Bazel runs Python targets with the local `python3` runtime.
|
|
|
|
Project code depends on aliases in `//third_party/python`.
|
|
It does not depend on versioned package directories directly.
|
|
|
|
Use this layout for a vendored package:
|
|
|
|
```text
|
|
third_party/python/
|
|
BUILD.bazel
|
|
<name>-<version>/
|
|
BUILD.bazel
|
|
LICENSE
|
|
pyproject.toml
|
|
src/
|
|
```
|
|
|
|
Use the upstream package name for public aliases.
|
|
For command-line tools, add a `_bin` suffix to the binary target.
|
|
|
|
Preserve upstream license files and package metadata.
|
|
Keep local Bazel files separate from upstream source when possible.
|
|
|
|
Add optional dependencies as separate public targets.
|
|
Do not bundle optional dependencies into the primary package target.
|
|
|
|
## `rpycdec`
|
|
|
|
Ariadne uses `rpycdec` for archive extraction and debug decompilation.
|
|
Ariadne uses the game-bundled Ren'Py runtime for AST export.
|
|
|
|
The vendored source comes from `cnfatal/rpycdec` at commit `489e9c6b8a48ed7904d7039d7787c36a03c75fe3`.
|
|
|
|
The intended public targets are:
|
|
|
|
```text
|
|
//third_party/python:rpycdec
|
|
//third_party/python:rpycdec_bin
|
|
```
|