From c75c7236cdc6c6cbcd1dbd4c85e2db54f27160b2 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sat, 12 Apr 2008 02:53:50 -0500
Subject: [PATCH 1/8] builder.util: remove old code

---
 extra/builder/util/util.factor | 15 ---------------
 1 file changed, 15 deletions(-)

diff --git a/extra/builder/util/util.factor b/extra/builder/util/util.factor
index 92b9af41ef..629a713ad9 100644
--- a/extra/builder/util/util.factor
+++ b/extra/builder/util/util.factor
@@ -40,21 +40,6 @@ DEFER: to-strings
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-! TUPLE: process* arguments stdin stdout stderr timeout ;
-
-! : <process*> process* construct-empty ;
-
-! : >desc ( process* -- desc )
-!   H{ } clone
-!     over arguments>> [ +arguments+ swap put-at ] when*
-!     over stdin>>     [ +stdin+     swap put-at ] when*
-!     over stdout>>    [ +stdout+    swap put-at ] when*
-!     over stderr>>    [ +stderr+    swap put-at ] when*
-!     over timeout>>   [ +timeout+   swap put-at ] when*
-!   nip ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
 : host-name* ( -- name ) host-name "." split first ;
 
 : datestamp ( -- string )

From 925750431e65b5ee391f21e5debe6db8329817a9 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sat, 12 Apr 2008 03:08:28 -0500
Subject: [PATCH 2/8] builder: move some words to builder.util

---
 extra/builder/release/release.factor | 61 ++++++++++++++++++++--------
 extra/builder/util/util.factor       |  5 ++-
 2 files changed, 49 insertions(+), 17 deletions(-)

diff --git a/extra/builder/release/release.factor b/extra/builder/release/release.factor
index 9b449a51c5..665342085b 100644
--- a/extra/builder/release/release.factor
+++ b/extra/builder/release/release.factor
@@ -1,6 +1,6 @@
 
 USING: kernel system namespaces sequences splitting combinators
-       io io.files io.launcher prettyprint
+       io io.files io.launcher prettyprint bootstrap.image
        bake combinators.cleave builder.common builder.util ;
 
 IN: builder.release
@@ -33,10 +33,6 @@ IN: builder.release
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: cpu- ( -- cpu ) cpu unparse "." split "-" join ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
 : base-name ( -- string )
   { "factor" [ os unparse ] cpu- stamp> } to-strings "-" join ;
 
@@ -89,8 +85,6 @@ IN: builder.release
 
 SYMBOL: upload-to-factorcode
 
-: platform ( -- string ) { [ os unparse ] cpu- } to-strings "-" join ;
-
 : remote-location ( -- dest )
   "factorcode.org:/var/www/factorcode.org/newsite/downloads"
   platform
@@ -101,24 +95,59 @@ SYMBOL: upload-to-factorcode
   [ "Error uploading binary to factorcode" print ]
   run-or-bail ;
 
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
 : maybe-upload ( -- )
   upload-to-factorcode get
     [ upload ]
   when ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! update-clean-branch
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-! : release ( -- )
-!   "factor"
-!     [
-!       remove-factor-app
-!       remove-common-files
-!     ]
-!   with-directory
-!   make-archive
-!   archive-name releases move-file-into ;
+: branch-name ( -- string )
+  { "clean" [ os unparse ] cpu- } to-strings "-" join ;
+
+: refspec ( -- string ) "master:" branch-name append ;
+
+: push-to-clean-branch ( -- )
+  { "git" "push" "factorcode.org:/git/factor.git" refspec }
+  to-strings
+  try-process ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: upload-clean-image ( -- )
+  {
+    "scp"
+    my-boot-image-name
+    "factorcode.org:/var/www/factorcode.org/newsite/images/clean"
+  }
+  to-strings
+  try-process ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: update-clean-branch ( -- )
+  "factor"
+    [
+      push-to-clean-branch
+      upload-clean-image
+    ]
+  with-directory ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: maybe-update-clean-branch ( -- )
+  upload-to-factorcode get
+    [ update-clean-branch ]
+  when ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 : release ( -- )
+  maybe-update-clean-branch
   "factor"
     [
       remove-factor-app
diff --git a/extra/builder/util/util.factor b/extra/builder/util/util.factor
index 629a713ad9..e80d83e24c 100644
--- a/extra/builder/util/util.factor
+++ b/extra/builder/util/util.factor
@@ -2,6 +2,7 @@
 USING: kernel words namespaces classes parser continuations
        io io.files io.launcher io.sockets
        math math.parser
+       system
        combinators sequences splitting quotations arrays strings tools.time
        sequences.deep accessors assocs.lib
        io.encodings.utf8
@@ -94,4 +95,6 @@ USE: prettyprint
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: failsafe ( quot -- ) [ drop ] recover ;
+: cpu- ( -- cpu ) cpu unparse "." split "-" join ;
+
+: platform ( -- string ) { [ os unparse ] cpu- } to-strings "-" join ;
\ No newline at end of file

From 0272bff08d0dc4c22d342056437624e42a96ea22 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sat, 12 Apr 2008 03:14:26 -0500
Subject: [PATCH 3/8] builder: Factor code into builder.release.archive

---
 extra/builder/release/archive/archive.factor | 49 ++++++++++++++++++++
 extra/builder/release/release.factor         | 47 ++-----------------
 2 files changed, 53 insertions(+), 43 deletions(-)
 create mode 100644 extra/builder/release/archive/archive.factor

diff --git a/extra/builder/release/archive/archive.factor b/extra/builder/release/archive/archive.factor
new file mode 100644
index 0000000000..fa16c34a26
--- /dev/null
+++ b/extra/builder/release/archive/archive.factor
@@ -0,0 +1,49 @@
+
+USING: combinators system sequences io.launcher prettyprint
+       builder.util
+       builder.common ;
+
+IN: builder.release.archive
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: base-name ( -- string )
+  { "factor" [ os unparse ] cpu- stamp> } to-strings "-" join ;
+
+: extension ( -- extension )
+  {
+    { [ os winnt?  ] [ ".zip"    ] }  
+    { [ os macosx? ] [ ".dmg"    ] }
+    { [ os unix?   ] [ ".tar.gz" ] }
+  }
+  cond ;
+
+: archive-name ( -- string ) base-name extension append ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: windows-archive-cmd ( -- cmd ) { "zip" "-r" archive-name "factor" } ;
+
+: macosx-archive-cmd ( -- cmd )
+  { "hdiutil" "create"
+              "-srcfolder" "factor"
+              "-fs" "HFS+"
+              "-volname" "factor"
+              archive-name } ;
+
+: unix-archive-cmd ( -- cmd ) { "tar" "-cvzf" archive-name "factor" } ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: archive-cmd ( -- cmd )
+  {
+    { [ os windows? ] [ windows-archive-cmd ] }
+    { [ os macosx?  ] [ macosx-archive-cmd  ] }
+    { [ os unix?    ] [ unix-archive-cmd    ] }
+  }
+  cond ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: make-archive ( -- ) archive-cmd to-strings try-process ;
+
diff --git a/extra/builder/release/release.factor b/extra/builder/release/release.factor
index 665342085b..2aefb08d39 100644
--- a/extra/builder/release/release.factor
+++ b/extra/builder/release/release.factor
@@ -1,7 +1,10 @@
 
 USING: kernel system namespaces sequences splitting combinators
        io io.files io.launcher prettyprint bootstrap.image
-       bake combinators.cleave builder.common builder.util ;
+       bake combinators.cleave
+       builder.util
+       builder.common
+       builder.release.archive ;
 
 IN: builder.release
 
@@ -33,48 +36,6 @@ IN: builder.release
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: base-name ( -- string )
-  { "factor" [ os unparse ] cpu- stamp> } to-strings "-" join ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: extension ( -- extension )
-  {
-    { [ os winnt?  ] [ ".zip"    ] }  
-    { [ os macosx? ] [ ".dmg"    ] }
-    { [ os unix?   ] [ ".tar.gz" ] }
-  }
-  cond ;
-
-: archive-name ( -- string ) base-name extension append ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: windows-archive-cmd ( -- cmd ) { "zip" "-r" archive-name "factor" } ;
-
-: macosx-archive-cmd ( -- cmd )
-  { "hdiutil" "create"
-              "-srcfolder" "factor"
-              "-fs" "HFS+"
-              "-volname" "factor"
-              archive-name } ;
-
-: unix-archive-cmd ( -- cmd ) { "tar" "-cvzf" archive-name "factor" } ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: archive-cmd ( -- cmd )
-  {
-    { [ os windows? ] [ windows-archive-cmd ] }
-    { [ os macosx?  ] [ macosx-archive-cmd  ] }
-    { [ os unix?    ] [ unix-archive-cmd    ] }
-  }
-  cond ;
-
-: make-archive ( -- ) archive-cmd to-strings try-process ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
 : remove-common-files ( -- )
   { "rm" "-rf" common-files } to-strings try-process ;
 

From 51faf8e3371d0a1d8d58b2c260b2fc4d8158dcf1 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sat, 12 Apr 2008 04:10:04 -0500
Subject: [PATCH 4/8] builder.release: refactor

---
 extra/builder/release/branch/branch.factor | 34 ++++++++++++++++++++++
 extra/builder/release/tidy/tidy.factor     | 29 ++++++++++++++++++
 extra/builder/release/upload/upload.factor | 24 +++++++++++++++
 3 files changed, 87 insertions(+)
 create mode 100644 extra/builder/release/branch/branch.factor
 create mode 100644 extra/builder/release/tidy/tidy.factor
 create mode 100644 extra/builder/release/upload/upload.factor

diff --git a/extra/builder/release/branch/branch.factor b/extra/builder/release/branch/branch.factor
new file mode 100644
index 0000000000..7537d5bcf9
--- /dev/null
+++ b/extra/builder/release/branch/branch.factor
@@ -0,0 +1,34 @@
+
+USING: system sequences prettyprint io.files io.launcher bootstrap.image
+       builder.util ;
+
+IN: builder.release.branch
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: branch-name ( -- string ) "clean-" platform append ;
+
+: refspec ( -- string ) "master:" branch-name append ;
+
+: push-to-clean-branch ( -- )
+  { "git" "push" "factorcode.org:/git/factor.git" refspec }
+  to-strings
+  try-process ;
+
+: upload-clean-image ( -- )
+  {
+    "scp"
+    my-boot-image-name
+    "factorcode.org:/var/www/factorcode.org/newsite/images/clean"
+  }
+  to-strings
+  try-process ;
+
+: update-clean-branch ( -- )
+  "factor"
+    [
+      push-to-clean-branch
+      upload-clean-image
+    ]
+  with-directory ;
+
diff --git a/extra/builder/release/tidy/tidy.factor b/extra/builder/release/tidy/tidy.factor
new file mode 100644
index 0000000000..f8f27e75f2
--- /dev/null
+++ b/extra/builder/release/tidy/tidy.factor
@@ -0,0 +1,29 @@
+
+USING: kernel system io.files io.launcher builder.util ;
+
+IN: builder.release.tidy
+
+: common-files ( -- seq )
+  {
+    "boot.x86.32.image"
+    "boot.x86.64.image"
+    "boot.macosx-ppc.image"
+    "boot.linux-ppc.image"
+    "vm"
+    "temp"
+    "logs"
+    ".git"
+    ".gitignore"
+    "Makefile"
+    "unmaintained"
+    "build-support"
+  } ;
+
+: remove-common-files ( -- )
+  { "rm" "-rf" common-files } to-strings try-process ;
+
+: remove-factor-app ( -- )
+  os macosx? not [ { "rm" "-rf" "Factor.app" } try-process ] when ;
+
+: tidy ( -- )
+  "factor" [ remove-factor-app remove-common-files ] with-directory ;
diff --git a/extra/builder/release/upload/upload.factor b/extra/builder/release/upload/upload.factor
new file mode 100644
index 0000000000..38f6dcb133
--- /dev/null
+++ b/extra/builder/release/upload/upload.factor
@@ -0,0 +1,24 @@
+
+USING: kernel namespaces io io.files
+       builder.util
+       builder.common
+       builder.release.archive ;
+
+IN: builder.release.upload
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: remote-location ( -- dest )
+  "factorcode.org:/var/www/factorcode.org/newsite/downloads"
+  platform
+  append-path ;
+
+: (upload) ( -- )
+  { "scp" archive-name remote-location } to-strings
+  [ "Error uploading binary to factorcode" print ]
+  run-or-bail ;
+
+: upload ( -- )
+  upload-to-factorcode get
+    [ (upload) ]
+  when ;

From 61de92031632068d4f42a6e2b514923f2d78b3c0 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sat, 12 Apr 2008 04:12:07 -0500
Subject: [PATCH 5/8] builder.release: more refactoring

---
 extra/builder/common/common.factor           |   1 +
 extra/builder/release/archive/archive.factor |  11 +-
 extra/builder/release/branch/branch.factor   |  12 +-
 extra/builder/release/release.factor         | 132 ++-----------------
 4 files changed, 32 insertions(+), 124 deletions(-)

diff --git a/extra/builder/common/common.factor b/extra/builder/common/common.factor
index 6ebe1d625a..2fe2aa06ab 100644
--- a/extra/builder/common/common.factor
+++ b/extra/builder/common/common.factor
@@ -16,3 +16,4 @@ SYMBOL: builds-dir
 
 VAR: stamp
 
+SYMBOL: upload-to-factorcode
\ No newline at end of file
diff --git a/extra/builder/release/archive/archive.factor b/extra/builder/release/archive/archive.factor
index fa16c34a26..9b239da586 100644
--- a/extra/builder/release/archive/archive.factor
+++ b/extra/builder/release/archive/archive.factor
@@ -1,5 +1,5 @@
 
-USING: combinators system sequences io.launcher prettyprint
+USING: kernel combinators system sequences io.files io.launcher prettyprint
        builder.util
        builder.common ;
 
@@ -47,3 +47,12 @@ IN: builder.release.archive
 
 : make-archive ( -- ) archive-cmd to-strings try-process ;
 
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+: releases ( -- path )
+  builds "releases" append-path
+  dup exists? not
+    [ dup make-directory ]
+  when ;
+
+: save-archive ( -- ) archive-name releases move-file-into ;
\ No newline at end of file
diff --git a/extra/builder/release/branch/branch.factor b/extra/builder/release/branch/branch.factor
index 7537d5bcf9..838a74394b 100644
--- a/extra/builder/release/branch/branch.factor
+++ b/extra/builder/release/branch/branch.factor
@@ -1,6 +1,8 @@
 
-USING: system sequences prettyprint io.files io.launcher bootstrap.image
-       builder.util ;
+USING: kernel system namespaces sequences prettyprint io.files io.launcher
+       bootstrap.image
+       builder.util
+       builder.common ;
 
 IN: builder.release.branch
 
@@ -24,7 +26,7 @@ IN: builder.release.branch
   to-strings
   try-process ;
 
-: update-clean-branch ( -- )
+: (update-clean-branch) ( -- )
   "factor"
     [
       push-to-clean-branch
@@ -32,3 +34,7 @@ IN: builder.release.branch
     ]
   with-directory ;
 
+: update-clean-branch ( -- )
+  upload-to-factorcode get
+    [ update-clean-branch ]
+  when ;
diff --git a/extra/builder/release/release.factor b/extra/builder/release/release.factor
index 2aefb08d39..33e5edfbf9 100644
--- a/extra/builder/release/release.factor
+++ b/extra/builder/release/release.factor
@@ -4,131 +4,23 @@ USING: kernel system namespaces sequences splitting combinators
        bake combinators.cleave
        builder.util
        builder.common
-       builder.release.archive ;
+       builder.release.branch
+       builder.release.tidy
+       builder.release.archive
+       builder.release.upload ;
 
 IN: builder.release
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: releases ( -- path )
-  builds "releases" append-path
-  dup exists? not
-    [ dup make-directory ]
-  when ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: common-files ( -- seq )
-  {
-    "boot.x86.32.image"
-    "boot.x86.64.image"
-    "boot.macosx-ppc.image"
-    "boot.linux-ppc.image"
-    "vm"
-    "temp"
-    "logs"
-    ".git"
-    ".gitignore"
-    "Makefile"
-    "unmaintained"
-    "build-support"
-  } ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: remove-common-files ( -- )
-  { "rm" "-rf" common-files } to-strings try-process ;
-
-: remove-factor-app ( -- )
-  os macosx? not [ { "rm" "-rf" "Factor.app" } try-process ] when ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-SYMBOL: upload-to-factorcode
-
-: remote-location ( -- dest )
-  "factorcode.org:/var/www/factorcode.org/newsite/downloads"
-  platform
-  append-path ;
-    
-: upload ( -- )
-  { "scp" archive-name remote-location } to-strings
-  [ "Error uploading binary to factorcode" print ]
-  run-or-bail ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: maybe-upload ( -- )
-  upload-to-factorcode get
-    [ upload ]
-  when ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-! update-clean-branch
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: branch-name ( -- string )
-  { "clean" [ os unparse ] cpu- } to-strings "-" join ;
-
-: refspec ( -- string ) "master:" branch-name append ;
-
-: push-to-clean-branch ( -- )
-  { "git" "push" "factorcode.org:/git/factor.git" refspec }
-  to-strings
-  try-process ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: upload-clean-image ( -- )
-  {
-    "scp"
-    my-boot-image-name
-    "factorcode.org:/var/www/factorcode.org/newsite/images/clean"
-  }
-  to-strings
-  try-process ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: update-clean-branch ( -- )
-  "factor"
-    [
-      push-to-clean-branch
-      upload-clean-image
-    ]
-  with-directory ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: maybe-update-clean-branch ( -- )
-  upload-to-factorcode get
-    [ update-clean-branch ]
-  when ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: release ( -- )
-  maybe-update-clean-branch
-  "factor"
-    [
-      remove-factor-app
-      remove-common-files
-    ]
-  with-directory
+: (release) ( -- )
+  update-clean-branch
+  tidy
   make-archive
-  maybe-upload
-  archive-name releases move-file-into ;
+  upload
+  save-archive ;
 
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+: clean-build? ( -- ? )
+  { "load-everything-vocabs" "test-all-vocabs" } [ eval-file empty? ] all? ;
 
-: release? ( -- ? )
-  {
-    "./load-everything-vocabs"
-    "./test-all-vocabs"
-  }
-    [ eval-file empty? ]
-  all? ;
-
-! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-: maybe-release ( -- ) release? [ release ] when ;
\ No newline at end of file
+: release ( -- ) clean-build? [ (release) ] when ;
\ No newline at end of file

From ba6b92e38a006da7c7f0663c943918056102752c Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sat, 12 Apr 2008 04:13:03 -0500
Subject: [PATCH 6/8] Add bubble-chamber-docs

---
 .../bubble-chamber/bubble-chamber-docs.factor | 102 ++++++++++++++++++
 1 file changed, 102 insertions(+)
 create mode 100644 extra/bubble-chamber/bubble-chamber-docs.factor

diff --git a/extra/bubble-chamber/bubble-chamber-docs.factor b/extra/bubble-chamber/bubble-chamber-docs.factor
new file mode 100644
index 0000000000..47331efd7e
--- /dev/null
+++ b/extra/bubble-chamber/bubble-chamber-docs.factor
@@ -0,0 +1,102 @@
+
+USING: help.syntax help.markup ;
+
+USING: bubble-chamber.particle.muon
+       bubble-chamber.particle.quark
+       bubble-chamber.particle.hadron
+       bubble-chamber.particle.axion ;
+
+IN: bubble-chamber
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+HELP: muon
+
+  { $class-description
+    "The muon is a colorful particle with an entangled friend."
+    "It draws both itself and its horizontally symmetric partner."
+    "A high range of speed and almost no speed decay allow the"
+    "muon to reach the extents of the window, often forming rings"
+    "where theta has decayed but speed remains stable. The result"
+    "is color almost everywhere in the general direction of collision,"
+    "stabilized into fuzzy rings." } ;
+
+HELP: quark
+
+  { $class-description
+    "The quark draws as a translucent black. Their large numbers"
+    "create fields of blackness overwritten only by the glowing shadows of "
+    "Hadrons. "
+    "quarks are allowed to accelerate away with speed decay values above 1.0. "
+    "Each quark has an entangled friend. Both particles are drawn identically,"
+    "mirrored along the y-axis." } ;
+
+HELP: hadron
+
+  { $class-description
+    "Hadrons collide from totally random directions. "
+    "Those hadrons that do not exit the drawing area, "
+    "tend to stabilize into perfect circular orbits. "
+    "Each hadron draws with a slight glowing emboss. "
+    "The hadron itself is not drawn." } ;
+
+HELP: axion
+
+  { $class-description
+    "The axion particle draws a bold black path. Axions exist "
+    "in a slightly higher dimension and as such are drawn with "
+    "elevated embossed shadows. Axions are quick to stabilize "
+    "and fall into single pixel orbits axions automatically "
+    "recollide themselves after stabilizing." } ;
+
+{ muon quark hadron axion } related-words
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+ARTICLE: "bubble-chamber" "Bubble Chamber"
+
+  { $subsection "bubble-chamber-introduction" }
+  { $subsection "bubble-chamber-particles" }
+  { $subsection "bubble-chamber-author" }
+  { $subsection "bubble-chamber-running" } ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+ARTICLE: "bubble-chamber-introduction" "Introduction"
+
+"The Bubble Chamber is a generative painting system of imaginary "
+"colliding particles. A single super-massive collision produces a "
+"discrete universe of four particle types. Particles draw their "
+"positions over time as pixel exposures. " ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+ARTICLE: "bubble-chamber-particles" "Particles"
+
+"Four types of particles exist. The behavior and graphic appearance of "
+"each particle type is unique."
+
+  { $subsection muon }
+  { $subsection quark }
+  { $subsection hadron }
+  { $subsection axion } ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+ARTICLE: "bubble-chamber-author" "Author"
+
+  "Bubble Chamber was created by Jared Tarbell. "
+  "It was originally implemented in Processing. "
+  "It was ported to Factor by Eduardo Cavazos. "
+  "The original work is on display here: "
+  { $url
+  "http://www.complexification.net/gallery/machines/bubblechamber/" } ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+ARTICLE: "bubble-chamber-running" "How to use"
+
+  "After you run the vocabulary, a window will appear. Click the "
+  "mouse in a random area to fire 11 particles of each type. "
+  "Another way to fire particles is to press the "
+  "spacebar. This fires all the particles." ;
\ No newline at end of file

From ff69bcd98e41c56d1335ec5c6eeab350f281aad2 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sat, 12 Apr 2008 04:14:20 -0500
Subject: [PATCH 7/8] newfx: minor addition

---
 extra/newfx/newfx.factor | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/extra/newfx/newfx.factor b/extra/newfx/newfx.factor
index 3df3b3ed05..6a191f0e07 100644
--- a/extra/newfx/newfx.factor
+++ b/extra/newfx/newfx.factor
@@ -74,6 +74,10 @@ METHOD: mutate-as { sequence object  number }      rot set-nth ;
 METHOD: at-mutate { number object  sequence } swapd set-nth ;
 METHOD: as-mutate { object  number sequence }       set-nth ;
 
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+
+
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 ! assoc
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

From 28a1573d8e2f67a47a2bc4358c00a2766d3e33d2 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sat, 12 Apr 2008 05:44:25 -0500
Subject: [PATCH 8/8] builder: minor fix

---
 extra/builder/builder.factor | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/extra/builder/builder.factor b/extra/builder/builder.factor
index 0e3a794e24..d81b934f2c 100644
--- a/extra/builder/builder.factor
+++ b/extra/builder/builder.factor
@@ -166,7 +166,7 @@ SYMBOL: build-status
 
       "benchmarks" ".." copy-file-into
 
-      maybe-release
+      release
     ]
   with-file-writer