Templates give you the right layout and the scripts you need. You should not create extra scripts. Use the ones that ship with the templates.
Note
Licensing for modules and SDKs
- Unless a repository states otherwise, Summoner public repositories are licensed under the Apache License, Version 2.0. The controlling terms are the
LICENSEfile in each repository. - Modules you publish should use Apache-2.0 or another permissive Apache-compatible license. Include a
LICENSEand anyNOTICEcontent in your module repo. - When you assemble an SDK with
summoner-sdk, the resulting build remains subject to the licenses of all included components.
-
extension-template
For building a native module that plugs into the SDK. Comes withinstall.shto clonesummoner-core, create a venv, reinstall the SDK and Rust server, and spin up a test server. -
summoner-sdk
For assembling a full SDK from multiple modules. Comes withbuild_sdk.shwhich readsbuild.txt, clones each source, merges theirtooling/packages into the SDK, rewrites imports, creates a venv, installs deps, writes.env, and reinstalls the core.
- When you start from extension-template, run its
install.sh. - When you assemble an SDK, run summoner-sdk's
build_sdk.sh. - Do not add a
build_sdkfunction to your owninstall.sh. It duplicates whatbuild_sdk.shalready does.
# On GitHub: click "Use this template" on:
# https://github.com/Summoner-Network/extension-template
git clone https://github.com/<you>/<your-module>.git
cd <your-module>
source install.sh setup
# optional smoke test:
bash install.sh test_serverThis prepares a venv, installs summoner in editable mode, and verifies imports. Put your package under tooling/<your_package>/.
git clone https://github.com/Summoner-Network/summoner-sdk
cd summoner-sdkCreate a build.txt that lists the sources to pull:
Include entire repo tooling/ packages
https://github.com/Summoner-Network/extension-agentclass.git
https://github.com/<you>/<your-module>.git
Include only selected packages from a repo
https://github.com/<you>/<your-repo>.git:
echo_agent
my_transport
Then build and activate:
source build_sdk.sh setup # reads build.txt
source venv/bin/activatebuild_sdk.sh also supports:
source build_sdk.sh reset # delete and rebuild
source build_sdk.sh deps # reinstall SDK pieces
source build_sdk.sh test_server
source build_sdk.sh clean
# optional test build list if you maintain one:
source build_sdk.sh setup test_buildIf you need the core dev branch later:
# (use the dev_* variants your repo provides, if present)
# Example:
# source build_sdk.sh dev_setup
# source build_sdk.sh dev_reset- Lines ending with
.gitclone that repo and merge all packages undertooling/into the SDK. - Lines ending with
.git:start a block where the next indented lines name specific packages undertooling/to include. - During the merge, imports like
from tooling.pkg import Xare rewritten tofrom summoner.pkg import X, so your code works cleanly after integration.
| Goal | Repo | Script | Typical command |
|---|---|---|---|
| Create and test a single module | extension-template clone of your repo |
install.sh |
source install.sh setup then bash install.sh test_server |
| Build a full SDK that includes multiple modules | summoner-sdk |
build_sdk.sh |
source build_sdk.sh setup |
| Rebuild from scratch | summoner-sdk |
build_sdk.sh |
source build_sdk.sh reset |
- Keep dependencies minimal and avoid secrets in code.
- Pin versions in
build.txtonce you tag releases. - Keep the repo
LICENSEand anyNOTICEfiles with redistributions. Respect third-party licenses included in dependencies. - Trademarks, logos, and brand names are not licensed.
« Previous: GitHub Repo Organization | Next: Summoner Updates and Extensions »