[Checkins] SVN: zopeframework/trunk/source/steeringgroup/decisions.rst Record decision on package dependency requirements.

Martijn Faassen faassen at infrae.com
Tue Mar 17 11:40:22 EDT 2009


Log message for revision 98196:
  Record decision on package dependency requirements.
  

Changed:
  U   zopeframework/trunk/source/steeringgroup/decisions.rst

-=-
Modified: zopeframework/trunk/source/steeringgroup/decisions.rst
===================================================================
--- zopeframework/trunk/source/steeringgroup/decisions.rst	2009-03-17 15:02:54 UTC (rev 98195)
+++ zopeframework/trunk/source/steeringgroup/decisions.rst	2009-03-17 15:40:22 UTC (rev 98196)
@@ -57,4 +57,36 @@
 * Moving code around as part of dependency refactoring is worth a
   feature release (x.y as opposed to x.y.z version number) for the
   affected packages. Changing an import to make use of a new package
-  that came out of such refactoring is also worth a feature release.
\ No newline at end of file
+  that came out of such refactoring is also worth a feature release.
+
+* In a ``setup.py`` you are allowed to write this in ``setup.py``::
+
+    bar >= x.y
+
+  I.e. relying on a newer feature release of package ``bar``.
+
+  but not this::
+
+    bar >= x.y.z
+
+  I.e. you're not allowed to rely on a newer *bugfix* release of
+  package ``bar``.
+
+  Elaboration: Imagine package ``foo`` that depends on package
+  ``bar``. If you make changes in ``foo`` so that it starts to rely on
+  changes in ``bar`` that are only introduced in a feature release of
+  ``bar`` (``bar`` version ``x.y`` or ``bar`` version ``x``), you
+  should update the ``setup.py`` of ``foo`` to state this dependency
+  with a requirement like this::
+
+    bar >= x.y
+
+  This is only relevant to *feature* releases. If there is a bugfix
+  release of ``bar`` you should not write a dependency like ``bar >=
+  x.y.z``.
+
+  This is a compromise in the interests of both flexibility and giving
+  hints to people who use our packages. We'll see how it goes.
+
+* If a package starts to rely on new features or behaviors as done
+  in a feature release of a dependency (i.e. x, or x.y)
\ No newline at end of file



More information about the Checkins mailing list