Video summary
EasyBuild 5.0 introduces significant enhancements and breaking changes designed to simplify development workflows and improve the overall user experience. A central feature of this update is the introduction of `run_shell_command`, which unifies previous commands like `run` and `run_qa` into a single, more robust interface that consolidates functionality and improves error handling. Alongside this, trace output is now enabled by default to provide detailed logs for debugging multi-stage failures, while Python package installation defaults have been updated so that tools like pip and wheels are used automatically without requiring manual configuration in `.eb` files. The update also enhances support for manually downloading sources when direct links fail and enables `RPATH` linking by default to prevent library path issues, though documentation clarifies how users can disable this if necessary. Additionally, a new hook mechanism using `$EB_PYTHON_PREFIXES` resolves conflicts between different Python versions, making the tool compatible with virtual environments despite limitations in directly installing into them via the module system logic.
The release also involves important deprecations and policy shifts aimed at maintaining a cleaner codebase and repository structure. Support for Python 2 has been completely removed to align with modern standards, while older toolchain generations are being archived or deprecated in favor of recent releases; specifically, only the most recent six versions will accept new pull requests in the central repository. Unused easyconfigs without corresponding blocks have been eliminated, and legacy commands such as `run_command` along with specific old easyblocks for outdated software like ncurses will no longer function. Furthermore, older system and toolchain configurations are being moved to a separate, unsupported archive repository, effectively closing submissions for historical versions that lack active maintenance. These changes reflect a strategic decision to focus resources on current technology stacks while ensuring that users relying on very legacy blocks can find them in the archived collection if absolutely necessary.
Migration strategies for this major version update emphasize continuity rather than disruption, as switching to EasyBuild 5.0 does not require reinstalling existing software stacks or toolchains. To ease the transition pain and allow users time to adopt new configurations gradually, a final release version (4.99) followed by an interim patch series is planned before the full shift occurs. While there are considerations for consolidating branches into a single main branch eventually, current branching remains necessary for effective release management until old configuration parameter names like `config_opts` can be fully deprecated in favor of standardized ones. Users relying on specific pull requests merged prior to recent changes may need to migrate from using `from_pr=True` to explicit commit references (`from_commit`) as defaults evolve. The team also highlights future enhancements, such as integrating robust update features leveraging APIs like uv for Python dependencies and improving output organization with progress bars via Rich in the new shell command interface.
Looking ahead, the development focus includes expanding documentation regarding naming conventions and migration paths while actively seeking community feedback on remaining breaking changes or needed ports for archived software blocks. The team encourages users to provide input through Slack channels or issue trackers before finalizing the release candidate phase to ensure a smooth adoption process. Future iterations may offer scripts or strict modes to assist with transitioning from old parameter names, potentially allowing features like RPATH support to be toggled via configuration changes at convenient points in time without requiring recompilation of software. Ultimately, EasyBuild 5.0 represents a balanced approach between introducing powerful new capabilities and managing the inevitable friction of breaking changes through careful planning, community engagement, and strategic versioning that prioritizes long-term maintainability over immediate convenience for legacy setups.
Read the full video transcript
good so we're here and I'm going to talk
about easy build five um the very
observant or who were with us last year
will note that this is entirely the same
title slide as last year and hopefully
I've opened the right slides and um
we're going to have this year's
talk uh so information uh going to talk
about what's been implemented what we
aim to implement in the next couple of
months uh little bit about policy
changes also hoping to provide why we're
doing things you know why you know
particularly where we're talking about
deprecating things for the future or
breaking changes we'll tell you why um
what we're trying to do and also
obviously an important one tell you how
you can contribute um including a
Hands-On session with some
notes you'll see this sort of bit at the
bottom right of the screen here it says
information there are some other ones
that will come up breaking change um
there aren't too many of those but
that's a change in how easy build works
and that will be please do something you
know you will to use Easy build 5 you
will have to make a change to do
something but as I said there aren't too
many in that category bigger section is
enhancements new features things that
will make your life better or make our
life better developing um and the bottom
one code changes that's where we've uh
sorry code cleanup that's where we've
basically um improving our life by man
get rid of a bunch of code um there
though some of those sort of imply
breaking changes because we've removed a
few
things so easy build major versions over
the last 12 years from version one
onwards um I'm Optimist I'm optimistic
and Kenneth is optimistic that that 2024
is
correct but you'll see we're not
committing to a month
yet um and I also have both logos on
just
because so the First new enhancement
feature is Implement implementation of
run shell command which will replace
both run command and run command
QA um this is very much for those who
are developing particularly developing
either in framework or particularly
developing easy blocks run command and
run command QA are how you tell easy
build to run has to sort of suggest run
a command uh run command is go and
say make you know go and run make um run
command QA is where you
where the program that's running you'll
get your talet to run a command the
program will start putting at output and
then asking a user question of what do
you want to do at this point um which
easy build runs reads that output and
then responds to it well we're UNIF the
two into one command that does both um
one of the major reasons for this is
actually the default thing you want to
when you would want to use run command
at the moment to run a command and fail
if it isn't if it if the command fails
isn't actually the default method of
running command which means a whole
bunch of and we've actually already
implemented run shell command a whole
bunch of our changes simplify to just go
run shell command run command and it
just you know simplifies a little bit of
code makes our life a little bit
better um we're able to use more modern
python um and that will be linked to a
other changes with there and it's also
enabling further enhancement the
simplifications we've been able to make
uh one I'll talk about in a little while
is save shell commands in environment
that's actually already been implemented
tell there but also by doing this we're
going to be able to improve the logging
and the error reporting and make easier
to follow what's going
on um so this has been implemented in
framework the old functions are now
deprecated so run command run command QA
they will be there in easybuild 5 but if
you use them they will throw out a
deprecation warning um we've replaced it
in framework we've placed
it nearly in the test all of the test
Suite uh I think there's still one use
in Easy block test site which I have
which I noticed I had done there we're
nearly completely replaced in Easy
blocks there's a linked issue there
which I think lists the three or four
that is still to go um there're almost
everything that's still remaining to be
replaced in Easy blocks
is either a command QA one um and it's
the two command QA ones that have list
of questions that are about this long um
where I've looked at them I've tried
Abus and it didn't work when I tried to
it so I need to just go revisit and work
that one out and there's a couple more
where people have contributed into easy
build for uh new easy block or an
updated easy block where and I noticed a
couple of those are about to come
through and need converting um but we're
very very nearly there and the reason
when we get to the number of PRS which I
think Kenneth's already spoiled in his
State the union talk the reason why
there were so many freezy blocks is I
did every single one as a separate PR um
there if you have custom easy blocks at
your site if you use hooks anything
house that document and that document I
think we still need to push a change to
it for the command QA but it is actually
all there the information I can't
remember whether we've put it live but
it is documented how to do it the other
place to look and is look at the easy
build p uh the easy blocks PR as that
actually shows you how we've changed it
in a lot of places um and we'll give you
know
information but that is that is one of
the areas that will impact people going
forward particularly if you're
contributing to a um Upstream so we have
put a lot of documentation into there
and we will continue to do so um it will
tell you what to
do so I mentioned this one of the
improvements save shell commands and
environment I will say this isn't merged
yet it's a PR it's open or I don't think
it's been merged unless somebody's done
that while I haven't been looking um
what this does and it's sort of commonly
yeah good reaction when it when commands
are running it does two things creates
two oh sorry creates two files an m
doire a command
doire
um one is the environment all
environment variabl there's a slight
caveat on that that it's not quite but
it's nearly it doesn't do I think bash
functions was the comment um but it will
you know file with all the environment
variables in it and commanda which if
you run that script it puts you into an
environment where you can find out what
you are running you can and you can just
go back in your history and see what
commands were run recently you know what
command what was the last command which
would be the one that failed we would
assume also just go back and step
through to see what's happened and that
will make hopefully a lot of people's
life easier you know some way of getting
into an environment and going what
happened what is it happening um there
but as I said we've still got to merge
it's not far off it's nearly complete um
there and
yeah one that we we we just hinted at
and we've started the work on is we're
trying to standardize parameter and
config names
um this is where we'll sort of use the
word opt for options in one place and
options in a separate place you know try
and standardize so if you know one of
you know one
parameter name or config name you're
probably going to know what the other
one is rather than having to guess where
where we might have shortened the name
and where we might have um used the
large but and this is our plan we're in
the this is and exactly how this is
going to be done is still a little bit
open we're still deciding is we're going
to add the new name in new names in some
way is a second set of options um and
then Implement methods for auto rename
of them and then during the lifetime of
easy build five we will then switch to
use the new names in framework blocks
and configs and then deprecate the old
names though exactly that you know and
that might be initiative process it
might be a little bit more of a step
we've just got to decide exactly on that
but a non-destructive way that you know
this is going to be going forward um
just make it make everybody's life
easier um and also as part of this there
will be some policy document which will
actually once we've written it that will
actually tell you how we've decided what
the names will be so if you're
implenting a a variable or a parameter
or a config or whatever in the future
and you want to know what should I name
it um we'll hopefully give you enough
hints as to what you should do I'm
looking the person Jasper who's in the
process of implementing that and I think
I've just volunteered him to write some
documents um which which which would be
good because it saves me writing it and
I've got plenty other documents to write
at the moment
um one that is very very dear to me is
enhancing the use of download
instructions this is something that's
actually already an easy build feature
it's just if you there are about five
easy configs actually currently use it
uh in easy build 4 what this is is we
all been there there are is a bunch of
software that you have to manually
download
because there is either no direct link
or you have to um agree to terms of
service or you have to you know log into
abacus's website and download a file um
but easy build will try and currently at
the moment download these sources and
then fail with a message that's often a
little bit cryptic to understand and
tell you what it is partly because the
last URL in the list it will try is our
backup mirror and it will go well hand
me down able to download it from there
and every goes well why not it shouldn't
it be there um so what we've
done is gone through all the easy
configs um and added that anything that
needs it should now have a download
instruction this will be in the easy
build five
um it also we've improved the we're
improving the message so it will tell
you that you need to download something
and where you then should put it on your
system um I.E what is the default place
it looks for sources um and this is all
about providing a better user experience
you know why is this not working well I
need to go and manually do something um
the main reason this is well there's two
reasons why I've implemented done most
of this work in terms of easy build five
one is because we're not supporting
python 2 anymore and get to that in a
minute um I'm able to use f strings
which actually simplified my life a lot
um and the other one is is and this is
another feature that or another bit
that's coming up because we're archiving
older easy configs I could implement
this in new easy configs and only the
newer ones which simplified my life of
actually finding out what the download
places were for some of these bits of
software um because we've because the
other sort of thing we did was if we
couldn't find out what the source was
nobody else is going to be able to work
out what the sources either um and it
was in a few places where bits of
software I was going I can't the the
homepage no longer works the software is
either so generic a name that you can't
search for it and to find the software
and yeah um so I simplified my life a
bit
there now I've put this as enhancement
there's a slight breaking change bit
here but hopefully not um we will be
enabling our path linking by default
there's already quite good documentation
about what our halfs is and what the
support is there and if you want more i'
just say go and read that because it
links out to there we are however by
default going to rain Ali Library path
and again if you want to know what that
why that's also covered in that bit of
documentation and I'm not going to go
through that now but it also and that
documentation also tells you if you do
want to remove a the library path from
your mod generated modules it that uh
variable uh sorry parameter is there
that allows you to do it and that
documentation tells you how to do it um
the one caveat and the one thing we're
in the process of fixing there's
currently if you're te test easy build
five and you have a mixed AR Half and
nonar Half Stack of built software
there's an occasional failure lamps
being one of the bits of software where
our detection of is this software
correctly our PA
Mis understands whether the software is
correctly araed um and it's very much uh
it will work but we just need to work
out why the sanity check fails on it or
Implement a workaround for why the
sanity check
fails and if you want to read about that
that's the where I say fixed that's
actually a PO request and it has some
documentation as to what we're doing and
what's going on
uh definitely in the improved user
experience we're going to be turning on
Trace output by default um I'll start
with the bottom when talking with
maintainers nearly every maintainer
that's ever answered my question says
yes we just use Trace by default
um it's easier when you're tra so Trace
um gives more output it will tell you a
bit more about what you're doing or what
easy build sorry is doing it stage and
we'll show you some of the commands
being run and uh it definitely gives you
a better understanding of how easy build
operates um and also if you then copy
and paste the logs to us and say this is
where it failed it will help us
understand where you were in the process
um particularly where a particular stage
inside is a multi-stage process so let
say the build step might do five
different commands with the extra output
there and we Trace enabled we'll know
which of the five commands was actually
being run at the time rather than just
having to guess which one
failed um
there for python package
installation all easy configs
and after set two well I can't remember
which way around it is one for python
package one for python bundle those
three have to be set to set at the
moment they will be on by default so you
will no longer need to set them and
actually the easy config CI in Easy bu
five will tell you please do not set
them um there so you know just
simplifying what you have to specify
making everybody's in life a little bit
simpler um yes is there
supportal uh is there support for
virtual
environments virtual environments I'm in
what sense sorry uh installing into
virtual environments
like currently no no okay
um I think we need to can if you'll want
the microphones are
okay okay um okay so currently you're
saying can no there's no support for
virtual okay okay but I think maybe you
need to explain what the use case is oh
um that python p
um I mean especially if you you know if
you have different tools that perhaps
use different python versions or
something which can come up a lot and
kind of stuff that I install then using
python path can cause clashes because
python path itself is not a versioned
path I wish that it was but it is not uh
it is it is meant to be a direct um path
to site packages so um if you have
different python vers different major
minor python versions there will be
clashes in what you're loading and using
virtual environments and hash bangs that
point to a python within the virtual
environment that you've created that
python will find its dependencies
relative to its own location rather than
use Python path and things like that so
we've stopped using python path
completely and instead start now install
into python virtual environments and so
we can have different tools with
different um python versions different
major minor versions and there's no
clashes between
them question in the back so well
answer
okay so um the issue with setting python
pass is real so if you had set this
python pass in the modules and then a
user for example creates a virtual
emphasis model loaded then he of course
expected if he installs an updated
version um of the package that's already
installed that his package will be used
but it is
not and this is exactly why we
introduced a hook um for writing the
module file that replaced um each
occurrence of python pass in the model
file by a corresponding entry of EB
python
prefixes um and this basically solves
this and the change here um basically
makes this the fault so that will just
work so it isn't installing into virtual
NS but it plays much nicer with virtual
NS and it's only the prefix there so um
the script we installed to make this EB
python prefix work um then takes the
version of the Python you are actually
using into account to add this to the
sus pass so yeah all problems solved
hopefully
yeah and you know and that is yeah that
works ongoing but yes we're aware and
hopefully we'll make life just repeat
what I'm saying for the for the REM
people I think the only issue with this
is is that everybody knows python but
nobody
knows so Kenneth's com comment was yes
that everybody knows what python PA is
but no EB you know very few people even
who use easy build probably know what e
python prefixes is unless you've looked
under the hood of what's Happening um
but part of that was probably us then
documenting and making it really clear
what's going on and why um
there um another one enhancement and
this is for people uh installing Fortran
software what one excited user in the
room at least good to know
um uh because GCC core is a sub tool
chain for uh for not just GCC based tool
chains but also for Intel ones and other
compilers umod files shouldn't be
Fortran mod files that is shouldn't be
present in GCC ore installations
currently we don't actually check this
um but what we're actually going to do
is start what uh we are going to put
we've bu put sorry we have put in
detection um and by default it will warn
if it fails if it finds one but actually
what we're going to do in the central
repository is we when we're using test
Bots we will turn it make that into a
failure to make sure we don't there and
there's been a a few PRS recently where
I've either move software out of GCC
core or just pointed out to some other
people can they just move it because of
this um there there is an e easy config
parameter that we've added skip mod file
sanity check and that's for those F bits
of software that you install in GCC core
that aren't actually Fortran dood files
are just do mod files because they use
that extension for something else these
two they're both sort of some sort of
data file format or instruction type
file instruction to that bit of software
running um type file um so there is a
method of skipping that there's also
things such as clang itself and some of
the variants which obviously have mod
files but they're mod files generated by
that particular in um compiler during
their installation process so they're
fine in there um but those items every
anything I've hit so far and found it on
I have fixed in easy build five or put
the work around in in easy build
five which is most things that have it
they're you know they think is small
handful um python
312 easy build uh ev5 works on python
312 well the test weite definitely runs
um I'm not sure whether any of the
developers any of us developing and
using easy build I have actually tried
doing installations yet partly because
the type of system I need to be
installing on I don't actually have
python 312 on to test with which means I
might need to just work out how um there
is things like we've replaced this utils
use and how easy build in stores and
some other stuff um with there also as
of this past weekend there's actually a
PR for python 312 as an easy config um
but that really important statement read
the notes in it you need to do a
reinstall of end
cursors because yeah I'm seeing
Kenneth's reaction because I'm gonna
explain this one because it amused me um
in EN curses we don't install the
package config files currently um python
312 tries to detect en cursor tries to
en cursor's W the wide character support
and messes up the detection of En
cursors and detects en cursors rather
than n cursor
W yeah see Ken's reaction um when you
install the package config files it does
the detection correctly gets ncurses W
Linked In correctly and doesn't fail
halfway through your install with
something with a cryptic message of you
just sitting there going well why is
that causing a failure I can see the
library
myself software for you um like I said
just just read the notes it tell it that
yeah it tells you what to rebuild and it
is quite a quick rebuild fortunately um
and then that I think is available to
work it will probably not get merged
because it's adding an extra python
version into an existing tool chain
generation and probably won't do that
but it will give just give us the basis
of the next one I'm seeing a nod in the
room there
there the other so yeah the good reason
for now is that we're not going to
introduce another p in the same tool
chain that's too much of a pain it's not
worth the trouble either I also think
that there's going to be too many
projects that don't actually support 312
yet so it's still yeah from that side
probably early on we've actually had a
request from a user that's asking for
python 3.12 it's like how hard can it be
yeah we can give it to you but you're
probably run into trouble very very
quickly yes I mean stuff on top of it I
might I I've had one request as well and
I might in install it the slight
complication is that's obvious in a
2023b tool chain and I haven't even deed
2023a at my to my side yet
so long time but I know at least know
how I would do it um there but if I do
install it for a user they will
literally just get python with nothing
else you know it's going to be python
plus setup Tools Plus W wheel plus pip I
think um change module options I think
I'm with this first statement that this
well it will be Al mod um I think it's
leis syntax only we're going to flip
some defaults to switch to using module
depends on by default and switch to
module extensions on by default uh
module depends on by default improves
the loading unloading experience and
module extensions on by default is a l
allows your module file to know that not
only does so where we say have scipi
bundle
um there it allows you to go well cpai
bundle actually also has NP and whatever
so if you do something mod I think it's
when you do modular Veil numpy it'll go
ah yeah but that's in cpai um there um
I've linked to the alod documentation
that's very much um and obviously my
slides will be available later online so
you know we have follow links um there
both of those are in the process of
being purged which is generally we're
just trying to fix fix the test Suite to
deal with a changed option about more
outputting module files but nearly
there um and here's where we hit the
breaking changes but with the comment
that we've been warning about this so
minimum versions python 36 is now the
minimum version as Kenneth showed
earlier python 27 usage we're getting
reported as under 5% python 3.5 usage
was 1% so I'm assuming one response in
survey
um and by going to pyth well we were
probably always going to lose that one
but you know it's come Python 2.7 is end
of life four years now um and Talking
personally as a developer I can develop
with python 33 now quite easily if I
have to make sure my code works on
python 2 it probably takes me 10 times
as long as just doing the Python 3
because this is the one place I have to
still think about python 2 um I haven't
actually written has to support python 2
code other than for easy build in
probably three years now I'm think some
disgusting some person still has to
um yeah it's uh We've managed to convert
everything else we were doing locally um
we put a lot of effort in because we
just hit a point where we could
consciously try and St support python 2
and I just know for myself it I cannot
do it my head just if I don't know that
something is going to fail with python 2
unless I actually run it um and find a
system I can test it on
um and yeah um Al mod as Kenneth said I
think going to jump to 8.0.0 being the
lowest supported version and team OD um
read the modifier on this it is 4 this
is we're still just making decision and
talking to developer it's 4.3 but only
if it's above four um lower versions
are less than four is still there but
will be deprecated um it's only you
can't use between four and 4.3 um that's
what the T mod developer has said is a
good idea um because that's still quite
an old
version um there but as I said not yet
merged so if you do are if you are using
that to your site and have some feedback
for us then please give it to us um if
it is really going to be
problematic um remove and sort of there
anything that you're running in e in
easy build 4.9.1 oh sorry going back to
there that is giving you that message
deprecated functionality will no longer
work and then tells you what the old
command is what the new command is that
code's gone um if you start running easy
build 5 code's gone you it will not work
um it will just fail that's such as the
removed applicated code that's such as
the python 2 two support it's all just
gone that was quite a pleasing day to me
removing I I just piled up these PRS of
removing deprecated code and we've got
you know and it just makes our life
simpler as to Developers of not having
to support really old code um in there
code that nobody really quite in some
places even understands what it's doing
anymore um it just you know has to be
done at some point for some
things uh new deprecations um not
actually that many at the moment um
environmental modules so that's as what
you would set I think easy build to tell
it what they are what type of
environment modules you are one's called
environment modules and the one called
environment modules TCL one of those is
the really old one and one's the even
older they are Eng um which is
effectively anything under version four
you will get deprecation warnings for
those
um I haven't noticed anything I didn't I
looked for our PRS and I couldn't find
anything else we deprecated um I think
that's it but as in the lifetime of easy
other than yeah sorry and run command
and run command QA yes yeah forgotten
about adding those because that was
um but as we've seen during the lifetime
easy build 4 because easy build 4's been
around how many years it was Kenneth
saying five years yeah on the earlier
slide and I've forgotten already um we
will add some more de I would assume
we'll add more deprecations over the
lifetime of easy build 5 and publicize
you know of things we might removing in
easy build 6 whenever that happens um
sometime in the future you know but
based on our uh uh release rate you're
going to have a couple of years you know
probably
more Kenneth mentioned this one as well
tool chain support Pro policy um this
from last year of the sort of motivation
using the central repository as a
reference
and where possible one version of
software per tool chain generation as we
said as I said last year and repeating
this year there are some exceptions but
we try to keep them limited so you know
your stack will work you know using the
reference Easy config the stack should
work most software together andless off
of in different tool
chains um information there as to how to
add your own Easy configs um repository
on top of that um if you want to do that
and I know lots of people do
documentation there so based on the
feedback actually this was what we came
out with as our policy and it is in the
document we have there um example as of
2020 as of today 2023b is the latest
generation we have
released uh we will accept PRS for the
most recent six tool chain Generations
behind that and at the moment we have no
plans of changing from two a year
so that's those
six he says and he looks very quickly
just to check he did update the slide
based yes so those six um we will then
deprecate the next two so seven and
eight tool chains back so at the moment
that would be 2020b and 2022a would be
deprecated at that point we will start
closing PR and issues for software
related to th in those
generations and archive anything older
uh 20 2019b and older in Easy bu 5 that
means we have done archived everything
from 2019b to chain generation and older
and when I say a generation so obviously
that's the underlying GCC GCC core
equivalent Intel version um and any
other tool chains um and going back
there there were some other ones and
equivalently we've also archived older
system tool chain easy configs um I
can't remember exactly exactly how we
did that but thing of a similar AG TR
older um with also those things where
nobody could work out where the how to
download the source code for was a few
things um and also combined into that we
also archived out old patch files that
were no longer used by any easy
config there is then a further thing
we've done on top of this there is there
will now be an easy build five a
separate easy configs
archive we've separated out with G
history anything that was in the main
easycon things reposit so before there
was this directory inside there uh
underscore uncore archives uncore uncore
instead we've pulled it out into a
separate repository um what we found is
by doing that g operations are faster
because there's less files there um
speeds up the test Suite the combined of
the previous slide and some work here
speeds up the test Suite less easy
configs to pass um it is its own
repository it's already actually
available but we're not going to install
it by default um and they are provided
as reference no support will be given um
very much the idea there that it's a
separate thing there just so people
could reference and still have them
available um
there but if you do want them you can
pip install them on top of your easy big
um build
installation we've removed a number of
unused easy blocks so when I was doing
and others were doing the conversion of
run command and run command QA to run sh
command if having followed the previous
slide if we were left with no easy
configs well actually sorry that slide
having followed that got take arched out
the older thing these are all the items
where there were no easy configs left um
where no easy configs left and they had
either run command in them or run shell
command so they were taken out if you
care about some of this software it will
be a case of con the bottom line
contribute easy config and if it still
needs an easy block an up toate easy BL
uh
block
I yeah I've missed at least one out of
this list because it's in a separate
list I um archived the easy block for
yeah my slides will be available online
as well so we will make sure to send it
around um you also archived the end
cursor uh easy block and you'll go and I
already talked about end cursors in this
I think it was end cursors um that's the
oldest easy config it was used back in
nearly 10 years ago and I think it was
nine years ago we switched every easy
config over to actually just using I
assume is config a make um and had
forgotten to delete the easy block which
I only found when I was trying to edit
something else um but most of this
software as I is quite old um and that's
why the easy blocks have gone um but
hopefully some of them that if they are
still existing have better install
methods now um I've certainly found that
in some
places
yeah if there is any easy block that you
still care about but you don't have an
easy config is there a way to access
them still or the only way is to just to
like get go back oh well get history I
mean they're still there in easy build
4.9 so you can probably get them from an
old release there as well um if you
really care about them then yes you you
can get restore them so you could if you
needed it restore it in a get branch and
then submit it to as an update um but
one of the things there is probably
going to want you know part of the
reason is that when doing the Run
command to run sh command uh conver
version not actually being able to test
whether some of these things worked was
quite important because you know some of
them are quite easy commands that could
be tested but some of them are quite
complicated it's like I have no idea
well it really BS down to if if an easy
block disappeared that you were still
using maybe with only in-house e configs
or something then either if you know how
try to restore it and try to convert it
to be compatible with e bu 5 or let us
know somehow like mention it in slack or
open an issue do something if you need
help with that we're happy to help out
to pull it back from develop and revive
it um and maybe I mean maybe even we can
do the porting and then you do the
testing that's fine as well I mean the
porting effort is not the biggest issue
usually it's just making sure that we
didn't Overlook something when when
doing the
port now there may be exceptions but
most of these I don't think are still
relevant do do you see something that's
still yeah classic is still used quite a
lot well so it's not because the name is
here that the software is no longer
supported the easy configs may be using
a generic easy block now and then it's a
nonissue so but yeah take a look and I
mean we'll we'll do some Hands-On today
if there's something that you notice
today that we still need to Port over
that's fine none none of these I'm
currently installing with easy build so
it's not it's not keeping me from use
thank you it's not keeping me from from
using these These are we installed these
differently but the it's very common
when I talking with hel it's very common
to have old software that probably was
built with an old tool chain and maybe
needed an easy block or something like
that and no longer does or just needs to
be ported over to something new y but
but I can see several here that that I
would want to keep around y yeah as I
said we're happy to revive them just we
didn't see a need and
then Mak sense
there's also related that this only so
this happened because of the Run shell
command and sorry run command run shell
command and run command QA conversion
there's also actually also a separate
list that hasn't yet been in touch of
ones that are no longer used but don't
have run command or run shell command I
haven't I had about four of them but
I've only got about as far as D in the
alphabet before I ran out of time um and
we all have a similar you know we
publicize that list somewhere as well
then see
um uh remaining tasks uh we need to
decide on what the remaining breaking
changes are for easy build five
um and this is the maintainers or the
group of us working on easy build 5 will
go away and do soonish in one of our
meetings these were the items that need
to be merged quite soon because if
they're going to break functionality we
need to make sure people know about it
and we're advertising it and correctly
um I'm not sure whe there's anything
else in there but we'll need to do um
it's then deciding what remaining
non-breaking changes there are um we've
got more time to merge those but you
know the more time we take the longer it
takes us to rease easy build five um
probably the biggest Step at the moment
other than well is in these two it's
right the documentation and yes there's
quite a bit more of that to do um some
of it will come out of these slides and
then it's test test test which probably
via a release candidate um there and
then hopefully a release so there is a
bit of a short-term impact that's going
to happen
um at some point soon we will merge the
five Ox branches into develop in the
easy build
repositories when we do that configs
that are in develop configs that are
being PR
may not work with easy build 4X um so
the python package defaults I talked
about things like use pip equal true
because that's now going to be set by
the easy block it won't be in the easy
config but our current configs or easy
configs require it um so you know it
will make it slightly harder to be used
develop at that point um some easy
blocks in development you know in PRS or
in develop will um fail because they're
using run shell command which obviously
isn't in easy build for Point um easy
build for um so what this will mean is
if you're using from PR and include easy
blocks from
PR they're going to be what you know
you're going to might have to think
about what you're doing and we will try
we will advise as to what's going on and
what you should do um and work around um
one of the things also is this CI will
change to reflect
the newly deprecated items um
I.E where we've said please don't is in
the future you will you know we'll have
the PRS going please don't do you know
don't do this it will cause failure such
as the mod files in Fortran that I
mentioned you know we will
fail so far and Kenneth mentioned this
that's a number of PR 75 for framework
is mainly the newer Chang and deprecated
remove functionality 170 in Easy blocks
which is mainly run command um that's
why there's most of them and 85 and easy
configs which is almost entirely
archiving all of them
um uh yeah I can't get to that um
observation we base all our stats and
you know the one real place we can get
well there two places we can get one is
from the survey and the other is from
you know meetings like this from PR
sending us messages is telling us about
things going on um those are the places
we can find out about because that's how
we're going to guess that you know
python 2 use has gone down so much
python 3.5 use has gone to nearly
nothing so you know we can lose support
for them um so feedback on those things
um to us is important where you care
that something remains so if you don't
care that python 2 support you know is
going then you's no point feeding back
to us unless you want to come join the
um go away python 2 party which I might
start organizing
soon um yeah a I'll be
there um so handson we said there was
some time for handson that's why I've
gone through re quickly Kenne if assures
me these are the simplest instructions
for setting up an easy build
environment so we will believe him uh we
some copy paste them into slack in a few
minutes moments
um and Hands-On testing there is time
for you to test um start testing very
much what the important thing about this
is very much what it's doing is putting
easy build into a virtual environment so
it shouldn't impact anything else you do
only when you're inside that uh virtual
environment it will have the same
requirements as uh well requirements you
need a module tool so you know you need
to be on your HBC system or on a
suitable container image or something
else to be able to use
it um and if you do have questions
please ask um obviously I'm just
volunteering you know Jasper and Kenneth
and Adam to answer them
all and yep that's my last
slide can you go back slides oh Sor
right so the the breakage for front PR I
only just now realized that this is
going to be a bigger issue than I
anticipated
because anyone who's using front PR now
anywhere and this may be an easy stack
files which we we're doing in Easy in
the easy project as soon as we collapse
the 5x branches into develop that will
all break well in the worst case
scenario because when when you're
calling from PR on a merged pull request
it pulls the easy confli from develop
rather than from the pull request
no no no so if you do front PR on a
merged
PR if the pr is merged it takes it from
develop so as soon as we remove use pip
and all that crap because easy B 5 is
going to enable it by
default that's actually going to be a
bigger impact than
I
realized if you use from commit then you
can choose but you but you act actually
you actively have to
migrate from from from PR to from commit
yeah which is only possible since two
weeks essentially so maybe we need to
think this over again
and think about if we can come up with a
better approach I'm not sure if it's
possible I think the answer is it's a
fairly short period between collapsing
the branches and yeah we need to get
easy bu five out as soon as um but there
will be a period
where yeah what
it's painful yeah and especially for
people who want to stick to an easybuild
4 version for whatever
reason if they also want to keep using
from PR with that version that's going
to be pretty much
impossible yeah yeah they it will at
least impact people's workflow so maybe
we need to think about whether we can do
something about it I'm not sure I mean
we cannot change existing easy buol 4
releases we can do a 492
release that has something extra that
eases that pain a bit so as long as you
jump to that you'll you may 492 at the
same time as develop as we do as 5 Z
yeah well probably as the same time we
do I think we need to think about this
because this is gonna also it's not
going to be obvious what's happening
people are going to do front PR like
they did before and all of a sudden it
will start breaking without them moving
to easy bolt
5 yeah um so that's yeah that's
something something we need to do a bit
of homework on I
think yeah okay that's also why we need
I mean at some point we'll do the
collapse and I guess we'll hear soon
enough whether stuff is broken right
people are going to tell us um so there
there may be a bit of pain in the short
term uh related to
this and that's also why once we have
something that resembles a release
candidate and now if you go back to the
instructions there your virtual end
stuff so this kind of testing if you
have stuff that you want to test out
with a essentially a pre-release of
easybuild 5 please do and it may be as
simple as doing a simple install in your
environment with your current easybuild
configuration and just see what happens
does it still work does
it how heavily will you be impacted by
so I've not tripped over anything in my
hooks that have caused problems so I've
been installing any PRS I've done either
created myself or tested since the
beginning of this year I've done with it
the easy build five development um I've
not yet hit anything unexpected oh apart
from the lamps and Mak St PA but that
was about the only so yeah we are trying
to make this as easy as possible to
switch but that's also where we need
feedback only when we get good feedback
we can actually do stuff to ease the
pain a bit
okay any questions for
Simon to to on the stuff if you change
the meaning of fromia in 4.9.2 then that
should fix the issue right if you pick a
specific Branch rate hard than develop
yeah and I think we can do something
there to ease that pain bit we can from
PR can check whether it's already
picking up easy configs that are for 5.0
or not like how we exactly do that is a
detail but that's something we that's
something we we have to implement I
think in an easy build for release and
then make sure that people I mean we do
see very good adoption to the latest
easybuild version I think that's a
reason to do something extra in the
492 or a 4.99 or whatever you want to
call it like the last easy bu for
release ever a 4 99 and then we need
another one to
4999
one I think we'll need something this to
e the
pain I was wondering um from PR uses the
develop
Branch um do we actually make use of the
main branch for some
something because that could be an easy
way out of this if we um are not using
the develop Branch for what it's usually
used EG merge it into a main branch at
some point we can use the main branch
for
5.x and anyone using from PR with an old
version will get on from
develope but only if we sync easy com
between them I
think currently the main branch always
corresponds to the latest
release the main branch corresponds to
the current
release but is there a reason for making
the main branch follow the release and
not just Tech on
Branch that's I don't know maybe we need
to the main
brch maybe we can do
something that could
be
another yeah because as you said that
might um break a lot of people's
workflow that were for example adopting
the easy stack fires with from PR a
lot yeah
and it also works with a
simplification um that is intended in
easy build
5 um by using the main branch and not
not wondering why are there two branches
what are they used
for just having one branch and text on
that
Branch it's less confusion I
think yeah have additional branches as
well we have like now branch is used for
the 49x releases and that's separate
fromel practical reasons
releas yeah for release management it
makes sense for example branching off a
tech for releasing a do something
release okay yeah that's maybe another
okay so how many people here well and
this is a question for remote for remote
as well
sorry yeah yeah keep keep the virtual L
stuff here and do do keep in mind if you
have python part set you may need to
override python part as well because if
you're in a virtual end python part is
still going to
win so depending on how you're setting
up easybuild currently to do
installations um sorry I'm what I'm just
doing I'm putting this in slack maybe so
people can copy paste it yeah yeah they
are now in slack and hopefully slack and
between PowerPoint and slack no sorry I
Haven to use PowerPoint between slack
and everything house hopefully there's
no funny no funny characters no looks it
almost certainly be either there or
and dashes I think I caught them all
um okay who's planning to to do a bit of
Hands-On playing with easybuild 5 right
now before we call it a
r okay good a bunch of people are if
you're not that's fine then I guess
you're free to leave or you're free to
stay if you want to ask questions um
free to talk and ask questions to talk
and free to discuss so now it's really
the the end of the official program for
today at least um for the people remote
you're also welcome to play around we'll
try to keep an eye on slack as well um
but also feel free to do this whenever
um so later on if you're trying this
playing around with easybuild 5 the eb5
channel in the easybuild slack is
definitely the right place to ask for
help if you're running into something
funny when you're when you're playing
around also if you open do open and get
Hub isue in any of the repositories for
and you are testing easy build five can
you put that is about the first thing
you put in a comment yeah in the
description so that we know um who
whichever maintain is picking it up
doesn't go well that's really weird
because it works perfectly fine yeah
yeah make sure it's if it's specific to
easybuild 5 that you notice that we'll
then add the necessary label to that as
well so we can easily zoom in on these
issues all right do we have any more
questions for
Simon before we start playing around a
bit
no okay then yeah Simon and I will be
walking around maybe Jasper too where's
Jasper
yeah oh yeah okay
yeah screen as uh yeah sure I can do
that yeah I've got some stuff uh so I've
renamed the um I've got support for
renaming easy config parameters
templates and the constants I haven't
done the
configuration
um yeah I've got I opened another draft
pull request that actually
implements it with like the um renaming
added to the dictionaries that I added
so you can play around with it if you
check out that one uh once the one that
actually adds the implementation is
merged I'll rebase that
one
um but yeah the idea is that you
can um the it it won't easy build won't
complain if you use the old versions or
the new versions or a mix of them as
long as you don't well as long as you
don't use the same one twice as in like
use config Ops and configure Ops at the
same
time too
many so that's
the yeah so that's the
poll request that I just opened uh
there's an issue that I opened in the
framework which goes through a list of
all of the renamed things uh if anyone
has any strong feelings
on how we've decided to rename some like
feel free to comment on the issue or on
slack
obviously um it's a pretty long list uh
there is some rules for how
I selected the renamed version
further down in that
issue but basically it's just
standardizing the use of underscores
whether we use Ops or options and stuff
like that depths dependencies and so
on yeah so that that's definitely an
interesting one to go through if you're
because this is going to have in the end
high impact not an easybuild five
because we're what we're first doing is
adding support for the new names before
we touch the old names but at some point
we're going to deprecate the old names
and it includes very common easy config
parameters like config Ops we're
renaming that there's a bunch of others
as well that we're also renaming so
you're you're bound if you have any
custom easy configs custom easy blocks
hooks you're bound to hit this stuff at
some point so it it's better to give
feedback now than after we've put this
in
into probably easybuild five we're going
to support in new names yeah the idea is
as well that we will provide some
scripts that should automatically rename
at least easy configs yeah uh possibly
easy blocks as
well um we'll see how straightforward
that is I guess yeah we'll see how
difficult that
is the largest effort will be doing
framework really I
think are you considering to have at
some point say strict mode so that we
can check if it's going to support only
the new one and stuff like that uh yeah
that mean that hasn't been done yet but
I think that has been talked about
before in mon of our E5 meeting so yeah
that would be something we would look at
as well so that you can check that
everything that's is there the easy way
at the moment would be to manually add
them all to the deprecated parameters
but that's you know that easy build will
spit out dication warnings at the moment
a lot of them because it does one per
instance it finds rather than collating
them into into one nice warning yeah I
mean I imagine we'll do something like
we've done for the failing on fortrend
mod files that you know there'll be
something that will flip it from being a
warning to a a crash because that's how
we that's how what we'll use in the test
B to make sure they're not being used at
the point we want them
to do mention mod files and I was just
thinking I was wondering if
um would we since there are other
modules that use mod
extensions would it not make sense to
flip the sense of that so you check for
mod files on option and just ignore
files without an
option since they would only really
appear in Fortran code and they appear
in so many other modules or several
other
modules so
so at least in so
it's they have to be there in an
installation of theof software and so
it's not just that a piece of software
might call its files files it's that it
has say some examples which is the clex
and whatever example is it actually has
some examples or inside its installation
so yes they might be used in a lot more
but it's quite rare that you'll find
them inside um an installation um so the
answer is I think that's the right way
but we you know if we if we hit if we
suddenly hit a whole bunch of PRS where
we see a problem we might revisit that
um it's quite rare yeah I mean from what
I've seen I think it's predominantly for
TR
files had a few EXs at the moment we've
gone with the naive there is a do mod
file extension um we think there might
be an enhancement where we actually
explicitly ask some Linux utility as
what is that file and we might then be
able to tell even more information and
if we're hitting it a lot we'll enhance
the check and go it has to be some other
properties as well um but at the moment
I haven't hit enough of them to think
it's an issue
um because also you know we are only
talking about GCC core in installs so
that's all you know it's already
minimizes the number there's likely to
be
[Music]
is there is there anyone who
had
any let's say wild ideas for easy buol 5
that you were hoping to see but you
haven't seen mentioned at all
UV UV yes UV replaces pip install and
the
en so you want to have support for using
UV and easy build instead of P yes yeah
to me that's an additional feature that
we can implement or you can Implement
anytime I
know so
we're so this kind of stuff extra things
that easybuild can do but don't affect
current behavior at least by
default fine I mean for me they're out
of scope for easy bu 5 we're looking for
stuff that we can only do when we have a
new major
version because that's what needs to
happen now before we wrap up on easyb 5
um so I'd
heard fairly recently not too recently
that um Mamba was starting to be
competitive with Anaconda has um has
there been any mention of building
support for that into easy build or I
think that may already be there
okay okay yeah you can you can already
install Mamba with easy build that's for
sure let
yeah yeah don't don't steal mine I think
we can install that I think there's an
open PR for installing things with M
other easycon things that use Mamba
might be an open PR rather there's Mamba
support in the cond easy block which is
so if you're if you're using an easy
conf file that uses the K easy block and
you have Mamba as a build dependency it
will use that or you can at least opt
into it sometime so so I I just noticing
that James is nodding which must mean
we've used it
somewhere again that's something that we
could add any time right so not specific
to easyb five at
all yeah one of the most work intensive
things that I found was that uh when you
try to update python uh dated extensions
is really
painful so um R um there is this tool
called easy update I think yeah it works
really well with r but with python not
so much so something like that would be
nice in integrated in easy build itself
me yeah so there have
been plans is a big word ideas to
integrate that into easybuild M
including John Day who developed the
easy update tool he has come to the user
meeting couple of times already mhm and
we always said okay yeah let's get our
hands dirty after this and then make it
happen and then it never really happened
up until now
now yeah it would be very useful I fully
agree um it's not that easy of a task to
do but maybe we I mean and his
implementation is probably I don't want
to say old but it's using old techniques
that are there's now better apis for
that okay that we could Leverage the the
ecosystem stocks that's coming up on
Frid on Thursday um is actually one
thing we could use for this because
that's like one Central API where you
can talk to pipie and c and a whole
bunch of other things I haven't really
looked into it in detail yet but that
looks very promising okay and there's
there's other things like this as well
that may help us a lot to at least
reduce the effort significantly to be
able to do something like this yeah okay
but having that would be I think a
killer feature for yeah yeah it'll help
a lot yeah
but again yeah in terms of easu 5 it's
not a breaking change okay it's an extra
feature that we could Implement any time
fair enough yeah but that yeah I I agree
that would be very good to uh integrate
somehow yeah and what you're what you
mainly want to do there is say start
creating an easy config and let easy
both figure out the dependencies that
are missing the extensions that are
missing or yeah perhaps you can create
based on like old easy configs that
already exist you just update them and
then then uh it checks the dependencies
if it still matches or yeah I have an
ugly dirty script that does something
like this but it's not integrated in
Easy at all okay but it it could become
a feature yeah just
because yeah I think the the reason why
it works fairly well with r is that uh
San has some easy access easily
accessible metadata on the dependencies
are which pipie doesn't have so
basically you need to download the
packages before you know what the
dependencies are need to install stuff
before you know what to install yeah
yeah basically and that's
fairly intrusive right like you need to
like you're downloading for something
like pipy bundle uh python Das bundle
pipy whatever it's called um there's
thousands of extensions that you need to
download somewhere and check what all
the dependencies are and build a tree
from that whereas for R it's a lot
easier to determine I think with r also
talking to IND is um nearly every r
package has no real version lock IE if
you get the latest one you just get the
latest one of everything and that's
probably going to work together near
enough I I'm not going to say 100% but
it's whereas python you more often hit
need greater than this less than that
you know having do environment res
resolution to work out what's a
consistent and applicable one of the
easiest ways of figuring out for python
is doing a pip install of what you want
and having a look at what what what is
actually installed and then pip freeze
yeah check check this UV thing because
it's a dependency resolver for pip so
but can it do it without installing crap
I am not sure I I I think the metadata
just isn't there on Pipi as far as I
know you have to download and look at
yeah download you have to download the
python package extracted and then you
can look at the data um that you find
out which other packages you need to
download and do it over and over again
yeah wait wait wait Sam
Sam yeah um I contributed a script which
basically does this it creates a
temporary virtual environment installs
the stuff and then uses the PIP de tree
to figure out what you need to put into
your easy
config so it would be better if that's
actually integrated into easybuild
somehow as an option
no yeah it integrates pretty much
already so it's cause easy build um but
it's a standalone script yeah we just
push it Standalone script um which is on
top of easy build so it actually calls
easy build to for example get the
environment in which to create the viral
environment yes in the framework uh
scripts folder also
so who who's concerned about easy Bol
five is it scaring you that you'll have
to Jasper is because he's losing too
much time on it I
guess because we we do want to make it
as easy as possible for people to make
the jump what we don't want to have and
we saw a little bit of that with
easybuild 4 is that people like drag
their feet and try to stick to the easy
build three or four release whatever we
we can do to avoid that we're definitely
going to do so if there's ideas there
they're also very
welcome the thing I'm most worried about
is the rpod because we don't do that
yeah that's trivial because there we can
just flip the default again you can just
tell easy build art false and that's
it so that that's only changing your
configuration that that should be very
easy if you're worried about that yeah
but we don't want to deviate Too Much
from the default because that also
creates issues I guess it depend there's
there's many people here that have opted
into RADS a long time ago and are very
happy with
it and will EAS build continue testing
without our part yeah probably
have especially in the short term
because we know that many people will
probably keep it off I think also
my plan is probably
that at some point I you know I will
have some cut where all the old older
tool chains so we split out my tool
chains when I go into a tool one
specific tool chain generation I do all
those installs with one set of config
and so what I'll probably do is go all
the older ones will stick with no rpath
you know with ourth disabled and at some
point I will just build it when I build
the new stack I will do that with
ourpath um specifically for that sort of
reason of not not ending up in a mixed
stack but also um giving myself a
convenient point where I can do the you
know jump um be know which also means
that be I know I'll be naturally doing
some testing for the next few years
probably we we're likely going to I
think switch in the middle
of seven eight tool chains at the same
time you're going to sorry switch to our
path on their already existing tool
chains yeah not recompiling anything no
and and that should actually work yeah
that's that's something we're definitely
trying to make sure that it works that
with easybuild five you w not have you
will not have to reinstall everything
you have you can just switch to easy bu
5 on top of what's already there and
just go ahead and yeah whatever problems
pop up we will try and fix there may be
some especially if you're mixing arpot
and non arpot
but that should work yeah that's
definitely something we're going to
support but Sam made a good point that
we should make sure we keep testing in
the non
arpot
configuration like one of the Bots has
to keep testing in with non
rpods so that's something but yeah but I
mean that's again back to the we you
need to be doing more testing and
understanding yeah yeah we we need to
come up with a good set of test
configurations we need more
en
yeah if anyone has questions on playing
with easy Bol 5 let us know if you're
trying something that doesn't work and
you expect it to work we're interested
to hear that now is a very good time to
do that throughout this whole week by
the way if you're playing with something
maybe while watching talks that's
allowed um
you're allow to play play during night
time sorry you're only allow to play
during night time or night time as well
yeah who
sleeps this first thing tomorrow morning
when you can play you know not sure
who's talking first
tomorrow you want to say something about
this
or uh that's just the demonstration of
the download instructions which is you
know one of those features I quite like
um the other bit I'm intending but
haven't yet actually added is because
well I'm not sure whether Kenneth has
Rich enabled in that environment
probably not because there but also some
use of colored or formatting via Rich to
make that even nicer or more obvious um
but that's not enabled in that command
yet um but you know but that that's not
just for that command that's for the
output is you know better use of color
and and um you know other features Rich
has to do with making things a bit more
obvious um where it's
available how many people here are using
Rich already in combination with easy
build who's not everybody
else okay then I want to show you what
it
does you don't like it you don't like
colors
everything but
so if you're downloading stuff for
example it's going to show
you it it did show you download progress
but it's why is it so quick here
okay I need something
bigger ah no no no wa it found it
already hold
on I don't want to force to download
like this so it's going to show you what
it's downloading how many things it
needs to download and then show you
progress bar on that so that's pretty
nice and also when it does an um an
installation it's going to show you how
many things it still needs to install
and in the case of extensions let me
just make sure I'm not messing up
something
here this is just in my own personal
account so I can't really break
something
um if it's doing an
installation and we could actually add
more colors not only to download
instructions but also to to other stuff
everything yeah you you'll just get
better feedback here like how many steps
is it doing and when it hits the the
extensions you'll see another progress
bar popping up as well so it just helps
a lot question who part how do you
combine rich with d Das
job if you can't you can't yeah if
you're not looking at your terminal it's
useless yeah it it actually I think it
does it disable rich I think rich is
pretty intelligent in in knowing when it
makes sense and it doesn't so if it's in
a headless environment it probably just
disables itself essentially I've never
really seen it getting in the
way so the question is whether we you
can add an extra functionality on top
that that tells you what jobs have
completed and what
you to mean that's a different tool
that's a different yeah that's probably
a good argument I
mean
yeah there may be tools ask Slim
develop b said he had set Pyon
unbuffered to monitor it during das's
job he had to set Bon un buffered yeah
because the buffering kills
Rich it kills rich in the slur J not
kills but but kills the continue use
output ah
okay oh we've actually seen that right
empty jop output files let may be why
thought we see that in test bot as well
we only get the output at the
end open open an issue on that fix or P
to fix
it okay must be the middle of his
workday so yeah
I'm not actually can we opt into that
I'm not entirely
sure well well I I I'm assuming it's uh
you tell R you know you we probably just
need to tell Rich to better
detect we can figure
it
okay maybe I should show something with
run shell command as
well well
that's using that's using it yeah some
of the output here at least so I should
show you what you get if you if you're
not using it I guess oh now it's going
another
land so let's see what
happens go
away can hide this
let me just show you the difference
between easy build four and five and you
can tell us whether it's better or not
or if there's room for further
Improvement I'll just run the exact same
thing almost the exact same
thing why is it
not picking up the whole thing come on
don't want to step this thing make sure
these things don't step on each other's
toes so I'll set the different
prefix The Bu part that should be enough
let me pause this one so I can actually
compare it at the same point so the
because we're using run shell command
internally some of the output the trace
output at least of e will change a bit
as well
so when it gets to the point where it's
actually running the
configure you'll see the difference so
here this is the the new
output where it tells you when it
started and where it's working and where
the output is so you you will always get
this withu 4 you would you will not
always get this and it's a bit less
organized and the extra bit about the m
doire and the command doire will be an
extra line in that at some point once we
merge I think it's an extra line at the
end but um just running off to the
back here in which directory are
actually the N do uh shell and uh
command. shell is it in the lock or is
it in the build
directory I have no it's in a separate
temporary directory and E buil will
print you the parts where you can find
it so if a if a shell command
fails certainly then but maybe always
and Mikel knows the details um EAS will
just tell you look in this directory for
output of the command and scripts where
you can easily jump into that that
shell yeah right now it's not there
because I'm not using that Branch yeah
from what I remember I think the
currently it says output save to blah
blah blah and that gets replaced with um
output and environment BL like get sa to
there and then there's a separate sub
directory
for the uh environment scripts let me
try and show it see what happens how
quickly I'll shoot myself in the
foot the reason I'm asking is currently
the lock files in our installation go in
One Directory which is actually on our
login node and the build directory is St
shared memory on the build
node so I need to specify that directory
has an environment
variable on the build
Noe where you build it not on the loogy
Node where you yeah it's it's a
temporary directory on the worker node
but you can you can reconfigure reible
to use a different that is the reason
I'm asking it it will become clear a
little bit Yeah Yeah better
tomorrow but yeah you you already have
the necessary configuration options to
to change that uh no I don't want to do
this let's see if I got this right so
now I'm messing up my virtual L totally
don't do this if you're not sure what
you're
doing and now I actually want to
yeah yeah yeah we'll be wrapping up soon
if anyone has questions Now's the
Time all
right I just want to try and do a quick
demo of the the dropping into a shell
thing
I'm not sure I've have things set up
correctly but let's see what
happens yeah maybe I did
where is he telling me I got it
wrong you know what I'll
just yeah no no you have to you have to
you have to run this script to
drop not counting that
spe
just see if I got this
right what did Nel say it's only going
to drop the script what he coming is you
don't need to be BR you can just here
yeah here it
goes yeah so this this is what's going
to be different
yor yor here it's going to tell you
where the stuff is saved if it gets to
something meaningful I can stop it yeah
here
so I can now cancel it and check what's
in
here and in here you have these scripts
and if you run the N
script yeah no no the command script
yeah this drops you in a shell where you
can Arrow up and you get the configure
command and this this also has all the
environment variables set that eable
sets so here you can easily play
around
yeah sorry
Sam no so the command. shell uses the n.
shell I
think yeah you have to be a bit careful
where uh see it uses this as a input to
the to the B shell you can Source this
directly as well and then only play with
that but the the command shell also
drops you into the right working
directory correct working directory
correct environment and you get the
commands you just Arrow up and you have
the correct
command that that's one of the things
that the new run shell command easily
enables us to implement and the old run
command is was no I wouldn't start with
it so that's one of the reasons we're
doing all this efforts to
two Port
away yeah