Skip to content

Proposed reorganization for learn.scientific-python.org #260

@drammock

Description

@drammock

The homepage (https://learn.scientific-python.org/) is currently just 4 glorified buttons. For now I think we should keep that structure (though reduced to 3, see below). In the following list, the top-level bullets give the proposed title and description for each "button", and sub-bullets explain what content it will link out to.

  • Lectures: In-depth narrative Jupyter notebooks that teach fundamental concepts for some of the ecosystem's core packages (NumPy, SciPy, matplotlib, scikit-learn, and scikit-image).
  • Development Guide for Research Code: A collection of "good enough" practices for writing and managing research code, so that it is reusable by colleagues (or your future self).
  • Maintainer Onboarding and Reference Materials: Tools and best practices for maintainers of scientific software projects.
    • Landing page will be https://learn.scientific-python.org/development/guides/. Landing page will (continue to) link out to cookiecutter & repo-review.
    • Bulk of the content will be the current "topical guides", with (over time) addition of the following new content --- perhaps on new pages, perhaps augmenting existing pages (this list is open for discussion):
      • tracebacks, stack levels, debuggers
      • CIs: logs, artifacts, caches
      • CIs: coverage strategies (OSes, dependency versions, nightlies)
      • testing: terminology (unit, smoke, integration)
      • testing: more on fixtures (esp. scope) and marks
      • testing: common flags (-k, --pdb, --lf, ...)
      • testing: helpers for downstream libs (np.testing, pd.testing, etc)
      • dependencies: spec0, lockfiles, when (not) to pin
      • packaging: pypi vs conda-forge, grayskull, trusted publisher action
      • git: rebasing, squashing, cherry-picking, merge conflicts, force-pushes, bisect
      • docs/websites: overview of the landscape (docutils, sphinx, myst, rST, markdown, themes, sphinx_gallery, nbsphinx, jupytext, mkdocs, hugo, etc)
      • accessibility: "accessible docs" page and "accessible notebooks" page
      • translations: overview of landscape and tooling
      • code review: possibly just a page with short, big-picture guidance and a link out to https://intersect-training.org/Code-Review/best-practices.html
    • Additional content: the current developer guide "principles" and "patterns" sections should (IMO) get incorporated into the topical guides. They're relevant to the same audience, and not different enough in form to justify living in a different section of their own.
  • Documentation Guide goes away (incorporated into onboarding section, above).
  • Contributor Guide goes away. Still TBD if/where the content will migrate to.

Below the 3 main "buttons" I think it makes sense to add a short paragraph about what resources we aren't trying to provide / what use cases we aren't trying to serve. For example:

These resources are aimed at scientists writing their own software (in Python), and maintainers of large scientific software packages. If you're new to Python, see these resources (official py tutorial, software carpentry). If you've done some Python coding before and are wondering how to get involved with a Scientific Python project: the process can vary, so check the project's website or repository to see if they have a Q&A forum, community calls, office hours, or other mechanism for welcoming new contributors.

Feedback/comments welcome on all aspects of this proposal. This will probably end up being a series of PRs rather than one big move; once the plan has stabilized I'll propose a sequence of steps.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions