Being informed about new registered packages and releases

I like to keep up to date about new Julia packages being registered and new releases of existing ones.

I used to just “watch” the Github repo for the registry, but it contains a lot of incidental information and these days it is like drinking from a firehose. I of course also follow the announcements category here, but not every package is announced.

Is there an alternative mechanism for this? Ideally I would like to be notified about

  1. new packages in the registry

  2. new versions of existing packages, possibly with a filter for major and minor version bumps

13 Likes

How about watching only releases? That can be selected from the watch drop down

I think you are confusing Julia package releases (which are changes to that repository) with what Github considers a release (of which there aren’t any for this repo).

2 Likes

U mean u watch the general registry? Thought u meant the individual repositories. For me, tag bot tags each release

I am not quite sure you read the original question. Of course I am aware of that feature of Github, and I use it to watch some packages; but this does not work for learning about new packages.

1 Like

I guess https://github.com/JuliaRegistries/Registrator.jl should be the entry point but I have almost no experience with GitHub bots whatsoever, so not sure if there is a way to inject some hooks. But ultimately that’s the place where the actual “release” happens I guess…

1 Like

You mean something like this

4 Likes

Yes, that’s a perfect solution — an RSS feed allows catching up with this information on demand.

He explains how he does it here. It seems like the equivalent in Julia would be periodically updating a local registry to match the general registry and just automating some readout of the the git history.

1 Like

What could be nice too for versions is that when you type status in an environment pkg tells you if there are any new versions available (you may not want to up for compatibility reasons but it’d be nice to have the info)

Maybe especially so now that auto merging on the registry requires upper bounds on everything

4 Likes

you can fake this with:
pkg> preview up
which will do a dry run of updating but no change anything.

5 Likes

This is exactly what the Emacs package manager does and indeed I find it very useful to discover new packages.

3 Likes

How about periodically looking at this filtered list of prs?
https://github.com/JuliaRegistries/General/pulls?q=is%3Apr+is%3Aclosed+label%3A"new+package"

1 Like

this doesn’t work for me (I’m on 1.3)? also does it give the preview of what up would do or of what versions are available as with compat bounds that’s not necessarily the same thing?

Ah sorry it is preview up

(v1.2) pkg> preview up
───── Preview mode ─────
[ Info: skipping updating registries in preview mode
 Resolving package versions...
 Installed Atom ─ v0.11.1
  Updating `~/.julia/environments/v1.2/Project.toml`
  [c52e3926] ↑ Atom v0.10.1 ⇒ v0.11.1
  [295af30f] ↑ Revise v2.1.10 ⇒ v2.2.2
  Updating `~/.julia/environments/v1.2/Manifest.toml`
  [c52e3926] ↑ Atom v0.10.1 ⇒ v0.11.1
  [295af30f] ↑ Revise v2.1.10 ⇒ v2.2.2
  [90137ffa] ↑ StaticArrays v0.11.0 ⇒ v0.11.1
  Building skipping building in preview mode
───── Preview mode ─────

It gives a preview of what up would do.

So it respects compat.

it would be nice to have a version of up that ignored/relaxed compat.
so could test out if worked wiith new versions,
then could do pkg> preview up --relax-compat

2 Likes

Yeah, I guess syntactic sugar for it would be nice too like

pkg> whatsnew

I guess a side advantage for such a thing is that it may address @Tamas_Papp’s initial FR if you assume that the packages in your environment are the packages you care about?

2 Likes

I’ve migrated to having individual environments for each project. So I don’t have one main environemnt to see what’s new, I’d instead need to do that for each of the projects scattered around my computer-verse… I would be cool to know what’s up in a more general sense.

2 Likes

That’s not really what I am looking for. I would prefer

  1. if I did not have to initiate gathering this information (eg RSS, e-mail notifications, maybe in a digest),

  2. I could access it in a context where there short release notes and links I can click on that take me to the repo (for new packages) and either git changes or a changelog entry for updates,

I don’t think that Pkg is the right place for this. Something like cranberries linked by @Zach_Christensen above would be ideal: we already have release notes in the registrator, this “just” needs to be scraped and compiled.

I am reasonably familiar with the static site generator Hugo, so if someone helped with the collection and saving it in toml frontmatter + markdown files like

+++
date = "2019-05-23T16:39:26+02:00"
package = "Foo.jl"
release = "initial" # or major, minor, patch release
version = "0.0.1"
+++

Release notes:

Foo.jl is a framework for frobnicating gizmos.

I could write a site generator. And of course we need hosting :slight_smile:

5 Likes

Package registry is just a plain git repository with a bunch of TOML files. So, why not read the data directly? Here is a one-linear to list newly added packages in past 100 commits:

cd ~/.julia/registries/General && \
    git diff 'HEAD~100..origin/master' -- Registry.toml \
    | grep -E '^\+[^+]' \
    | sed -E 's/.*name = "([^"]+)".*/\1/g'

(Of course, it would be much more robust to parse the TOML files and compare the Dict in Julia.)

But I guess you need to scrape github release page to get the release notes.

2 Likes

I used to watch juliaobserver.com/feeds/packages.rss but I’ve just realized that it is not functioning.

We definitely need a feed to be aware of the nice packages out there.

1 Like