# File lib/cft/puppet/digest.rb, line 90
        def transportable
            @bucket = diff
            @bucket.keyword = "class"
            @bucket.type = @session.name
            @session.changes.paths.each do |p,c|
                next if Cft::FILTERS.any? { |f| File::fnmatch(f, p) }
                dig = Cft::Puppet::Digest::find(p)
                dig.transportable(self, p)
            end
            # Prune shadowed packages
            pkgs = @bucket.find_all(:package)
            shadow = Cft::RPM::readshadow(session.path(:rpm_shadow))
            unless shadow.empty?
                # For safety only: don't prune if there's no shadow info
                shadowed = shadow.values.flatten
                # FIXME: This will fail spectacularly with circular 
                # dependencies
                roots = shadow.keys.reject { 
                    |k| shadowed.include?(k) 
                }.collect {
                    |k| k.na
                }
                pkgs.each do |p|
                    unless roots.include?(p.name)
                        @bucket.delete_obj(:package, p.name) 
                    end
                end
            end
            # Pare down attributes
            @bucket.each_obj do |to|
                Digest::digesters.each do |dig|
                    if to.type == dig.type.name
                        dig.scrub_attr!(to)
                    end
                end
            end
            return @bucket
        end