Edgewall Software
Modify

Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#9404 closed task (fixed)

Release Trac 0.12

Reported by: Remy Blank Owned by: Christian Boos
Priority: high Milestone: 0.12
Component: general Version: 0.12dev
Severity: blocker Keywords: release
Cc: shanec@…, techtonik@…, mathieu.ravaux@…, saimen54@…, lists@…, itamarost@… Branch:
Release Notes:
API Changes:
Internal Changes:

Description

This task ticket is used to coordinate the finalization and testing of the next major version of Trac, 0.12.

We're entering a one week period of testing for the rc1, tagged in [9825]. Packages can be downloaded from TracDownload#LatestReleaseCandidate.

If everything goes well, release of 0.12 proper will happen right after that.

Testing

People having volunteered to contribute to release testing on TracDev/ReleaseTesting were added to the CC: list.

If you'd like to contribute, please fill an entry in the table you'll find there, detailing the configuration(s) you will test, and report the status of your testing in this ticket.

Status

Attachments (4)

win7_install_warnings.png (40.3 KB ) - added by Itamar Oren 14 years ago.
screenshots of message boxes popping during installation on windows 7
winx_install_elevated.diff (290 bytes ) - added by anatoly techtonik <techtonik@…> 14 years ago.
installer with windows user access control
Trac-0.12rc1.win32.exe.txt (5.8 KB ) - added by anatoly techtonik <techtonik@…> 14 years ago.
import table
t9404-unicode-splitlines.diff (1.9 KB ) - added by Christian Boos 14 years ago.
wiki: normalize space in source text. Patch based on r9846.

Download all attachments as: .zip

Change History (40)

comment:1 by Itamar Oren, 14 years ago

Cc: itamarost@… added

On Windows 7, Python 2.6.5:

Had 0.12b1 installed, tried installing 0.12rc1 from win32 installer, got some message box popping with warnings / errors, but installation reached its end.

After installation attempts to verify installed version failed (pip freeze showed 0.12b1, serving an environment and going to about showed 0.12b1).

Inspection of c:\Python26\Lib\site-packages\ revealed 2 related egg_info dirs:

  • Trac-0.12b1-py2.6.egg-info
  • Trac-0.12rc1-py2.4.egg-info (note the py2.4, although the installer recognized 2.6, and I don't even have 2.4 installed)

Tried reinstalling using easy_install —upgrade /path/to/downloaded/tar.gz, which worked perfectly.

comment:2 by Christian Boos, 14 years ago

Trac-0.12rc1.win32.exe was changed this morning, as the one I uploaded yesterday had a problem (no trac/locale folder). Both were indeed built with Python 2.4, which explain the py2.4 you're seeing, and this alone is not a problem ("worksforme", but I'm on Vista). It might be a Windows 7 specific problem. What were the message boxes saying?

by Itamar Oren, 14 years ago

Attachment: win7_install_warnings.png added

screenshots of message boxes popping during installation on windows 7

in reply to:  2 ; comment:3 by Itamar Oren, 14 years ago

Replying to cboos:

[snip] What were the message boxes saying?

See screenshots in win7_install_warnings.png.

When I run the installer "as administrator" the warnings are gone, so it's probably related to access rights. Can't confirm that this time the installation worked, since I already have the working installation from the tarball…

I was using the "new" installer (downloaded it after the announcement sent on the mailing list).

in reply to:  3 comment:4 by Christian Boos, 14 years ago

Replying to itamaro:

Replying to cboos:

[snip] What were the message boxes saying?

See screenshots in win7_install_warnings.png.

Ah those! I got them and ignored them … not even realizing they were error messages ;-) The installation was operational for me despite those.

When I run the installer "as administrator" the warnings are gone, so it's probably related to access rights. Can't confirm that this time the installation worked, since I already have the working installation from the tarball…

Yes, that must be enough to get rid of those pesky rights issues…

I was using the "new" installer (downloaded it after the announcement sent on the mailing list).

I know what the problem was. It's easy but I always forget, despite being hit by it nearly every time: a "wininst" installation always loses over an existing "easy_install" installation… We just need to document that somewhere.

comment:5 by Itamar Oren, 14 years ago

Test results:

SKIP: tracopt/mimeview/tests/php.py (php cli binary, 'php', not found)
...........................................................................................................EE...........
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
......
======================================================================
ERROR: Add a file to the repository and verify it is in the browser
----------------------------------------------------------------------
Traceback (most recent call last):
  File "trac\versioncontrol\tests\functional.py", line 68, in runTest
    revision = self._testenv.svn_add(fulltempfilename, random_page())
  File "trac\tests\functional\svntestenv.py", line 71, in svn_add
    'Add %s' % filename, filename], environ=environ)
  File "trac\tests\functional\testenv.py", line 222, in call_in_workdir
    close_fds=close_fds, cwd=self.work_dir(), env=environ)
  File "C:\Python26\lib\subprocess.py", line 633, in __init__
    errread, errwrite)
  File "C:\Python26\lib\subprocess.py", line 842, in _execute_child
    startupinfo)
TypeError: environment can only contain strings

======================================================================
ERROR: Verify browser log for a new file
----------------------------------------------------------------------
Traceback (most recent call last):
  File "trac\versioncontrol\tests\functional.py", line 93, in runTest
    revision = self._testenv.svn_add(fulltempfilename, '')
  File "trac\tests\functional\svntestenv.py", line 71, in svn_add
    'Add %s' % filename, filename], environ=environ)
  File "trac\tests\functional\testenv.py", line 222, in call_in_workdir
    close_fds=close_fds, cwd=self.work_dir(), env=environ)
  File "C:\Python26\lib\subprocess.py", line 633, in __init__
    errread, errwrite)
  File "C:\Python26\lib\subprocess.py", line 842, in _execute_child
    startupinfo)
TypeError: environment can only contain strings

----------------------------------------------------------------------
Ran 1206 tests in 974.582s

FAILED (errors=2)

I guess the second error follows from the first one (probably the file that was not added was not verifiable in browser log), but I'm not sure what causes the first error. What does it mean that the environment can only contain strings?

by anatoly techtonik <techtonik@…>, 14 years ago

Attachment: winx_install_elevated.diff added

installer with windows user access control

in reply to:  3 ; comment:6 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to itamaro:

See screenshots in win7_install_warnings.png.

When I run the installer "as administrator" the warnings are gone, so it's probably related to access rights. Can't confirm that this time the installation worked, since I already have the working installation from the tarball…

With the attached patch installer should give you an option to execute itself with admin privileges. http://docs.python.org/distutils/builtdist.html#vista-user-access-control-uac I would really like to know if it will work.

in reply to:  6 ; comment:7 by Christian Boos, 14 years ago

Replying to anatoly techtonik <techtonik@…>:

With the attached patch installer should give you an option to execute itself with admin privileges. http://docs.python.org/distutils/builtdist.html#vista-user-access-control-uac I would really like to know if it will work.

With or without the option, the installers produced by Python 2.6 don't show those warnings, whereas those built with 2.4 or 2.5 do. But unfortunately installers built with 2.6 have a dependency on msvcr90.dll, something which we can't expect to be present on all Windows systems and we certainly don't want to bundle the redist or advise people to install that as a prerequisite…

in reply to:  5 ; comment:8 by Christian Boos, 14 years ago

Replying to itamaro:

Test results:

 File "trac\tests\functional\svntestenv.py", line 71, in svn_add
    'Add %s' % filename, filename], environ=environ)
 ...
 File "C:\Python26\lib\subprocess.py", line 842, in _execute_child
    startupinfo)
TypeError: environment can only contain strings

… What does it mean that the environment can only contain strings?

I suppose some unicode object sneaked in… If the error is reproducible, add a print repr(environ) in trac\tests\functional\svntestenv.py, near line 71.

in reply to:  7 ; comment:9 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to cboos:

But unfortunately installers built with 2.6 have a dependency on msvcr90.dll, something which we can't expect to be present on all Windows systems and we certainly don't want to bundle the redist or advise people to install that as a prerequisite…

Are you sure about this? I've just compiled Trac installer with distutils 2.6.5 on Vista and dependency walker doesn't show any msvcr90.dll

in reply to:  9 ; comment:10 by Christian Boos, 14 years ago

Replying to anatoly techtonik <techtonik@…>:

Are you sure about this? I've just compiled Trac installer with distutils 2.6.5 on Vista

Are you using a mingw Python? What's the output of python -V for you?

in reply to:  10 ; comment:11 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to cboos:

Are you sure about this? I've just compiled Trac installer with distutils 2.6.5 on Vista

Are you using a mingw Python? What's the output of python -V for you?

Is there a mingw version already? I use the one that is installed from .msi installer.

M:\>python -V
Python 2.6.5

M:\>python
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

in reply to:  11 comment:12 by Christian Boos, 14 years ago

Replying to anatoly techtonik <techtonik@…>:

Replying to cboos:

Are you sure about this? I've just compiled Trac installer with distutils 2.6.5 on Vista

