code: def append_unreleased_entries(app, manager, releases):
      
      for family, lines in six.iteritems(manager):
          for type_ in ('bugfix', 'feature'):
              bucket = 'unreleased_{}'.format(type_)
              if bucket not in lines: # Implies unstable prehistory + 0.x fam
                  continue
              issues = lines[bucket]
              fam_prefix = "{}.x ".format(family) if len(manager) > 1 else ""
              header = "Next {}{} release".format(fam_prefix, type_)
              line = "unreleased_{}.x_{}".format(family, type_)
              releases.append(
                  generate_unreleased_entry(header, line, issues, manager, app)
              )
docs: Generate new abstract 'releases' for unreleased issues.
  
      There's one for each combination of bug-vs-feature & major release line.
  
      When only one major release line exists, that dimension is ignored.