[Checkins] SVN: zope.sendmail/trunk/ Initial commit of zope.sendmail for eggification.

Baiju M baiju.m.mail at gmail.com
Sun Oct 29 01:37:38 EDT 2006


Log message for revision 70962:
  Initial commit of zope.sendmail for eggification.
  

Changed:
  _U  zope.sendmail/trunk/
  A   zope.sendmail/trunk/CHANGES.txt
  A   zope.sendmail/trunk/INSTALL.txt
  A   zope.sendmail/trunk/MANIFEST.in
  A   zope.sendmail/trunk/README.txt
  A   zope.sendmail/trunk/setup.cfg.in
  A   zope.sendmail/trunk/setup.py
  A   zope.sendmail/trunk/src/
  A   zope.sendmail/trunk/src/zope/
  A   zope.sendmail/trunk/src/zope/__init__.py
  A   zope.sendmail/trunk/test.py

-=-

Property changes on: zope.sendmail/trunk
___________________________________________________________________
Name: svn:ignore
   + bin
build
dist
lib
setup.cfg


Added: zope.sendmail/trunk/CHANGES.txt
===================================================================
--- zope.sendmail/trunk/CHANGES.txt	2006-10-29 05:31:59 UTC (rev 70961)
+++ zope.sendmail/trunk/CHANGES.txt	2006-10-29 05:37:37 UTC (rev 70962)
@@ -0,0 +1,2 @@
+zope.sendmail Package Changelog
+===============================


Property changes on: zope.sendmail/trunk/CHANGES.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: zope.sendmail/trunk/INSTALL.txt
===================================================================
--- zope.sendmail/trunk/INSTALL.txt	2006-10-29 05:31:59 UTC (rev 70961)
+++ zope.sendmail/trunk/INSTALL.txt	2006-10-29 05:37:37 UTC (rev 70962)
@@ -0,0 +1,80 @@
+Installing This Package
+=======================
+
+Prerequisites
+-------------
+
+The installation steps below assume that you have the cool new 'setuptools'
+package installed in your Python.  Here is where to get it:
+
+  $ wget http://peak.telecommunity.com/dist/ez_setup.py
+  $ /path/to/your/python ez_setup.py # req. write access to 'site-packages'
+
+  - Docs for EasyInstall:
+    http://peak.telecommunity.com/DevCenter/EasyInstall
+
+  - Docs for setuptools:
+    http://peak.telecommunity.com/DevCenter/setuptools
+
+  - Docs for eggs:
+    http://peak.telecommunity.com/DevCenter/PythonEggs
+
+
+Installing a Development Checkout
+---------------------------------
+
+Check out the package from subversion:
+
+  $ svn co svn+ssh://svn.zope.org/repos/main/zope.sendmail/trunk \
+    src/zope.sendmail
+  $ cd src/zope.sendmail
+
+Install it as a "devlopment egg" (which also installs its "hard"
+dependencies):
+
+  $ /path/to/your/python setup.py devel
+
+The installation of dependency eggs uses the 'setup.cfg' file in
+the checkout.  You can supply '--find-links' on the command line to
+point it at a non-standard package repository.
+
+
+Running the Tests
+-----------------
+
+To test the package, you will also need the 'zope.testing' package, which
+can't (yet) be automatically installed.  Eventually, you should be able to
+type:
+
+  $ /path/to/your/python setup.py test
+
+and have it install the "testing dependencies."  Today, the workaround
+is to install it manually:
+
+  $ /path/to/easy_install --find-links="...." zope.testing
+
+You can then run the tests (finally) from the checkout directory:
+
+  $ /path/to/your/python test.py
+    Running:
+      .............
+    Ran 13 tests with 0 failures and 0 errors in 0.094 seconds.
+
+
+Installing a Source Distribution
+--------------------------------
+
+You can also install it from a source distribution:
+
+  $ /path/to/easy_install --find-links="...." -eb src zope.sendmail
+  $ cd src/zope.sendmail
+  $ /path/to/your/python setup.py devel
+
+
+Installing a Binary Egg
+-----------------------
+
+Install the package as a "binary egg" (which also installs its "hard"
+dependencies):
+
+  $ /path/to/easy_install --find-links="...." zope.sendmail


