"Awesome Projects" - tool for systematically keeping track of code ecosystems
  • Python 98%
  • Shell 2%
Find a file
2025-10-13 19:28:31 +00:00
data make reuse compliant 2024-09-20 16:18:10 +02:00
LICENSES make reuse compliant 2024-09-20 16:12:23 +02:00
src/awpr ignore author name "root" - pops up too often 2025-10-13 19:28:31 +00:00
.gitignore make reuse compliant 2024-09-20 16:18:10 +02:00
.woodpecker.yml try to fix .woodpecker.yml 2025-04-30 17:34:58 +00:00
check.sh make reuse compliant 2024-09-20 16:18:10 +02:00
install.sh make reuse compliant 2024-09-20 16:18:10 +02:00
pyproject.toml add PyYaml dependency 2025-04-25 17:44:35 +00:00
README.md update README 2025-02-02 11:19:30 +00:00
REUSE.toml upgrade to REUSE.toml 2025-04-30 17:12:03 +00:00
test.sh fix reuse 2025-04-30 17:13:35 +00:00

AWPR - Tool for managing lists of AWesome PRojects

There's quite some lists out in the web of 'awesome projects' related to a certain topic. Sometimes people use markdown files, sometimes plain html, mediawiki etc. This project here provides a few simple scripts to keep such lists in a more structured manner. You can collect your favourite projects in a YAML file, add git url, website, references, categories, description etc. On top of that, the structured information allows to generate other representations (markdown, mediawiki) and perform some analysis like plotting a the contributer network.

Install awpr

git clone [this repo]
cd [this repo]
pip install .
awpr --help # See documentation of awpr

or

pip install git+https://codeberg.org/fsi/awpr

Analysis tools

The structured information in the YAML files is meant to be analyzed with a variety of tools.

The awpr (awesome projects) tool is intended for this purpose.

Analyze git repositories

awpr can dig into the metadata of git repositories for further analysis of the contributor network and project activity. By default, awpr will fetch only the history of the git repositories and not the content. This makes it much faster and does not use too much disk space.

Example: plot contributor network

AWPR_REPOS=/scratch/awpr-repos
mkdir $AWPR_REPOS

# Clone and/or fetch all git repositories
awpr git-fetch -i data/*.yaml -d $AWPR_REPOS

# Extract contributor network
# Inspect only the latest 100 commits per remote and 
# limit the authors to the top 4 with the most commits.
# (without limits, graphviz might be slow)
awpr contributor-graph \
  -i data/*.yaml \
  -d $AWPR_REPOS \
  --top-k 4 \
  --commit-limit 100 > authors.dot


# Convert the .dot format into an .svg
fdp -Tsvg -O authors.dot

# Open the SVG with your favourite SVG viewer (browsers are fast and good).
xdg-open authors.dot.svg