Skip to content

C API: Add libflake-c (backport #11940)#11961

Closed
mergify[bot] wants to merge 6 commits into2.25-maintenancefrom
mergify/bp/2.25-maintenance/pr-11940
Closed

C API: Add libflake-c (backport #11940)#11961
mergify[bot] wants to merge 6 commits into2.25-maintenancefrom
mergify/bp/2.25-maintenance/pr-11940

Conversation

@mergify
Copy link
Contributor

@mergify mergify bot commented Nov 26, 2024

Motivation

Nix 2.24's C API is currently incapable of providing flake functionality, because libflake wasn't wrapped before #9063

This PR provides a very basic libflake that restores builtins.getFlake. (a feature compensating for a regression)

Context


Add 👍 to pull requests you find important.

The Nix maintainer team uses a GitHub project board to schedule and track reviews.


This is an automatic backport of pull request #11940 done by [Mergify](https://mergify.com).

(cherry picked from commit 1bd7517)
(cherry picked from commit 4eecf3c)

# Conflicts:
#	packaging/everything.nix
[FAIL()] is a macro with `return`, making it unsuitable for helpers.

This uses std::runtime_error, because gtest does not seem to provide an
exception type of its own for this purpose. [AssertionException] is for
a different use case.

[FAIL()]: https://google.github.io/googletest/reference/assertions.html#FAIL
[AssertionException]: https://github.com/google/googletest/blob/35d0c365609296fa4730d62057c487e3cfa030ff/docs/reference/testing.md#assertionexception-assertionexception

(cherry picked from commit d004c52)
@mergify
Copy link
Contributor Author

mergify bot commented Nov 26, 2024

Cherry-pick of 4eecf3c has failed:

On branch mergify/bp/2.25-maintenance/pr-11940
Your branch is ahead of 'origin/2.25-maintenance' by 3 commits.
  (use "git push" to publish your local commits)

You are currently cherry-picking commit 4eecf3c20.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   meson.build
	modified:   packaging/components.nix
	modified:   src/external-api-docs/doxygen.cfg.in
	modified:   src/external-api-docs/package.nix
	new file:   src/libflake-c/.version
	new file:   src/libflake-c/build-utils-meson
	new file:   src/libflake-c/meson.build
	new file:   src/libflake-c/nix_api_flake.cc
	new file:   src/libflake-c/nix_api_flake.h
	new file:   src/libflake-c/nix_api_flake_internal.hh
	new file:   src/libflake-c/package.nix
	modified:   src/libflake-tests/meson.build
	new file:   src/libflake-tests/nix_api_flake.cc
	modified:   src/libflake-tests/package.nix

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   packaging/everything.nix

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

@mergify mergify bot requested a review from edolstra as a code owner November 26, 2024 11:16
@github-actions github-actions bot added with-tests Issues related to testing. PRs with tests have some priority c api Nix as a C library with a stable interface labels Nov 26, 2024
@edolstra
Copy link
Member

Closing, see #11949 (comment). Big feature backports should at least have a motivation why this needs a backport and can't wait for the next release.

@edolstra edolstra closed this Nov 26, 2024
@xokdvium xokdvium deleted the mergify/bp/2.25-maintenance/pr-11940 branch October 7, 2025 21:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c api Nix as a C library with a stable interface conflicts merge-queue with-tests Issues related to testing. PRs with tests have some priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants