diff --git a/_static/pyos.css b/_static/pyos.css index 1ace13d5..41f9b319 100644 --- a/_static/pyos.css +++ b/_static/pyos.css @@ -4,6 +4,12 @@ div.header__block { color: #222; } +/* not working and not sure why */ +.caption-text { + +} + + /* .announcement div { background-color: #ccc; diff --git a/about-peer-review/aims-and-scope.md b/about-peer-review/aims-and-scope.md index 4b95b37b..b93975a0 100644 --- a/about-peer-review/aims-and-scope.md +++ b/about-peer-review/aims-and-scope.md @@ -24,9 +24,12 @@ package. support open science. ## Is Your Package in Scope For pyOpenSci Review? -pyOpenSci reviews packages within a set of categories define below. -If you are unsure whether your package fits into one of these categories, please -open a [pre-submission inquiry via a GitHub Issue](LINK) to get feedback from + +pyOpenSci only reviews packages that fall within our specified domain and +technical scope listed below. + +If you are unsure whether your package is in scope for review, please +open a [pre-submission inquiry using a GitHub Issue](https://github.com/pyOpenSci/software-review/issues/new?assignees=&labels=0%2Fpresubmission&template=presubmission-inquiry.md&title=) to get feedback from one of our editors. We are happy to look at your package and help you understand whether it is in scope or not. diff --git a/about-peer-review/code-of-conduct.md b/about-peer-review/code-of-conduct.md index b6463473..6e7eafce 100644 --- a/about-peer-review/code-of-conduct.md +++ b/about-peer-review/code-of-conduct.md @@ -1,4 +1,12 @@ # Community Code of Conduct + +We keep our Code of Conduct in our governance documentation. [Click here to +go there now.](https://www.pyopensci.org/governance/code-of-conduct) + + +## NOTE: we are in the process of moving this file to our governance documentation and making significant changes to our code of conduct. + + - We are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, disability, ethnicity, religion, or similar personal characteristic. - Please avoid using openly sexual nicknames or other nicknames that might detract from a friendly, safe and welcoming environment for all. - Please be kind and courteous. There’s no need to be mean or rude. diff --git a/about-peer-review/how-peer-review-works.md b/about-peer-review/how-peer-review-works.md new file mode 100644 index 00000000..50694cf0 --- /dev/null +++ b/about-peer-review/how-peer-review-works.md @@ -0,0 +1,49 @@ +# How pyOpenSci's open software peer review works + + +## Who submits packages and who runs the reviews + +pyOpenSci's [suite of packages](https://www.pyopensci.org/python-packages/) are +contributed by community members with a great diversity of skills and backgrounds. This diversity +of developer backgrounds enables us to vet and promote a broad ecosystem of +high quality tools +that supports scientists across domains with a suite of different data +types and structures. + +### Who reviews pyOpenSci packages ? + +Our peer review process is run by volunteer members of the Python scientific +community: + +* Editors manage incoming package submissions. Editors also ensure +that package reviews move through the review process efficiently; +* Authors create, submit and improve their package; +* Reviewers, two per submission, examine the software code and user experience. + +Our [governance documentation](https://www.pyopensci.org/governance) clarifies +the various roles that support running our peer review process. + +## Software reviews are contained within [GitHub](https://www.github.com/pyOpenSci) issues + +Our entire peer review process occurs on GitHub in the +[pyOpenSci software-review repository](https://www.github.com/pyopensci/software-review). + +We use GitHub because: + +* It is free to create an account +* Anyone can read the review discussion without an account making the process entirely open +* It facilitates collaboration and supports community around a package +* It facilitates open discussion between reviewers and package maintainers and the pyOpenSci volunteers +* Numerous packages store their code bases on GitHub + +### We use GitHub issue templates and labels to organize the review steps + +* We use GitHub issue templates as submission templates for new reviews and pre-submission review questions. +* We label issues to track every step of the package submission and review progress (e.g. [1/initial-editor-checks, 2/reviewers-needed, 6/pyopensci-approved](https://github.com/pyOpenSci/software-review/labels) + +```{note} +Click [here](https://github.com/ropensci/software-review/issues/24) to read the review thread from an rOpenSci review of the `ropenaq` package. Note that the process is an ongoing conversation until the package is accepted. Two external reviews are important milestones in the review process. +``` + +For more detailed overview of the peer review process, [check out our process +timeline document here.](../software-peer-review-guide/intro.md) diff --git a/about-peer-review/intro.md b/about-peer-review/intro.md index e1096e42..070fac65 100644 --- a/about-peer-review/intro.md +++ b/about-peer-review/intro.md @@ -1,57 +1,63 @@ -# How Peer Review Works +# About the pyOpenSci peer review process ```{tableofcontents} ``` -## Why do we need pyOpenSci peer review? +## What is software peer review? -The open peer review process lead by pyOpenSci address several issues in the scientific Python -ecosystem: +Software peer review refers to a peer-review process that focuses on open source software code, documentation and infrastructure. In pyOpenSci this review includes: -1. [Multiple packages that have overlapping functionality. See this example on `PyPI`](https://pypi.org/search/?q=twitter) -2. Packages that have varying levels of maintenance yet are used by the community to support open science workflows. -3. Packages that are well-maintained and used but then maintenance comes to a halt when the maintainer needs to step down (burn-out is common and understandable). -4. Packages using varying types of packaging and documentation approaches making it more difficult to contribute. -5. Packages that are not documented enough to support: - * Contributions from others - * Directions on how to get started using the package functionality (quick start vignettes or tutorials) -* Packages that are missing OSI licensing and citation information +* Code quality, +* Documentation quality, +* Package usability, +* Test coverage that supports both maintenance of code function. Test coverage also makes it easier for contributors to see how their contributions impacts other parts of the code, +* Evaluation of infrastructure such as continuous integration to run rest suites and check code linters, that supports automated checks on pull requests. This infrastructure supports software quality and reliability. + +## What types of packages does pyOpenSci review? +pyOpenSci reviews higher level software packages that support scientific workflows. -### How is pyOpenSci different from JOSS and other review processes? -pyOpenSci is different from other review processes -out there because: +:::{figure-md} fig-target -1. We specifically review to community accepted python packaging standards -2. We consider accepted packages as vetted and a part of our ecosystem. We recommend those packages to others. If the maintainer needs to step down, we will ensure a new maintainer takes over OR sunset and remove the package from our ecosystem. +Image showing the tiers of software in the python ecosystem starting with Python itself and as you move out packages become more domain specific. In this image packages like xarray and numpy are considered core to scientific python. Packages and distributions like astropy, simpeg and metpy are considered to be domain specific. -The JOSS review process is about publication. There, you will receive a DOI that is cross-ref -enabled. However JOSS will not followup with the maintainer to ensure that the package is maintained over time. +Diagram showing the tiers of software in the python ecosystem starting with Python itself and as you move out packages become more domain specific. In this image packages like xarray and numpy are considered core to scientific python. Packages and distributions like astropy, simpeg and metpy are considered to be domain specific.. pyOpenSci's review +process focuses on domain specific packages rather than core packages as +these packages tend to have more variability in long term maintenance and +package infrastructure and quality compared to established core packages. **Source: ["Jupyter meets earth" project](https://jupytearth.org/jupyter-resources/introduction/ecosystem.html)** +::: + -## Why submit your package to pyOpenSci for review? +Currently, the packages that pyOpenSci reviews also need to fall into the +technical and applied scope of our organization. This scope may expand over time +as the organization grows. -There is a lot to gain from submitting your package to pyOpenSci. -But of course, before you submit, please be sure to read the policies -... to ensure pyOpenSci is the right fit for you. +## Why does the scientific community need software peer review? -First, and foremost, we hope you submit your package for review **because you value the feedback**. We aim to provide useful feedback to package authors and for our review process to be open, non-adversarial, and focused on improving software quality. +The pyOpenSci open peer review process addresses several issues in the +scientific Python ecosystem: -- Once your package is accepted, your package will receive **support from pyOpenSci members**. You'll retain ownership and control of your package. However, if you need help with ongoing maintenance issues, we will try to find people who can help. - -- pyOpenSci will **promote your package** through our: - - [webpage](https://www.pyopensci.org/python-packages/), - - [blog](https://www.pyopensci.org/blog/), and - - [social media account](https://twitter.com/pyopensci). +1. [Multiple packages that have overlapping functionality. See this example of the many packages that interface with Twitter on `PyPI`](https://pypi.org/search/?q=twitter) +1. Packages that have varying levels of maintenance yet are used by the community to support open science workflows. +1. Packages that are well-maintained and used but then maintenance comes to a halt when the maintainer needs to step down (burn-out is common and understandable). +1. Packages using varying types of packaging and documentation approaches making it more difficult to contribute. +1. Packages that are not documented enough to support: + * Contributions from others + * Directions on how to get started using the package functionality (quick start vignettes or tutorials) +1. Packages that are missing OSI licensing and citation information. -- pyOpenSci packages that are in scope for the [Journal of Open-Source Software](https://joss.theoj.org/) and add the necessary accompanying short `paper.md` file, can, at the discretion of JOSS editors, benefit from a fast-tracked review process. [Read more about our partnership with JOSS here](#pyopensci-and-joss). +### Why is pyOpenSci focused on the Python programming language? -## Why do we need peer review for Python scientific software? +These challenges with open source software exist in other ecosystems as well. [rOpenSci](https://www.ropensci.org), an inspirational, sister organization of pyOpenSci, is an +example of an organization with similar values that operates in the scientific R programming language +space. However many of the issues +faced within the scientific Python community are broader in scale given the +numerous and diverse applications that the Python programming language is used for. -pyOpenSci's [suite of packages](https://pyopensci.org/python-packages/) are fully -contributed by community members with a great diversity of skills. This diversity -of developer backgrounds results in a range of quality associated with the suite -of tools available to process scientific data. +```{note} +[This blog post](https://www.numfocus.org/blog/how-ropensci-uses-code-review-to-promote-reproducible-science/) written by editors from our partner organization, rOpenSci, is a good introduction to pyOpenSci software peer review +``` -### Peer review helps maintain consistent open source software quality +### Peer review of open source software helps maintain consistent quality Peer review of python tools that support science is critical to enforcing quality and usability standards. All pyOpenSci packages contributed by the @@ -59,66 +65,8 @@ community undergo a transparent, constructive, non adversarial and open peer review process. The goal of that process is to enforce commonly accepted standards. These standards include technical structure of the package, usability of the package, documenting package functionality in a way that is accessible -to all levels of users and proper licensing and citation information. - -### A truly community-founded review process - -Our peer review process is run by volunteer members of the Python scientific -community: - -* Editors manage the incoming package review submissions and ensure -reviews move forward progress of submissions; -* authors create, submit and improve their package; -* Reviewers, two per submission, examine the software code and user experience. - -```{note} -[This blog post](https://www.numfocus.org/blog/how-ropensci-uses-code-review-to-promote-reproducible-science/) written by editors from our partner organization, rOpenSci, is a good introduction to pyOpenSci software peer review -``` -### How do I know a python package is pyOpenSci vetted? - -You can identify pyOpenSci packages that have been peer-reviewed by the green -"peer-reviewed" badge at the top their README, [![pyOpenSci](https://tinyurl.com/y22nb8up)]() linking to the specific issue -where the tool was reviewed. [See this example from devicely, one of our packages](https://github.com/hpi-dhc/devicely). - -### How do reviews work? - -We use GitHub for our entire review process. We like GitHub because: +to all levels of users and proper licensing and citation information. -* It's free to create an account -* It facilitates collaboration and supports community around a package -* It facilitates open discussion via issues -* It supports version control -* Numerous packages store their code bases on GitHub - -We make the most of [GitHub](https://github.com/)infrastructure in -our review process. - -Each package review is contained within an issue in the [pyOpenSci/software-review GitHub repository](https://github.com/pyopensci/software-review/). - - -```{note} -For instance, click [here](https://github.com/ropensci/software-review/issues/24) to read the review thread from an rOpenSci review of the `ropenaq` package. Note that the process is an ongoing conversation until the package is accepted. Two external reviews are important milestones in the review process. -``` - -### GitHub tools including issue submission templates and labels help us streamline peer review -We use GitHub features including: - -* issue templates (as submission templates), and -* labelling issues to track progress of submissions (from editor checks to approval). -* Project boards to track help wanted items - -All of this functionality supports a streamlined and open peer review -process. - -## Why review a package for pyOpenSci? - -We hope you choose to review **to give back to the rOpenSci and scientific communities.** Our mission to expand the ability to efficiently use scientific data and promote a culture of open reproducible is only possible through the volunteer efforts of community members like you. - -- Peer review is a two-way conversation. By reviewing packages, you'll have the chance to **continue to learn development practices from authors and other reviewers**. -- The open nature of our review process allows you to **network and meet colleagues and collaborators** through the review process. Our community is friendly and filled with supportive members expert in Python package development, a diversity of science domains and computer science. - -### Volunteer to review for us -- To volunteer to be one of our reviewers, fill out [this short form](https://forms.gle/9dv99gri6XKNU8177). In the form you will provide your contact information and areas of expertise. We are always looking for more reviewers with both general package-writing experience and domain expertise in the fields where packages are used. Some of our reviewers focus on package usability and documentation. This allows you to review even if you don't have strong technical background. We will pair you with a second reviewer that can focus more on the technical aspect of the review. ## Why are reviews open? @@ -144,42 +92,14 @@ comments in public and without the cover of anonymity. > believe that having direct and public communication between authors and > reviewers improves quality and fairness of reviews. +### How do I know that a Python package has been reviewed by pyOpenSci? -### If you submit to pyOpenSci You Can Also Be Accepted by JOSS -We have a strong partnership with JOSS (Journal of Open Source Software); JOSS -accepts our review as their own. If your package is within JOSS' scope you can -then submit it to JOSS, linking to the accepted pyOpenSci review. Note that -JOSS won't accept packages that are don't have research applications such as -API wrappers. JOSS will then accept our review (you will not need a second -review with JOSS!). JOSS will review your paper and you will get a JOSS badge -to add next to your pyOpenSci badge of review. And a cross-ref enabled DOI. - - -## pyOpenSci and JOSS - -> You don't have to chose between pyOpenSci and JOSS; You can submit your package to both. - -pyOpenSci and [the Journal of Open Source Software (JOSS)](https://joss.theoj.org/) -are complementary, partner organizations; and you don't have to chose one or the -other! After a package to pyOpenSci has been reviewed and accepted by pyOpenSci -you can chose to also register it with JOSS. JOSS has [more limited scope](https://joss.readthedocs.io/en/latest/review_criteria.html) of the -for packages that it will review. For instance while pyOpenSci will review and -accept API wrappers, JOSS won't. - -If your package is accepted by pyOpenSci and in scope for JOSS, JOSS will fast -track your package through their process given it was already reviewed by us. -Once accepted by JOSS, you now have both a pyOpenSci acceptance and one by JOSS. -Joss will then give you a cross-ref supported DOI for citation. +You can identify pyOpenSci packages that have been peer-reviewed by the green +"peer-reviewed" badge at the top of their `README.md` file, [![pyOpenSci](https://tinyurl.com/y22nb8up)](). This badge is added by the package author after the package +has successfully completed review and ideally links to the specific GitHub issue +where the tool was reviewed. [See this example from devicely, one of our accepted pyOpenSci ecosystem packages](https://github.com/hpi-dhc/devicely). -### Why Two Review Processes JOSS and pyOpenSci? -the pyOpenSci review process is different from that of JOSS in a few ways: -* pyOpenSci is specific to the Python community and thus will enforce community specific python specific standards. -* pyOpenSci places heavy emphasis on documentation and usability in our reviews and associated standardization of both. -* pyOpenSci builds community around and visibility for it's tools. -* pyOpenSci supports long term tool maintenance. +******** -JOSS reviews are [more limited in scope](https://joss.readthedocs.io/en/latest/review_criteria.html) compared to pyOpenSci and the -[submission criteria](https://joss.readthedocs.io/en/latest/review_criteria.html) -are, in places, less stringent than those of pyOpenSci. diff --git a/about-peer-review/pyopensci-related-joss-ropensci.md b/about-peer-review/pyopensci-related-joss-ropensci.md new file mode 100644 index 00000000..30f64ccf --- /dev/null +++ b/about-peer-review/pyopensci-related-joss-ropensci.md @@ -0,0 +1,60 @@ +# How Are JOSS, rOpenSci and pyOpenSci Related? + +pyOpenSci works closely with both [rOpenSci](https://www.ropensci.org) and +[the Journal of Open Source Software (JOSS)](https://joss.theoj.org/). + +* rOpenSci is a sister organization that directly inspired pyOpenSci. +* JOSS is a journal and a publisher that provides a way for developers of +research software to get academic credit for their work. + +The JOSS review process is about publication. A review from JOSS will provide +you with a citable, [Crossref digital object identifier (DOI)](https://www.crossref.org/). +pyOpenSci aligns closely with the broad mission of +JOSS to provide maintainers with credit for their open source work. However, +our mission is also more focused. pyOpenSci not open source maintainers getting academic credit for their work. We also support: + +* the Python tools that drive scientific open reproducible science workflows; +* enforcement and encouragement of Python-specific packaging standards across tools; +* and curated lists of peer reviewed, and maintained Python scientific software. + +## How is review at pyOpenSci different from the JOSS review process? + +We are not a typical publisher or journal. Rather we are a community that provides support for both a diverse group of software maintainers and long term maintenance of our packages. + +The pyOpenSci review process is different from that of JOSS in a few ways: + +1. Our review is specifically design to enforce modern, community-accepted best practices for Python packaging. +1. We place heavy emphasis on documentation and usability in our reviews and associated standardization of both. +1. We build community around and visibility for its tools. +1. We will promote packages and package maintainers once they are accepted into our ecosystem. +1. We support long term maintenance of packages. If the maintainer needs to step down, we will ensure a new maintainer takes over OR sunset and remove the package from our ecosystem. +1. We provide a welcoming forum for you to ask questions and get help with maintaining your package as needed. + +JOSS reviews are also [more limited in scope](https://joss.readthedocs.io/en/latest/review_criteria.html) +compared to pyOpenSci. Some of the +[JOSS submission criteria](https://joss.readthedocs.io/en/latest/review_criteria.html) +are, in places, less stringent or less specific to the Python programming +language than those of pyOpenSci. + +## You can improve your package with a review at pyOpenSci and still publish in JOSS + +You don't have to chose between pyOpenSci and JOSS; You can submit your package to both. + +pyOpenSci and JOSS are complementary, partner organizations. You don't have +to chose one or the other! After a package to pyOpenSci has been reviewed and +accepted by pyOpenSci you can also choose to register it with JOSS. + +JOSS has [more limited scope](https://joss.readthedocs.io/en/latest/review_criteria.html) +for packages that it will review. For instance, while pyOpenSci will review +and accept API wrappers, JOSS won't. + +If your package is accepted by pyOpenSci and in scope for JOSS, JOSS will fast +track your package through their review process given it was already reviewed by us. + +You do not need to go through two reviews! + +Once accepted by JOSS, you now have both a pyOpenSci acceptance and one by JOSS. + +* JOSS will give you a Crossref DOI for citation. +* And you can display that and your pyOpenSci peer reviewed badge at the top of your package's README.md file. + diff --git a/about-peer-review/review-benefits.md b/about-peer-review/review-benefits.md new file mode 100644 index 00000000..f23a9ef4 --- /dev/null +++ b/about-peer-review/review-benefits.md @@ -0,0 +1,37 @@ +# The Benefits of Submitting a Package to pyOpenSci + +There is a lot to gain from submitting your open source Python package to pyOpenSci for peer review. + +## Supportive feedback from your peers will improve the quality and usability of your package + +Our review process is focused on improving software quality and sustainability. We aim to provide useful feedback to package authors and for our review process to be open and supportive. + +## Support from the pyOpenSci community of maintainers and experts + + Once your package is accepted, your package will receive support from pyOpenSci community. You'll retain ownership and control of your package. However, if you need help with ongoing maintenance issues, we will try to find people who can help. You will also have access to our Slack community to engage with other maintainers and to seek help. + +## pyOpenSci will promote your package online + +pyOpenSci will promote your package online through our social media accounts +and website catalog. We will also promote blogs and posts that you create about your +package. You will also be invited to write a blog post on our website highlighting +your package. + + - [webpage](https://www.pyopensci.org/python-packages/), + - [blog](https://www.pyopensci.org/blog/), and + - [social media account(s)](https://twitter.com/pyopensci). + +## Long term maintenance support + + pyOpenSci values maintained open source tools. In the case that you need to step down from maintaining your tool, or in the case that you simply wish to build a larger maintainer team, pyOpenSci will help you find new people to support. In the case that it makes more sense for you to sunset your package, we will support you in that effort as well. + +## Adherence to community-accepted standards + + pyOpenSci is keeping close watch on Python-specific community accepted standards in packaging. Thus our review process will help to enforce standards where we can. + +## Reduced duplication of Python tools that support open science + +pyOpenSci has a broad view across the scientific Python ecosystem. When you submit your package for review we will ask you to identify other packages in the ecosystem that may have similar functionality. In the long run we hope to identify overlap in package functionality and help maintainers work together on similar tools rather than maintaining overlapping functionality. + +## Your package can be fast tracked and accepted by JOSS +pyOpenSci packages that are in scope for the [Journal of Open-Source Software](https://joss.theoj.org/) and add the necessary accompanying short `paper.md` file, can, at the discretion of JOSS editors, benefit from a fast-tracked review process. [Read more about our partnership with JOSS here](pyopensci-related-joss-ropensci). \ No newline at end of file diff --git a/conf.py b/conf.py index 779310bd..cb867026 100644 --- a/conf.py +++ b/conf.py @@ -87,4 +87,5 @@ # 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". -html_static_path = ['_static'] \ No newline at end of file +html_static_path = ['_static'] +html_css_files = ["pyos.css"] \ No newline at end of file diff --git a/images/python-stack-jupyter-earth.png b/images/python-stack-jupyter-earth.png new file mode 100644 index 00000000..64895606 Binary files /dev/null and b/images/python-stack-jupyter-earth.png differ diff --git a/index.md b/index.md index 039451f5..c1b77768 100644 --- a/index.md +++ b/index.md @@ -1,4 +1,4 @@ -# Welcome to The pyOpenSci Community Guidebook! +# Welcome to the pyOpenSci Software Peer Review Guidebook! ::::{grid} 2 :reverse: @@ -30,7 +30,7 @@ drive open science. :gutter: 3 :::{grid-item-card} {octicon}`book;1.5em;sd-mr-1` Learn About Open Peer Review ✏️ -:link: about-peer-review/aims-and-scope +:link: about-peer-review/intro :link-type: doc :class-header: bg-light @@ -110,17 +110,20 @@ lays out what types of packages we review. :hidden: :caption: About peer review -Intro +About Peer Review +Peer Review Benefits +How peer review works Aims & Scope -about-peer-review/policies-guidelines -about-peer-review/code-of-conduct +pyOpenSci, JOSS & rOpenSci +Peer review policies +Code of Conduct ``` ```{toctree} :hidden: :caption: Peer Review Guides -Guide intro +Peer review process overview Author Guide Reviewer Guide Editor Guide diff --git a/scope.md b/scope.md index a1f6b96a..45463e29 100644 --- a/scope.md +++ b/scope.md @@ -1,4 +1,7 @@ -## Package Scope +## Python package domain scope + +The following categories are the current domain areas that fall into the +pyOpenSci domain scope. - **Data retrieval:** Packages for accessing and downloading data from online sources. Includes wrappers for accessing APIs. - **Data extraction:** Packages that aid in retrieving data from unstructured sources such as text, images and PDFs. @@ -9,7 +12,6 @@ - **Education:** Packages to aid with instruction. - **Data visualization:** Packages for visualizing and analyzing data. - ### Notes on Scope Categories - pyOpenSci is still developing as a community. If your scientific Python package does not fit into one of the categories or if you have any other @@ -19,3 +21,45 @@ hyper-specific methods for one type of data to general, do-it-all packages (e.g. matplotlib). pyOpenSci accepts packages that are somewhere in between the two. If you're interested in submitting your data visualization package, please open a pre-submission inquiry on first. + +## Python package technical scope + +pyOpenSci is may continue to update it's technical scope criteria for package +review as more packages with varying structural approaches are reviewed. +Your package **may not be in technical scope** for us to review at this time if +fits any of the out-of-technical-scope criteria listed below. + +```{important} +**If the code base of your package is exceedingly complex in terms of +structure of maintenance needs**, we may not be able to review it. + +pyOpenSci has a goal of supporting long term maintenance of open source +Python tools. It is thus important for us to know that if you need to step down as a maintainer, the package infrastructure and documentation is +in place to support us finding a new maintainer who can take over you +package's maintenance. +``` + +A few examples of technically complex package structures that may +make it difficult for us to review are below: + +### Example 1: Your package is an out of sync fork of another package repository that is being actively maintained. + +Sometimes we understand that a package maintainer may need to step down. In +that case, we strongly suggest that the original package owner, transfer the +package repository to a new organization along with PyPI credentials. A new +organization would allow transfer of ownership of package maintenance rather +than several forks existing. + +Of your package is a divergent fork of a maintained repository we will encourage you +to work with the original maintainers to merge efforts. + +However, if there is a case where a forked repository is warranted, please +consider submitting a pre-submission inquiry first and explain why the package is a +fork rather than an independent parent repository. + +### Example 2 Vendored dependencies + +If your package is a wrapper that wraps around another tool, we prefer that +the dependency be added as a dependency to your package. This allows +maintenance of the original code base to be independent from your package's +maintenance.