Are you using a mingw Python? What's the output of python -V for you?

Is there a mingw version already? I use the one that is installed from .msi installer.

Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32

Strange indeed, neither my good old win32 Python 2.6.1 nor the freshly installed Python 2.6.5 (x64) are able to build an installer with no dependency to msvcr90, unless there's a magic flag I missed. Are -you- really sure of what you've seen with depends? ;-)

$ /C/Dev/Python261/python setup.py bdist_wininst
...

$ dumpbin /dependents dist/Trac-0.12rc1.win32.exe
Microsoft (R) COFF/PE Dumper Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file dist/Trac-0.12rc1.win32.exe

File Type: EXECUTABLE IMAGE

  Image has the following dependencies:

    COMCTL32.dll
    KERNEL32.dll
    USER32.dll
    GDI32.dll
    ADVAPI32.dll
    SHELL32.dll
    ole32.dll
    MSVCR90.dll

  Summary

        2000 .data
        8000 .rdata
        2000 .rsrc
        7000 .text

in reply to:  8 ; comment:13 by Itamar Oren, 14 years ago

Replying to cboos:

Replying to itamaro:

Test results: …

I suppose some unicode object sneaked in… If the error is reproducible, add a print repr(environ) in trac\tests\functional\svntestenv.py, near line 71.

So it appears.

I added:

        for k, v in environ.iteritems():
            print 'key', k, type(k)
            print 'value', v, type(v)

and caught these:

key TK_LIBRARY <type 'str'>
value C:\Python26\tcl\tk8.5 <type 'unicode'>
key TIX_LIBRARY <type 'str'>
value C:\Python26\tcl\tix8.4.3 <type 'unicode'>
key TCL_LIBRARY <type 'str'>
value C:\Python26\tcl\tcl8.5 <type 'unicode'>

removing them resulted all-passing tests.

but why does unicode env-vars cause problems?

in reply to:  13 comment:14 by Christian Boos, 14 years ago

Replying to itamaro:

but why does unicode env-vars cause problems?

This is PythonBug:6906, fix will be in 2.6.6.

comment:15 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to cboos:

Are you sure about this? I've just compiled Trac installer with distutils 2.6.5 on Vista

Strange indeed, neither my good old win32 Python 2.6.1 nor the freshly installed Python 2.6.5 (x64) are able to build an installer with no dependency to msvcr90, unless there's a magic flag I missed. Are -you- really sure of what you've seen with depends? ;-)

The only magic flag - user_access_control = auto in setup.cfg, but I doubt it affects anything. As I don't have MS VC tools installed, here is pythonic probe. I also attach full dump of imported symbols.

>>> import pefile
>>> pe =  pefile.PE("Trac-0.12rc1.win32.exe")
>>> for entry in pe.DIRECTORY_ENTRY_IMPORT:
...   print entry.dll
...
COMCTL32.dll
KERNEL32.dll
USER32.dll
GDI32.dll
ADVAPI32.dll
SHELL32.dll
ole32.dll
>>>

by anatoly techtonik <techtonik@…>, 14 years ago

Attachment: Trac-0.12rc1.win32.exe.txt added

import table

comment:16 by anatoly techtonik <techtonik@…>, 14 years ago

I can't attach archive itself, so I uploaded it to some butt-sponsored hosting http://www.2shared.com/file/WWQU7v-E/Trac-012rc1win32.html

in reply to:  15 ; comment:17 by Christian Boos, 14 years ago

Replying to anatoly techtonik <techtonik@…>:

… I also attach full dump of imported symbols.

Ok, I believe you :-) Actually, what happened is that at some point after 2.6.1, the Lib/distutils/command/wininst-*.exe were linked statically, precisely to get rid of this dependency (as I found out by reading this mail). But apparently the 2.6.5 (x64) version still does it the old way, that's why we had diverging results.

So I'll install a x86 2.6.5 version, and if all goes as expected, I'll be able to use that for building the next installers.

in reply to:  17 comment:18 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to cboos:

Created upstream to trac http://bugs.python.org/issue8929 Expecting Trac install to grow fat. =)

in reply to:  17 ; comment:19 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to cboos:

But apparently the 2.6.5 (x64) version still does it the old way, that's why we had diverging results.

Python folks can not confirm this, and I am unable to provide any insights - can you comment on this issue http://bugs.python.org/issue8929#msg107253?

in reply to:  19 ; comment:20 by Christian Boos, 14 years ago

Replying to anatoly techtonik <techtonik@…>:

Replying to cboos:

