浏览代码

- Moved 2.X change log entries into ``HISTORY.txt``.

- Converted ``CHANGES.txt`` and ``README.txt`` into proper ReStructuredText
  and included them in the ``long_description`` in ``setup.py``.
Chris McDonough 14 年之前
父节点
当前提交
5de67d8915
共有 4 个文件被更改,包括 988 次插入1042 次删除
  1. 844 951
      CHANGES.txt
  2. 107 0
      HISTORY.txt
  3. 28 88
      README.txt
  4. 9 3
      setup.py

文件差异内容过多而无法显示
+ 844 - 951
CHANGES.txt


+ 107 - 0
HISTORY.txt

@@ -0,0 +1,107 @@
+2.2b1 (2007-03-31)
+
+  - Individual program configuration sections can now specify an
+    environment.
+
+  - Added a 'version' command to supervisorctl.  This returns the
+    version of the supervisor2 package which the remote supervisord
+    process is using.
+
+2.1 (2007-03-17)
+
+  - When supervisord was invoked more than once, and its configuration
+    was set up to use a UNIX domain socket as the HTTP server, the
+    socket file would be erased in error.  The symptom of this was
+    that a subsequent invocation of supervisorctl could not find the
+    socket file, so the process could not be controlled (it and all of
+    its subprocesses would need to be killed by hand).
+
+  - Close subprocess file descriptors properly when a subprocess exits
+    or otherwise dies.  This should result in fewer "too many open
+    files to spawn foo" messages when supervisor is left up for long
+    periods of time.
+
+  - When a process was not killable with a "normal" signal at shutdown
+    time, too many "INFO: waiting for x to die" messages would be sent
+    to the log until we ended up killing the process with a SIGKILL.
+    Now a maximum of one every three seconds is sent up until SIGKILL
+    time.  Thanks to Ian Bicking.
+
+  - Add an assertion: we never want to try to marshal None to XML-RPC
+    callers.  Issue 223 in the collector from vgatto indicates that
+    somehow a supervisor XML-RPC method is returning None (which
+    should never happen), but I cannot identify how.  Maybe the
+    assertion will give us more clues if it happens again.
+
+  - Supervisor would crash when run under Python 2.5 because the
+    xmlrpclib.Transport class in Python 2.5 changed in a
+    backward-incompatible way.  Thanks to Eric Westra for the bug
+    report and a fix.
+
+  - Tests now pass under Python 2.5.
+
+  - Better supervisorctl reporting on stop requests that have a FAILED
+    status.
+
+  - Removed duplicated code (readLog/readMainLog), thanks to Mike
+    Naberezny.
+
+  - Added tailProcessLog command to the XML-RPC API.  It provides a
+    more efficient way to tail logs than readProcessLog().  Use
+    readProcessLog() to read chunks and tailProcessLog() to tail.
+    (thanks to Mike Naberezny).
+
+2.1b1 (2006-08-30)
+
+  - "supervisord -h" and "supervisorctl -h" did not work (traceback
+    instead of showing help view (thanks to Damjan from Macedonia for
+    the bug report).
+
+  - Processes which started successfully after failing to start
+    initially are no longer reported in BACKOFF state once they are
+    started successfully (thanks to Damjan from Macdonia for the bug
+    report).
+
+  - Add new 'maintail' command to supervisorctl shell, which allows
+    you to tail the 'main' supervisor log.  This uses a new
+    readMainLog xmlrpc API.
+
+  - Various process-state-transition related changes, all internal.
+    README.txt updated with new state transition map.
+
+  - startProcess and startAllProcesses xmlrpc APIs changed: instead of
+    accepting a timeout integer, these accept a wait boolean (timeout
+    is implied by process' "startsecs" configuration).  If wait is
+    False, do not wait for startsecs.
+
+  Known issues:
+
+    Code does not match state transition map.  Processes which are
+    configured as autorestarting which start "successfully" but
+    subsequently die after 'startsecs' go through the transitions
+    RUNNING -> BACKOFF -> STARTING instead of the correct transitions
+    RUNNING -> EXITED -> STARTING.  This has no real negative effect,
+    but should be fixed for correctness.
+
+2.0 (2006-08-30)
+
+  - pidfile written in daemon mode had incorrect pid.
+
+  - supervisorctl: tail (non -f) did not pass through proper error
+    messages when supplied by the server.
+
+  - Log signal name used to kill processes at debug level.
+
+  - supervisorctl "tail -f" didn't work with supervisorctl sections
+    configured with an absolute unix:// URL
+
+  - New "environment" config file option allows you to add environment
+    variable values to supervisord environment from config file.
+
+2.0b1 (2006-07-12)
+
+  - fundamental rewrite based on 1.0.6, use distutils (only) for
+    installation, use ConfigParser rather than ZConfig, use HTTP for
+    wire protocol, web interface, less lies in supervisorctl.
+
+

+ 28 - 88
README.txt

@@ -1,106 +1,46 @@
-Supervisor: A System for Allowing the Control of Process State on UNIX
+Supervisor
+==========
 
-Introduction
-
-  The supervisor is a client/server system that allows its users to
-  control a number of processes on UNIX-like operating systems.  It
-  was inspired by the following:
-
-   - It is often inconvenient to need to write "rc.d" scripts for
-     every single process instance.  rc.d scripts are a great
-     lowest-common-denominator form of process
-     initialization/autostart/management, but they can be painful to
-     write and maintain.  Additionally, rc.d scripts cannot
-     automatically restart a crashed process and many programs do not
-     restart themselves properly on a crash.  Supervisord starts
-     processes as its subprocesses, and can be configured to
-     automatically restart them on a crash.  It can also automatically
-     be configured to start processes on its own invocation.
-
-   - It's often difficult to get accurate up/down status on processes
-     on UNIX.  Pidfiles often lie.  Supervisord starts processes as
-     subprocesses, so it always knows the true up/down status of its
-     children and can be queried conveniently for this data.
-
-   - Users who need to control process state often need only to do
-     that.  They don't want or need full-blown shell access to the
-     machine on which the processes are running.  Supervisorctl allows
-     a very limited form of access to the machine, essentially
-     allowing users to see process status and control
-     supervisord-controlled subprocesses by emitting "stop", "start",
-     and "restart" commands from a simple shell or web UI.
-
-   - Users often need to control processes on many machines.
-     Supervisor provides a simple, secure, and uniform mechanism for
-     interactively and automatically controlling processes on groups
-     of machines.
-
-   - Processes which listen on "low" TCP ports often need to be
-     started and restarted as the root user (a UNIX misfeature).  It's
-     usually the case that it's perfectly fine to allow "normal"
-     people to stop or restart such a process, but providing them with
-     shell access is often impractical, and providing them with root
-     access or sudo access is often impossible.  It's also (rightly)
-     difficult to explain to them why this problem exists.  If
-     supervisord is started as root, it is possible to allow "normal"
-     users to control such processes without needing to explain the
-     intricacies of the problem to them.
-
-   - Processes often need to be started and stopped in groups,
-     sometimes even in a "priority order".  It's often difficult to
-     explain to people how to do this.  Supervisor allows you to
-     assign priorities to processes, and allows user to emit commands
-     via the supervisorctl client like "start all", and "restart all",
-     which starts them in the preassigned priority order.
-     Additionally, processes can be grouped into "process groups" and
-     a set of logically related processes can be stopped and started
-     as a unit.
+Supervisor is a client/server system that allows its users to
+control a number of processes on UNIX-like operating systems.
 
 Supported Platforms
+-------------------
 
-  Supervisor has been tested and is known to run on Linux (Ubuntu
-  Dapper), Mac OS X (10.4), and Solaris (10 for Intel) and FreeBSD
-  6.1.  It will likely work fine on most UNIX systems.
+Supervisor has been tested and is known to run on Linux (Ubuntu), Mac OS X
+(10.4, 10.5, 10.6), and Solaris (10 for Intel) and FreeBSD 6.1.  It will
+likely work fine on most UNIX systems.
 
-  Supervisor will not run at all under any version of Windows.
+Supervisor will not run at all under any version of Windows.
 
-  Supervisor is known to work with Python 2.3.3 or better, and it may
-  work with Python 2.3.0, Python 2.3.1 and Python 2.3.2 (although
-  these have not been tested).  It will not work under Python versions
-  2.2 or before.
+Supervisor is known to work with Python 2.3.3 or better, and it may work with
+Python 2.3.0, Python 2.3.1 and Python 2.3.2 (although these have not been
+tested).  It will not work under Python versions 2.2 or before.
 
 Documentation
+-------------
 
-  You can view the current Supervisor documentation online "in html
-  format":http://supervisord.org/ .  This is where you should
-  go for detailed installation and configuration documentation.
-
-  XXX We need some way of getting people the entire docs set without
-  needing to read it via HTML online.
+You can view the current Supervisor documentation online `in HTML format
+<http://supervisord.org/>`_ .  This is where you should go for detailed
+installation and configuration documentation.
 
 Mailing list, Reporting Bugs, and Viewing the Source Repository
+---------------------------------------------------------------
 
-  You may subscribe to the 'Supervisor-users' "mailing
-  list":http://lists.supervisord.org/mailman/listinfo/supervisor-users
-
-  Please report bugs at "the
-  collector":http://www.plope.com/software/collector .
+You may subscribe to the `Supervisor-users mailing list
+<http://lists.supervisord.org/mailman/listinfo/supervisor-users>`_.
 
-  XXX get a better bugtracker
+Please report bugs in the `Github issue tracker
+<https://github.com/Supervisor/supervisor/issues>`_.  .
 
-  You can view the source repository for supervisor via
-  http://svn.supervisord.org:"http://svn.supervisord.org"
-
-  A Bazaar mirror can be found in
-  "Launchpad":https://code.launchpad.net/supervisord
+You can view the source repository for supervisor via
+`https://github.com/Supervisor/supervisor
+<https://github.com/Supervisor/supervisor>`_.
 
 Contributing
+------------
 
-  If you'd like to contribute to supervisor directly, please contact
-  the "supervisor-users
-  mailing list":http://lists.supervisord.org/mailman/listinfo/supervisor-users
-
-Author Information
+If you'd like to contribute to supervisor directly, please contact the
+`Supervisor-users mailing list
+<http://lists.supervisord.org/mailman/listinfo/supervisor-users>`_.
 
-  Chris McDonough (chrism@plope.com)
-  "Agendaless Consulting":http://www.agendaless.com

+ 9 - 3
setup.py

@@ -1,6 +1,6 @@
 ##############################################################################
 #
-# Copyright (c) 2006-2010 Agendaless Consulting and Contributors.
+# Copyright (c) 2006-2011 Agendaless Consulting and Contributors.
 # All Rights Reserved.
 #
 # This software is subject to the provisions of the BSD-like license at
@@ -38,9 +38,15 @@ if sys.version_info[:2] < (2, 5):
 from setuptools import setup, find_packages
 here = os.path.abspath(os.path.normpath(os.path.dirname(__file__)))
 
-DESC = """\
+try:
+    here = os.path.abspath(os.path.dirname(__file__))
+    README = open(os.path.join(here, 'README.txt')).read()
+    CHANGES = open(os.path.join(here, 'CHANGES.txt')).read()
+except:
+    README = """\
 Supervisor is a client/server system that allows its users to
 control a number of processes on UNIX-like operating systems. """
+    CHANGES = ''
 
 CLASSIFIERS = [
     'Development Status :: 5 - Production/Stable',
@@ -62,7 +68,7 @@ dist = setup(
     license = 'BSD-derived (http://www.repoze.org/LICENSE.txt)',
     url = 'http://supervisord.org/',
     description = "A system for controlling process state under UNIX",
-    long_description= DESC,
+    long_description=README + '\n\n' +  CHANGES,
     classifiers = CLASSIFIERS,
     author = "Chris McDonough",
     author_email = "chrism@plope.com",