# Package development - guide required for good resources

**URL:** <https://discourse.julialang.org/t/package-development-guide-required-for-good-resources/52490>\
**Category:** New to Julia\
**Tags:** package\
**Created:** [December 28, 2020, 1:43am UTC](https://discourse.julialang.org/t/package-development-guide-required-for-good-resources/52490 "2020-12-28T01:43:04Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![imanuelcostigan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imanuelcostigan/32/20567_2.png) [@imanuelcostigan](https://discourse.julialang.org/u/imanuelcostigan)\
**Post date:** [December 28, 2020, 1:43am UTC](https://discourse.julialang.org/t/package-development-guide-required-for-good-resources/52490/1 "2020-12-28T01:43:04Z")

</div>

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](https://r-pkgs.org) but for Julia. I’ve looked at PkgTemplates and other things which help with the mechanistic aspects of this.

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [December 28, 2020, 1:50am UTC](https://discourse.julialang.org/t/package-development-guide-required-for-good-resources/52490/2 "2020-12-28T01:50:02Z")

</div>

[[Ann][Tutorial] How-to develop a Julia package from scratch](https://discourse.julialang.org/t/ann-tutorial-how-to-develop-a-julia-package-from-scratch/52227) is a pretty good place to start.

---

<div class="post-metadata">

**Author:** ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)\
**Post date:** [December 28, 2020, 9:41am UTC](https://discourse.julialang.org/t/package-development-guide-required-for-good-resources/52490/3 "2020-12-28T09:41:37Z")

</div>

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](https://github.com/JuliaDebug/Debugger.jl) 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](https://syl1.gitbook.io/julia-language-a-concise-tutorial/language-core/getting-started#installing-julia).
- Uh, not really. Count the stars in github 😉 If you want a curated set of packages consider using JuliaPro (free)

---

<div class="post-metadata">

**Author:** ![MA\_Laforge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ma_laforge/32/385_2.png) [@MA\_Laforge](https://discourse.julialang.org/u/MA_Laforge)\
**Post date:** [December 28, 2020, 10:05pm UTC](https://discourse.julialang.org/t/package-development-guide-required-for-good-resources/52490/4 "2020-12-28T22:05:54Z")

</div>

> [@imanuelcostigan](#):
>
> “Is there a great summary of the package ecosystem (e.g. so that I know which packages I should use in my package)”

In addition to [JuliaHub](https://juliahub.com/ui/Home) (good way to search for packages), there is a list of github organizations, which is accessible from Julia’s [community](https://julialang.org/community/#julia_github_orgs) tab:

> **[Julia GitHub Organizations](https://julialang.org/community/organizations/)**
>
> The official website for the Julia Language. Julia is a language that is fast, dynamic, easy to use, and open source. Click here to learn more.

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

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [December 29, 2020, 1:53pm UTC](https://discourse.julialang.org/t/package-development-guide-required-for-good-resources/52490/5 "2020-12-29T13:53:53Z")

</div>

> [@imanuelcostigan](#):
>
> “What’s the best IDE in which to develop packages”?

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

> [@imanuelcostigan](#):
>
> Is there a great summary of the package ecosystem

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