Pregenerated files: repo freeze and discourse

Ralf Corsepius ralf.corsepius at rtems.org
Wed Aug 1 07:09:47 UTC 2012


On 08/01/2012 08:03 AM, Chris Johns wrote:
> On 1/08/12 1:44 PM, Ralf Corsepius wrote:
>> On 07/31/2012 07:41 PM, Gedare Bloom wrote:

>> The sizes of the repos hardly has any impact on using the repos.
>>
>
> Ralf, based on what ?

It a one time thing affecting "cloning". It does not affect using.


>>> So far I have not seen very clear explanation why adding these
>>> generated files to the git repository is the best solution long-term
>>> for RTEMS.
>> I already tried to explain this before.
>>
>> The advantages are:
>> - No need for "bootstrap".
>
> Does this mean the bootstrap is going away as a result of this ?
No. It only means bootstrap has become a maintainer thing.

Users will on need it on very rare occasions.

>> - Makes bugs in configuration files more visible.
>
> Could you explain this ? I find the complexity of the autoconf and
> automake set up we have in RTEMS difficult to follow so I fail to
> understand how I am support to come to this conclusion.
>
>> - Makes user mistakes in configuration files more visible.
>
> Could you please explain this ?

One such case is changes silently not getting promoted, e.g. changes to 
configure.ac into configure-scripts.

With configure in git you'd immediately notice this in "git diffs"

Historic example for such a case in RTEMS is bspopts.h-generation. There 
have been cases, when syntax errors in configure.ac had caused silently 
broken configure scripts, which then had produced broken bspopts.h.in. 
These errors had managed to get away unnoticed longer periods, because 
they only affected the generated files.


>> ...
>>
>>
>>> The main problem we face is that switching branches with
>>> generated files is troublesome,
>> This is simply not true.
>>
>>   Switching branches is supposed to wipe all such files away to replace
>> them with the versions on the "switched-to branch".
>>
>> I.e. try working on local branches with all changes kept in git.
>> When changing configure.acs/Makefiles.am, manually regenerate the files
>> using autoreconf and commit the resulting changes.
>>
>
> Gedare was commenting on the issues with the files not in git.

Again, with the new scheme, there are "not any files not in git"

>> People need to go through a learning curve and adopt their habits.
>> that's all.
>
> Could you please provide documentation on how we are suppose to use this
> ?
I really don't know what to answer.

It all condenses down into:
- Make sure to have the nominal versions of the autotools in $PATH.
- Make sure to have your Makefile.ins and configures in git.
- After having run a toplevel ./bootstrap git diff must be empty.

Then work with RTEMS as before.

> For example can we mix generated files from different hosts ?
Sure. The files in question are _generated sources_, ie. they are 
supposed to be identical on all hosts (Otherwise they can't be part of a 
VCS).

> Does a
> change in any autotools require all generated files to be updated ?
Yes. Each version of rtems requires a specific set of autotools.

This is not new and had applied ever since RTEMS uses autotools.

> There are many more questions.
Did you actually try to build RTEMS since my commits? I can not avoid to 
presume "no", because otherwise you'd not raise these comments.

Ralf




More information about the devel mailing list