-
Notifications
You must be signed in to change notification settings - Fork 47
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
Better view of pending updates and revision history (was Cutting version 1.10) #345
Comments
@davidhassell ping - thoughts here? (1) is a very good question - is there an easy way to generate such an overview in the absence of updates to the history section of the document? I imagine GitHub would be helpful, and it might be even easier if we use milestones that could be attached to PRs but AFAIK we're not doing that. |
We could put headings in the history section (in |
Separately, I would like to suggest that when we close issues in this repository which have been agreed to be implemented in the next release, we should add another label that indicates this e.g. "1.9" for all the ones added to the present version. Those new labels can all be the same colour, to conserve the visual spectrum. I think these labels might be useful when looking at the repo subsequently. |
@JonathanGregory I agree that a per-release entry in History would make sense. What you propose regarding labels would work, although it might be simpler if we track them by pull requests. This is a common pattern in the software development world. This has been made easy for 1.9 as shown by this filter showing those PRs that were manually tagged as going into 1.9. If we were to do that again for 1.10 we would have such an overview, and the PRs would of course link back to their respective issues. Barring that, this can be discovered by pulling up closed PRs and sorting by date, then checking what was merged into |
For reference, in ESMValTool we use just the process that @erget described to generate the changelog using this script. We are considering replacing this with one of the many available standard solutions that do a similar thing. |
OK. If others agree, this is something we could introduce in 1.10, and it might not be too hard to insert those headings for all the previous versions.
Thanks. That is neat. How do you tag the PRs in this way? I agree that it would be sensible to do that as soon as it is agreed that a PR will be merged at the next release. However, this doesn't tag the issues, does it? Therefore I think it would still be useful to add a label to the issue once it's agreed to update the convention, for instance "Change agreed". This label would remain forever, and by following the link in the issue to its PR, tagged in the way you describe, you could find out which version it affected. I would also propose a complementary label "No change agreed", to be applied to any issue which we close because it doesn't seem that it's going to reach a conclusion. Of course any closed issue could be reopened and the label removed. I feel that it's better to close issues than to leave them forever dormant. Do others agree, or am I being tempted by excessive tidiness? |
I agree, per-release headers in History would be helpful. @JonathanGregory - I like the idea of closing inactive issues after some period of dormancy and adding a "No change agreed" label to those issues. I also like the idea of adding a "Change agreed" label to issues as they are agreed (and PRs merged). |
Hello all, My (current) thoughts on the new release question: I'm not sure about cutting 1.10 to fix just this defect. Given that it can be fixed in the latest CF-1.10 draft, is that not sufficient to tide us over to the whenever CF-1.10 is released? A few years ago we agreed that one release, or perhaps two releases, per year was a good balance; which to me, at least, means that any extra release in the year should be reserved for either getting new functionality out to users with production time constraints, or else correcting a serious error. I'm not sure that this defect (important as it is!) adds new features, nor warrants the "serious" label. I like the idea of per-release history entries, and "(No) change agreed" issue labels. I would find those very useful.
That is exactly what I did when applying many of those milestones - and it was indeed laborious. Labelling them at merge-time would be a great addition to the workflow. Setting a milestone on a PR (or issue) is very similar to setting a label - it's on the right hand panel just below where the label-setting feature is. I have just created a 1.10 milestone (via https://github.com/cf-convention/cf-conventions/milestones). Thanks, |
@davidhassell agree with all your points. I also agree about the issue labels of changes being agreed or not, that would be easy to do and add value. When we consider these process changes agreed, we should document them, e.g. in Rules.md or in the PR templates, in the form of a checklist. They're simple to do but would need easy presentation so that they don't get forgotten. |
Dear @davidhassell Thanks for explaining about milestones. As a test I have just attributed the closed issue about lossy compression by coordinate sampling to milestone 1.9. That is obvious when you open the issue, but you don't see it in the list of issues or when hovering on the issue, so a label saying "Change agreed" would be separately useful still. You can also filter the issues as Daniel showed for PRs. Filtering the closed issues for the 1.9 milestone now shows just the one I have tagged. It's OK not to make a special release in order to fix this defect if we're sure there's not much danger of anyone coding Cheers Jonathan |
We could always correct 1.9 using the procedure for errata so that 1.9 remains valid - leaving the error in 1.9 and minting a new release to correct it would be similar to deprecating 1.9, which would be new ground. |
Perhaps my previous comment was a bit obtuse. With regards to @erget's and @davidhassell's comments
I wanted to point out that this process can and should be automatized using the github api. It is really only a few lines of code (the changelog script I referenced above is less than 200 lines and includes formatting and filtering). With this, the task won't be laborious anymore. |
I am just quietly following all the good ideas and solutions that you github experts are coming up with. Many thanks for this! While we are at it, here is another thought: In the revision history I think that it would it be meaningful to have "subheadings" for each version of the conventions document together with its release data. The reason for this is that we are now and then discussing that in a file adhering to CF-1.X there might be a metadata construct that is defined/superseded/invalidated in a more recent version of the conventions, and that this is not a problem as it is known in which version a certain construct is introduced. E.g. something like
and so on, but of course properly formatted. This might take some manual work, which should not delay releasing 1.10 before if need be. |
In a way this would move the history in the direction of being more akin to a classic change log spelling out the changes between releases, which I think would be a good thing. I imagine that the date of a change being merged is likely less important to most readers than the version in which it was released, and because we link back to the issues, if one needed to know the merge date of a specific change set, that would be possible. |
Having let this go dormant six months ago, I have begun working on a PR to reformat the revision history as discussed in this issue. I will also summarise the proposals regarding labels. Jonathan |
Dear all Here is what I propose for the revision history. It's the same contents as before, but I have put it in a uniform format with each entry as "link to GitHub issue, trac ticket or date: text" (dates for the very earliest versions, before we had trac tickets), and I have turned it upside-down, so in future we will add new entries at the top of it. I think there are two advantages in having the most recent change at the top. (1) The top is what you see when you open the document, and it's the most recent changes you're usually interested in, rather than ancient history. (2) The title line for each version is both a heading for the changes it includes, which follow it in the document, and a marker in time for the release of the version i.e. later in time than the changes, because it appears above them in the document. In the AsciiDoc, to make it easier to edit, I have defined attributes Is this OK? If so, I will make a pull request to do it. Jonathan |
Hi @JonathanGregory , this sounds very good - thanks for putting in the work! |
Dear @davidhassell @erget @ethanrd @zklaus et al. In the previous discussion I believe there was general agreement that the following would all be useful:
I would further propose that the first two of these should be done for 1.10 but we need not do them for earlier versions, and the third will be done on an ongoing basis by anyone who has time and permission to modify the repos. I will spend some time on it myself. If agreed, the above should be documented in the rules for making changes to CF conventions. Best wishes Jonathan |
Hi @JonathanGregory , I think this is a good idea and I also remember conversations that have proposed things along these lines. No need to do it for earlier versions of CF in my view. Do you think that |
Dear Daniel @erget
I am not sure. I think it's debatable. These two documents overlap somewhat in purpose. Could we merge them? In order to do that, we would have to put the rules for making enhancements and rules for correcting defects into the same file, along with the contents of Cheers Jonathan |
@JonathanGregory in fact I'd be very much in favour of merging them, as it would simplify things quite a bit. I'd also be willing to volunteer to support that one (I'm assuming you would too, so we could get the old team back together again! :) ). It'd have to be a bit of careful work, perhaps we could devote some hackathon time at the upcoming user conference to the topic if you're interested. |
Yes, I could help. J |
Great, I've spawned #369 so I don't forget. I'll hold you to it ;) |
This all sounds good to me. Thanks for reviving this issue. |
Upon review, I have not suggestions to make. I would thank those who have clearly spent considerable time thinking about this and working to implement it. It's a huge service in support of CF. |
Dear all Thanks for your contributions. I have prepared a pull request to reformat the revision history. Enough support has been expressed, so if there are no objections before 17th August it will be accepted on that day. (The rich diff is not much use for this PR because I turned the file upside-down, so it's completely different even though the contents are the same.) I suggest the same deadline for comments on the decision to add Change agreed and No change agreed tags to issues, and to add version numbers as milestones to pull requests. Those don't involve a change to the convention, of course. They are a GitHub issue. Cheers Jonathan |
FYI while it's true that the rich diff isn't much use, you can view the updated file to get an idea of its integrity. I've had a look and it seems fine for me. |
Ah, thank you! I was just wondering where to find that artifact. I know you had told me before. I've found it again now. |
Hello, Looks good, Jonathan, thanks. Could we add the day of the month to the release dates? E.g. |
Yes, certainly. It is only 1.7, 1.8 and 1.9 which currently don't show the day of the month, and you have just helpfully filled it in for 1.9. On which day in Feb 2020 was 1.8 released? I have just discovered from emails that 1.7 was released on 7 Sep 2017 (not Aug 2017). Jonathan |
You can see the dates when releases were minted on the releases page - 1.8 was 11 Feb 2020. @davidhassell I take it tags, which have the same version numbers, are not considered equivalent to releases because of additional work in packaging, etc.? The tags have different dates than the releases. |
Dear @davidhassell and @erget
I have added the release days for these three versions (now like all the others). I kept 7 Sep 2017 for 1.7, which was the day on which Jeff announced its release, although he subsequently updated it, as shown by the releases page (which I didn't know about - thanks). Jonathan |
Hi @erget, I think that the tags should have the same date as the release, just to avoid any ambiguity, even if the content of the repo at the tag is identical to that that was released. We've not always been on top of this, but 1.9 got it right. I'm about to submit a PR to create a RELEASE.md that describes the release process - including making the tag on the release date. Thanks for adding the dates! |
Hello - I think that this is all good to go, So unless anyone has further comments, the start the 3-week countdown can be considered as 2022-07-28 (the last substantive comment), and we merge this on 2022-08-18, in time for CF-1.10. Many thanks to Jonathan for putting the work in on this. |
There have been no more comments on this issue (about the revision history in the CF conventions document). Please could someone merge PR #370? |
Sorry to come at the last minute - would it be ok to introduce a formatting change to the PR? I'd propose using a bulleted list rather than the current formatting, which makes each issue its own paragraph, and would be happy to implement if that's ok for the group. Should have proposed this earlier, mea culpa. |
Fine by me. |
OK. That doesn't change the content, so it could still be merged today, I think. |
Ok, done. |
In issue #343 Jonathan asks
which prompted a couple of thoughts:
After discussion, it was agreed to reformat the revision history with pull request #370, and to add tags and milestones for agreed issues, dormant issues and PRs implementing agreed issues. @JonathanGregory 18 Aug 2022.
The text was updated successfully, but these errors were encountered: