prefix-dev / rattler-build

rattler-build is a universal package builder for Windows, macOS and Linux
https://prefix-dev.github.io/rattler-build
BSD 3-Clause "New" or "Revised" License
197 stars 41 forks source link

How to setup for local development #1026

Open vigneshmanick opened 1 month ago

vigneshmanick commented 1 month ago

Hello devs,

I have some questions with using rattler build and hope this is the right location to post. I am testing how rattler build could work in a python c++ project which is currently being built with scikit-build-core.

General issues with rattler-build

  1. The RATTLER_CACHE_DIR value is not being recognized if XDG_CACHE_HOME is not set, the value defaults to ~/.cache/rattler and this is an issue since my home folder doesn't have enough space and also is on a slower drive. To workaround, i had to set the XDG_CACHE_HOME to the required value.
  2. All the required dependencies are already defined in the pyproject.toml and i feel the effort is duplicated in having to add another reciepe.yaml. (i guess this is what you guys are trying to solve with bringing rattler build to within the pixi?)
  3. My usual development setup involves running python -m pip install -e . do changes and finally commit and for production create a wheel with python -m pip wheel and use it in the production environment. What is the equivalen of this in rattler-build?
  4. It would help with the development workflow if the logs are available in a file after the build is finished. Currently i have to pipe it to a file and feel this should not be necessary. In ci having logs directly is very helpful for debugging.

Thanks!

wolfv commented 1 month ago

Hi @vigneshmanick thank you so much for opening an issue here! Very good points.

Especially your first point is something we should fix.

Regarding the development workflow there is indeed a disconnect in the conda world between packaging and developing a package. We are trying to address that with pixi build. We have also tried to implement some auto-generation for PyPI packages so that the conversion is easier, and we are looking to stabilize that more (it's currently in an alpha stage).

On the other hand, rattler-build can be used to package up many other kinds of packages (R, C/C++/ ...).

FOr number 4 - do you mean to dump the logs into a file?

vigneshmanick commented 1 month ago

Thanks for the response

Yes i meant the terminal logs should be auto dumped to a file by rattler-build itself instead of having to pipe it manually. Makes it a very direct and nice cross platform solution OOB

wolfv commented 1 month ago

A PR to implement this would be great :)