Skip to content

Commit

Permalink
Merge pull request #2120 from mmerickel/fix/pserve-deprecation-messages
Browse files Browse the repository at this point in the history
improve pserve deprecation messages
  • Loading branch information
digitalresistor committed Nov 13, 2015
2 parents bd52b68 + baff99d commit 2cb0419
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 8 deletions.
8 changes: 5 additions & 3 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -242,16 +242,18 @@ Bug Fixes
Deprecations
------------

- The ``pserve`` command's daemonization features have been deprecated. This
includes the ``[start,stop,restart,status]`` subcommands as well as the
``--daemon``, ``--stop-server``, ``--pid-file``, and ``--status`` flags.
- The ``pserve`` command's daemonization features have been deprecated as well
as ``--monitor-restart``. This includes the ``[start,stop,restart,status]``
subcommands as well as the ``--daemon``, ``--stop-daemon``, ``--pid-file``,
and ``--status`` flags.

Please use a real process manager in the future instead of relying on the
``pserve`` to daemonize itself. Many options exist including your Operating
System's services such as Systemd or Upstart, as well as Python-based
solutions like Circus and Supervisor.

See https://github.com/Pylons/pyramid/pull/1641
and https://github.com/Pylons/pyramid/pull/2120

- Renamed the ``principal`` argument to ``pyramid.security.remember()`` to
``userid`` in order to clarify its intended purpose.
Expand Down
23 changes: 18 additions & 5 deletions pyramid/scripts/pserve.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ class PServeCommand(object):
If start/stop/restart is given, then --daemon is implied, and it will
start (normal operation), stop (--stop-daemon), or do both.
Note: Daemonization features are deprecated.
You can also include variable assignments like 'http_port=8080'
and then use %(http_port)s in your config files.
Expand Down Expand Up @@ -100,13 +101,13 @@ class PServeCommand(object):
'--daemon',
dest="daemon",
action="store_true",
help="Run in daemon (background) mode")
help="Run in daemon (background) mode [DEPRECATED]")
parser.add_option(
'--pid-file',
dest='pid_file',
metavar='FILENAME',
help=("Save PID to file (default to pyramid.pid if running in "
"daemon mode)"))
"daemon mode) [DEPRECATED]"))
parser.add_option(
'--log-file',
dest='log_file',
Expand All @@ -127,7 +128,7 @@ class PServeCommand(object):
'--monitor-restart',
dest='monitor_restart',
action='store_true',
help="Auto-restart server if it dies")
help="Auto-restart server if it dies [DEPRECATED]")
parser.add_option(
'-b', '--browser',
dest='browser',
Expand All @@ -137,7 +138,8 @@ class PServeCommand(object):
'--status',
action='store_true',
dest='show_status',
help="Show the status of the (presumably daemonized) server")
help=("Show the status of the (presumably daemonized) server "
"[DEPRECATED]"))
parser.add_option(
'-v', '--verbose',
default=default_verbosity,
Expand Down Expand Up @@ -169,7 +171,7 @@ class PServeCommand(object):
dest='stop_daemon',
action='store_true',
help=('Stop a daemonized server (given a PID file, or default '
'pyramid.pid file)'))
'pyramid.pid file) [DEPRECATED]'))

_scheme_re = re.compile(r'^[a-z][a-z]+:', re.I)

Expand Down Expand Up @@ -306,6 +308,17 @@ def run(self): # pragma: no cover
raise ValueError(msg)
writeable_pid_file.close()

# warn before forking
if (
self.options.monitor_restart and
not os.environ.get(self._monitor_environ_key)
):
self.out('''\
--monitor-restart has been deprecated in Pyramid 1.6. It will be removed
in a future release per Pyramid's deprecation policy. Please consider using
a real process manager for your processes like Systemd, Circus, or Supervisor.
''')

if (
getattr(self.options, 'daemon', False) and
not os.environ.get(self._monitor_environ_key)
Expand Down

0 comments on commit 2cb0419

Please sign in to comment.