Skip to content

DOC: Add instructions for installation from conda-forge - #50

Merged
froggleston merged 2 commits into
carpentries:mainfrom
matthewfeickert:feat/add-conda-forge-install-instructions
Feb 28, 2026
Merged

DOC: Add instructions for installation from conda-forge#50
froggleston merged 2 commits into
carpentries:mainfrom
matthewfeickert:feat/add-conda-forge-install-instructions

Conversation

@matthewfeickert

Copy link
Copy Markdown
Contributor

Resolves #49

  • Add instructions based on https://carpentries.github.io/workbench/#installation.
    • As group-tabs are failing in learners/setup.md, fall back to distinguishing between Pixi and conda instructions by using subsections.
  • Give Pixi as the preferred method as it requires fewer commands, is significantly faster, and is fully reproducible.
  • Fix typo 'or the Workbench' -> 'for the Workbench'.

@github-actions

Copy link
Copy Markdown

🆗 Pre-flight checks passed 😃

This pull request has been checked and contains no modified workflow files or spoofing.

It should be safe to Approve and Run the workflows that need maintainer approval.

@matthewfeickert matthewfeickert left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

High-level comments for the reviewers.

Comment thread learners/setup.md
Comment on lines +29 to +32
- Manual local installation from conda-forge with Pixi (local)
- Installing all the requirements for development is one line and will create a fully reproducible environment.
- **Initial setup with conda packages from conda-forge and Pixi is very straightfoward and is operating system agnostic.**
- Manual local installation with operating system specific tools (local)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm raising the difference between local installation using conda-forge tooling and the operating system specific approaches. Both are "manual", though both involve package managers at some levle.

Comment thread learners/setup.md
### Why would I want to install locally if all these other options exist?

You can use the Workbench completely within devcontainers or Docker locally, or through GitHub using our templates.
You can use the Workbench completely within devcontainers, Docker, or with [Pixi locally](#101-conda-forge), or through GitHub using our templates.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding an anchor that matches the style used elsewhere.

Comment thread learners/setup.md
We acknowledge that VSCode is free but not completely open source.

Please note, if you are not comfortable with using Docker or the Workbench, we recommend going through the [manual installation](#101-manual) steps below.
Please note, if you are not comfortable with using Docker for the Workbench, we recommend going through the [manual installation](#101-manual) steps below.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo fix: "or the Workbench" -> "for the Workbench".

Comment thread learners/setup.md

All of the Workbench tools, and their dependencies, are packaged and distributed as built binaries in the form of conda packages on [conda-forge](https://conda-forge.org/) for Linux, macOS, and Windows.
You can setup an environment for lesson development that includes all dependencies (including R) with the following.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had tried to encompass the With Pixi and With Conda using group-tab

:::: group-tab

...

::::

but this raises pandoc and sandpaper errors

Details:
$ pixi run start
✨ Pixi task (serve): Rscript -e "sandpaper::serve()": (Serve the lesson)                                                                                                               ! There were errors in 8/109 links and images
◌ Some link anchors for relative links (e.g. [anchor]: link) are missing
◌ Some linked internal files do not exist <https://carpentries.github.io/sandpaper/articles/include-child-documents.html#workspace-consideration>
◌ Avoid uninformative link phrases <https://webaim.org/techniques/hypertext/link_text#uninformative>
◌ Avoid single-letter or missing link text <https://webaim.org/techniques/hypertext/link_text#link_length>

learners/setup.md:311 [link text too short]: [R](https://cran.rstudio.org/)
learners/setup.md:381 [missing anchor]: [we recommend using RStudio for your lesson](#recommend)
learners/setup.md:511 [missing file]: [](fig/rstudio-mac-install.png)
learners/devcontainer.md:15 [uninformative link text]: [link](https://code.visualstudio.com/)
learners/devcontainer.md:89 [missing file]: [Lesson Content and Styling](episodes/02-content-styling.md)
learners/devcontainer.md:89 [missing file]: [Additional Lesson Content](03-additional-content.md)
learners/devcontainer.md:93 [missing file]: [Packages and renv](episodes/04-r-and-renv.md)
learners/devcontainer.md:97 [missing file]: [Internationalisation](episodes/05-il8n.md)
── Initialising site ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
✔ Congratulations! '/home/feickert/Code/GitHub/forks/workbench-docs/CITATION.cff' is valid
Error: 
! in callr subprocess.
Caused by error: 
! pandoc document conversion failed with error 83
---
Standard error:
[WARNING] Note with key 'workspace' defined at /tmp/RtmpabpLeN/file1e2cf1211c00e.md line 871 column 1 but not used.
Error running filter /home/feickert/Code/GitHub/forks/workbench-docs/.pixi/envs/default/lib/R/library/sandpaper/rmarkdown/lua/lesson.lua:
...default/lib/R/library/sandpaper/rmarkdown/lua/lesson.lua:330: attempt to concatenate a nil value (field '?')
stack traceback:
	...default/lib/R/library/sandpaper/rmarkdown/lua/lesson.lua:419: in function <...default/lib/R/library/sandpaper/rmarkdown/lua/lesson.lua:418>
	[C]: in ?
	[C]: in function 'pandoc.walk_block'
	...default/lib/R/library/sandpaper/rmarkdown/lua/lesson.lua:451: in function 'tab_block'
	...default/lib/R/library/sandpaper/rmarkdown/lua/lesson.lua:661: in function 'handle_our_divs'
stack traceback:
	...default/lib/R/library/sandpaper/rmarkdown/lua/lesson.lua:451: in function 'tab_block'
	...default/lib/R/library/sandpaper/rmarkdown/lua/lesson.lua:661: in function 'handle_our_divs'
---
Backtrace:
1. sandpaper::serve()
2. local rend(this_path)
3. sandpaper::build_lesson(f, preview = FALSE, quiet = quiet)
4. sandpaper:::build_site(path = path, quiet = quiet, preview = preview, override = override, …
5. sandpaper:::build_home(pkg, quiet = quiet, next_page = home_next)
6. sandpaper:::render_html(setup)
7. callr::r(function(d, v, ...) { …
8. callr:::get_result(output = out, options)
9. callr:::throw(callr_remote_error(remerr, output), parent = fix_msg(remerr[[3]]))
---
Subprocess backtrace:
1. rmarkdown::pandoc_convert(...)
2. rmarkdown:::stop2("pandoc document conversion failed with error ", result)
3. base::stop(..., call. = FALSE)
4. | base::.handleSimpleError(function (e) …
5. global h(simpleError(msg, call))
Warning message:
There are missing timings from 1 episode.
• 01-first-lesson.md
ℹ The default value of 5 minutes will be used for teaching and exercises. 
Execution halted

As a fall back, revert to using subsections of the same heading level e.g.

### With Pixi (recommended)

...

### With conda

Working instances of group-tab use with the Workbench can be seen in https://github.com/carpentries-incubator/reproducible-ml-workflows, so this seems to point to an issue with the structure of https://github.com/carpentries/workbench-docs.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been resolved in carpentries/sandpaper#709 and is released in sandpaper v0.20.0 which now allows for group-tabs to work

image

Comment thread learners/setup.md
conda activate workbench
```

### Test your installation

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section exists only to match the other installation methods, as PATH manipulation is controlled by environment activation (or run, in the case of Pixi). If additional checks are desired please recommend them.

@matthewfeickert
matthewfeickert marked this pull request as ready for review February 19, 2026 07:53
@matthewfeickert

Copy link
Copy Markdown
Contributor Author

@froggleston @tobyhodges this is ready for review. Please let me know if you have any questions. 👍

@matthewfeickert

Copy link
Copy Markdown
Contributor Author

Aside: How is rmarkdown::pandoc_version of 3.10.2

```r
rmarkdown::pandoc_version()
tmp <- tempfile()
sandpaper::no_package_cache()
sandpaper::create_lesson(tmp, open = FALSE)
sandpaper::build_lesson(tmp, preview = FALSE, quiet = TRUE)
fs::dir_tree(tmp, recurse = 1)
```
```output
[1] '3.10.2'

possible when the latest release is pandoc v3.9 (as of 2026-02-04)?

@froggleston

Copy link
Copy Markdown
Member

Thanks for this @matthewfeickert ! We can take a look over the next few days.

To be perfectly honest, I have no idea. Some part of my mind remembers that there were 3.10 releases, and then everywhere that I might have those versions, they're all sub 3.9 so .... I guess I made a typo after a copy paste?

@matthewfeickert
matthewfeickert force-pushed the feat/add-conda-forge-install-instructions branch from 9ff5a0e to 3f4c7df Compare February 19, 2026 15:21
@matthewfeickert

matthewfeickert commented Feb 19, 2026

Copy link
Copy Markdown
Contributor Author

We can take a look over the next few days.

Sounds good, thanks!

I guess I made a typo after a copy paste?

I wasn't thinking fully when I asked about that earlier, but a typo makes more sense than a bug. That's luckily a very easy fix. 👍

* Correct pandoc version to 3.9 (latest as of 2026-02).
* Fix typo 'or the Workbench' -> 'for the Workbench'.
* Add instructions based on https://carpentries.github.io/workbench/#installation.
   - Use group-tabs to show instructions for Pixi (recommended) and conda.
* Give Pixi as the preferred method as it requires fewer commands, is
  significantly faster, and is fully reproducible.
@matthewfeickert
matthewfeickert force-pushed the feat/add-conda-forge-install-instructions branch from 25b9e78 to 42af6a3 Compare February 28, 2026 16:28
Comment thread learners/setup.md

::: group-tab

### With Pixi

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've found that if I had With Pixi (recommended), the presence of the () broke group-tabs, so I have noted the (recommended) in the line below.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@froggleston

froggleston commented Feb 28, 2026

Copy link
Copy Markdown
Member

I'll merge this now as it's looking good, and we can do a more thorough review when @tobyhodges and I next discuss the plan for these docs. Thanks as always @matthewfeickert !

@froggleston
froggleston merged commit be3a34e into carpentries:main Feb 28, 2026
1 check passed
github-actions Bot pushed a commit that referenced this pull request Feb 28, 2026
Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Feb 28, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
@matthewfeickert
matthewfeickert deleted the feat/add-conda-forge-install-instructions branch February 28, 2026 20:55
@matthewfeickert

Copy link
Copy Markdown
Contributor Author

Thanks @froggleston!

github-actions Bot pushed a commit that referenced this pull request Feb 28, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Mar 3, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Mar 10, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Mar 17, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Mar 24, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Mar 31, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Apr 7, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Apr 14, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Apr 21, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Apr 28, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
github-actions Bot pushed a commit that referenced this pull request Apr 28, 2026
Auto-generated via `{sandpaper}`
Source  : 574e9bc
Branch  : md-outputs
Author  : GitHub Actions <actions@github.com>
Time    : 2026-02-28 20:55:00 +0000
Message : markdown source builds

Auto-generated via `{sandpaper}`
Source  : be3a34e
Branch  : main
Author  : Robert Davey <robertdavey@carpentries.org>
Time    : 2026-02-28 20:53:05 +0000
Message : Merge pull request #50 from matthewfeickert/feat/add-conda-forge-install-instructions

DOC: Add instructions for installation from conda-forge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add conda-forge install directions to README?

2 participants