{"id":22878557,"url":"https://github.com/knaaptime/rypyrx","last_synced_at":"2025-05-07T22:02:13.397Z","repository":{"id":264093695,"uuid":"892344858","full_name":"knaaptime/rypyrx","owner":"knaaptime","description":"reproducible papers with quarto and pixi","archived":false,"fork":false,"pushed_at":"2024-12-09T21:04:42.000Z","size":33938,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T14:31:04.460Z","etag":null,"topics":["academia","data-science","reproducible-research"],"latest_commit_sha":null,"homepage":"https://knaaptime.com/rypyrx","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/knaaptime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-21T23:59:08.000Z","updated_at":"2025-02-26T12:03:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"a70aa0d4-59fc-4122-996b-730f35e31a0d","html_url":"https://github.com/knaaptime/rypyrx","commit_stats":null,"previous_names":["knaaptime/rypyr","knaaptime/rypyrx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knaaptime%2Frypyrx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knaaptime%2Frypyrx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knaaptime%2Frypyrx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knaaptime%2Frypyrx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knaaptime","download_url":"https://codeload.github.com/knaaptime/rypyrx/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252961821,"owners_count":21832194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["academia","data-science","reproducible-research"],"created_at":"2024-12-13T16:29:47.040Z","updated_at":"2025-05-07T22:02:13.244Z","avatar_url":"https://github.com/knaaptime.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `rypyrx`\n\nreproducible research environments, cross language/cross-platform\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/knaaptime/rypyrx)\n\npronounced 'rip-rex', like [reprex](https://reprex.tidyverse.org/), but so that R people can grok reproducible Python environments for papers et al\n\ntl;dr: I write in quarto and do my work in both Python and R. I work with lots of people who are new to Python environments, or hate them altogether. I swear they are straightforward for this task now!\n\nthe important pieces are:\n\n- the `pixi.toml` file defines the dependencies and when installed pixi creates a lockfile to make sure you can re-create that *exact* environment anywhere\n- the files in `.devcontainer` setup codespaces to install the project dependencies and some useful vscode extensions (so you can run whatever notebooks you create in the cloud)\n- the files in `.github/workflows` setup the repo to serve a static website from the `slides` directory, so when you use quarto to generate slides in that directory, they're available immediately at `\u003c{your-github}.github.io/{project_name}\u003e` \n  - the slides and paper are separate quarto projects which allows you to keep the repo private while you work on code and paper, but publish the slides (using the same materials) for giving conference talks etc while the paper is in draft.\n\n## Goals\n\n- reproducible python/R environments\n  - one-click launch in the cloud\n  - consistent cross-platform local environments\n- write in quarto markdown \n- include slides\n\n\n## Install and Run\n\nTo run locally:\n\n- clone this repository, follow below\n\nTo run in codespaces:\n\n- click the 'open in codespaces' button above\n  - the default config will include at least 4 cores (dont go below 16gb memory), but you can crank it up for better performance\n\n- `pixi install`\n- `pixi run jupyter lab`\n\nif running in a codespace this starts a jupyter server on the VM's 'localhost'.\nOpen an existing notebook (or start a new one). When selecting a kernel, choose\n'Existing jupyter server' and copy/paste the URL with token from the terminal\n\nedit the notebooks as you like\n\n## Execute and Build\n\n`pixi run quarto render paper`\n\nwill run the python and r noteooks and generate the html and pdf in `paper/_manuscript`\n\n**note** this workflow works perfectly when run locally (on my mac). Currently, quarto's default latex engine (tinytex) has a `PATH` issue when running through pixi in codespaces (which, given pixi's hyper-sandboxing, is not terribly surprising). You can get around that at the moment by using the tectonic engine for the pdf, like:\n\n`pixi run quarto render --pdf-engine tectonic`\n\nyou can use `pixi run quarto preview paper` to preview while you work\n\n## Build slides\n\nif you want to publish slides (or make the manuscript public):\n\n- go to the repository settings, then 'pages', then select 'github actions'\n  - don't change anything else, the config file is already there\n- edit the files in `slides/` (or cp the manuscript files there)\n- `pixi run quarto render slides`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknaaptime%2Frypyrx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknaaptime%2Frypyrx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknaaptime%2Frypyrx/lists"}