owned this note
owned this note
Published
Linked with GitHub
# Big image sprint (SciPy Japan 2020)
Juan Nunez-Iglesias [@jni](https://github.com/jni)
Genevieve Buckley [@GenevieveBuckley](https://github.com/GenevieveBuckley)
## Sprinting FAQs
Welcome to the sprints!
These are copied verbatim from the conference's [page on sprints](https://www.scipy2020.scipy.org/sprints).
### What will I do as an attendee?
There are a variety of ways to contribute during the sprints session including testing code, fixing bugs, adding new features, and improving documentation. You could also contribute to an entirely brand new project that our ecosystem is missing. One of the best parts about the sprints is that you might also have the opportunity to work with authors and core contributors of your favorite open source packages, as well as, the opportunity to work alongside other developers who are just as excited as you are to make the SciPy community even better.
### What are the benefits of attending a sprint?
- Make open source Python better!
- Code alongside package authors/contributors, while learning from them.
- Become a power user of a core package by gaining a deeper understanding of its inner workings.
- Improve your Github profile
- Get to know other SciPy community members
### Communication
More to come, watch this space!
### Collaboration
We highly recommend that you download [Visual Studio Code with Live Share](https://visualstudio.microsoft.com/services/live-share/), which is like Google Docs for writing code. If you've never tried it, we encourage you to read through the documentation on that page.
When you team up with someone during the sprint, you can send them (over Zulip) a link to your VSCode session, which they can join on their end. Then, all invitees can edit the same code simultaneously.
**We strongly encourage attendees to pair up to tackle issues together!**
### Code of Conduct
While collaborating, please keep in mind the code of conduct for the conference, and the projects you are working with. Above all, be respectful.
* [SciPy Japan conference code of conduct](https://www.scipyjapan.scipy.org/code-of-conduct)
* [Dask community code of conduct](https://github.com/dask/governance/blob/master/code-of-conduct.md)
* [napari community code of conduct](https://napari.org/docs/developers/CODE_OF_CONDUCT.html).
* [scikit-image community code of conduct](https://github.com/scikit-image/scikit-image/blob/master/doc/source/conduct/code_of_conduct.md)
## What to work on?
You can work on whatever you like! Here are some ideas to get you started...
Projects:
* [dask-image](https://github.com/dask/dask-image): Distributed image processing
* [napari](https://github.com/napari/napari): Multi-dimensional image viewer for python
* [scikit-image](https://github.com/scikit-image/scikit-image): Image processing in Python
* [skan](https://github.com/jni/skan): Python module to analyse skeleton (thin object) images
* [llc-tools](https://github.com/jni/llc-tools): Decorators to make it easier to write SciPy LowLevelCallables
# dask-image
Repository: https://github.com/dask/dask-image
Contributing guide: http://image.dask.org/en/latest/contributing.html
Sprint ideas:
- [ ] FEATURE: add deconvolution implementation
* https://github.com/dask/dask-blog/pull/77
* https://github.com/dask/dask-image/issues/149
- [ ] FEATURE: pathlib input for imread functions **Koyama-san plans to work on this next**
* https://github.com/dask/dask-image/issues/139
- [x] MAINTENANCE: rename `sum` to `sum_labels` and add a deprecation warning
* https://github.com/dask/dask-image/issues/123
- [ ] TUTORIALS: Turn example pipeline from Genevieve's 2020 talks into a PR for the dask-examples repository.
* https://github.com/GenevieveBuckley/dask-image-talk-2020
* https://github.com/dask/dask-examples
- [ ] TUTORIALS: Clarify dask best practices in napari tutorials.
- [ ] Update [applications/dask.md](https://github.com/napari/tutorials/blob/master/applications/dask.md) to add a similar note like this https://github.com/dask/dask-blog/pull/76
- [ ] Simplify dask in example #1: https://github.com/napari/napari/pull/1610
- [ ] Simplify dask in example #2: https://github.com/napari/tutorials/pull/64
- [ ] Update dask array creation example using map_blocks as best practices ([see comment](https://github.com/dask/dask/issues/5913#issuecomment-714536079)): https://docs.dask.org/en/latest/array-creation.html#using-dask-delayed
- [ ] Update dask array stack/concatenate/block guide to talk about map_blocks best practices ([see comment](https://github.com/dask/dask/issues/5913#issuecomment-714536079)): https://docs.dask.org/en/latest/array-stack.html
- [x] DOCUMENTATION: Add a page to the docs with links to youtube talks and slides from previous presentations.
* https://github.com/GenevieveBuckley/dask-image-talk-2020
* https://github.com/jakirkham/scipy2019
- [x] DOCUMENTATION: Document how to create testing environments locally (Kuya will start workning on this) Yay, thank you Kuya!
- [ ] TESTS: Add cron job with github actions to schedule test runs monthly/fortnightly. **This is being worked on here: https://github.com/dask/dask-image/pull/173**
* Here's an example of someone adding a cron job with github actions to another repository: https://github.com/koaning/scikit-lego/pull/378
- [ ] TESTS: Make a test environment with unpinned dependencies (or --pre dependencies), so we have an early warning if new releases will break our code.
- [ ] TESTS: Run the test suite as part of our github actions PyPI release process
* https://github.com/dask/dask-image/issues/147
- [ ] PLUGIN: Make a napari plugin that can handle bioformats image data (use pims, model on dask-image imread)
- [ ] MAINTENANCE: code style improvements suggested by @jni (move code out of __init__.py, use standard import abbreviations, etc)
* https://github.com/dask/dask-image/issues/101
- [ ] PERFORMANCE: Profile code with `da.stack`, `da.concatenate`, and `da.map_blocks` to see if we can get speed improvements.
* Some initial work has been done here, but still lots more to do! https://github.com/dask/dask-image/issues/161
# napari
Repository: https://github.com/napari/napari
Contributing guide: https://napari.org/docs/dev/developers/CONTRIBUTING.html
### What to work on
The big question! When joining a new project, it can be hard to know *what* to work on, let alone *how* to work on it! The first thing to keep in mind is *not to panic!* The goal of the sprint is not to complete a shiny new feature. Rather, it is to get you more familiar with the library — both with how to use it and with its internals — so that you will be more confident contributing to it in the future.
So, with that in mind, how to contribute to napari?
**However you want!**
If you have used napari before, perhaps you've encountered some quirks you didn't like, or wished for a specific feature that was missing. In some cases, it might be a minor fix away! Now is the time to ask the developers where the changes might need to happen!
**Issues**
This is the most obvious one. napari has a bunch of existing, known issues, found at https://github.com/napari/napari/issues. Some of these are tagged as ["good first issue"](https://github.com/napari/napari/labels/good%20first%20issue) or ["sprint"](https://github.com/napari/napari/labels/sprint). If you come to this sprint without a particular agenda, you can look to those lists for some inspiration!
**Tutorials**
If you are only getting started with napari, we have [tutorials](https://napari.org/tutorials/) for how to use it. These are written at https://github.com/napari/tutorials. You could go through them, note down parts that weren't clear or that you think could be improved, and submit those improvements.
If we don't have a tutorial to do what *you* want to do with napari, now is a great time to try it (with the core developers available to answer your questions) and write that tutorial to help other users like you!
<!-- Suggested tutorials...: -->
**Plugins**
Do you have a complicated Python script to load your data into napari? You can turn it into a plugin by following [this guide](https://napari.org/docs/plugins/for_plugin_developers.html). Once that's done, you can do `pip install napari-my-favorite-file-format`, then drag and drop those files into napari to view them.
Some examples of plugins that have already been requested:
- [zarr groups](https://github.com/napari/napari/issues/1406)
- [CATMAID](https://github.com/napari/napari/issues/1177)
- [BigDataViewer format](https://github.com/napari/napari/issues/1308)
- [TiffFile](https://github.com/napari/napari/issues/1384)
- [imaris](https://github.com/napari/napari/issues/379#issuecomment-520153841)
- nifty
- geoTiff
- ... Your format here!
**Documentation and website design**
Currently, the napari documentation only exists for the development build of napari. We would love to have versioned documentation, so that users can find the documentation for their currently installed version.
Additionally, the website has sections built from different parts (the home page, the docs, and the tutorials), giving a fragmented look. If you have web design skills, we would love to come up with a unified design for the whole thing!
# scikit-image
**Repository:** https://github.com/scikit-image/scikit-image
**Contributing guide:** https://scikit-image.org/docs/dev/contribute.html
**Sprint ideas:** You might like to pick something from [this list of "good first issues"](https://github.com/scikit-image/scikit-image/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). Some ideas:
- [ ] [Add definitions to glossary for disk and perimeter](https://github.com/scikit-image/scikit-image/issues/4455)
- [ ] [Why is morphology.convex_hull_object 2D only?](https://github.com/scikit-image/scikit-image/issues/4865)
- [ ] [More default values for parameters](https://github.com/scikit-image/scikit-image/issues/4868)
# skan
Repository: https://github.com/jni/skan
Contributing guide:
Sprint ideas: Talk to Juan (@jni) for ideas
# llc-tools
Repository: https://github.com/jni/skan
Contributing guide:
Sprint ideas: Talk to Juan (@jni) for ideas