chiark / gitweb /
dgit-repos-server: Make $policy a global
[dgit.git] / infra / README.Debian-NEW
index 50112bf9be2c62868772ba09f548ef0db7f8fc10..da7fd59ed8be57904e55a239ea65ed9945915cff 100644 (file)
@@ -1,36 +1,27 @@
 
-let us assume that it is not possible for new to have a version older than sid
-
-
-Whenever pushing, check for
-  source-package-local tainted history
-  global tainted history
-  can be overridded by --deliberately except for an admin prohib taint
+======
 
-ALL of the following apply only if history is secret
+policy hooks:
 
-if NEW has a version which is in our history[1]
-  (on push only)
-  require explicit specification of one of
-    --deliberately-include-questionable-history
-    --deliberately-not-fast-forward
-      (will taint old NEW version --d-i-q-h)
-  (otherwise)
-  leave it be
+ - cron check thing
+     implement `(always)' above
+ - in dispatch, on check or push, during package selection
+     implement `(always)' above
 
-if NEW has no version, or a version which is not in our history[1]
-  (always)
-  check all suites
-  if any suite's version is in our history[1], publish our history
-  otherwise discard our history,
-    tainting --deliberately-include-questionable-history
+ - in dgit-repos-server, run policy hook after parsing tag
+      but before ff check; passing policy hook the deliberatelies
+      policy hook may:
+        - if appropriate blow away existing repo, copy old taints and add taints
+        - check taints
+        - fail if unused deliberatelies
+        - indicate to parent whether to disregard ff check
+        - remove taints which were overridden
 
-[1] looking for the relevant git tag for the version number and not
-   caring what that tag looks for
+on push encode --deliberately in tag as lines
+  [dgit --deliberately-blah]
 
 ======
 
-
 Want some invariants or properties
 
  - .dsc of published dgit package will have corresponding publicly