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