+2008-04-22 Joerg Jaspert <joerg@debian.org>
+
+ * setup/init_pool.sql: added a function/aggregate for the release
+ team to base some script on it.
+
+ * config/debian/cron.daily: push katie@merkel to immediately start
+ the sync of projectb there.
+
+2008-04-21 Joerg Jaspert <joerg@debian.org>
+
+ * scripts/debian/expire_dumps: New script, expires old database
+ dumps, using a scheme to keep more of the recent dumps.
+
+ * config/debian/cron.daily: Use the new script. Also - compress
+ all files older than 7 days, instead of 30.
+
+ * dak/process_accepted.py (install): Do not break if a
+ source/maintainer combination is already in src_uploaders, "just"
+ warn us.
+
+2008-04-20 Thomas Viehmann <tviehmann@debian.org>
+
+ * daklib/utils.py (build_file_list): Deal with "Format 3 style"
+ Format lines (ie. those having extra text appended).
+
+2008-04-18 Joerg Jaspert <joerg@debian.org>
+
+ * config/debian/dak.conf: Add mapping stable-proposed-updates
+ -> proposed-updates.
+
+ * dak/transitions.py (load_transitions): Additionally check for
+ invalid package list indentation
+
+2008-04-17 Joerg Jaspert <joerg@debian.org>
+
+ * config/debian/dak.conf: Add TempPath statement for the Release
+ Transitions script
+
+ * dak/transitions.py (temp_transitions_file): Use the TempPath
+ (write_transitions_from_file): Check if the file we should get our
+ transitions from is in our TempPath, error out if it isnt
+ (main): Check for TempPath existance
+
+2008-04-12 James Troup <troup@debian.org>
+
+ * dak/clean_proposed_updates.py: add support for -s/--suite and
+ -n/--no-action.
+
+2008-04-11 Anthony Towns <ajt@debian.org>
+
+ * dak/utils.py: build_file_list() extra parameters so it can
+ build a file list for checksums-foo fields. Don't use float() to
+ compare formats, because Format: 1.10 should compare greater than
+ Format: 1.9 (use "1.9".split(".",1) and tuple comparison instead)
+
+ * dak/process_unchecked.py: check_md5sum becomes check_hashes
+ and check_hash. If changes format is 1.8 or later, also check
+ checksums-sha1 and checksums-sha256 for both .changes and .dsc,
+ and reject on presence/absence of un/expected checksums-* fields.
+
+2008-04-07 Joerg Jaspert <joerg@debian.org>
+
+ * daklib/utils.py (build_file_list): Check for dpkg .changes
+ adjusted to reject newer (and right now broken) 1.8 version, until
+ dpkg (or debsign) is fixed and doesn't produce invalid .changes anymore
+
+2008-03-22 Joerg Jaspert <joerg@debian.org>
+
+ * dak/transitions.py (load_transitions): Check if all our keys are
+ defined, if there are only keys defined we want and also the types
+ of the various keys.
+
+2008-03-22 Anthony Towns <ajt@debian.org>
+
+ * dak/edit_transitions.py: Add --import option.
+ Add --use-sudo option. Use fcntl locking for writing.
+ Move writing into a function (write_transitions).
+ Reinvoke self using sudo and --import if necessary.
+ Move temporary file creation into a function, use mkstemp.
+ Rename to "dak transitions".
+
+2008-03-21 Joerg Jaspert <joerg@debian.org>
+
+ * dak/edit_transitions.py (edit_transitions): Use sudo to copy the
+ edited file back in place
+ (check_transitions): Use proper locking and also use sudo to copy
+ the new file in place
+
+2008-03-21 Anthony Towns <ajt@debian.org>
+
+ * config/debian/extensions.py: Add infrastructure for replacing
+ functions in dak modules; add upload blocking for dpkg.
+
+2008-03-12 Joerg Jaspert <joerg@debian.org>
+
+ * dak/edit_transitions.py: Done a number of cleanups to make code
+ working. Also changed the way prompting/answering goes, to not
+ have to import daklib/queue.
+ (edit_transitions): When done with a successful edit - also print
+ a final overview about defined transitions
+
+2008-03-11 Joerg Jaspert <joerg@debian.org>
+
+ * dak/process_unchecked.py: Import syck module directly, not "from
+ syck import *"
+ (check_transition): Do the check for sourceful upload in here
+ Also adjust the syck loading commands, rename new_vers to
+ expected, curvers to current, to make it more clear what they mean.
+
+ * daklib/database.py (get_suite_version): Renamed from
+ get_testing_version. Also changed the cache variables name
+
+ * The above changes are based on modifications from Anthony.
+
+ * dak/dak.py (init): Renamed check -> edit transitions
+
+ * dak/edit_transitions.py: Renamed from check_transitions.py
+ (main): Also rename new_vers/curvers to expected/current
+ Basically a nice rewrite, so it now does checks and edit,
+ depending on how you call it. Check also removes old transitions,
+ if user wants it.
+
+2008-03-02 Joerg Jaspert <joerg@debian.org>
+
+ * debian/control (Suggests): Add python-syck to Depends:
+
+ * dak/dak.py (init): Tell it about check_transitions
+
+ * dak/check_transitions.py (usage): Added, checks the transitions
+ file (if any)
+
+ * daklib/database.py (get_testing_version): Added. Returns the
+ version for the source in testing, if any
+
+ * dak/process_unchecked.py (check_transition): Added. Checks if a
+ release team member defined a transition, and rejects based on
+ that data.
+ (process_it): Use it.
+ (check_transition): Warn on broken transitions file and return,
+ not doing anything.
+ (check_transition): Moved out of here, into daklib/queue
+ (process_it): Call check_transitions only if
+ changes[architecture] has source included.
+ (check_transition): Now call the database.get_testing_version
+
2008-02-09 Christoph Berg <myon@debian.org>
+ * daklib/queue.py (get_type): fubar does not exist in global
+ namespace.
+
+ * setup/add_constraints.sql setup/init_pool.sql: Add changedby column
+ to source table, and move src_uploaders after source so the REFERNCES
+ clause works.
+ * dak/process_accepted.py (install): Fill the changedby column from
+ the information found in the .changes. This will allow to identify
+ NMUs and sponsored uploads more precisely in tools querying projectb.
+ * scripts/debian/insert_missing_changedby.py: Script to import yet
+ missing fields from filippo's uploads-history DB.
+
2008-02-06 Joerg Jaspert <joerg@debian.org>
* daklib/utils.py (check_signature): Make variable key available,
maintainer = dsc["maintainer"]
maintainer = maintainer.replace("'", "\\'")
maintainer_id = daklib.database.get_or_set_maintainer_id(maintainer)
+ changedby = changes["changed-by"]
+ changedby = changedby.replace("'", "\\'")
+ changedby_id = daklib.database.get_or_set_maintainer_id(changedby)
fingerprint_id = daklib.database.get_or_set_fingerprint_id(dsc["fingerprint"])
install_date = time.strftime("%Y-%m-%d")
filename = files[file]["pool name"] + file
dsc_location_id = files[file]["location id"]
if not files[file].has_key("files id") or not files[file]["files id"]:
files[file]["files id"] = daklib.database.set_files_id (filename, files[file]["size"], files[file]["md5sum"], dsc_location_id)
- projectB.query("INSERT INTO source (source, version, maintainer, file, install_date, sig_fpr) VALUES ('%s', '%s', %d, %d, '%s', %s)"
- % (package, version, maintainer_id, files[file]["files id"], install_date, fingerprint_id))
+ projectB.query("INSERT INTO source (source, version, maintainer, changedby, file, install_date, sig_fpr) VALUES ('%s', '%s', %d, %d, %d, '%s', %s)"
+ % (package, version, maintainer_id, changedby_id, files[file]["files id"], install_date, fingerprint_id))
for suite in changes["distribution"].keys():
suite_id = daklib.database.get_suite_id(suite)
if dsc.get("dm-upload-allowed", "no") == "yes":
uploader_ids = [maintainer_id]
if dsc.has_key("uploaders"):
- for u in dsc["uploaders"].split(","):
- u = u.replace("'", "\\'")
- u = u.strip()
+ for u in dsc["uploaders"].split(","):
+ u = u.replace("'", "\\'")
+ u = u.strip()
uploader_ids.append(
- daklib.database.get_or_set_maintainer_id(u))
+ daklib.database.get_or_set_maintainer_id(u))
+ added_ids = {}
for u in uploader_ids:
+ if added_ids.has_key(u):
+ daklib.utils.warn("Already saw uploader %s for source %s" % (u, package))
+ continue
+ added_ids[u]=1
projectB.query("INSERT INTO src_uploaders (source, maintainer) VALUES (currval('source_id_seq'), %d)" % (u))
name TEXT UNIQUE NOT NULL
);
- CREATE TABLE src_uploaders (
- id SERIAL PRIMARY KEY,
- source INT4 NOT NULL REFERENCES source,
- maintainer INT4 NOT NULL REFERENCES maintainer
- );
-
CREATE TABLE uid (
id SERIAL PRIMARY KEY,
uid TEXT UNIQUE NOT NULL,
source TEXT NOT NULL,
version TEXT NOT NULL,
maintainer INT4 NOT NULL, -- REFERENCES maintainer
+ changedby INT4 NOT NULL, -- REFERENCES maintainer
file INT4 UNIQUE NOT NULL, -- REFERENCES files
install_date TIMESTAMP NOT NULL,
sig_fpr INT4 NOT NULL, -- REFERENCES fingerprint
unique (source, version)
);
+ CREATE TABLE src_uploaders (
+ id SERIAL PRIMARY KEY,
+ source INT4 NOT NULL REFERENCES source,
+ maintainer INT4 NOT NULL REFERENCES maintainer
+ );
+
CREATE TABLE dsc_files (
id SERIAL PRIMARY KEY,
source INT4 NOT NULL, -- REFERENCES source,
CREATE INDEX binaries_fingerprint on binaries (sig_fpr);
CREATE INDEX source_fingerprint on source (sig_fpr);
CREATE INDEX dsc_files_file ON dsc_files (file);
+
+-- Own function
+CREATE FUNCTION space_concat(text, text) RETURNS text
+ AS $_$select case
+WHEN $2 is null or $2 = '' THEN $1
+WHEN $1 is null or $1 = '' THEN $2
+ELSE $1 || ' ' || $2
+END$_$
+ LANGUAGE sql;
+
+CREATE AGGREGATE space_separated_list (
+ BASETYPE = text,
+ SFUNC = space_concat,
+ STYPE = text,
+ INITCOND = ''
+);