Topic: What is the process from a patch to a final release?

I understand that once a bug is found, people submit patches, get them approved (or rejected then they try again) and from there my undersatnding is that these change(s) become an official changeset, which is put into the trunk sometime later (not sure if its straight away or you let them build up).

I also understand that a trunk (or perhaps the stable branch) will be tagged at certain points for various releases, when it seems both stable and the feature is changed enough to warrant a release.

But what is the process from trunk code into stable releases, and when will a change find its way into a major release e.g. 1.0/2.0, a minor release e.g. 1.3/1.4 and a build release (not sure if build is the best choice of words) e.g. 1.3.2. Could patches not be released in the next minor releases and be saved for a major release? (same for minor and build)

I understand this will differ from project to project but general, but can anyone fill in the bits and pieces I am missing or refer me to a guide on this as I am interested in the process that goes on in the background.