Closed dalehenrich closed 3 years ago
Our last passing internal test was run on Aug 16 at 3am PDT, which is 2 days before d717b7485 (which was tagged as the 3.4.5 release) so the regression appears to be fairly recent ... I'll run an internal test with 17b43cadb to confirm and then go hunting ...
There is one test that fails regularly for 3.6.1 but I have seen it passing as well. For now, I was thinking about a test timing issue I need to look at, but not a real problem.
So, where do you see it not running tests? E.g https://github.com/SeasideSt/Seaside/runs/3117498606?check_suite_focus=true shows the one failing test.
Am I overlooking something?
I ran a build with 17b43ca
and it seems that the classes WACanvasTestComponent and WACanvasTestDecoration aren't present and the test case WABuilderCanvasTest >> #testBodyWithDecorations isn't present either. So when the new classes and test case was added, it was either a mis-packaging of the two classes or a missing required package.
Perhaps the following in BaselineOfSeaside3>>baselinecommon: would fix the error?
package: 'Seaside-Tests-Canvas'
with: [ spec requires: #('Seaside-Tests-Core' 'Seaside-Canvas' 'Seaside-Component') ];
Surprising that this doesn't happen in Pharo, but it's possible that the load ordered is affected by something in BaselineOfSeaside3>>baselinepharo:?
@jbrichau, I'll leave the resolution to you ... we'll resume running the internal tests once the fix has made it into onto the head of the master branch ...
So, where do you see it not running tests? It was the 3.6.1 test run when v3.4.5 was tagged that failed during load of tODE and if run should have shown the test failure I was seeing.
I agree with you that the test run you referred to looks like it could be a timing problem (i.e., heavily loaded machine) ...
The load dependency got introduced in #1252 and went undetected... which is not good because the test testBodyWithDecorations
is not run in any of the builds as a result.
Instead of adding a dependency from Seaside-Canvas to Seaside-Component, I decided to move the tests (and part of the implementation) to Seaside-RenderLoop. Since the use of the WABuilder
in the context of Seaside components requires both the Canvas and Components package, it seems a more natural fit for the RenderLoop package.
@dalehenrich thanks for reporting this. I created a new issue #1280 to deal with the fact this went unnoticed in the CI builds. The changes I committed in https://github.com/SeasideSt/Seaside/commit/9605f4fce98968ff3a6eab53923e42e58964d878 should put the code in a more appropriate place that respects the package dependencies.
Let me know if this fixes the issue.
@jbrichau thanks for the quick response! I ran a manual load (that was "failing" before) and the new test class WABuilderWithComponentsCanvasTest is cleanly loaded and the test passes ...
@dalehenrich I am correct that this one can be closed? If not, please shout ;-)
It looks like the dependencies for Seaside-Tests-Canvas are broken as the package Seaside-Tests-Canvas is getting loaded BEFORE Seaside-Component:
I looked at the CI actions for v3.4.5 and it looks like the test for GemStone 3.6.1 (a released GemStone version) didn't actually finish loading tODE, let alone Seaside so it's hard for me to tell it ever passed ... Since the actions have been consistently failing for the last two months it's hard to tell when this particular bug was introduced ... So using github actions to replace Travis-CI (I know we have no choice) is not working out very well ... if we must ignore failures on a major release)... Yikes the logs expire after a certain amount of time ... 5 months ago the 3.6.0 action failed at the merge, but without logs, I can't tell what the failure was (I would only know that my local tests were passing otherwise I wouldn't have submitted the pull request that just added 3.7, 3.8, 3.9 to the baseline) ... so maybe this bug has been around since ???
Anyway, my 3.6.2 build doesn't fail due to the above Warning), but the
WABuilderCanvasTest >> #testBodyWithDecorations
test fails with an MNU for #tagName: (not loaded because of the dependency error), so the missing classes never made it into the image ...I did look at the passing GemStone 3.5.5 test of v3.4.5 and scanned the raw log for Seaside-Tests-Canvas and while the order of the two packages is the same Seaside-Tests-Canvas BEFORE Seaside-Component, we did not get the same warning (and of course the tests passed):
I wouldn't expect different Metacello behavior for different versions of GemStone but that appears to be the case as the baseline doesn't differentiate between 3.5.x and 3.6.x ...
Is Seaside still using #linear load? If we could use #atomic load, then package load order would be a moot point.
I will start spelunking around and try to characterize the issue. I guess the first order of business is to see when if ever the 3.6.0 tests were passing ...