-
-
Notifications
You must be signed in to change notification settings - Fork 47
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
Rebuild for Python 3.7, GCC 7, R 3.5.1, openBLAS 0.3.2 #60
Rebuild for Python 3.7, GCC 7, R 3.5.1, openBLAS 0.3.2 #60
Conversation
wow, we're here already |
This is currently blocking most of the compiler migration and only is failing on the new compilers on linux. |
@scopatz; @mingwandroid had planned to align this with AR in this PR: #57 so that we can have something like noarch: generic for R. |
Yeah we've had this in place for a while now, just not enabled it; I did a complete build out of 3.5.0 like this and it seemed fine. I threw it away as other parts of our infra weren't quite ready. Should be good now though! Also do we want to consider pinning to x.x for noarch generic r packages? I'd support that decision for sure. |
That seems like a separate migration to me, no? Or do you want to update the compiler migration code to do this? |
@mingwandroid last time we discussed to pin to x.x. you argued strongly to not do it because R breaks API. Is that not true anymore? |
I was talking specifically about packages that needed compilation back then AFAIR, but my worries about that are reduced too now that we have better / less ad-hoc pinning mechanisms. |
It would just involve a minor change to |
Also, back then I had concerns about updating the MSYS2 infra mid-minor release, but I've not had the time to do that. Longer term, now that R upstream are (hopefully) adopting the latest MSYS2 toolchains and libraries (even contemplating calling pacman during builds, but lets hope some offline caching is also supported!) I believe we may want to switch to binary repackaging for Windows (only, macOS CRAN binaries have proven problematic; latest binaries not always provided for macOS 10.9, linking to various non-existent dylibs in |
The downside of repackaging CRAN Windows binaries is static linking. This is the preferred way for CRAN and they seem to be strongly in favour of doing things that way. AD and conda-forge strongly prefer dynamic for lots of better (IMHO) but different reasons so we'd lose that advantage, though give that I've never found time to refresh our MSYS2 packages that's not so relevant here. We could also try to adopt the MSYS2 CRAN RTools toolchain and libraries instead,. They are much more modern. We could then investigate removing the static preference if that's the concensus. Needs a meeting overall. I percieve that Windows R on conda-forge gets a bit less attention than the other platforms (failing builds getting disabled), is that a fair assessement? On AD I try to ensure that everything that I build is provided on all OSes. Repackaging would obviously make this issue go away. Anyway, I reckon these are meeting-worthy discussions. Can we add it to some agenda and invite me? |
I think this is a fair statement.
Yes, seems like it. Lets add it to one of the next conda-forge meetings: see here: https://paper.dropbox.com/doc/2018-10-30-conda-forge-meeting--APvs1n0U86RqplH6tZTCo3IZAQ-a81WsZAhNzAQYd2qC6z1a (please note, I'm not sure about the date yet) @mingwandroid how do we solve this in the short term. We need to get a rebuild of r-base with the new compilers in. Skip the noarch for the moment and revise this later with r-base 3.6? Can you help with this PR here? |
I would suggest at least getting the windows layout changed. Let's not push it for 3.6 |
I'm up for that too @isuruf, got a good few work things to tie up first though, will try to get onto this either tomorrow or early next week. |
Thanks @mingwandroid. Btw, why does noarch:generic packages have to be tied to a specific r-base version? |
CRAN pins to x.x globally for binaries. They build them out at the .0 patch release and I think may do some updates for new versions at later patch releases (though I'm not sure). You can see an MRO repackaging recipe (windows and mac repackaged, no such binaries exist for linux so I compile from source using our compilers instead) here Note the binary folder names:
|
Because the bytecode is not recompiled at install time and is incompatible between minor releases. |
Just piping up as a Windows R user here. The biggest pain-point for me is the incompatibility between defaults and conda-forge when it comes to R packages. IIUC that's because conda-forge need to implement the I think it would be unfortunate to publish a new R version before this issue is resolved as it leads to very hard-to-avoid segfaults. My hope is that I can avoid the incompatibility in future simply by specifying |
While we do care about compatibility and are looking to achieve it as co-operatively as possible, we have obligations to meet wrt release schedules and cannot hold those up without good reason. Currently, while we are known to have some bad binary compat. issues, I feel I must say it again: At present mixing AD defaults channel with conda-forge is very likely to result in problems. Without meaning to sound too snarky @dhirschfeld, you're a pretty advanced user, so how come you're trying this? |
Not all packages are in The binary incompatibility between the channels makes that very difficult to achieve and if you do have a stable environment your next I might be an advanced user but I manage a Python/R analytics environment for much less sophisticated users and at present it's too easy for them to shoot themselves in the foot without resorting to locking down their environment. It just seemed that a big change like this presented a good opportunity to also fix the incompatibility with defaults. Maybe it's better to tackle one thing at a time though.
I was just suggesting holding up the |
Thanks @dhirschfeld, it's really helpful to get these 'field reports', we usually only see them when in issues where things have gone wrong! BTW, how is MRO holding up against the older R infra (we use openblas here but had to disable libgomp recently as it is not fork-safe and therefore is unsuitable for use with things like MPI, or in general anything that wants to fork while running libgomp threads). I've done some benchmarks since and the performance delta wasn't vast, but I only tested on a 4 core machine. You should be able to reproduce my results with docker via https://github.com/AnacondaRecipes/mro-docker if you were interested. Adding conda-forge into the mix would also be interesting I think. Definitely with tackling one thing at a time. I cannot multitask too well! |
Do we want to hold off until R 3.5.2 for this change of layout btw? If so do I need to unstick this at 3.5.1 without the layout changes? If we don't rebuild and release all the R windows packages in one go we'll break things. |
Also should we go for |
👍 for this from my side.
I leave this to @isuruf and others. I would like to get the mass migration done and not postpone it anytime longer, so whatever is beneficial there gets my vote :) |
-----begin rant----- Let's just move on without the windows layout change since people want things to be done quickly instead of sensibly and build for all platforms 550+ packages (out of 750 r packages) that could potentially be noarch:generic and compatible with defaults with a x.x (which was one of the major points of compiler upgrade). Layout change and noarch:generic has to be postponed to 3.6 series. |
OK, well I wasn't party to much of the latter half of these decisions which is fine, I just need to know that if I change the layout on a 3.5.1 build (which I'm fine with doing) that all the Windows and noarch packages will be rebuilt before r-base 3.5.1 is released. Is the something someone can setup here? I know it can, but really I'm asking about what I need to do on my end? What build number, how do we bump all the r package build numbers etc? |
Something that might be problematic on osx gcc7
during the osx configure fails with linker issues. See logs now printed for details
|
And we are all green here! |
This is so that we can share noarch packages directly.
Ok @isuruf, I have cherry-picked it in! |
So that failed @isuruf, so I think we should revert and merge to kick off the rest migrations. This kind of capability can be worked through in another PR. |
@mingwandroid, do you know why that last build is failing on Windows? |
I'll take a look. |
|
@scopatz so the osx64 gcc7 build is building with the wrong compiler i think |
@mariusvniekerk - I don't understand what you mean, exactly. It seems to be using clang, as needed, right? |
I think we are back in business with mac and it is now using the correct compilers. |
|
Alright, I have fixed the DSO warnings on Mac on the new compilers |
And we are all green again! |
@conda-forge/r-base I think this is ready for review/merge. |
@CJ-Wright, not yet. Windows layout is not changed yet and since almost everyone wanted to do it, we should do it. |
Sorry I've not had time to look at this yet. |
I think we can and should wait to change the windows layout since there is no one willing to do it on a reasonable time frame |
I have permission to look into this today. I cannot guarantee I will get it fixed today but I will try to. |
It is likely this feedstock needs to be rebuilt.
Notes and instructions for merging this PR:
Please note that if you close this PR we presume that the feedstock has been rebuilt, so if you are going to perform the rebuild yourself don't close this PR until the your rebuild has been merged.
This package has the following downstream children:
r-acepack
r-ada
r-ade4
r-adgoftest
r-aer
And potentially more.
If this PR was opened in error or needs to be updated please add the
bot-rerun
label to this PR. The bot will close this PR and schedule another one.This PR was created by the cf-regro-autotick-bot.
The cf-regro-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. If you would like a local version of this bot, you might consider using rever. Rever is a tool for automating software releases and forms the backbone of the bot's conda-forge PRing capability. Rever is both conda (
conda install -c conda-forge rever
) and pip (pip install re-ver
) installable.Finally, feel free to drop us a line if there are any issues!