Skip to main content
Super early bird tickets for AI in Production 2027 are on sale now.
See all results
items
    • Overview 
    • Join Us  
    • Community 
    • Contact 
    • Overview 
    • Course Catalogue 
    • Public Courses 
    • Overview 
    • Posit 
    • Data Science 
    • Engineering 
    • Blog 
    • Case Studies 
    • R Package Validation 
    • Gallery 
    • diffify  
    • Pro Bono Support 

Diffify & Posit Package Manager

Authors: Colin Gillespie & Myles Mitchell

Published: December 12, 2024

tags: r, python, diffify, posit

The latest release of Posit Package Manager introduces several enhancements, including:

  • Python Git Builders: Build Python packages (wheels) directly from Git.
  • Blocklists: Easily block specific packages or versions.
  • Improved Documentation: Clearer and more accessible information.

All great stuff, I’m sure. But most of them don’t directly impact the end user. But there is an exception to this rule, and that’s the ability to add custom metadata to a package page.

What is Package Metadata?

Custom metadata lets administrators define key-value pairs for packages. For instance, you could tag packages as part of the tidyverse with is_tidyverse: TRUE|FALSE. Other use cases include:

  • Assigning scores to packages.
  • Linking additional documentation.

Metadata can apply globally (e.g., all versions of {dplyr}) or to specific versions in a repository.

How to Add Metadata

Metadata is added via the API. Start by creating a token:

# Care should be taken over expires and scope
rspm create token --scope=global:admin --expires=never --description="Allows global admin access"

## Generated an access token. Be sure to record this token immediately since you will not be able to retrieve it later.
# eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

This will generate an access token (e.g., eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...). As with most tokens, it’s not retrievable, so put it somewhere secure.

Test the token on the API page, ensuring you prefix it with Bearer when authorizing.

For example, a /verify-auth GET request with a valid token should return a 200 response, confirming successful authorization.

Linking with diffify.com

The diffify.com website has a predictable URL structure: diffify.com/language/package-name/old-version/new-version, where

  • language: either r or python
  • package-name: name of the R or Python package
  • versions: Optional, specify one or both.

diffify.com & Posit Package Manager

Adding the diffify links to PPM is performed using the

  • POST /metadata/records/

and/or

  • POST /metadata/records/bulk

API calls. Depending on how precise you want to be you can either add a global meta tag, e.g.

Diffify: https://diffify.com/r/datasauRus

which would work for all versions of diffify. This is less work for the admin, but the user has to perform an extra click.

Or specify the version number in the URL,

Diffify: https://diffify.com/r/datasauRus/0.1.2

which is more work for the admin, but nicer for the user. The end result after this hard work is a nice link near the top of the page.

To learn more about diffify.com, check out our blog posts here!


Jumping Rivers Logo

You might also like

Diffify - 3 months on

What a few months it's been for Diffify, our new app for comparing package releases! We’ve been delighted with the enthusiastic response and quick adoption by the R community. Read on to learn about just some of many updates we’ve made to the app since launch day, and how we are actively addressing your feedback as we look to the future.

Diffify - the anniversary update!

It's been just over a year since we introduced the world to diffify, our app for comparing package releases. To celebrate reaching this milestone, we're pleased to announce that an "anniversary update" has just gone live! Read on to learn about the latest changes and some exciting plans in the works…

Diffify - Python release

We are excited to finally release Python content on Diffify! You can now perform version comparisons for 1600 popular PyPI packages. Read on to learn about the new content, and our plans to expand this as we look to the future.

Recent Posts

  • Why learn the command-line interface? 
  • A First Look at Positron and Posit Assistant: Free Jumping Rivers Webinar 
  • Five pre-flight checks for your dashboard 
  • AI in Production Conference Summary (2026) 
  • AI in Production 2026 Speakers 
  • Ghost in the Shell Script 
  • Online Data Science Training Courses: R, Python, and Machine Learning in 2026 
  • What's new in R 4.6.0? 
  • Programming with LLMs in R & Python 
  • Using R to Teach R: Lessons for Software Development 

Top Tags

  • R (255) 
  • Rbloggers (199) 
  • Pybloggers (99) 
  • Python (99) 
  • Shiny (65) 
  • Machine Learning (31) 
  • Training (30) 
  • Events (29) 
  • Conferences (21) 
  • Tidyverse (17) 
  • Statistics (16) 
  • Packages (14) 

Keep Updated

Like data science? R? Python? Stan? Then you’ll love the Jumping Rivers newsletter. The perks of being part of the Jumping Rivers family are:

  • Be the first to know about our latest courses and conferences.
  • Get discounts on the latest courses.
  • Read news on the latest techniques with the Jumping Rivers blog.

We keep your data secure and will never share your details. By subscribing, you agree to our privacy policy.

Follow Us

  • GitHub
  • Bluesky
  • LinkedIn
  • YouTube
  • Eventbrite

Find Us

The Catalyst Newcastle Helix Newcastle, NE4 5TG
Get directions

Contact Us

  • hello@jumpingrivers.com
  • + 44(0) 191 432 4340

Newsletter

Sign up

Events

  • North East Data Scientists Meetup
  • Leeds Data Science Meetup
  • AI in Production
British Assessment Bureau, UKAS Certified logo for ISO 9001 - Quality management British Assessment Bureau, UKAS Certified logo for ISO 27001 - Information security management Cyber Essentials Certified Plus badge
  • Privacy Notice
  • |
  • Booking Terms

©2016 - present. Jumping Rivers Ltd