-
Notifications
You must be signed in to change notification settings - Fork 8
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
Alpha Testing #65
Comments
I'd really like to get this to alpha testers by COB today. Please either wrap up the outstanding items or consider them unnecessary (e.g., I'm ok with people cloning the repo). |
Yeah, I agree. I'm going to merge #68 now and then I will put together a zip file of the code and docs and put it somewhere. The alpha testers can then work from this zip. |
Ryan could you review my comments in the ghPages #63 review while Mat builds the release? |
Here you go: |
I have approved the #63 we should update the docs to reflect the changes. I am running the test suite now. Documentation works. |
I had 2 tests fail. I am looking into the call to strsplit() in the tests which run example.m and dependencyCheck.m which I ran independent runTests.m no problem. |
This seems to work if I define what the string is first. Not sure what the issue is here. Any suggestions? K>> strsplit(s.path, '\')
Error using strsplit
No value was given for '\'. Name-value pair arguments require a name followed by a value.
Error in strsplit (line 99)
p.parse(varargin{:});
K>> str = s.path;
K>> strsplit(str, '\')
ans =
1×8 cell array
Columns 1 through 7
{'C:'} {'Users'} {'sterl_000'} {'Desktop'} {'alphaWOT'} {'wecoopttool'} {'toolbox'}
Column 8
{'+WecOptLib'} |
Ahh! Its finding both +WecOptLibs. We should flag this as an issue but presumably, users will not have multiple WecOptTool Installations? K>> s.path
ans =
'C:\Users\sterl_000\Desktop\alphaWOT\wecoopttool\toolbox\+WecOptLib'
ans =
'C:\Users\sterl_000\Documents\WecOptTool\toolbox\+WecOptLib'
|
I think this is |
OK, that update is in #73. I'll assume it's OK and put together a new RC. |
@kmruehl @zmorrell-sand @dforbush2 - You've all been asked to perform alpha testing reviews of WecOptTool. We realize this is short notice and a short timeline, so we'll be happy to with whatever you're able to provide by COB Friday. Here's some instructions/notes: To get started, download the release candidate from this thread. This Answering some questions you've had so far:
Thanks for your help. |
|
I will try setting up and running this on both Windows and Linux to make sure that it is compatible across platforms. I will let you know if I have any questions or find anything weird |
One minor thing I noticed that may be a good idea to address, the example.m file is dependent on has "use-parallel" option set to True, but this requires the Parallel Computing Toolbox if I am not mistaken. I am unsure of whether MATLAB will default to the non-parallel case if the user does not have the toolbox. We specify in the README and html documentation that the Parallel Optimization Toolbox is optional. I looked into it a little bit, and it seems that |
Everything seems to run well on Windows. I made sure to follow the installation instructions directly and ignore any prior knowledge I had about the program. Installation went smoothly and worked out of the box. I made sure to run all the test cases and example scripts, and it all worked well. Now onto linux. |
Okay, I'm going to provide my feedback in a few comments. This is what I have thus far. Index
Installation
Copyright/License
|
As Kelley mentioned, addpath(genpath('/path/to/wecopttool/')) needs to be used on Linux, or installNemoh will not run properly. Other than that, everything runs well out of the box on Linux as well |
I was able to install and run on windows, Matlab 2019a. However, my run of example had "Solver Stopped Prematurely" warnings for fmincon. Code is mostly clear. Its like Matlab wearing a python costume. WEC-Sim can conflict with WAFO if they are both on the path at the same time, and since you might share some of the user base, I personally like having to manually add WAFO to my path here rather than a startup file, but I could see the benefits either way. I think for a version 0.1 release you guys look good! It would be great to see the example documentation fleshed out a little more...at least labeling the output figure (I think its power for each of the 8 query sea-states?). Thinking longer term, it would be great to see a more populated theory/workflow section to get a better idea of whats under the hood and what user I/Os are available. I'm a little concerned about how extendable this meshing approach will be to non-axisymmetric geometries, as Nemoh leaves some to be desired on this front. If you intend to actively support this code I worry you'll have the same issues we do with WEC-Sim where half of our posted issues are actually Nemoh issues. |
Thanks everyone for your feedback. My fault about the loss of genpath. Casual change because it wasn't needed in Windows. I'll try and address all your notes over the weekend. Thanks again. T |
Okay, and here's my second round of comments Example
Running the Example
API Doc
Tests
General
|
@H0R5E I'm running windows and it was required for me. |
Ok, thanks. I guess its also a backwards compatibility thing then. For my version it just picks up package directories automatically. Ill pop it back in as it wont do any harm. We should definitely make a note as to the oldest version we know to be operable. |
I was going to recommend against using |
@H0R5E unfortunately MATLAB changes things like that all the time. It's very frustrating, and we have to do version capability checks for MATLAB changes all the time. Recently, for example, array output was changed b/w rows and columns so that messed up all of our matrix calculations. Specifying version compatibility is critical. I'm running MATLAB 2018b on Windows and I have |
@dforbush2 did you mean |
I wholeheartedly agree with this feedback. |
okay, I'm out for the weekend. @H0R5E have fun with all of this, sorry if I gave you more than you were asking for :) |
@zmorrell-sand, thanks this is a really good point. I've opened this one in #83.
@zmorrell-sand and @kmruehl thanks, I've got this one TODO in #84 now. |
@kmruehl, I'm going to reply inline
Yeah, I think we need this.
Agreed, I have this structure to allow for multiple major sections (like User vs Technical) but it's not needed right now.
Contribution instructions are in the README, and we should add a note pointing people there for interested parties
Yep, this is important.
OK, we'll take another look at this, thanks. Bad things happen if you install two versions.
Personally, I don't think startup files are any more reliable given the user may wish to change the startup directory depending on what they are working on at any one time. If there were a single unified location where these could be placed then that would be more useful, but the user still has to do some stuff. Our plan is take the next step in functionality with #58.
See #84.
What did the warning say? As I said, not sure I see the relative value of a startup file.
The documentation does give specific Windows vs Linux instructions, but we can try to make them more distinct by rolling them up.
This is the subject of #69. I'll mark it high priority.
Agreed. Thanks.
See the discussion in #60
I'm not sure you need to add this to the LICENSE file for GPL as every source file carries it and references to the text in licence file. The README should carry it though.
@ryancoe has this been done?
I think the verbatim licence file should be replaced with the source code boilerplate.
@ryancoe can you check this? We'll update it (in all the files - urg) if we have to. |
Right, I've put all your notes regarding content in the example into #87. Many thanks. I'll just address some of the other operational things you posted.
I think this is a drawback of having example.m as a script (but this is the most likely way it will be used) and I don't think it should be outputting anything that isn't in example.m. Are you seeing any variables being created that are not defined in example.m?
Good suggestion! Opened in #88.
Yeah, I've seen this too. Needs investigating. Opened in #89.
So the plan is to store the sphinx source on master and push the build to gh-pages. You can follow #82 for the implementation until its merged. The next step is to automatically build the docs on a master branch merge. See #72 and #81.
We are just running them manually at the moment and posting the run_tests.pdf file to our PRs for validation. It would be nice to get this running automagically, for sure.
Yeah, I think there is a balance of enticing without over-selling. This is just a beta, so we don't want to promise too much and not deliver otherwise people might not come back [ to DTOcean :'( ]. @ryancoe what's your thoughts here? |
@dforbush2, thanks for your feedback. I'll reply inline:
Yes, we deliberately stop the optimiser so that the example runs quicker. We need to make a note about this, so I've opened #90.
Well, you know, they are pretty much the same programming language.
See my comments to Kelley on this.
Many thanks!
Thanks, I've popped that comment into #87.
I agree that some technical docs alongside would be great. Depends a bit on resources, I guess, and that is @ryancoe's burden.
I guess it would be nice if we could be agnostic regarding the solver we called. This somewhat relates to an issue I am going to open regarding generalising mesh creation and it would be nice to be able deliver meshes to other tools that could give compatible results. If we could get it to work then it might well be useful beyond the scope of this toolbox. |
Not sure about this one. @ryancoe, @ssolson, @zmorrell-sand have you had any bother with this in production runs? It is used in the control optimisation too, so it would be bad if it's not reliable. |
@H0R5E I'm going to try to reply inline as well, we will see how it goes
That's a fair point, and ultimately a decision up to the code deveopment team. The
It was a warning about having admin rights on the machine, I just hit accept. My concern with saving the path is that if you change the path, you'll have to remove the current path and and then add a new one (otherwise you'll have both versions of the code in your path). That's the reason we chose to add the path every time MATLAB is opened by modifying the
Oh, is the
You're welcome, hope this feedback helps! |
@H0R5E Attempting to respond in line here too...
Thank you, I'll review issue #87
I added a screenshot of my MATLAB workspace to the comment, it may have been added after you saw the comments (I made a few minor revisions). I'm not sure if all of the variables are defined in the
I'll take a look at #82 . This is an issue we are currently trying to resolve with MHKiT-MATLAB. Right now we are compiling them in master and copying them over to gh-pages, which is a short-term solution, and has obvious drawbacks... including that we lose the index.
Okay, let me/@zmorrell-sand how we can help. We have Jenkins set up for WEC-Sim, the server is on a virtual machine with MATLAB installed. It should be relatively simple to set up a Jenkins webhook for the WecOpTTool
Understood. But if your goal is to target "WEC developers and researchers" you have to tell them why they care, and provide them the relevant theory/application. Similar comment as before, this is something that could/should be built upon for a future release. In my eyes, the goal of an alpha release is to get something functional out the door, examples/documentation are ongoing works in progress... |
Thanks @kmruehl @zmorrell-sand @dforbush2! - I'm going to close out this issue as the key items have be split out into individual issues. |
@kmruehl, I see where you are coming from here. For us, this would only be an issue for those using the "development version" of the code, i.e. working from a cloned copy which they update. I also think its a legacy issue (although it seems to carry over to linux for some reason) because we should only need to add one folder (toolbox) and the package directories below should be automatically found (according to https://www.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html#brfynt_-3). |
A list of things to do prior and during alpha testing:
The text was updated successfully, but these errors were encountered: