community
community copied to clipboard
Create a Dask project template
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.
A documentation page explaining the decisions made in the cookie cutter may also be helpful. Mainly to explain assumptions and reasoning.
We could take things from he developer section already in dask.org
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.
cc @jakirkham , who I think may care about this topic
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?
No strong thoughts from me. I think that @jakirkham may have something somewhere.
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.
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.
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 😄).

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.
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 😆.
I could own it if people think it'd be useful, but I don't want to build another one just for fun :)
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.
I have the same impulses, so probably best to back away...
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
Nice! Thanks for sharing @jsignell