mirror of
https://github.com/pypa/pip
synced 2023-12-13 21:30:23 +01:00
55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
"""Release time helpers, executed using nox.
|
|
"""
|
|
|
|
import io
|
|
import subprocess
|
|
|
|
import nox
|
|
|
|
|
|
def get_author_list():
|
|
"""Get the list of authors from Git commits.
|
|
"""
|
|
# subprocess because session.run doesn't give us stdout
|
|
result = subprocess.run(
|
|
["git", "log", "--use-mailmap", "--format=%aN <%aE>"],
|
|
capture_output=True,
|
|
encoding="utf-8",
|
|
)
|
|
|
|
# Create a unique list.
|
|
authors = []
|
|
seen_authors = set()
|
|
for author in result.stdout.splitlines():
|
|
author = author.strip()
|
|
if author.lower() not in seen_authors:
|
|
seen_authors.add(author.lower())
|
|
authors.append(author)
|
|
|
|
# Sort our list of Authors by their case insensitive name
|
|
return sorted(authors, key=lambda x: x.lower())
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Commands used during the release process
|
|
# -----------------------------------------------------------------------------
|
|
@nox.session
|
|
def generate_authors(session):
|
|
# Get our list of authors
|
|
session.log("Collecting author names")
|
|
authors = get_author_list()
|
|
|
|
# Write our authors to the AUTHORS file
|
|
session.log("Writing AUTHORS")
|
|
with io.open("AUTHORS.txt", "w", encoding="utf-8") as fp:
|
|
fp.write(u"\n".join(authors))
|
|
fp.write(u"\n")
|
|
|
|
|
|
@nox.session
|
|
def generate_news(session):
|
|
session.log("Generating NEWS")
|
|
session.install("towncrier")
|
|
|
|
# You can pass 2 possible arguments: --draft, --yes
|
|
session.run("towncrier", *session.posargs)
|