Awesome Python has a "changelog" section under all projects. You can find it next to the "Repo" button in the header. There are two features that make it unique.

  1. It is an aggregation of parsed "CHANGELOG.md" files and releases information from Github. This way, it is easier to see all changes in a single place and a uniform style.
  2. All changelogs are "emojified". This helps with identifying each change easier. Emojification is achieved by parsing each line and applying a specific emoji based on the first word or some other tokens.

The combination of the above two makes package changelogs on Awesome Python unique.

As you know, an example is worth a 1,000 words 🚀

Changelog examples

  • BabylonJS 4.2.0-alpha.9 (March 31, 2020)
  • ember.js 3.13.4 (October 01, 292019)
    • 🛠 #18476 [BUGFIX] Ensure model can be observed by sync observers.
    • 🛠 #18477 [BUGFIX] Allows @each to work with arrays that contain falsy values.
    • 🛠 #18500 [BUGFIX] Remove requirement for disabling jquery-integration in Octane.
  • ESLint 7.0.0-alpha.3 (March 28, 2020)
    • 👕 78c8cda Breaking: RuleTester Improvements (refs eslint/rfcs#25) (#12955) (Milos Djermanovic)
    • ⚡️ e0f1b6c Update: stricter array index check in no-magic-numbers (fixes #12845) (#12851) (Milos Djermanovic)
    • ⚡️ 362713c Update: Improve report location for template-curly-spacing (#12813) (Milos Djermanovic)
    • 👕 29f32db Fix: Change error message logic for implicit file ignore (fixes #12873) (#12878) (Scott Hardin)
    • 👕 eb1a43c Fix: require-await ignore async generators (fixes #12459) (#13048) (Anix)
    • 👕 920465b Fix: getNameLocationInGlobalDirectiveComment end location (refs #12334) (#13086) (Milos Djermanovic)
    • 👕 ae14a02 Fix: add end location to report in no-extra-bind (refs #12334) (#13083) (Milos Djermanovic)
    • ⚡️ 105384c Update: report operator location in operator-linebreak (refs #12334) (#13102) (Milos Djermanovic)
    • ⚡️ 081e240 Update: support globalThis in no-implied-eval (fixes #12670) (#13105) (YeonJuan)
    • 👕 185982d Breaking: improve plugin resolving (refs eslint/rfcs#47) (#12922) (Toru Nagashima)
    • 👕 0c20bc0 Fix: check assignment property target in camelcase (fixes #13025) (#13027) (YeonJuan)
    • 👕 8d50a7d Fix: add end location to report in no-prototype-builtins (refs #12334) (#13087) (Milos Djermanovic)
    • 👕 3e4e7f8 Fix: incorrect logic for required parens in no-extra-boolean-cast fixer (#13061) (Milos Djermanovic)
    • 👕 6c069f9 Docs: Add comments to code block in example (#13089) (Kibeom Kwon)
    • 👕 ee1f053 Docs: Fix typo (#13092) (Max Coplan)
    • 👕 76324ac Docs: Add further reading to rule (#13084) (Max Coplan)
    • ⚡️ a1370ab Update: Report constructor calls in no-obj-calls (#12909) (Milos Djermanovic)
    • ⬆️ 2111c52 Upgrade: esquery@1.2.0 (#13076) (Milos Djermanovic)
    • 👕 3f7c9bf Docs: clarify variables option in no-use-before-define (fixes #12986) (#13017) (Anix)
    • 👕 aef9488 Fix: allow references to external globals in id-blacklist (fixes #12567) (#12987) (Milos Djermanovic)
    • 👕 4955c50 Fix: remove type arguments in prefer-object-spread (fixes #13058) (#13063) (Milos Djermanovic)
    • 👕 48b122f Breaking: change relative paths with --config (refs eslint/rfcs#37) (#12887) (Toru Nagashima)
    • ⚡️ 085979f Update: consider env in no-implied-eval (fixes #12733) (#12757) (YeonJuan)
    • 👕 9ac5b9e Docs: Clarify node_modules is ignored by default (fixes #13006) (#13054) (Mika Kuijpers)
    • 👕 0de91f3 Docs: removed correct code from incorrect eg (#13060) (Anix)
    • 👕 dbe357d Fix: check template literal in prefer-numeric-literals (fixes #13045) (#13046) (YeonJuan)
    • 👕 2260611 Fix: added async in allow method in no-empty-function (fixes #12768) (#13036) (Anix)
    • 👕 f3788af Sponsors: Sync README with website (ESLint Jenkins)
    • ⚡️ e90b29b Update: Allow testing Suggestions with data in RuleTester (fixes #12606) (#12635) (Milos Djermanovic)
    • 👕 7224eee Fix: no-plusplus allow comma operands in for afterthought (fixes #13005) (#13024) (Milos Djermanovic)
    • 👕 7598cf8 Fix: Newline before eof when creating config via --init (#12952) (Andreas Lind)
    • ⚡️ 183e300 Update: support globalThis (refs #12670) (#12774) (YeonJuan)
    • ⚡️ af7af9d Docs: Update governance (#13055) (Nicholas C. Zakas)
    • 👕 31d5eb3 Sponsors: Sync README with website (ESLint Jenkins)
    • ⬆️ 95613d4 Upgrade: espree@6.2.1 (#13026) (Kai Cataldo)
    • 👕 f1525dc Sponsors: Sync README with website (ESLint Jenkins)
    • 👕 0243549 Fix: camelcase false positive with computed property (fixes #13022) (#13023) (Milos Djermanovic)
    • 🔒 bc0c02c Chore: added lock files to gitignore (#13015) (Anix)
    • 💅 79ac6cd Docs: added less confusing explanation for func-style (fixes #12900) (#13004) (Anix)
    • ⚡️ 26267ed Chore: update GitHub Actions (#12984) (Pig Fang)
    • ⚡️ 1299705 Update: acorn version (#13016) (Idan Avrahami)
    • 👕 6cef0d5 Fix: Check division operator in astUtils.canTokensBeAdjacent (#12879) (Milos Djermanovic)
    • 👕 fd8e1f5 Sponsors: Sync README with website (ESLint Jenkins)
    • ⚡️ 472025f Chore: update space-before-function-paren in eslint-config-eslint (#12966) (Kai Cataldo)
    • 👕 fd8c42a Sponsors: Sync README with website (ESLint Jenkins)