disco icon indicating copy to clipboard operation
disco copied to clipboard

updates dependencies

Open tharvik opened this issue 1 year ago • 1 comments

currently, there is a bunch of security issues, mostly from old dependencies. this PR aims to fix that

  • build web-client with vite instead of the deprecated vue-cli
    • way faster build time, ESM hot replacement
    • add strict compile options
    • add lang="ts" to all script tags
    • ~~commonize eslint #534~~
  • bump all packages to latest versions
    • will reenable dependabot updates after that
    • immutable@5 is still in beta, even if npm outdated marks it as updatable
    • eslint@9 is too recent for plugins to support it yet
  • drop doc generation (outdated and unused)
  • drop dead web-client/src/components/data/preview (unused and depending on removed code)

also partially fix a race condition when receiving peers in decentralized. it would need a better synchronisation mechanism (an ACK when peer updates are done, like a real RPC) to ensure that slower nodes are indeed ready to communicate.

also rework the cypress tests to remove some uneeded files, and add a test of the training.

tharvik avatar Mar 28 '24 11:03 tharvik

soo, I driffted a bit from the original PR aim, oupsi

  • added ~workaround for "unknown signal from peer"
  • update cypress tests
  • change training to expose logs of round & epochs and avoid mutating objects
    • remove a bunch of dead/killable callbacks
    • rm now obsolete TrainingInformant
    • GraphInformant is still around as it is used by Tester/Validator; but I don't see the need for keeping track of the evolution of the accuracy, do we remove it?

tharvik avatar Apr 09 '24 14:04 tharvik

I got an error specific to silicon chips when trying to build the web-client However the package-lock.json got modified, so I'm pushing it so you can check it out and decided whether to keep the now one or revert the previous one.

yeah, it's a faster moving space now that dependencies are actual again. vue and friends are moving fast and we're only enforcing major versions. btw, in between your remarks and me updating the PR, it changed again :rocket:

  • During training, logs are not displayed in the "Training logs" div, but raw logs get printed in the lower left corner of the screen

ho, I forgot to actually load a theme in the Toaster! I don't think we really need messages at all (the toaster itself is alreay quite fancy, there are better way to show that's models are training such as via the graphs we have). but for now, I forwarded the logger output in there, that makes it a bit more fun to watch. and a test that messages are shown.

  • After training, clicking on Test the model doesn't work and instead of a toaster, the error "Model not trained" gets also printed in the lower left corner of the page

ho, it seems that the model is not stored in memory automatically anymore. last commit should fix it.

If you have the time and motivation, writing test cases for these errors would be great! 😁

héhé, and regressions tests added. it's actually super fast to write some with vitest's components testing. we have no more excuses!

another point: after discussion with Klavdiia, it seems that I forgot to reimplement the calling of onBatch{Begin,End}, so no communication (or saving of the models) was done anymore! it wasn't catched because the server tests weren't shuffeling the datasets and the same initial model was used.

tharvik avatar Apr 11 '24 10:04 tharvik