<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tools</title>
    <link>https://tools.scientific-python.org/</link>
    <description>Recent content on Tools</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://tools.scientific-python.org/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Analytics</title>
      <link>https://tools.scientific-python.org/analytics/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://tools.scientific-python.org/analytics/</guid>
      <description>&lt;div class=&#34;sd-container-fluid sd-mb-4 false sd-g-2 sd-g-xs-2 sd-g-sm-2 sd-g-md-2 sd-g-lg-2&#34;&gt;&#xA;  &lt;div class=&#34;sd-row sd-row-cols-1 sd-row-cols-xs-1 sd-row-cols-sm-2 sd-row-cols-md-2 sd-row-cols-lg-2 sd-g-2 sd-g-xs-2 sd-g-sm-2 sd-g-md-2 sd-g-lg-2&#34;&gt;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://devstats.scientific-python.org&#34;&gt;devstats.scientific-python.org&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      We generate developer statistics for various core packages using the &lt;a href=&#34;https://github.com/scientific-python/devstats&#34;&gt;devstats&lt;/a&gt; tool.&#xA;&lt;a href=&#34;https://github.com/scientific-python/devstats-data/releases&#34;&gt;Data releases&lt;/a&gt; are made weekly.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://views.scientific-python.org&#34;&gt;views.scientific-python.org&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      A hosted plausible instance where library authors can track website visits.&#xA;You can &lt;a href=&#34;https://pydata-sphinx-theme.readthedocs.io/en/latest/user_guide/analytics.html#analytics-and-usage-services&#34;&gt;enable this service&lt;/a&gt;&#xA;in your pydata-sphinx-theme settings.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Community &amp; organization</title>
      <link>https://tools.scientific-python.org/community/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://tools.scientific-python.org/community/</guid>
      <description>&lt;div class=&#34;sd-container-fluid sd-mb-4 false sd-g-2 sd-g-xs-2 sd-g-sm-2 sd-g-md-2 sd-g-lg-2&#34;&gt;&#xA;  &lt;div class=&#34;sd-row sd-row-cols-1 sd-row-cols-xs-1 sd-row-cols-sm-2 sd-row-cols-md-2 sd-row-cols-lg-3 sd-g-2 sd-g-xs-2 sd-g-sm-2 sd-g-md-2 sd-g-lg-2&#34;&gt;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/yaml2ics&#34;&gt;yaml2ics&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Convert plain-text descriptions of calendar events into ICS files that can be loaded into Google Calendar etc.&#xA;Used to host the Scientific Python &lt;a href=&#34;https://scientific-python.org/calendars&#34;&gt;community calendars&lt;/a&gt;.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://discuss.scientific-python.org&#34;&gt;discuss.scientific-python.org&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      A Discourse discussion forum for the Scientific Python developer community.&#xA;Also see the &lt;a href=&#34;https://blog.scientific-python.org&#34;&gt;Scientific Python blog&lt;/a&gt;.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/vault-template&#34;&gt;vault-template&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      A GPG-based password vault. See also &lt;a href=&#34;https://github.com/scientific-python/specs/pull/168&#34;&gt;SPEC 6&lt;/a&gt;.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Developer Utilities</title>
      <link>https://tools.scientific-python.org/utilities/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://tools.scientific-python.org/utilities/</guid>
      <description>&lt;p&gt;The following Python packages provide functionality widely usable by packages across the ecosystem.&#xA;Also see to the &lt;a href=&#34;https://learn.scientific-python.org/development/&#34;&gt;Scientific Python Developer Guide&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;sd-container-fluid sd-mb-4 false sd-g-2 sd-g-xs-2 sd-g-sm-2 sd-g-md-2 sd-g-lg-2&#34;&gt;&#xA;  &lt;div class=&#34;sd-row sd-row-cols-1 sd-row-cols-xs-1 sd-row-cols-sm-2 sd-row-cols-md-2 sd-row-cols-lg-3 sd-g-2 sd-g-xs-2 sd-g-sm-2 sd-g-md-2 sd-g-lg-2&#34;&gt;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/lazy-loader/&#34;&gt;lazy-loader&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Implements lazy loading as described in &lt;a href=&#34;https://scientific-python.org/specs/spec-0001/&#34;&gt;SPEC1&lt;/a&gt;.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/spin&#34;&gt;spin&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      &lt;strong&gt;S&lt;/strong&gt;cientific &lt;strong&gt;P&lt;/strong&gt;ython &lt;strong&gt;IN&lt;/strong&gt;cantations: an extendible tool that&#xA;provides uniform aliases for build tasks across the ecosystem (&lt;code&gt;spin build&lt;/code&gt;, &lt;code&gt;spin docs&lt;/code&gt;, etc.).&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/pytest-doctestplus&#34;&gt;pytest-doctestplus&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      A plugin for the pytest framework that provides advanced doctest&#xA;support and enables the testing of text file formats.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/repo-review&#34;&gt;repo-review&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      A framework for building checks designed to check to see if a repository follows guideline.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/docstub/&#34;&gt;docstub&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      A tool for generating Python stub files from docstrings.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/changelist/&#34;&gt;changelist&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      A tool for automating release notes.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Github Actions and Bots</title>
      <link>https://tools.scientific-python.org/github/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://tools.scientific-python.org/github/</guid>
      <description>&lt;h2 id=&#34;github-actions&#34;&gt;Github Actions&lt;a class=&#34;headerlink&#34; href=&#34;#github-actions&#34; title=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The following GitHub actions provide workflows that simplify various developer tasks.&lt;/p&gt;&#xA;&lt;div class=&#34;sd-container-fluid sd-mb-4 false sd-g-2 sd-g-xs-2 sd-g-sm-2 sd-g-md-2 sd-g-lg-2&#34;&gt;&#xA;  &lt;div class=&#34;sd-row sd-row-cols-1 sd-row-cols-xs-1 sd-row-cols-sm-2 sd-row-cols-md-2 sd-row-cols-lg-3 sd-g-2 sd-g-xs-2 sd-g-sm-2 sd-g-md-2 sd-g-lg-2&#34;&gt;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/upload-nightly-action&#34;&gt;upload-nightly-action&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Uploads nightly builds to the &lt;a href=&#34;https://anaconda.org/scientific-python-nightly-wheels&#34;&gt;scientific-python conda channel&lt;/a&gt; as described in &lt;a href=&#34;https://scientific-python.org/specs/spec-0004/&#34;&gt;SPEC4&lt;/a&gt;.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/attach-next-milestone-action&#34;&gt;attach-next-milestone-action&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      When a PR is merged, attach it to the next upcoming milestone.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/action-check-changelogfile&#34;&gt;action-check-changelogfile&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Ensure that added changelog entries conform to certain rules.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/action-towncrier-changelog&#34;&gt;action-towncrier-changelog&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Ensure that added changelog entries conform to certain rules.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/reverse-dependency-testing&#34;&gt;reverse-dependency-testing&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Query the conda-forge dependency tree and run test suites for packages that depend on your package.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/sync-teams-action&#34;&gt;sync-teams-action&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Manage teams and team membership for the Scientific Python GitHub organization.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/circleci-artifacts-redirector-action&#34;&gt;circleci-artifacts-redirector-action&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Add a GitHub status link directly to a CircleCI artifact.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/devstats-query-action&#34;&gt;devstats-query-action&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Download devstats for one or more GitHub repositories as an artifact.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;    &lt;div class=&#34;sd-col sd-d-flex-row&#34;&gt;&#xA; &#xA;  &lt;div class=&#34;sd-card sd-w-100 sd-shadow-sm &#34;&gt;&#xA; &#xA;   &lt;div class=&#34;sd-card-header&#34;&gt;&#xA;     &lt;a href=&#34;https://github.com/scientific-python/issue-from-pytest-log-action&#34;&gt;issue-from-pytest-log-action&lt;/a&gt;&#xA;   &lt;/div&gt;&#xA;   &lt;div class=&#34;sd-card-body&#34;&gt;&#xA;      Create an issue for failed tests from a &lt;code&gt;pytest-reportlog&lt;/code&gt; file or update an existing one if it already exists.&#xA;   &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;bots&#34;&gt;Bots&lt;a class=&#34;headerlink&#34; href=&#34;#bots&#34; title=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The following bots for GitHub provide workflows that simplify various developer tasks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Governance and Decision Making</title>
      <link>https://tools.scientific-python.org/about/governance/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://tools.scientific-python.org/about/governance/</guid>
      <description>&lt;h2 id=&#34;abstract&#34;&gt;Abstract&lt;a class=&#34;headerlink&#34; href=&#34;#abstract&#34; title=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Scientific Python: Tools and Services&lt;/em&gt; is a consensus-based community subproject.&#xA;Anyone with an interest in the project can join the community, contribute to the project design, and participate in the decision making process.&#xA;This document describes how that participation takes place, how to find consensus, and how deadlocks are resolved.&lt;/p&gt;&#xA;&lt;h2 id=&#34;roles-and-responsibilities&#34;&gt;Roles And Responsibilities&lt;a class=&#34;headerlink&#34; href=&#34;#roles-and-responsibilities&#34; title=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Scientific Python: Tools and Services&lt;/em&gt; has the following roles and responsibilities:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Roadmap</title>
      <link>https://tools.scientific-python.org/about/roadmap/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://tools.scientific-python.org/about/roadmap/</guid>
      <description>&lt;h2 id=&#34;roadmap-section-1&#34;&gt;Roadmap section 1&lt;a class=&#34;headerlink&#34; href=&#34;#roadmap-section-1&#34; title=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Here is some roadmap text.&lt;/p&gt;&#xA;&lt;h2 id=&#34;roadmap-section-2&#34;&gt;Roadmap section 2&lt;a class=&#34;headerlink&#34; href=&#34;#roadmap-section-2&#34; title=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;</description>
    </item>
  </channel>
</rss>
