| The releasenotechanges macro defines its three sections (users, administrators, developers) in Velocity, as three near-identical blocks of getChanges calls, each with its own rule for splitting the main changes from the miscellaneous ones (the screenshots for users and administrators, the importance for developers). Move the definition of the sections into the Java API, so that the macro keeps only the forms and the rendering:
- a new ReleaseNoteSection class gives, for a ChangeQuery, the sections of a release note in display order, each with its audience and the queries of its main and miscellaneous changes;
- $services.releasenotes.getSections(query) exposes it to the wiki pages;
- ChangeQuery gets a copy constructor.
The rendered release note does not change. The getChanges and displayChanges macros keep their contract for the other pages using them. |