# Formatting or Format?

**URL:** <https://discourse.julialang.org/t/formatting-or-format/9477>\
**Category:** General Usage\
**Tags:** formatting\
**Created:** [March 3, 2018, 5:58pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477 "2018-03-03T17:58:13Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![tk3369](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tk3369/32/2824_2.png) [@tk3369](https://discourse.julialang.org/u/tk3369)\
**Post date:** [March 3, 2018, 5:58pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/1 "2018-03-03T17:58:13Z")

</div>

[Formatting.jl](https://github.com/JuliaIO/Formatting.jl) is nice but it doesn’t seem to be maintained…?  
[Format.jl](https://github.com/JuliaString/Format.jl) is a fork that looks more active.

What’s the story here? Are we going to consolidate these?

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [March 3, 2018, 9:16pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/2 "2018-03-03T21:16:29Z")

</div>

Format is my fork, that 1) is maintained and 2) includes some code by Tom Breloff (a PR he made against Formatting) that I wanted to use for my `StringLiterals.jl` package.

I will be trying to enhance it further, by making it work with my `Strs.jl` string types, and by improving the performance / cutting down the code generation needed.

---

<div class="post-metadata">

**Author:** ![jmkuhn](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jmkuhn/32/2090_2.png) [@jmkuhn](https://discourse.julialang.org/u/jmkuhn)\
**Post date:** [March 3, 2018, 9:46pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/3 "2018-03-03T21:46:23Z")

</div>

I am interested in adding some of the missing functionality to Formatting and I have submitted a few PRs, but none have been merged yet.

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [March 3, 2018, 10:03pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/4 "2018-03-03T22:03:00Z")

</div>

Please submit them to Format.jl!  
What have you been trying to add?

---

<div class="post-metadata">

**Author:** ![jmkuhn](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jmkuhn/32/2090_2.png) [@jmkuhn](https://discourse.julialang.org/u/jmkuhn)\
**Post date:** [March 3, 2018, 10:12pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/5 "2018-03-03T22:12:47Z")

</div>

So far, I have just submitted bug fixes (Unicode indexing, length calculations, -0.0, exponents \> 99, 0.7…). I would like to add centered text, complex numbers, date/time formatting, formatting user defined types, underscore thousands separator, underscore bin/oct/hex separator, keyword arg names and others.

---

<div class="post-metadata">

**Author:** ![tk3369](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tk3369/32/2824_2.png) [@tk3369](https://discourse.julialang.org/u/tk3369)\
**Post date:** [March 3, 2018, 11:20pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/6 "2018-03-03T23:20:21Z")

</div>

Hi Scott, could you register your package?

It might confuse new users though. Is there any JuliaIO maintainers here? Perhaps it’s better to unregister Formatting.jl if it’s no longer maintained.

---

<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:** [March 7, 2018, 3:16pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/7 "2018-03-07T15:16:16Z")

</div>

Issues are missing from [Format.jl](https://github.com/JuliaString/Format.jl), is that because it is a fork?

Also, can you please register it?

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [March 7, 2018, 3:28pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/8 "2018-03-07T15:28:08Z")

</div>

I’m not able to submit PRs currently.  
I’d need somebody else to make the PR to register it.

---

<div class="post-metadata">

**Author:** ![tk3369](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tk3369/32/2824_2.png) [@tk3369](https://discourse.julialang.org/u/tk3369)\
**Post date:** [March 28, 2018, 2:17am UTC](https://discourse.julialang.org/t/formatting-or-format/9477/9 "2018-03-28T02:17:32Z")

</div>

Bump 🙂

How do we get a closure for this?

---

<div class="post-metadata">

**Author:** ![kevin.squire](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevin.squire/32/62_2.png) [@kevin.squire](https://discourse.julialang.org/u/kevin.squire)\
**Post date:** [March 28, 2018, 4:13am UTC](https://discourse.julialang.org/t/formatting-or-format/9477/10 "2018-03-28T04:13:19Z")

</div>

Not sure if this brings closure, but @jmkuhn was recently give commit access to Formatting.jl, and has merged in a number of fixes. A new version was released on Monday.

Cheers,  
Kevin

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [March 28, 2018, 1:53pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/11 "2018-03-28T13:53:27Z")

</div>

Format.jl will have @jmkuhn’s nice fixes also shortly, I’m almost finished getting them merged in.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [March 28, 2018, 2:05pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/12 "2018-03-28T14:05:27Z")

</div>

> [@Tamas\_Papp](#):
>
> Issues are missing from [Format.jl](https://github.com/JuliaString/Format.jl), is that because it is a fork?

Issues are disabled by default for forks, but can be enabled

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [April 9, 2018, 5:22pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/13 "2018-04-09T17:22:27Z")

</div>

In case anybody is interested, all of the changes in `Formatting.jl` (including the one from three days ago, write → print) have been incorporated into `Format.jl`.

---

<div class="post-metadata">

**Author:** ![Diego\_Javier\_Zea](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/diego_javier_zea/32/1858_2.png) [@Diego\_Javier\_Zea](https://discourse.julialang.org/u/Diego_Javier_Zea)\
**Post date:** [April 10, 2018, 8:06am UTC](https://discourse.julialang.org/t/formatting-or-format/9477/14 "2018-04-10T08:06:08Z")

</div>

Could it be better if @ScottPJones joins JuliaIO as a `Formatting.jl` maintainer together with @jmkuhn instead of maintaining a fork? In that way, he could push his advances in `Format.jl` into the registered package and avoid duplicated efforts 😉

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [April 10, 2018, 11:25am UTC](https://discourse.julialang.org/t/formatting-or-format/9477/15 "2018-04-10T11:25:39Z")

</div>

`Format.jl` isn’t totally compatible with `Formatting.jl`, the biggest difference is that I incorporated the PR that Tom Breloff (great guy that he is, of Plots.jl fame) had done, and renamed some of the functions as I saw fit (i.e. fmt → pyfmt), to make it clearer the differences between the Python style formatting code (pyfmt), the C style formatting code (cfmt), and the type driven formatting that Tom’s PR added (fmt).  
If those changes were considered acceptable to the rest of the people using `Formatting`, they could be combined.

I would love to join JuliaIO though, I use many of it’s repos, and have at least a little 😉 experience in that area.

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [April 10, 2018, 12:49pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/16 "2018-04-10T12:49:39Z")

</div>

I’ve also fixed the recent breakage from the change to `round` and `signif` on master in `Format.jl`, and submitted [PR #56](https://github.com/JuliaIO/Formatting.jl/pull/56) to fix it for `Formatting.jl`.

---

<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:** [October 6, 2019, 8:22am UTC](https://discourse.julialang.org/t/formatting-or-format/9477/17 "2019-10-06T08:22:12Z")

</div>

So, what is the situation now in late 2019? Both the repos seems maintained, what’s the main diff between the two?

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [October 9, 2019, 6:05pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/18 "2019-10-09T18:05:13Z")

</div>

I split `Format.jl` from `Formatting.jl` at a time when `Formatting.jl` was not really being maintained, a few years ago.  
The other big motivation was to incorporate a PR from Tom Breloff, that provided some functionality that I needed for my formatted string interpolation package.

---

<div class="post-metadata">

**Author:** ![Nathan\_Boyer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nathan_boyer/32/14825_2.png) [@Nathan\_Boyer](https://discourse.julialang.org/u/Nathan_Boyer)\
**Post date:** [July 6, 2022, 7:05pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/19 "2022-07-06T19:05:27Z")

</div>

Bump. Can we merge these packages yet?

---

<div class="post-metadata">

**Author:** ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)\
**Post date:** [February 26, 2024, 11:29pm UTC](https://discourse.julialang.org/t/formatting-or-format/9477/20 "2024-02-26T23:29:23Z")

</div>

Rather then merge the packages, given the substantial divergence we have instead

1. Added a notice to the readme of Formatting.jl that it is no longer maintained ([thanks](https://github.com/JuliaIO/Formatting.jl/pull/111) @Mason ) and suggesting that people use Format.jl
2. Added a message the will display on pre compilation wherever the package (or a package that has it as a dependency) is updated ([thanks](https://github.com/JuliaIO/Formatting.jl/pull/112) @Sukera )
3. Archived the repo so it’s read-only (thanks @viralbshah )
