docs: def add_to_manager(self, manager):
          """
          Given a 'manager' structure, add self to one or more of its 'buckets'.
          """
          # Derive version spec allowing us to filter against major/minor buckets
          spec = self.spec or self.default_spec(manager)
          # Only look in appropriate major version/family; if self is an issue
          # declared as living in e.g. >=2, this means we don't even bother
          # looking in the 1.x family.
          families = [Version(str(x)) for x in manager]
          versions = list(spec.filter(families))
          for version in versions:
              family = version.major
              # Within each family, we further limit which bugfix lines match up
              # to what self cares about (ignoring 'unreleased' until later)
              candidates = [
                  Version(x)
                  for x in manager[family]
                  if not x.startswith('unreleased')
              ]
              # Select matching release lines (& stringify)
              buckets = []
              bugfix_buckets = [str(x) for x in spec.filter(candidates)]
              # Add back in unreleased_* as appropriate
              # TODO: probably leverage Issue subclasses for this eventually?
              if self.is_buglike:
                  buckets.extend(bugfix_buckets)
                  # Don't put into JUST unreleased_bugfix; it implies that this
                  # major release/family hasn't actually seen any releases yet
                  # and only exists for features to go into.
                  if bugfix_buckets:
                      buckets.append('unreleased_bugfix')
              # Obtain list of minor releases to check for "haven't had ANY
              # releases yet" corner case, in which case ALL issues get thrown in
              # unreleased_feature for the first release to consume.
              # NOTE: assumes first release is a minor or major one,
              # but...really? why would your first release be a bugfix one??
              no_releases = not self.minor_releases(manager)
              if self.is_featurelike or self.backported or no_releases:
                  buckets.append('unreleased_feature')
              # Now that we know which buckets are appropriate, add ourself to
              # all of them. TODO: or just...do it above...instead...
              for bucket in buckets:
                  manager[family][bucket].append(self)