Nimblesite / Nimblesite/SharpLsp

feat: update Shipwright repo fixtures for Forge after all deployment issues are resolved

Open
#33 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

shipwright
Dominant language
TypeScript
Stars
132
Forks
5
Avg merge
6h 24m
Merged PRs (30d)
27

Description

Context

The Shipwright repo (`github.com/Nimblesite/Shipwright`) maintains canonical fixtures for every downstream product. After all Forge deployment issues are resolved (#26–#32), the Shipwright fixtures for Forge must be updated to reflect the final state.

This is the final step in the Shipwright adoption checklist (step 7 in `docs/agents/product-repo-adoption-guide.md`).

What to update in the Shipwright repo

1. `fixtures/manifests/forge.json`

Sync with the final `shipwright.json` from the Forge repo. Key changes expected:

  • `forge-lsp` sources: add `bundled` before `path`
  • `forge-lsp` bundled block: `"bundlePath": "bin/${platform}/forge-lsp${exe}"`, `"perPlatformArtifact": true`
  • `vscode` host: change `"artifact": "vsix-fat"` → `"vsix-per-platform"`
  • VS Code setting names: align with the actual `package.json` settings (`forge.lspPath`, etc.)
2. `fixtures/version-outputs/rust/forge-lsp.txt`

Update to match the exact output of `forge-lsp --version` after the `shipwright` crate is integrated (issue #26).

3. `fixtures/version-outputs/rust/forge-lsp.json`

Update to the JSON output of `forge-lsp --version --json`. Must conform to `schemas/version-manifest.schema.json`.

4. `fixtures/version-outputs/dotnet/forge-sidecar-csharp.txt` and `.json`

Create or update with the actual output from `forge-sidecar-csharp --version` and `--version --json` (issue #31).

5. `fixtures/version-outputs/dotnet/forge-sidecar-fsharp.txt` and `.json` (new)

Create with the output from `forge-sidecar-fsharp --version` and `--version --json`.

Verification

After updating fixtures, run in the Shipwright repo:
```bash
make test
```

This runs `tests/fixtures.test.mjs` which validates all manifests and version output fixtures. It must pass before the issue is closed.

Dependencies

All of these must be done first:

  • Issue #26 (forge-lsp --version --json)
  • Issue #28 (rename to shipwright.json, fix settings)
  • Issue #29 (per-platform VSIX, bundled source)
  • Issue #31 (sidecar --version)

Acceptance criteria

  • `make test` passes in the Shipwright repo with updated Forge fixtures
  • `fixtures/manifests/forge.json` validates cleanly against `schemas/deployment-toolkit.schema.json`
  • All five version-output fixture files are present and match actual binary output
  • No fixture is left in a stale state from the pre-Shipwright deployment system

Spec references

Step 7 of `docs/agents/product-repo-adoption-guide.md` (Shipwright repo)
`SWR-GATE-*` in `docs/specs/acceptance-gates.md` (Shipwright repo)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Work in the Shipwright repo, updating fixtures/manifests/forge.json and the listed fixtures/version-outputs/rust and fixtures/version-outputs/dotnet files. First review docs/agents/product-repo-adoption-guide.md step 7 and the dependency issues, then run make test, which exercises tests/fixtures.test.mjs. Done means all five version-output fixtures match the actual commands and the manifest and schema validations pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, fsharp, rust, typescript
Domain
testing, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.