Hi Yash, and thanks for writing!

To be honest, I have not yet found a single resource that I was happy with for developing packages. Maybe I should make one.

To get you started:

1) write documentation. The more the better. You uncover a lot of quirks in your API when you write docs. Usually we write an API in a stream-of-consciousness, “ok I’d like a function here” mode. When writing documentation, effectively telling others how to use our library, we do some editing. For writing documentation, this is my go-to source: https://www.divio.com/blog/documentation/. Initially I only wrote reference materials for skan (docstrings). The paper reviewers rightly pointed out that how-to and explanation materials were also needed, and the API evolved a lot when I wrote those. I also highly recommend doctr (https://drdoctr.github.io) and nb2plots (https://github.com/matthew-brett/nb2plots). The latter lets you integrate jupyter notebooks into your sphinx (generated) documentation.

2) Make a setup.py. For these I always just find a model. Skan’s should suit most people.

3) Finally, put your project up on PyPI. The best guide I know of for this is the “official” one: https://packaging.python.org/tutorials/packaging-projects/

4) For good measure, you can put your package on conda-forge. They have an excellent walk-through here: https://conda-forge.org/#add_recipe

I hope this helps! Feel free to announce your package on this list when it’s out there! =)

Juan.

On 16 Mar 2019, at 4:51 pm, Yash Sharma <yashrsharma44@gmail.com> wrote:

Hey Juan,
I found this thread quite interesting, and somewhat relevant. I was in the process of developing some framework(or rather a package) for GANs, and was wondering about the design strategy. Being a newbie developer, I found the intent of making a package really exciting.
I was thinking if you could share some pointers regarding how did you approach in designing your package (https://jni.github.io/skan/), (btw it was very well designed). Being a naive in development of packages, could you provide me with some resources/pointers towards appropriate approach of making a package?
_______________________________________________
scikit-image mailing list -- scikit-image@python.org
To unsubscribe send an email to scikit-image-leave@python.org