Property changes on: zope.sendmail/trunk/INSTALL.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: zope.sendmail/trunk/MANIFEST.in
===================================================================
--- zope.sendmail/trunk/MANIFEST.in	2006-10-29 05:31:59 UTC (rev 70961)
+++ zope.sendmail/trunk/MANIFEST.in	2006-10-29 05:37:37 UTC (rev 70962)
@@ -0,0 +1 @@
+exclude setup.cfg


Property changes on: zope.sendmail/trunk/MANIFEST.in
___________________________________________________________________
Name: svn:eol-style
   + native

Added: zope.sendmail/trunk/README.txt
===================================================================
--- zope.sendmail/trunk/README.txt	2006-10-29 05:31:59 UTC (rev 70961)
+++ zope.sendmail/trunk/README.txt	2006-10-29 05:37:37 UTC (rev 70962)
@@ -0,0 +1,74 @@
+zope.sendmail Package Readme
+============================
+
+Overview
+--------
+
+A package for email sending from Zope 3 applications.
+
+Email sending from Zope 3 applications works as follows:
+
+  - A Zope 3 application locates a mail delivery utility (`IMailDelivery`) and
+    feeds a message to it. It gets back a unique message ID so it can keep
+    track of the message by subscribing to `IMailEvent` events.
+
+  - The utility registers with the transaction system to make sure the message
+    is only sent when the transaction commits successfully.  (Among other
+    things this avoids duplicate messages on `ConflictErrors`.)
+
+  - If the delivery utility is a `IQueuedMailDelivery`, it puts the message
+    into a queue (a Maildir mailbox in the file system). A separate process or
+    thread (`IMailQueueProcessor`) watches the queue and delivers messages
+    asynchronously. Since the queue is located in the file system, it survives
+    Zope restarts or crashes and the mail is not lost.  The queue processor can
+    implement batching to keep the server load low.
+
+  - If the delivery utility is a `IDirectMailDelivery`, it delivers messages
+    synchronously during the transaction commit.  This is not a very good idea,
+    as it makes the user wait.  Note that transaction commits must not fail,
+    but that is not a problem, because mail delivery problems dispatch an event
+    instead of raising an exception.
+
+    However, there is a problem -- sending events causes unknown code to be
+    executed during the transaction commit phase.  There should be a way to
+    start a new transaction for event processing after this one is commited.
+
+  - An `IMailQueueProcessor` or `IDirectMailDelivery` actually delivers the
+    messages by using a mailer (`IMailer`) component that encapsulates the
+    delivery process.  There currently is only one mailer:
+
+      - `ISMTPMailer` sends all messages to a relay host using SMTP
+
+  - If mail delivery succeeds, an `IMailSentEvent` is dispatched by the mailer.
+    If mail delivery fails, no exceptions are raised, but an `IMailErrorEvent`
+    is dispatched by the mailer.
+
+Changes
+-------
+
+See CHANGES.txt.
+
+Installation
+------------
+
+See INSTALL.txt.
+
+
+Developer Resources
+-------------------
+
+- Subversion browser:
+
+  http://svn.zope.org/zope.sendmail/
+
+- Read-only Subversion checkout:
+
+  $ svn co svn://svn.zope.org/repos/main/zope.sendmail/trunk
+
+- Writable Subversion checkout:
+
+  $ svn co svn+ssh://userid@svn.zope.org/repos/main/zope.sendmail/trunk
+
+- Note that the 'src/zope/sendmail package is acutally a 'svn:externals' link
+  to the corresponding package in the Zope3 trunk (or to a specific tag, for
+  released versions of the package).


