Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python code cleanup, PoC: Changelog #52477

Open
Tracked by #52473
damien opened this issue Oct 27, 2021 · 2 comments
Open
Tracked by #52473

Python code cleanup, PoC: Changelog #52477

damien opened this issue Oct 27, 2021 · 2 comments
Assignees
Labels
Code: Build Issues regarding different builds and build environments Code: Infrastructure / Style / Static Analysis Code internal infrastructure and style Code: Tests Measurement, self-control, statistics, balancing. Code: Tooling Tooling that is not part of the main game but is part of the repo. [Python] Code made in Python

Comments

@damien
Copy link
Contributor

damien commented Oct 27, 2021

Is your feature request related to a problem? Please describe.

The current Changelog script is currently broken. It needs to be updated.

Describe the solution you'd like

As part of #52473 I'd like to

  1. Add some new infrastructure and quality controls around Python code
  2. Update the existing Changelog script to work in the new CI/CD environment (now Github Actions, previously Jenkins)
  3. Remove any remaining Changelog code that is no longer needed
  4. Write some basic unit tests to catch when changes to the Changelog script or the CI/CD environment would cause it to break

Describe alternatives you've considered

Fixing the Changelog script without the accompanying infrastructure improvements. This'd be simpler, but I feel like this is a model case to test out a process for bringing CDDA's Python code to a higher level of confidence and quality than we currently have.

Additional context

Feedback from some Discord conversations I had around this proposal
  • [there are] a number of different issues, code style or linting for python across the repo is fine if meh
  • enhancing the changelog generator is unrelated to mostly-mechanical cleanups like that
  • something to note about the changelog tool as it exists is it does a bunch of different things, and we only care about one of them right now
  • it has a whole separate report format that is simply unused, you can dig up one of my changelog PRs from last release and see how I invoke it
  • code supporting use cases other than that can be delicately removed with a chainsaw
  • [we are] not optimistic about people keeping their commit messages in order
  • what we have is a section of the PR description where people provide a one-line summary of what the PR does
  • shifting away from that is a major undertaking
  • [python improvements and the Changelog are] seperate issues, it [the Python code] doesn't need just some tweaks and cleanup, it's a major piece of infrastructure
  • If you're working on changelogs you could help automating the Reddit changelog, it takes @Maleclypse and @LyleSY a lot of work to make it every week. There is a generate_changelog.py tool in the repo already but I don't know if it's even possible to modify it to generate the Reddit changelog.

Related Issues

  1. Python code cleanup #52473
  2. Add automatic intermediate changelog #49006
  3. Jenkins/Build Bot Broken #48642
@damien damien added Code: Build Issues regarding different builds and build environments Code: Tests Measurement, self-control, statistics, balancing. Code: Infrastructure / Style / Static Analysis Code internal infrastructure and style [Python] Code made in Python Code: Tooling Tooling that is not part of the main game but is part of the repo. labels Oct 27, 2021
@damien damien self-assigned this Oct 27, 2021
@damien damien mentioned this issue Oct 27, 2021
7 tasks
@LyleSY
Copy link
Contributor

LyleSY commented Oct 27, 2021

Even just filtering out Summary: None PRs would significantly cut down the burden

@damien
Copy link
Contributor Author

damien commented Nov 17, 2021

Note to self and for anyone else watching this ticket: Compare and reference #52578 when ready; @Bejofo had a lot of good ideas in his stab at changelog generation that are worth preaserving, including:

  1. Ensuring human-readable changelogs are included as assets in each release. May also be worth considering making the contents of such markdown the description of the release in Github rather than a stand-alone asset within a Release.
  2. Deep linking to authors of individual changelog line items
  3. Stretch goal once we're past the MVP stage: Consider performance and multithreading when generating changelogs over large releases or long periods of time. This'll probably also be when we start running into rate-limits with Github's APIs, so there's likely to be a whole segment of work around large changelogs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Code: Build Issues regarding different builds and build environments Code: Infrastructure / Style / Static Analysis Code internal infrastructure and style Code: Tests Measurement, self-control, statistics, balancing. Code: Tooling Tooling that is not part of the main game but is part of the repo. [Python] Code made in Python
Projects
None yet
Development

No branches or pull requests

2 participants