Reproducible data science with Nix, part 11 -- build and cache binaries with Github Actions and Cachix
Bruno Rodrigues
by
1M ago
Intro I have this package on CRAN called {chronicler} and last month I got an email from CRAN telling me that building the package was failing, and I had two weeks to fix it. I immediately thought that some dependency that my package depends on got updated, and somehow broke something. But when I checked the results of the build, I was surprised, to say the least: How come my package was only failing on Fedora? Now that was really weird. There was no way this was right. Also, I couldn’t reproduce this bug on my local machine… but I could reproduce it on Github Actions, on Ubuntu (but it ..read more
Visit website
Reproducible data science with Nix, part 10 -- contributing to nixpkgs
Bruno Rodrigues
by
2M ago
I’ve very recently started contributing to the nixpkgs repository of packages, which contains all the packages you can install from the Nix package manager. My contributions are fairly modest: I help fix R packages that need some tweaking to make them successfully build for Nix. Most of these fixes are very simple one-liners. Most users of any free and open source tool rarely contribute to the development of this tool: I don’t think it is due to lack of skills and/or time or interest, but mostly because starting to contribute to a tool requires some knowledge that is rarely written down (ev ..read more
Visit website
Reproducible data science with Nix, part 9 -- rix is looking for testers!
Bruno Rodrigues
by
3M ago
After 5 months of work, Philipp Baumann and myself are happy to announce that our package, {rix} is getting quite close to being in a state we consider “done” (well, at least, for a first release). We plan on submit it first to rOpenSci for review, and later to CRAN. But in the meantime, if you could test the package, we’d be grateful! We are especially interested to see if you find the documentation clear, and if you are able to run the features that require an installation of Nix, the nix_build() and with_nix() functions. And I would truly recommend you read this blog post to the end, bec ..read more
Visit website
Reproducible data science with Nix, part 8 -- nixpkgs, a tale of the magic of free and open source software and a call for charity
Bruno Rodrigues
by
4M ago
This is part 8 of a series of blog posts about Nix. Check out the other parts here. TLDR: free and open source software is one of the most important common goods with enormous positive externalities: if you want to help funding it, keep reading! I wanted to quickly discuss about nixpkgs, which is the collection of packages that can be installed using Nix. Why is a project like Nix and nixpkgs important, even if you don’t use Nix? In actuality, you may not realise it, but you very much benefit from projects like Nix even if you don’t use it. Let me explain. nixpkgs is “just” a Github reposit ..read more
Visit website
Reproducible data science with Nix, part 7 -- Building a Quarto book using Nix on Github Actions
Bruno Rodrigues
by
7M ago
Back in June I self-published a book on Amazon’s Kindle Direct Publishing service and wrote a blog post detailling how you could achieve that using Quarto, which you can read here. The book is about building reproducible analytical pipelines with R. For the purposes of this post I made a template on Github that you could fork and use as a starting point to write your own book. The book also gets built using Github Actions each time you push new changes: a website gets built, an E-book for e-ink devices and a Amazon KDP-ready PDF for print get also built. That template used dedicated actions ..read more
Visit website
An overview of what's out there for reproducibility with R
Bruno Rodrigues
by
7M ago
In this short blog post I’ll be summarizing what I learnt these past years about reproducibility with R. I’ll give some high-level explanations about different tools and then link to different blog posts of mine. I see currently two main approaches with some commonalities, so let’s start with the commonalities. Commonalities These are aspects that I think will help you build reproducible projects, but that are not strictly necessary. These are: Git for code versioning; unit tests (be it on your code or data); literate programming; packaging code; build automation. I think that these aspec ..read more
Visit website
Reproducible data science with Nix, part 6 -- CI/CD has never been easier
Bruno Rodrigues
by
8M ago
Warning: I highly recommend you read this blog post first, which will explain how to run a pipeline inside Nix in detail. This blog post will assume that you’ve read that one, and it would also help if you’re familiar with Github Actions, if not, read this other blog post of mine as well This is getting ridiculous. The meme that I’m using as a header for this blog post perfectly summaries how I feel. This will be a short blog post, because Nix makes things so easy that there’s not much to say. I wanted to try how I could use Nix on Github Actions to run a reproducible pipeline. This pipelin ..read more
Visit website
Reproducible data science with Nix, part 5 -- Reproducible literate programming with Nix and Quarto
Bruno Rodrigues
by
8M ago
This blog post is a copy-paste from this vignette Introduction This vignette will walk you through setting up a development environment with {rix} that can be used to compile Quarto documents into PDFs. We are going to use the Quarto template for the JSS to illustrate the process. The first section will show a simple way of achieving this, which will also be ideal for interactive development (writing the doc). The second section will discuss a way to build the document in a completely reproducible manner once it’s done. Starting with the basics (simple but not entirely reproducible) This a ..read more
Visit website
Reproducible data science with Nix, part 4 -- So long, {renv} and Docker, and thanks for all the fish
Bruno Rodrigues
by
9M ago
For this blog post, I also made a youtube video that goes over roughly the same ideas, but the blog post is more detailed as I explain the contents of default.nix files, which I don't do in the video. Watch the video here. This is the fourth post in a series of posts about Nix. Disclaimer: I'm a super beginner with Nix. So this series of blog posts is more akin to notes that I'm taking while learning than a super detailed Nix tutorial. So if you're a Nix expert and read something stupid in here, that's normal. This post is going to focus on R (obviously) but the ideas are applicable to any ..read more
Visit website
Reproducible data science with Nix, part 3 -- frictionless {plumber} api deployments with Nix
Bruno Rodrigues
by
9M ago
This is the third post in a series of posts about Nix. Disclaimer: I’m a super beginner with Nix. So this series of blog posts is more akin to notes that I’m taking while learning than a super detailed tutorial. So if you’re a Nix expert and read something stupid in here, that’s normal. This post is going to focus on R (obviously) but the ideas are applicable to any programming language. This blog post is part tutorial on creating an api using the {plumber} R package, part an illustration of how Nix makes developing and deploying a breeze. Part 1: getting it to work locally So in part 1 I e ..read more
Visit website

Follow Bruno Rodrigues on FeedSpot

Continue with Google
Continue with Apple
OR