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

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

Closed

Conversation

mergify[bot]
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)
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
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