[SERVER-62992] Remove need for resmoke.ini Created: 26/Jan/22 Updated: 29/Oct/23 Resolved: 11/Apr/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 6.0.0-rc0, 6.0.0-rc2, 5.0.9, 4.4.15 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Andrew Morrow (Inactive) | Assignee: | Richard Samuels (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||
| Backport Requested: |
v6.0, v5.0, v4.4
|
||||||||||||||||||||||||||||
| Sprint: | Dev Platform 2022-03-07, Dev Platform 2022-03-21, Dev Platform 2022-04-04, Dev Platform 2022-04-18 | ||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||||||||||||||
| Story Points: | 3 | ||||||||||||||||||||||||||||
| Description |
|
The resmoke.ini file was added during the rollout of hygienic builds to deal with the fact that while we were transitioning between hygienic builds and legacy style builds, we needed resmoke to be able to look in different places for the binaries under test. Having the build system create the resmoke.ini file for resmoke to consume and understand the placement of the intended build, was, at the time, an OK workaround. The result, however, has been long-term troublesome:
Long term, this problem should be obviated by the self-testable installs effort, where each installation will have its own entry points which test the install. However, we aren't there yet. We need to find a way to eliminate the need for resmoke.ini file entirely. One simple way to do this may be for resmoke itself to gain some heuristics to identify the available builds. For instance, if we gave each build a well known file (or keyed from one of the existing ones, like the license file), then resmoke could start by running a find command from cwd. If it finds one matching installation directory, it assumes that that is the intended build to test. If it finds zero, it reports an error. If it finds more than one, it either prompts the user to select the build to test, or logs the identified builds and errors out with a message to re-run with the installDir flag set as appropriate, if the environment is not interactive. Alternatively, we could just require that resmoke always be invoked with installDir. I'm happy to investigate other options. |
| Comments |
| Comment by Githook User [ 25/Apr/22 ] |
|
Author: {'name': 'Richard Samuels', 'email': 'richard.l.samuels@gmail.com', 'username': 'richardsamuels'}Message: |
| Comment by Githook User [ 21/Apr/22 ] |
|
Author: {'name': 'Richard Samuels', 'email': 'richard.l.samuels@gmail.com', 'username': 'richardsamuels'}Message: |
| Comment by Githook User [ 20/Apr/22 ] |
|
Author: {'name': 'Richard Samuels', 'email': 'richard.l.samuels@gmail.com', 'username': 'richardsamuels'}Message: (cherry picked from commit a4aa57a45b9c730acc0a888d0b86a479423ffe87) |
| Comment by Githook User [ 18/Apr/22 ] |
|
Author: {'name': 'Richard Samuels', 'email': 'richard.l.samuels@gmail.com', 'username': 'richardsamuels'}Message: |
| Comment by Githook User [ 11/Apr/22 ] |
|
Author: {'name': 'Richard Samuels', 'email': 'richard.l.samuels@gmail.com', 'username': 'richardsamuels'}Message: |
| Comment by Githook User [ 08/Apr/22 ] |
|
Author: {'name': 'Richard Samuels', 'email': 'richard.l.samuels@gmail.com', 'username': 'richardsamuels'}Message: |
| Comment by Githook User [ 30/Mar/22 ] |
|
Author: {'name': 'Richard Samuels', 'email': 'richard.l.samuels@gmail.com', 'username': 'richardsamuels'}Message: Revert " This reverts commit d4206bdeb19f4c5862280c04cd6b831c9ec03a40. |
| Comment by Richard Samuels (Inactive) [ 30/Mar/22 ] |
|
Due to breakages in sdam_json_test, this change is being reverted. |
| Comment by Githook User [ 30/Mar/22 ] |
|
Author: {'name': 'Richard Samuels', 'email': 'richard.l.samuels@gmail.com', 'username': 'richardsamuels'}Message: |
| Comment by Iryna Zhuravlova [ 03/Mar/22 ] |
|
As a part of this ticket, we should make it backportable to 5.0 and 4.4. and communicate the changes to the db-contributors. |
| Comment by Brooke Miller [ 01/Feb/22 ] |
|
During triage, we discussed that we'll pursue the suggestion in your comment, acm, to align with the broader vision to push more of this logic to the build system. We hope this will take us one step closer to self-testable installs. |
| Comment by Andrew Morrow (Inactive) [ 26/Jan/22 ] |
|
Another approach to this would be to have SCons/Ninja generate a file into each installation directory like $DESTDIR/$PREFIX_BINDIR/resmoke, which was a wrapper script which would know how to correctly invoke buildscripts/resmoke.py --installDir <self>. If you had multiple installation directories from multiple ninja files, then you would invoke resmoke like:
But there are a lot of tricky things about that:
On the other hand, we would probably need to do the same thing for any sentinel file that we created. |