<?xml version="1.0" encoding="utf-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us">
    <generator uri="https://gohugo.io/" version="0.152.2">Hugo</generator><title type="html"><![CDATA[Summit on Blog]]></title>
    
    
    
            <link href="https://blog.scientific-python.org/tags/summit/" rel="alternate" type="text/html" title="html" />
            <link href="https://blog.scientific-python.org/tags/summit/atom.xml" rel="self" type="application/atom" title="atom" />
    <updated>2026-04-04T04:32:36+00:00</updated>
    
    
    
    
        <id>https://blog.scientific-python.org/tags/summit/</id>
    
        
        <entry>
            <title type="html"><![CDATA[Developer Summit 2]]></title>
            <link href="https://blog.scientific-python.org/scientific-python/dev-summit-2/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://blog.scientific-python.org/scientific-python/dev-summit-1/?utm_source=atom_feed" rel="related" type="text/html" title="Developer Summit 1" />
                <link href="https://blog.scientific-python.org/scientific-python/dev-summit-1-sparse/?utm_source=atom_feed" rel="related" type="text/html" title="Developer Summit 1: Sparse Arrays" />
                <link href="https://blog.scientific-python.org/scientific-python/translations/?utm_source=atom_feed" rel="related" type="text/html" title="Translations for Scientific Python projects" />
                <link href="https://blog.scientific-python.org/scientific-python/2022-czi-grant/?utm_source=atom_feed" rel="related" type="text/html" title="Scientific Python awarded CZI grant to improve communications infrastructure &amp; accessibility" />
                <link href="https://blog.scientific-python.org/scientific-python/alt-text-workshop-summary/?utm_source=atom_feed" rel="related" type="text/html" title="Team up! Alt text and cross-project community" />
            
                <id>https://blog.scientific-python.org/scientific-python/dev-summit-2/</id>
            
            
            <published>2024-09-29T00:00:00+00:00</published>
            <updated>2024-09-29T00:00:00+00:00</updated>
            
            
            <content type="html"><![CDATA[<blockquote>Summary of the 2024 Scientific Python Developer summit.</blockquote><p>This post is a while overdue, but it&rsquo;s been a busy summer for everyone!</p>
<p>In June, several of us got together for the &ldquo;annual&rdquo; (well, we&rsquo;ve had it twice now) Scientific Python developer summit in Seattle.
Our friends at the eScience Institute were again kind enough to host us.
This time around, we made the event a bit shorter to avoid clashing with graduation.</p>
<p>As before, the Developer Summits are for members of the community to come together, in person, so they can work.
Of course, we work together already online, but the event allows us to focus our energies on cross-project concerns (that often fall by the wayside) with planning and intent.</p>
<p>This is why, before the summit, we have planning Zoom calls, where we identify topics of interest, which are turned into issues, which are then fleshed out and discussed prior to the event.
That way, we hoped to hit the ground running—as we did!</p>
<!-- prettier-ignore-start -->
<figure class="align-default" id="id000">
<img src="group.jpg" alt="Photo of the summit attendees, in front of a fountain on the University of Washington campus, with a volcano in the background" class="align-center">



<figcaption>
<p><span class="caption-text">Our intrepid community developers, with Mt Rainier in the background</span>
</figcaption>
</figure>

<!-- prettier-ignore-end -->
<h2 id="topics">Topics<a class="headerlink" href="#topics" title="Link to this heading">#</a></h2>
<p>You can get a rough idea of what we worked on by browsing the <a href="https://github.com/scientific-python/summit-2024/issues/">planning issues</a> and the <a href="https://hackmd.io/wsJVTMYdQGG_Zgz7rgxSzw">summit worklog</a>.</p>
<p>Broad topics included <a href="https://scientific-python.org/specs/">SPECs</a>, documentation, tools &amp; bots, <a href="https://lectures.scientific-python.org/">lectures</a>, <code>scipy.sparse</code>, telemetry, Array API, and type annotation.</p>
<h3 id="documentation">Documentation<a class="headerlink" href="#documentation" title="Link to this heading">#</a></h3>
<p>Documentation was a much more popular topic than anticipated!</p>
<ul>
<li>The new <a href="https://mystmd.org/guide">mystmd</a> tooling generated some excitement, and an <a href="https://github.com/numpy/numpy-tutorials/tree/mystjs">experimental port of the NumPy tutorials</a> was made by Melissa and Ross.</li>
<li>Recommendations on consistent use of <a href="https://github.com/numpy/numpydoc/pull/525">backticks</a> and <a href="https://github.com/pydata/pydata-sphinx-theme/issues/1852">monospaced font</a> were submitted to numpydoc and pydata-sphinx-theme, respectively.</li>
<li>Madicken, Paul, and Dan worked together to <a href="https://github.com/pydata/pydata-sphinx-theme/pull/1861">extend PyData Sphinx Theme&rsquo;s testing infrastructure</a>, by combining Sphinx Build Factory (for generating small test sites) with Playwright (for browser automation).</li>
<li>Eric and Elliott fixed an <a href="https://github.com/sphinx-gallery/sphinx-gallery/pull/1320">intersphinx issue in sphinx-gallery</a>.</li>
</ul>
<h3 id="specs">SPECs<a class="headerlink" href="#specs" title="Link to this heading">#</a></h3>
<p>The Scientific Python Ecosystem Coordination documents (SPECs) aim to improve coordination of technical development across the ecosystem.</p>
<p>Several new SPECs were started:</p>
<ul>
<li><a href="https://hackmd.io/yI1iAqekQIq0a4jLS9WPyw">SPEC-?: Dispatching (<code>spatch</code>)</a></li>
<li><a href="https://scientific-python.org/specs/spec-0008/">SPEC-8: Securing The Release Process</a></li>
<li><a href="https://scientific-python.org/specs/spec-0009/">SPEC-9: Governance</a></li>
<li><a href="https://github.com/scientific-python/specs/pull/321">SPEC-10: Changelog and release documentation</a></li>
<li><a href="https://github.com/scientific-python/specs/pull/326">SPEC-12: Formatting mathematical expressions</a></li>
<li><a href="https://github.com/scientific-python/specs/pull/324">SPEC-13: Naming conventions</a></li>
</ul>
<p>Some existing SPECs were discussed and improved:</p>
<ul>
<li><a href="https://scientific-python.org/specs/spec-0007/">SPEC-7: Seeding pseudo-random number generation (SPRaNG)</a></li>
</ul>
<p>Matplotlib <a href="https://scientific-python.org/specs/purpose-and-process/#decision-points">endorsed</a> several SPECs.</p>
<h3 id="tooling">Tooling<a class="headerlink" href="#tooling" title="Link to this heading">#</a></h3>
<ul>
<li>We created a new tools team to handle the ever-growing <a href="https://tools.scientific-python.org/">list of tools we maintain</a>.</li>
<li>Eric added his <a href="https://github.com/scientific-python/circleci-artifacts-redirector-action">circleci-artifacts-redirector-action</a> to the suite.</li>
<li>Matthias brought over his <a href="https://github.com/scientific-python/MeeseeksDev">backport bot</a> and set up a maintenance team.</li>
</ul>
<h3 id="scipy">SciPy<a class="headerlink" href="#scipy" title="Link to this heading">#</a></h3>
<p>Several of the SciPy developers were present, and we used the opportunity to celebrate Dan Schult joining as a core developer 🎉!
Matt and Pamphile did some work on the new distribution infrastructure, Dan worked on sparse (remotely with CJ), and a <a href="https://github.com/scipy/scipy/pull/20891">PR adding newly-supported <code>const</code> statements to Cython code</a> got reviewed and merged.
Eric isolated <a href="https://github.com/sphinx-doc/sphinx/issues/12409">a non-deterministic bug in Sphinx</a> that was impacting parallel builds of SciPy&rsquo;s documentation.
He found a work-around that had been eluding the team for months!</p>
<h3 id="unplanned-collaborations">Unplanned collaborations<a class="headerlink" href="#unplanned-collaborations" title="Link to this heading">#</a></h3>
<p>As is the nature of these events, some collaborations arise spontaneously.
For example:</p>
<ul>
<li>Nick and Ariel explored using Awkward Array for neuro-tractography.</li>
<li>Nick and Mridul explored using <a href="https://scipp.github.io/index.html">scipp</a> for high-energy physics data.</li>
<li>Guen worked on telemetry.</li>
<li>Inessa and Sanket discussed best practices for community surveys and project governance.</li>
<li>Sebastian and Thomas <a href="https://hackmd.io/84thx0ucQ2ab17ZYrBhWRw">discussed parallelization APIs</a>.</li>
<li>Inessa, with input from Tim and Thomas, finalized the design of the 2024 scikit-learn user survey.</li>
<li>Erik and Dan discussed index compression options for CSR-like N-D sparse arrays.</li>
</ul>
<h3 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Link to this heading">#</a></h3>
<!-- prettier-ignore-start -->
<figure class="align-default" id="id001">
<img src="chess.jpg" alt="Members of the team playing chess at Big Time Ale Brewery in Seattle" class="align-center">



<figcaption>
<p><span class="caption-text">Nothing like a relaxing game of chess after a long day&rsquo;s work</span>
</figcaption>
</figure>

<!-- prettier-ignore-end -->
<p>Numerous other PRs were made, of which a number were probably not even captured in the <a href="https://hackmd.io/wsJVTMYdQGG_Zgz7rgxSzw">worklog</a>.
But, besides the inherent satisfaction of working together with this great group, the best feature of the summit was that we were able to hang out, bonding over our communal joys and struggles—both technical and personal.</p>
<p>We are grateful to the ecosystem developers who gave up their time to attend the summit (many had to put in leave <em>just to do more work</em>!).
The summits are valuable, and translate to a lot of work getting done and decisions being made.
We hope that there will be more on the horizon!</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="taxonomy:Tags" term="summit" label="Summit" />
                             
                                <category scheme="taxonomy:Tags" term="scientific-python" label="Scientific-Python" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[The Scientific Python Development Guide]]></title>
            <link href="https://blog.scientific-python.org/scientific-python/dev-summit-1-development-guide/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://blog.scientific-python.org/scientific-python/scientific-python-project/?utm_source=atom_feed" rel="related" type="text/html" title="Scientific Python: Community developed, community owned" />
                <link href="https://blog.scientific-python.org/matplotlib/how-to-create-custom-tables/?utm_source=atom_feed" rel="related" type="text/html" title="How to create custom tables" />
                <link href="https://blog.scientific-python.org/matplotlib/visualising-usage-using-batteries/?utm_source=atom_feed" rel="related" type="text/html" title="Battery Charts - Visualise usage rates &amp; more" />
                <link href="https://blog.scientific-python.org/matplotlib/python-graph-gallery.com/?utm_source=atom_feed" rel="related" type="text/html" title="The Python Graph Gallery: hundreds of python charts with reproducible code." />
                <link href="https://blog.scientific-python.org/matplotlib/stellar-chart-alternative-radar-chart/?utm_source=atom_feed" rel="related" type="text/html" title="Stellar Chart, a Type of Chart to Be on Your Radar" />
            
                <id>https://blog.scientific-python.org/scientific-python/dev-summit-1-development-guide/</id>
            
            
            <published>2023-08-26T12:00:00-05:00</published>
            <updated>2023-08-26T12:00:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<blockquote>Introducing the Scientific Python Development Guide!</blockquote><p>One outcome of the
<a href="https://scientific-python.org/summits/developer/2023/">2023 Scientific Python Developer Summit</a>
was the <a href="https://learn.scientific-python.org/development">Scientific Python Development Guide</a>, a comprehensive guide to modern
Python package development, complete with a <a href="https://github.com/scientific-python/cookie">new project template</a>
supporting 10+ build backends and a <a href="https://learn.scientific-python.org/development/guides/repo-review">WebAssembly-powered checker</a>
with checks linked to the guide. The guide covers topics like <a href="https://learn.scientific-python.org/development/guides/packaging-simple/">modern</a>,
<a href="https://learn.scientific-python.org/development/guides/packaging-compiled/">compiled</a>, and <a href="https://learn.scientific-python.org/development/guides/packaging-classic/">classic</a> packaging, <a href="https://learn.scientific-python.org/development/guides/style/">style</a> checks, <a href="https://learn.scientific-python.org/development/guides/mypy/">type
checking</a>, <a href="https://learn.scientific-python.org/development/guides/docs/">docs</a>, <a href="https://learn.scientific-python.org/development/guides/tasks/">task runners</a>, <a href="https://learn.scientific-python.org/development/guides/gha-basic/">CI</a>, <a href="https://learn.scientific-python.org/development/guides/pytest/">tests</a>,
and much more! There also are sections of <a href="https://learn.scientific-python.org/development/tutorials/">tutorials</a>, <a href="https://learn.scientific-python.org/development/principles/">principles</a>, and
some common <a href="https://learn.scientific-python.org/development/patterns/">patterns</a>.</p>
<p>This guide (along with cookie &amp; repo-review) started in <a href="https://scikit-hep.org">Scikit-HEP</a> in 2020.
During the summit, it was merged with the <a href="https://nsls-ii.github.io/">NSLS-II</a> guidelines, which provided
the basis for the <a href="https://learn.scientific-python.org/development/principles/">principles</a> section. I&rsquo;d like to thank and acknowledge Dan
Allan and Gregory Lee for working tirelessly during the summit to rework,
rewrite, merge, and fix the guide, including writing most of the <a href="https://learn.scientific-python.org/development/tutorials/">tutorials</a>
pages and first <a href="https://learn.scientific-python.org/development/patterns/">patterns</a> page, and rewriting the <a href="https://learn.scientific-python.org/development/tutorials/dev-environment/">environment</a> page as a
tutorial.</p>
<h2 id="the-guide">The guide<a class="headerlink" href="#the-guide" title="Link to this heading">#</a></h2>
<p>The core of the project is the guide, which is comprised of four sections:</p>
<ul>
<li><a href="https://learn.scientific-python.org/development/tutorials/">Tutorials</a>: How to go from &ldquo;research&rdquo; code to a basic package, for
beginning readers.</li>
<li><a href="https://learn.scientific-python.org/development/guides/">Topical guides</a>: The core of the guide, for intermediate to advanced
readers.</li>
<li><a href="https://learn.scientific-python.org/development/principles/">Principles</a>: Some general principles from the <a href="https://nsls-ii.github.io/">NSLS-II</a> guide.</li>
<li><a href="https://learn.scientific-python.org/development/patterns/">Patterns</a>: Recipes for common situations. Three pages are there now;
<a href="https://learn.scientific-python.org/development/patterns/data-files/">including data</a>, <a href="https://learn.scientific-python.org/development/patterns/backports/">backports</a>, and <a href="https://learn.scientific-python.org/development/patterns/exports/">exports</a>.</li>
</ul>
<p>From the original <a href="https://scikit-hep.org/developer">Scikit-HEP dev pages</a>, a lot was added:</p>
<ul>
<li>Brand new guide page on documentation, along with new <a href="https://learn.scientific-python.org/development/guides/repo-review">sp-repo-review</a> checks to
help with readthedocs.</li>
<li>A compiled projects page! Finally! With <a href="https://scikit-build-core.readthedocs.io">scikit-build-core</a>,
<a href="https://meson-python.readthedocs.io">meson-python</a>, and <a href="https://www.maturin.rs">maturin</a>. The page shows real outputs from the
<a href="https://www.cookiecutter.io">cookiecutter</a>, kept in sync with <a href="https://nedbatchelder.com/code/cog">cog</a> (a huge benefit of using a single
repo for all three components!)</li>
<li>Big update to <a href="https://learn.scientific-python.org/development/guides/gha-basic/">GHA CI page</a> including a section on Composite
Actions given at the Dev summit.</li>
<li>CLI entry points are now included.</li>
<li>Python 3.12 support added, Python 3.7 dropped.</li>
<li>New <a href="https://learn.scientific-python.org/development/guides/repo-review">sp-repo-review</a> badges throughout (more on that later!)</li>
<li>Updates for <a href="https://beta.ruff.rs">Ruff</a>&rsquo;s move and support for requires-python.</li>
<li>Lots of additions for GitHub Actions.</li>
</ul>
<p>The infrastructure was updated too:</p>
<ul>
<li>Using latest Jekyll (version 4) and latest Just the Docs theme. More colorful
callout boxes. Plugins are used now.</li>
<li>Live PR preview (provided by probably the world’s first readthedocs Jekyll
build!). Developed with the Zarr developers during the summit.</li>
<li>Better advertising for <a href="https://github.com/scientific-python/cookie">cookie</a> and <a href="https://learn.scientific-python.org/development/guides/repo-review">sp-repo-review</a> on the index page(s).</li>
<li>Auto bump and auto-sync CI jobs.</li>
</ul>
<h2 id="cookie">Cookie<a class="headerlink" href="#cookie" title="Link to this heading">#</a></h2>
<p>We also did something I&rsquo;ve wanted to do for a long time: the guide, the
cookiecutter template, and the checks are all in a single repo! The repo is
<a href="https://github.com/scientific-python/cookie">scientific-python/cookie</a>, which is the moved <code>scikit-hep/cookie</code> (the
old URL for cookiecutter still works!).</p>
<p>Cookie is a new project template supporting multiple backends (including
compiled ones), kept in sync with the dev guide. We recommend starting with
the dev guide and setting up your first package by hand, so that you understand
what each part is for, but once you&rsquo;ve done that, <a href="https://github.com/scientific-python/cookie">cookie</a> allows you to get
started on a new project in seconds.</p>
<p>A lot of work went into <a href="https://github.com/scientific-python/cookie">cookie</a>, too!</p>
<ul>
<li>Generalized defaults. We still have special integration if someone sets the
org to <code>scikit-hep</code>; the same integration can be offered to other orgs.</li>
<li>All custom hooks removed; standard jinja now used throughout templates. Using
cookiecutter computed variables idiom too. Windows still fully supported and
tested. Adding new choices is much easier now.</li>
<li>Added cruft (a cookiecutter updater) testing.</li>
<li>Dual-supporting <a href="https://copier.readthedocs.io">copier</a> now too, a <a href="https://www.cookiecutter.io">cookiecutter</a> replacement with a huge
CLI improvement (and also supports updating). Might be the first project to
support both at the same time. CI (or <a href="https://nox.thea.codes">nox</a> locally) checks to ensure
generation is identical. Much better interface with copier, including
validation, descriptive text, arrow selection, etc.</li>
<li>Improved CLI experience even if using cookiecutter (like no longer requesting
current year).</li>
<li>Reworked docs template.</li>
<li>Support for cookiecutter 2.2 pretty descriptions (added about four hours after
cookiecutter 2.2.0 was released) and cookiecutter 2.2.3 choice descriptions.</li>
<li>GitLab CI support when not targeting github.com URLs (added by Giordon Stark).</li>
<li>Support for selecting VCS or classic versioning.</li>
</ul>
<h2 id="repo-review">Repo-review<a class="headerlink" href="#repo-review" title="Link to this heading">#</a></h2>
<p>See the <a href="https://iscinumpy.dev/post/repo-review/">introduction to repo-review</a>
for information about this one!</p>
<p>Along with this was probably the biggest change, one requested by several people
at the summit: <a href="https://github.com/scientific-python/repo-review">scientific-python/repo-review</a> (was
<code>scikit-hep/repo-review</code>) is now a completely general framework for implementing
checks in Python 3.10+. The checks have been moved to <code>sp-repo-review</code>, which is
now part of scientific-python/cookie. There are too many changes to list here,
so just the key ones in 0.6, 0.7, 0.8, 0.9, and 0.10:</p>
<ul>
<li>Extensive, beautiful <a href="https://repo-review.readthedocs.io">documentation</a> for
check authors at (used to help guide the new docs guide page &amp; template
update!)</li>
<li>Support for four output formats, <a href="https://rich.readthedocs.io">rich</a> (improved), svg, json (new), html
(new).</li>
<li>Support for listing all checks.</li>
<li>GitHub Actions support with HTML step summary, <a href="https://pre-commit.com">pre-commit</a> support.</li>
<li>Generalized topological sorting to fixtures, dynamic fixtures.</li>
<li>Dynamic check selection (via fixtures! Basically everything is powered by
fixtures now.)</li>
<li>URL support in all output formats (including the terminal and WebApp!)</li>
<li>Support for package not at root of repo.</li>
<li>Support for running on a remote repo from the command line.</li>
<li>Support for select/ignore config in <code>pyproject.toml</code> or command line.</li>
<li>Pretty printed and controllable sorting for families.</li>
<li>Supports running from Python, including inside a readme with something like
cog.</li>
<li>Support for dynamic family descriptions (such as to output build system and
licence used).</li>
<li>Support for limiting the output to just errors or errors and skips.</li>
<li>Support for running on multiple repos at once, with output tailored to
multiple repos. Also supports passing <code>pyproject.toml</code> path instead to make
running on mixed repos easier.</li>
<li>Support for linting <code>[tool.repo-review]</code> with <a href="https://validate-pyproject.readthedocs.io">validate-pyproject</a>.</li>
</ul>
<p>The
<a href="https://repo-review.readthedocs.io/en/latest/changelog.html">full changelog</a>
has more - you can even see the 10 beta releases in-between 0.6.x and 0.7.0
where a lot of this refactoring work was happening. If you have configuration
you’d like to write check for, feel free to write a plugin!</p>
<p><a href="https://validate-pyproject.readthedocs.io">validate-pyproject</a> 0.14 has added support for being used as a repo-review
plugin, so you can validate <code>pyproject.toml</code> files with repo-review! This lints
<code>[project]</code> and <code>[build-system]</code> tables, <code>[tool.setuptools]</code>, and other tools
via plugins. <a href="https://scikit-build-core.readthedocs.io">Scikit-build-core</a> 0.5 can be used as a validate-project plugin
to lint <code>[tool.scikit-build]</code>. Repo-review has a plugin for
<code>[tool.repo-review]</code>.</p>
<h2 id="sp-repo-review">sp-repo-review<a class="headerlink" href="#sp-repo-review" title="Link to this heading">#</a></h2>
<p>Finally, <a href="https://learn.scientific-python.org/development/guides/repo-review">sp-repo-review</a> contains the previous repo-review plugins with checks:</p>
<ul>
<li>Fully cross-linked with the development guide. Every check has a URL that
points to a matching badge inside the development guide where the thing the
check is looking for is being discussed!</li>
<li>Full list of checks (including URLs), produced by cog, in
<a href="https://pypi.org/p/sp-repo-review">readme</a>.</li>
<li>Also ships with GitHub Action and <a href="https://pre-commit.com">pre-commit</a> checks</li>
<li>Released (in sync with cookie &amp; guide, as they are in the same repo) as
CalVer,
<a href="https://github.com/scientific-python/cookie/releases">with release notes</a>.</li>
<li>Split CI that selects just want to run based on changed files, with green
checkmark that respects skips (based on the excellent contrition to
pypa/build).</li>
</ul>
<!-- prettier-ignore-start -->
<figure class="align-default" id="id000">
<img src="cibw_example.png" alt="Image of sp-repo-review showing checks" class="align-center" width="60%">



<figcaption>
<p><span class="caption-text">Running sp-repo-review on cibuildwheel</span>
</figcaption>
</figure>

<!-- prettier-ignore-end -->
<h2 id="using-the-guide">Using the guide<a class="headerlink" href="#using-the-guide" title="Link to this heading">#</a></h2>
<p>If you have a guide, we&rsquo;d like for you to compare it with the Scientific Python
Development Guide, and see if we are missing anything - bring it to our
attention, and maybe we can add it. And then you can link to the centrally
maintained guide instead of manually maintaining a complete custom guide. See
<a href="https://scikit-hep.org/developer">scikit-hep/developer</a> for an example; many pages now point at this guide.
We can also provide org integrations for <a href="https://github.com/scientific-python/cookie">cookie</a>, providing some
customizations when a user targets your org (targeting <code>scikit-hep</code> will add a
badge).</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="taxonomy:Tags" term="tutorials" label="tutorials" />
                             
                                <category scheme="taxonomy:Tags" term="cookie" label="cookie" />
                             
                                <category scheme="taxonomy:Tags" term="scientific-python" label="scientific-python" />
                             
                                <category scheme="taxonomy:Tags" term="summit" label="summit" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Developer Summit 1]]></title>
            <link href="https://blog.scientific-python.org/scientific-python/dev-summit-1/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://blog.scientific-python.org/scientific-python/dev-summit-1-sparse/?utm_source=atom_feed" rel="related" type="text/html" title="Developer Summit 1: Sparse Arrays" />
                <link href="https://blog.scientific-python.org/scientific-python/2022-czi-grant/?utm_source=atom_feed" rel="related" type="text/html" title="Scientific Python awarded CZI grant to improve communications infrastructure &amp; accessibility" />
                <link href="https://blog.scientific-python.org/scientific-python/alt-text-workshop-summary/?utm_source=atom_feed" rel="related" type="text/html" title="Team up! Alt text and cross-project community" />
                <link href="https://blog.scientific-python.org/scientific-python/gsod-2022-proposal/?utm_source=atom_feed" rel="related" type="text/html" title="Scientific Python GSoD 2022 Proposal" />
            
                <id>https://blog.scientific-python.org/scientific-python/dev-summit-1/</id>
            
            
            <published>2023-07-09T18:24:17-07:00</published>
            <updated>2023-07-09T18:24:17-07:00</updated>
            
            
            <content type="html"><![CDATA[<blockquote>Learn about the first Scientific Python Developer Summit.</blockquote><p>The first <a href="https://scientific-python.org/summits/developer/2023/">Scientific Python Developer Summit</a> (May 22-26, 2023) brought together 34 developers at the eScience Institute at the University of Washington to develop shared infrastructure, documentation, tools, and recommendations for libraries in the Scientific Python ecosystem.</p>
<h2 id="pre-summit-planning">Pre-summit planning<a class="headerlink" href="#pre-summit-planning" title="Link to this heading">#</a></h2>
<p>Prior to the summit we held several hour-long planning meetings:</p>
<ul>
<li><a href="https://scientific-python.org/summits/developer/2023/general-planning/">General (2023-02-27)</a></li>
<li><a href="https://hackmd.io/UNwG2BjJSxOUJ0M1iWI-nQ">May 15, Package metrics, DevStats</a></li>
<li><a href="https://hackmd.io/MmbP4VTATyG129_U56xdJQ">May 15, SPECs</a></li>
<li><a href="https://hackmd.io/YL5DNtsaSsS-1ZU3Pxkrxg">May 18, Community &amp; Documentation</a></li>
<li><a href="https://hackmd.io/0M1Yh7KwTnaXSsU14BiyQw">May 19, Build Systems &amp; CI Infrastructure</a></li>
<li><a href="https://hackmd.io/JL5slkxORA-q7VRN79v1sA">May 19, PyTest plugins &amp; Sphinx extensions</a></li>
</ul>
<h2 id="summit-execution">Summit execution<a class="headerlink" href="#summit-execution" title="Link to this heading">#</a></h2>
<p><img src="/scientific-python/dev-summit-1/checkin.png" alt="Morning group check-in"></p>
<p>At the summit, we had a brief check-in and then split into several groups based on each developers time and interests. Raw work progress and log have been collected in a <a href="https://hackmd.io/iEtdfbxfSbGwOAJTXmqyIQ?both">document</a>, we highlight just a few of things we accomplished below:</p>
<h3 id="sparse-arrays">Sparse arrays<a class="headerlink" href="#sparse-arrays" title="Link to this heading">#</a></h3>
<p>Almost a quarter of the group worked on <a href="https://scientific-python.org/summits/sparse/">sparse arrays</a> for the entire week.
This work is part of a larger, <a href="https://scientific-python.org/grants/sparse_arrays/">multi-year effort</a> to improve and expand SciPy&rsquo;s
<a href="https://github.com/scipy/scipy/pull/14822">sparse array API</a>, which will eventually
involve removing the sparse matrix API and eventually <code>np.matrix</code>.</p>
<p>More details can be found in the <a href="https://blog.scientific-python.org/scientific-python/dev-summit-1-sparse/">Developer Summit 1: Sparse</a> blog post.</p>
<h3 id="scientific-python-ecosystem-coordination-documents">Scientific Python Ecosystem Coordination documents<a class="headerlink" href="#scientific-python-ecosystem-coordination-documents" title="Link to this heading">#</a></h3>
<p>We made significant progress on several <a href="https://scientific-python.org/specs/">SPECs</a>, which had been drafted during previous sprints.</p>
<p><img src="/scientific-python/dev-summit-1/specs.png" alt="Snapshot of the current SPECs and their endorsements"></p>
<p><a href="https://scientific-python.org/specs/spec-0000">SPEC 0&mdash;Minimum Supported Versions </a>, an updated and expanded recommendation similar to
the <a href="https://numpy.org/neps/nep-0029-deprecation_policy.html">NEP 29</a>, was discussed and endorsed by several
<a href="https://scientific-python.org/specs/core-projects/">core projects</a>.</p>
<p><a href="https://scientific-python.org/specs/spec-0001/">SPEC 1&mdash;Lazy Loading of Submodules and Functions</a> was discussed and endorsed by
two <a href="https://scientific-python.org/specs/core-projects/">core projects</a>.</p>
<p><a href="https://scientific-python.org/specs/spec-0002/">SPEC 2&mdash;API Dispatch</a> was discussed (in a follow-up video meeting just after the summit)
and is in the process of being marked as <code>withdrawn</code> or something similar.</p>
<p><a href="https://scientific-python.org/specs/spec-0003/">SPEC 3&mdash;Accessibility</a> was discussed and updated. We hope to see it endorsed by
several core projects in the near future.</p>
<p><a href="https://scientific-python.org/specs/spec-0004/">SPEC 4&mdash;Using a creating nightly wheels</a> was rewritten, a helper GitHub action
<a href="https://github.com/scientific-python/upload-nightly-action">upload-nightly-action</a> was created, and PRs to update the various
projects to use the new <a href="https://anaconda.org/scientific-python-nightly-wheels/">nightly wheels location</a> were made. The updates
are now complete and the SPEC was endorsed by two core projects.</p>
<p>We anticipate several more core projects to endorse the existing SPECs over the coming months and we are now holding regular
SPEC steering committee meetings to continue developing and expanding the SPECs.</p>
<h3 id="community-building">Community building<a class="headerlink" href="#community-building" title="Link to this heading">#</a></h3>
<p>We created a comprehensive <a href="https://learn.scientific-python.org/community/">community guide</a> to empower projects in fostering their communities. This guide includes essential information on the role of community managers, along with practical strategies for community meetings, outreach, onboarding, and project management.</p>
<h3 id="development-documentation">Development Documentation<a class="headerlink" href="#development-documentation" title="Link to this heading">#</a></h3>
<p>We created a <a href="https://learn.scientific-python.org/development/">development guide</a>,
a <a href="https://github.com/scientific-python/cookie">new project template</a>,
and <a href="https://learn.scientific-python.org/development/guides/repo-review/">existing project review</a>.</p>
<h3 id="serendipitous-collaboration">Serendipitous Collaboration<a class="headerlink" href="#serendipitous-collaboration" title="Link to this heading">#</a></h3>
<p>One of the fun things that happens at summits like these are the chance encounters of people from different projects.
For example, a couple of attendees worked on creating a co-collaboration network across the broader scientific python ecosystem.
This gave us the opportunity to look at how contributors collaborate across projects.
We could see how the bigger projects were all clustered together as there are multiple contributors who share maintenance duties for multiple projects.
We could also, for example, see how the Scikit-HEP cluster was a bit further away from the usual scientific Python cluster.
An action item for us :) We need more collaboration!!</p>
<p><img src="/scientific-python/dev-summit-1/collab.png" alt="Visualization of co-collaboration network"></p>
<h3 id="pytest-pluginssphinx-extensions">Pytest plugins/Sphinx extensions<a class="headerlink" href="#pytest-pluginssphinx-extensions" title="Link to this heading">#</a></h3>
<p>Several attendees worked on pytest plugins and Sphinx extensions:</p>
<ul>
<li>
<p><a href="https://github.com/tylerjereddy/pytest-regex">pytest-regex</a> was created to support selecting tests with regular expressions.</p>
</li>
<li>
<p><a href="https://github.com/scientific-python/pytest-doctestplus">pytest-doctestplus</a> was moved upstream into the Scientific Python organization.
The summit provided new momentum to develop new features (e.g. produce updated docstring), and to use it for the NumPy documentation testing.</p>
</li>
<li>
<p>sphinx-scientific-python, a new extension as a home for various features from the ecosystem, e.g.,
we agreed on bringing existing extensions from MNE tools to this extension.</p>
</li>
<li>
<p>pydata-sphinx-theme updates</p>
</li>
</ul>
<h3 id="scipy-release-management-progress">SciPy release management progress<a class="headerlink" href="#scipy-release-management-progress" title="Link to this heading">#</a></h3>
<p>The first release candidate of SciPy 1.11.0 was published on PyPI
on May 31, 2023, five days after the conclusion of the summit. The
summit facilitated high-bandwidth decision making on several proposed
SciPy code changes by allowing the current SciPy release manager (Tyler Reddy,
Los Alamos National Laboratory) to consult with other SciPy core developers
in person. Specific code changes were discussed with the following SciPy
maintainers: Stefan van der Walt (<code>scipy.ndimage</code>), CJ Carey (<code>scipy.sparse</code>),
Matt Haberland (<code>scipy.stats</code>), and Pamphile Roy (<code>scipy.stats</code>). When SciPy
releases are performed out of band from the summit, the release manager
will often have to delay incorporation of useful code changes to the
next release six months later, due to lack of availability of the
pertinent domain experts.</p>
<!--

### Lecture notes
-->
<h3 id="package-metrics">Package metrics<a class="headerlink" href="#package-metrics" title="Link to this heading">#</a></h3>
<p>We factored out a general <a href="https://github.com/scientific-python/devstats">developer statistics package</a>
from our prototype <a href="https://devstats.scientific-python.org/">developer statistics website</a>.</p>
<!--

## Post-summit implementation

We are still in the process of
-->]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="taxonomy:Tags" term="summit" label="Summit" />
                             
                                <category scheme="taxonomy:Tags" term="scientific-python" label="Scientific-Python" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Developer Summit 1: Sparse Arrays]]></title>
            <link href="https://blog.scientific-python.org/scientific-python/dev-summit-1-sparse/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://blog.scientific-python.org/scientific-python/2022-czi-grant/?utm_source=atom_feed" rel="related" type="text/html" title="Scientific Python awarded CZI grant to improve communications infrastructure &amp; accessibility" />
                <link href="https://blog.scientific-python.org/scientific-python/alt-text-workshop-summary/?utm_source=atom_feed" rel="related" type="text/html" title="Team up! Alt text and cross-project community" />
                <link href="https://blog.scientific-python.org/scientific-python/gsod-2022-proposal/?utm_source=atom_feed" rel="related" type="text/html" title="Scientific Python GSoD 2022 Proposal" />
            
                <id>https://blog.scientific-python.org/scientific-python/dev-summit-1-sparse/</id>
            
            
            <published>2023-07-09T10:07:40-04:00</published>
            <updated>2023-07-09T10:07:40-04:00</updated>
            
            
            <content type="html"><![CDATA[<blockquote>Sparse Arrays at the May Developer Summit in Seattle</blockquote><p>(May 22-26, 2023, Seattle WA) &ndash;
The first <a href="https://blog.scientific-python.org/scientific-python/dev-summit-1/">Scientific Python Developer Summit</a> provided an opportunity
for core developers from the scientific Python ecosystem to come together to:</p>
<ol>
<li>improve joint infrastructure</li>
<li>better coordinate core projects</li>
<li>work on a shared strategic plan</li>
</ol>
<p>Related notes/sites:</p>
<ul>
<li><a href="https://hackmd.io/iEtdfbxfSbGwOAJTXmqyIQ?view">Worklog</a>.</li>
<li><a href="https://scientific-python.org/summits/developer/2023/">Planning Meeting Notes and Info</a>.</li>
</ul>
<p>One of the focuses of the summit was Sparse Arrays, and specifically their implementation in SciPy.
This post attempts to recap what happened with &ldquo;sparse&rdquo; at the summit
and a glimpse of plans for our continuing work. The Sparse Array working group
holds <a href="https://scientific-python.org/calendars">open follow-up meetings</a>, currently scheduled every two weeks,
to continue the momentum and move this project forward.</p>
<p>At the Summit, we focused on improving the newly added Sparse Array API
in SciPy, that lets users manipulate sparse data with NumPy
semantics (before, SciPy used NumPy&rsquo;s 2D-only Matrix API, but that is <a href="https://stackoverflow.com/questions/53254738/deprecation-status-of-the-numpy-matrix-class">slated for deprecation</a>).
Our goal at the summit was to give focused energy to the effort,
bring new people on board, and connect downstream users with the development
effort. We also worked to create a working group for this project that would
last beyond the summit itself.</p>
<p>The specific PRs and Issues involved in <code>scipy.sparse</code> are detailed in the
<a href="https://hackmd.io/1Q2832LDR_2Uv_-cV-wnYg">Summit 2023 scipy.sparse Report</a>,
with more detailed description appearing in the
<a href="https://hackmd.io/iEtdfbxfSbGwOAJTXmqyIQ?view">Summit Worklog</a>.
Some big picture take-aways are:</p>
<ul>
<li>Reorganized how to check for matrix/array/format info. This involved
adding a <code>format</code> attribute describing which format of sparse storage is used,
changing functions <code>issparse</code>/<code>isspmatrix</code> as well as shifting
the class hierarchy to allow easy <code>isinstance</code> checking.
The interface going forward includes:
<ul>
<li><code>issparse(A)</code>: True when a sparse array or matrix.</li>
<li><code>isinstance(A, sparray)</code>: True when a sparse array.</li>
<li><code>isspmatrix(A)</code>: True when a sparse matrix.
To check the format of a sparse array or matrix use <code>A.format == &quot;csr&quot;</code> or similar.</li>
</ul>
</li>
<li>Made decisions about how to approach the &ldquo;creation functions&rdquo; for sparse arrays.
The big-picture approach is to introduce new functions with an <code>_array</code> suffix which
construct sparse arrays. The old names will continue to create sparse matrix until
post-deprecation removal.
Some specific changes made include:
<ul>
<li>Add the creation function <code>diags_array(A)</code> (and planned for <code>eye_array</code>, <code>random_array</code> and others).</li>
<li>Create a <code>sparse.linalg.matrix_power</code> function for positive integer matrix power of a sparse array</li>
</ul>
</li>
<li>Made progress toward 1D sparse arrays. The data structures for 1d may be quite different from 2d.
A prototype <code>coo_array</code> allowed exploration of possible n-d arrays, though that is not a short-term goal.</li>
<li>Explored feasibility and usefulness of defining <code>__array_ufunc__</code> and other <code>__array_*__</code> protocols for sparse arrays</li>
<li>Made clearer distinction between private and public methods for sparse arrays</li>
<li>Improved documentation for sparse arrays</li>
</ul>
<p>Our goal is to have a working set of sparse array construction functions
and a 1d sparse array class (focusing on <code>coo_array</code> first) in plenty of
time for intensive testing before SciPy v1.12. This will then allow us to
focus on creating migration documents and tools as well as helping downstream
libraries make the shift to sparse arrays. We hope to enable the removal of
deprecated sparse matrix interfaces in favor of the array interface. For this
to happen we will need most downstream users to shift to the sparse array API.
We intend to help them do that.</p>
<p>Our work continues with a community call every <a href="https://scientific-python.org/calendars">two weeks on Fridays.</a>
Near term work is to:</p>
<ul>
<li>Continue improving sparse creation functions: diags, eye, random and others.</li>
<li>Deprecate some matrix-specific functionality</li>
<li>General performance improvements</li>
<li>Adapting scikit-learn to support sparse arrays (to be discussed with scikit-learn&rsquo;s maintainers)</li>
</ul>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="taxonomy:Tags" term="summit" label="Summit" />
                             
                                <category scheme="taxonomy:Tags" term="scientific-python" label="Scientific-Python" />
                             
                                <category scheme="taxonomy:Tags" term="scipy.sparse" label="scipy.sparse" />
                             
                                <category scheme="taxonomy:Tags" term="sparse" label="Sparse" />
                            
                        
                    
                
            
        </entry>
    
</feed>
