Skip to content

support for license parameter in easyconfig#526

Merged
boegel merged 19 commits intoeasybuilders:developfrom
stdweird:license
Mar 22, 2013
Merged

support for license parameter in easyconfig#526
boegel merged 19 commits intoeasybuilders:developfrom
stdweird:license

Conversation

@stdweird
Copy link
Contributor

@stdweird stdweird commented Mar 5, 2013

The license parameter is supported but not mandatory. More license classes need to be added first. The value in the easyconfig is a constant, not a string ie

license=GPLv2

not

license='GPLv2'

Available licenses can be checked with

eb --avail-easyconfig-licenses

This is a techpreview, ie subject for discussion and improvement.

@boegel
Copy link
Member

boegel commented Mar 5, 2013

@stdweird: Did you check the diff? The move of easyconfig.py to easybuild/framework/easyconfig/easyconfig.py is an delete-and-add, which makes it very difficult to review, i.e. we would have to go through the whole easyconfig.py and figure out what has changed on top of the move...

Maybe you should do the move first in a separate pull request, to make things clear? That will make is significantly easier to review.

Copy link
Member

Choose a reason for hiding this comment

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

space before ,

@stdweird
Copy link
Contributor Author

see #543 for extra constants to be defined

@stdweird
Copy link
Contributor Author

@boegel splitting up the shufling around in a separate pullrequest will take some effort, and quite a bit of code blocks have been moved around. so the diff will always contain large blocks or red and green.
most of the work was just renaming and/or moving around. only the license code is new.

btw, i actually wne tthrough all of the code to clean it up, and it was well worth it. this shouldn't take more then an hour to review in detail

@boegel
Copy link
Member

boegel commented Mar 19, 2013

OK, point taken, reproducing the shuffling around + fixes made in that code in another pull request would be too much work, and thus not worth the effort.

I'll bite the bullet and review this ASAP, but it would be nice if you open a separate pull request for the actual features in the future (although I know that in reality the shuffling around and implementing something new overlaps).

On a scale of 0 to 10, how eager are you to get the licensing stuff polished to be ready for v1.3?

@stdweird
Copy link
Contributor Author

i would like the refactoring and cleanup in 1.3. polishing up licensing implies adding lots of licenses and also changing the easyconfigs.having a license skeleton in 1.3 would help though (users can extend it themself since it uses the subclassing for discovery)

Copy link
Member

Choose a reason for hiding this comment

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

add PYTHON_LIBDIR constant and set it equal to distutils.sysconfig.get_python_lib(prefix=''), cfr easybuilders/easybuild-easyblocks#141

the OS_NAME and OS_VERSION constants that were merged in with #547 will also need to be aded here

Copy link
Member

Choose a reason for hiding this comment

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

Adding OS_NAME and friends is a part of stdweird#17.

@boegel
Copy link
Member

boegel commented Mar 21, 2013

