Revisit how we add missed-deliverable and missed:x.y
Timeline for what happened
- Original implementation:
- We add missed-deliverable to Deliverable which the milestone "expired"
- We also add
~"missed:x.y"
to anything which the milestone "expired" - We move the milestone to the next milestone when the milestone "closed"
- Original issue: #356 (closed)
- We planed to change the above logic from checking if the milestone is "expired" to a business day prior to release date (22th) in PST, regardless milestone being expired or not.
- First implementation: !353 (merged)
- This unfortunately only changed the logic for missed-deliverable
- So
~"missed:x.y"
was still added to all issues and merge requests when the milestone was "expired", and it happened!
- Balu
@balasankarc
reported thatmissed:x.y
was added too early: gitlab-org/omnibus-gitlab!3705 (merged) - Fix up implementation: !354 (merged)
- This handled
~"missed:x.y"
so it should fulfill the requirements in #356 (closed)
- This handled
- Milestone %12.5 was closed a few business days before the release date (22th)
- The consequence of this was that issues and merge requests were moved to %12.6 before
~"missed:12.5"
was applied. - Fortunately, we made the mistake that we added
~"missed:12.5"
when the milestone was expired (17th) already. ~~It means the only thing we'll be missing will be missed-deliverable which we changed in !353 (merged) for missed:12.5.~~ Edited: And since we have another policy to enforce missed-deliverable for Deliverable + any missed labels, missed-deliverable were also already applied.
- The consequence of this was that issues and merge requests were moved to %12.6 before
-
In order to recover from the mistake:
- ~~We can add missed-deliverable for all missed:12.5 along with Deliverable, presuming that people did not remove Deliverable yet.~~
- Edited: Actually, according to dry-run in !356 (closed) missed-deliverable was already applied, because we also have a policy to enforce this in
policies/stages/hygiene/label-missed-resources.yml
. This means nothing we really need to do.
-
In order to protect from closing the milestone prematurely, we should also attempt to add
missed:x.y
and missed-deliverable with the same logic in #356 (closed) (i.e. inpolicies/stages/hygiene/move-milestone-forward.yml
, not justpolicies/stages/hygiene/label-missed-resources.yml
)
Edited by Lin Jen-Shin