From 7058286862adf64ae3b9c6d3815792c0c3417f58 Mon Sep 17 00:00:00 2001 From: Leah Wasser Date: Wed, 20 Nov 2024 15:21:04 -0700 Subject: [PATCH] fix: cleanup content review and conf.py file --- community/content-development-process.md | 55 +++++++++++++ community/index.md | 5 +- conf.py | 31 ++------ governance/content-development-process.md | 92 ---------------------- governance/index.md | 4 +- images/guidebook-living-document.png | Bin 0 -> 30481 bytes 6 files changed, 67 insertions(+), 120 deletions(-) create mode 100644 community/content-development-process.md delete mode 100644 governance/content-development-process.md create mode 100644 images/guidebook-living-document.png diff --git a/community/content-development-process.md b/community/content-development-process.md new file mode 100644 index 0000000..4617a19 --- /dev/null +++ b/community/content-development-process.md @@ -0,0 +1,55 @@ +# pyOpenSci's Content Development Process + +pyOpenSci develops and maintains several online resources, including: + +* a [Python packaging guidebook](https://www.pyopensci.org/python-package-guide/) that provides +recommendations and best practices for creating and sharing Python code. +* [online lessons](https://www.pyopensci.org/lessons) teach scientists critical open science skills including packaging, [writing cleaner code](https://www.pyopensci.org/lessons/clean-modular-code/intro-clean-code.html#intro-clean-code), [sharing code](https://www.pyopensci.org/lessons/publish-share-code/intro.html) and [collaborating on Github](https://www.pyopensci.org/lessons/github-git/intro.html) and making their work open and [citable](https://www.pyopensci.org/lessons/publish-share-code/cite-code.html). + +A core value of pyOpenSci is making science more inclusive by ensuring our content is accessible and beginner-friendly. This commitment allows more people to participate in science. + +To uphold this value, pyOpenSci has developed a review process to ensure that all of its online content is: + +- **Accurate** +- **Accessible**, and +- **Beginner-friendly**. + +This page overviews that process, which applies to all technical content and lessons created for the pyOpenSci website. + + +:::{figure} /images/guidebook-living-document.png +:alt: Flowchart illustrating the pyOpenSci content review process. The process starts with 'Expert Feedback,' followed by 'Community Review (2 rounds),' then moves to 'Sprints / Bug Bashes,' and concludes with a 'Living Document' represented by a growing vine with leaves and flowers. + +pyOpenSci has a review process that ensures that all the content published online is +technically accurate and accessible to those who are new to the topic. +::: + +## Roles and Responsibilities + +Several "types" of contributors are critical to achieving the pyOpenScis content goals. + +* **Content Authors**: Write early drafts with research to ensure accuracy. Engage with content experts for initial reviews. Content authors are often but not always pyOpenSci staff or a part of the [pyOpenSci core contributor teams](https://github.com/orgs/pyOpenSci/teams). +* **Content Experts**: Provide early feedback on drafts to ensure technical accuracy. This feedback is most often provided online, ideally on GitHub, but sometimes via Slack or Discord. This feedback ensures the initial drafts capture important topics and concepts accurately. +* **Community Reviewers**: Participate in the GitHub pull request review process, + providing feedback within the designated review period. Generally, the Pull Request associated with the new content will be provided as a link to the community in Slack and left open for review for a specific period of time. +* **Moderators**: Oversee the review process, manage conflicts, and ensure that the + final content meets pyOpenSci accessibility and accuracy standards. +* **Decision-Makers**: Facilitate consensus and make final decisions on content approval. Typically, the Executive Director of pyOpenSci makes final decisions when consensus can't be reached. However, more often, the community is able to achieve consensus and merge content. + +### Where reviews happen + +Content reviews most often occur on GitHub through the standard Pull Request review process; however, in some instances raw content is generated first in a platform such as Google Docs or HackMD. + +Review timelines vary but often range between 1-2 weeks for new content. Reviewers are + encouraged to provide feedback on clarity, accuracy, and accessibility. Once a review is complete, the pull request authors document and address all review comments, and the pull request is merged. + +When possible, pyOpenSci aims for a rapid iteration of content where we merge more quickly, pilot the materials in online events and make updates based on feedback rather than long iterative review processes around a single pull request. + +In some cases, we will have multiple rounds of review for individual content sections. + + +:::{admonition} Conflicts of interest around tools + +If we are teaching new tools, it is important that content participants in the review process disclose any potential + conflicts of interest, including tools that they actively maintain, contribute to or have authored. +::: diff --git a/community/index.md b/community/index.md index 41b180b..0752913 100644 --- a/community/index.md +++ b/community/index.md @@ -13,7 +13,7 @@ scientific Python community. :::{toctree} :maxdepth: 2 -:caption: Social Media +:caption: Community Platforms & Channels Social Media Slack @@ -34,8 +34,9 @@ GitHub permissions :::{toctree} :maxdepth: 2 -:caption: pyOpenSci Events +:caption: Events & Content Development Events pyOpenSci Sprints +Content Development ::: diff --git a/conf.py b/conf.py index fe4e4c4..efc56cd 100644 --- a/conf.py +++ b/conf.py @@ -1,19 +1,5 @@ # Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - # -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -# import os -# import sys -# sys.path.insert(0, os.path.abspath('.')) - from datetime import datetime import subprocess @@ -21,7 +7,6 @@ organization_name = "pyOpenSci" # -- Project information ----------------------------------------------------- - project = "pyOpenSci Handbook" copyright = f"{current_year}, {organization_name}" author = "pyOpenSci" @@ -107,7 +92,7 @@ "navigation_depth": 3, "show_toc_level": 1, # "navbar_align": "left", # [left, content, right] For testing that the navbar items align properly - "github_url": "https://github.com/pyopensci/governance", + "github_url": "https://github.com/pyopensci/handbook", "footer_start": ["copyright"], "footer_end": [], } @@ -118,14 +103,14 @@ html_context = { "github_user": "pyopensci", - "github_repo": "governance", + "github_repo": "handbook", "github_version": "main", } # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] -# List of patterns, relative to source directory, that match files and +# List of patterns relative to source directory that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = [ @@ -139,7 +124,7 @@ ] # For sitemap generation -html_baseurl = "https://www.pyopensci.org/governance/" +html_baseurl = "https://www.pyopensci.org/handbook/" sitemap_url_scheme = "{link}" # -- Options for HTML output ------------------------------------------------- @@ -149,13 +134,13 @@ html_js_files = ["matomo.js"] -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". +# Add paths containing custom static files (such as style sheets) here, +# relative to this directory. They are copied after the built-in static files, +# so a file named "default.css" will overwrite the built-in "default.css". html_static_path = ["_static"] # Social cards -ogp_site_url = "https://www.pyopensci.org/governance/" +ogp_site_url = "https://www.pyopensci.org/handbook/" ogp_social_cards = { "line_color": "#6D597A", "image": "_static/logo-dark-mode.png", diff --git a/governance/content-development-process.md b/governance/content-development-process.md deleted file mode 100644 index 2ef9e02..0000000 --- a/governance/content-development-process.md +++ /dev/null @@ -1,92 +0,0 @@ -# Review process: Python Packaging Guidebook - -pyOpenSci maintainers a [Python packaging guidebook](https://www.pyopensci.org/python-package-guide/) that provides -recommendations and best practices for creating and sharing Python code. -Open source software and shared code are critical pieces of open science and of making science more collaborative. - -While pyOpenSci seeks to support the broader scientific community, it is -important that our content is also accessible and beginner-friendly. Accessible content allows more people to participate in science and is core to our goals of creating diverse community that is empowered in the open science ecosystem. - -pyOpenSci has a review process that ensures all of it's online content is: - -* accurate -* accessible and -* beginner-friendly. - -This page overviews that process. - -## Scope -This governance applies to all technical content created for the Python Packaging Guidebook and associated tutorials. - -## Roles and Responsibilities - -There are several "types" of contributors that are critical to achieving the guidebook's above-stated goals. - -- **Content Authors**: Write early drafts with research to ensure accuracy. Engage with content experts for initial reviews. -- **Content Experts**: Provide early feedback on drafts to ensure technical accuracy. This feedback may be in person, or online via direct message / group chats. This feedback is critical to ensuring the initial drafts capture important topics and concepts. -- **Community Reviewers**: Participate in the GitHub pull request review process, - providing feedback within the designated review period. -- **Moderators**: Oversee the review process, manage conflicts, and ensure that the - final content meets user needs and standards of accessibility. -- **Decision-Makers**: Facilitate consensus and make final decisions on content approval. Typically the Executive Director of pyOpenSci makes final decisions when consensus can't be made. But more often the community is able to achieve consensus. - -## Review Process - -### Early Draft Creation -- **Research and Writing**: Authors conduct thorough research and write early drafts. - Initial drafts should aim for technical accuracy and clarity. -- **Early Expert Review**: Drafts are reviewed by content experts for accuracy and - technical soundness. Feedback is incorporated to refine the content. - -### GitHub Pull Request and Community Review -- **Pull Request Submission**: A polished version of the draft is submitted as a pull - request on GitHub. -- **Review Timeline**: The community review period is set for 1-2 weeks. Reviewers are - encouraged to provide feedback on clarity, accuracy, and accessibility. -- **Feedback Collection**: All review comments are documented and addressed by the - authors. - -### Second Review Round (If Necessary) -- **Revision**: If feedback is extensive, authors revise the document based on reviewer - comments. -- **Second Review**: A second round of community review is held for an additional 1-2 - weeks. - -### Finalization and Merging -- **Consensus Building**: Moderators facilitate discussions to reach general consensus - among reviewers. -- **Conflict Resolution**: If disagreements arise, moderators mediate to resolve - conflicts, ensuring the content meets user needs. -- **Content Merging**: Once consensus is achieved, the content is merged into the - guidebook. - -## 4. Conflict of Interest Policy -- **Disclosure**: All participants in the review process must disclose any potential - conflicts of interest, including promotion of tools they work on, authored, or - maintain. -- **Management**: Conflicts of interest are managed to maintain the integrity and - fairness of the review process. - -## 5. Documentation and Transparency -- **Record Keeping**: All reviews, feedback, and revisions are documented and archived. -- **Transparency**: Information about the review process and decisions is made available - to the community. - -## 6. Appeals Process -- **Grounds for Appeal**: Appeals can be made based on procedural errors or overlooked - critical feedback. -- **Appeal Procedure**: Appeals must be submitted in writing within two weeks of the - decision. The appeal will be reviewed by a separate panel of reviewers. - -## 7. Review and Revision of Governance -- **Periodic Review**: The governance document is reviewed annually to ensure it remains - effective and relevant. -- **Feedback Mechanism**: A system for collecting feedback on the review process from - participants is established to continuously improve the process. - -## Conclusion -This governance document ensures a structured, transparent, and fair review process for -the Python Packaging Guidebook, emphasizing accuracy, accessibility, and user-centered -content development. By following these guidelines, we aim to produce high-quality, -beginner-friendly, and technically accurate documentation that serves the needs of our -users. diff --git a/governance/index.md b/governance/index.md index 9cc6fc6..74141b3 100644 --- a/governance/index.md +++ b/governance/index.md @@ -1,6 +1,7 @@ # Governance, Structure & Values ## About + pyOpenSci is a fiscally sponsored nonprofit organization whose mission is to build diverse, supportive community around the free and open Python tools that drive open science. @@ -11,7 +12,6 @@ pyOpenSci supports open science through * **Mentorship:** We will build out a community program where diverse community members are mentored in skills needed to contribute to open source software, which in turn will propel their open science skills forward. * **Training:** pyOpenSci will provide training in skills needed to contribute to open source software. - ```{toctree} :hidden: :caption: Organization Structure @@ -19,11 +19,9 @@ pyOpenSci supports open science through Home mission-values structure -content-development-process Code of Conduct <../CODE_OF_CONDUCT.md> ``` - ```{toctree} :hidden: :caption: Reference Information diff --git a/images/guidebook-living-document.png b/images/guidebook-living-document.png new file mode 100644 index 0000000000000000000000000000000000000000..799a27fd75fcf219a5235d4653dcd1681dbcef75 GIT binary patch literal 30481 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 literal 0 HcmV?d00001