Merging this with develop is a nightmare... :(

boegel added 3 commits March 22, 2013 00:14
Conflicts:
	easybuild/framework/easyblock.py
	easybuild/framework/easyconfig.py
	easybuild/main.py
	easybuild/tools/options.py
	easybuild/tools/repository.py
	setup.py
Copy link
Member

Choose a reason for hiding this comment

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

(2) makes no sense, use (2,) if you want a tuple

@boegel
Copy link
Member

boegel commented Mar 21, 2013

Besides the minor remarks, and stdweird#17 that should be merged in to fix the merging and missing code that was merged into easyconfig.py in the mean time, I see nothing wrong with how the license support is implemented, seems really clean and sensible to me.

Two things though:

  • for some reason, debug output in the log is incomplete, i.e. the output of commands that were executed is no longer being spit out, even though debug logging is enabled (the exact command being run is no longer shown, the output is not shown either); the expected behavior is working in the current develop without these changes included, so it's something specific to this pull request, maybe not passing down the debug log level anymore after the moving around of code?

with this branch:

== 2013-03-22 00:46:48,764 main.ConfigureMake DEBUG Changed to real build directory /Users/kehoste/.local/easybuild/build/FFTW/3.3.3/gompi-1.1.0-no-OFED/fftw-3.3.3/
== 2013-03-22 00:46:48,765 main.ConfigureMake INFO configuring...
== configuring...
== 2013-03-22 00:46:48,765 main.ConfigureMake INFO Starting configure step
== 2013-03-22 00:46:48,765 main.ConfigureMake INFO Running method configure_step part of step configure
== 2013-03-22 00:47:17,967 main.ConfigureMake INFO building...
== building...
== 2013-03-22 00:47:17,968 main.ConfigureMake INFO Starting build step

with current develop:

== 2013-03-22 00:55:51,404 main.ConfigureMake DEBUG Changed to real build directory /Users/kehoste/.local/easybuild/build/FFTW/3.3.3/gompi-1.1.0-no-OFED/fftw-3.3.3/
== 2013-03-22 00:55:51,405 main.ConfigureMake INFO configuring...
== configuring...
== 2013-03-22 00:55:51,405 main.ConfigureMake INFO Starting configure step
== 2013-03-22 00:55:51,405 main.ConfigureMake INFO Running method configure_step part of step configure
== 2013-03-22 00:55:51,406 main.filetools DEBUG run_cmd: running cmd  ./configure --prefix=/Users/kehoste/.local/easybuild/install/FFTW/3.3.3-gompi-1.1.0-no-OFED --enable-openmp --with-pic --enable-single --enable-sse2 --enable-mpi (in /Users/kehoste/.local/easybuild/build/FFTW/3.3.3/gompi-1.1.0-no-OFED/fftw-3.3.3)
  • one unit test fails on my end now, the same one that was sometimes failing for you (see below); we'll really need to figure this one out
FAIL: test_avail_easyconfig_params (easybuild.test.options.CommandLineOptionsTest)
Test listing available easyconfig parameters.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "easybuild/test/options.py", line 360, in test_avail_easyconfig_params
    run_test(custom='EB_foo', extra_params=['foo_extra1', 'foo_extra2'])
  File "easybuild/test/options.py", line 339, in run_test
    (param_type, avail_arg, args, outtxt))
AssertionError: Parameter type build is featured in output of eb -a (args: ['-a', '--unittest-file=/var/folders/6y/x4gmwgjn5qz63b7ftg4j_40m0000gn/T/eb-options-test-d2jrxu.log', '-e', 'EB_foo']): == 2013-03-22 00:34:04,117 runpy.easyblock.<module> INFO Derived full easyblock module path for EB_foo: easybuild.easyblocks.foo
== 2013-03-22 00:34:04,118 runpy.easyblock.<module> INFO Successfully obtained EB_foo class instance from easybuild.easyblocks.foo


----------------------------------------------------------------------
Ran 57 tests in 531.911s

FAILED (failures=1)
ERROR: Not all tests were successful.

resync with develop, fix the many conflicts, and make sure changes made in easyconfig.py are integrated in this branch too
Copy link
Contributor Author

Choose a reason for hiding this comment

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

is it only during installation? (do we need to add this to description of license_server as well)

Copy link
Member

Choose a reason for hiding this comment

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

This is just during installation, imho.

The software package itself takes this information and generates a license file, EasyBuild doesn't do that.

@stdweird
Copy link
Contributor Author

@boegel fixed broken unittest (eb -a was broken)

@boegel
Copy link
Member

boegel commented Mar 22, 2013

Did you check the debug logging issue as well?

@stdweird
Copy link
Contributor Author

@boegel, i'm on it. btw this should be docuemnted somewhere (it's for developers only)

export DEBUG_EASYBUILD_OPTIONS=1

enables early debugging (unset or set to 0 to disable)

export FANCYLOGGER_GETLOGGER_DEBUG=1

enables debugging in fancylogger, to debug issues with logging (eg in this case)

@boegel
Copy link
Member

boegel commented Mar 22, 2013

@stdweird: Please open a documentation issue in the easybuild repo, i.e. here: https://github.com/hpcugent/easybuild/issues?state=open

@stdweird
Copy link
Contributor Author

@boegel logging is fixed, all unittests pass

@boegel
Copy link
Member

boegel commented Mar 22, 2013

Unit tests pass on my end as well, fat FFTW build works on produced expected debug log messages. Merging it in!

boegel added a commit that referenced this pull request Mar 22, 2013
support for license parameter in easyconfig
@boegel boegel merged commit 6ee2796 into easybuilders:develop Mar 22, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants