Move the changelog to Towncrier fragments and build CHANGELOG.md at each deploy

Fermée
#978 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@anth-volk y travaille déjà.

Depuis le 28/10/2026.

  • #979 par @anth-volk — ouverte

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
github-actions, python
Domaine
ci-cd, release

Piste de recherche

Start by reading the existing deploy workflow, especially pr.yml and the workflow that deploys on merges to main, plus changelog_entry.yaml and policyengine-api's Towncrier configuration and release setup. Trace how version bumps, deployment triggers, and the GitHub App token are handled. Done means PRs require a valid fragment, each merge to main produces one release commit and one deploy, and all existing changelog entries appear in CHANGELOG.md.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Every pull request edits one shared changelog_entry.yaml that nothing reads: no workflow, Make target or script uses it, there is no CHANGELOG.md, nothing parses it in CI (two of its entries are YAML mappings because of an unquoted : ), and it conflicts on every stack rebase. No check requires a changelog entry either.

Move the changelog to Towncrier fragments, as policyengine-api does, and fix what policyengine-api's version gets wrong:

  • Fragments: one or more files per pull request, changelog.d/<name>.<type>.md, with policyengine-api's five types (breaking, added, changed, fixed, removed), configured in a root towncrier.toml.
  • A check on every pull request: a check-changelog job in pr.yml, in CI complete's needs, that fails unless the pull request itself adds a non-empty fragment directly in changelog.d/ with a configured type. policyengine-api's check counts any file anywhere under changelog.d/, so it passed #4084's changelog.d/added/4083.md, which its release then could not read; it also passes a pull request with no fragment while main has pending ones. The check and the release's version bump must share one definition of a fragment.
  • A release at each deploy: on a merge to main, a versioning job raises a repository version from the fragment types, builds CHANGELOG.md with Towncrier, removes the fragments, and pushes one release commit with the GitHub App token. Only that commit deploys; it must not start another release, and each merge must deploy once. Manual dispatch keeps working.
  • History: changelog_entry.yaml's entries move into CHANGELOG.md, with none lost, and the file is removed.
Langage dominant
Python
Étoiles
1
Forks
1
Merge moyen
1 j 17 h
PR mergées (30 j)
76

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de PolicyEngine/policyengine-sim-api

Toutes les issues de PolicyEngine/policyengine-sim-api

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.