Skip to content

build: fix version ini case sensitivity#2160

Merged
alandtse merged 1 commit into
community-shaders:devfrom
alandtse:build_version_ini
Apr 19, 2026
Merged

build: fix version ini case sensitivity#2160
alandtse merged 1 commit into
community-shaders:devfrom
alandtse:build_version_ini

Conversation

@alandtse
Copy link
Copy Markdown
Collaborator

@alandtse alandtse commented Apr 19, 2026

Summary by CodeRabbit

Release Notes

  • Chores
    • Standardized feature configuration file format for consistency across the application.
    • Updated build system to recognize standardized configuration syntax.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 19, 2026

📝 Walkthrough

Walkthrough

This PR standardizes feature configuration files by updating CMake version detection to be case-insensitive and normalizing 35 feature INI files to use uppercase Version in their [Info] section metadata keys instead of lowercase version, keeping all version values unchanged.

Changes

Cohort / File(s) Summary
CMake Version Detection
CMakeLists.txt
Updated regex pattern to match [Vv]ersion = ... for case-insensitive feature version key detection during build time.
Feature INI Configuration
features/Cloud Shadows/.../CloudShadows.ini, features/Dynamic Cubemaps/.../DynamicCubemaps.ini, features/Exponential Height Fog/.../ExponentialHeightFog.ini, features/Extended Materials/.../ExtendedMaterials.ini, features/Extended Translucency/.../ExtendedTranslucency.ini, features/Grass Collision/.../GrassCollision.ini, features/Grass Lighting/.../GrassLighting.ini, features/HDR Display/.../HDRDisplay.ini, features/Hair Specular/.../HairSpecular.ini, features/IBL/.../ImageBasedLighting.ini, features/Interior Sun/.../InteriorSun.ini, features/Inverse Square Lighting/.../InverseSquareLighting.ini, features/LOD Blending/.../LODBlending.ini, features/Light Limit Fix/.../LightLimitFix.ini, features/Linear Lighting/.../LinearLighting.ini, features/Performance Overlay/.../PerformanceOverlay.ini, features/RenderDoc/.../RenderDoc.ini, features/Screen Space GI/.../ScreenSpaceGI.ini, features/Screen-Space Shadows/.../ScreenSpaceShadows.ini, features/Sky Sync/.../SkySync.ini, features/Skylighting/.../Skylighting.ini, features/Subsurface Scattering/.../SubsurfaceScattering.ini, features/Terrain Blending/.../TerrainBlending.ini, features/Terrain Helper/.../TerrainHelper.ini, features/Terrain Shadows/.../TerrainShadows.ini, features/Terrain Variation/.../TerrainVariation.ini, features/Unified Water/.../UnifiedWater.ini, features/Upscaling/.../Upscaling.ini, features/VR/.../VR.ini, features/Volumetric Lighting/.../VolumetricLighting.ini, features/Volumetric Shadows/.../VolumetricShadows.ini, features/Water Effects/.../WaterEffects.ini, features/Weather Editor/.../WeatherEditor.ini, features/Wetness Effects/.../WetnessEffects.ini
Normalized [Info] section key from lowercase version to uppercase Version across all 35 feature metadata files (all version values remain unchanged).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Suggested reviewers

  • doodlum

Poem

Hopping through features with glee so bright, 🐰
From lowercase "version" to "Version" in flight,
Each INI file gets a capital treat,
While CMake learns both forms are neat!
Case-insensitive parsing makes this complete!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately summarizes the main change: updating the CMake version detection regex to be case-insensitive and standardizing all feature INI files to use capitalized 'Version' key.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

No actionable suggestions for changed features.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (3)
features/Grass Lighting/Shaders/Features/GrassLighting.ini (1)

2-2: Suggested PR title/body metadata polish.

Consider a conventional-commit title like: build(features): normalize ini version key casing
If this fixes a tracked bug, add Fixes #<id> (or Closes #<id>) in the PR description.

As per coding guidelines: "provide suggestions for Conventional Commit Titles" and "Issue References".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@features/Grass` Lighting/Shaders/Features/GrassLighting.ini at line 2, Update
the PR metadata to follow Conventional Commits by using a commit title like
"build(features): normalize ini version key casing" and include an issue
reference if this change fixes a tracked bug (add "Fixes #<id>" or "Closes
#<id>" in the PR description); specifically mention the INI key "Version =
2-0-1" in the PR body so reviewers know which configuration line is affected.
features/IBL/Shaders/Features/ImageBasedLighting.ini (1)

2-2: Consider adding an issue-closing keyword in the PR description.
If this fixes a tracked bug, add Closes #<id> (or Fixes #<id>) for traceability.

As per coding guidelines, PRs fixing bugs should include GitHub issue references like “Fixes #123” or “Closes #123”.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@features/IBL/Shaders/Features/ImageBasedLighting.ini` at line 2, The PR
currently updates ImageBasedLighting.ini (see Version = 1-1-0) but lacks an
issue-closing keyword; update the PR description to include a GitHub issue
reference using a closing keyword such as "Fixes #<id>" or "Closes #<id>"
(replace <id> with the tracked issue number) so the change is linked to and
automatically closes the corresponding issue.
CMakeLists.txt (1)

200-200: Partial case-insensitivity in regex.

