Hi Bernd,

On 27/05/15 10:43, Mohr, Bernd wrote:
Thanks. I saw your [easybuild-framework] merge request already last night.
That's impressive, since I only opened the PR this morning. ;-)

Timezone confusion, I guess...

As I commented already there, the new script works fine now on my system even in the presence
of the easyblocks symlink

Thanks for confirming the fix, PR has just been merged!


regards,

Kenneth


Thanks
Bernd

*From:* Kenneth Hoste <mailto:[email protected]>
*Sent:* ‎Wednesday‎, ‎27‎ ‎May‎, ‎2015 ‎10‎:‎08
*To:* EasyBuild <mailto:[email protected]>

Hi Bernd,

I was able to reproduce your problem, quite easily in fact, by simply putting a symlink in my home directory like you have. Interesting!

I also found the cause of the problem, and have a fixed bootstrap script.

The problem was that the setup.py installation script for easybuild-easyblocks imports directly from the 'easyblocks' namespace (rather than from 'easybuild.easyblocks') to determine its own version:

    import sys
    ...
sys.path.append('easybuild')
    from easyblocks import VERSION

The current directory is automagically prepend to the Python search path (sys.path), which explains why you were seeing v2.1.0 being picked up when running the bootstrap script from your home directory.

The fix is pretty trivial: make sure that any directories that provide the 'easyblocks' namespace are excluded from the Python search path before the bootstrap is started; the required logic was already there for the 'easybuild' and 'vsc' namespaces.

PR to fix this is at https://github.com/hpcugent/easybuild-framework/pull/1289 . It also fixes another problem I ran into when retesting the bootstrap script, related to the $EASYBUILD_BOOTSTRAP* environment variables that are picked up by it.


regards,

Kenneth

On 26/05/15 21:32, Mohr, Bernd wrote:

    I also tried it with and without setting PYTHONPATH to "", no
    difference
    Bernd
    ------------------------------------------------------------------------
    Von: Kenneth Hoste
    Gesendet: 26.05.2015 20:13
    An: [email protected]
    Betreff: Re: [easybuild] [ANN] EasyBuild v2.1.1



    On 26/05/15 17:46, Mohr, Bernd wrote:

        Yes, I can reproduce the issue.
        See attached typescript


    Is this $HOME/easyblocks path used in your environment somehow?
    $PYTHONPATH maybe?

    This is very weird... :-)


    K.


        Bernd

        Sent from Windows Mail

        *From:* Kenneth Hoste <mailto:[email protected]>
        *Sent:* ‎Tuesday‎, ‎26‎ ‎May‎, ‎2015 ‎16‎:‎18
        *To:* EasyBuild <mailto:[email protected]>

        Hi Bernd,

        On 26/05/15 12:29, Mohr, Bernd wrote:

            Kenneth,

            by accident, I found the cause for the failure

            In my home directory I had created a symbolic link

            easyblocks →
            
/opt/local/easybuild-2.1/software/Core/EasyBuild/2.1.0/lib/python2.7/site-packages/easybuild_easyblocks-2.1.0-py2.7.egg/easybuild/easyblocks/

            to be able to quicker access the code. Of course, I was
            running the bootstrap script
            from my home directory 😉

            All fine now.


        As far as I can tell, having a symlink like that present
        shouldn't impact the bootstrap procedure at all...

        Is that the only thing you changed? And can you reproduce the
        problem now if you put the symlink back in place (to the 2.1.0
        directory)?


        regards,

        Kenneth


            Thanks
            Bernd


            *From:* Kenneth Hoste <mailto:[email protected]>
            *Sent:* ‎Tuesday‎, ‎26‎ ‎May‎, ‎2015 ‎11‎:‎42
            *To:* EasyBuild <mailto:[email protected]>

            Hi Bernd,


            On 26/05/15 11:32, Mohr, Bernd wrote:

                Dear EasyBuild team,

                I tried to bootstrap v.2.1.1 (method (i)), but get the
                following error:

                
**********************************************************************************************************************
                carbon-vm:~ [103] ./bootstrap_eb.py
                --prefix=/opt/local/easybuild-2.1.1


            Don't use --prefix here, just specify the install prefix
            to bootstrap EasyBuild into directly:

                $ ./bootstrap_eb.py /opt/local/easybuild-2.1.1

            This is not the cause of the problem however, since this
            only applies to stage 2 of the bootstrap...

                [[INFO]] Found module command 'lmod' (Lmod), so using it.
                [[INFO]]

                +++ STAGE 0: installing distribute via included
                (patched) distribute_setup.py...


                Downloading
                
