-
Notifications
You must be signed in to change notification settings - Fork 564
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
ROL configuration failure on nightly testing #757
Comments
Thanks @bmpersc , confirmed. The commit 309caa: Forgot to add a new CMake file. should fix it. I should note that current pre-checkin tests would not have caught this. @bartlettroscoe , has there been any progress on a pre-checkin system that will catch errors due to missed git adds? This has been a major source of problems for the @trilinos/rol team, in particular when we move large amounts of code. This issue is also related to testing against installation builds. |
Thanks for the quick fix for this. I don't agree that the checkin test script would not have caught this. ROL would have been enabled with that script and ROL can't configure without the missing CMakeLists.txt so the configure would have failed for the checkin test script in the same manner it did for the continuous testing. |
I disagree: The CMakeLists.txt file exists in my local directory. I built everything just fine and ran all tests before pushing. I simply forgot to 'git add' it. Clearly, 'git status' showed it as an untracked file, but there were a few dozen such files because of the massive changes, and I missed that one. The checkin test scripts needs to work with a separate repo if we are to catch these errors. Basically, it would push to this (new local) repo, run all the tests, and then push to the main repo. Is there another way to do this? |
I believe there is a check for modifications to your repo that are not committed which would catch issues like you just described. |
Is this a check that the checkin script can execute, or is this a global git setting that I need to use on every development platform (and there are 6 or 7 in my case)? |
If you run the check-in test script with the |
It has been a while since I've run into that particular check so Mark may be right that it only happens when you use --push. However, it is a check that is done by the checkin test script and not an option to git so you will not have to update multiple clones of Trilinos for this feature. |
I see ... so I can no longer have temporary files in my local repo. It must be in a 'clean' state at all times, correct? |
checkin-test.py script by default requires a perfectly clean working directory. From checkin-test.py --help:
We need to compartmentalize and organize this documentation but it is there. I need to find the time to complete #482 and its blocking Issues before the checkin-test-sems.sh script will be ready to go for everyone to use. But we also have some other problems with basing the pre-push CI env on SEMS (see here). We need to discuss this at the Trilinos leaders level. |
Yes. The check-in test script tells you if your working directory is not clean. |
Thanks for all input. I'll discuss keeping the working directories clean with @trilinos/rol developers, and using .gitignore occasionally. I think this is better than pushing to a temporary repo just to catch missing files. Closing the issue. |
@dridzal , if this policy does not make sense then let's talk. But note that you can use the checkin-test.py script to test a "dirty" local working directory using
|
If I have unstashed, uncommitted changes, here is my typical workflow:
Rebuilds aren't generally expensive in packages you haven't changed. |
@mhoemmen , this is interesting, but I think I need more information. Can you please explain what the first step buys you? I assume that in the third step you run the check-in test script without --allow-no-pull. |
@dridzal wrote:
The point of the first step, is that you can use the same CMake configuration process for normal development, that you use for running the check-in test script. I use my check-in test script(s) to manage different builds (e.g., MPI_DEBUG and SERIAL_RELEASE). It's handy to have one script that can manage different builds. You might want to change files without making commits, or you might have added files and not yet be sure enough to commit them. This model lets you develop with uncommitted changes or new files, until you are ready to commit them. Furthermore, if you add "--enable-all-packages=off", you can even develop in a different (e.g., temporary) branch with uncommitted changes.
Yes. You would need to settle up your commits first, get on the develop branch, then run the check-in test script with "--do-all --push". |
@trilinos/rol There is a configuration issue in ROL that can be seen at https://testing.sandia.gov/cdash/viewConfigure.php?buildid=2604389. It looks like the issue is that some tests were moved to a different directory and the CMakeLists.txt in topo-opt was moved with them. It seems the solution is to change the add_subdirectory for topo-opt to point instead to the two subdirs in topo-opt. Does that sound correct to you?
The text was updated successfully, but these errors were encountered: