Version ordering and version graph fixes#31
Version ordering and version graph fixes#310x189D7997 wants to merge 28 commits intoWinPlay02:masterfrom
Conversation
|
While this fixes the crash, there's another issue here, which is that |
This comment was marked as resolved.
This comment was marked as resolved.
|
In this case you just need to figure out the correct version ids. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
I think that's a good idea. The filter in I reckon the proper solution is to replace the non-null filter with a general version filter that is also used by the |
This comment was marked as resolved.
This comment was marked as resolved.
|
@SpaceWalkerRS There is also a problem with Trying to run it both with and without my changes results in this: So far I have not pinned it but I don't want to open a separate issue yet because this might be related and be fixed in this PR. |
I think that would be fine. I don't think it will affected the ordering at all since their parent version is set explicitly in
If it gets sorted fine automatically I wouldn't bother with it.
That's a nasty issue. And the log message isn't actually that helpful I've found, the last visited version is rarely actually related to the issue. If it happens without your changes too I would just investigate it separately and open a new PR for it. I might have some time to look into it as well. |
It affects the order when automatically naming a repo, not sure if that actually matters. Other then this the PR should be ready. I will try to deal with graph error separately. Edit: add example |
Or not. Found 2 more small issues worth fixing here:
And another suggestion: |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as resolved.
This comment was marked as resolved.
|
this is looking good |
There's still a big issue that needs custom logic. Because 1.18 experimental snapshots were merged, their branching point ( This is exactly what When filtering ranges we should check for such merges and exclude orphan branches. Only exclude if merging point is included, otherwise this is fine. |
|
This is getting cluttered, I will be making a review explaining each individual change later. |
...n/groovy/com/github/winplay02/gitcraft/manifest/omniarchive/OmniarchiveMetadataProvider.java
Outdated
Show resolved
Hide resolved
...n/groovy/com/github/winplay02/gitcraft/manifest/omniarchive/OmniarchiveMetadataProvider.java
Outdated
Show resolved
Hide resolved
...n/groovy/com/github/winplay02/gitcraft/manifest/omniarchive/OmniarchiveMetadataProvider.java
Outdated
Show resolved
Hide resolved
...n/groovy/com/github/winplay02/gitcraft/manifest/omniarchive/OmniarchiveMetadataProvider.java
Outdated
Show resolved
Hide resolved
...n/groovy/com/github/winplay02/gitcraft/manifest/omniarchive/OmniarchiveMetadataProvider.java
Outdated
Show resolved
Hide resolved
This needs a 'walk forward to tip' method in Current branch finding logic also incorrectly marks branches which had main branch merged into them (combat experimental snapshots). @SpaceWalkerRS I want you to look at this and decide if this should be implemented, and if so I will open a PR. From my testing it works flawlessly. |
This comment was marked as resolved.
This comment was marked as resolved.
|
@SpaceWalkerRS I decided to split this in three parts to make merging easier and avoid clutter:
I will publish these PRs individually later. |
This PR evolved to include multiple fixes for bugs related to incorrect ordering of versions, especially when using non-mojang manifest sources. I decided to include fixes for version graph here too because they are closely related and dependent on ordering fixes.
Previous description
Omniarchive manifest contains versions such as `19w13b+1653` which get matched to `null` by `BaseMetadataProvider.getVersionByVersionID(String versionId)`.OmniarchiveMetadataProviderinheritsgetParentVersions(...)fromMojangLauncherMetadataProviderand that results in a list containingnullvalues causing aNullPointerExceptiondown the line (inMinecraftVersionGraph.isValidEdge(...)).I have fixed this in
MojangLauncherMetadataProviderinstead of overriding the method inOmniarchiveMetadataProviderbecause a list withnulls is usually not a good or intended thing.This was already accounted for in
SkyrisingMetadataProviderby an override doing the same filtering.