* New outreachy participant introduction @ 2019-10-03 16:11 Asfaw, Nardos 2019-10-03 17:29 ` Christopher Baines ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Asfaw, Nardos @ 2019-10-03 16:11 UTC (permalink / raw) To: guix-devel@gnu.org; +Cc: outreachy@lepiller.eu [-- Attachment #1: Type: text/plain, Size: 1078 bytes --] Hello Guix! My name is Nardos, and I am an Outreachy participant from Indiana University, Bloomington. I am a first time open source contributor hopeful. I am excite to be here, but I will admit I am also a little nervous. I welcome feedback as I am here to learn from all of you. I can be reached at nasfaw@iu.edu or www.nardos.dev I also have a few questions: 1. I am opting to run Guix in a virtual machine on a kali linux. I have found this resource: https://guix.gnu.org/manual/en/html_node/Running-Guix-in-a-VM.html#Running-Guix-in-a-VM. Given your experience, would this cause a problem down the line? Any recommendation on running Guix in a virtual machine vs on my PC? 2. Upon making contributions, where is it posted? and how do I see feedbacks? I have seen lists of open projects and discussion treads such as this (https://issues.guix.gnu.org/issue/22138) on the Guix patch tracker. Are these the issues we currently working on? 3. Any beginner tips? and a good place to start? I look forward to working with you all. Thanks, Nardos [-- Attachment #2: Type: text/html, Size: 2199 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: New outreachy participant introduction 2019-10-03 16:11 New outreachy participant introduction Asfaw, Nardos @ 2019-10-03 17:29 ` Christopher Baines 2019-10-03 19:18 ` Gábor Boskovits 2019-10-04 18:50 ` Julien Lepiller 2 siblings, 0 replies; 13+ messages in thread From: Christopher Baines @ 2019-10-03 17:29 UTC (permalink / raw) To: nasfaw; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 2117 bytes --] Asfaw, Nardos <nasfaw@iu.edu> writes: > My name is Nardos, and I am an Outreachy participant from Indiana > University, Bloomington. I am a first time open source contributor > hopeful. I am excite to be here, but I will admit I am also a little > nervous. I welcome feedback as I am here to learn from all of you. I > can be reached at nasfaw@iu.edu or www.nardos.dev Hello Nardos, > I also have a few questions: > > 1. I am opting to run Guix in a virtual machine on a kali linux. I > have found this resource: > https://guix.gnu.org/manual/en/html_node/Running-Guix-in-a-VM.html#Running-Guix-in-a-VM. Given > your experience, would this cause a problem down the line? Any > recommendation on running Guix in a virtual machine vs on my PC? If you're happy installing Guix as a package manager within Kali, that might be easier than using a virtual machine. Both approaches should work though, and when you have an idea of what contributions you want to make, then you can work out which approach will be easier. > 2. Upon making contributions, where is it posted? and how do I see > feedbacks? I have seen lists of open projects and discussion treads > such as this (https://issues.guix.gnu.org/issue/22138) on the Guix > patch tracker. Are these the issues we currently working on? It depends on the contribution, but in general patches are sent to the guix-patches@gnu.org email address, and then appear on the https://issues.guix.info/ site. There's some relevant guidance here: https://guix.gnu.org/manual/en/html_node/Submitting-Patches.html#Submitting-Patches > 3. Any beginner tips? and a good place to start? I believe there are two Outreachy projects for Guix, so if you have a particular one in mind, let us know. If you're looking for where to begin contributing, it could be something to do with one of the Outreachy projects, working on packages for Guix, working on the documentation, fixing bugs, or something else. But from your first question above, it looks like you've started in the right place, getting Guix up and running on your machine is a prerequisite to everything. Chris [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 962 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: New outreachy participant introduction 2019-10-03 16:11 New outreachy participant introduction Asfaw, Nardos 2019-10-03 17:29 ` Christopher Baines @ 2019-10-03 19:18 ` Gábor Boskovits 2019-10-05 9:28 ` Gábor Boskovits 2019-10-04 18:50 ` Julien Lepiller 2 siblings, 1 reply; 13+ messages in thread From: Gábor Boskovits @ 2019-10-03 19:18 UTC (permalink / raw) To: Asfaw, Nardos; +Cc: guix-devel@gnu.org, outreachy@lepiller.eu [-- Attachment #1: Type: text/plain, Size: 2757 bytes --] Hello Nardos, Asfaw, Nardos <nasfaw@iu.edu> ezt írta (időpont: 2019. okt. 3., Cs, 18:13): > Hello Guix! > > My name is Nardos, and I am an Outreachy participant from Indiana > University, Bloomington. I am a first time open > source contributor hopeful. I am excite to be here, but I will admit I am > also a little nervous. I welcome feedback as I am here to learn from all > of you. I can be reached at nasfaw@iu.edu or www.nardos.dev > Happy to see you here. > I also have a few questions: > > 1. I am opting to run Guix in a virtual machine on a kali linux. I have > found this resource: > https://guix.gnu.org/manual/en/html_node/Running-Guix-in-a-VM.html#Running-Guix-in-a-VM. > Given your experience, would this cause a problem down the line? Any > recommendation on running Guix in a virtual machine vs on my PC? > This should work fine, but as Chris metioned, it might be easier to install Guix as a package manager. One trick with the vm image is that it barely contains enough space to be useful as is, so you will have to resize it. > 2. Upon making contributions, where is it posted? and how do I see > feedbacks? I have seen lists of open projects and discussion treads such as > this (https://issues.guix.gnu.org/issue/22138) on the Guix patch > tracker. Are these the issues we currently working on? > To open a new issue you can send a mail to either guix-patches or bug-guix mailing list. Then the debbugs instance behind these lists creat a new issue number for your request. Further mails should be sent to issue-number@debbugs.gnu.org, where the issue number is in the acknowledgement e-mail. You can see that later in an url like you posted at issues.guix.gnu.org. > > 3. Any beginner tips? and a good place to start? > You could do some packaging, or go for an easy bug. In earlier rounds we recommended to try to package some R stuff first, as R has a well working importer. It is important to notice that there is a quite short deadline for initial contribution, and having something in is strictly needed for proceeding further. Therefore I would go for something really easy. Once you have one contribution registered, we can find something that is nearer to the project you are really interested in. Another aspect is that doing a simple packaging will get you familiar with the workflow and helps to check if everything is ok with the installation. Also, if you have a particular project in mind please let us know. > > I look forward to working with you all. > I am also looking forward to working with you. > > Thanks, > > Nardos > Best regards, g_bor -- OpenPGP Key Fingerprint: 7988:3B9F:7D6A:4DBF:3719:0367:2506:A96C:CF63:0B21 [-- Attachment #2: Type: text/html, Size: 5715 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: New outreachy participant introduction 2019-10-03 19:18 ` Gábor Boskovits @ 2019-10-05 9:28 ` Gábor Boskovits 2019-10-08 3:23 ` [External] " Asfaw, Nardos 0 siblings, 1 reply; 13+ messages in thread From: Gábor Boskovits @ 2019-10-05 9:28 UTC (permalink / raw) To: Asfaw, Nardos; +Cc: Guix-devel [-- Attachment #1: Type: text/plain, Size: 251 bytes --] > > Hello Nardos, How did the installation go? Should you have any questions, please don't hesitate to contact us. We are here to help. >> Best regards, > g_bor > > -- > OpenPGP Key Fingerprint: 7988:3B9F:7D6A:4DBF:3719:0367:2506:A96C:CF63:0B21 > [-- Attachment #2: Type: text/html, Size: 1485 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [External] Re: New outreachy participant introduction 2019-10-05 9:28 ` Gábor Boskovits @ 2019-10-08 3:23 ` Asfaw, Nardos 2019-10-08 6:48 ` Christopher Baines 0 siblings, 1 reply; 13+ messages in thread From: Asfaw, Nardos @ 2019-10-08 3:23 UTC (permalink / raw) To: Gábor Boskovits; +Cc: Guix-devel [-- Attachment #1: Type: text/plain, Size: 1130 bytes --] Hi Gabor, I apologize for the late reply. > How did the installation go? Based on your suggestion I was able to install it as a package manager on kali (I had help from the IRC chat group). > Should you have any questions, please don't hesitate to contact us. We are here to help. I am going through the packaging guide (https://guix.gnu.org/blog/2018/a-packaging-tutorial-for-guix/). Are there more documentations on packaging? starting with packaging sounds interesting. Thanks again. Nardos ________________________________ From: Gábor Boskovits <boskovits@gmail.com> Sent: Saturday, October 5, 2019 5:28 AM To: Asfaw, Nardos Cc: Guix-devel Subject: [External] Re: New outreachy participant introduction This message was sent from a non-IU address. Please exercise caution when clicking links or opening attachments from external sources. Hello Nardos, How did the installation go? Should you have any questions, please don't hesitate to contact us. We are here to help. Best regards, g_bor -- OpenPGP Key Fingerprint: 7988:3B9F:7D6A:4DBF:3719:0367:2506:A96C:CF63:0B21 [-- Attachment #2: Type: text/html, Size: 6692 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [External] Re: New outreachy participant introduction 2019-10-08 3:23 ` [External] " Asfaw, Nardos @ 2019-10-08 6:48 ` Christopher Baines 2019-10-08 13:24 ` zimoun 0 siblings, 1 reply; 13+ messages in thread From: Christopher Baines @ 2019-10-08 6:48 UTC (permalink / raw) To: Asfaw, Nardos; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 1591 bytes --] Asfaw, Nardos <nasfaw@iu.edu> writes: > Hi Gabor, > > I apologize for the late reply. > >> How did the installation go? > > Based on your suggestion I was able to install it as a package manager > on kali (I had help from the IRC chat group). Great, good stuff :) >> Should you have any questions, please don't hesitate to contact >> us. We are here to help. > > I am going through the packaging guide > (https://guix.gnu.org/blog/2018/a-packaging-tutorial-for-guix/). Are > there more documentations on packaging? starting with packaging sounds > interesting. That guide is a really good place to start, there's also the reference documentation in the manual [1], and the packages already within Guix itself. It's really useful to look at how existing packages work, to work out how to make new ones work in a similar way. 1: https://guix.gnu.org/manual/en/html_node/package-Reference.html#package-Reference The next challenge is finding something to package, it needs to be something not already packaged for Guix, but ideally where most or all of the dependencies are already packaged for Guix. If you have ideas, let us know and we can help work out how feasible they are. One good starting point would be an importer, there are a set of importers included in Guix that take a package definition from somewhere else (like the Python package index, or Rubygems) and try to generate a Guix package definition. If you're familiar with some packages from one of the collections with a corresponding importer, that might be a good place to start. Let us know how you get on, Chris [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 962 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [External] Re: New outreachy participant introduction 2019-10-08 6:48 ` Christopher Baines @ 2019-10-08 13:24 ` zimoun 2019-10-13 0:41 ` Asfaw, Nardos 0 siblings, 1 reply; 13+ messages in thread From: zimoun @ 2019-10-08 13:24 UTC (permalink / raw) To: Christopher Baines; +Cc: Guix Devel Hi Nardos, Welcome ! :-) On Tue, 8 Oct 2019 at 08:48, Christopher Baines <mail@cbaines.net> wrote: > One good starting point would be an importer, there are a set of > importers included in Guix that take a package definition from somewhere > else (like the Python package index, or Rubygems) and try to generate a > Guix package definition. If you're familiar with some packages from one > of the collections with a corresponding importer, that might be a good > place to start. As an example, let consider packages from BioConductor [1] (mainly R packages used in bioinformatics field). If I have right, then 2002 packages are still missing in Guix, so there is materials. ;-) Well, let's pick one which is not packaged yet: zinbwave [2]. Then it is easy: guix import cran -r -a bioconductor zinbwave This will download TAR archives and automatically compute the hash. It corresponds to the manual: guix download https://bioconductor.org/packages/release/bioc/src/contrib/zinbwave_1.6.0.tar.gz [1] https://bioconductor.org/ [2] https://bioconductor.org/packages/release/bioc/html/zinbwave.html Moreover, the importer provides the definition of the package: --8<---------------cut here---------------start------------->8--- (define-public r-zinbwave (package (name "r-zinbwave") (version "1.6.0") (source (origin (method url-fetch) (uri (bioconductor-uri "zinbwave" version)) (sha256 (base32 "187r7l9jf2q74qaqx63df5zx6iphmvl817448balvfv9vqyhrp2j")))) (properties `((upstream-name . "zinbwave"))) (build-system r-build-system) (propagated-inputs `(("r-biocparallel" ,r-biocparallel) ("r-copula" ,r-copula) ("r-edger" ,r-edger) ("r-genefilter" ,r-genefilter) ("r-glmnet" ,r-glmnet) ("r-matrix" ,r-matrix) ("r-singlecellexperiment" ,r-singlecellexperiment) ("r-softimpute" ,r-softimpute) ("r-summarizedexperiment" ,r-summarizedexperiment))) (home-page "https://bioconductor.org/packages/zinbwave") (synopsis "Zero-Inflated Negative Binomial Model for RNA-Seq Data") (description " Implements a general and flexible zero-inflated negative binomial model that can be used to provide a low-dimensional representations of single-cell RNA-seq data. The model accounts for zero inflation (dropouts), over-dispersion, and the count nature of the data. The model also accounts for the difference in library sizes and optionally for batch effects and/or other covariates, avoiding the need for pre-normalize the data.") (license artistic2.0))) --8<---------------cut here---------------end--------------->8--- In the propagated input, you can see the package `r-copula` which is not yet packaged neither. But, the nice option --recursive does the job for you and it also gives you the package definition. Now, let add them to the Guix source. Clone the repo and go in the folder. The command: guix environment guix will download the dependencies to build Guix and setup all the variables correctly. Well, refer to the documentation to compile Guix from source. Basically: ./bootstrap ./configure --localstatedir=/var make Now, you can run this version with ./pre-inst-env, for example: ./pre-inst-env guix describe Well, ready to add one package! For example, add `r-copula` to the file gnu/package/cran.scm then recompile with make. Check if it is ok: ./pre-inst-env guile show r-copula Ouch! `r-psline` is missing so let also add it (the definition was provided by the importer), run make again. Now "./pre-inst-env guix show r-copula" should work. Add the package definition of zinbwave to the file gnu/package/bioconductor.scm. Let build them: ./pre-inst-env guix build r-zinbwave and time to breath. ;-) If something fails, try to investigate by yourself and do not hesitate to ask advices or help. If everything is ok, the package still needs some polishing: synopsis, description, indentation, etc and really important: check the license field. The next step is to commit the changes. In this case, three commits (one per package) seem nice. Give a look to previous commits as example of commit message (ChangeLog format, etc.). Now, it is time to prepare the submission: git format-patch --cover-letter - o patches master this will create the 3 patches in the folder patches/ and one cover letter. Edit the cover letter to describe what the patches are about then submit it to the bug tracker: git send-email --to=guix-patches@gnu.org patches/0000-cover-letter.patch Wait the answer to the bug tracker. You should receive an email (if your .gitconfig is ok) with the bug number. Last submit the patches: git send-email --to=ABCDEF@debbugs.gnu.org patches/000{1,2,3}-* where ABCDEF is the bug number. Well, if you need some inspiration to find unpackaged tools from BioConductor: wget https://git.bioconductor.org -qO - | sed -ne '/packages\/[a-zA-Z]/{s,^.*R.*packages/,,p}' > bioc_manifest ./pre-inst-env guile --no-auto-compile missing-bioconductor.scm bioc_manifest where the file `missing-bioconductor.scm` is given by: --8<---------------cut here---------------start------------->8--- (use-modules ((guix import utils) #:select (guix-name)) (gnu packages) (srfi srfi-1) ;lists (ice-9 textual-ports)) (define (fetch-names manifest) "Return a list of strings, each corresponding to a name from the input file MANIFEST." (call-with-input-file manifest (lambda (port) (let loop ((lines '()) (line (get-line port))) (if (eof-object? line) (reverse lines) (loop (cons line lines) (get-line port))))))) ;;; Start! (map (lambda (name) (when (null? (find-packages-by-name (guix-name "r-" name))) (begin (display name) (newline)))) (fetch-names (cadr (command-line)))) ;; wget https://git.bioconductor.org -qO - | sed -ne '/packages\/[a-zA-Z]/{s,^.*R.*packages/,,p}' > bioc_manifest ;; ./pre-inst-env guile --no-auto-compile missing-bioconductor.scm bioc_manifest --8<---------------cut here---------------end--------------->8--- Hope that help. All the best, simon ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [External] Re: New outreachy participant introduction 2019-10-08 13:24 ` zimoun @ 2019-10-13 0:41 ` Asfaw, Nardos 2019-10-16 8:00 ` Gábor Boskovits 0 siblings, 1 reply; 13+ messages in thread From: Asfaw, Nardos @ 2019-10-13 0:41 UTC (permalink / raw) To: zimoun, Christopher Baines; +Cc: Guix Devel Thank you Zimon. This has been very helpful. ________________________________________ From: zimoun <zimon.toutoune@gmail.com> Sent: Tuesday, October 8, 2019 9:24 AM To: Christopher Baines Cc: Asfaw, Nardos; Guix Devel Subject: Re: [External] Re: New outreachy participant introduction Hi Nardos, Welcome ! :-) On Tue, 8 Oct 2019 at 08:48, Christopher Baines <mail@cbaines.net> wrote: > One good starting point would be an importer, there are a set of > importers included in Guix that take a package definition from somewhere > else (like the Python package index, or Rubygems) and try to generate a > Guix package definition. If you're familiar with some packages from one > of the collections with a corresponding importer, that might be a good > place to start. As an example, let consider packages from BioConductor [1] (mainly R packages used in bioinformatics field). If I have right, then 2002 packages are still missing in Guix, so there is materials. ;-) Well, let's pick one which is not packaged yet: zinbwave [2]. Then it is easy: guix import cran -r -a bioconductor zinbwave This will download TAR archives and automatically compute the hash. It corresponds to the manual: guix download https://bioconductor.org/packages/release/bioc/src/contrib/zinbwave_1.6.0.tar.gz [1] https://bioconductor.org/ [2] https://bioconductor.org/packages/release/bioc/html/zinbwave.html Moreover, the importer provides the definition of the package: --8<---------------cut here---------------start------------->8--- (define-public r-zinbwave (package (name "r-zinbwave") (version "1.6.0") (source (origin (method url-fetch) (uri (bioconductor-uri "zinbwave" version)) (sha256 (base32 "187r7l9jf2q74qaqx63df5zx6iphmvl817448balvfv9vqyhrp2j")))) (properties `((upstream-name . "zinbwave"))) (build-system r-build-system) (propagated-inputs `(("r-biocparallel" ,r-biocparallel) ("r-copula" ,r-copula) ("r-edger" ,r-edger) ("r-genefilter" ,r-genefilter) ("r-glmnet" ,r-glmnet) ("r-matrix" ,r-matrix) ("r-singlecellexperiment" ,r-singlecellexperiment) ("r-softimpute" ,r-softimpute) ("r-summarizedexperiment" ,r-summarizedexperiment))) (home-page "https://bioconductor.org/packages/zinbwave") (synopsis "Zero-Inflated Negative Binomial Model for RNA-Seq Data") (description " Implements a general and flexible zero-inflated negative binomial model that can be used to provide a low-dimensional representations of single-cell RNA-seq data. The model accounts for zero inflation (dropouts), over-dispersion, and the count nature of the data. The model also accounts for the difference in library sizes and optionally for batch effects and/or other covariates, avoiding the need for pre-normalize the data.") (license artistic2.0))) --8<---------------cut here---------------end--------------->8--- In the propagated input, you can see the package `r-copula` which is not yet packaged neither. But, the nice option --recursive does the job for you and it also gives you the package definition. Now, let add them to the Guix source. Clone the repo and go in the folder. The command: guix environment guix will download the dependencies to build Guix and setup all the variables correctly. Well, refer to the documentation to compile Guix from source. Basically: ./bootstrap ./configure --localstatedir=/var make Now, you can run this version with ./pre-inst-env, for example: ./pre-inst-env guix describe Well, ready to add one package! For example, add `r-copula` to the file gnu/package/cran.scm then recompile with make. Check if it is ok: ./pre-inst-env guile show r-copula Ouch! `r-psline` is missing so let also add it (the definition was provided by the importer), run make again. Now "./pre-inst-env guix show r-copula" should work. Add the package definition of zinbwave to the file gnu/package/bioconductor.scm. Let build them: ./pre-inst-env guix build r-zinbwave and time to breath. ;-) If something fails, try to investigate by yourself and do not hesitate to ask advices or help. If everything is ok, the package still needs some polishing: synopsis, description, indentation, etc and really important: check the license field. The next step is to commit the changes. In this case, three commits (one per package) seem nice. Give a look to previous commits as example of commit message (ChangeLog format, etc.). Now, it is time to prepare the submission: git format-patch --cover-letter - o patches master this will create the 3 patches in the folder patches/ and one cover letter. Edit the cover letter to describe what the patches are about then submit it to the bug tracker: git send-email --to=guix-patches@gnu.org patches/0000-cover-letter.patch Wait the answer to the bug tracker. You should receive an email (if your .gitconfig is ok) with the bug number. Last submit the patches: git send-email --to=ABCDEF@debbugs.gnu.org patches/000{1,2,3}-* where ABCDEF is the bug number. Well, if you need some inspiration to find unpackaged tools from BioConductor: wget https://git.bioconductor.org -qO - | sed -ne '/packages\/[a-zA-Z]/{s,^.*R.*packages/,,p}' > bioc_manifest ./pre-inst-env guile --no-auto-compile missing-bioconductor.scm bioc_manifest where the file `missing-bioconductor.scm` is given by: --8<---------------cut here---------------start------------->8--- (use-modules ((guix import utils) #:select (guix-name)) (gnu packages) (srfi srfi-1) ;lists (ice-9 textual-ports)) (define (fetch-names manifest) "Return a list of strings, each corresponding to a name from the input file MANIFEST." (call-with-input-file manifest (lambda (port) (let loop ((lines '()) (line (get-line port))) (if (eof-object? line) (reverse lines) (loop (cons line lines) (get-line port))))))) ;;; Start! (map (lambda (name) (when (null? (find-packages-by-name (guix-name "r-" name))) (begin (display name) (newline)))) (fetch-names (cadr (command-line)))) ;; wget https://git.bioconductor.org -qO - | sed -ne '/packages\/[a-zA-Z]/{s,^.*R.*packages/,,p}' > bioc_manifest ;; ./pre-inst-env guile --no-auto-compile missing-bioconductor.scm bioc_manifest --8<---------------cut here---------------end--------------->8--- Hope that help. All the best, simon ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [External] Re: New outreachy participant introduction 2019-10-13 0:41 ` Asfaw, Nardos @ 2019-10-16 8:00 ` Gábor Boskovits 2019-10-16 14:16 ` Asfaw, Nardos 0 siblings, 1 reply; 13+ messages in thread From: Gábor Boskovits @ 2019-10-16 8:00 UTC (permalink / raw) To: Asfaw, Nardos; +Cc: Guix Devel [-- Attachment #1: Type: text/plain, Size: 7363 bytes --] Hello Nardos, We have not heard from you for a while. Should you need any help, please feel free to reach out to us. Asfaw, Nardos <nasfaw@iu.edu> ezt írta (időpont: 2019. okt. 13., Vas 2:41): > Thank you Zimon. > > This has been very helpful. > ________________________________________ > From: zimoun <zimon.toutoune@gmail.com> > Sent: Tuesday, October 8, 2019 9:24 AM > To: Christopher Baines > Cc: Asfaw, Nardos; Guix Devel > Subject: Re: [External] Re: New outreachy participant introduction > > Hi Nardos, > > Welcome ! :-) > > > On Tue, 8 Oct 2019 at 08:48, Christopher Baines <mail@cbaines.net> wrote: > > > One good starting point would be an importer, there are a set of > > importers included in Guix that take a package definition from somewhere > > else (like the Python package index, or Rubygems) and try to generate a > > Guix package definition. If you're familiar with some packages from one > > of the collections with a corresponding importer, that might be a good > > place to start. > > As an example, let consider packages from BioConductor [1] (mainly R > packages used in bioinformatics field). If I have right, then 2002 > packages are still missing in Guix, so there is materials. ;-) > > Well, let's pick one which is not packaged yet: zinbwave [2]. Then it is > easy: > > guix import cran -r -a bioconductor zinbwave > > This will download TAR archives and automatically compute the hash. It > corresponds to the manual: > > guix download > > https://bioconductor.org/packages/release/bioc/src/contrib/zinbwave_1.6.0.tar.gz > > > [1] https://bioconductor.org/ > [2] https://bioconductor.org/packages/release/bioc/html/zinbwave.html > > > Moreover, the importer provides the definition of the package: > > --8<---------------cut here---------------start------------->8--- > (define-public r-zinbwave > (package > (name "r-zinbwave") > (version "1.6.0") > (source > (origin > (method url-fetch) > (uri (bioconductor-uri "zinbwave" version)) > (sha256 > (base32 > "187r7l9jf2q74qaqx63df5zx6iphmvl817448balvfv9vqyhrp2j")))) > (properties `((upstream-name . "zinbwave"))) > (build-system r-build-system) > (propagated-inputs > `(("r-biocparallel" ,r-biocparallel) > ("r-copula" ,r-copula) > ("r-edger" ,r-edger) > ("r-genefilter" ,r-genefilter) > ("r-glmnet" ,r-glmnet) > ("r-matrix" ,r-matrix) > ("r-singlecellexperiment" > ,r-singlecellexperiment) > ("r-softimpute" ,r-softimpute) > ("r-summarizedexperiment" > ,r-summarizedexperiment))) > (home-page > "https://bioconductor.org/packages/zinbwave") > (synopsis > "Zero-Inflated Negative Binomial Model for RNA-Seq Data") > (description > " Implements a general and flexible zero-inflated negative > binomial model that can be used to provide a low-dimensional > representations of single-cell RNA-seq data. The model accounts for > zero inflation (dropouts), over-dispersion, and the count nature of > the data. The model also accounts for the difference in library sizes > and optionally for batch effects and/or other covariates, avoiding the > need for pre-normalize the data.") > (license artistic2.0))) > --8<---------------cut here---------------end--------------->8--- > > In the propagated input, you can see the package `r-copula` which is > not yet packaged neither. But, the nice option --recursive does the > job for you and it also gives you the package definition. > > Now, let add them to the Guix source. Clone the repo and go in the > folder. The command: > > guix environment guix > > will download the dependencies to build Guix and setup all the > variables correctly. Well, refer to the documentation to compile Guix > from source. Basically: > > ./bootstrap > ./configure --localstatedir=/var > make > > Now, you can run this version with ./pre-inst-env, for example: > > ./pre-inst-env guix describe > > > Well, ready to add one package! For example, add `r-copula` to the > file gnu/package/cran.scm then recompile with make. Check if it is ok: > > ./pre-inst-env guile show r-copula > > Ouch! `r-psline` is missing so let also add it (the definition was > provided by the importer), run make again. Now "./pre-inst-env guix > show r-copula" should work. > Add the package definition of zinbwave to the file > gnu/package/bioconductor.scm. > > Let build them: > > ./pre-inst-env guix build r-zinbwave > > and time to breath. ;-) > > > If something fails, try to investigate by yourself and do not hesitate > to ask advices or help. > If everything is ok, the package still needs some polishing: synopsis, > description, indentation, etc and really important: check the license > field. > > The next step is to commit the changes. In this case, three commits > (one per package) seem nice. Give a look to previous commits as > example of commit message (ChangeLog format, etc.). Now, it is time to > prepare the submission: > > git format-patch --cover-letter - o patches master > > this will create the 3 patches in the folder patches/ and one cover > letter. Edit the cover letter to describe what the patches are about > then submit it to the bug tracker: > > git send-email --to=guix-patches@gnu.org patches/0000-cover-letter.patch > > Wait the answer to the bug tracker. > You should receive an email (if your .gitconfig is ok) with the bug > number. Last submit the patches: > > git send-email --to=ABCDEF@debbugs.gnu.org patches/000{1,2,3}-* > > where ABCDEF is the bug number. > > > > Well, if you need some inspiration to find unpackaged tools from > BioConductor: > > wget https://git.bioconductor.org -qO - | sed -ne > '/packages\/[a-zA-Z]/{s,^.*R.*packages/,,p}' > bioc_manifest > ./pre-inst-env guile --no-auto-compile missing-bioconductor.scm > bioc_manifest > > where the file `missing-bioconductor.scm` is given by: > > --8<---------------cut here---------------start------------->8--- > (use-modules ((guix import utils) #:select (guix-name)) > (gnu packages) > (srfi srfi-1) ;lists > (ice-9 textual-ports)) > > (define (fetch-names manifest) > "Return a list of strings, each corresponding to a name from the > input file MANIFEST." > (call-with-input-file manifest > (lambda (port) > (let loop ((lines '()) > (line (get-line port))) > (if (eof-object? line) > (reverse lines) > (loop (cons line lines) > (get-line port))))))) > > ;;; Start! > > (map (lambda (name) > (when (null? (find-packages-by-name (guix-name "r-" name))) > (begin > (display name) > (newline)))) > (fetch-names (cadr (command-line)))) > > ;; wget https://git.bioconductor.org -qO - | sed -ne > '/packages\/[a-zA-Z]/{s,^.*R.*packages/,,p}' > bioc_manifest > ;; ./pre-inst-env guile --no-auto-compile missing-bioconductor.scm > bioc_manifest > --8<---------------cut here---------------end--------------->8--- > > > Hope that help. > > All the best, > simon > > [-- Attachment #2: Type: text/html, Size: 9508 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [External] Re: New outreachy participant introduction 2019-10-16 8:00 ` Gábor Boskovits @ 2019-10-16 14:16 ` Asfaw, Nardos 2019-10-19 20:33 ` Ludovic Courtès 2019-10-24 12:51 ` Gábor Boskovits 0 siblings, 2 replies; 13+ messages in thread From: Asfaw, Nardos @ 2019-10-16 14:16 UTC (permalink / raw) To: Gábor Boskovits; +Cc: Guix Devel [-- Attachment #1: Type: text/plain, Size: 7755 bytes --] Hi Gabor, Thanks for reaching out. I am still hanging. I am learning a lot on what it means to be a developer outside of university courses. I am going through the documentation (and examples provided in the email by simon) and the chat logs to sees if my questions have been asked before I come with questions and solutions I have tried. Thanks, Nardos ________________________________ From: Gábor Boskovits <boskovits@gmail.com> Sent: Wednesday, October 16, 2019 4:00 AM To: Asfaw, Nardos Cc: zimoun; Christopher Baines; Guix Devel Subject: Re: [External] Re: New outreachy participant introduction Hello Nardos, We have not heard from you for a while. Should you need any help, please feel free to reach out to us. Asfaw, Nardos <nasfaw@iu.edu<mailto:nasfaw@iu.edu>> ezt írta (időpont: 2019. okt. 13., Vas 2:41): Thank you Zimon. This has been very helpful. ________________________________________ From: zimoun <zimon.toutoune@gmail.com<mailto:zimon.toutoune@gmail.com>> Sent: Tuesday, October 8, 2019 9:24 AM To: Christopher Baines Cc: Asfaw, Nardos; Guix Devel Subject: Re: [External] Re: New outreachy participant introduction Hi Nardos, Welcome ! :-) On Tue, 8 Oct 2019 at 08:48, Christopher Baines <mail@cbaines.net<mailto:mail@cbaines.net>> wrote: > One good starting point would be an importer, there are a set of > importers included in Guix that take a package definition from somewhere > else (like the Python package index, or Rubygems) and try to generate a > Guix package definition. If you're familiar with some packages from one > of the collections with a corresponding importer, that might be a good > place to start. As an example, let consider packages from BioConductor [1] (mainly R packages used in bioinformatics field). If I have right, then 2002 packages are still missing in Guix, so there is materials. ;-) Well, let's pick one which is not packaged yet: zinbwave [2]. Then it is easy: guix import cran -r -a bioconductor zinbwave This will download TAR archives and automatically compute the hash. It corresponds to the manual: guix download https://bioconductor.org/packages/release/bioc/src/contrib/zinbwave_1.6.0.tar.gz [1] https://bioconductor.org/ [2] https://bioconductor.org/packages/release/bioc/html/zinbwave.html Moreover, the importer provides the definition of the package: --8<---------------cut here---------------start------------->8--- (define-public r-zinbwave (package (name "r-zinbwave") (version "1.6.0") (source (origin (method url-fetch) (uri (bioconductor-uri "zinbwave" version)) (sha256 (base32 "187r7l9jf2q74qaqx63df5zx6iphmvl817448balvfv9vqyhrp2j")))) (properties `((upstream-name . "zinbwave"))) (build-system r-build-system) (propagated-inputs `(("r-biocparallel" ,r-biocparallel) ("r-copula" ,r-copula) ("r-edger" ,r-edger) ("r-genefilter" ,r-genefilter) ("r-glmnet" ,r-glmnet) ("r-matrix" ,r-matrix) ("r-singlecellexperiment" ,r-singlecellexperiment) ("r-softimpute" ,r-softimpute) ("r-summarizedexperiment" ,r-summarizedexperiment))) (home-page "https://bioconductor.org/packages/zinbwave") (synopsis "Zero-Inflated Negative Binomial Model for RNA-Seq Data") (description " Implements a general and flexible zero-inflated negative binomial model that can be used to provide a low-dimensional representations of single-cell RNA-seq data. The model accounts for zero inflation (dropouts), over-dispersion, and the count nature of the data. The model also accounts for the difference in library sizes and optionally for batch effects and/or other covariates, avoiding the need for pre-normalize the data.") (license artistic2.0))) --8<---------------cut here---------------end--------------->8--- In the propagated input, you can see the package `r-copula` which is not yet packaged neither. But, the nice option --recursive does the job for you and it also gives you the package definition. Now, let add them to the Guix source. Clone the repo and go in the folder. The command: guix environment guix will download the dependencies to build Guix and setup all the variables correctly. Well, refer to the documentation to compile Guix from source. Basically: ./bootstrap ./configure --localstatedir=/var make Now, you can run this version with ./pre-inst-env, for example: ./pre-inst-env guix describe Well, ready to add one package! For example, add `r-copula` to the file gnu/package/cran.scm then recompile with make. Check if it is ok: ./pre-inst-env guile show r-copula Ouch! `r-psline` is missing so let also add it (the definition was provided by the importer), run make again. Now "./pre-inst-env guix show r-copula" should work. Add the package definition of zinbwave to the file gnu/package/bioconductor.scm. Let build them: ./pre-inst-env guix build r-zinbwave and time to breath. ;-) If something fails, try to investigate by yourself and do not hesitate to ask advices or help. If everything is ok, the package still needs some polishing: synopsis, description, indentation, etc and really important: check the license field. The next step is to commit the changes. In this case, three commits (one per package) seem nice. Give a look to previous commits as example of commit message (ChangeLog format, etc.). Now, it is time to prepare the submission: git format-patch --cover-letter - o patches master this will create the 3 patches in the folder patches/ and one cover letter. Edit the cover letter to describe what the patches are about then submit it to the bug tracker: git send-email --to=guix-patches@gnu.org<mailto:guix-patches@gnu.org> patches/0000-cover-letter.patch Wait the answer to the bug tracker. You should receive an email (if your .gitconfig is ok) with the bug number. Last submit the patches: git send-email --to=ABCDEF@debbugs.gnu.org<mailto:ABCDEF@debbugs.gnu.org> patches/000{1,2,3}-* where ABCDEF is the bug number. Well, if you need some inspiration to find unpackaged tools from BioConductor: wget https://git.bioconductor.org -qO - | sed -ne '/packages\/[a-zA-Z]/{s,^.*R.*packages/,,p}' > bioc_manifest ./pre-inst-env guile --no-auto-compile missing-bioconductor.scm bioc_manifest where the file `missing-bioconductor.scm` is given by: --8<---------------cut here---------------start------------->8--- (use-modules ((guix import utils) #:select (guix-name)) (gnu packages) (srfi srfi-1) ;lists (ice-9 textual-ports)) (define (fetch-names manifest) "Return a list of strings, each corresponding to a name from the input file MANIFEST." (call-with-input-file manifest (lambda (port) (let loop ((lines '()) (line (get-line port))) (if (eof-object? line) (reverse lines) (loop (cons line lines) (get-line port))))))) ;;; Start! (map (lambda (name) (when (null? (find-packages-by-name (guix-name "r-" name))) (begin (display name) (newline)))) (fetch-names (cadr (command-line)))) ;; wget https://git.bioconductor.org -qO - | sed -ne '/packages\/[a-zA-Z]/{s,^.*R.*packages/,,p}' > bioc_manifest ;; ./pre-inst-env guile --no-auto-compile missing-bioconductor.scm bioc_manifest --8<---------------cut here---------------end--------------->8--- Hope that help. All the best, simon [-- Attachment #2: Type: text/html, Size: 11700 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [External] Re: New outreachy participant introduction 2019-10-16 14:16 ` Asfaw, Nardos @ 2019-10-19 20:33 ` Ludovic Courtès 2019-10-24 12:51 ` Gábor Boskovits 1 sibling, 0 replies; 13+ messages in thread From: Ludovic Courtès @ 2019-10-19 20:33 UTC (permalink / raw) To: Asfaw, Nardos; +Cc: Guix Devel Hi Nardos, "Asfaw, Nardos" <nasfaw@iu.edu> skribis: > Thanks for reaching out. I am still hanging. I am learning a lot on what it means to be a developer outside of university courses. I am going through the documentation (and examples provided in the email by simon) and the chat logs to sees if my questions have been asked before I come with questions and solutions I have tried. At any rate, don’t hesitate to ask questions here or on #guix on IRC! It’s surely tricky to get started with a development project so asking questions can be helpful and we’ll be happy to provide guidance. Thanks, Ludo’. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [External] Re: New outreachy participant introduction 2019-10-16 14:16 ` Asfaw, Nardos 2019-10-19 20:33 ` Ludovic Courtès @ 2019-10-24 12:51 ` Gábor Boskovits 1 sibling, 0 replies; 13+ messages in thread From: Gábor Boskovits @ 2019-10-24 12:51 UTC (permalink / raw) To: Asfaw, Nardos; +Cc: Guix Devel [-- Attachment #1: Type: text/plain, Size: 719 bytes --] Hello, We have not heard from you for a while. Should you need any help, please let us know. Asfaw, Nardos <nasfaw@iu.edu> ezt írta (időpont: 2019. okt. 16., Sze, 16:16): > Hi Gabor, > > > Thanks for reaching out. I am still hanging. I am learning a lot on what > it means to be a developer outside of university courses. I am going > through the documentation (and examples provided in the email by simon) and > the chat logs to sees if my questions have been asked before I come with > questions and solutions I have tried. > > > Thanks, > > Nardos > ------------------------------ > Best regards, g_bor -- OpenPGP Key Fingerprint: 7988:3B9F:7D6A:4DBF:3719:0367:2506:A96C:CF63:0B21 [-- Attachment #2: Type: text/html, Size: 1403 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: New outreachy participant introduction 2019-10-03 16:11 New outreachy participant introduction Asfaw, Nardos 2019-10-03 17:29 ` Christopher Baines 2019-10-03 19:18 ` Gábor Boskovits @ 2019-10-04 18:50 ` Julien Lepiller 2 siblings, 0 replies; 13+ messages in thread From: Julien Lepiller @ 2019-10-04 18:50 UTC (permalink / raw) To: Asfaw, Nardos, guix-devel@gnu.org; +Cc: outreachy@lepiller.eu [-- Attachment #1: Type: text/plain, Size: 1774 bytes --] Hi Nardos, nice to meet you! Sorry I couldn't answer sooner. My server was having a bit of troubles and I only received your mail now. It should be fine from now on. I think Gábor already answered your questions nicely, and I have nothing to add. I'd like to encourage you to join our irc at #guix on freenode to meet everyone. If you have any question regarding the process of packaging or about the proposed internships, do not hesitate to ask them here or on IRC. Even if when mentors are not available, others may have answers for you ;) Thank you, Julien Le 3 octobre 2019 18:11:58 GMT+02:00, "Asfaw, Nardos" <nasfaw@iu.edu> a écrit : >Hello Guix! > >My name is Nardos, and I am an Outreachy participant from Indiana >University, Bloomington. I am a first time open source contributor >hopeful. I am excite to be here, but I will admit I am also a little >nervous. I welcome feedback as I am here to learn from all of you. I >can be reached at nasfaw@iu.edu or www.nardos.dev > >I also have a few questions: > >1. I am opting to run Guix in a virtual machine on a kali linux. I >have found this resource: >https://guix.gnu.org/manual/en/html_node/Running-Guix-in-a-VM.html#Running-Guix-in-a-VM. >Given your experience, would this cause a problem down the line? Any >recommendation on running Guix in a virtual machine vs on my PC? > >2. Upon making contributions, where is it posted? and how do I see >feedbacks? I have seen lists of open projects and discussion treads >such as this (https://issues.guix.gnu.org/issue/22138) on the Guix >patch tracker. Are these the issues we currently working on? > > >3. Any beginner tips? and a good place to start? > > >I look forward to working with you all. > > >Thanks, > >Nardos [-- Attachment #2: Type: text/html, Size: 3044 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2019-10-24 12:52 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-10-03 16:11 New outreachy participant introduction Asfaw, Nardos 2019-10-03 17:29 ` Christopher Baines 2019-10-03 19:18 ` Gábor Boskovits 2019-10-05 9:28 ` Gábor Boskovits 2019-10-08 3:23 ` [External] " Asfaw, Nardos 2019-10-08 6:48 ` Christopher Baines 2019-10-08 13:24 ` zimoun 2019-10-13 0:41 ` Asfaw, Nardos 2019-10-16 8:00 ` Gábor Boskovits 2019-10-16 14:16 ` Asfaw, Nardos 2019-10-19 20:33 ` Ludovic Courtès 2019-10-24 12:51 ` Gábor Boskovits 2019-10-04 18:50 ` Julien Lepiller
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).