# \[ANN\] Shuffle.jl: requesting feedback

**URL:** https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261
**Category:** Package Announcements
**Created:** [October 12, 2020, 11:48pm UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261 "2020-10-12T23:48:46Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![Luapulu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luapulu/32/17669_2.png) [@Luapulu](https://discourse.julialang.org/u/Luapulu)
#### Post date: [October 12, 2020, 11:48pm UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/1 "2020-10-12T23:48:46Z")

</div>

Hey julia community,

I started on [Shuffle.jl](https://github.com/Luapulu/Shuffle.jl), a package for a number of different shuffling algorithms in julia.

See the [docs](https://luapulu.github.io/Shuffle.jl/stable) for more details.

I’d like to add a `Cut` shuffle that does a cut like you’d do with a deck of cards at some given position. May be we could add shuffling algorithms for arrays that don’t use one based indexing, too. In general, adding shuffling for other collection types is something I want to think about.

Any feedback would be appreciated. Let me know what you think.

EDIT: So, I’ve added a code coverage badge as well as automatic testing via github actions. Thanks for the suggestions. Next step: add some benchmarks and have automatic benchmarking.

---

<div class="post-metadata">

### Author: ![jonathanBieler](https://avatars.discourse-cdn.com/v4/letter/j/82dd89/32.png) [@jonathanBieler](https://discourse.julialang.org/u/jonathanBieler)
#### Post date: [October 13, 2020, 8:25am UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/2 "2020-10-13T08:25:24Z")

</div>

Looks good overall, I would add automatic tests on travis with a badge in the readme, it always look more serious with it. You can check an example a config file [here](https://github.com/invenia/PkgTemplates.jl/blob/3ec33bc02c901ed58e42ee4c367ae7ec7552ab5d/.travis.yml).

---

<div class="post-metadata">

### Author: ![tlienart](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tlienart/32/7640_2.png) [@tlienart](https://discourse.julialang.org/u/tlienart)
#### Post date: [October 13, 2020, 8:44am UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/3 "2020-10-13T08:44:07Z")

</div>

Clean code and extensive docstrings, that’s definitely worth a ⭐

---

<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: [October 13, 2020, 9:20am UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/4 "2020-10-13T09:20:25Z")

</div>

It looks very nicely done, and well-documented. I would second @jonathanBieler’s suggestion for coverage and CI badges. Also, later on autogenerated docs would be nice. Incidentally, you may find

[https://github.com/JuliaDocs/DocStringExtensions.jl](https://github.com/JuliaDocs/DocStringExtensions.jl)

useful for writing docstrings.

---

<div class="post-metadata">

### Author: ![Luapulu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luapulu/32/17669_2.png) [@Luapulu](https://discourse.julialang.org/u/Luapulu)
#### Post date: [October 13, 2020, 11:47am UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/5 "2020-10-13T11:47:52Z")

</div>

What do you mean by autogenerated? They already are automatic in the sense that docstrings are compiled into the docs website on every push to the main branch/release.

---

<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: [October 13, 2020, 12:09pm UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/6 "2020-10-13T12:09:21Z")

</div>

Missed that, sorry.

---

<div class="post-metadata">

### Author: ![Luapulu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luapulu/32/17669_2.png) [@Luapulu](https://discourse.julialang.org/u/Luapulu)
#### Post date: [October 13, 2020, 12:48pm UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/7 "2020-10-13T12:48:38Z")

</div>

Something I’d really like to get to work is automatic benchmark, testing and docs deployment on every commit to main or dev. Not quite sure how I can benchmark against the latest tagged version automatically with PkgBenchmark though. Also not sure where to put the results, I guess just display them and I’ll see them when I look at the travis job?

---

<div class="post-metadata">

### Author: ![ericphanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericphanson/32/215186_2.png) [@ericphanson](https://discourse.julialang.org/u/ericphanson)
#### Post date: [October 13, 2020, 12:57pm UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/8 "2020-10-13T12:57:20Z")

</div>

I’m not sure if it does quite what you want, but I’d check out [https://github.com/tkf/BenchmarkCI.jl](https://github.com/tkf/BenchmarkCI.jl) which can produce comments like [https://github.com/JuliaFolds/FLoops.jl/pull/49#issuecomment-687710965](https://github.com/JuliaFolds/FLoops.jl/pull/49#issuecomment-687710965)

---

<div class="post-metadata">

### Author: ![Luapulu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/luapulu/32/17669_2.png) [@Luapulu](https://discourse.julialang.org/u/Luapulu)
#### Post date: [October 13, 2020, 1:07pm UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/9 "2020-10-13T13:07:41Z")

</div>

That looks like exactly what I wanted!

---

<div class="post-metadata">

### Author: ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)
#### Post date: [October 14, 2020, 12:31am UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/10 "2020-10-14T00:31:18Z")

</div>

Actually, that’s just me manually quoting the benchmark result 🙂 . The real auto-generated comments are something like this: [https://github.com/JuliaFolds/Transducers.jl/pull/308#issuecomment-647841299](https://github.com/JuliaFolds/Transducers.jl/pull/308#issuecomment-647841299)

While ago, I switched to pushing the result to a Git repository rather than the comment. Something like this: [https://github.com/JuliaFolds/FLoops-data/blob/benchmark-results/2020/09/06/063739/result.md](https://github.com/JuliaFolds/FLoops-data/blob/benchmark-results/2020/09/06/063739/result.md)

I find that it was rather annoying to get a comment with a large text for each push. Getting just a link is much less annoying. It also helps me find the regression by a post-hoc analysis since it stores the result JSON files. (Incidentally, the PR you linked was an example of it.)

---

<div class="post-metadata">

### Author: ![ericphanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericphanson/32/215186_2.png) [@ericphanson](https://discourse.julialang.org/u/ericphanson)
#### Post date: [October 14, 2020, 12:32am UTC](https://discourse.julialang.org/t/ann-shuffle-jl-requesting-feedback/48261/11 "2020-10-14T00:32:36Z")

</div>

Ah, thanks for the clarification! I was surprised the comment was from your account, I had remembered it being from another one. That explains it then 🙂.
