{{Project|P4Review2| curator=Lester Cheung| path=//guest/lester_cheung/p4review/p4review2.py| language=Python| download=//guest/lester_cheung/p4review/p4review2.py| brief=A Python based Perforce review daemon}} '''P4Review2''' is a fresh take on the [[P4Review|original review daemon]] with enhancement and new features. = FEATURES HIGHLIGHT = * Authenticates against SMTP and Perforce servers with TLS/SSL support. * Unicode support - even for non-ACSII characters in non-unicode enabled server if you use a single encoding. * Configurable email templates which an be hooked with [http://www.perforce.com/product/components/perforce-clients?qt-perforce_graphical_tools=1#qt-perforce_graphical_tools P4Web] and [http://www.perforce.com/product/components/swarm Swarm]. * Option to send summary email per user per invocation instead of one for each change. * Put limits on the maximum message size and number of emails that get sent. * Guards to prevent running multiple instances of the script by mistake. * Built-in logging and extensive command-line options to facilitate debug and testing. * Use P4Python when available for efficiency and fallback to the Perforce command line client gracefully. * Option for users to opt-in (--opt-in-path) reviews from P4Review2 for smooth migration from other review notification systems. = Usage = # Create an sample configuration:
''python p4review2.py --sample-config > p4review2.conf'' # The file is in INI-like format. Edit the file to suit your needs. In particular, check settings for the following (check "''python p4review2.py -h''" for a list of all the current options): ## p4port ## p4user ## p4charset ## review_counter ## job_counter ## change_url ## job_url ## user_url # Test the configuration with:
''python p4review2.py -c p4review2.conf -P'' # When ready, create a crontab (Linux/UNIX)/scheduled task (Windows) to run the above command without the -P option. # Configuration can be overwritten on the command line via options. See ''python p4review2.py -h'' for the complete list. = Feedback/Contact = I can be contacted via one of the following: * Twitter: [https://twitter.com/p4lester P4Lester] * [http://forums.perforce.com/index.php?/topic/2306-p4review2 Perforce Forum] * Email: lcheung [at] perforce.com