Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ingest vsc-base & vsc-install #2708

Merged
merged 19 commits into from
Dec 29, 2018
Merged

Conversation

boegel
Copy link
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
test/framework/easyconfigparser.py Outdated Show resolved Hide resolved
test/framework/config.py Outdated Show resolved Hide resolved
test/framework/systemtools.py Show resolved Hide resolved
test/framework/easyconfigformat.py Outdated Show resolved Hide resolved
easybuild/base/wrapper.py Outdated Show resolved Hide resolved
easybuild/base/optcomplete.py Outdated Show resolved Hide resolved
easybuild/base/optcomplete.py Outdated Show resolved Hide resolved
easybuild/base/optcomplete.py Outdated Show resolved Hide resolved
easybuild/base/optcomplete.py Outdated Show resolved Hide resolved
easybuild/base/optcomplete.py Show resolved Hide resolved
easybuild/base/optcomplete.py Show resolved Hide resolved
easybuild/base/optcomplete.py Outdated Show resolved Hide resolved
easybuild/base/optcomplete.py Outdated Show resolved Hide resolved
easybuild/base/optcomplete.py Outdated Show resolved Hide resolved
easybuild/base/generaloption.py Outdated Show resolved Hide resolved
easybuild/base/fancylogger.py Show resolved Hide resolved
@boegel
Copy link
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).

"vsc-install >= 0.9.19",
"vsc-base >= 2.5.8",
],
install_requires=['setuptools >= 0.6'],
Copy link
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
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
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
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