Commit Graph

50 Commits

Author SHA1 Message Date
Greg Price
455122a009 bpo-37936: Systematically distinguish rooted vs. unrooted in .gitignore (GH-15823)
A root cause of bpo-37936 is that it's easy to write a .gitignore
rule that's intended to apply to a specific file (e.g., the
`pyconfig.h` generated by `./configure`) but actually applies to all
similarly-named files in the tree (e.g., `PC/pyconfig.h`.)

Specifically, any rule with no non-trailing slashes is applied in an
"unrooted" way, to files anywhere in the tree.  This means that if we
write the rules in the most obvious-looking way, then

 * for specific files we want to ignore that happen to be in
   subdirectories (like `Modules/config.c`), the rule will work
   as intended, staying "rooted" to the top of the tree; but

 * when a specific file we want to ignore happens to be at the root of
   the repo (like `platform`), then the obvious rule (`platform`) will
   apply much more broadly than intended: if someone tries to add a
   file or directory named `platform` somewhere else in the tree, it
   will unexpectedly get ignored.

That's surprising behavior that can make the .gitignore file's
behavior feel finicky and unpredictable.

To avoid it, we can simply always give a rule "rooted" behavior when
that's what's intended, by systematically using leading slashes.

Further, to help make the pattern obvious when looking at the file and
minimize any need for thinking about the syntax when adding new rules:
separate the rules into one group for each type, with brief comments
identifying them.

For most of these rules it's clear whether they're meant to be rooted
or unrooted, but in a handful of cases I've only guessed.  In that
case the safer default (the choice that won't hide information) is the
narrower, rooted meaning, with a leading slash.  If for some of these
the unrooted meaning is desired after all, it'll be easy to move them
to the unrooted section at the top.
2019-09-11 10:25:26 +01:00
Greg Price
5e5e951502 bpo-37936: Avoid ignoring files that we actually do track. (GH-15451)
There were about 14 files that are actually in the repo but that are
covered by the rules in .gitignore.

Git itself takes no notice of what .gitignore says about files that
it's already tracking... but the discrepancy can be confusing to a
human that adds a new file unexpectedly covered by these rules, as
well as to non-Git software that looks at .gitignore but doesn't
implement this wrinkle in its semantics.  (E.g., `rg`.)

Several of these are from rules that apply more broadly than
intended: for example, `Makefile` applies to `Doc/Makefile` and
`Tools/freeze/test/Makefile`, whereas `/Makefile` means only the
`Makefile` at the repo's root.

And the `Modules/Setup` rule simply wasn't updated after 961d54c5c.


https://bugs.python.org/issue37936
2019-09-09 02:34:50 -07:00
Greg Price
8c9e9b0cd5 bpo-37936: Remove some .gitignore rules that were intended locally. (GH-15542)
These appeared in commit c5ae169e1.  The comment on them, as well as
the presence among them of a rule for the .gitignore file itself,
indicate that the author intended these lines to remain only in their
own local working tree -- not to get committed even to their own repo,
let alone merged upstream.

They did nevertheless get committed, because it turns out that Git
takes no notice of what .gitignore says about files that it's already
tracking... for example, this .gitignore file itself.

Give effect to these lines' original intention, by deleting them. :-)

Git tip, for reference: the `.git/info/exclude` file is a handy way
to do exactly what these lines were originally intended to do.  A
related handy file is `~/.config/git/ignore`.  See gitignore(5),
aka `git help ignore`, for details.



https://bugs.python.org/issue37936



Automerge-Triggered-By: @zware
2019-08-27 11:16:31 -07:00
Greg Price
3e4498d35c bpo-37760: Avoid cluttering work tree with downloaded Unicode files. (GH-15128) 2019-08-14 18:18:53 -07:00
Victor Stinner
0a8e57248b
bpo-36721: Add --embed option to python-config (GH-13500)
To embed Python into an application, a new --embed option must be
passed to "python3-config --libs --embed" to get "-lpython3.8" (link
the application to libpython). To support both 3.8 and older, try
"python3-config --libs --embed" first and fallback to "python3-config
--libs" (without --embed) if the previous command fails.

Add a pkg-config "python-3.8-embed" module to embed Python into an
application: "pkg-config python-3.8-embed --libs" includes
"-lpython3.8".  To support both 3.8 and older, try "pkg-config
python-X.Y-embed --libs" first and fallback to "pkg-config python-X.Y
--libs" (without --embed) if the previous command fails (replace
"X.Y" with the Python version).

On the other hand, "pkg-config python3.8 --libs" no longer contains
"-lpython3.8". C extensions must not be linked to libpython (except
on Android, case handled by the script); this change is backward
incompatible on purpose.

"make install" now also installs "python-3.8-embed.pc".
2019-05-23 03:30:23 +02:00
Paul Monson
f96e7fd924 bpo-36941: Windows build changes for Windows ARM64 (GH-13365) 2019-05-17 10:07:24 -07:00
Pablo Galindo
1f24a719e7
bpo-35808: Retire pgen and use pgen2 to generate the parser (GH-11814)
Pgen is the oldest piece of technology in the CPython repository, building it requires various #if[n]def PGEN hacks in other parts of the code and it also depends more and more on CPython internals. This commit removes the old pgen C code and replaces it for a new version implemented in pure Python. This is a modified and adapted version of lib2to3/pgen2 that can generate grammar files compatibles with the current parser.

This commit also eliminates all the #ifdef and code branches related to pgen, simplifying the code and making it more maintainable. The regen-grammar step now uses $(PYTHON_FOR_REGEN) that can be any version of the interpreter, so the new pgen code maintains compatibility with older versions of the interpreter (this also allows regenerating the grammar with the current CI solution that uses Python3.5). The new pgen Python module also makes use of the Grammar/Tokens file that holds the token specification, so is always kept in sync and avoids having to maintain duplicate token definitions.
2019-03-01 15:34:44 -08:00
Paul Monson
8a1657b934 bpo-35976: Enable Windows projects to build with platform ARM32 (GH-11825)
This change adds the necessary items to the build projects to avoid erroring out right at the start. It does not add _support_ for targeting Windows on ARM32, but is a necessary prerequisite for adding it.
2019-02-14 08:31:30 -08:00
Ekin Dursun
5a49ca61d2 Add mypy cache to gitignore (GH-6614) 2018-04-30 12:10:45 -07:00
Neeraj Badlani
95ad3822a2 Gitignore gmon.out (GH-5796)
gmon.out is generated when profiling turned on

