luanti-org / luanti-org/contentdb

Modpacks can't be interdependent

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

Nobody has claimed this yet.

# Game support Bug
Dominant language
Python
Stars
115
Forks
62
Avg merge
19h 7m
Merged PRs (30d)
5

Description

ContentDB considers packages as a whole. It collects all the dependencies of the mods in the modpack into a single list and this is used for dependency resolution and game support

Say you have the following two packages:

```
Alpha package with mods alpha1 and alpha2
Beta package with mods beta1

alpha1 depends on beta1
beta1 depends on alpha2
```

Minetest will successfully load these mods in the order `alpha2, beta1, alpha1`. However, ContentDB will see this as a dependency cycle between the two packages, as `Alpha` depends on `Beta` and `Beta` depends on `Alpha`.

For an example of this in the wild, see joe7575/techage_modpack and rheo/moreblocks.

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

Start by tracing ContentDB's dependency-resolution and package dependency aggregation entry points; no specific files or tests are named in the issue. Reproduce the Alpha/Beta example and compare package-level cycle detection with Minetest's mod load order. Done means valid interdependent modpacks are accepted without a false dependency cycle.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.