Usage of Deprecated fabric-models-v0
sylv256 opened this issue ยท 8 comments
Description
EMI uses fabric-models-v0
which is deprecated.
Notice
The below information is due to user error. This issue is open to track the usage of the deprecated fabric-models-v0
FAPI module.
Description
Crashes upon startup in a development environment. I believe this is because it uses the deprecated fabric-models-v0
module which was recently removed in a heavily breaking change.
Logs
Information
Loader | OS | Dev Environment | Loader Version | FAPI Version |
---|---|---|---|---|
Quilt | Linux 6.4.11-arch2-1 |
Yes | 0.19.5 |
0.87.0 |
I've tested this in prod, it works fine with latest QFAPI and FAPI, why is this breaking in dev? This does not follow a normal deprecation cycle as I expect of FAPI, has there been a mistake or is this actually intentional?
After a discussion with the Fabric API team, it seems like as of Fabric API 0.87.0, deprecated dependency exclusion is opt-out rather than opt-in, and Fabric mods depending on EMI should not be running into this issue. If you can reproduce this in a cleaner, full-fabric environment there may be more to look into, but I believe this is an issue with QSL. I'll leave this up to update to the new model API, but it's of low priority.
I've tested this in prod, it works fine with latest QFAPI and FAPI, why is this breaking in dev? This does not follow a normal deprecation cycle as I expect of FAPI, has there been a mistake or is this actually intentional?
fabric-models-v0
does not appear in my development environment. Notably, I'm using these hacks to make FAPI and Floader stop fucking up my dev:
// must-have libraries
modCompileOnly(libs.wthit.api) {
exclude("net.fabricmc.fabric-api")
exclude("net.fabricmc")
}
modCompileOnly(libs.emi.api) {
exclude("net.fabricmc.fabric-api")
exclude("net.fabricmc")
}
// runtime mods
modLocalRuntime(libs.emi.api) {
exclude("net.fabricmc.fabric-api")
exclude("net.fabricmc")
}
Though, it wouldn't make sense for Gradle to ignore an excluded transitive dependency if it's explicitly included, let alone a reimplementation in a separate package.
I'm also using this in my libs.versions.toml
:
[bundles]
quilted_fabric_api = ["quilted_fabric_api", "quilted_fabric_api_deprecated"]
It should therefore be using the deprecated FAPI modules.
I migrated in 1.20 onward and forgot to close, I'll continue using the deprecated version in older versions.
It seems that this is still an issue in pure Quilt dev environments, as Quilt Loom has not adapted the change to opt-in to the deprecated modules by default, and Quilted Fabric API has not yet updated past 1.20.1.
Would it be feasible to just bump the Fabric API version to 0.90.0 for the 1.20 branch, and replace the deprecated module as the more recent branches have?