Skip to content

Commit 6f61ef2

Browse files
author
Your Name
committed
Add problems-solutions library and critical chain
1 parent 0d35366 commit 6f61ef2

6 files changed

Lines changed: 134 additions & 0 deletions

README.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -787,3 +787,7 @@ Special thanks to the Elixir, Rust, and ReScript communities for excellent tooli
787787
**Status:** v1.0.0 Released | **Next:** v1.1 Production Hardening (Q1 2026)
788788

789789
For the latest updates, see link:ROADMAP.adoc[ROADMAP.adoc] and link:STATE.scm[STATE.scm].
790+
791+
== Problems → Solutions
792+
793+
See link:problems-solutions/README.adoc[problems-solutions] for real-world failure cases and how OPSM should resolve them.

ROADMAP.adoc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,31 @@ toc::[]
1313

1414
== Overview
1515

16+
== Critical Chain (Priority Path)
17+
18+
OPSM’s highest‑impact milestone path is:
19+
20+
1. **Package‑managerless languages** (hardest‑to‑install first)
21+
2. **Rogue repos / extrepos** (GitHub/GitLab/Bitbucket that lack manifests)
22+
3. **OS‑package fallback** (when apt/dnf/pacman/rpm‑ostree fail)
23+
24+
This path is additive and does not replace the rest of the roadmap.
25+
26+
=== Example (Smart Install)
27+
28+
[source,bash]
29+
----
30+
opsm install [rpm-ostree: gnat ada ats2 v forth factor ldc zig idris2 ghc] [toolbox: janus arrow paxos kraft raft swi-prolog datalog logtalk qml ocaml j lisp lfe rust gcc gcc-c++]
31+
----
32+
33+
Expected behavior:
34+
35+
* Classify packages by backend
36+
* Offer substitutes (e.g., gforth when "forth" missing)
37+
* Dry‑run plan with conflicts and policy warnings
38+
* Reversible apply if approved
39+
40+
1641
OPSM's roadmap progresses through four major phases:
1742

1843
[source]
@@ -1076,3 +1101,5 @@ Transform OPSM from "8-language package manager" to "universal, intelligent pack
10761101
OPSM becomes a global, federated, verifiable substrate for software distribution across
10771102
languages, platforms, and domains — with strict policy controls, user sovereignty, and
10781103
provable integrity as the default.
1104+
1105+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
= Rogue Git repo install (no manifest)
3+
4+
== Context
5+
6+
* Source: GitHub/GitLab/Bitbucket repository
7+
* No package manager metadata or manifest
8+
9+
== Exact Error
10+
11+
"No package/manifest found" or install fails after clone.
12+
13+
== Expected OPSM Behavior
14+
15+
* Identify project type via heuristics (language, build files)
16+
* Propose install plan (build + install) with **dry‑run**
17+
* Use `bitfuckit`/extrepo helpers where applicable
18+
* Cache build artifacts and report reproducibility hints
19+
20+
== Fallback Strategy
21+
22+
* If no build system, provide interactive build steps
23+
* If incompatible architecture, offer alternatives or skip
24+
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
= rpm-ostree multi‑install with mixed availability
3+
4+
== Context
5+
6+
* OS: Fedora Silverblue
7+
* Manager: rpm-ostree
8+
* User wants: batch install with mixed language tooling
9+
10+
== Exact Error
11+
12+
User supplied a mixed list including packages not in rpm‑ostree or only available
13+
via toolbox/flatpak/source.
14+
15+
== Expected OPSM Behavior
16+
17+
* Parse list and classify per backend.
18+
* Warn about unresolvable items on rpm‑ostree.
19+
* Offer alternatives (toolbox, container, source build).
20+
* Provide **dry‑run** plan before apply.
21+
22+
== Fallback Strategy
23+
24+
* rpm‑ostree for base packages
25+
* toolbox/distrobox for dev toolchains
26+
* source/rogue‑repo install for orphaned packages
27+
28+
== Notes
29+
30+
OPSM should auto‑detect architecture constraints (e.g., mac‑only packages) and
31+
mark as incompatible with explicit reasons.
32+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
= Unmaintained or compromised package
3+
4+
== Context
5+
6+
* Package exists but is unmaintained or flagged
7+
* User expects normal install
8+
9+
== Expected OPSM Behavior
10+
11+
* Warn clearly in WYSIWYG mode
12+
* Block in WYSIWYGM unless policy allows
13+
* Suggest known alternatives
14+
* Record the decision for audit
15+
16+
== Notes
17+
18+
Signals can come from advisories, maintainer activity, and trust services.
19+

problems-solutions/README.adoc

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
= Problems → Solutions Library
3+
:toc: preamble
4+
:toclevels: 2
5+
6+
This folder collects real‑world package manager failures and how OPSM should
7+
address them. Add scenarios from your own experience (or from public issue
8+
threads) with error messages, context, and expected behavior.
9+
10+
== How to Add a Scenario
11+
12+
Create a new file named like:
13+
14+
`YYYY-MM-DD-short-title.adoc`
15+
16+
Include:
17+
18+
* **Context** (OS, distro, package manager)
19+
* **Exact error**
20+
* **Expected OPSM behavior**
21+
* **Fallback strategy**
22+
* **Notes** (known issues, unmaintained, compromised, etc.)
23+
24+
== Why This Exists
25+
26+
Many package managers fail in recurring ways. OPSM will map these to known
27+
causes and recommended resolutions, with user‑friendly warnings.
28+

0 commit comments

Comments
 (0)