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.