version pinning on tags
Hello, I found while trying to get the KGS 3.4.1 together that MISSING versions on tags/previous versions are BAD. The problem is that if you work with the trunk you test the package against (usually) the current versions. If you later get back to a package for a bugfix or whatever, it's a pain to get the tests running again because the dependent package versions shifted. Right now the only chance is to guess versions or KGS's. I'd say we should nail the package versions on (at least) tags. Either to a KGS, or drop a versions.cfg into the package. The recipe buildout.dumppickedversions would be handy. Opinions? -- Best regards, Adam GROSZER mailto:agroszer@gmail.com -- Quote of the day: All mankind is divided into three classes: those who are immovable, those who are movable; and those who move. - Benjamin Franklin
On Thursday 29 April 2010, Adam GROSZER wrote:
I'd say we should nail the package versions on (at least) tags. Either to a KGS, or drop a versions.cfg into the package. The recipe buildout.dumppickedversions would be handy.
+1 to use a KGS. ZTK or BB depending on what the dependencies are. Regards, Stephan -- Entrepreneur and Software Geek Google me. "Zope Stephan Richter"
On Thu, Apr 29, 2010 at 6:31 PM, Stephan Richter <srichter@cosmos.phy.tufts.edu> wrote:
On Thursday 29 April 2010, Adam GROSZER wrote:
I'd say we should nail the package versions on (at least) tags. Either to a KGS, or drop a versions.cfg into the package. The recipe buildout.dumppickedversions would be handy.
+1 to use a KGS. ZTK or BB depending on what the dependencies are.
Since normally we don't pin versions in trunk, I guess we need to do the pinning in maintenance branches. Otherwise we can keep the version pinning in trunk, but comment the "versions" option. Then, just before going for release, uncomment it. This will become one more step in creating releases: http://docs.zope.org/zopetoolkit/process/releasing-software.html Regards, Baiju M
On Thursday 29 April 2010, Baiju M wrote:
+1 to use a KGS. ZTK or BB depending on what the dependencies are.
Since normally we don't pin versions in trunk, I guess we need to do the pinning in maintenance branches. Otherwise we can keep the version pinning in trunk, but comment the "versions" option. Then, just before going for release, uncomment it. This will become one more step in creating releases: http://docs.zope.org/zopetoolkit/process/releasing-software.html
Why not leave it always pinned? This way the pinning gets transferred to the branch/tag automatically. Regards, Stephan -- Entrepreneur and Software Geek Google me. "Zope Stephan Richter"
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Stephan Richter wrote:
On Thursday 29 April 2010, Baiju M wrote:
+1 to use a KGS. ZTK or BB depending on what the dependencies are. Since normally we don't pin versions in trunk, I guess we need to do the pinning in maintenance branches. Otherwise we can keep the version pinning in trunk, but comment the "versions" option. Then, just before going for release, uncomment it. This will become one more step in creating releases: http://docs.zope.org/zopetoolkit/process/releasing-software.html
Why not leave it always pinned? This way the pinning gets transferred to the branch/tag automatically.
- -1. Trunk development should not be hindered by the need to maintain a KGS of some sort. Testing the trunk against a given KGS should be a separate step from testing against "current" releases. Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkvZki8ACgkQ+gerLs4ltQ5t8gCeMJruyrlLi4ugf0wV2hYq0m0V NdIAoNTugaI4iTHHfI0QWNiJkUBw6ejf =ArEb -----END PGP SIGNATURE-----
Hello Tres, Thursday, April 29, 2010, 4:05:36 PM, you wrote: TS> Stephan Richter wrote:
On Thursday 29 April 2010, Baiju M wrote:
+1 to use a KGS. ZTK or BB depending on what the dependencies are. Since normally we don't pin versions in trunk, I guess we need to do the pinning in maintenance branches. Otherwise we can keep the version pinning in trunk, but comment the "versions" option. Then, just before going for release, uncomment it. This will become one more step in creating releases: http://docs.zope.org/zopetoolkit/process/releasing-software.html
Why not leave it always pinned? This way the pinning gets transferred to the branch/tag automatically.
TS> - -1. Trunk development should not be hindered by the need to maintain a TS> KGS of some sort. Testing the trunk against a given KGS should be a TS> separate step from testing against "current" releases. You could "extends=" some sort of KGS, then override some versions locally. It's just crazy that you buildout friday, test, all tests pass. You buildout monday, test, failures... because some versions moved. -- Best regards, Adam GROSZER mailto:agroszer@gmail.com -- Quote of the day: In Dr. Johnson's famous dictionary, "patriotism" is defined as the last resort of the scoundrel. With all due respect to an enlightened but inferior lexicographer I beg to submit that it is the first. - Ambrose Bierce
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Adam GROSZER wrote:
Hello Tres,
Thursday, April 29, 2010, 4:05:36 PM, you wrote:
TS> Stephan Richter wrote:
On Thursday 29 April 2010, Baiju M wrote:
+1 to use a KGS. ZTK or BB depending on what the dependencies are. Since normally we don't pin versions in trunk, I guess we need to do the pinning in maintenance branches. Otherwise we can keep the version pinning in trunk, but comment the "versions" option. Then, just before going for release, uncomment it. This will become one more step in creating releases: http://docs.zope.org/zopetoolkit/process/releasing-software.html Why not leave it always pinned? This way the pinning gets transferred to the branch/tag automatically.
TS> - -1. Trunk development should not be hindered by the need to maintain a TS> KGS of some sort. Testing the trunk against a given KGS should be a TS> separate step from testing against "current" releases.
You could "extends=" some sort of KGS, then override some versions locally.
It's just crazy that you buildout friday, test, all tests pass. You buildout monday, test, failures... because some versions moved.
If the develpoers who work on trunk don't live with that problem, how can they expect "downstream" folks (e.g., "real" users or KGS maintainers) to figure it out? The workflow I am proposing is that when the nightly tests begin to break due to a dependeny, the developer updates the setup.py (*NOT* the buildout.cfg) to pin minimum or maximum versions of dependencies. Later, the developer might relax or adjust those pins after tweaking the package itself. Prior to release, the developer double-checks those pins. Deferring the pain by testing only against a KGS just means that you lose the information about which changes caused the breakage at the time they happen. When the time comes to update the KGS itself, weeks or months after the fact, the unfortunate KGS maintainer hs no idea what changed or how to fix it. Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkvZsJEACgkQ+gerLs4ltQ4SrACgwyzQHz5fHw4odVfX4HPgM6lw IlsAni/AjNuMyRKwLbWSMFcsXB2nW6pi =xhT8 -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Tres Seaver wrote:
The workflow I am proposing is that when the nightly tests begin to break due to a dependeny, the developer updates the setup.py (*NOT* the buildout.cfg) to pin minimum or maximum versions of dependencies. Later, the developer might relax or adjust those pins after tweaking the package itself. Prior to release, the developer double-checks those pins.
As a clarification, I mean updating the setup.py to use '<=' or '>=' pins, rather thant '==' pins. Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkvZsjgACgkQ+gerLs4ltQ475wCfdq9w252p/H93DVqM84eeUasa G34AnjpAsX7TQwzIhZhRo3hfMWR8z//9 =n9ff -----END PGP SIGNATURE-----
On Thu, Apr 29, 2010 at 9:46 AM, Stephan Richter <srichter@cosmos.phy.tufts.edu> wrote:
On Thursday 29 April 2010, Baiju M wrote:
+1 to use a KGS. ZTK or BB depending on what the dependencies are.
Since normally we don't pin versions in trunk, I guess we need to do the pinning in maintenance branches. Otherwise we can keep the version pinning in trunk, but comment the "versions" option. Then, just before going for release, uncomment it. This will become one more step in creating releases: http://docs.zope.org/zopetoolkit/process/releasing-software.html
Why not leave it always pinned? This way the pinning gets transferred to the branch/tag automatically.
+1 Nailing versions on the trunk means that the trunk is always functional and the result of building the trunk doesn't depend on what versions were available when you built it (as Adam mentioned). -- Benji York
participants (5)
-
Adam GROSZER -
Baiju M -
Benji York -
Stephan Richter -
Tres Seaver