[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[minion-cvs] Add support for automatically setting __version__



Update of /home/minion/cvsroot/src/minion
In directory moria.mit.edu:/tmp/cvs-serv23464

Modified Files:
	TODO setup.py 
Log Message:
Add support for automatically setting __version__

Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- TODO	3 Jan 2003 08:29:24 -0000	1.48
+++ TODO	3 Jan 2003 15:56:30 -0000	1.49
@@ -13,6 +13,7 @@
     user-visible improvements to address the most glaring defects in 0.0.1.]
 
 	!- Real SMTP module
+		- Exit filtering support
 	- Interface for reply blocks
 	. Minimal directory support
 		o Make everything resistant to newline corruption
@@ -73,14 +74,13 @@
 	!- History.
 	!- Triage XXXX'S for 002.
 	. Document everything
-	- Make __version__ get set automatically, from only one place.
+	o Make __version__ get set automatically, from only one place.
 	- Write a "whatsnew".
 
 Required for "1.0":
 	 [These features must be in place before we can take the system out
           of alpha.  We'll do a series of point releases between 0.0.1 and
-          the first beta.  The first three priorities are: replies,
-  	  DOS-prevention, and directories.]
+          the first beta.]
 
 	- Better CLIs
 		- Actual strategy for reporting exceptions vs
@@ -105,12 +105,12 @@
 			- Use async or threading to cope with blocking MTAs
 			- Full config validation
 			- Full boilerplate text
+		- Use ESMTP
 		- Move boilerplate into outside files.  Add a generic
 		  'Boilerplate' functionality.
 		- Tell ModuleManager about async code
 		- Real SMTP module
 			- Abuse prevention
-			- Exit filtering support
 			- Support for setting 'Subject' and 'From' lines.
 			- Support multiple exit addresses.
 		- Incoming email gateway
@@ -144,19 +144,19 @@
 		- Read message from reply block
 		- Check paths before reading from stdin.
 		- Path selection
-		        - Automatic path selection
+		        o Automatic path selection
 			. Understand differing server features
 			- Watch out for servers that are really the
 			  same server
-			- Notice servers that don't support MMTP, or
+			o Notice servers that don't support MMTP, or
 			  don't relay.
 			- Notice Allow/Deny.
-			- Ability to specify only last hop.
+			o Ability to specify only last hop.
 		- Reply to reply block
 		- Examine reply block
 		- Send message to user with known key
-		. Send message to user with known server
-		- Real server directory management
+		o Send message to user with known server
+		o Real server directory management
 		- Real PKI
 	        - Queue a bunch of messages at the client level.
 		- Client-side pooling
@@ -175,12 +175,12 @@
 			- Bad recipients
 			- Hunt down leaks
 	- Build and install process
-	  	- The version string should be given in only one place
+	  	o The version string should be given in only one place
 		o Use sane arguments when testing with multiple python versions
 		o Get SSL as needed
-		- Well-tested 'make install'
+		. Well-tested 'make install'
 		- RPMS, debs, and so on
-		- Make sure we run on solaris and *BSD.
+		. Make sure we run on solaris and *BSD.
 		- "Somebody" should do a Windows port of the client code
 		- An init.d script.
 	- Protocol support

Index: setup.py
===================================================================
RCS file: /home/minion/cvsroot/src/minion/setup.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- setup.py	3 Jan 2003 05:14:47 -0000	1.20
+++ setup.py	3 Jan 2003 15:56:30 -0000	1.21
@@ -18,7 +18,7 @@
     print "Zlib support seems to be missing; install python with zlib support."
     sys.exit(0)
 
-import os, struct, shutil
+import os, re, struct, shutil
 
 VERSION= '0.0.2a0'
 
@@ -38,6 +38,19 @@
 MACROS=[]
 MODULES=[]
 
+#======================================================================
+# Check the version of Python in the source.
+
+f = open("lib/mixminion/__init__.py", 'r')
+initFile = f.read()
+f.close()
+initCorrected = re.compile(r'^__version__\s*=.*$', re.M).sub(
+    '__version__ = \"%s\"'%VERSION, initFile)
+if initCorrected != initFile:
+    f = open("lib/mixminion/__init__.py", 'w')
+    f.write(initCorrected)
+    f.close()
+    
 #======================================================================
 # Install unittest if python doesn't provide it. (This is a 2.0 issue)
 try: