3. Create the Release Repo
Each shared Service Lasso service should live in its own release-backed repo, usually named service-lasso/lasso-<name>.
Start from service-lasso/service-template. Use it as a GitHub template or clone it into the new lasso-* repo, then replace the sample service details with the real service manifest, packaging script, README, and release verification.
The template is the contract baseline. Do not rebuild the release workflow and repo layout from memory unless the service has a specific reason to diverge.
Required Repo Shape
The template provides this expected shape:
lasso-example/
.github/
workflows/
release.yml
scripts/
package.mjs
verify-release.mjs
service.json
README.md
LICENSE
package.json
Add service-owned runtime source or assets only when the service builds its own wrapper. Provider repos often package upstream archives instead.
Template Customization Checklist
After creating the repo from the template:
- rename the repo and package metadata to the target
lasso-*service - replace the sample
service.jsonwith the real service manifest - update
scripts/package.mjsto produce the exact release assets the manifest references - update
scripts/verify-release.mjsso CI proves the archive layout and manifest commands match - update
README.mdwith service purpose, supported versions, required env, ports, health checks, and release artifact names - keep the
yyyy.m.d-<shortsha>release version pattern from the template workflow
Release Outputs
The release workflow should create:
- a GitHub release tagged
yyyy.m.d-<shortsha> - platform archives for each supported operating system
- asset names that include the exact upstream version
SHA256SUMS.txtwhen practical- a released
service.jsonthat points at those assets
Reuse the Full Handoff
Use Create a New Lasso Service as the detailed implementation handoff for this step. That guide includes naming rules, examples, release workflow expectations, packaging checks, and consuming-app guidance.
Exit Criteria
Move to step 4 only when:
- the service repo exists
- packaging can be run locally
- CI can create release assets
service.jsonin the repo points to the released artifacts- release verification proves the archive layout matches the manifest commands