Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Convert: export a model of several documents with references across them resolved

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

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
38/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
go
Domain
api, backend, cli

Research direction

Read export.go and SoleDocument, then trace how ParseSources supplies model_hash to the service's Convert and how -convert selects documents. Reproduce the two-file example with sysml -validate and the current api-json conversion. Done means selected documents can be converted with cross-document references resolved without exporting every parsed library element.

Written by the indexing model from the issue text.

Description

On develop (72081f8), -convert takes one file, and the service's Convert refuses a model_hash of several documents (export.go, SoleDocument). A document converted on its own writes a reference into another file as an unresolved name. Both files validate cleanly together in sysml -validate and in SysIDE 0.10.3:

// lib.sysml
package Lib { part def Engine; }
// app.sysml
package App { private import Lib::*; part e : Engine; }

sysml -convert api-json app.sysml gives the typing of e as "type": {"@ref": "Engine"}, where Lib::Engine is meant. sysml -convert api-json app.sysml lib.sysml stops with "-convert converts one file".

Request: convert the documents of a multi-document model (a model_hash from ParseSources, or several files), resolving references across them. Ideally the caller can name which documents to write, so a library parsed alongside isn't exported with every project.

Concatenating everything into one file works around it, but the output then includes every library element, and each element loses the file it came from.

Dominant language
Go
Stars
24
Forks
5
Avg merge
10h 7m
Merged PRs (30d)
536

Getting set up

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.

More from Open-MBEE/OpenSysML

All issues in Open-MBEE/OpenSysML

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.