It's not quite clear to me how you are using the concept of "Epic". I've seen a few different ways of treating Epics, two in particular. How I would suggest handling this case depends on your view of exactly what an Epic is.
In one case, the Epic is a container for work that can belong to multiple releases (where each release is identified by a fixVersion
). Each Story, Bug, or other issue under the Epic is assigned to the release where it was incorporated. The Epic itself wouldn't have a fixVersion
set at all, but it would have a workflow (often a simple one, like To Do -> In Progress -> Done) where it would transition to In Progress when the first piece of work under the Epic was started and then transition to Done when the last piece of work entered its final state.
In another case, the Epic is a bundle of highly related work for a given release. The Epic represents something of value to the stakeholder, while the work under the Epic represents thin slices of work that can be designed, developed, integrated, and tested by the team. However, all of the work for the Epic would be integrated into the product, tested, and released as a single bundle. In this case, the Epic could have a fixVersion
assigned to it.
I would strongly recommend choosing some definition of Epic and using that to guide when you close it. Then, be consistent across all Epics.
I am struggling with the idea of the Epic as a timebox, though, that would get closed just because your Program Increment ends. In both cases that I've seen, the Epic is a container for work and represents the state of that work. It doesn't get closed and work moved around just because the calendar says so. However, I could be missing some context that could make this make sense, so I won't say that you absolutely shouldn't do this. I'll just say that it's not something I've seen and I don't see the value in it.