[Digicool-CVS] CVS: CVSROOT - traffic_table.py:1.88
Ken Manheimer
klm@cvs.zope.org
Sat, 4 Aug 2001 13:44:43 -0400
Update of /cvs-repository/CVSROOT
In directory cvs.zope.org:/tmp/cvs-serv27516
Modified Files:
traffic_table.py
Log Message:
Drastic simplification of the traffic table, since the notification
machinery is now going to unravel symlink interdepenencies to
determine all the paths by which a checked in file is shared, and
route checkin notices accordingly.
Also, removed all the rsync/mirroring residue - 'remote' and
'excludes' - leaving a note at the bottom of the module docstring
identifying the version where it got gone...
Checkins of the notification machinery enhancements follows.
=== CVSROOT/traffic_table.py 1.87 => 1.88 ===
The global var 'table' contains a list of entries identifying where
-change-notifications for particular sections of the repository are sent. (You
-can also use the entries to identify mirroring target hosts, but that's not
-longer used.)
+change-notifications for particular sections of the repository are sent.
+(You can also use the entries to identify mirroring target hosts, but
+that's not longer used.)
Each 'table' entry is a dictionary containing some mandatory and some
optional fields (optional fields have default values described)
- - 'path' - to the repository dir, relative to the CVSROOT. This is used
- both as path for identifying qualifying checkins and also as a path to
- specify the directory within which rsync will be applied.
-
- - 'excludes' - a regular expression identifying items within the
- qualifying repository directory that should be excluded. (Be careful
- with your regular expressions - the 're' module will be used only if the
- local python installation has re, or else the old 'regex' module will be
- used. So you may want to use simple regular expressions that work for
- both.) It is passed to rsync, so see the section of the rsync man page
- about exclude patterns for details. Default is for nothing to be
- excluded.
-
- - 'addrs' - a list of addresses to which checkin messages should be delivered.
-
- The 'remote' entry is no longer particularly useful - in fact, we haven't yet
- instituted rsync on the host system - so the following can be ignored:
-
- - 'remote' - specifying the repository to which checkins should be synced.
- This dictionary must have the following fields:
-
- 'host' - string naming the remote host
- 'acct' - the pserver acct that should have access (XXX not yet implemented)
- 'repodir' - the repository directory to which syncs should be done.
- 'leading_path' - if any, substitute as leading path for remote component.
- 'receiver_id' - account id of receiving account.
-
- The default value used for every entry is dictated by a module global
- variable, 'remote'.
-
- If 'remote' is set to None, then no remote setting is used. (This is
- useful for cases where no mirroring is to be done, particularly useful when
- the checkins are happening at the mirror site, eg when public checkins are
- happening.)
-"""
-
-# Default is *no* remote - explicitly specify propagation if you want it.
-remote = None
-public_remote = None
-products_remote = None
+ - 'addrs' - a list of email addresses for checkin notice delivery.
+
+ - 'path' - to the repository dir, relative to the CVSROOT. If the
+ leading path of the files being checked in (re) match the value of this
+ attribute, then this entry is invoked.
+
+ NOTE that the comparison mechanism takes into account the repository
+ symlinks (as dictated by the repolinks file). This means that all
+ entries for directories that contain the checked-in files by virtue of
+ symlinks, as well as by direct containment, will qualify - the system
+ takes care of unravelling the symlinks for you.
+
+\(Most of the original ssh/rsync-based mirroring was stripped out of this
+file after version 1.87.)"""
zopeaddr = ["zope-checkins@zope.org"]
@@ -62,12 +36,11 @@
else:
_TABLE = _TABLE + entries
-def add_multipath(paths, addrs, remote):
+def add_multipath(paths, addrs):
"""Add entries with different paths but the same addrs and remote"""
for path in paths:
add_to_table({'path': path,
- 'addrs': addrs,
- 'remote': remote})
+ 'addrs': addrs})
def get_table():
return _TABLE[:]
@@ -76,11 +49,9 @@
add_to_table([
{'path': "CVSROOT",
'addrs': ["digicool-cvs@zope.org"],
- 'excludes': ["/history"],
'specials': [("repolinks", "adjustlinks.py")]},
## {'path': "test",
-## 'remote': None,
## 'addrs': "klm@zope.com"},
# Catchall for when *no other entry* matches:
@@ -90,86 +61,48 @@
{'path': "Operations",
'addrs': ["support@zope.com"]},
- {'path': "Releases/Zope", 'addrs': zopeaddr},
- {'path': "Packages", 'addrs': zopeaddr},
- {'path': "Products/__init__.py", 'addrs': zopeaddr},
- {'path': "Products/ExternalMethod", 'addrs': zopeaddr},
- {'path': "Products/ImageCache", 'addrs': None},
- {'path': "Products/MIMETools", 'addrs': zopeaddr},
- {'path': "Packages/MailHost", 'addrs': zopeaddr},
- {'path': "Products/OFSP", 'addrs': zopeaddr},
- {'path': "Products/PluginIndexes", 'addrs': zopeaddr},
- {'path': "Products/XMLDocument", 'addrs': zopeaddr},
- {'path': "Products/PythonMethod", 'addrs': None},
- {'path': "Products/STXDocument", 'addrs': zopeaddr},
- {'path': "Products/SiteAccess", 'addrs': zopeaddr},
- {'path': "Products/StandardCacheManagers", 'addrs': zopeaddr},
- {'path': "Products/ZCatalog", 'addrs': zopeaddr},
- {'path': "Products/ZGadflyDA", 'addrs': zopeaddr},
- {'path': "Products/ZSQLMethods", 'addrs': zopeaddr},
- {'path': "Products/ZopeTutorial", 'addrs': zopeaddr},
+ {'path': "Zope",
+ 'addrs': zopeaddr},
+
+ {'path': "StandaloneZODB",
+ 'addrs': ["zodb-checkins@zope.org"]},
+
+ {'path': "ZEO",
+ 'addrs': ["zodb-checkins@zope.org"]},
+
+ {'path': "CMF",
+ 'addrs': ['cmf-checkins@zope.org']},
- {'path': "Packages/TAL", 'addrs': ["zpt@mail.zope.org"]},
+ {'path': "Products/CMFDemo",
+ 'addrs': ["cmf-checkins@zope.org"]},
- {'path': "Products/PageTemplates", 'addrs': ["zpt@mail.zope.org"]},
+ {'path': "Packages/TAL",
+ 'addrs': ["zpt@mail.zope.org"]},
+ {'path': "Products/PageTemplates",
+ 'addrs': ["zpt@mail.zope.org"]},
{'path': "Products/PresentationTemplates",
'addrs': ["zpt@mail.zope.org"]},
{'path': "Products/ParsedXML",
'addrs': ["parsed-xml-dev@mail.zope.org"]},
- {'path': "Packages/ZEO",
+ {'path': "ZEO",
'addrs': ['zeo-checkins@zope.org']},
{'path': "ZopeDocs",
'addrs': 'zopedocs-checkins@zope.org'},
-# {'path': "Documentation/Guides/Book",
-# 'addrs': 'zope-book@zope.org'},
+ {'path': "Docs",
+ 'addrs': 'zope-book@zope.org'},
{'path': "ZopeMozilla",
'addrs': 'zope-mozilla@zope.org'},
- {'path': "CMF",
- 'addrs': 'cmf-checkins@zope.org'},
- {'path': "Products/CMF", 'addrs': 'cmf-checkins@zope.org'},
- {'path': "Products/DCWorkflow", 'addrs': 'cmf-checkins@zope.org'},
-
{'path': "Products/TrackerBase",
'addrs': ['tracker-dev@zope.org']},
{'path': "Projects/python-site",
'addrs': ["pythonlabs@zope.com"]},
-
- {'path': "Products/CMFDemo",
- 'addrs': ["karl@zope.com", "adam@zope.com"]},
-
])
-
-# Support for the ZEO module (defined in CVSROOT/modules)
-
-add_to_table({'path': "Releases/ZEO",
- 'addrs': ("zodb-checkins@zope.org",)})
-
-# Support for the StandaloneZODB module (defined in CVSROOT/modules)
-
-add_to_table({'path': "Releases/StandaloneZODB",
- 'addrs': ("zodb-checkins@zope.org",)})
-
-add_multipath(("Zope2/lib/Components/ExtensionClass",
- "Packages/ZEO",
- "Zope2/lib/python/ZODB",
- "Zope2/lib/python/Persistence.py",
- "Zope2/lib/python/ThreadedAsync.py",
- "Zope2/lib/python/zLOG.py",
- "Zope2/lib/python/zdaemon.py",
- "Packages/StorageGC",
- "Packages/bsddb3Storage",
- ),
- ("zodb-checkins@zope.org",),
- None)
-
-add_to_table({'path': "Packages/bsddb3Storage",
- 'addrs': ("zodb-checkins@zope.org",)})
init_table()