quarto-dev / quarto-dev/quarto-cli

Record/keep extension source for later reuse (`quarto update extension ...`)

Open
#11,468 6 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement extensions
Dominant language
JavaScript
Stars
6k
Forks
458
Avg merge
1d 9h
Merged PRs (30d)
41

Description

Currently, when installation an extension from GitHub, if the extension name does not match the repository name, it's not possible to use quarto update extension ....

The majority of extensions uses quarto-<extension name> as a repository name instead of <extension name>.
For example:

  1. Install extensions:

    quarto add mcanouil/quarto-iconify
    quarto add quarto-ext/typst-templates/poster
    
  2. Check the installed extensions

    quarto list extensions
    
    Id                         Version    Contributes        
    quarto-ext/poster          1.0.0      formats            
    mcanouil/iconify           2.1.0      shortcodes         
    
  3. Update the extensions

    quarto update extension quarto-ext/poster
    
    Extension not found in local or remote sources
    

This means that it's not possible to update the extension quarto-ext/poster because the repository name (directory) is typst-templates/poster and not poster.
Same goes for the extension mcanouil/iconify.

This could be solved by recording/keeping the repository name (source) somewhere.
It could be in _extension.yml under source key.

Keeping the source would allow better extension management and easier updates, e.g., quarto update extension all.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the implementation of the quarto add extension, quarto list extensions, and quarto update extension commands, then inspect the proposed _extension.yml source metadata. Done means extensions installed from repositories with different names can retain their source and be found by quarto update extension, including all.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.