Skip to content
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

Infrastructure Roadmap #64

Closed
9 of 42 tasks
Pospelove opened this issue Jul 13, 2021 · 1 comment
Closed
9 of 42 tasks

Infrastructure Roadmap #64

Pospelove opened this issue Jul 13, 2021 · 1 comment

Comments

@Pospelove
Copy link
Contributor

Pospelove commented Jul 13, 2021

CI/CD

  • Perform Windows and Linux builds.
  • Test if CMake build is able to produce dist directory with the expected content.
  • TypeScript code formatting.
  • C++ code formatting.
  • CMake code formatting.

Build system

  • Measure the time it takes for each add_subdirectory in top-level CMakeLists.txt to be done to understand which projects are eating up CMake generation times.
  • Remove skyrimPlatform.d.ts from skymp5-functions-lib. The skyrimPlatform.ts built by TSConverter should be used.
  • Npm install should not dump warnings into the output stream.
  • Npm install commands should not be called if everything is already installed, because it's slow
  • Custom targets (and these are all targets, except for C++ targets) are being built every time, and not only when the files they depend on have changed. This slows down the build and should be fixed.
  • Remove dev_service (JS part of the build system). Reimplement its functionality in CMake.
  • Remove legacy vs_startup_project.
  • Add and document ability to develop and use certain subprojects instead of the whole repository.
  • Ensure that CMAKE_BINARY_DIR is ${CMAKE_SOURCE_DIR}/build (Add check to CMakeLists.txt that only "build" is supported as a binary dir #82).
  • Ensure that all pdb files are placed into build/dist.
  • Visual Studio should adequately display source tree for C++ and non-C++ targets.

Build system: Dependency management
It would be nice to unify the process of dependencies installation and fetch all of them from vcpkg:

  • CommonLibSSE
  • TiltedCore
  • TiltedHooks
  • TiltedReverse
  • TiltedUI
  • TiltedOnline (only ui_process is required currently)
  • SKSE64
  • xbyak
  • directxtk (it seems we already use vcpkg version, just remove outdated files from the repo)
  • frida
  • ctpl
  • CEF
  • cr
  • MakeID
  • npm dependencies (super-experimental)

Platform/compiler support

Feature deprecation/removal

  • Rewrite TypeScript part of the server in C++, drop NodeJS.
  • Remove existing CLI.
  • Remove server-settings.json in favor of CLI.
  • Use SLikeNet for browser messages instead of WebSocket.
  • We should remove hacky _libkey.js.
  • NPCs and Papyrus scripts should be whitelisted on the server.

Remove unnecessary downloads
Downloads should be controlled by external tooling. Client/CEF should not download anything from the server.

  • Bundle UI with the client, not the server.
  • Remove skymp5-client.js and its update system from the server.

Privacy

  • Should not set enable-media-stream in Chromium by default.

WIP. Feel free to leave comments.

@Pospelove Pospelove pinned this issue Jul 13, 2021
@Pospelove Pospelove changed the title Roadmap Todo List Jul 18, 2021
@Pospelove Pospelove changed the title Todo List Infrastructure Roadmap Jul 24, 2021
@Pospelove
Copy link
Contributor Author

After a private talk, closing all "roadmap" issues for now to standardize issue form.

@Pospelove Pospelove unpinned this issue Sep 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant