grzegorzmazur / yacas

Computer calculations made easy
http://www.yacas.org
GNU Lesser General Public License v2.1
124 stars 24 forks source link

Release of next stable version? #261

Closed mikldk closed 5 years ago

mikldk commented 5 years ago

Is there any plans on when the next stable version of yacas will be released?

grzegorzmazur commented 5 years ago

Hi,

Right, the next release is long overdue. I'm now trying to improve the numeric code, and this should not take too long. But then most of the automatic tests are red, I'll need some time to sort it out. Also, preparing binary builds is a headache and takes lots of time, especially given that I haven't got direct access to neither windows nor mac. Taking into account the day job, I think that july/august is realistic.

Actually, this is building the binary versions and testing them which prevents more frequent releases in principle. Automatic tests do not cover the gui part at all, so in the end I have to build and run yacas somewhere locally to see if it works at all. But buying a mac just for that is too extravagant for me :) Perhaps I should just bite the bullet and do the releases more often using artifacts automatic builds on travis and appveyor, and just wait for bug reports? Hey, if it works for microsoft, perhaps it could work for yacas too :)

Anyway, the current release will take some time, but I should be able to finish by the end of july. Hopefully, this isn't too long for you.

Cheers, Grzesiek

mikldk commented 5 years ago

Thanks for the fast reply.

I see the problems. But what about making more frequent source releases that are not manually tried on the platforms (only automatically tested using CI tools). And then the more rare binary releases that are tested as you describe?

grzegorzmazur commented 5 years ago

Right, that's what seems to be the only viable way forward. Still, before taking such approach a solid base would be good to have. I'll start with dealing with the automatic tests failures (actually I've already started yesterday and now windows version on appveyor looks good), then commit outstanding local changes. Having done that I'll merge develop to master and reconsider whether to try extended testing or just go ahead with the release.

Thanks for the input, I really appreciate it.

Cheers, Grzesiek

mikldk commented 5 years ago

That sounds good. I actually just wanted to hear about your plans, I didn't expect you to do anything already! :)

I have access to a Windows computer, so I can help test that. Also, if you need help with anything else, let me know.

Thank you very much.

grzegorzmazur commented 5 years ago

OK, all autotests on all platforms are passing, so the first step is done. Next I'll get the local changes into better shape, push them and start merging with master. If everything goes well there's a chance of pushing things out late June / early July .

Grzesiek

mikldk commented 5 years ago

That sounds terrific. Thank you heaps.

grzegorzmazur commented 5 years ago

OK, I've pushed all outstanding changes to github, cleared autotests and merged develop into master. From now on I'm going to do release preparation (testing, bugfixing and packaging) on master; once it looks good I'll push the release.

Could you please checkout master and try to build and run yacas on windows? That would be extremely helpful, I have no real chance of trying anything on windows other that the autotests on appveyor.

Thanks, Grzesiek

fvacek commented 5 years ago

If the Yacas can be build with mingw64 + qt5 on windows, I can try to do it.

grzegorzmazur commented 5 years ago

This is a very good question. In the old times I did crosscompile yacas for windows using mingw on linux, but it was quite a hassle and I gave up, switching to visual studio. I got it working on a friends computer and then tried to keep it working on appveyor.

So it's been a while ago, so eg the build system may no longer actually work in your configuration. Still, I think it's worth a try and I'll try to fix any issues which may show up.

Thanks, Grzesiek

fvacek commented 5 years ago

Well, I can try it. AFIK mingw64 Qt5 build does not support QtWebEngine so only kernel and CLI can be built. Does it still worth to do it?

grzegorzmazur commented 5 years ago

Ups, that's a shame. I haven't been aware of it. Given that it's most likely not really worth it - autotests on appveyor test the console app pretty thoroughly, this is mainly the gui part which requires manual testing. So while it'd be an interesting experiment in itself, I'm still on the lookout for someone who has access to visual studio.

Thanks, Grzesiek

fvacek commented 5 years ago

It doesn't seem that Chromium starts to support Mingw in near future. Anyway, if there will be something else, how can I help to Yacas project, I like to put my hands on.

cheers Fanda

mikldk commented 5 years ago

I'll see if I can find my Window and try to compile it on that. Hopefully in the coming week.

grzegorzmazur commented 5 years ago

Hi all,

I'll be off for a next couple of days, so anything that happens in the meantime will have to wait. But just before I leave: perhaps it'd be the easiest way to just download the code which appveyor produces? They have from what I can see quite elaborate assets management. I haven't used it because not having windows to run it kind of made the exercise useless. But perhaps it's worth giving a try? If you think so, I can try reconfigure appveyor so the assets are somehow preserved as soon as I'm back in office.

Thanks, Grzesiek

mikldk commented 5 years ago

I cannot seem to find anywhere to download the binaries from AppVeyor. Do you happen to know how it's done?

grzegorzmazur commented 5 years ago

It's not possible yet. From what I understand the binaries would have to be designated as assets and a method would need to be provided for appveyor to upload them somewhere upon successful completion of the build and test phases. AFAIR it could be automatically uploaded to the github large file store. But it requires changes to appveyor.yml, and right now I'm in a bit of hurry, so it'll need to wait until I'm back. Or you could try changing it yourself in the meantime :)

