Package development - guide required for good resources

What is the most canonical and careful presentation of the packaging infrastructure from the perspective of a package developer? I prefer text rather than video (much easier to hop into a bit precisely). Basic things like:

  • “I developed a new function in a package, the tests failed for some reason, and I would like to debug this function. How do I do this?”
  • “What’s the best IDE in which to develop packages”? “What are the key bindings for the most regularly used package developer commands?” (e.g. run all tests for TDD or activate the package and load its functions to allow interactive development)
  • “Is there a great summary of the package ecosystem (e.g. so that I know which packages I should use in my package)”

I’m thinking something like Hadley Wickham’s R packages but for Julia. I’ve looked at PkgTemplates and other things which help with the mechanistic aspects of this.

1 Like

[Ann][Tutorial] How-to develop a Julia package from scratch is a pretty good place to start.

2 Likes

Hello, I am the author of the tutorial, however the package tutorial by itself doesn’t cover the aspects raised by the OP, as these points are pretty much general.

  • For “debugging”, you have an option for textual (gdb-like) debugging or gui-interfaces embedded in both Juno or VSCode (see their documentation)
  • For the IDE… the “best IDE” for developing packages is the same as the “best IDE” for working with Julia in general. You come during a transition from Juno (Atom Based) to the VSCode plugin for Julia: the first is still more mature and, for me, productive. The second one is the future and for many also the present of Julia development. You choose (and, if you like to try new paradigms, try Pluto). They are all described here.
  • Uh, not really. Count the stars in github :wink: If you want a curated set of packages consider using JuliaPro (free)
1 Like

In addition to JuliaHub (good way to search for packages), there is a list of github organizations, which is accessible from Julia’s community tab:

Maybe not the summary you are looking for, but at least it is a starting point.

Not that IDE choice is a very subjective thing. Generally, package development requires the same operations as coding, so nothing special is needed.

The ecosystem is already too large for a short summary. You need to be more specific about what you are doing.