But apparently the 2.6.5 (x64) version still does it the old way, that's why we had diverging results.

Python folks can not confirm this, and I am unable to provide any insights - can you comment on this issue http://bugs.python.org/issue8929#msg107253?

Yes, it was my mistake. But please, next time don't create Python bugs on our behalf, thanks ;-) If I had wanted to report that problem, I (hope I) would have been more careful and double checked the version numbers.

Can you please try ftp://ftp.edgewall.org/tmp/Trac-0.12rc1-r9835.win32.exe (MD5: eb5ee5e2e2c45839f2758f7bc67452e1)?

comment:21 by Mikael Relbe, 14 years ago

Please update TracPermissions page, the new permission WIKI_RENAME was forgotten.

in reply to:  20 comment:22 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to cboos:

Yes, it was my mistake. But please, next time don't create Python bugs on our behalf, thanks ;-) If I had wanted to report that problem, I (hope I) would have been more careful and double checked the version numbers.

np. I just thought you might not have much time being busy the release. In any case I looked for solving the same problem for SCons installers and it is a relief to know we can generate SCons installers with 2.6.5 and they will run with Python 2.4. Thanks. We now have only one problem - how to make newer distutils 2.6.5 produce winist on Linux like it could with previous versions.

Can you please try ftp://ftp.edgewall.org/tmp/Trac-0.12rc1-r9835.win32.exe (MD5: eb5ee5e2e2c45839f2758f7bc67452e1)?

Works like a charm.

comment:23 by Christian Boos, 14 years ago

We have one minor regression with Python 2.7 (b1 and rc1) on #8757. The test introduced in r8683 fails:

FAIL: test (trac.wiki.tests.formatter.WikiTestCase)
Test WikiPageName with label
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Workspace\src\trac\repos\trunk\trac\wiki\tests\formatter.py", line 190, in test
    % (msg, self.file, self.line, self.title, formatter.flavor))
AssertionError: u'<p>\nSee details of the <a class="missing wiki" href="/wiki/WikiPageNames" rel [truncated]... != u'<p>\nSee details of the
 <a class="missing wiki" href="/wiki/WikiPageNames" rel [truncated]...
  <p>
  See details of the <a class="missing wiki" href="/wiki/WikiPageNames" rel="nofollow">wiki page name?</a> syntax.
- Here's a <a class="missing wiki" href="/wiki/BadExample" rel="nofollow">bad?</a> example with special whitespace.
?                                                                         ^  ^^^^^^^      ^^^^^^^^^^^ ^^^^^^^^^^^^^
+ Here's a [<a class="missing wiki" href="/wiki/BadExample" rel="nofollow">BadExample?</a>
?          +                                                               ^  ^      ^^^ ^
+ bad] example with special whitespace.
  </p>

What is strange is that the \f character is actually interpreted as whitespace.

>>> re.match(r'\s', u'\f', re.UNICODE)
<_sre.SRE_Match object at 0x02746BB8>

If someone has an idea…

Not a blocker though, by the time 2.7 gets more widely used, we will be at 0.12.1 ;-)

in reply to:  23 ; comment:24 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to cboos:

We have one minor regression with Python 2.7 (b1 and rc1) on #8757.

Not a blocker though, by the time 2.7 gets more widely used, we will be at 0.12.1 ;-)

Maybe we should file an upstream bugreport, so after 2.7 is released even 0.12 will work as expected?

in reply to:  24 ; comment:25 by Christian Boos, 14 years ago

Replying to anatoly techtonik <techtonik@…>:

Replying to cboos:

We have one minor regression with Python 2.7 (b1 and rc1) on #8757.

Not a blocker though, by the time 2.7 gets more widely used, we will be at 0.12.1 ;-)

Maybe we should file an upstream bugreport, so after 2.7 is released even 0.12 will work as expected?

Please no … read comment:20 again. Until we know more precisely what's going on and have a small and reproducible test case, there's no point in creating a bug in the Python BTS.

in reply to:  25 ; comment:26 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to cboos:

Maybe we should file an upstream bugreport, so after 2.7 is released even 0.12 will work as expected?

Please no … read comment:20 again. Until we know more precisely what's going on and have a small and reproducible test case, there's no point in creating a bug in the Python BTS.

It is much worse to have buggy Python released than to mistake in one more bug judgement. Python 2.7 should be backwards compatible, so if there are some difference in assumed behavior - it should at least be reported to python-dev. rc and beta are released just for this purpose.

in reply to:  26 ; comment:27 by Christian Boos, 14 years ago

