On 2022-03-29, Cássio Tavares wrote: > So, I'm looking into package definition, and I have a few questions to > start: > > 1. If I submit an issue with a package request, does it take long for > the package to be made available? This can be highly variable, unfortunately. There aren't always enough people to review the requests. The good news is that guix generally makes it relatively easy to use your local changes immediately while you wait for it to get merged. > 2. Can someone with only a very basic understanding of the Scheme (and > the functional paradigm) package software successfully enough to submit it > to the Guix project? I've made more than a few package updates, modifications to packages, new packages, etc. without really knowing scheme at all. I do have prior experience packaging with Debian, though it is quite different. > 3. Would that be very time-consuming (because my work is in a very > different area)? Is the learning curve steep? I pretty much just take examples from looking at other packages, asking for help on IRC or the mailing lists when I get stuck. Folks are usually quite willing to help out! > 4. As far as I could understand, when defining a package from a git > repository, I have to specify the package version and commit. Does this > mean that I will forever have to check for new versions and edit the > package definition to update it? For changes going into upstream Guix, generally yes. Because guix is functional package management, you need to know the hashes of your inputs in advance. The exception might be that some upstream software provides a guix.scm to be able to build from the current git checkout. For example, the GNU Mes project: https://git.savannah.gnu.org/cgit/mes.git/tree/guix.scm > 5. Is there a relatively simple way to port packages from other distros > into Guix? Could this be an automated process? There are various importers that allow importing packages from other sources, though they may require some manual fixups in order to be useable; depends on the importer. > 6. Any further advice? Feel free to experiment! Guix provides various mechanisms that make it easy to not break your current environment, such as: guix shell PACKAGE # temporary environment with PACKAGE installed I use that a lot when testing new things so as not to pollute my working environment with experiemental changes, while still being able to test them out. The folks on IRC are generally hugely helpful. Try to wrap your head around the manual, as it has answers to *many* questions; the hardest part is sometimes figuring out exactly what is relevent to what you're trying to do. I'd recommend the development version of the manual: https://guix.gnu.org/en/manual/devel/en/guix.html The cookbook also has some great examples that are a little more hands on and more about doing something specific: https://guix.gnu.org/en/cookbook/en/guix-cookbook.html live well, vagrant