Redesign flake outputs#18
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR restructures the Nix/CMake packaging so individual Tablo components and libraries can be built as separate flake outputs, while preserving a combined tablo-full package.
Changes:
- Adds CMake build options for selectively enabling libraries and executables.
- Expands flake outputs for individual libraries, executables, Docker images, and a joined default package.
- Renames
MethodstoMETHODSacross networking code and removes the oldTCTesttarget.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
CMakeLists.txt |
Adds build flags to conditionally include libraries and executables. |
TCTest/CMakeLists.txt |
Removes the old tabcrypt test executable target. |
TCTest/src/main.cpp |
Removes the tabcrypt test executable implementation. |
TCTest/src/tabcrypt_test.h |
Removes the tabcrypt test helper header. |
TabloClient/CMakeLists.txt |
Adds ttp2 to client link libraries. |
TabloClient/src/utils/networking.cpp |
Updates protocol enum references to METHODS. |
TabloMaster/CMakeLists.txt |
Adds ttp2 to master link libraries. |
TabloMaster/src/utils/client_session_controller.cpp |
Updates protocol enum references to METHODS. |
TabloMaster/src/utils/networking.cpp |
Updates handshake enum reference and removes a debug log. |
TabloMaster/src/utils/node_session_controller.cpp |
Updates protocol enum references and removes debug logs. |
TabloMaster/src/utils/udp_discovery.cpp |
Updates discovery protocol enum references. |
TabloNode/CMakeLists.txt |
Adds ttp2 to node link libraries. |
TabloNode/src/utils/networking.cpp |
Updates protocol enum references and removes debug logs. |
TabloNode/src/utils/udp_discovery.cpp |
Updates discovery protocol enum references. |
TabloNode/src/utils/worker.cpp |
Updates worker protocol enum references and removes test logging. |
lib/libtabnet/include/methods.h |
Renames the public protocol enum type. |
flake.nix |
Adds ttp2, defines split package outputs, Docker image outputs, and default joined package. |
flake.lock |
Locks the new ttp2 input and its nixpkgs input. |
Comments suppressed due to low confidence (1)
flake.nix:136
- Enabling both library subdirectories here makes the
tablo-masteroutput installlibtabcrypt,libtabnet, and their headers in addition to the master binary, while the flake also exposes separatelibtabcrypt/libtabnetoutputs and joins them intotablo. That duplicates the samelib/andinclude/paths in multiple outputs and can make the joined default package collide; build only the master target against the separate library outputs instead.
enableMaster = true;
enableLibtabcrypt = true;
enableLibtabnet = true;
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| libttp2 | ||
| ; | ||
|
|
||
| default = tablo; |
Collaborator
Author
There was a problem hiding this comment.
This is actually an issue. Please open an issue for it @copilot
|
|
||
| installPhase = '' | ||
| cmake --install build --prefix=$out | ||
| cp LICENSE $out/ |
Comment on lines
+121
to
+123
| enableClient = true; | ||
| enableLibtabcrypt = true; | ||
| enableLibtabnet = true; |
| packages.${system} = | ||
| let | ||
| tablo-full = pkgs.stdenv.mkDerivation { | ||
| mkTabloPackage = |
Sobottasgithub
approved these changes
May 14, 2026
Owner
Sobottasgithub
left a comment
There was a problem hiding this comment.
Wow! This flake is so beautifully implemented!
Thank you :)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The nix flake now has individual build outputs for each submodule of the project and no longer "fakes" the behavior by just changing the default executable. A "traditional"
tablo-fullpackage that builds everything together and lets CMake handle dependencies still exists.