OpenMS icon indicating copy to clipboard operation
OpenMS copied to clipboard

Refactoring TOPPView

Open cbielow opened this issue 3 years ago • 4 comments

Description

Starting out with a simple change "get rid of Plot1DCanvas::isMzToXAxis()", turned out to be a huge daisy chain of changes, which cannot be done incrementally. So this PR basically rewrites large parts of TOPPView. It will remain a draft, which you can comment on, but I will pull out individual classes/components for smaller PRs. Also, its not done yet... Some old functionality still crashes, and some new functionality is not tested yet... Overall, this PR reduces hackyness, eases understanding of control flow and sets us up to support more data types, e.g. Mobilograms, natively.

Highlights/Results (so far)

Native 2d ion mobilogram frame: image

Native chromatogram projection on top: image

Checklist

  • [ ] Make sure that you are listed in the AUTHORS file
  • [ ] Add relevant changes and new features to the CHANGELOG file
  • [ ] I have commented my code, particularly in hard-to-understand areas
  • [ ] New and existing unit tests pass locally with my changes
  • [ ] Updated or added python bindings for changed or new classes (Tick if no updates were necessary.)

How can I get additional information on failed tests during CI

Click to expand If your PR is failing you can check out
  • The details of the action statuses at the end of the PR or the "Checks" tab.
  • http://cdash.openms.de/index.php?project=OpenMS and look for your PR. Use the "Show filters" capability on the top right to search for your PR number. If you click in the column that lists the failed tests you will get detailed error messages.

Advanced commands (admins / reviewer only)

Click to expand
  • /reformat (experimental) applies the clang-format style changes as additional commit. Note: your branch must have a different name (e.g., yourrepo:feature/XYZ) than the receiving branch (e.g., OpenMS:develop). Otherwise, reformat fails to push.
  • setting the label "NoJenkins" will skip tests for this PR on jenkins (saves resources e.g., on edits that do not affect tests)
  • commenting with rebuild jenkins will retrigger Jenkins-based CI builds

:warning: Note: Once you opened a PR try to minimize the number of pushes to it as every push will trigger CI (automated builds and test) and is rather heavy on our infrastructure (e.g., if several pushes per day are performed).

cbielow avatar May 24 '22 13:05 cbielow

wow :)

timosachsenberg avatar May 24 '22 13:05 timosachsenberg

https://cdash.openms.de/viewBuildError.php?buildid=82572

jpfeuffer avatar Aug 08 '22 16:08 jpfeuffer

Those errors would benefit from a separate PR fixing it on develop

jpfeuffer avatar Aug 08 '22 16:08 jpfeuffer

this should be merged at some point in the near future. Any further comments? splitting this into smaller, equally-sized chunks is probably not feasible (dependencies...), unfortunately

cbielow avatar Oct 12 '22 14:10 cbielow

thanks for the review :) I'm still in the process of fixing a few compiler warnings on AppleClang... but should not be long before ready to merge.

cbielow avatar Oct 22 '22 20:10 cbielow

@cbielow our failing tests here are the Sirius ones that are also failing on develop. Can we go ahead and merge this in?

poshul avatar Oct 27 '22 08:10 poshul

are you sure? https://cdash.openms.de/viewBuildError.php?buildid=7637

timosachsenberg avatar Oct 27 '22 08:10 timosachsenberg

Yes, these are the same set of tests that keep failing. Looking into it there seems to be an issue with our CI where it continues to run the tests after a linker error.

poshul avatar Oct 27 '22 09:10 poshul

@cbielow

DefaultParamHandlerDocumenter.obj : error LNK2001: unresolved external symbol "public: virtual void * __cdecl OpenMS::MSExperiment::`scalar deleting destructor'(unsigned int)" (??_GMSExperiment@OpenMS@@UEAAPEAXI@Z) [E:\jenkins\ws\openms\PR\bldtst\9447518b\build\doc\DefaultParamHandlerDocumenter.vcxproj]

timosachsenberg avatar Oct 27 '22 14:10 timosachsenberg

@cbielow

DefaultParamHandlerDocumenter.obj : error LNK2001: unresolved external symbol "public: virtual void * __cdecl OpenMS::MSExperiment::`scalar deleting destructor'(unsigned int)" (??_GMSExperiment@OpenMS@@UEAAPEAXI@Z) [E:\jenkins\ws\openms\PR\bldtst\9447518b\build\doc\DefaultParamHandlerDocumenter.vcxproj]

I tried to fix that in #6402, but it's still resilient :) Currently trying to build a VS2019, since this does not show up in my VS2022 build. But there are compile errors as well on VS2019 (I'm running an older version than our CI...). We'll get there... eventually :)

cbielow avatar Oct 28 '22 08:10 cbielow

This is a compiler bug IMHO. But it should be fixed now. See https://stackoverflow.com/a/74235019/1913074

cbielow avatar Oct 28 '22 11:10 cbielow

this should do it. Everything that fails is due to SIRIUS.

cbielow avatar Oct 28 '22 14:10 cbielow

CI is still running but if that is the case I would say: merge

timosachsenberg avatar Oct 28 '22 14:10 timosachsenberg