<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-coveragepy-git.git/setup.py, branch 6.4.2</title>
<subtitle>github.com: nedbat/coveragepy.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/'/>
<entry>
<title>fix: use tomli for [toml] under more precise conditions. #1390</title>
<updated>2022-06-01T15:38:02+00:00</updated>
<author>
<name>Ned Batchelder</name>
<email>ned@nedbatchelder.com</email>
</author>
<published>2022-06-01T15:38:02+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=3a23d8ace3a38dc51ca6336834da03e5d15d8e4d'/>
<id>3a23d8ace3a38dc51ca6336834da03e5d15d8e4d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use tomllib on Python 3.11 (#1359)</title>
<updated>2022-05-15T22:45:55+00:00</updated>
<author>
<name>Shantanu</name>
<email>12621235+hauntsaninja@users.noreply.github.com</email>
</author>
<published>2022-05-15T22:45:55+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=0d67ae1b7938ada3fe5df680b643d69290f0c099'/>
<id>0d67ae1b7938ada3fe5df680b643d69290f0c099</id>
<content type='text'>
Co-authored-by: hauntsaninja &lt;&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: hauntsaninja &lt;&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>build: Build and test tweaks to help with cross-compilation</title>
<updated>2022-04-30T13:06:15+00:00</updated>
<author>
<name>Steve Dower</name>
<email>steve.dower@microsoft.com</email>
</author>
<published>2022-04-29T13:06:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=d7a7f8970a7497b12b78577a66e2a0f26944363a'/>
<id>d7a7f8970a7497b12b78577a66e2a0f26944363a</id>
<content type='text'>
For context, I've been testing whether a range of popular libraries are going to work on Windows ARM64. (This requires compiling on a regular x64 machine and then copying the wheel to an ARM64 one for testing.)

The good news is, coverage seems to be just fine without any changes. However, because of a few assumptions in the test suite about always testing an in-place build, I had to make some tweaks to be able to run tests. My proposed tweaks should be fine for current uses, but they also allow the following:

* support `SETUPTOOLS_EXT_SUFFIX` when building to override the pyd tag on Windows (used with `setup.py build_ext -L &lt;path&gt;` to point at [pythonarm64](https://www.nuget.org/packages/pythonarm64/) import libraries to do the cross-compile)
* allow `COVERAGE_INSTALL_ARGS` to override how the tests install coverage into a venv (allows to point at a wheel rather than rebuilding from the sources)
* allow `python igor.py remove_extension --from-install` to delete the extension module from `site-packages` rather than only the source tree
* other changes to allow removing the `coverage` directory from the source tree before tests so that the installed copy will be used instead.

I've tested these on my own Windows ARM64 machine, though unfortunately there aren't any available on CI services yet. If you wanted to start releasing (preview) wheels for win-arm64 you can, but there's no support (yet) in `cibuildwheel` or `build` to do it (because those tools don't really have a concept of cross-compilation for Windows at all... yet ;-) ).

For the linter
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For context, I've been testing whether a range of popular libraries are going to work on Windows ARM64. (This requires compiling on a regular x64 machine and then copying the wheel to an ARM64 one for testing.)

The good news is, coverage seems to be just fine without any changes. However, because of a few assumptions in the test suite about always testing an in-place build, I had to make some tweaks to be able to run tests. My proposed tweaks should be fine for current uses, but they also allow the following:

* support `SETUPTOOLS_EXT_SUFFIX` when building to override the pyd tag on Windows (used with `setup.py build_ext -L &lt;path&gt;` to point at [pythonarm64](https://www.nuget.org/packages/pythonarm64/) import libraries to do the cross-compile)
* allow `COVERAGE_INSTALL_ARGS` to override how the tests install coverage into a venv (allows to point at a wheel rather than rebuilding from the sources)
* allow `python igor.py remove_extension --from-install` to delete the extension module from `site-packages` rather than only the source tree
* other changes to allow removing the `coverage` directory from the source tree before tests so that the installed copy will be used instead.

I've tested these on my own Windows ARM64 machine, though unfortunately there aren't any available on CI services yet. If you wanted to start releasing (preview) wheels for win-arm64 you can, but there's no support (yet) in `cibuildwheel` or `build` to do it (because those tools don't really have a concept of cross-compilation for Windows at all... yet ;-) ).

For the linter
</pre>
</div>
</content>
</entry>
<entry>
<title>build: drop Python 3.6 support</title>
<updated>2021-12-31T17:12:02+00:00</updated>
<author>
<name>Ned Batchelder</name>
<email>ned@nedbatchelder.com</email>
</author>
<published>2021-12-31T14:17:07+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=39f8f3ed43cf82cdf30b57d7f9624addcbd9e372'/>
<id>39f8f3ed43cf82cdf30b57d7f9624addcbd9e372</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>typo</title>
<updated>2021-11-11T21:21:19+00:00</updated>
<author>
<name>Ned Batchelder</name>
<email>ned@nedbatchelder.com</email>
</author>
<published>2021-11-11T21:21:19+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=bf42d44403351cd35d67af5bc1bb9b284ad1a08b'/>
<id>bf42d44403351cd35d67af5bc1bb9b284ad1a08b</id>
<content type='text'>
[skip actions]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[skip actions]
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: CPython 3.11 support. #1241</title>
<updated>2021-11-10T23:45:37+00:00</updated>
<author>
<name>Ned Batchelder</name>
<email>ned@nedbatchelder.com</email>
</author>
<published>2021-11-10T12:39:07+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=9765493020e6292599e272978a25935dd4d0fa88'/>
<id>9765493020e6292599e272978a25935dd4d0fa88</id>
<content type='text'>
The fix for CTracer is egregious and will need to be updated when there's a
supported way to do it.

The fullcoverage skip is noted in
https://github.com/nedbat/coveragepy/issues/1278

The raise_through_with skip is noted in
https://github.com/nedbat/coveragepy/issues/1270
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The fix for CTracer is egregious and will need to be updated when there's a
supported way to do it.

The fullcoverage skip is noted in
https://github.com/nedbat/coveragepy/issues/1278

The raise_through_with skip is noted in
https://github.com/nedbat/coveragepy/issues/1270
</pre>
</div>
</content>
</entry>
<entry>
<title>style: remove implicit string concatenation</title>
<updated>2021-10-30T13:28:50+00:00</updated>
<author>
<name>Ned Batchelder</name>
<email>ned@nedbatchelder.com</email>
</author>
<published>2021-10-30T13:28:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=3d962a30a3f659978b96ef59811e8062867b358b'/>
<id>3d962a30a3f659978b96ef59811e8062867b358b</id>
<content type='text'>
.. and also add trailing commas where needed to remove ambiguity.

I used semgrep with this config:
```
rules:
  - id: implicit-string-concatenation
    pattern: |
      "$X" "$Y"
    languages:
      - python
    message: string cat BAD
    severity: INFO
```

Running it showed this:

```
$ semgrep --config=../lab/string-cat.yml coverage tests doc ci igor.py setup.py __main__.py
Running 1 rules...
setup.py
severity:info rule:lab.implicit-string-concatenation: string cat BAD
128:            'https://tidelift.com/subscription/pkg/pypi-coverage'
129:            '?utm_source=pypi-coverage&amp;utm_medium=referral&amp;utm_campaign=pypi'

tests/test_api.py
severity:info rule:lab.implicit-string-concatenation: string cat BAD
319:            "!coverage.py: This is a private format, don't read it directly!"
320:            '{"lines":{"/private/tmp/foo.py":[1,5,2,3]}}'

tests/test_html.py
severity:info rule:lab.implicit-string-concatenation: string cat BAD
614:            ('&lt;span class="key"&gt;if&lt;/span&gt; &lt;span class="num"&gt;1&lt;/span&gt; '
615:             '&lt;span class="op"&gt;&amp;lt;&lt;/span&gt; &lt;span class="num"&gt;2&lt;/span&gt;'),
--------------------------------------------------------------------------------
616:            ('    &lt;span class="nam"&gt;a&lt;/span&gt; '
617:             '&lt;span class="op"&gt;=&lt;/span&gt; &lt;span class="num"&gt;3&lt;/span&gt;'),
--------------------------------------------------------------------------------
665:            ('&lt;span class="key"&gt;if&lt;/span&gt; &lt;span class="nam"&gt;x&lt;/span&gt; '
666:             '&lt;span class="op"&gt;&amp;lt;&lt;/span&gt; &lt;span class="num"&gt;2&lt;/span&gt;'),
--------------------------------------------------------------------------------
667:            ('    &lt;span class="nam"&gt;a&lt;/span&gt; &lt;span class="op"&gt;=&lt;/span&gt; '
668:             '&lt;span class="num"&gt;3&lt;/span&gt;'),
--------------------------------------------------------------------------------
949:            ('&lt;span class="key"&gt;if&lt;/span&gt; &lt;span class="num"&gt;1&lt;/span&gt; '
950:             '&lt;span class="op"&gt;&amp;lt;&lt;/span&gt; &lt;span class="num"&gt;2&lt;/span&gt;'),
--------------------------------------------------------------------------------
951:            ('    &lt;span class="nam"&gt;a&lt;/span&gt; &lt;span class="op"&gt;=&lt;/span&gt; '
952:             '&lt;span class="num"&gt;3&lt;/span&gt;'),
ran 1 rules on 134 files: 8 findings
```

This wasn't all of the instances, so I wrote a bug report: https://github.com/returntocorp/semgrep/issues/4184
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
.. and also add trailing commas where needed to remove ambiguity.

I used semgrep with this config:
```
rules:
  - id: implicit-string-concatenation
    pattern: |
      "$X" "$Y"
    languages:
      - python
    message: string cat BAD
    severity: INFO
```

Running it showed this:

```
$ semgrep --config=../lab/string-cat.yml coverage tests doc ci igor.py setup.py __main__.py
Running 1 rules...
setup.py
severity:info rule:lab.implicit-string-concatenation: string cat BAD
128:            'https://tidelift.com/subscription/pkg/pypi-coverage'
129:            '?utm_source=pypi-coverage&amp;utm_medium=referral&amp;utm_campaign=pypi'

tests/test_api.py
severity:info rule:lab.implicit-string-concatenation: string cat BAD
319:            "!coverage.py: This is a private format, don't read it directly!"
320:            '{"lines":{"/private/tmp/foo.py":[1,5,2,3]}}'

tests/test_html.py
severity:info rule:lab.implicit-string-concatenation: string cat BAD
614:            ('&lt;span class="key"&gt;if&lt;/span&gt; &lt;span class="num"&gt;1&lt;/span&gt; '
615:             '&lt;span class="op"&gt;&amp;lt;&lt;/span&gt; &lt;span class="num"&gt;2&lt;/span&gt;'),
--------------------------------------------------------------------------------
616:            ('    &lt;span class="nam"&gt;a&lt;/span&gt; '
617:             '&lt;span class="op"&gt;=&lt;/span&gt; &lt;span class="num"&gt;3&lt;/span&gt;'),
--------------------------------------------------------------------------------
665:            ('&lt;span class="key"&gt;if&lt;/span&gt; &lt;span class="nam"&gt;x&lt;/span&gt; '
666:             '&lt;span class="op"&gt;&amp;lt;&lt;/span&gt; &lt;span class="num"&gt;2&lt;/span&gt;'),
--------------------------------------------------------------------------------
667:            ('    &lt;span class="nam"&gt;a&lt;/span&gt; &lt;span class="op"&gt;=&lt;/span&gt; '
668:             '&lt;span class="num"&gt;3&lt;/span&gt;'),
--------------------------------------------------------------------------------
949:            ('&lt;span class="key"&gt;if&lt;/span&gt; &lt;span class="num"&gt;1&lt;/span&gt; '
950:             '&lt;span class="op"&gt;&amp;lt;&lt;/span&gt; &lt;span class="num"&gt;2&lt;/span&gt;'),
--------------------------------------------------------------------------------
951:            ('    &lt;span class="nam"&gt;a&lt;/span&gt; &lt;span class="op"&gt;=&lt;/span&gt; '
952:             '&lt;span class="num"&gt;3&lt;/span&gt;'),
ran 1 rules on 134 files: 8 findings
```

This wasn't all of the instances, so I wrote a bug report: https://github.com/returntocorp/semgrep/issues/4184
</pre>
</div>
</content>
</entry>
<entry>
<title>style: remove mention of Python 2</title>
<updated>2021-10-30T12:03:44+00:00</updated>
<author>
<name>Ned Batchelder</name>
<email>ned@nedbatchelder.com</email>
</author>
<published>2021-10-30T11:52:55+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=0984338df1dd98a1e4fbe4fd3f878f38e9d393a5'/>
<id>0984338df1dd98a1e4fbe4fd3f878f38e9d393a5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add link to coverage.py twitter account to project urls (#1217)</title>
<updated>2021-08-30T22:25:20+00:00</updated>
<author>
<name>Asher Foa</name>
<email>asher@toolchain.com</email>
</author>
<published>2021-08-30T22:25:20+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=6ded3a5183a126db3ee6704388cd95fd702c6709'/>
<id>6ded3a5183a126db3ee6704388cd95fd702c6709</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: raise chained errors with "from" #998</title>
<updated>2021-07-20T12:32:28+00:00</updated>
<author>
<name>Ned Batchelder</name>
<email>ned@nedbatchelder.com</email>
</author>
<published>2021-07-20T10:54:22+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-coveragepy-git.git/commit/?id=5313297fe84c596f9222a4890dd45a53a6d4d632'/>
<id>5313297fe84c596f9222a4890dd45a53a6d4d632</id>
<content type='text'>
This makes exceptions report their causes correctly, as "The above exception was
the direct cause of the following exception" instead of "During handling of the
above exception, another exception occurred."
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes exceptions report their causes correctly, as "The above exception was
the direct cause of the following exception" instead of "During handling of the
above exception, another exception occurred."
</pre>
</div>
</content>
</entry>
</feed>
