Closed Anarchid closed 7 years ago
Previously, this also was the case for Eye of Horus (which was later re-released without dependency), and is presumably also the case for Fetid Marsh.
SpringLobby (when run on uberserver), SWL (both flavours) and flobby launch these maps without issue, by virtue of using pr-downloader.
This is by design. Springfeatures is in unitsync wrapper ignore list. It was planned to include this in ZK deployment directly instead of having gigantic dependency.
There can be new versions of Spring Features released, which new maps might depend on. Packaging is not a practical solution.
The filesize is 50mb. It is not gigantic; individual maps exists which are larger.
Where does the ignore setting reside? Checking the database, indeed, ZKI believes that Fetid Marsh does not have any dependencies, and no resource containing both 'spring' and 'features' in name at the same time exists.
I failed to find any ignore explicitly for spring features in ZKI codebase (there are other exceptions here), and there doesn't seem to be any mention of ignore file being respected by unitsync.dll.
Giving AutoRegistrator the spring features file to play with, results in this:
It seems very likely that, in fact, any map dependencies are just ignored?
Map.cs lacks a definition for "dependency".
also:
SELECT count(*)
FROM [zero-k_ef].[dbo].[Resources]
LEFT JOIN [zero-k_ef].[dbo].[ResourceDependencies]
ON Resources.ResourceID = ResourceDependencies.ResourceID
WHERE TypeID = 0
AND NOT NeedsInternalName is NULL
-> zero
So, this is not an unitsync ignore of spring features exclusively, but map dependencies not being parsed at all.
You could create it by adding dependency manuall
2015-07-02 18:15 GMT+02:00 Анархид notifications@github.com:
There can be new versions of Spring Features released, which new maps might depend on. Packaging is not a practical solution.
The filesize is 50mb. It is not gigantic; individual maps exists which are larger.
Where does the ignore setting reside? Checking the database, indeed, ZKI believes that Fetid Marsh does not have any dependencies, and no resource containing both 'spring' and 'features' in name at the same time exists.
— Reply to this email directly or view it on GitHub https://github.com/ZeroK-RTS/Zero-K-Infrastructure/issues/682#issuecomment-118081840 .
You are right unitsync.cs does not know map dependencies exist. It's too ancient (for ancient unitsync.dll).
UnitSync.cs:462 has GetModDependencies, dunno if equvalent for map would work with modern unitsync. Needs to be tested first. If yes it can be changed.
Ignore list for dependencies is in UnitSync.cs:30 and is ok i guess.
Is spring features on rapid? What tag?
Someone should look at unitsync.cs and update it for modern unitsync (lets say 91.0 version). This is a first step which i suspect will also fix spring features not being "unitsyncable"
Modern unitsync is 96+, 91.0 is a bag of segfaults.
Interestingly, Akilon versions above 3 also seem to be autoregistrator proof: they're completely not listed rather than merely not have their dependencies parsed, despite being faithfully mirrored.
Some recent findings:
Plan is to stop relying on spring files completely. Upload to ZK site along with dependencies should solve it.
-> requires ZK to have own (duplicate) upload interface
http://api.springfiles.com/?springname=Battle+for+Planet+XIV+-+v01
(imo only makes sense to use it, when you contribute to it, too)
Is there some "light" way to auto "register" some things? We could perhaps dump existing unitsync related stuff if this project is long-term maintained and working well.
Is there some "light" way to auto "register" some things?
i don't understand this question, what do you want to do?
this project runs since ~5 years and a lot of stuff depends on it (pr-downloader / springlobby dl stuff / mirroring / springweblobby).
the existing code would need some love, but its mostly modular, so stuff can be adjusted when needed.
code, bugs, todo: https://github.com/springfiles/upq
imo upq should not be used to fix this specific issue as it should be a tiny code change in zkl code, but its more a question for the general direction of the zkl (depend again on external stuff vs have full control over it)
maybe just "translate" the code which fetches the depends to .net: https://github.com/springfiles/upq/blob/master/jobs/extract_metadata.py#L540
No longer a thing?
No longer a thing?
http://zero-k.info/Forum/Thread/21074 - although there it is " archive "spring features 1.0" not found"
It can happen for maps without deps set or processed long ago.. need to manually fix when found
Reopening, maps need to be checked for missing dependencies in system. If such map is found, delete it from ZK map list and let system re-register it.
Yes, I am experiencing this issue myself too now. I accidentally canceled downloading of Spring Features 1.0 and now I am not able to redownload it again.
I believe this is obsolete now that AR should be able to read map dependencies as well as game deps.
1) go to your nearest local Springie 2) issue
!map xiv
3) this map is selected by the command: http://zero-k.info/Maps/Detail/45567 4) download proceeds to complete 5) issue!start
or!forcestart
as required to start the game 6) An error box appears claiming you don't have Spring Features 1.1, which is a dependency of this map