While Sysand is the supported package manager for SysML and KerML files, I’m wondering how to build full product packages that include more than just model files. In industry, text (of various languages—I’m looking at you, China), source code (notably Python from Syside, but it could be M-code, Julia, or C++), CAD/CAM (with CNC outputs), and other design and manufacturing artifacts all need to be managed.
While PLM systems are out there, I’m thinking that Nix (with flakes) may be the least expensive, most flexible way to provide build and package management. Nix would superset Sysand (that is, let Sysand do its work but work as a supervisor package manager), as Nix knows nothing about SysML and KerML, requiring lots of extra, duplicative work that Sysand already does.
What are the forum’s thoughts around using Nix (with flakes)?
Hi Richard,
Thanks for bringing this discussion up!
You are correct that Sysand only thinks in terms of SysML/KerML packaging into .kpar archives and we do not have any concrete plans on expanding the .kpar archive to contain more things in them. We only added LICENSES/*.txt, README.md and CHANGELOG.md to the archive since we believe those are key to ensure that the packages could be shared easily and legally (e.g. a lot of licenses require that license text is shipped together with the package).
Nix flakes may be a solution, however, I (this is my personal opinion) think that, while very flexible and powerful, they might be a bit too complicated and require a lot of learning.
Also, OMG already has a specification called “Reusable Asset Specification” (RAS, 2.2). While this specification is very old (v2.2 came out in 2005) and likely very outdated and might not fit the modern workflows, I heard that OMG is trying to work on version 3.0 right now. It might be worth to see if RAS could be made into this “full system package management”. Though of course it shouldn’t replace the existing package managers (e.g. sysand for SysMLv2/KerML, pip for Python) but instead delegate to them when appropriate.
Hi @Simonas!
Thank you for the pointer to the OMG RAS v2.2 specification. From web searches, I understand there is a v3.0 specification being led by INCOSE. Based on my web searches, I haven’t found any vendor that has implemented the v3.0 specification. I did find that Matt Hause et al. have a paper in INCOSE Insight discussing the “octopus problem” of siloed and lost information (See the link https://incose.onlinelibrary.wiley.com/doi/10.1002/inst.70013).
In seeking a low-to-no-cost, highly flexible solution, I’ve not found a well-maintained RAS v2.2 implementation. Based on my searches to date, the following RAS v2.2 implementors are:
Commercial Software & Enterprise Platforms
- IBM Rational Asset Manager (RAM): Purpose-built as a collaborative enterprise repository, RAM uses OMG RAS v2.2 as its baseline asset packaging standard to bundle, tag, govern, and index software and architectural artifacts.
- IBM Rational Software Architect (RSA): Natively features a dedicated Reusable Assets Perspective. It provides developers and architects with built-in client tools (Asset Explorer, Navigator, and Properties) to search, import, package, and publish .ras archives directly across asset repositories.
- Sparx Systems Enterprise Architect: It features a built-in core component called the Reusable Asset Service (RAS). It relies on the architectural structure and metadata guidelines outlined in OMG RAS v2.2 to enable distributed teams to govern, version, and share UML models, patterns, and design profiles.
- Atego Asset Library (Later absorbed into PTC): Formally introduced as a scalable, web-based systems and software asset repository designed to publish and reuse component-based models aligned with neutral OMG standards like RAS v2.2.
- Flashline Logidex (Legacy Enterprise Repository / BEA Systems): Historically one of the baseline asset management registries that pioneered out-of-the-box, certified RAS-compliant integration plugins for modeling environments (such as Rational XDE) to index asset bundles via standard XML schemas. (defunct, no longer sold)
Industry-Specific Extensions & Core Specs
- Akana API Platform (Formerly SOA Software): The platform’s configuration framework utilizes underlying asset categorization principles derived from the OMG Reusable Asset Specification v2.2 rules to govern the deployment, packaging, and structure of reusable software assets.
- Unified Profile for DoDAF and MODAF (UPDM) Implementations: Software pipelines in the defense and aerospace industries combine enterprise modeling languages with RAS v2.2 packaging guidelines to structure a standards-based “model of models” approach across massive systems-of-systems.
As you can see, these are quite expensive solutions that have “pricing on request” for subscriptions! 
I’m not put off by the complexities of Nix, as, if you can stomach Anaconda and Git, Nix isn’t that much more complex (Nix does depend on Git repositories).
The two are distinct, and Sysand has nothing to do with RAS or Nix as well! Orthogonal? Quite so! 
| Feature |
OMG RAS v2.2 |
Nix (with flakes) |
|
|
| Primary Artifact |
Multi-tool design components, UML diagrams, documentation bundles. |
Software packages, development shells, OS configurations, software modules. |
|
|
| Manifest Format |
Explicit XML metadata (rasset.xml) mapped to an official OMG XSD schema. |
Code written in the custom functional Nix language (flake.nix). |
|
|
| Version Enforcement |
High-level classification attributes, manual governance fields, and text versions. |
Cryptographic hashes (/nix/store/…) and strict input locking via a lockfile (flake.lock). |
|
|
| Mechanism |
Repository discovery via web service registries or local archiving (.ras ZIP bundles). |
Isolated, pure evaluation of code dependencies over Git, local paths, or binary caches. |
|
|
I’ll “give it a whirl” and see what Nix can do. If nothing else, I may come up with a framework for Nix using Sysand.
Thank you xkcd (Randall Munroe)!