Skip to content

ingest vsc-base & vsc-install#2708

Merged
wpoely86 merged 19 commits intoeasybuilders:4.xfrom
boegel:ingest_vsc_base
Dec 29, 2018
Merged

ingest vsc-base & vsc-install#2708
wpoely86 merged 19 commits intoeasybuilders:4.xfrom
boegel:ingest_vsc_base

Conversation

@boegel
Copy link
Copy Markdown
Member

@boegel boegel commented Dec 27, 2018

This set of changes basically ingests vsc-base & vsc-install into the EasyBuild framework, either by copying the modules from the vsc.utils namespace into easybuild.base, or by copying the functionality into an existing module in the easybuild.tools namespace.

As such, this effectively removes vsc-base and vsc-install as dependencies.

I tried to only make minimal changes to the code being copied in, this is mostly about making the EasyBuild framework independent from vsc-base, not about also cleaning up that code. Therefore, any complaints made by Hound CI will be ignored.
I did strip out a bunch of code from the vsc-base modules that is currently not required by the EasyBuild framework.

Once this change is merged, we can start working on making EasyBuild compatible with Python 3.

Note that the target branch here is 4.x (which was forked from the current develop branch), so these changes will only be included in EasyBuild 4.0.
It's quite likely there will be one or more 3.x releases (e.g. 3.8.1, 3.9.0) before 4.0 is released.

The current develop branch remains the right place for changes that should be included in the next EasyBuild (3.x) release. I'll keep an eye on merging develop into the 4.x branch on a regular basis.

@boegel boegel added the change label Dec 27, 2018
@boegel boegel added this to the 4.0 milestone Dec 27, 2018
Comment thread test/framework/easyconfigparser.py Outdated
Comment thread test/framework/config.py Outdated
Comment thread test/framework/systemtools.py
Comment thread test/framework/easyconfigformat.py Outdated
Comment thread easybuild/base/wrapper.py Outdated
Comment thread easybuild/base/optcomplete.py Outdated
Comment thread easybuild/base/optcomplete.py Outdated
Comment thread easybuild/base/optcomplete.py Outdated
Comment thread easybuild/base/optcomplete.py Outdated
Comment thread easybuild/base/optcomplete.py
Comment thread easybuild/base/optcomplete.py
Comment thread easybuild/base/optcomplete.py Outdated
Comment thread easybuild/base/optcomplete.py Outdated
Comment thread easybuild/base/optcomplete.py Outdated
Comment thread easybuild/base/generaloption.py Outdated
Comment thread easybuild/base/fancylogger.py
@boegel
Copy link
Copy Markdown
Member Author

boegel commented Dec 28, 2018

Some further clarification w.r.t. my motivation to ingest vsc-base (as requested by @wpoely86):

  • It helps with working towards Python 3 compatibility because:

    • Not depending on vsc-base anymore means that we can work on Python 3 compatibility on our own pace. Porting vsc-base to Python 3 will have to be done with great care because it's a dependency for a whole bunch of scripts & tools inside of HPC-UGent, including a bunch of private repositories, so that process will be slow (and it has barely started).
    • A significant amount of code that is not required by EasyBuild was stripped out when ingesting vsc-base, so there's less code to port to Python 3.
  • No longer depending on vsc-base means that we can also look into getting rid of setuptools as a dependency for EasyBuild. Since setuptools is also required for vsc-base itself (to define the vsc namespace that is spread across multiple directories), this is only possible without depending on vsc-base.

  • If we manage to also drop setuptools as a dependency, there are no Python packages not included in the Python standard library that we require (although there are still several optional dependencies that are only required for specific functionality).

Comment thread setup.py
"vsc-install >= 0.9.19",
"vsc-base >= 2.5.8",
],
install_requires=['setuptools >= 0.6'],
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so where are we still using it?

Copy link
Copy Markdown
Member Author

@boegel boegel Dec 29, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

setuptools is still used for now, yes, that needs more work

@wpoely86
Copy link
Copy Markdown
Member

It's big but I didn't find anything that caught my attention.

@boegel boegel added the python3 Python 3 compatibility label Jan 11, 2019


class LoggedException(Exception):
"""Exception that logs it's message when it is created."""
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

change python3 Python 3 compatibility

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants