That's part of it, but then, there's architectural integrity, code quality, testing, testing, and more testing, then there's testing, and some more testing, then, there's taking care of all the "boring" release stuff, like testing. Then, of course, you can't have a release without testing.
Getting an idea of what I mean? Finding a pattern in there?
I generally don't have a ticket system, beyond the GitHub Issues, and I have yet to go over one digit.
That's not because I write perfect code. In fact, I'm constantly finding problems. It's just that I never stop looking, and fix issues -comprehensively- when I find them. Usually, the finding and fixing is so fast, that it isn't even worth it to log the issue. The changelog has what I need, as does the checkin history.
Just because I release something, doesn't mean that I stop testing, documenting, or maintaining it.
In January, we released an app (which I won't link, here). It is currently up to version 1.7.0 (I've been busy), and I'm working on a 1.8.0 version. This will be a basically "behind the scenes" release that won't result in any real user interface changes, but will set the stage for adding a fairly considerable upgrade, down the road (maybe a 2.0 version, but we'll see).
I write code that can have a fairly significant impact on the lives of the folks that use it. It's a Responsibility. I take that fairly seriously.