-
Notifications
You must be signed in to change notification settings - Fork 603
Maintenance: use AWK to generate release notes #2309
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
base: master
Are you sure you want to change the base?
Conversation
While sed can perform what we need currently AWK will allow some more advanced operations like nested file include with variable substitutions.
|
This is a drop-in replacement. No output changes from current official code. |
rousskov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AWK will allow some more advanced operations like nested file include with variable
substitutions.
Be as it may, there are overall better languages/tools than AWK to handle most "advanced operations", and there appears to be no consensus regarding the future of release notes generation (i.e. we do not know what those "advanced operations" are going to be), with at least one of the proposals on the table definitely requiring higher level language/tools than AWK.
We should develop that long-term design consensus before deciding what tools to use to implement that design. A recent #2261 (comment) thread attempts to do that (and is waiting for your response).
| PACKAGE_VERSION="$(PACKAGE_VERSION)" \ | ||
| SQUID_RELEASE="$(SQUID_RELEASE)" \ | ||
| $(AWK) -f $(srcdir)/mk-release-notes.awk $< >$@ || ($(RM) -f $@ && exit 1) | ||
| test `grep -c "@SQUID" $@` -eq 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't this the same as
$(FGREP) "@SQUID" $@ >/dev/null
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure we need that line at all really. Especially now that the || ... handler exists. If we agree to remove or change it I am fine with that. Otherwise I will leave out of scope.
|
TBH this code looks a bit overengineered and at best harder to read than the code it replaces. |
I was looking into @rousskov's request to put notes about each feature into separate files. Seeing how far we could go before the obvious problems arise. The next steps I have been looking at are: At this point I still foresee all the "impossible to solve" problems occurring with "Major New Features", |
My input to the discussion is the same. I do not believe your plan will work at all. Here is a framework you can use to prove me wrong though. FYI: I picked AWK since the logic syntax is the most C-ish, POSIX shell is also guaranteed to be available, Perl is a maybe. Whatever script is used here it must run on content from the distributed tarball (ie no git) because downstream apply their own patches then re- |
That belief is not the blocking question right now. The current blocking question is whether you are going to veto an implementation of what I have proposed if such implementation is posted as a PR1. If you intend to veto it (based on your believes or any other reason derived from the proposal itself), then there is no point in implementing my proposal!
If "Here" is this PR, then this PR is not a framework, and it cannot be used to prove you wrong (or prove you right) with regard to my proposal viability.
I strongly disagree.
We do not need to accommodate "downstream" that cannot use git, but even such "downstream" are free to patch artifacts that we produce in a git-enabled environment. Footnotes
|
FWIW, I see no relationship between this PR and my proposal.
Most likely, the Notice section should be removed. If we fail to agree on that, it should probably become a separate versioned file (that gets assembled into a release notes document) and it should be adjusted to tailor release notes needs instead of "announcement" needs.
I disagree that we should use a hard-coded template to assemble a release notes document. In a sense, the assembling program should become that template instead because various indexing/placement decisions depend on a dynamic set of notes. If some static template survives, it will be very minimal/basic.
We should not duplicate bug reports so, most likely, the Known Issues section should be removed or replaced with a simple reference to Bugzilla/etc. If we fail to agree on that, in my proposal, each "known issue" (if any) would be a separate versioned file, just like each "change note".
A list of build requirements seems to be unrelated to release notes. Each change in build requirements would become a versioned file in my proposal, assembled into a release notes document.
I do not see a framework. As for "specific code" in this PR, I have reviewed and blocked it; I do not recommend working on that specific code further because my block reasons are "fundamental" rather than specific to lower-level code bugs. It is up to us, but I, personally, do not think we should be debating ideals for years, and I see no signs that we disagree on ideals in this specific context. My proposal already "shows us what model" solves many of the correct problems (rather than all problems, of course). I do not know what else you want me to "show". |
So instead of taking a single refactor step, you would just jump to a clean-slate implementation of the entire release notes creation process, design, and implementation logic.
Um. Please take a look at what past release notes contain for "Known Issues". I make no proposal about listing bugs or changing what it has - simply acknowledge that vN branches may have different content.
One file that differs between vN branches would be entirely sufficient. I imagine we will settle on the same style as "Known Issues" currently uses. eg. a reference to the wiki page with where full details can be found, plus a few specific mentions when noteworthy changes happen since the vN-1.
Maybe a difference in our understanding of the paradigm behind the term. AIUI, a place where you can implement and "drop in" arbitrary business logic (in the form of an AWK script) fits the term "framework" nicely.
We have a significant disagreement on what "problems" exist in relation to the release notes. |
While sed can perform what we need currently AWK will allow some
more advanced operations like nested file include with variable
substitutions.