[Vv]ersion matches Version and version but not other casings (e.g., VERSION, VErsion). Given all feature INIs are being normalized to Version in this PR, this is sufficient in practice, but if the intent is true case-insensitive parsing, consider [Vv][Ee][Rr][Ss][Ii][Oo][Nn] or normalizing CONFIG_VALUE via string(TOLOWER ...) before the regex match.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CMakeLists.txt` at line 200, The REGEX MATCH currently uses "[Vv]ersion =
..." which only accepts two casings; to make matching truly case-insensitive
either change the regex to match all letter-case permutations like
"[Vv][Ee][Rr][Ss][Ii][Oo][Nn] = ..." or normalize the variable used in the match
(e.g., call string(TOLOWER CONFIG_VALUE ...) or similar before REGEX MATCH) and
adjust the pattern to "version = ..."; update the REGEX MATCH invocation and any
use of CONFIG_VALUE accordingly so all case variants (e.g., VERSION, Version,
vErSiOn) are accepted consistently.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@CMakeLists.txt`:
- Line 200: The REGEX MATCH currently uses "[Vv]ersion = ..." which only accepts
two casings; to make matching truly case-insensitive either change the regex to
match all letter-case permutations like "[Vv][Ee][Rr][Ss][Ii][Oo][Nn] = ..." or
normalize the variable used in the match (e.g., call string(TOLOWER CONFIG_VALUE
...) or similar before REGEX MATCH) and adjust the pattern to "version = ...";
update the REGEX MATCH invocation and any use of CONFIG_VALUE accordingly so all
case variants (e.g., VERSION, Version, vErSiOn) are accepted consistently.

In `@features/Grass` Lighting/Shaders/Features/GrassLighting.ini:
- Line 2: Update the PR metadata to follow Conventional Commits by using a
commit title like "build(features): normalize ini version key casing" and
include an issue reference if this change fixes a tracked bug (add "Fixes #<id>"
or "Closes #<id>" in the PR description); specifically mention the INI key
"Version = 2-0-1" in the PR body so reviewers know which configuration line is
affected.

In `@features/IBL/Shaders/Features/ImageBasedLighting.ini`:
- Line 2: The PR currently updates ImageBasedLighting.ini (see Version = 1-1-0)
but lacks an issue-closing keyword; update the PR description to include a
GitHub issue reference using a closing keyword such as "Fixes #<id>" or "Closes
#<id>" (replace <id> with the tracked issue number) so the change is linked to
and automatically closes the corresponding issue.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7b7bdab6-e090-4197-8ab1-bbdb750a6d8d

📥 Commits

Reviewing files that changed from the base of the PR and between f2fd2a3 and 2cdd2d6.

📒 Files selected for processing (35)
  • CMakeLists.txt
  • features/Cloud Shadows/Shaders/Features/CloudShadows.ini
  • features/Dynamic Cubemaps/Shaders/Features/DynamicCubemaps.ini
  • features/Exponential Height Fog/Shaders/Features/ExponentialHeightFog.ini
  • features/Extended Materials/Shaders/Features/ExtendedMaterials.ini
  • features/Extended Translucency/Shaders/Features/ExtendedTranslucency.ini
  • features/Grass Collision/Shaders/Features/GrassCollision.ini
  • features/Grass Lighting/Shaders/Features/GrassLighting.ini
  • features/HDR Display/Shaders/Features/HDRDisplay.ini
  • features/Hair Specular/Shaders/Features/HairSpecular.ini
  • features/IBL/Shaders/Features/ImageBasedLighting.ini
  • features/Interior Sun/Shaders/Features/InteriorSun.ini
  • features/Inverse Square Lighting/Shaders/Features/InverseSquareLighting.ini
  • features/LOD Blending/Shaders/Features/LODBlending.ini
  • features/Light Limit Fix/Shaders/Features/LightLimitFix.ini
  • features/Linear Lighting/Shaders/Features/LinearLighting.ini
  • features/Performance Overlay/Shaders/Features/PerformanceOverlay.ini
  • features/RenderDoc/Shaders/Features/RenderDoc.ini
  • features/Screen Space GI/Shaders/Features/ScreenSpaceGI.ini
  • features/Screen-Space Shadows/Shaders/Features/ScreenSpaceShadows.ini
  • features/Sky Sync/Shaders/Features/SkySync.ini
  • features/Skylighting/Shaders/Features/Skylighting.ini
  • features/Subsurface Scattering/Shaders/Features/SubsurfaceScattering.ini
  • features/Terrain Blending/Shaders/Features/TerrainBlending.ini
  • features/Terrain Helper/Shaders/Features/TerrainHelper.ini
  • features/Terrain Shadows/Shaders/Features/TerrainShadows.ini
  • features/Terrain Variation/Shaders/Features/TerrainVariation.ini
  • features/Unified Water/Shaders/Features/UnifiedWater.ini
  • features/Upscaling/Shaders/Features/Upscaling.ini
  • features/VR/Shaders/Features/VR.ini
  • features/Volumetric Lighting/Shaders/Features/VolumetricLighting.ini
  • features/Volumetric Shadows/Shaders/Features/VolumetricShadows.ini
  • features/Water Effects/Shaders/Features/WaterEffects.ini
  • features/Weather Editor/Shaders/Features/WeatherEditor.ini
  • features/Wetness Effects/Shaders/Features/WetnessEffects.ini

@alandtse alandtse merged commit d0bc11a into community-shaders:dev Apr 19, 2026
15 checks passed
@alandtse alandtse deleted the build_version_ini branch April 19, 2026 23:32
@github-actions
Copy link
Copy Markdown

✅ A pre-release build is available for this PR:
Download

ParticleTroned pushed a commit to ParticleTroned/skyrim-community-shaders that referenced this pull request May 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants