-
-
Notifications
You must be signed in to change notification settings - Fork 344
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pre-release handling #4260
Merged
Merged
Pre-release handling #4260
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
HebaruSan
added
Bug
Something is not working as intended
Enhancement
New features or functionality
GUI
Issues affecting the interactive GUI
Cmdline
Issues affecting the command line
Core (ckan.dll)
Issues affecting the core part of CKAN
Netkan
Issues affecting the netkan data
ConsoleUI
Issues affecting the interactive console UI
i18n
Issues regarding the internationalization of CKAN and PRs that need translating
labels
Nov 20, 2024
HebaruSan
force-pushed
the
feature/pre-releases
branch
from
November 20, 2024 02:54
560b81d
to
5faf9dc
Compare
@JonnyOThan, wanna take this one for a spin?
To mock up testing data, what I did was edit "release_status": "testing", or "release_status": "development", |
HebaruSan
force-pushed
the
feature/pre-releases
branch
2 times, most recently
from
November 21, 2024 22:55
f0902c8
to
5d81726
Compare
HebaruSan
force-pushed
the
feature/pre-releases
branch
from
November 23, 2024 01:07
5d81726
to
a5c2ce6
Compare
This was referenced Nov 26, 2024
JonnyOThan
added a commit
that referenced
this pull request
Jan 27, 2025
…elease status Prior to #4260, the release_status field was purely for user information and did not affect which versions CKAN would index or install. The PR changed that (and we had already removed the release_status from existing netkans). In order to prevent older clients from installing pre-release versions, these versions are now marked with spec_version 1.36. The above PR also added a bit of logic that parsed the version string from mods hosted on spacedock; setting their release_status to "testing" if it has one of the strings "alpha," "beta," "pre." This has led to some trouble, even for older clients. Versions of mods that are hosted on spacedock that used to be installable no longer are (some of these had their last release years ago). Also since non-latest versions don't get re-inflated, this leads to the older ckan clients installing the second-newest version from spacedock even if it's also labeled "beta." This happened to kopernicus expansion continueder, and it's especially unfortunate because the 2nd-newest version has a bug that makes it completely broken (which is what led me to discover this in the first place). HebaruSan also applied the "testing" status to that release, but then this has the effect of making the mod not visible at all to the older ckan client, which is creating new issues of users needing support when they try to install mods that depend on kopernicus expansion.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Bug
Something is not working as intended
Cmdline
Issues affecting the command line
ConsoleUI
Issues affecting the interactive console UI
Core (ckan.dll)
Issues affecting the core part of CKAN
Enhancement
New features or functionality
GUI
Issues affecting the interactive GUI
i18n
Issues regarding the internationalization of CKAN and PRs that need translating
Netkan
Issues affecting the netkan data
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
@JonnyOThan wants to make prereleases of RPM and FreeIva available to CKAN users on an opt-in basis.
Currently the inflator just ignores prereleases, so they aren't added to the default metadata repo at all.
Problems
Bugs encountered during dev:
Causes
OnPaint
method never runs on Windows, so the text never gets drawn!Changes
ReleaseStatus
is changed from a rich class containing astring
to anenum
with integer values andDisplay
attributes for each optionJsonReleaseStatusConverter
is created to migratealpha
todevelopment
andbeta
totesting
CKAN.Configuration.StabilityToleranceConfig
class is created to hold JSON-serializable data representing an overallRelease
status plus per-mod overridesRelationshipResolverOptions
now requires one of these and provides it to the relationship resolver code that needs it to pick modules; from there it is passed layer-by-layer toAvailableModules.Latest
which actually applies the filterCompatibleGameVersions
is moved to theConfiguration
folder and theCKAN.Configuration
namespaceGameInstance.StabilityToleranceConfig
represents such an object for each game instance, saved to<game root>/CKAN/stability_tolerance.json
JsonConfiguration
now raises aPropertyChanged
event when the system level install filters are changedMain
to tell it to refresh after the install filters window closes--prerelease
option is changed from boolean to nullable boolean, so the options are:true
: Inflate only prereleases (same as before)false
: Inflate only non-prereleases (same as before, also the old default)null
(omitted, therefore the new default): Inflate bothx_netkan_github
may now contain aprereleases
flag with the same values and effects as above, in case we need to override this behavior for an individual modrelease_status
totesting
release_status
totesting
release_status
has to be as stable as the configured stability tolerancerelease_status
, which will become a problem once we start indexing prereleases. Therefore the spec version analyzer is updated to setspec_version
tov1.36
for any module with arelease_status
other thanstable
, which will ensure that they will be hidden by the old clientMeta.IsNetKAN
is now created to returntrue
from inside Netkan andfalse
in the client, which we then use to turn off spec version validationGenerated 2 modules but only 1 requested
check is relaxed for prereleasesx_netkan
properties of the sections of a netkan before inflation. In the near term this will mean we no longer need to putinstall:
under both the GitHub and SpaceDock sections.ckan stability list
andckan stability set
to show and edit the new settings;set --mod
can be used to set mod overridesConsoleComboButtons
control representing a group of radio buttons, and a derived classReleaseStatsComboButtons
using it to represent choosing a value fromReleaseStatus
, which is added to the instance edit and mod info screensUserPaint
style to makeOnPaint
run, where it usesProgressBarRenderer
to draw the progress bar before it draws the text, which hopefully will work everywhereSuspendLayout
,ResumeLayout
, andPerformLayout
calls are added to GUI, which fixes a few UI glitches and reduces some flickeringFixes #4159.