Replying to anatoly techtonik <techtonik@…>:

Replying to cboos:

Maybe we should file an upstream bugreport, so after 2.7 is released even 0.12 will work as expected?

Please no … read comment:20 again. Until we know more precisely what's going on and have a small and reproducible test case, there's no point in creating a bug in the Python BTS.

It is much worse to have buggy Python released than to mistake in one more bug judgement. Python 2.7 should be backwards compatible, so if there are some difference in assumed behavior - it should at least be reported to python-dev. rc and beta are released just for this purpose.

Of course. But by telling them only "hey, Trac has one regression in a test", you're not helping them, you're potentially wasting their time if it turns out it's not a bug in Python, assuming someone will actually dig deeper. Maybe we're misusing something, maybe we rely on undocumented behavior, … it's our job to see if it's really a bug in Python or not. If you'd like to help on that aspect, you're welcome, but please refrain from crying wolf (again), on the Python BTS or on Python-dev.

in reply to:  27 comment:28 by anatoly techtonik <techtonik@…>, 14 years ago

Replying to cboos:

Maybe we're misusing something, maybe we rely on undocumented behavior, … it's our job to see if it's really a bug in Python or not.

As you wish. I don't have time to evaluate the potential impact of this issue, so my assumption is that if we don't use Python 2.7 specific features then everything should just work. If this assumption is wrong - I would like to discuss it from the point of forward safety and maintainability of Python application.

If you'd like to help on that aspect, you're welcome, but please refrain from crying wolf (again), on the Python BTS or on Python-dev.

I'd like to, but it's unlikely to happen. But if you need something else - just let me know when I can play a crying wolf again. =)

in reply to:  27 ; comment:29 by Christian Boos, 14 years ago

Replying to cboos:

Maybe we're misusing something, maybe we rely on undocumented behavior, …

Maybe it's a backward incompatible change :-)

The change which introduced the regression is concerning unicode.splitlines:

$ /C/Dev/Python265/python
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> "a\fb\vc\nd".splitlines()
['a\x0cb\x0bc', 'd']
>>> u"a\fb\vc\nd".splitlines()
[u'a\x0cb\x0bc', u'd']
>>>

$ /C/Dev/Python27rc1/python
>>> "a\fb\vc\nd".splitlines()
['a\x0cb\x0bc', 'd']
>>> u"a\fb\vc\nd".splitlines()
[u'a', u'b', u'c', u'd']
>>>

This corresponds to PythonBug:7643.

Also mentioned in the NEWS:

  • Backwards incompatible change: Unicode codepoints line tabulation (0x0B) and form feed (0x0C) are now considered linebreaks, as specified in Unicode Standard Annex #14. See issue #7643. http://www.unicode.org/reports/tr14/

Suggested fix: t9404-unicode-splitlines.diff.

The other possibility would be to normalize those characters the other way round (i.e. to '\n') and change the test, to match the intended behavior change in Python.

by Christian Boos, 14 years ago

wiki: normalize space in source text. Patch based on r9846.

comment:30 by Christian Boos, 14 years ago

I just noticed a regression in the js "expand folder" feature, in some languages (de for example).

in reply to:  30 ; comment:31 by Remy Blank, 14 years ago

Replying to cboos:

I just noticed a regression in the js "expand folder" feature, in some languages (de for example).

Works fine here. Do a "Shift+Reload" in your browser ;-)

in reply to:  31 comment:32 by Christian Boos, 14 years ago

Replying to rblank:

Replying to cboos:

I just noticed a regression in the js "expand folder" feature, in some languages (de for example).

Works fine here. Do a "Shift+Reload" in your browser ;-)

That's the conclusion I was going to make as well ;-) Still, I'm curious about what the error was, as I forgot to jump into the console…

in reply to:  21 comment:33 by Christian Boos, 14 years ago

Replying to mrelbe:

Please update TracPermissions page, the new permission WIKI_RENAME was forgotten.

Done part of r9863.

in reply to:  29 comment:34 by Christian Boos, 14 years ago

Replying to cboos:

Suggested fix: t9404-unicode-splitlines.diff.

Comitted as r9868. A few more updates from the wiki were committed in r9869 and r9871.

All my test environments have now passed all the tests at that revision, time for tagging!

comment:35 by Christian Boos, 14 years ago

Resolution: fixed
Status: newclosed
easy_install Trac
...
Best match: Trac 0.12

Trac 0.12 is released, enjoy!

comment:36 by anonymous, 14 years ago

Yippie! Thanks very much :-)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Christian Boos.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Christian Boos to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.