Property changes on: zope.sendmail/trunk/README.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: zope.sendmail/trunk/setup.cfg.in
===================================================================
--- zope.sendmail/trunk/setup.cfg.in	2006-10-29 05:31:59 UTC (rev 70961)
+++ zope.sendmail/trunk/setup.cfg.in	2006-10-29 05:37:37 UTC (rev 70962)
@@ -0,0 +1,6 @@
+[development]
+depends = zope.testing
+
+[egg_info]
+tag_build = .dev
+tag_svn_revision = 1


Property changes on: zope.sendmail/trunk/setup.cfg.in
___________________________________________________________________
Name: svn:eol-style
   + native

Added: zope.sendmail/trunk/setup.py
===================================================================
--- zope.sendmail/trunk/setup.py	2006-10-29 05:31:59 UTC (rev 70961)
+++ zope.sendmail/trunk/setup.py	2006-10-29 05:37:37 UTC (rev 70962)
@@ -0,0 +1,53 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Setup for zope.sendmail package
+
+$Id$
+"""
+
+import os
+
+try:
+    from setuptools import setup, Extension
+except ImportError, e:
+    from distutils.core import setup, Extension
+
+setup(name='zope.sendmail',
+      version='3.4-dev',
+      url='http://svn.zope.org/zope.sendmail',
+      license='ZPL 2.1',
+      description='Zope sendmail',
+      author='Zope Corporation and Contributors',
+      author_email='zope3-dev at zope.org',
+      long_description="A package for email sending from Zope 3 applications.",
+
+      packages=['zope',
+                'zope.sendmail',
+                'zope.sendmail.tests'],
+      package_dir = {'': 'src'},
+
+      namespace_packages=['zope',],
+      tests_require = ['zope.testing'],
+      install_requires=['transaction',
+                        'zope.component',
+                        'zope.configuration',
+                        'zope.i18nmessageid',
+                        'zope.interface',
+                        'zope.schema',
+                        'zope.security',
+                        'zope.app.component'],
+      include_package_data = True,
+
+      zip_safe = False,
+      )


Property changes on: zope.sendmail/trunk/setup.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native


Property changes on: zope.sendmail/trunk/src
___________________________________________________________________
Name: svn:ignore
   + zope.sendmail.egg-info



Property changes on: zope.sendmail/trunk/src/zope
___________________________________________________________________
Name: svn:externals
   + sendmail svn://svn.zope.org/repos/main/Zope3/trunk/src/zope/sendmail


Added: zope.sendmail/trunk/src/zope/__init__.py
===================================================================
--- zope.sendmail/trunk/src/zope/__init__.py	2006-10-29 05:31:59 UTC (rev 70961)
+++ zope.sendmail/trunk/src/zope/__init__.py	2006-10-29 05:37:37 UTC (rev 70962)
@@ -0,0 +1,7 @@
+# this is a namespace package
+try:
+    import pkg_resources
+    pkg_resources.declare_namespace(__name__)
+except ImportError:
+    import pkgutil
+    __path__ = pkgutil.extend_path(__path__, __name__)


Property changes on: zope.sendmail/trunk/src/zope/__init__.py
___________________________________________________________________
Name: svn:eol-style
   + native

Added: zope.sendmail/trunk/test.py
===================================================================
--- zope.sendmail/trunk/test.py	2006-10-29 05:31:59 UTC (rev 70961)
+++ zope.sendmail/trunk/test.py	2006-10-29 05:37:37 UTC (rev 70962)
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Sample test script using zope.testing.testrunner
+
+see zope.testing testrunner.txt
+
+$Id$
+"""
+
+import os, sys
+
+here = os.path.abspath(os.path.dirname(sys.argv[0]))
+
+# Remove this directory from path:
+sys.path[:] = [p for p in sys.path if os.path.abspath(p) != here]
+
+src = os.path.join(here, 'src')
+sys.path.insert(0, src) # put at beginning to avoid one in site_packages
+
+from zope.testing import testrunner
+
+defaults = [
+    '--path', src,
+    '--package', 'zope.sendmail',
+    '--tests-pattern', '^tests$',
+    ]
+
+sys.exit(testrunner.run(defaults))
+


Property changes on: zope.sendmail/trunk/test.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native



More information about the Checkins mailing list