Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tidier.jl roadmap #81

Open
16 of 20 tasks
kdpsingh opened this issue Apr 1, 2023 · 34 comments
Open
16 of 20 tasks

Tidier.jl roadmap #81

kdpsingh opened this issue Apr 1, 2023 · 34 comments

Comments

@kdpsingh
Copy link
Member

kdpsingh commented Apr 1, 2023

I thought it would be useful to have a pinned issue that summarizes which function/macros we are working on building out, and which tidyverse (or related) package they comes from. This doesn’t represent the entire set of functions we need to capture but is intended to give a sense of direction for this project.

Note one key difference in function names below between Tidier.jl and tidyverse: Tidier.jl functions relating to data types are named after the Julia types and not after R types. This is because the data types aren't consistent across languages, and Julia allows for more granularity than R. For example, we plan to use as_string() in Tidier.jl rather than as_character() because strings are collections of characters in Julia.

dplyr

tidylog

forcats

We are using the categorical type from CategoricalArrays.jl, so functions will be prefixed with cat_* instead of fct_*.

  • categorical and as_categorical
  • cat_rev
  • cat_reorder
  • cat_infreq
  • cat_relevel
  • cat_lump

ggplot2

  • Lots to handle, will do initial implementation using AlgebraOfGraphics.jl - @kdpsingh

lubridate

  • support for mdy, dmy, and ymd functions, along with counterparts that support *_hms.

Developer resources

  • Put together style guide for macros in Tidier.jl
  • Develop contributor guide and code of conduct
  • Adopt JuliaFormatter style for this package, keeping in mind tidyverse style guide conventions

Strategic decisions to revisit

  • Should we spin this package off into its own org?
  • Should we convert Tidier.jl into a meta-package that re-exports underlying packages TidierData.jl and TidierPlots.jl? This is something we may want to consider if other packages start to depend on Tidier.jl. Once AlgebraOfGraphics and CairoMakie are included as dependencies, this package will get quite hefty.
@kdpsingh kdpsingh pinned this issue Apr 1, 2023
@pdimens
Copy link
Contributor

pdimens commented Apr 1, 2023

The AOG/CairoMakie deps will be a very appreciable increase in TTFX. I think it makes sense to follow the metapackage format. A separate org would be useful for organization and democratization, which would have a lot of value to the growing number of contributors.

I like the idea of Tidier.jl reexporting TidyData.jl and TidyPlots.jl (and whatever else). Notably, it makes more sense to me, linguistically, for the sub-packages to be Tidy_____.jl and not Tidier____.jl. My rationale is that tidydata and tidyplots would make your workflow tidier. And yes, I'd offer to make the logos for those ☺️

@kdpsingh
Copy link
Member Author

kdpsingh commented Apr 1, 2023

Thanks @pdimens. My rationale for TidierData instead of TidyData was that if we set up a Tidier org, then it makes more sense to me for the connected packages to have a Tidier prefix.

I was curious to see how Julia 1.9 will impact TTFX for plotting. I know including plotting packages will increase install time by quite a bit, but I'm hopeful that TTFX may be okay with Julia 1.9 since I think Makie uses SnoopPrecompile.

And yes, absolutely would love your magic touch on logos 🤩!

@kdpsingh
Copy link
Member Author

kdpsingh commented Apr 1, 2023

As a side note, the name "Tidier" is already taken as a GitHub organization. Considering "TidierOrg" as an alternative or "TidierJulia". Or may reach out to the current "Tidier" org to see if they are willing to give up the name.

@ViralBShah
Copy link

Just a note - Usually Julia orgs on github have Julia as the prefix. Not that you have to do that too, but JuliaTidier sounds better to my ear than TidierJulia.

@kdpsingh
Copy link
Member Author

kdpsingh commented Apr 2, 2023

Thanks @ViralBShah. Appreciate the note! I was only thinking TidierJulia bc "tidier" is an adjective (as compared to JuliaData or JuliaPlots).

Am leaning towards just Tidier (if I can get permission from existing owner) or TidierOrg (similar to MakieOrg).

If this repo is transferred to an org, is there anything special I need to do when I register it?

No urgency and happy to cross that bridge when we get there.

@ViralBShah
Copy link

Github will forward the old URL - but we should change the URL in the General registry after the transition.

@pdimens
Copy link
Contributor

pdimens commented Jul 31, 2023

@kdpsingh I should have time this week to draft up some icons for the new packages (Dates, Cats, Strings). The big question is, would you like the background color of the icons to follow the same blue, or are you interested in different colors?

@kdpsingh
Copy link
Member Author

Thanks @pdimens! My thinking was that since TidierPlots already has the same shade of blue, we should just keep the same blue for all the logos so that they are instantly recognizable as being part of Tidier. I'm open to different colors as well. What do you think?

Also, 2 other things would be really helpful if you have the bandwidth.

  1. Can we create a new TidierData.jl logo that is identical to the current Tidier.jl logo except with the text reading as TidierData.jl?

  2. Since Tidier.jl will be transformed into a meta-package that will include plotting, we can add scatterplot points to the Tidier.jl logo so that it combines data analysis and plotting? (Kind of like the TidierOrg logo)

