8000 Check for milestone and change log connection · Issue #19596 · scikit-learn/scikit-learn · GitHub
[go: up one dir, main page]

Skip to content

Check for milestone and change log connection #19596

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

Closed
2 tasks
cmarmo opened this issue Mar 2, 2021 · 4 comments
Closed
2 tasks

Check for milestone and change log connection #19596

cmarmo opened this issue Mar 2, 2021 · 4 comments

Comments

@cmarmo
Copy link
Contributor
cmarmo commented Mar 2, 2021

Follow-up of @jnothman comment.
I would like to propose to enforce milestones in pull requests.
That means:

  • create a check that verify if the milestone is present
  • modify the check on the change log to verify consistency with the milestone.

I believe it is helpful in anticipating breaking changes, and could give a more long-term vision on the library developments. It is also helpful for contributors, as they will have a better understanding of how much their pull request is awaited.
This approach is used for example by the Astropy project: no milestoned pull requests will still have their place anyway, they are long term feature implementations or code reformatting.

@NicolasHug
Copy link
Member
NicolasHug commented Mar 2, 2021

I like the idea of having the milestones giving a clearer roadmap, but TBF I don't think we have the resources to promise (or even suggest) anything about when PRs will get merged.

We currently don't make setting milestones mandatory, and yet just prior to every release, a significant number of milestoned PRs get re-milestoned (i.e. postponed) because we don't have the bandwidth to merge them on time. Some PRs have been re-milestoned for years. If we make milestones mandatory, we'll have to re-milestone even more PRs at each release, and this might be impractical IMHO. It would also make the milestone tagging effectively meaningless, as we wouldn't be able to stick to the labels anyway.

@cmarmo
Copy link
Contributor Author
cmarmo commented Mar 2, 2021

@NicolasHug thanks for your answer, you are totally right. I have myself removed from milestones a lot of pull requests, but not remilestoned them, because after postponing four times it is clear that people didn't find the energy to work on them. In my opinion enforcing milestones is a gently push in a direction of defining priorities: if a pull request is milestoned for, let's say, 1.5.2 , I really need it there, I will find a way to make it done, delegating other activities. Often pull requests are in a milestone just because they have been automatically moved before a release, not because someone actually decides to give it priority. For bugfixes, it will help in managing backporting the change log for bugfix releases. Anyway, if people are interested in playing the milestone game this could perhaps help in changing habits and improving the long term point of view, otherwise, this is really just an RFC. :)

@jnothman
Copy link
Member
jnothman commented Mar 2, 2021 via email

@cmarmo
Copy link
Contributor Author
cmarmo commented Mar 4, 2021

My comment that is referenced here was talking about always requiring the latest version's change log to be updated, except in the case where a milestone has been tagged.

And I'm ok with that but I'm also trying to avoid duplicated entries in the changelog, with the less possible human intervention. I'm not happy with the current behavior of the check, and would like to check all the changelogs and then the last one, if the milestone is not present, to notify if the entry has been duplicated (this already happened in some pull requests opened for a long time). Pushing on that direction I opened this issue to ask if it could be a better idea to directly enforce milestones, as I can directly implement the check on the correspondent changelog rather than the last one.

I think this conversation necessarily needs to be framed in terms of "what are milestones used/useful for". So far we have used them, I think, for the following purposes: ...

Thanks for this list: if you don't mind I will add it to the wiki about how to use labels (then milestones ... :) ), because it helps triaging people to better understand how things work in the issue tracker.

Making milestones mandatory makes them less useful as a checklist.

I can understand this if the release is a 'lonely single maintainer effort' concentrated in the last month (or week) before the deadline. I personally don't particularly like the 'last minute rush' situations (but I think this is just a matter of taste): in my opinion almost mandatory milestones force to use the checklist during all the ~six months before the release and not only at the end. The release manager will not need to recheck all PRs badly milestoned just before the release because the effort has been diluted by all the maintainers during the previous months ... perhaps it asks for some trust in other people work ... You will tell me that the release manager will do it anyway and you are right: I hope it will take less time, as critical decisions would already be taken.

It might support change log management better because we can check that changing a milestone tag is reflected in the change log location. What other purposes would it serve?

From my naive point of view,

  • it will help in prioritizing pull requests: starting from the release of 1.0, milestones 2.0, 1.X and 1.X.Y, would be managed.
  • it will help in anticipating the release effort
  • it will help the contributor understanding the timeline of the contribution and motivate to more frequently update and follow-up the pull request.

What current functions would it hinder?

  • see your comment about making an effective checklist at the release moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants
0