Questie

Questie

116M Downloads

[RFC] Automated changelog

Muehe opened this issue ยท 6 comments

commented

Request for comments: Automated changelog

Proposal

Decide for a new workflow that allows us to automatically generate changelogs from the commit history.

Discussion

There are basically two obvious ways right now to make this happen:

Use existing auto-packager script

There is an existing script that can package an addon, generate a changelog and upload it to curseforge: https://github.com/BigWigsMods/packager

Also relates to automated testing with luacheck.

We could use this script, or parts of it, so this option and the following are not mutually exclusive.

Modify our own build script

We start adding tags to the commit messages that indicate it should appear in the changelog.

Tags

The proposed tags are these:

  • [feature] = New features
  • [fix] = General fixes
  • [quest] = Quest fixes
  • [db] = Database fixes

The build script will take the title of that commit message and put it in the changelog under the appropriate header. Of course more tags can be added if need be.

Tag position

Another point on this is where to put the tag in the commit message. This consideration is more or less cosmetic.

Either we put it in the title:

[fix] title

body

fix #123

Or in the body:

title

body

fix #123

[fix]

A third possibility is showing title and/or body in the changelog depending on tag position.

Summons

Requesting opinions from @AeroScripts @Logonz @BreakBB

Of course anybody else can feel free to comment on this as well.

commented

I just saw the changelog of v5.0.1 and it looks horrible!

Not sure if this has already been created by the build script, but listing just the commits is not a real changelog imo.

The script should remove the tag, make the first letter a capital and then as you @Muehe already said put it in the correct position in the list.

commented

Since I am using the cmd for commits I would start commits like:

git commit -m "[tag] Short title" -m "Some good description to fix #0000"

commented

We also need a tag for localization updates/changes.

I suggest using [lang] or [locale]. @Logonz also suggested to add a tag for each language so we could do [locale] [deDE].

@Muehe Your thoughts on this?

commented

I added a prototype for the changelog script in 3ee9ff3

Used tags are: feature, fix, quest, db, locale (in that order)

The script takes all the commits with [tag] in their first line, removes the tag and uses the rest of the line for the changelog. The changelog is sorted by tag and chronologically.

This leads to some problems with obsolete or vague commit messages, which we will have to remove manually for now. But we should agree on a common structure for commit messages, so they are useful for the changelog. This might mean using feature branches and tagging only the merge commits for example.

Example for current git tag to current commit (v5.0.1..HEAD) with some added notes:

New Features

  • We now have minimalistic textures enable them in settings for a less cluttered map! [this feature has been disabled for now, so it shouldn't appear here]
  • Quests that are gray will now also be gray ingame. [mention 1]
  • Icons on the map now become smaller depending on the map (EK, Kalimdor, Azeroth)
  • Quests that are trivial will now show up as gray quest icons. [mention 2]
  • To keep objectives that are relevant close to the quest itself we will now increase the amount of clustering done for objectives that are far away.
  • Handle the max reputation value for quests
  • Clustering by variable distance will only happen if there are over 100 notes (Not finetuned)
  • Sort quests in "Quest by Zone" by level
  • Sort zone names in Quest by Zones
  • Use current zone as default for 'Quests by Zone'
  • Show repeatable quests separate[ly] in 'Quests by Zone'
  • List unavailable quests in "Quests by Zone"
  • Add active quest counter to tracker

General Fixes

  • Tooltip toggle should now also work on items. #1390
  • Another logic fix for chinese clients, we also need to check if it returns nil! #1358
  • A fix to stop errors from appearing when a quest is missing #1429
  • Hide unexplored should now be much faster and more dynamic without having to redraw everything.
  • Also add the minimap icons from the DrawWorldIcon functions, also implemented a mapFramesShown table.
  • Fix for quests with strange objectives #1424
  • Fixed frame level stuff [which "stuff"?]
  • When both a gameobject and an item have the same name issues arose when it thought it was both at the same time. (Thanks StrangelyTyped) #1451
  • Long range clustering is now improved
  • Cleaned up the code and added a few comments [why is this tagged as fix?]
  • A try to fix the Available quest icon showing when it shouldn't
  • Fix toggeling options for (mini-)map breaking on reload
  • Objectives shown for completed quests
  • Add 'Automatic' setting to Questie UI locales

Quest Fixes

  • Lonebrow's Journal
  • A Broken Trap
  • Grark Lorkrub
  • Camp Mojache
  • Fragments of the Past
  • Fine Gold Thread
  • Seeping Corruption
  • Quests 7725, 7726, 1878 and 2881 are repeatable and should be showing. #1426
  • Fix exclusivity for "The Binding"
  • Liquid Stone
  • The Black Shield
  • The Red Crystal

Database Fixes

  • Add spawns for "Aged Kodo"
  • Add missing spawns for "Keepsake of Remembrance"
  • Add missing starting NPC for "Stonegear's Search"
  • Blacklist "Mastering the Elements" till Phase 4
  • Update spawns for "Kim'jael's Equipment"
  • Add spawns for "Bhag'thera"
  • Add missing quest "Lord Grayson Shadowbreaker"
  • Add missing "Talismans of Merit" quests
  • Fix mob spawns for 'Deviate Hides'
  • Fix spawns of 'Nalpak'
  • Fix spawns of 'Ebru'
  • Fix exclusivity of 'Liquid Stone'
  • Add spawns for 'Searing Whelp'
  • Add spawns for 'Searing Hatchling'
  • Add spawns for 'Firemane Ash Tail'
  • Add spawns for 'Firemane Scout'
  • Add spawns for 'Ambassador Malcin'
  • Update spawn of 'Gazban'
  • Add spawns for 'Baron Vardus'

Localisation Fixes

  • [frFR] Update config.lua
  • [esMX] Add Mexican localization
  • [frFR] Update config.luaCloses #1262Co-authored-by: Pgmbru [email protected]
  • [koKR] Update translations
commented

The changelog is looking good except for the issues you already corrected @Muehe . I noticed I failed to add the correct Co-author in ccd2c98 and therefore it should be changed from

[frFR] Update config.luaCloses #1262Co-authored-by: Pgmbru [email protected]

to

[frFR] Update config.lua (Thanks @Pgmbru )

commented

This change is now implemented. If you need details see changelog.py in the projects root directory.