Skip to content

README.md: Limit git submodule update to 1 layer - #3642

Closed
petecooper wants to merge 1 commit into
owasp-modsecurity:v3/masterfrom
petecooper:v3/master
Closed

petecooper wants to merge 1 commit into
owasp-modsecurity:v3/masterfrom
petecooper:v3/master

Conversation

@petecooper

@petecooper petecooper commented Sep 22, 2026 •

Copy link
Copy Markdown

Limit git submodule update to 1 layer deep.

Considerably reduces data transfer & storage requirements, and time taken to complete operation

Fewer levels of depth = fewer revisions downloaded = less data transfer & less time taken.

Summary by CodeRabbit

  • Documentation
    • Updated setup instructions to use shallow recursive submodule fetching.
    • Applied the streamlined command format consistently across build, dependency, and test setup steps.

limit `git submodule update` to 1 layer
considerably reduces transfer amount and time taken
@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 43983dd6-5ef5-4a89-a089-215c85abad6d

📥 Commits

Reviewing files that changed from the base of the PR and between 2dada4c and c304165.

📒 Files selected for processing (1)
  • README.md

Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The README now uses recursive submodule fetching with --depth 1 in Unix build, Git-submodule, and patch-testing instructions.

Changes

Submodule fetching instructions

Layer / File(s) Summary
Update documented submodule commands
README.md
Build, dependency, and patch-testing instructions now fetch submodules recursively with depth 1.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to c3041

The README-only shallow-fetch change has no established merge-blocking risk.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the README change: limiting submodule updates to depth 1. It matches the primary change in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

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.

@sonarqubecloud

Copy link
Copy Markdown

@airween

airween commented Sep 22, 2026

Copy link
Copy Markdown
Member

Hi @petecooper,

thanks for this PR.

I see the purpose of the change, but I have concerns about it.

I compared the build environments (upstream/v3/master and your one).

Pro: the downloaded size is less. Without your modification, the raw source size (after downloaded the submodules) is 669MB. With the modification it's only 157MB.

Cons: build.sh generates lots of errors, and all version info have lost:

$ ./build.sh 
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build'.
libtoolize: copying file 'build/libtool.m4'
libtoolize: copying file 'build/ltoptions.m4'
libtoolize: copying file 'build/ltsugar.m4'
libtoolize: copying file 'build/ltversion.m4'
libtoolize: copying file 'build/lt~obsolete.m4'
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
configure.ac:51: installing './ar-lib'
configure.ac:51: installing './compile'
configure.ac:189: installing './config.guess'
configure.ac:189: installing './config.sub'
configure.ac:46: installing './install-sh'
configure.ac:46: installing './missing'
parallel-tests: installing './test-driver'
examples/multiprocess_c/Makefile.am: installing './depcomp'
configure.ac: installing './ylwrap'
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.
fatal: No names found, cannot describe anything.

$ ./configure

ModSecurity -  for Linux
 
 Mandatory dependencies
   + libInjection                                  ....
   + Mbed TLS                                      ....
   + SecLang tests                                 ....a3d4405

To compare with the unpatched version, here is its output:

 ./build.sh 
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build'.
libtoolize: copying file 'build/libtool.m4'
libtoolize: copying file 'build/ltoptions.m4'
libtoolize: copying file 'build/ltsugar.m4'
libtoolize: copying file 'build/ltversion.m4'
libtoolize: copying file 'build/lt~obsolete.m4'
configure.ac:51: installing './ar-lib'
configure.ac:51: installing './compile'
configure.ac:189: installing './config.guess'
configure.ac:189: installing './config.sub'
configure.ac:46: installing './install-sh'
configure.ac:46: installing './missing'
parallel-tests: installing './test-driver'
examples/multiprocess_c/Makefile.am: installing './depcomp'
configure.ac: installing './ylwrap'

./configure

ModSecurity - v3.0.16-2-g2dada4ce for Linux
 
 Mandatory dependencies
   + libInjection                                  ....v4.0.0
   + Mbed TLS                                      ....v4.1.0
   + SecLang tests                                 ....a3d4405

I'm not sure this solution fits what you really want to reach.

@petecooper

Copy link
Copy Markdown
Author

Understood. No drama. I'll close.

@petecooper petecooper closed this Sep 22, 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