Cheers, Grzesiek

grzegorzmazur commented 5 years ago

Ups, of course artifacts https://www.appveyor.com/docs/packaging-artifacts/

mikldk commented 5 years ago

I have tried getting it to compile on Windows, but I cannot get it working (e.g. now I'm missing a benchmark library that I cannot get to compile). I'm not used to working with Windows, so I'm not sure how to set-up the entire toolchain. I think it is easier to see if we can get the AppVeyor artifacts instead.

fvacek commented 5 years ago

Is the appveyor integration for Yacas working already? I've seen appveyor.yaml but I also cannot find any link to CI page. Do I need special privileges for this?

mikldk commented 5 years ago

https://ci.appveyor.com/project/grzegorzmazur/yacas? At the top of README.

grzegorzmazur commented 5 years ago

OK, so there's a tiny step forward. The artifact for the last successful build of the master branch can be downloaded from https://ci.appveyor.com/api/projects/grzegorzmazur/yacas/artifacts/yacas.zip?branch=master

This is 64 bit Release build, and, barring any bugs or errors, this is what will become the next release on windows. So please try it out and report any issues.

Cheers, Grzesiek

mikldk commented 5 years ago

I can get yacas.exe working. But yacas-gui.exe only works after I have made a Qt windeployqt.exe on it. Maybe due to different versions of something. I don't know.

grzegorzmazur commented 5 years ago

Thanks! I do not use windeployqt to prepare the set of libraries needed by yacas-gui, instead I try to pick the required ones by hand. And apparently the required set has changed. Obviously this is the wrong approach. I've taken it only because it worked reasonably well for cross-compilation. I think it should be replaced by applying windeployqt. But as a stop-gap, could you please check what's the difference between the libraries originally bundled and the ones installed by windeployqt?

Thanks, Grzesiek

mikldk commented 5 years ago

Based on comparing dictories of downloaded and after windeployqt: Skærmbillede fra 2019-05-11 19-07-20

There is at least Qt5SerialPort.dll and QtWebEngineProcess.exe. I'm not sure about the other folders.

I agree that it would be better to incorporate windeployqt, but I have no idea what the means for the build process.

grzegorzmazur commented 5 years ago

OK, thanks for the information. I've added the missing pieces, hopefully now it works. Would you mind trying it out, please? With respect to integrating cmake with windeployqt there is a detailed writeup, but if the current approach works, I'll put off changing the approach to the next version.

Cheers, Grzesiek

fvacek commented 5 years ago

Win artifact contains 145MB of *.pdb files (bin/platforms) I'm not used to use MS tools but AFAIK the PDB files contains debug info, so they can be IMO omitted in release build. I'm not 100% sure but 145MB worth to be saved.

Fanda

grzegorzmazur commented 5 years ago

Good point, but not that easy to solve offhand, I'm afraid. You're right, this is debug info, and it's actually qt debug info, which makes it useless in our case. Unfortunately, not knowing at all what is in this directory, I just copy it thoroughly. If you could please advise what's in there which is actually required - knowing that I'd be able to skip the PDB files.

Cheers, Grzesiek

fvacek commented 5 years ago

Can you just skip all the *.pdb files during copy stage?

grzegorzmazur commented 5 years ago

OK, actually I can (I've somehow forgotten about it). So I did just it, could you please if it is really smaller and still works?

Grzesiek

mikldk commented 5 years ago

For 1.0.375 (silly mistake), I get an error:

"This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem."

After I run windeploytqt I get again the above error, but with the extra line "Available platform plugins are: windows.".

fvacek commented 5 years ago

platforms directory is empty after https://github.com/grzegorzmazur/yacas/commit/de8daa8e6b72499a4fa4eb74a66c23c1bd315475 change. It seems that the EXCLUDE directive in CMakeList.txt works different way than install whole dir except of *.PDB

fvacek commented 5 years ago

https://github.com/grzegorzmazur/yacas/pull/264

fvacek commented 5 years ago

yacas-gui.exe is still not working on my win7. Fault in module Qt5WebEngineCore.dll

grzegorzmazur commented 5 years ago

OK. Things got somewhat messy. so let's slow down for a minute. First of all - could (any of) you please tell me if yacas-gui worked at all in the meantime? What I mean is whether we regressed it never actually worked. If this is a regression, I'd lean toward reverting to the working state, giving up for now with optimizing size. And if this is the opposite case, I'd say that getting windeployqt is the way forward.

mikldk commented 5 years ago

I've only had it working after running windeployqt myself (comment).

fvacek commented 5 years ago

comparing to windeployqt version the resources and styles directories are still missing in our installation

mikldk commented 5 years ago

Wouldn't it be better to roll back to previous, remove manual components and set up windeployqt like explained here: https://wiki.qt.io/Auto-deploying_your_Qt_Application?

grzegorzmazur commented 5 years ago

You're definitely right that it's high time to stop fiddling around and switch to windeployqt. With respect to the travis/appveyor suggestion - if possible I'd rather keep the whole thing within cmake to allow (complete) builds on any machine, not just using the CI infrastructure. But if I cannot do that quickly, I'll follow your advice. Anyway, I'm just committing a change which switches things over to windeployqt, hopefully it'll work.

Cheers, Grzesiek

grzegorzmazur commented 5 years ago

OK, it's been quite a job, but should be working now. Could you please try it out?

Cheers, Grzesiek

mikldk commented 5 years ago

I have just tried it out, and both yacas and yacas-gui worked out of the box! Well done!

Artifact: https://ci.appveyor.com/api/buildjobs/djfhn9b28xysd7so/artifacts/yacas.zip Commit: https://github.com/grzegorzmazur/yacas/commit/1c29d899144afe37c9cb0b5fbc65c79ca2364f24

262 ready to be closed?

grzegorzmazur commented 5 years ago

Good to know :) Thanks for testing. The issue is closed, and I'll be moving on to testing on MacOS. Hopefully in a few days I'll have it working. Then it'll be the time to decide what else have to be done before the release; hopefully not much.

Cheers, Grzesiek

fvacek commented 5 years ago

latest version is not working for me, unfortunately. Maybe, some VS part is necessary to be installed to make Qt5WebEngine working.

image
grzegorzmazur commented 5 years ago

Ups 🙁

Seems weird. The fault code says that breakpoint was encountered, which doesn't really make any sense, and shows some general problem. Regarding vs redistributable elements, I believe to have them covered.

Could you please tell me which windows version you use?

Thanks, Grzesiek

fvacek commented 5 years ago

Win7, yacas.exe is working well.

mikldk commented 5 years ago

I was using Windows 10 where both worked.

grzegorzmazur commented 5 years ago

I've asked a few colleagues around to download the current artifact and just check if yacas gui starts at all on their windows machines. These are widely different computers, some with windows 7, other with windows 10, with only one common trait: none of them is used to do any c++ development, and on none of them neither visual studio nor qt was ever installed. And yacas gui worked on all of them out of the box. So right now I'm completely clueless :(

Grzesiek

fvacek commented 5 years ago

It's OK, I'm not used to use Windows, I just wanted to test the win installation to hep to the Yacas project, so if the problem persists on my box only, then it is not problem at all :)

cheers

Fanda

grzegorzmazur commented 5 years ago

Hi, A status update: I'm working on the MacOS port, there's still one stopship #266, once this is fixed I'll make an attempt at fixing #265 (significant regression, but perhaps not stopship) and will be pushing the release out.

Grzesiek

grzegorzmazur commented 5 years ago

I've started writing release notes and should be done with pushing the release by weekend, so I'm closing this issue now. Thanks a lot guys!

mikldk commented 5 years ago

That sounds really great! Really appreciate it. Thanks!