Appreciate your creativity and time, and totally open to your ideas!

@pdimens
Copy link
Contributor

pdimens commented Jul 31, 2023

  1. Not a problem to update tidier/data.
  2. I can keep the blue, or I can retroactively recolor all the constituent packages and keep the TidierOrg as blue. I'll first stick to the blue and bc I agree it's something of a trademark.

@kdpsingh
Copy link
Member Author

kdpsingh commented Jul 31, 2023

Feel free to make it colorful if you'd like! As long as the main Tidier.jl one stays as the same blue.

It may be cool if we end up making stickers to have different-colored ones. Totally up to you!

@pdimens
Copy link
Contributor

pdimens commented Jul 31, 2023

Some drafts I slapped together today
image
image
image
image

@kdpsingh
Copy link
Member Author

Love it! Only suggestion would be to make the background colors more different from one another so that it produces a more rainbow-like effect. Right now the pink and purple are kind of close to one another, as are the two greenish ones.

@kdpsingh
Copy link
Member Author

Also tagging @drizk1 to take a look.

@drizk1
Copy link
Member

drizk1 commented Aug 1, 2023

@pdimens these logos look great thank you! I do agree with Karandeep that a little more contrast (perhaps shifting to a navy for one ?) between them might be nice to help them really pop when they're in print one day. Thanks for the great work tho!

@kdpsingh
Copy link
Member Author

kdpsingh commented Aug 1, 2023

Also, last thought: feel free to change the color on the TidierPlots logo too. The only one that should remain the same color is Tidier.jl. Thank you so, so much! So excited.

@pdimens
Copy link
Contributor

pdimens commented Aug 3, 2023

How about these:
image
image
image
image
image

@kdpsingh
Copy link
Member Author

kdpsingh commented Aug 3, 2023

Looks great to me! Only thing I'd consider is making TidierPlots background darker so that the white lettering is more readable. The grey background is actually kind of funny since it's the default background theme in ggplot.

@drizk1 and @rdboyes what do you think? If everyone agrees, feel free to tweak and share files with me or add to PRs.

@kdpsingh
Copy link
Member Author

kdpsingh commented Aug 3, 2023

Looking at it again, I can definitely read TidierPlots so free to leave as-is or just darken the outer portion slightly. I trust your judgment!

@pdimens
Copy link
Contributor

pdimens commented Aug 3, 2023

The grey background was a whimsical nod to ggplots default theme, yeah. Haha. I'll make it a bit darker

@drizk1
Copy link
Member

drizk1 commented Aug 3, 2023

These look great! The softness of the colors is really nice.

@pdimens
Copy link
Contributor

pdimens commented Aug 3, 2023

Here are 3 variants. My favorite is number 2

option 1

image

option 2

image

option 3

image

@rdboyes
Copy link
Member

rdboyes commented Aug 3, 2023

I like number 1, but they all look good!

@kdpsingh
Copy link
Member Author

kdpsingh commented Aug 3, 2023

I like number 3 but I'm also good with number 2. @rdboyes, thoughts?

@pdimens
Copy link
Contributor

pdimens commented Aug 3, 2023

Lol fight amongst yourselves.

@kdpsingh
Copy link
Member Author

kdpsingh commented Aug 3, 2023

This package is @rdboyes's baby so I would go with number 1.

@pdimens
Copy link
Contributor

pdimens commented Aug 3, 2023

aiight. PRs incoming

@kdpsingh
Copy link
Member Author

kdpsingh commented Aug 3, 2023

Yay, awesome. Question: Can we also update the Tidier.jl logo to include plotted dots (to indicate that it’s a meta-package that will enable data analysis and plotting?) It’s essentially going to re-export all of the other Tidier* packages.

@pdimens
Copy link
Contributor

pdimens commented Aug 4, 2023

@kdpsingh like dis?
image

@kdpsingh
Copy link
Member Author

kdpsingh commented Aug 4, 2023

Purrrrerfect (as the TidierCats would say). Let's do it!

@jdiaz97
Copy link

jdiaz97 commented Aug 17, 2023

Not part of the tidyverse, but the '"rio" package from R is quite nice.
Does Julia have something like that? if not, do you guys think an implementation would be good?

@kdpsingh
Copy link
Member Author

It does!

FileIO already handles multiple different formats with a single function for reading and another for writing.

https://juliaio.github.io/FileIO.jl/stable/

@kdpsingh
Copy link
Member Author

Here are all the supported formats: https://juliaio.github.io/FileIO.jl/stable/registry/#Registry-table

@frankiethull
Copy link

Hi!

I am building with some tables in Julia and was thinking about you all... Is a TidierTables.jl part of the roadmap? Was thinking along the lines of of the gt package in R.

@kdpsingh
Copy link
Member Author

There's a package PrettyTables.jl that is currently undergoing a remake inspired by the {gt} R package: https://discourse.julialang.org/t/current-state-and-the-future-of-prettytables-jl/118455

I would check in on that package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants