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

Tutorial proposal: Best practices for being an ecosystem package #35

Open
adamgayoso opened this issue Dec 11, 2022 · 3 comments
Open
Labels
new-tutorial Suggestion to add a new tutorial

Comments

@adamgayoso
Copy link
Member

There are often very non-obvious, but simple things that sometimes prevent ecosystem packages from "going mainstream". We should write a tutorial/guide on do's and don't's for building ecosystem packages.

I'm thinking here we can promote our template, but also make recommendations about requirements (don't pin versions, generally don't add unnecessary dependencies, etc etc), and some commentary on APIs.

@ivirshup
Copy link
Member

Just seeing this now, but I'd broadly agree with this.

Related areas of developer docs

During the hackathon I had a good conversation with @emdann around our docs for package development. I think the perspective of coming from R to python was really good to get, since it pointed out many things I take for granted. A lot of the topics covered were more on the more practical side (e.g. what file do dependencies go in, how do you add docs for an argument) vs. abstract (e.g. how do you choose dependencies, how do you design an api). I've included my notes below, but the action items focussed on how the docs for working on a package could be improved.

The feedback was on the template documentation and scanpy developer guide.

I think better docs here also addresses the "never going mainstream" issue, but more on the "if the tests aren't running regularly, they're probably gonna fail" side of things.

During the conversation, I believe the bioconductor developer documentation was spoken highly of.

Some issues spawned from this discussion include:

My notes from the discussion
  • Update how to open a PR to use gh
  • More accesible titles for git stuff (e.g. "forking" - cloning)
  • Mention CI under pull requests
  • What tests are
  • Developer docs for template
    • More information (very visible) on how to turn off optional parts (e.g. pre-commit)
  • Explanation of docstrings/ sphinx
  • Order of docs on the template repo, something more logical
    • Move docs above template/ release
  • Probably move "setting up repo" to something attached to the template
  • Guidelines for tutorials (e.g. make sure data is accesible)
    • "what should documentation look like"
  • Function level API design?
  • CI for template repo
  • Template repo has no docs on pyproject.toml

An idea for organizing/ presenting developer docs

Thinking of how we could have a collection of "docs for developers" and how that would be organized (maybe with Diátaxis):

@ivirshup
Copy link
Member

Aside: While I want to have a conversation about better developer documentation, I'm not sure the scverse tutorials site is the right place for them to be presented.

@emdann
Copy link
Member

emdann commented Jan 24, 2023

The proposed developer docs structure looks great to me. Potentially additions to the "Explanation" section could be

  • How to write good docstrings and type hints
  • Tips for writing tutorials
  • Recommendations for including data in package

Happy to help on this if needed!

@grst grst added the new-tutorial Suggestion to add a new tutorial label Aug 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-tutorial Suggestion to add a new tutorial
Projects
None yet
Development

No branches or pull requests

4 participants