Full Configuration:
./configure --prefix=$PWD/install --enable-profiling  --enable-big-digits=30
--with-pydebug --with-assertions  --with-valgrind
2018-03-26 13:11:47 +03:00
Michael Felt
c5ae169e1b bpo-26439 Fix ctypes.util.find_library failure on AIX (#4507)
Implement find_library() support in ctypes/util for AIX.

Add some AIX specific tests.
2017-12-19 13:58:49 +01:00
Ned Deily
590665c399 bpo-31036: Allow sphinx and blurb to be found automatically (#3440)
Rather than requiring the path to blurb and/or sphinx-build to be specified to the make rule, enhance the Doc/Makefile to look for each first in a virtual environment created by make venv and, if not found, look on the normal process PATH. This allows the Doc/Makefile to take advantage of an installed spinx-build or blurb and, thus, do the right thing most of the time. Also, make the directory for the venv be configurable and document the `make venv` target.
2017-09-07 17:17:53 -07:00
Segev Finer
be5ebe5877 Fix case in .gitignore (GH-2607) 2017-07-06 15:43:37 -05:00
Steve Dower
323d538fec Move directory in .gitignore (#1787) 2017-05-24 09:24:49 -07:00
gfyoung
c0fa4ba8f7 Add .idea and .iml to .gitignore (#1764) 2017-05-24 08:57:37 -07:00
Segev Finer
8e675286a9 Add missing .gitignore entries for VS2015 IntelliSense DB (#1223) 2017-04-20 16:32:26 -07:00
Łukasz Langa
50da40fd52 Ignore Include/pydtrace_probes.h (#597)
This is a generated file when --with-dtrace is passed. This entry is
present in .hgignore.
2017-03-10 14:29:43 +01:00
Zachary Ware
c55f573302 pgen lives in Parser, not Programs.
Apparently, I can't read.
2016-10-01 17:18:03 -05:00
Zachary Ware
43a89815f3 Update .{hg,git}ignore for Cygwin builds 2016-10-01 17:00:51 -05:00
Zachary Ware
c4b53afce4 Issue #28046: Remove platform-specific directories from sys.path 2016-09-09 17:59:49 -07:00
Zachary Ware
b78d52f108 Remove Lib/_sysconfigdata.py from .gitignore 2016-09-09 11:07:23 -07:00
Zachary Ware
3cdaaafe2e Add libpython*.dylib to .{hg,git}ignore 2016-09-06 16:46:22 -07:00
Steve Dower
63cf72d692 Minor improvements to the vcs ignore files 2016-09-05 10:12:03 -07:00
Zachary Ware
5af856404a Issue #25827: Add support for ICC to configure 2015-12-21 12:09:17 -06:00
Brett Cannon
7188a3efe0 Issue #24915: Add Clang support to PGO builds and use the test suite
for profile data.

Thanks to Alecsandru Patrascu of Intel for the initial patch.
2015-09-18 15:13:44 -07:00
Zachary Ware
2eb1a8b6d3 Ignore PCbuild/.vs directory.
Also fix a couple other ignored PCbuild directories in .gitignore
2015-05-16 22:45:27 -05:00
Christian Heimes
532af16346 Next attempt: fix .gitignore for Unix and OSX. Sorry RDM! 2015-04-22 23:55:29 +02:00
Christian Heimes
3d2198c85b Next attempt: fix .gitignore for Unix and OSX. Sorry RDM! 2015-04-22 23:54:44 +02:00
Christian Heimes
d209d646c9 Fix .gitignore for 'python' binary. 2015-04-22 22:16:01 +02:00
Christian Heimes
34e006031a Fix .gitignore for 'python' binary. 2015-04-22 22:15:44 +02:00
R David Murray
20ab6c04bc Merge: Don't gitignore the Python directory on case insensitive file systems. 2015-04-12 21:53:21 -04:00
R David Murray
12efbf5e61 Don't gitignore the Python directory on case insensitive file systems. 2015-04-12 21:52:44 -04:00
Steve Dower
bb24087a2c Issue #23260: Update Windows installer 2015-02-05 22:08:48 -08:00
Steve Dower
65e4cb10d9 Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015), which will be used for the official 3.5 release. 2014-11-22 12:54:57 -08:00
Brett Cannon
d5ea39d1b8 Issue #22394: Add a 'venv' command to Doc/Makefile.
This will create a venv using the interpreter specified by the PYTHON
variable for the Makefile that also install Sphinx. Typical usage is
expected to be:

  cd Doc
  make venv PYTHON=../python
  make html PYTHON=venv/bin/python3
2014-12-05 15:17:31 -05:00
Zachary Ware
740e1dcdc2 Issue #17896: Move Windows external lib sources from .. to externals. 2014-11-01 22:48:24 -05:00
Zachary Ware
4b2b1de0bd Issue #17896: Move Windows external lib sources from .. to externals. 2014-11-01 22:39:21 -05:00
Zachary Ware
30270c8729 Issue #22489: Update .gitignore to ignore Windows build output.
Initial patch by Robert Collins.
2014-10-10 23:42:59 -05:00
Nick Coghlan
973fe0ba7a Issue #18093: Factor out the programs that embed the runtime 2014-07-25 21:52:14 +10:00
Andrew Kuchling
5e03e49c94 Closes #18247: add Lib/test/data/* to .gitignore 2013-06-21 07:44:50 -04:00
Petri Lehtinen
4eb9f5000e Add generated python-config files to .gitignore 2013-02-23 15:35:42 +01:00
Petri Lehtinen
6a65bcdf2a Add Modules/_freeze_importlib to .gitignore 2012-10-26 22:40:42 +03:00
Petri Lehtinen
0f00dfa4ae #14472: Update .gitignore
Patch by Matej Cepl.
2012-05-22 20:50:28 +03:00
Matthias Klose
597e6b4cc5 Followup for issue #14321, remove references to Parser/pgen.stamp 2012-04-04 13:20:55 +02:00
Petri Lehtinen
748d7ae209 Update .gitignore 2011-11-05 22:07:43 +02:00
Petri Lehtinen
0115fae8c2 Update .gitignore 2011-11-05 22:06:30 +02:00
Éric Araujo
5c8545bb2c Make VCSes ignore the compiled shared library file (#12255) 2011-07-28 22:38:44 +02:00
Ezio Melotti
f00bfa2019 #12341: add coverage files/dirs to .hgignore. Patch by Sandro Tosi. 2011-06-25 12:36:38 +03:00
Victor Stinner
7bbc855edb update .gitignore using .hgignore 2010-12-17 22:24:30 +00:00
Victor Stinner
d960faec86 update gitignore 2010-10-25 17:37:18 +00:00