# Some observer's thoughts on developments of Julia packages and modules

**URL:** https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660
**Category:** General Usage
**Created:** [May 6, 2021, 2:49pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660 "2021-05-06T14:49:33Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![KZiemian](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kziemian/32/9020_2.png) [@KZiemian](https://discourse.julialang.org/u/KZiemian)
#### Post date: [May 6, 2021, 2:49pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660/1 "2021-05-06T14:49:33Z")

</div>

Recently excellent package [_DataFrames.jl_](https://dataframes.juliadata.org/stable/) arrived at version 1.0.0 (today it is v1.1.0), which make me wonder about time that such development takes. Complaining about not having it sooner, when you have such excellent, open, free software at your fingertips is just wicked, immoral, depraved indecent behavior, so I want to avoid it at all cost.

Since I hope that in the future I will find my niche working on some scientific project with Julia, I want to ask people that have experience with it, what are the bottlenecks in the development of Julia packages/modules, that 50% or more of Julia packages/modules stayed for many releases in 0.x.y version? Of course I maybe biased and only most packages that I use stick in this state of versioning.

To give I have Julia 1.6.1 on my computer and today I make Pkg3 `up` (good name?). Among 20 updates, which is quite modest number, 11 of them are in version 1.0.0 or higher after update. Few examples.

| Name | Version |
| --- | --- |
| ChainRulesCore | 0.9.41 |
| Colors | 0.12.8 |
| ColorSchemes | 3.12.1 |
| ColorTypes | 0.11.0 |
| Distributions | 0.25.0 |
| HTTP | 0.9.8 |
| StatsBase | 0.33.8 |

This is of course “glass is half empty” view, but I’m just pondering about what I see. There is quite normal that Julia packages have version 0.20+.0+, like for `StatsBase.jl`. I guess `Colors`, `ColorSchemes` and `ColorTypes` are related, so this is odd to me that `ColorSchemes` is in version 3.x.y and two others in version 0.x.y. This probably mean that `ColorSchemes` is much simpler than two others, still this looks odd.

I have few ideas why arriving at version 1.0.0 for many Julia packages can take few dozens of 0.x.y version.

- Not enough manpower. I guess this is probably the most important factor.
- Julia is innovative language and we still learn how to use it. So development of any package is little research project on topic “How to make package for X in Julia way?”. I don’t know how plausible is this statement.
- Julia community have very high standard of what should be in version 1.0.0 so they take a time to polish everything that they can.
- Julia 1.0.0 was released in August 2018 and following 2.5 years in not enough time to allow packages ecosystem to mature.
- We don’t have enough Chrises Rackauckases to speed up every project. Ten more are needed. 😉 😉

I will be grateful for your advice’s.

I don’t know if **Usage** is the best place for this topic, but I look at all categories and this one feel the least off.

---

<div class="post-metadata">

### Author: ![Jeff\_Emanuel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeff_emanuel/32/15440_2.png) [@Jeff\_Emanuel](https://discourse.julialang.org/u/Jeff_Emanuel)
#### Post date: [May 6, 2021, 3:04pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660/2 "2021-05-06T15:04:42Z")

</div>

v1 is arbitrary. It means that the author thinks the interface will churn less frequently

---

<div class="post-metadata">

### Author: ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)
#### Post date: [May 6, 2021, 3:07pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660/3 "2021-05-06T15:07:47Z")

</div>

For comparison, the [Pandas python package](https://pandas.pydata.org/docs/whatsnew/index.html) released version 0.3 in 2011 and version 1.0 in 2020.

---

<div class="post-metadata">

### Author: ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)
#### Post date: [May 6, 2021, 3:18pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660/4 "2021-05-06T15:18:40Z")

</div>

This discussion has been had many times, including not all that long ago.

> [@Getting to 1.0 -- How can we get packages to "make that tag"?](https://discourse.julialang.org/t/getting-to-1-0-how-can-we-get-packages-to-make-that-tag/59608):
>
> So many core packages in the Julia community, such as DataFrames are still pre-1.0 well after they have become ubiquitous. This causes a bit of confusion. Is the lack of a 1.0 a suggestion to users that they shouldn’t depend upon it for production work? What is the commitment to keep the API stable? Having so many well worn packages not put out that 1.0 tag reminds of IETF calling everything a “Request for Comments”. At some point, it’s not really a request for comments, despite the title. T…

---

<div class="post-metadata">

### Author: ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)
#### Post date: [May 6, 2021, 3:20pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660/5 "2021-05-06T15:20:30Z")

</div>

Also [How can we encourage Julia package developers to release version 1.0.0?](https://discourse.julialang.org/t/how-can-we-encourage-julia-package-developers-to-release-version-1-0-0/29124)

---

<div class="post-metadata">

### Author: ![KZiemian](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kziemian/32/9020_2.png) [@KZiemian](https://discourse.julialang.org/u/KZiemian)
#### Post date: [May 6, 2021, 5:47pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660/6 "2021-05-06T17:47:08Z")

</div>

Thank you for pointing these out. I read quite a lot topics on this forum, but even with search there’s just too much to know and find everything, is you don’t have good keywords.

---

<div class="post-metadata">

### Author: ![KZiemian](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kziemian/32/9020_2.png) [@KZiemian](https://discourse.julialang.org/u/KZiemian)
#### Post date: [May 6, 2021, 5:53pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660/7 "2021-05-06T17:53:01Z")

</div>

I know that it is arbitrary. Maybe this is effect of my being teached heavily to do everything to not break others code, that I feel deep unease when I need to use package with version 0.x.y.

Excluding situation that I’m among people that develop version 0.x.y, if being tester count as developer.

---

<div class="post-metadata">

### Author: ![Jeff\_Emanuel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeff_emanuel/32/15440_2.png) [@Jeff\_Emanuel](https://discourse.julialang.org/u/Jeff_Emanuel)
#### Post date: [May 6, 2021, 6:01pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660/8 "2021-05-06T18:01:58Z")

</div>

I understand that feeling well. I’m reluctant to update dependencies because it is often a waste of time adapting code to changed APIs.

I suppose my point was that there is no objective measure of code maturity. Following semver rules can inhibit declaring v1 for otherwise production level code.

---

<div class="post-metadata">

### Author: ![cce](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cce/32/460_2.png) [@cce](https://discourse.julialang.org/u/cce)
#### Post date: [May 6, 2021, 8:46pm UTC](https://discourse.julialang.org/t/some-observers-thoughts-on-developments-of-julia-packages-and-modules/60660/9 "2021-05-06T20:46:22Z")

</div>

> [@Jeff\_Emanuel](#):
>
> Following semver rules can inhibit declaring v1 for otherwise production level code.

For HypertextLiteral it’s helping me prioritize. I’m looking for things that I’m pretty sure I’ll need to change in the future, and being conservative about them (making them errors), or implementing a good enough approach that can be filled out without breakage till there’s enough reason to justify going to `2.0`.
