Re: [Zope3-dev] Re: [Checkins] SVN: zope.testing/trunk/setup.cfg This file is a recipe for bad releases

2007-03-30 Thread Jim Fulton


On Mar 29, 2007, at 11:26 PM, Baiju M wrote:


Jim Fulton wrote:


Log message for revision 73922:
This file is a recipe for bad releases

Changed:
D zope.testing/trunk/setup.cfg


I am asking for a resolution here, do we want this file in svn for  
other packages ?


No, IMO, and since I am the primary maintainer of zope.testing, my  
opinion counts here. :)



In my experience I found this file is not required.


Worse, it's potentially harmful.. If you forget it's there, you could  
end up releasing something with a version number other than what you  
expect.


The only use case for which it is needed is using easy_install to  
install an egg directly from subversion.  In understand that some  
people want this, especially for unstable projects. For stable  
projects, like zope.testing, I think it is more trouble than it's worth.



To make a release with svn revision number
just get the number from 'svn info' and copy-paste it in setup.py,  
then 'buildout setup . sdist'


Oh, you don't even need to do that.  You can get the version #  
included automatically using the -r option to egg_info, as in:


  python setup.py egg_info -r sdist

Or, to also include dev in the version #:

  python setup.py egg_info -rb dev sdist


I agree with Jim says in the log message.  Yes, it's YAGNI !


I wouldn't object if it was just a YAGNI.  It's a source of potential  
mistakes.  YOu have to either remember to remove the file before a  
release or remember a special command-line incantation to defeat it.


Jim

--
Jim Fulton  mailto:[EMAIL PROTECTED]Python 
Powered!
CTO (540) 361-1714  
http://www.python.org
Zope Corporationhttp://www.zope.com http://www.zope.org



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [ZODB-Dev] Re: [Zope3-dev] Re: Community opinion about search+filter

2007-03-30 Thread Jim Washington
Dieter Maurer wrote:
 Jim Washington wrote at 2007-3-27 16:28 -0400:
   
 ...
 Yes, I think so, at least in the implementation/algorithm I am using. 
 There may be other implementations that do not need this.  Note,
 however, that the canonical list does not have to be complex objects. 
 The canonical list is just a representation of the unsorted state.  It
 can, for example, be a proxy list of iids, list indexes, or OOBTree
 keys.  The algorithm does not care what it is reordering.
 

 If you need to keep the canonical list around, then sort them
 and then keep the sorted result around (i.e. cache the sorted list).

 This way, you could avoid the factoradic index.


   
Yes, if there is only one ordering that will be used.  Factoradic
indices may be obtained and used for any arbitrary ordering of the
canonical list.  It may be useful, for example, to keep an index that
has books sorted by title, another one sorted by author and title, and
another one in publication date order.

- Jim Washington
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: Eggs for deprecated packages

2007-03-30 Thread Jim Fulton


I think we need to have a much more basic discussion.

IMO deprecation was a reasonable thing to try that hasn't really  
worked out well.  People find deperecation warnings to be very  
annoying and I don't think it's going to be practical to make  
backward-concompatable changes when eggs are used. I suggest that  
generally, in the future, eggs should not be deprecated but just end- 
of-lifed.  When we are tempted to make a backward cincompatible to a  
package, we should create a new one.  Generally, there is little cost  
in just leaving old packages around.


Unfortunately, there are two poitentially significant costs in  
keeping obsolete eggs:


1. They may break with newer Python versions. :(

2. The may be in the dependencies of other eggs.  If they are used  
internally, then, of course, the dependent eggs can be rewritten to  
use newer non-obsolete eggs.  In other cases, like zope.app, the  
dependency exists to provide some feature and can't be removed  
without introducing a backward-incompatible change to the dependent egg.


Honestly, I'm not sure how to deal with these issues, especially the  
later. Maybe for collection eggs like zope.app, we have to accept  
deprecation and backward-incompatible changes, at least for a while.


Jim

--
Jim Fulton  mailto:[EMAIL PROTECTED]Python 
Powered!
CTO (540) 361-1714  
http://www.python.org
Zope Corporationhttp://www.zope.com http://www.zope.org



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: Eggs for deprecated packages

2007-03-30 Thread Martin Aspeli



Jim Fulton wrote:
 
 
 I think we need to have a much more basic discussion.
 
 IMO deprecation was a reasonable thing to try that hasn't really  
 worked out well.  People find deperecation warnings to be very  
 annoying and I don't think it's going to be practical to make  
 backward-concompatable changes when eggs are used. I suggest that  
 generally, in the future, eggs should not be deprecated but just end- 
 of-lifed.  When we are tempted to make a backward cincompatible to a  
 package, we should create a new one.  Generally, there is little cost  
 in just leaving old packages around.
 
 Unfortunately, there are two poitentially significant costs in  
 keeping obsolete eggs:
 
 1. They may break with newer Python versions. :(
 
 2. The may be in the dependencies of other eggs.  If they are used  
 internally, then, of course, the dependent eggs can be rewritten to  
 use newer non-obsolete eggs.  In other cases, like zope.app, the  
 dependency exists to provide some feature and can't be removed  
 without introducing a backward-incompatible change to the dependent egg.
 
 Honestly, I'm not sure how to deal with these issues, especially the  
 later. Maybe for collection eggs like zope.app, we have to accept  
 deprecation and backward-incompatible changes, at least for a while.
 

Are you talking only about whole eggs here, or also about changes to APIs
within eggs that are deemed to have a right to exist?

Deprecation of APIs within a package works reasonably well as we do it now,
imho. If you look at other systems, e.g. the Java APIs, deprecations tend to
take place, though often deprecated APIs are never removed (which has the
downside that they continue to clutter the namespace and sometimes they
could be harmful by design). Deprecation warnings are important here,
because it gives people a fighting chance of forward migrating their code.
Without warnings, we'll have a lot of people that simply get locked into a
version, and find that two or three versions down the line an upgrade would
really mean a rewrite.

Deprecation of entire eggs (e.g. we don't need it anymore, or we think it
needs to move to a different namespace, or we want to break it up into
smaller pieces or amalgamate with some other pieces to make a bigger
package) is kind of a non-issue as far as eggs are concerned. Eggs are
versioned, and people can always depend on specific old eggs even if
they're not actively maintained or ship as part of the main Zope 3
distribution.

As far as the system is concerned (whatever you want to call the system,
but let's say that we mean the collection of eggs that we ship as Zope 3 and
promote as a cohesive platform for people to develop on top of) I think we
still need some type of deprecation when we decide to stop packaging up
particular eggs. Say someone is used to downloading and using the standard
Zope 3 distribution (or a particular distribution) - they will assume that
all those packages remain there. When they upgrade, they don't want to
suddenly find that something's gone missing. That's where I suggest we have
a deprecated-in-version-x meta-egg that someone can depend on if they need
to get particular packages that no longer exist in the form they used to. It
can ship with Zope 3, ship disabled, or not ship but be documented as the
way to get back the things that were moved, so that developers can
understand the implications of package removals/end-of-life on their own
code and have time to take action accordingly.

Martin
-- 
View this message in context: 
http://www.nabble.com/Eggs-for-deprecated-packages-tf3485561.html#a9751811
Sent from the Zope3 - dev mailing list archive at Nabble.com.

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com