Roundup Issue Tracker release 1.4.2

2008-02-10 Thread Richard Jones
I'm proud to release version 1.4.2 of Roundup.

If you're upgrading from an older version of Roundup you *must* follow
the Software Upgrade guidelines given in the maintenance documentation.

New Features in 1.4.2:
- New config option in mail section: ignore_alternatives allows to
  ignore alternatives besides the text/plain part used for the content
  of a message in multipart/alternative attachments.
- Admin copy of error email from mailgw includes traceback (thanks Ulrik
  Mikaelsson)
- Messages created through the web are now given an in-reply-to header
  when email out to nosy (thanks Martin v. Löwis)
- Nosy messages now include more information about issues (all link
  properties with a name attribute) (thanks Martin v. Löwis)

And things fixed:
- Searching date range by supplying just a date as the filter spec
- Handle no time.tzset under Windows (sf #1825643)
- Fix race condition in file storage transaction commit (sf #1883580)
- Make user utils JS work with firstname/lastname again (sf #1868323)
- Fix ZRoundup to work with Zope 2.8.5 (sf #1806125)
- Fix race condition for key properties in rdbms backends (sf #1876683)
- Handle Reject in mailgw final set/create (sf #1826425)

Roundup requires python 2.3 or later for correct operation.

To give Roundup a try, just download (see below), unpack and run::

roundup-demo

Release info and download page:
 http://cheeseshop.python.org/pypi/roundup
Source and documentation is available at the website:
 http://roundup.sourceforge.net/
Mailing lists - the place to ask questions:
 http://sourceforge.net/mail/?group_id=31577


About Roundup
=

Roundup is a simple-to-use and -install issue-tracking system with
command-line, web and e-mail interfaces. It is based on the winning design
from Ka-Ping Yee in the Software Carpentry Track design competition.

Note: Ping is not responsible for this project. The contact for this
project is [EMAIL PROTECTED]

Roundup manages a number of issues (with flexible properties such as
description, priority, and so on) and provides the ability to:

(a) submit new issues,
(b) find and edit existing issues, and
(c) discuss issues with other participants.

The system will facilitate communication among the participants by managing
discussions and notifying interested parties when issues are edited. One of
the major design goals for Roundup that it be simple to get going. Roundup
is therefore usable out of the box with any python 2.3+ installation. It
doesn't even need to be installed to be operational, though a
disutils-based install script is provided.

It comes with two issue tracker templates (a classic bug/feature tracker and
a minimal skeleton) and four database back-ends (anydbm, sqlite, mysql
and postgresql).

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


[ANN] Release 0.69.0 of Task Coach

2008-02-10 Thread Frank Niessink
Hi,

I'm happy to announce release 0.69.0 of Task Coach. This release makes
it possible to repeat tasks on either a daily or a weekly basis and to
add notes to categories. It also contains a number of other changes
and bug fixes.

Bugs fixed:

* The reminder dialog didn't close when opening the task from the
reminder dialog. If the user had entered a snooze option in the
reminder dialog, that snooze option would be overwritten when closing
the task editor.
* Don't allow filtering by both a parent and a child category at the same time.
* Sorting by total categories in the task viewers didn't sort correctly.
* Save didn't work for task files without a file name and without
tasks, but with categories or notes.
* Adding a task to a category or removing it from a category was not undoable.

Features added:

* Tasks can recur on a daily or weekly basis. This feature is not
complete yet. Most obviously, recurring on a monthly basis is missing.
Also, recurring tasks with recurring subtasks do not behave entirely
correctly yet.
* Notes can be assigned to categories.
* Added Bulgarian translation, thanks to Rumen Belev.
* Added Danish translation, thanks to different translators.
* Added a number of rather incomplete translations (Italian,
Portuguese, Swedish, and Turkish). See
http://www.taskcoach.org/i18n.html for how you can help improve these
translations.
* When filtering by one or more categories, new tasks and notes are
automatically added to those categories. Of course, you can still
change the categories in the category tab of the edit dialog before
pressing the OK button.
* Whether descriptions of tasks, effort records, categories and notes
are shown in a popup tooltip window is now a setting.
* Added menu items for increasing, decreasing, maximizing, and
minimizing task priority.
* Clicking a column header in a task viewer now iterates through the
following sort orders: 'ascending, after sorting by task status
first', 'descending, after sorting by task status first', 'ascending,
without sorting by task status first', 'descending, without sorting by
task status first'.

Features changed:

* Previously, unset dates were displayed as 'None' in date columns. To
be consistent with how other attributes are displayed in columns, Task
Coach now simply displays nothing for unset dates in date columns.
* Task Coach now uses the infinity symbol ('∞') to display the number
of days left for tasks without a due date, instead of the word
'Infinite'.
* Task Coach now uses a real arrow symbol ('→') instead of '-' for
separating parent and child subjects in the different viewers.

Feature removed:

* Task Coach no longer keeps track of the 'last modification time' of tasks.


What is Task Coach?

Task Coach is a simple task manager that allows for hierarchical
tasks, i.e. tasks in tasks. Task Coach is open source (GPL) and is
developed using Python and wxPython. You can download Task Coach from:

http://www.taskcoach.org

In addition to the source distribution, packaged distributions are
available for Windows XP/Vista, Mac OSX, and Linux (Debian and RPM format).

Note that Task Coach is alpha software, meaning that it is wise to back
up your task file regularly, and especially when upgrading to a new release.

Cheers, Frank
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


ANN: next pyCologne meeting, Wed Feb 13, 2008, 6:30 pm

2008-02-10 Thread Christopher Arndt
Dear Pythonistas,

the next monthly meeting of pyCologne, the Python User Group Köln, takes
place on:

Date:  Wednesday Feb 13, 2008
Time:  6:30 Uhr pm CET c.t.
Venue: Room 0.14 , ground floor, computing centre (RRZK-B)
Universität Köln, Berrenrather Str. 136, 50937 Köln

Agenda:

   * Bicycle Repairman - Your daily refactoring helper in Idle, Emacs
 and SciTE. Short introduction and usage examples (in German)
 (Rex Turnbull)

   * Key Signing Party
 (Organisation Christopher Arndt)

Around 8:30 pm we will head to a nearby establishment and have some
drinks, food and a friendly chat.

Further information about pyCologne, including directions, photographs
and minutes of past meetings etc., can be found on our page in the
German Python wiki:

http://wiki.python.de/pyCologne

CU,

Christopher Arndt

-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


ANN: pyparsing 1.4.11 released

2008-02-10 Thread Paul McGuire
I have just uploaded version 1.4.11 of pyparsing to SourceForge.  It
has been a pretty full 2 months since the last release, with
contributions from new users, old users, and also some help from the
Google Highly-Open Participation contest.  I think there are some
very
interesting new features in this release.  Please check it out!

(Please note - if you download and install the Windows binary, this
will
NOT include the HTML doc or examples directory.  TO get these, you
will
need to download the docs or one of the source distributions.)


The pyparsing wiki is at http://pyparsing.wikispaces.com.


Here are the notes for 1.4.11:


Version 1.4.11 - February 10, 2008
--
- With help from Robert A. Clark, this version of pyparsing
  is compatible with Python 3.0a3.  Thanks for the help,
  Robert!


- Added WordStart and WordEnd positional classes, to support
  expressions that must occur at the start or end of a word.
  Proposed by piranha on the pyparsing wiki, good idea!


- Added matchOnlyAtCol helper parser action, to simplify
  parsing log or data files that have optional fields that are
  column dependent.  Inspired by a discussion thread with
  hubritic on comp.lang.python.


- Added withAttribute.ANY_VALUE as a match-all value when using
  withAttribute.  Used to ensure that an attribute is present,
  without having to match on the actual attribute value.


- Added get() method to ParseResults, similar to dict.get().
  Suggested by new pyparsing user, Alejandro Dubrovksy, thanks!


- Added '==' short-cut to see if a given string matches a
  pyparsing expression.  For instance, you can now write:


integer = Word(nums)
if 123 == integer:
   # do something


print [ x for x in 123 234 asld.split() if x==integer ]
# prints ['123', '234']


- Simplified the use of nestedExpr when using an expression for
  the opening or closing delimiters.  Now the content expression
  will not have to explicitly negate closing delimiters.  Found
  while working with dfinnie on GHOP Task #277, thanks!


- Fixed bug when defining ignorable expressions that are
  later enclosed in a wrapper expression (such as ZeroOrMore,
  OneOrMore, etc.) - found while working with Prabhu
  Gurumurthy, thanks Prahbu!


- Fixed bug in withAttribute in which keys were automatically
  converted to lowercase, making it impossible to match XML
  attributes with uppercase characters in them.  Using with-
  Attribute requires that you reference attributes in all
  lowercase if parsing HTML, and in correct case when parsing
  XML.


- Changed '' operator on Forward to return None, since this
  is really used as a pseudo-assignment operator, not as a
  left-shift operator.  By returning None, it is easier to
  catch faulty statements such as a  b | c, where precedence
  of operations causes the '|' operation to be performed
  *after* inserting b into a, so no alternation is actually
  implemented.  The correct form is a  (b | c).  With this
  change, an error will be reported instead of silently
  clipping the alternative term.  (Note: this may break some
  existing code, but if it does, the code had a silent bug in
  it anyway.)  Proposed by wcbarksdale on the pyparsing wiki,
  thanks!


- Several unit tests were added to pyparsing's regression
  suite, courtesy of the Google Highly-Open Participation
  Contest.  Thanks to all who administered and took part in
  this event!



Pyparsing is a pure-Python class library for quickly developing
recursive-descent parsers.  Parser grammars are assembled directly in
the calling Python code, using classes such as Literal, Word,
OneOrMore, Optional, etc., combined with operators '+', '|', and '^'
for And, MatchFirst, and Or.  No separate code-generation or external
files are required.  Pyparsing can be used in many cases in place of
regular expressions, with shorter learning curve and greater
readability and maintainability.  Pyparsing comes with a number of
parsing examples, including:
- Hello, World! (English, Korean, Greek, and Spanish)
- chemical formulas
- configuration file parser
- web page URL extractor
- 5-function arithmetic expression parser
- subset of CORBA IDL
- chess portable game notation
- simple SQL parser
- search query parser
- EBNF parser/compiler
- Python value string parser (lists, dicts, tuples, with nesting)
  (safe alternative to eval)
- HTML tag stripper
- S-expression parser
- macro substitution preprocessor


-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html