This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Outdated Modules/Setup warning is invisible
Type: enhancement Stage: resolved
Components: Build Versions: Python 3.7, Python 3.6, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: mdk Nosy List: barry, benjamin.peterson, lemburg, mdk, pitrou, vstinner, xdegaye
Priority: low Keywords: patch

Created on 2017-12-26 22:10 by mdk, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 5015 closed mdk, 2017-12-26 22:12
Messages (12)
msg309066 - (view) Author: Julien Palard (mdk) * (Python committer) Date: 2017-12-26 22:10
The devguide advise to run `make -j`, why not, but in any cases between `make -j4` and `make -j` the warning:

    -----------------------------------------------
    Modules/Setup.dist is newer than Modules/Setup;
    check to make sure you have all the updates you
    need in your Modules/Setup file.
    Usually, copying Modules/Setup.dist to Modules/Setup will work.
    -----------------------------------------------

is invisible (gets on screen first, and get kicked real quick by the compilation lines).

This got me once, and I'm not alone: https://bugs.python.org/issue32335 (And I suspect we're more than just two).

I propose to make this stop the compilation, proposing two cases:

- You modified the file? Touch it so it gets seen as up to date by makefile
- You didn't modified it? Copy Modules/Setup.dist to Modules/Setup

Something like:

    $ make
    -----------------------------------------------
    Modules/Setup.dist is newer than Modules/Setup;
    check to make sure you have all the updates you
    need in your Modules/Setup file.
    Usually, copying Modules/Setup.dist to Modules/Setup will work.
    Or if you want to keep your modifications, touch Modules/Setup
    to skip this warning.
    -----------------------------------------------
    Makefile:703: recipe for target 'Modules/Setup' failed
    make: *** [Modules/Setup] Error 1
msg309068 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2017-12-26 23:17
I'd really like it if we could get rid of the Setup/Setup.dist thing.  It's a distraction to have to type `cp -f Modules/Setup.dist Modules/Setup` from time to time... even though I have never customized the Setup file.
msg309069 - (view) Author: Barry A. Warsaw (barry) * (Python committer) Date: 2017-12-26 23:19
On Dec 26, 2017, at 18:17, Antoine Pitrou <report@bugs.python.org> wrote:
> 
> I'd really like it if we could get rid of the Setup/Setup.dist thing.  It's a distraction to have to type `cp -f Modules/Setup.dist Modules/Setup` from time to time... even though I have never customized the Setup file.

+1 - do you have any thoughts on that?
msg309070 - (view) Author: Julien Palard (mdk) * (Python committer) Date: 2017-12-26 23:22
Antoine: I may take a look at this too.

Still, stopping in the Makefile looks a first trivial step toward not being screwed by it, removing it looks non trivial, will raise discussions, let's make it another issue?
msg309072 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2017-12-26 23:24
> +1 - do you have any thoughts on that?

I think the current scheme may have been useful at a time where DVCS didn't exist.  You would maintain an unversioned copy of Modules/Setup.dist in your work-tree.  Nowadays you can fork a github repo and maintain your own branch with changes to a tracked file.  I don't think Modules/Setup deserves special treatment compared to, say, setup.py or Makefile.pre.in.
msg309073 - (view) Author: Julien Palard (mdk) * (Python committer) Date: 2017-12-26 23:27
> maintain your own branch with changes to a tracked file

Make sense for me, Xavier, would this fit your usage?
msg309077 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2017-12-27 09:37
On 27.12.2017 00:24, Antoine Pitrou wrote:
> 
> Antoine Pitrou <pitrou@free.fr> added the comment:
> 
>> +1 - do you have any thoughts on that?
> 
> I think the current scheme may have been useful at a time where DVCS didn't exist.  You would maintain an unversioned copy of Modules/Setup.dist in your work-tree.  Nowadays you can fork a github repo and maintain your own branch with changes to a tracked file.  I don't think Modules/Setup deserves special treatment compared to, say, setup.py or Makefile.pre.in.

The file is mostly meant for people using tar balls rather than
checkouts to give them an easy way back to default settings
after making changes to the Modules/Setup file.

The same could be had by having Makefile.pre.in generate Setup.dist
from Setup while booting into build mode, avoiding the need to
sometimes create Modules/Setup manually.
msg309078 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2017-12-27 10:30
It seems that it is possible to keep the current behavior for those that want to customize the configuration of Modules/Setup.dist (knowing that they can just use Modules/Setup.local if they are only doing additions to the Setup configuration) and at the same time get rid of these warnings for those that never change Modules/Setup.dist. This could be done this way:

* 'configure' does not create anymore Modules/Setup.
* The 'Makefile' target of the Makefile uses now Modules/Setup.dist when Modules/Setup is missing.
* A developer that wants to customize Modules/Setup.dist needs to copy (only once) manually Modules/Setup.dist to Modules/Setup and to modify this last file accordingly. She/he gets then the same warnings as those that are occuring currently and in that case it is useful to have the build abort upon such warnings as proposed in the current issue.

If this proposal is acceptable then it should be implemented in another issue, I think.
msg309080 - (view) Author: Julien Palard (mdk) * (Python committer) Date: 2017-12-27 11:15
Discussion about further simplifications goes here: https://bugs.python.org/issue32430
msg309177 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2017-12-29 15:04
I'm ok with turning the warning into an error. Does anyone object here?
msg310311 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2018-01-20 01:00
> I'm ok with turning the warning into an error. Does anyone object here?

Please don't convert the warning to an error. Usually, I ignore the warning and "make" produces a working ./python binary anyway.

It's common that I get the warning when using git bisect, since it updates Modules/Setup.dist.

If you want to make it an error, I would prefer to have an option to "ignore the warning", like always copy Modules/Setup.dist to Modules/Setup (if it's detected as outdated).

I like Xavier's proposal (msg309078): only create Modules/Setup if you want to customize it, otherwise use Modules/Setup.dist. I *never* modified Modules/Setup, I don't even know its purpose, whereas it bugs me frequently with it's annoying warning...

It seems like I would prefer to see bpo-32430 fixed.
msg329911 - (view) Author: Julien Palard (mdk) * (Python committer) Date: 2018-11-14 15:20
Fixed in 961d54c5c1916c09883ebcf7191babc969e5a5cf.
History
Date User Action Args
2022-04-11 14:58:56adminsetgithub: 76610
2018-11-14 15:20:47mdksetstatus: open -> closed
resolution: fixed
messages: + msg329911

stage: patch review -> resolved
2018-01-20 01:00:49vstinnersetnosy: + vstinner
messages: + msg310311
2017-12-29 15:04:56pitrousetmessages: + msg309177
2017-12-27 11:15:23mdksetmessages: + msg309080
2017-12-27 10:30:41xdegayesetmessages: + msg309078
2017-12-27 09:37:56lemburgsetnosy: + lemburg
messages: + msg309077
2017-12-26 23:27:33mdksetmessages: + msg309073
2017-12-26 23:24:44pitrousetmessages: + msg309072
2017-12-26 23:22:31mdksetmessages: + msg309070
2017-12-26 23:19:04barrysetmessages: + msg309069
2017-12-26 23:17:52pitrousetnosy: + barry, pitrou, benjamin.peterson
messages: + msg309068
2017-12-26 22:12:35mdksetkeywords: + patch
stage: patch review
pull_requests: + pull_request4905
2017-12-26 22:10:38mdkcreate