Provide a way to completely ignore milestones
Detailed Description
When creating a draft release, all milestones, both open and closed are examined. If no version can be extracted from the name of the milestone, a warning message is issued... e.g.:
No valid version was found on Future Ideas
I'd like to have some way to tell you that this milestone is not relevant in calculating versions, counting commits, etc.
Context
This is a bit confusing when you first see it and I spent time in the code figuring out why you were even looking at my "Future Ideas" milestone. Of course, it relates to locating the previous milestone and figuring out how many commits were merged since that milestone. Now that I know the answer, it won't bother me any more, so this is a low priority for me, but may still confuse other people.
I tried various experiments to do away with the warning and my "Future Ideas" milestone is now called "4.0-Plus: Future Ideas" making it look like a pre-release of some kind. This will work at least until I start doing 5.0 releases but I'd rather have some definitive naming approach that says: don't bother with this milestone!
Possible Implementation
A few ideas...
- Just ignore milestones that start with an alpha value other than 'v'.
- Ignore milestones with no digits at all in the text.
- Provide some standard text to use in the name or as a prefix, e.g. "GRM_IGNORE" or "NOVERSION". Something shorter would be better but my brain isn't coming up with one.
Clearly, we have to think about warnings that might be omitted in error, so the third approach might be safest.
In fairness, this is pretty minor and I understand if you don't want to do it but if some simple approach is acceptable, I'm happy to do a PR for the fun of it.
This appears to be very similar to the issue I reported in March 2024 where a milestone without version info in its title would cause my build to fail but only on AppVeyor. My builds were successful locally which made investigating this problem particularly difficult. If I remember correctly, the root of the problem is that the failure to assert the milestone version number from its title was treated as an error which on AppVeyor caused the build to fail but was simply considered a warning when building locally. If memory serves, the solution was to change how this "failure to assert version from title" was reported to ensure it doesn't cause the build to fail.
All this say that since version 0.17.0 this situation should be treated as a simple warning (an annoying warning I'll give you that) and should not cause the build to fail, neither locally nor on AppVeyor.
Of course, if the warning were never issued in such cases, then no change would be necessary in use of stderr vs stdout.
As I think about it, I feel that some positive indication that a milestone should be ignored is the best answer as opposed to trying to guess how people intend to use the milestone.