summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 390545a)
raw | patch | inline | side by side (parent: 390545a)
author | richard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
Fri, 9 May 2003 05:04:34 +0000 (05:04 +0000) | ||
committer | richard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2> | |
Fri, 9 May 2003 05:04:34 +0000 (05:04 +0000) |
git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@1706 57a73879-2fb5-44c3-a270-3262357dd7e2
MANIFEST.in | patch | blob | history | |
README.txt | patch | blob | history | |
demo.py | [new file with mode: 0644] | patch | blob |
doc/announcement.txt | patch | blob | history | |
doc/installation.txt | patch | blob | history | |
roundup/__init__.py | patch | blob | history | |
setup.py | patch | blob | history |
diff --git a/MANIFEST.in b/MANIFEST.in
index 26aa1a6cdf5c21f40b58006d210976ca5ade809b..42c1a3b3cdd7029422df940fb420a8900904f17a 100644 (file)
--- a/MANIFEST.in
+++ b/MANIFEST.in
recursive-exclude roundup *.pyc *.pyo .cvsignore
recursive-exclude frontends *.pyc *.pyo .cvsignore
recursive-exclude templates *.pyc *.pyo .cvsignore
-include run_tests *.txt
+include run_tests *.txt demo.py
exclude BUILD.txt I18N_PROGRESS.txt TODO.txt
exclude doc/security.txt doc/templating.txt
diff --git a/README.txt b/README.txt
index 7f539f3e28ffccc33c3685ddd1176217e0aa187e..64577860299cfb596ba0aa5434528b055ea0b9f9 100644 (file)
--- a/README.txt
+++ b/README.txt
The impatient may try Roundup immediately by typing at the console::
- python setup.py demo
+ python demo.py
+To start anew (a fresh demo instance)::
+
+ python demo.py nuke
Installation
============
diff --git a/demo.py b/demo.py
--- /dev/null
+++ b/demo.py
@@ -0,0 +1,98 @@
+#! /usr/bin/env python
+#
+# Copyright (c) 2003 Richard Jones (richard@mechanicalcat.net)
+#
+# $Id: demo.py,v 1.1 2003-05-09 05:04:33 richard Exp $
+
+import sys, os, string, re, urlparse
+import shutil, socket, errno, BaseHTTPServer
+from glob import glob
+
+def install_demo(home):
+ # create the instance
+ try:
+ shutil.rmtree(home)
+ except os.error, error:
+ if error.errno != errno.ENOENT:
+ raise
+ from roundup import init, instance, password
+ init.install(home, os.path.join('templates', 'classic'))
+ # don't have email flying around
+ os.remove(os.path.join(home, 'detectors', 'nosyreaction.py'))
+ init.write_select_db(home, 'anydbm')
+
+ # figure basic params for server
+ hostname = socket.gethostname()
+ # pick a fairly odd, random port
+ port = 8917
+ while 1:
+ print 'Trying to set up web server on port %d ...'%port,
+ s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+ try:
+ s.connect((hostname, port))
+ except socket.error, e:
+ if not hasattr(e, 'args') or e.args[0] != errno.ECONNREFUSED:
+ raise
+ print 'should be ok.'
+ break
+ else:
+ s.close()
+ print 'already in use.'
+ port += 100
+ url = 'http://%s:%s/demo/'%(hostname, port)
+
+ # write the config
+ f = open(os.path.join(home, 'config.py'), 'r')
+ s = f.read().replace('http://tracker.example/cgi-bin/roundup.cgi/bugs/',
+ url)
+ f.close()
+ f = open(os.path.join(home, 'config.py'), 'w')
+ f.write(s)
+ f.close()
+
+ # initialise the database
+ init.initialise(home, 'admin')
+
+ # add the "demo" user
+ tracker = instance.open(home)
+ db = tracker.open('admin')
+ db.user.create(username='demo', password=password.Password('demo'),
+ realname='Demo User', roles='User')
+ db.commit()
+ db.close()
+
+def run_demo():
+ ''' Run a demo server for users to play with for instant gratification.
+
+ Sets up the web service on localhost. Disables nosy lists.
+ '''
+ home = os.path.abspath('demo')
+ if not os.path.exists(home) or sys.argv[-1] == 'nuke':
+ install_demo(home)
+
+ f = open(os.path.join(home, 'config.py'), 'r')
+ url = re.search(r'^TRACKER_WEB\s*=\s*[\'"](http.+/)[\'"]$', f.read(),
+ re.M|re.I).group(1)
+ f.close()
+ hostname, port = urlparse.urlparse(url)[1].split(':')
+ port = int(port)
+
+ # ok, so start up the server
+ from roundup.scripts.roundup_server import RoundupRequestHandler
+ RoundupRequestHandler.TRACKER_HOMES = {'demo': home}
+ httpd = BaseHTTPServer.HTTPServer((hostname, port), RoundupRequestHandler)
+ print 'Server running - connect to:\n %s'%url
+ print '1. Log in as "demo"/"demo" or "admin"/"admin".'
+ print '2. Hit Control-C to stop the server.'
+ print '3. Re-start the server by running "python demo.py" again.'
+ print '4. Re-initialise the server by running "python demo.py nuke".'
+ try:
+ httpd.serve_forever()
+ except KeyboardInterrupt:
+ print 'Keyboard Interrupt: exiting'
+
+if __name__ == '__main__':
+ run_demo()
+
+# vim: set filetype=python ts=4 sw=4 et si
diff --git a/doc/announcement.txt b/doc/announcement.txt
index fd2f052dd00f8fd2dfd865930bef0e30583d9249..73b1883eef82cdfecfff8bf9453ae7321fb40e2b 100644 (file)
--- a/doc/announcement.txt
+++ b/doc/announcement.txt
-=================================================
-SC-Track Roundup 0.5.4 - an issue tracking system
-=================================================
+===================================================
+SC-Track Roundup 0.6.0b1 - an issue tracking system
+===================================================
-This is a bugfix release for version 0.5.x - if you're upgrading from before
-0.5, you *must* read doc/upgrading.txt!
+This is the first release of the new version of Roundup which contains a
+lot of new features. This release may contain bugs, so please run this using
+a backup of your production tracker. Always follow the "Software Upgrade"
+guidelines given in the maintenance documentation. If you're upgrading from
+an older version of Roundup you *must* read doc/upgrading.txt!
Unfortunately, the Zope frontend for Roundup is currently broken, with no
fix in the forseeable future.
-Roundup requires python 2.1.3 or later for correct operation. Users of the
-sqlite backend are encouraged to upgrade sqlite to version 2.7.3.
+Roundup requires python 2.1.3 or later for correct operation.
-We've had a good crack at bugs (thanks to all who contributed!):
+This release has all the bugfixes from the latest 0.5 maintnenance release
+plus lots of new goodies including:
-- key the templates cache off full path, not filename
-- implemented whole-database locking
-- hyperlinking of special text (url, email, item designator) in messages
-- fixed time default in date.py
-- fixed error in cgi/templates.py (sf bug 652089)
-- fixed handling of missing password (sf bug 655632)
-- applied patches for handling Outlook quirks (thanks Andrey Lebedev)
- (multipart/alternative, "fw" and content-type "name")
-- fire auditors and reactors in rdbms retire (thanks Sheila King)
-- better match for mailgw help "command" text
-- handle :add: better in cgi form parsing (sf bug 663235)
-- handle all-whitespace multilink values in forms (sf bug 663855)
-- fixed searching on date / interval fields (sf bug 658157)
-- fixed form elements names in search form to allow grouping and sorting
- on "creation" field
-- display of saved queries is now performed correctly
+- new instant-gratification Demo Mode ("python demo.py" :)
+- added mysql backend (see doc/mysql.txt for details)
+- web interface cleanups including nicer history display, nicer index
+ navigation and nicer popup list windows
+- searching of date ranges
+- better international support, including utf-8 email handling and ability
+ to display localized dates in web interface.
+- more documentation including revamped design document, unix manual pages
+ and some FAQ entries
+- significantly more powerful form handling allowing editing of multiple items
+ and creation of multiple items
+- tracker templates can contain subdirectories and static files (e.g. images)
+ and we may now distribute templates separately from Roundup. Template
+ HTML files now have a .html extension too.
+- user registration is now a two-step process, with confirmation from the email
+ address supplied in the registration form, and we also have a password reset
+ feature for forgotten password / login
+- Windows Service mode for roundup-server when daemonification is attempted
+ on Windows.
+- fixed issues with dumb email or web clients
+- lots more little tweaks and back-end work...
+- email system handles more SMTP and POP features (TLS, APOP, ...)
Source and documentation is available at the website:
http://roundup.sourceforge.net/
diff --git a/doc/installation.txt b/doc/installation.txt
index da4461003f882b92572032636854cd893fb80731..28f690b83c977de2e7b1950cc26e04a48538e939 100644 (file)
--- a/doc/installation.txt
+++ b/doc/installation.txt
Installing Roundup
==================
-:Version: $Revision: 1.49 $
+:Version: $Revision: 1.50 $
.. contents::
========================
If you just want to give Roundup a whirl Right Now, then simply run
-``python setup.py demo``. This will set up a simple demo tracker on your
+``python demo.py``. This will set up a simple demo tracker on your
machine. When it's done, it'll print out a URL to point your web browser
at so you may start playing. Three users will be set up:
diff --git a/roundup/__init__.py b/roundup/__init__.py
index 9eb351dd6c24320a8a668b322868d4a67c7a044d..27dbc317836c85fad7a3af18edd4addeddebad38 100644 (file)
--- a/roundup/__init__.py
+++ b/roundup/__init__.py
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-# $Id: __init__.py,v 1.21 2003-05-08 07:04:08 richard Exp $
+# $Id: __init__.py,v 1.22 2003-05-09 05:04:34 richard Exp $
''' Roundup - issue tracking for knowledge workers.
much prettier cake :)
'''
-__version__ = '0.6.0a1'
+__version__ = '0.6.0b1'
# vim: set filetype=python ts=4 sw=4 et si
diff --git a/setup.py b/setup.py
index 01ab61194bbfec4c6d6fa136330a20da92286023..9ebfc28088b48af096722ec6958526d9716c342a 100644 (file)
--- a/setup.py
+++ b/setup.py
# BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
#
-# $Id: setup.py,v 1.50 2003-04-25 02:09:20 richard Exp $
+# $Id: setup.py,v 1.51 2003-05-09 05:04:33 richard Exp $
from distutils.core import setup, Extension
from distutils.util import get_platform
data_files = installdatafiles
)
-def install_demo():
- ''' Install a demo server for users to play with for instant gratification.
-
- Sets up the web service on localhost port 8080. Disables nosy lists.
- '''
- import shutil, socket, errno, BaseHTTPServer
-
- # create the instance
- home = os.path.abspath('demo')
- try:
- shutil.rmtree(home)
- except os.error, error:
- if error.errno != errno.ENOENT:
- raise
- from roundup import init, instance, password
- init.install(home, os.path.join('templates', 'classic'))
- # don't have email flying around
- os.remove(os.path.join(home, 'detectors', 'nosyreaction.py'))
- init.write_select_db(home, 'anydbm')
-
- # figure basic params for server
- hostname = socket.gethostname()
- # pick a fairly odd, random port
- port = 8917
- while 1:
- print 'Trying to set up web server on port %d ...'%port,
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- try:
- s.connect((hostname, port))
- except socket.error, e:
- if not hasattr(e, 'args') or e.args[0] != errno.ECONNREFUSED:
- raise
- print 'should be ok.'
- break
- else:
- s.close()
- print 'already in use.'
- port += 100
- url = 'http://%s:%s/demo/'%(hostname, port)
-
- # write the config
- f = open(os.path.join(home, 'config.py'), 'r')
- s = f.read().replace('http://tracker.example/cgi-bin/roundup.cgi/bugs/',
- url)
- f.close()
- f = open(os.path.join(home, 'config.py'), 'w')
- f.write(s)
- f.close()
-
- # initialise the database
- init.initialise(home, 'admin')
-
- # add the "demo" user
- tracker = instance.open(home)
- db = tracker.open('admin')
- db.user.create(username='demo', password=password.Password('demo'),
- realname='Demo User', roles='User')
- db.commit()
- db.close()
-
- # ok, so start up the server
- from roundup.scripts.roundup_server import RoundupRequestHandler
- RoundupRequestHandler.TRACKER_HOMES = {'demo': home}
- httpd = BaseHTTPServer.HTTPServer((hostname, port), RoundupRequestHandler)
- print 'Server running - connect to:\n %s'%url
- print 'You may log in as "demo"/"demo" or "admin"/"admin".'
- print 'Hit Control-C to stop the server.'
- try:
- httpd.serve_forever()
- except KeyboardInterrupt:
- print 'Keyboard Interrupt: exiting'
-
if __name__ == '__main__':
- if len(sys.argv) > 1 and sys.argv[1] == 'demo':
- install_demo()
- else:
- main()
+ main()
# vim: set filetype=python ts=4 sw=4 et si