def compare(self, snapshot):
builds = snapshot.builds()<EOL>diff_snapshot = DistributionSnapshot(self.distribution(), self.go_version)<EOL>for package in list(set(self._builds.keys()) - set(builds.keys())):<EOL><INDENT>diff_snapshot.setRpms(package, self._builds[package]["<STR_LIT>"], self._builds[package]["<STR_LIT>"], self._builds[package]["<STR_LIT>"])<EOL><DEDENT>for package in list(set(self._builds.keys()) & set(builds.keys())):<EOL><INDENT>if self._builds[package]["<STR_LIT>"] != builds[package]["<STR_LIT>"]:<EOL><INDENT>diff_snapshot.setRpms(package, self._builds[package]["<STR_LIT>"], self._builds[package]["<STR_LIT>"], self._builds[package]["<STR_LIT>"])<EOL><DEDENT><DEDENT>return diff_snapshot<EOL>
Compare two snapshots:
        - return a list of new packages in this snapshot
        - return a list of new builds in this snapshot

        :param snapshot: distribution snapshot
        :type  snapshot: DistributionSnapshot