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

Nix workflow is clunky #5

Closed
steve-chavez opened this issue Sep 10, 2023 · 1 comment
Closed

Nix workflow is clunky #5

steve-chavez opened this issue Sep 10, 2023 · 1 comment
Labels

Comments

@steve-chavez
Copy link
Member

Problem

To compile, right now I do:

$ nix-shell

And to recompile:

$ <Ctr-C to exit>
$ nix-shell # again

Proposal

Similarly to the postgrest repo, a:

$ plmustache-watch plmustache-build

Would be ideal. Even just a plmustache-build command where exiting manually is not needed would be an improvement.

@steve-chavez
Copy link
Member Author

For solving this, I've realized that we need a extensions_dynamic_path config, which has been proposed before but not implemented.

I looked at the implementation and it didn't seem at all difficult but looks like other people are already on it:

Maybe we can include it as a patch for now.

steve-chavez added a commit to steve-chavez/plmustache that referenced this issue Feb 4, 2025
Solves PostgREST#5.

This is done by avoiding building the postgres extension inside the nix
derivation. Instead we build it with `make` on the current directory and
install it on postgres using the upcoming postgres
`extension_control_path` GUC.

This is taken from the patch on
https://www.postgresql.org/message-id/flat/E7C7BFFB-8857-48D4-A71F-88B359FADCFD%40justatheory.com
and backpatched to postgres 12, 13, 14, 15 and 16,

Thanks to this, it's now possible to do watch commands:

```
nxpg-watch nxpg-16 nxpg-build (rebuilds when changing sources)

nxpg-watch nxpg-13 nxpg-tmp nxpg-test (runs tests when changing sources)
```

Future improvements:

* Makes possible to enable code coverage, since the `.gcno` files will
  live outside the nix store.

* It's wasteful to rebuild the patched pgs everytime, later on this
  `nxpg` could live in another repo and benefit from Nix caching.

Additionally:

* removes clean_generated in favor of builtin EXTRA_CLEAN

* Don't hardcode sources in Makefile

* Update github action
steve-chavez added a commit to steve-chavez/plmustache that referenced this issue Feb 4, 2025
Solves PostgREST#5.

This is done by avoiding building the postgres extension inside the nix
derivation. Instead we build it with `make` on the current directory and
install it on postgres using the upcoming postgres
`extension_control_path` GUC.

This is taken from the patch on
https://www.postgresql.org/message-id/flat/E7C7BFFB-8857-48D4-A71F-88B359FADCFD%40justatheory.com
and backpatched to postgres 12, 13, 14, 15 and 16,

Thanks to this, it's now possible to do watch commands:

```
nxpg-watch nxpg-16 nxpg-build (rebuilds when changing sources)

nxpg-watch nxpg-13 nxpg-tmp nxpg-test (runs tests when changing sources)
```

Future improvements:

* Makes possible to enable code coverage, since the `.gcno` files will
  live outside the nix store.

* It's wasteful to rebuild the patched pgs everytime, later on this
  `nxpg` could live in another repo and benefit from Nix caching.

Additionally:

* removes clean_generated in favor of builtin EXTRA_CLEAN

* Don't hardcode sources in Makefile

* Update github action
steve-chavez added a commit that referenced this issue Feb 4, 2025
Solves #5.

This is done by avoiding building the postgres extension inside the nix
derivation. Instead we build it with `make` on the current directory and
install it on postgres using the upcoming postgres
`extension_control_path` GUC.

This is taken from the patch on
https://www.postgresql.org/message-id/flat/E7C7BFFB-8857-48D4-A71F-88B359FADCFD%40justatheory.com
and backpatched to postgres 12, 13, 14, 15 and 16,

Thanks to this, it's now possible to do watch commands:

```
nxpg-watch nxpg-16 nxpg-build (rebuilds when changing sources)

nxpg-watch nxpg-13 nxpg-tmp nxpg-test (runs tests when changing sources)
```

Future improvements:

* Makes possible to enable code coverage, since the `.gcno` files will
  live outside the nix store.

* It's wasteful to rebuild the patched pgs everytime, later on this
  `nxpg` could live in another repo and benefit from Nix caching.

Additionally:

* removes clean_generated in favor of builtin EXTRA_CLEAN

* Don't hardcode sources in Makefile

* Update github action
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

1 participant