http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz
                Extracting in /tmp/tmp8TWdBC
                Now working in /tmp/tmp8TWdBC/distribute-0.6.34
                Installing Distribute
                [[INFO]]

                +++ STAGE 1: installing EasyBuild in temporary dir
                with easy_install...


                [[INFO]] installing EasyBuild with 'easy_install
                --quiet --upgrade --prefix=/tmp/tmpvL8XTk/eb_stage1
                easybuild'
                Installing with setuptools.setup...
                Installing version 2.1.1
                warning: install_lib: 'build/lib' does not exist -- no
                Python modules to install

                zip_safe flag not set; analyzing archive contents...
                Installing with setuptools.setup...
                Installing version 2.1.1 (API version 2)
                Installing with setuptools.setup...
                Installing version 2.1.0 (required versions: API >= 2)
                error: Could not find required distribution
                easybuild-easyblocks==2.1.1


            For some reason, easy_install is deciding to go with
            easybuild-easyblocks v2.1.0, only to then complain that it
            can't find v2.1.1 ...
            I've just retried myself, I can't reproduce this problem;
            bootstrap is working fine for me (just like it did when I
            tested this after the release).

            Can you provide debug output by defining
            $EASYBUILD_BOOTSTRAP_DEBUG to something, e.g. "export
            EASYBUILD_BOOTSTRAP_DEBUG=1" ?

            Maybe also share what you have in
            $HOME/.local/lib/python2.*/site-packages, if anything.


            regards,

            Kenneth




                
**********************************************************************************************************************


                Any idea what is wrong?
                Bernd


                *From:* Kenneth Hoste <mailto:[email protected]>
                *Sent:* ‎Monday‎, ‎18‎ ‎May‎, ‎2015 ‎19‎:‎20
                *To:* EasyBuild <mailto:[email protected]>

                Hello EasyBuilders,

                I'm happy to announce the release of EasyBuild v2.1.1,
                which is the best
                release so far, no doubt about it. (*)

                This is a bugfix release, mainly motivated by some
                issues with the
                --module-only command line option that was introduced
                in EasyBuild
                v2.1.0: modules generated via --module-only in
                combination with --force
                were missing 'module load' statements for
                dependencies, and several
                easyblocks turned out to be incompatible with
                --module-only.
                These problems have been resolved, and the unit tests
                were enhanced to
                try and make sure easyblocks remain compatible with
                --module-only.

                Other changes include support for supplying regular
                expression patterns
                to --search (and only considering the easyconfig
                filename, rather than
                the entire path, see [2]), support for builing and
                installing GROMACS
                v5.x, adding several new toolchain versions
                (ictce/7.3.5 and Cray*), and
                support for installing 3 new software packages.

                A detailed overview of all changes is available in the
                EasyBuild release
                notes [3].

                To upgrade to EasyBuild v2.1.1, there are several options:

                     (i) (re)bootstrap EasyBuild to obtain an
                EasyBuild/2.1.1 module to
                load [4]

                     (ii) install EasyBuild v2.1.1 with a previous
                version of EasyBuild,
                using the easyconfig file available in [5]
                         note: make sure you're using https PyPI
                source URLs in case
                you're using an easyconfig file obtained via some
                other way, cfr. [6]

                     (iii) install EasyBuild v2.1.1 from PyPI, using
                one of the standard
                Python installation tools (easy_install, pip, ...) [7]

                     (iv) updating your Git working copies of the
                different EasyBuild
                repositories


                Enjoy!


                regards,

                Kenneth
                EasyBuild release manager

                [1] https://pypi.python.org/pypi/easybuild
                [2]
                
https://easybuild.readthedocs.org/en/latest/Using_the_EasyBuild_command_line.html#searching-for-easyconfigs
                [3]
                https://easybuild.readthedocs.org/en/latest/Release_notes.html
                [4]
                
https://easybuild.readthedocs.org/en/latest/Installation.html#bootstrapping-easybuild
                [5]
                https://github.com/hpcugent/easybuild-easyconfigs/pull/1615
                [6]
                https://github.com/hpcugent/easybuild-framework/pull/1286
                [7]
                
https://easybuild.readthedocs.org/en/latest/Installation_Alternative.html#standard-installation-of-latest-release

                (*): I'm aware I stated the same about EasyBuild
                v2.1.0, but this was a
                valid statement at the time.


                
------------------------------------------------------------------------------------------------
                
------------------------------------------------------------------------------------------------
                Forschungszentrum Juelich GmbH
                52425 Juelich
                Sitz der Gesellschaft: Juelich
                Eingetragen im Handelsregister des Amtsgerichts Dueren
                Nr. HR B 3498
                Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen
                Huthmacher
                Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt
                (Vorsitzender),
                Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing.
                Harald Bolt,
                Prof. Dr. Sebastian M. Schmidt
                
------------------------------------------------------------------------------------------------
                
------------------------------------------------------------------------------------------------






Reply via email to