Merging upstream version 0.19.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
61e6dccee9
commit
2efee3d3ab
111 changed files with 2058 additions and 1676 deletions
51
tools/changelog.py
Executable file
51
tools/changelog.py
Executable file
|
@ -0,0 +1,51 @@
|
|||
# ruff: noqa: T201 (Allow print statements)
|
||||
# Simple script to generate a rough changelog from git log.
|
||||
# This changelog is manually edited before it goes into CHANGELOG.md
|
||||
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
from collections import defaultdict
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print("Usage: python changelog.py <tag>")
|
||||
sys.exit(1)
|
||||
|
||||
tag = sys.argv[1]
|
||||
# Get all commits since the last release
|
||||
cmd = ["git", "log", "--pretty=%s|%aN", f"{tag}..HEAD"]
|
||||
log_lines = subprocess.Popen(cmd, stdout=subprocess.PIPE).stdout.read().decode("UTF-8")
|
||||
log_lines = log_lines.split("\n")[:-1]
|
||||
|
||||
# Group commits by type
|
||||
commit_groups = defaultdict(list)
|
||||
for log_line in log_lines:
|
||||
message, author = log_line.split("|")
|
||||
# skip dependabot commits
|
||||
if author == "dependabot[bot]":
|
||||
group = "dependabot"
|
||||
else:
|
||||
type_parts = message.split(":")
|
||||
if len(type_parts) == 1:
|
||||
group = "other"
|
||||
else:
|
||||
group = type_parts[0]
|
||||
|
||||
commit_groups[group].append((message, author))
|
||||
|
||||
# Print the changelog
|
||||
for group, commits in commit_groups.items():
|
||||
print(group)
|
||||
for message, author in commits:
|
||||
# Thank authors other than maintainer
|
||||
author_thanks = ""
|
||||
if author != "Joris Roovers":
|
||||
author_thanks = f" - Thanks {author}"
|
||||
|
||||
# Find the issue number in message using regex, format: (#1234)
|
||||
issue_number = re.search(r"\(#(\d+)\)", message)
|
||||
if issue_number:
|
||||
issue_url = f"https://github.com/jorisroovers/gitlint/issues/{issue_number.group(1)}"
|
||||
message = message.replace(issue_number.group(0), f"([#{issue_number.group(1)}]({issue_url}))")
|
||||
|
||||
print(f" - {message}{author_thanks}")
|
45
tools/stats.sh
Executable file
45
tools/stats.sh
Executable file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/bash
|
||||
# Script that displays some interesting stats about the gitlint project (LOC, # commits, downloads, etc)
|
||||
|
||||
BLUE="\033[94m"
|
||||
NO_COLOR="\033[0m"
|
||||
|
||||
title(){
|
||||
echo -e "$BLUE=== $1 ===$NO_COLOR"
|
||||
}
|
||||
|
||||
title Code
|
||||
radon raw -s gitlint-core | tail -n 11 | sed 's/^ //'
|
||||
|
||||
title Docs
|
||||
echo "Markdown: $(cat docs/*.md | wc -l | tr -d " ") lines"
|
||||
|
||||
title Tests
|
||||
nr_unit_tests=$(py.test gitlint-core/ --collect-only | grep TestCaseFunction | wc -l)
|
||||
nr_integration_tests=$(py.test qa/ --collect-only | grep TestCaseFunction | wc -l)
|
||||
echo "Unit Tests: ${nr_unit_tests//[[:space:]]/}"
|
||||
echo "Integration Tests: ${nr_integration_tests//[[:space:]]/}"
|
||||
|
||||
title Git
|
||||
echo "Commits: $(git rev-list --all --count)"
|
||||
echo "Commits (main): $(git rev-list main --count)"
|
||||
echo "First commit: $(git log --pretty="%aD" $(git rev-list --max-parents=0 HEAD))"
|
||||
echo "Contributors: $(git log --format='%aN' | sort -u | wc -l | tr -d ' ')"
|
||||
echo "Releases (tags): $(git tag --list | wc -l | tr -d ' ')"
|
||||
latest_tag=$(git tag --sort=creatordate | tail -n 1)
|
||||
echo "Latest Release (tag): $latest_tag"
|
||||
echo "Commits since $latest_tag: $(git log --format=oneline HEAD...$latest_tag | wc -l | tr -d ' ')"
|
||||
echo "Line changes since $latest_tag: $(git diff --shortstat $latest_tag)"
|
||||
|
||||
# PyPi API: https://pypistats.org/api/
|
||||
title PyPi
|
||||
info=$(curl -Ls https://pypi.python.org/pypi/gitlint/json)
|
||||
echo "Current version: $(echo $info | jq -r .info.version)"
|
||||
|
||||
title "PyPI (Downloads)"
|
||||
overall_stats=$(curl -s https://pypistats.org/api/packages/gitlint/overall)
|
||||
recent_stats=$(curl -s https://pypistats.org/api/packages/gitlint/recent)
|
||||
echo "Last 6 Months: $(echo $overall_stats | jq -r '.data[].downloads' | awk '{sum+=$1} END {print sum}')"
|
||||
echo "Last Month: $(echo $recent_stats | jq .data.last_month)"
|
||||
echo "Last Week: $(echo $recent_stats | jq .data.last_week)"
|
||||
echo "Last Day: $(echo $recent_stats | jq .data.last_day)"
|
Loading…
Add table
Add a link
Reference in a new issue