annotate contrib/python-hook-examples.py @ 53012:0e2be2abd963

contrib: add modern `setuptools` and `setuptools_scm` to the packaging venv With `py -3.9 contrib/packaging/packaging.py wix --pyoxidizer-target x86_64-pc-windows-msvc`, there is an immediate failure after building the venv (3.9.13 has `setuptools` 58.1.0): ModuleNotFoundError: No module named 'setuptools.command.build' With that fixed, the same command then fails immediately with this error: Couldn't import setuptools_scm (direct call of setup.py?) Unfortunately, referencing `setuptools` in the requirements file needs `--allow-unsafe` to avoid a warning about not pinning `setuptools`. However, the same warning happens if `setuptools` is pinned to a specific revision, so I have no idea what it is complaining about. It's a separate venv that is only used for packaging, so we can fix it if it becomes a problem in the future. Interestingly, the Inno installer build doesn't fail immediately, and I can see it installing `setuptools` and `setuptools_scm` in the wall of text it emits. Eventually it does fail with the same errors without this change.
author Matt Harbison <matt_harbison@yahoo.com>
date Mon, 24 Feb 2025 11:29:46 -0500
parents 6000f5b25c9b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
1 '''
7918
62f11ef0df5b Change wording in example hook
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7917
diff changeset
2 Examples of useful python hooks for Mercurial.
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
3 '''
28562
2b585677220e contrib: python-hook-examples use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 13878
diff changeset
4 from mercurial import (
2b585677220e contrib: python-hook-examples use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 13878
diff changeset
5 patch,
2b585677220e contrib: python-hook-examples use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 13878
diff changeset
6 util,
2b585677220e contrib: python-hook-examples use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 13878
diff changeset
7 )
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
8
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39900
diff changeset
9
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
10 def diffstat(ui, repo, **kwargs):
45957
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 43076
diff changeset
11 """Example usage:
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
12
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
13 [hooks]
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
14 commit.diffstat = python:/path/to/this/file.py:diffstat
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
15 changegroup.diffstat = python:/path/to/this/file.py:diffstat
45957
89a2afe31e82 formating: upgrade to black 20.8b1
Augie Fackler <raf@durin42.com>
parents: 43076
diff changeset
16 """
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
17 if kwargs.get('parent2'):
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
18 return
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
19 node = kwargs['node']
13878
a8d13ee0ce68 misc: replace .parents()[0] with p1()
Matt Mackall <mpm@selenic.com>
parents: 7918
diff changeset
20 first = repo[node].p1().node()
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
21 if 'url' in kwargs:
39900
1a184b727aff repo: don't look up context for tip node if it's not needed
Martin von Zweigbergk <martinvonz@google.com>
parents: 28562
diff changeset
22 last = repo.changelog.tip()
7917
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
23 else:
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
24 last = node
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
25 diff = patch.diff(repo, first, last)
5a5396f49420 diffstat hook example
Alexander Solovyov <piranha@piranha.org.ua>
parents:
diff changeset
26 ui.write(patch.diffstat(util.iterlines(diff)))