Update git-hooks notes with new vision for how git works.
[invirt/scripts/git-hooks.git] / notes
diff --git a/notes b/notes
index 0663e05..e02346e 100644 (file)
--- a/notes
+++ b/notes
@@ -1,20 +1,30 @@
 
 
-on commit to submodule:
+on push to submodule:
+  error on non-fast-forward
+  error on pushing tag
   zephyr
-  nothing else?
 
-superrepo heads are dev, prod
-on commit to superrepo:
-  for each changed submodule revision:
-    (as optimization: if same commit already in dev, just reprepro move)
-    try to build submodule
-    if fail, abort -- whole commit, probably; else
-    tag submodule with version
-    upload to dev/prod respectively
-  actually commit
-  zephyr
+superrepo heads are dev and prod
+on push to superrepo:
+  error - no pushes to superrepo
 
-This makes a long pre-receive process.  Is that cool?
-Probably is the right thing.
+on remctl xvm repo (dev|prod) package SHA-1:
+  use remctl ACLs to limit pushes to correct groups
+  verify that new version number is greater than previous
+  echo "(dev|prod) package SHA-1" > $build_queue/TIMESTAMP
 
+while build queue is not empty:
+  find min(os.listdir($build_queue))
+  (as optimization: if same commit already in dev, just reprepro move)
+  try to build submodule
+    if fail:
+      keep build around
+      send mail with log
+      zephyr
+  upload to apt repo
+  tag submodule with version
+  commit superrepo with updated submodule
+  clean up build files
+  zephyr
+  rm $build_queue file