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

Progress tracker for initial release #9

Closed
10 tasks done
vyasr opened this issue Jan 3, 2025 · 1 comment
Closed
10 tasks done

Progress tracker for initial release #9

vyasr opened this issue Jan 3, 2025 · 1 comment
Assignees

Comments

@vyasr
Copy link
Contributor

vyasr commented Jan 3, 2025

This is a meta-issue meant to capture the current state of rapids-logger and remaining work, serving as a task list for a 0.1 release in time for the RAPIDS 25.02 release.

  • Reducing code duplication: Before rapids-logger multiple repositories had their own approaches to maintaining loggers based on spdlog.
  • Avoid exposing spdlog publicly in published packages: There are three parts to this.
    • API: rapids-logger avoids any public APIs that expose spdlog types directly
    • ABI: rapids-logger uses the PImpl idiom to avoid any spdlog types leaking through the public ABI
    • Symbols: rapids-logger uses symbol visibility markup and suitable compilation flags to hide all spdlog symbols.
  • Avoid spdlog and fmt dependencies in packages
    • conda: fmt and spdlog are now removed from conda package requirements. The only dependency is a CPM-downloaded (but not installed) spdlog in conda builds of rapids-logger itself.
    • wheel: We already avoid any package dependencies, and now rapids-logger ensures that spdlog files are not installed during the build. The spdlog-bundled fmt is now used by default, so we don't have to worry about fmt anymore either.
  • Allow end-users to use whatever form of spdlog that they wish: End-users should be able to use a pre-compiled spdlog library on their system, for example. This was done in Validate dynamic linking against spdlog and fmt #29
  • Avoid propagating a spdlog dependency to consumers who don't use the logger: Now that rapids-logger is a precompiled rather than header-only library, there is no risk of this dependency propagating if the library is compiled with the right settings, namely by privately and statically linking to libspdlog.a while building a dynamic librapids_logger.so library that embeds the needed libspdlog symbols. That is now the default build behavior.
@vyasr
Copy link
Contributor Author

vyasr commented Mar 5, 2025

Everything here is done now.

@vyasr vyasr closed this as completed Mar 5, 2025
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