Will it work with Python 3.3?

Shai


On Mon, Apr 22, 2013 at 9:54 AM, Uwe Schindler <[email protected]> wrote:

> That‘ what the script should do: it must invoke „cygpath“ to resolve
> windows paths and convert to Cygwin paths. There are already code paths in
> it.****
>
> ** **
>
> I would still recommend to install a real windows python like Jenkins. The
> main problem here is: windows (ANT) -> Cygwin (python) -> windows (Java)
> and that is likely to fail and is not really a supported configuration. For
> me, with native win32 python downloaded as windows installer all works as
> it should (I did not wait for it to finish).****
>
> ** **
>
> -----****
>
> Uwe Schindler****
>
> H.-H.-Meier-Allee 63, D-28213 Bremen****
>
> http://www.thetaphi.de****
>
> eMail: [email protected]****
>
> ** **
>
> *From:* Shai Erera [mailto:[email protected]]
> *Sent:* Monday, April 22, 2013 8:48 AM
>
> *To:* [email protected]
> *Subject:* Re: nightly-smoke on Cygwin****
>
> ** **
>
> I don't pass any -D arguments. I simply run 'ant nightly-smoke', just like
> I do 'ant precommit'. Only the latter recognizes JAVA7_HOME properly (set
> to /d/java/sun-java-70) and e.g. fails if it's not Oracle's 1.7.****
>
> I don't know if the problem is in Ant or the python script. On one hand,
> since the rest of the targets work when I invoke them from Cygwin, I think
> it's the python script. But on the other hand, when I invoke
> smokeTestRelease to verify an RC, and I give it a relative path to place
> the downloaded artifacts, it resolves them properly.****
>
> I think the problem here is that Ant resolves the path to D:\, which
> breaks python. I.e. perhaps if the script replaced D:\ and C:\ with
> /cygdrive/d and /cygdrive/c it will work? Do you know how to do that in
> python? I don't mind giving it a try.
>
> Shai****
>
> ** **
>
> On Mon, Apr 22, 2013 at 9:31 AM, Uwe Schindler <[email protected]> wrote:***
> *
>
> If you pass a relative JAVA7_HOME to the smoke tester, it will fail at a
> later stage, because when running parts of the ANT build, the CWD is
> different, so JAVA_HOME passed to ANT is wrong. This is the reason why the
> sysprop is “transformed” to be absolute.****
>
>  ****
>
> The Windows-style full path in JAVA7_HOME is correct from the java side
> (it expects a Windows path), so you have to pass a Windows path, not a
> Cygwin path. The python script should convert JAVA7_HOME to its own
> filesystem conventions with the “cygpath” tool when doing checks – and that
> is the bug here.****
>
>  ****
>
> The second error is related to you environment args. Whn using –D
> properties passed to ANT, you have to use windows-style paths. The double
> backslash is broken. Mabye use a forward slash if you are invoking from
> Cygwin shell, to prevent the special meaning of \ in cygwin.****
>
>  ****
>
> Uwe****
>
>  ****
>
> -----****
>
> Uwe Schindler****
>
> H.-H.-Meier-Allee 63, D-28213 Bremen****
>
> http://www.thetaphi.de****
>
> eMail: [email protected]****
>
>  ****
>
> *From:* Shai Erera [mailto:[email protected]]
> *Sent:* Monday, April 22, 2013 8:18 AM****
>
>
> *To:* [email protected]
> *Subject:* Re: nightly-smoke on Cygwin****
>
>  ****
>
> Not sure I follow all your arguments. Other targets run fine from Cygwin,
> even while the paths are defined absolute / relative.****
>
> The weird error I got the second time seems unrelated to Cygwin at all
> (nor Ant):
>
>
> /cygdrive/d/dev/lucene/lucene-trunk/D:\\dev\\lucene\\lucene-trunk\\lucene\\build\\fakeReleaseTmp
> ****
>
> Looks like the python script assumes the argument given to it is already
> relative? I.e. in Java File it would be the equivalent of new File(dir,
> arg)?****
>
> And as for the first replacement of file= by value=, according to the
> <exec> task documentation, I think it's ok to change to value=, because
> we're passing an environment variable, not a file location. Why do other
> targets run fine when they just refer to ${JAVA7_HOME}, but you think we
> must pass a full path reference to the environment variable given to <exec>?
> ****
>
> Shai****
>
>  ****
>
> On Mon, Apr 22, 2013 at 9:09 AM, Uwe Schindler <[email protected]> wrote:***
> *
>
> Hi,****
>
>  ****
>
> Hi this is a general problem with horrible CYGWIN J****
>
> I strongly disagree with replacing file=”…” by value=”..” because this
> makes the general build less portable between platforms and not depend on
> relative directories set correct (especially inside the lucene subfolders,
> where some build.xml set properties for other build.xmls, so all paths
> should be absolute. The problem here is on cygwin’s side: It simply uses
> incompatible path names.****
>
>  ****
>
> In my opinion, Java + Cygwin should not be used together for several
> reasons:****
>
> -          Java is not a with  Cygwin app, so it expects JAVA_HOME as
> full **windows** path – there is also no Cygwin-java available (thanks,  J
> )****
>
> -          Your python version is expecting /cygdrive paths with forward
> slashes. ANT is not able to produce them unless you use a special Cygwin
> ANT version.****
>
>  ****
>
> The fix here is to make the python script check for Cygwin environment and
> fix those path using the dos2unix tool. It already does this, so maybe
> something is missing.****
>
>  ****
>
> The more correct variant is not to use Cygwin at all: The Jenkins server
> and I use a native win32 python. If you want a real POSIX/UNIX environment,
> I would use the official “Microsoft” one: Services for Unix, but also not
> in combination with Java. But I never tried the smoke tester with it (I
> don’t use the smoke tester, because I prefer to check the artifacts
> manually before giving my vote. The +1 is coming from me, not a script).**
> **
>
>  ****
>
> Uwe****
>
> -----****
>
> Uwe Schindler****
>
> H.-H.-Meier-Allee 63, D-28213 Bremen****
>
> http://www.thetaphi.de****
>
> eMail: [email protected]****
>
>  ****
>
> *From:* Shai Erera [mailto:[email protected]]
> *Sent:* Monday, April 22, 2013 7:50 AM
> *To:* [email protected]
> *Subject:* Re: nightly-smoke on Cygwin****
>
>  ****
>
> Changing <arg file= to <arg value= didn't help, I still got the same
> error.****
>
>
> I should note that I am able to run smokeTestRelease fine, when validating
> RCs.****
>
>  ****
>
> Any ideas (besides moving to Linux :))?****
>
> Shai****
>
>  ****
>
> On Mon, Apr 22, 2013 at 8:18 AM, Shai Erera <[email protected]> wrote:****
>
> Hi
>
> I ran nightly-smoke on my Windows 7 via Cygwin, and ran into two errors as
> depicted below. JAVA7_HOME is set to /d/java/sun-java-70 and it seems to
> work with other ant targets, e.g. precommit, test etc.
>
> prepare-release-no-sign:
>     [mkdir] Created dir:
> D:\dev\lucene\lucene-trunk\lucene\build\fakeRelease
>      [copy] Copying 401 files to
> D:\dev\lucene\lucene-trunk\lucene\build\fakeRelease\lucene
>      [copy] Copying 194 files to
> D:\dev\lucene\lucene-trunk\lucene\build\fakeRelease\solr
> *     [exec] JAVA7_HOME is D:\d\java\sun-java-70*****
>
> This seems to be caused by this line:
>
>   <env key="JAVA7_HOME" file="${JAVA7_HOME}"/>****
>
> If I replace it by this, I don't get the error anymore (but there's a
> different one, see below):
>
>   <env key="JAVA7_HOME" value="${JAVA7_HOME}"/>****
>
> According to http://ant.apache.org/manual/Tasks/exec.html, 'value'
> denotes "The literal value for the environment variable." while 'file' is
> "The value for the environment variable. *Will be replaced by the
> absolute filename of the file by Ant*.".****
>
> Anyone can confirm it is ok to make this change?****
>
> After making this change, I hit another error:****
>
> prepare-release-no-sign:
>     [mkdir] Created dir:
> D:\dev\lucene\lucene-trunk\lucene\build\fakeRelease
>      [copy] Copying 401 files to
> D:\dev\lucene\lucene-trunk\lucene\build\fakeRelease\lucene
>      [copy] Copying 194 files to
> D:\dev\lucene\lucene-trunk\lucene\build\fakeRelease\solr****
>
>      [exec] JAVA7_HOME is /d/java/sun-java-70
>      [exec] NOTE: output encoding is UTF-8****
>
>
>      [exec] Traceback (most recent call last):****
>
>      [exec]   File
> "D:\dev\lucene\lucene-trunk\dev-tools\scripts\smokeTestRelease.py", line
> 1357, in <module>
>      [exec]     main()
>      [exec]   File
> "D:\dev\lucene\lucene-trunk\dev-tools\scripts\smokeTestRelease.py", line
> 1301, in main
>      [exec]     smokeTest(baseURL, version, tmpDir, isSigned)
>      [exec]   File
> "D:\dev\lucene\lucene-trunk\dev-tools\scripts\smokeTestRelease.py", line
> 1312, in smokeTest
>      [exec]     os.makedirs(tmpDir)
>      [exec]   File "/usr/lib/python3.2/os.py", line 152, in makedirs
>      [exec]     mkdir(name, mode)
>      [exec] OSError: [Errno 2] No such file or directory:
> '/cygdrive/d/dev/lucene/lucene-trunk/D:\\dev\\lucene\\lucene-trunk\\lucene\\build\\fakeReleaseTmp'
> ****
>
> See the last line, how the fakeRelease location is corrupt. Could it be
> this line:****
>
>
>   <arg file="${fakeReleaseTmp}"/>****
>
>  ****
>
> The property fakeReleaseTmp is defined as relative path:****
>
>   <property name="fakeReleaseTmp" location="lucene/build/fakeReleaseTmp"/>
> ****
>
>  ****
>
> In Eclipse, when I hover over the property, it displays the correct full
> path. But I wonder if Ant gets confused ... I'm running now with file=
> replaced by value=, but it will take some time for this to complete (the
> previous error I got was after 48 minutes).****
>
> Again, can anyone confirm this change is safe?
>
> Shai****
>
>  ****
>
>  ****
>
> ** **
>

Reply via email to