Repository navigation
Native modules: one build module for Bazel, Gradle, Maven, CMake, Meson and Make (#364) - #373
Draft
raiseCatError wants to merge 2 commits into
Draft
raiseCatError wants to merge 2 commits into
raiseCatError wants to merge 2 commits into
Conversation
…on and Make project.build reports the build system of the nearest directory with a build file (up to the repository root) and the version the project pins for it: - Gradle and Maven: the wrapper properties' distributionUrl (never fetched). - Bazel: .bazelversion, as Bazelisk reads it. - CMake and Meson: cmake_minimum_required / meson_version, matched as text and shown as a minimum (≥); a subproject without a declaration uses the nearest CMakeLists.txt that has one. - Make: presence only. No wrapper (gradlew, mvnw), Bazelisk or build file is run or evaluated. Versions are read only when demanded. The `build` pack module is show-on-command (gradle, mvn, cmake, meson, ninja, bazel, make...) and is recommended from the build files; one module instead of one per tool. Tests: wrapper sentinels that fail if run, subproject lookups, the case-insensitive Makefile spelling, control payloads in properties, symlinked metadata and a whitespace-run CMakeLists.txt.
This was referenced Oct 11, 2026
This branch has not been deployed
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The "single
buildmodule" candidate from the #364 coverage matrix, instead of one module per tool. Stacked on #372 (which is stacked on #370) because all three edit thenmsh.projectpack; retarget as the stack lands.project.buildreports the build system of the nearest directory with a build file (up to the repository root) and the version the project pins for it:MODULE.bazel,WORKSPACE(.bazel),.bazelversion.bazelversion(as Bazelisk reads it)settings.gradle(.kts),build.gradle(.kts),gradlewgradle/wrapper/gradle-wrapper.propertiesdistributionUrlpom.xml,mvnw.mvn/wrapper/maven-wrapper.propertiesdistributionUrlCMakeLists.txtcmake_minimum_required(VERSION x…), shown as≥x; a subproject uses the nearest file that declares itmeson.buildmeson_version: '>=x', shown as≥xMakefile,GNUmakefile,makefileNo wrapper (
gradlew,mvnw), Bazelisk or build file is run or evaluated; URLs are never fetched; declarations are matched as text, line-bounded. Versions are read only when demanded. Thebuildmodule is show-on-command (gradle,mvn,cmake,meson,ninja,bazel,make…), starts hidden like other non-cloud pack modules, and is recommended from build files. One segment, because the pack schema bounds a module to four segments and widening a third-party contract for icons was not worth it.Tests: wrapper sentinels that fail if run, subproject lookups, case-insensitive filesystems (
Makefilereported as such on APFS), control payloads in properties, symlinked metadata, whitespace-runCMakeLists.txtin bounded time.