community icon indicating copy to clipboard operation
community copied to clipboard

Create a Dask project template

Open mrocklin opened this issue 5 years ago • 16 comments

We seem to have a standard way of creating projects. Should we create a cookie-cutter project template? This would be both for us, and also for others in the broader community that want to make a Dask project in a standard form.

mrocklin avatar Nov 29 '19 18:11 mrocklin

A documentation page explaining the decisions made in the cookie cutter may also be helpful. Mainly to explain assumptions and reasoning.

jacobtomlinson avatar Dec 02 '19 09:12 jacobtomlinson

We could take things from he developer section already in dask.org

sodre avatar Dec 02 '19 13:12 sodre

If we don't want to start from scratch, the conda cookie cutter here might be a good starting point https://github.com/conda/cookiecutter-conda-python

scratch that... it hasn't been updated in a while time.

sodre avatar Dec 03 '19 08:12 sodre

cc @jakirkham , who I think may care about this topic

mrocklin avatar Dec 03 '19 15:12 mrocklin

Just came across this issue when getting started on dask-geopandas https://github.com/dask/dask/issues/5438. Would it be helpful for me to create a cookie-cutter, and use dask-geopandas as the first cookie?

jsignell avatar Feb 12 '20 20:02 jsignell

No strong thoughts from me. I think that @jakirkham may have something somewhere.

mrocklin avatar Feb 12 '20 20:02 mrocklin

Not for Dask specifically, no.

There's the one I used for dask-image, but it hasn't been maintained and probably aligns to the current expectations poorly. Probably easier to start from scratch.

jakirkham avatar Feb 12 '20 21:02 jakirkham

Is there a particular repo that would be a good example? I'm not sure if a cookie-cutter is a good idea since the frequency of new dask repos being created seems to be on the week/month scale so it would be more of a maintenance burden than it is worth.

jsignell avatar Feb 12 '20 21:02 jsignell

On a slightly related note...

I have a branch of the Dask docs where I started trying to lay out all the projects in terms of their setup. Showing things like CI, releases, versioning, formatting, etc using badges.

This was mainly because I'd like to try and standardise the CI setup and release procedure and seeing everything in one place would be helpful.

However as @jsignell points out these things change slowly and it would be easy for things to get out of date and stale, so I'm tempted to abandon this. (Also I struggled to get the badges to not be squashed 😄).

image

jacobtomlinson avatar Feb 13 '20 10:02 jacobtomlinson

Something like this maybe: https://status.holoviz.org/ (takes a while to load). I originally forked that status dashboard from astropy. I think seeing all the projects in one place is tempting, but I'm not super sure how useful it is. Plus someone needs to own it. Ideally this would be something that github just provides at the org level.

jsignell avatar Feb 13 '20 16:02 jsignell

Yeah that page was the inspiration!

Yeah I agree with all of that. I would find it super useful assuming it was 100% up to date, and I'm sure it would get out of quickly, and I don't really want to own it 😆.

jacobtomlinson avatar Feb 13 '20 16:02 jacobtomlinson

I could own it if people think it'd be useful, but I don't want to build another one just for fun :)

jsignell avatar Feb 13 '20 16:02 jsignell

I guess my comment about not wanting to own it was because it feels like a neverending task to keep updated. I wouldn't wish that on anyone else either.

My instinct is to try and automate it somehow, perhaps scrape the badges from all the READMEs or try to detect various config files, but that would probably be an even more annoying thing to maintain. I often have to suppress the urge to build flaky automations 🤣.

As you say it would be better for GitHub to just do it.

jacobtomlinson avatar Feb 13 '20 17:02 jacobtomlinson

I have the same impulses, so probably best to back away...

jsignell avatar Feb 13 '20 17:02 jsignell

In case people want a minimal project to copy, I took lots of stuff from dask and dask-gateway and ended up with this: https://github.com/jsignell/dask-geopandas/tree/7a49aefb44dda954494feb902c9e9378be7372cd

jsignell avatar Feb 13 '20 21:02 jsignell

Nice! Thanks for sharing @jsignell

jrbourbeau avatar Feb 13 '20 21:02 jrbourbeau