Skip to content

Conversation

@wdeconinck
Copy link
Member

This change adds the command line instruction that generated the configure.sh script in the build directory.

An example configure.sh header will now look like:

#!/usr/bin/env bash

# Configure script, generated by ecbundle version 2.3.0

<<GENESIS
cd /***/ecbundle-genesis/example
../bin/ecbundle-build --dryrun
GENESIS

# The environment in the file "env.sh" will be sourced
# before the build is configured

SCRIPT_DIR="$( cd $( dirname "${BASH_SOURCE[0]}" ) && pwd -P )"
cd "${SCRIPT_DIR}"
...

@codecov-commenter
Copy link

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 40.68%. Comparing base (38e590e) to head (129cffb).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop      #38      +/-   ##
===========================================
+ Coverage    40.67%   40.68%   +0.01%     
===========================================
  Files           49       49              
  Lines        10131    10133       +2     
===========================================
+ Hits          4121     4123       +2     
  Misses        6010     6010              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dhaumont
Copy link

dhaumont commented Nov 10, 2025

Thanks for this addition.
It was not ovbious to understand at first what will happen at execution, with your new <<GENESIS section. I understand now that it a "no-op", as you re-direct the << into an empty command, and the whole section can be considered as a comment.

To be honnest, I was expecting a ".genesis" file generated on disk, but I believe you have good arguments to insert this as a comment in configure.sh...

My question is when is this GENESIS comment created and updated ? Is it the first time you start the build command ?
Or everytime you start it ?
For instance, what will happen if you execute sucessfully a full build, and later on start a build command with the -dry-run argument only ? Will you overwrite and loose the genuine GENESIS command by th ecbundle-build --dry-run command ?

@wdeconinck
Copy link
Member Author

Indeed this effectively inserts the GENESIS content as a comment, but without the # for easy copy/paste
Note that the content cannot contain the bootstrap ial-bundle build command but the ecbundle build command because ecbundle itself does not know about any parent process.

The --dryrun option to ecbundle-build already creates the configure.sh script with all extra options requested. It just prevents to launch the "configure.sh" and "build.sh" script.
You can still edit the "configure.sh" script manually but of course such changes can never be tracked.

Every time you execute again the "ecbundle-build" command for the same --build-dir, a backup directory is created within the specified build dir with name "backup.YYYY-MM-DD.hh:mm:ss" containing copies of pre-existing generated scripts "build.sh clean.sh configure.sh env.sh install.sh" and new versions of these files are generated. At that point this will contain a new GENESIS section. You can go back in the backup directories if you want to see what was used before.
Note that none of the cmake scripts are touched unless --clean option and such are used, and configure.sh may not be retriggered automatically unless --reconfigure option is used.

@dhaumont
Copy link

dhaumont commented Nov 10, 2025

Thanks for the explanations, Willem. I think I'am happy with the feature, at least when it will be properly documented to explain the backup system and where to find the genesis information; I will take care of this for ial-bundle.

@dhaumont
Copy link

@wdeconinck Do you plan to merge this soon ?

@wdeconinck wdeconinck merged commit 0cd4b6d into develop Nov 28, 2025
7 checks passed
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.

4 participants