Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Development Documentation Overhaul #10286

Merged
merged 40 commits into from
Jul 2, 2019
Merged

Conversation

mdhaber
Copy link
Contributor

@mdhaber mdhaber commented Jun 10, 2019

Closes #8353
Closes #8966
Closes #9951
Closes #10355
Partially addresses #8575, but information about using Cython as a bridge to other compiled code should be added.
development_workflow.rst and all files in the /gitwash adapted from NumPy documentation.

Most existing SciPy documentation has been preserved, but may have been moved (e.g. parts from HACKING.rst.txt have been redistributed). Please see self-review for more information.

Questions:

  • Why does HACKING.rst.tst exist separately in the scipy root directory? Why not just put the contents in \doc\source\hacking.rst? Just curious.
  • The extra slow tests are run by adding SCIPY_XSLOW=1 as an OS environment variable?
  • How should I credit NumPy for the Git and Development Workflow documentation?

TODO:

  • Fix CI failure.
  • link to CONTRIBUTING.rst somewhere. (I don't know that I've run across this before, so if it had a link before perhaps it was buried?)
  • Read through everything. I know there are a lot of issues due to things moving around.

Copy link
Contributor Author

@mdhaber mdhaber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments to help reviewers.

@@ -6,7 +8,7 @@ This document aims to give an overview of how to contribute to SciPy. It
tries to answer commonly asked questions, and provide some insight into how the
community process works in practice. Readers who are familiar with the SciPy
community and are experienced Python coders may want to jump straight to the
`git workflow`_ documentation.
:ref:`contributor-toc`.
Copy link
Contributor Author

@mdhaber mdhaber Jun 10, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New contributors were not ready to jump to NumPy's git workflow documentation.
Now they are taken to a new Contributor Table of Contents (CTOC).

@@ -114,6 +116,29 @@ other users and yourself. Aiming for consensus in the discussion is important
rare cases that agreement cannot be reached, the maintainers of the module
in question can decide the issue.

.. _license-considerations:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved from general FAQ (which has been completely redistributed) to here, soon after it is needed. In this future, this could be written in a narrative style that matches the rest of the document.

@@ -194,289 +219,6 @@ project and SciPy the community, and it can always use a new pair of hands.
The sources for the website live in their own separate repo:
https://github.com/scipy/scipy.org


Recommended development setup
=============================
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved to new recommended_development_setup.rst linked from CTOC. Should probably be removed and included in individual build/install instructions, as the information in here is a useful part of setting up a development environment but is not nearly complete.

HACKING.rst.txt Outdated

SciPy structure
===============

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved to /doc/API.rst.txt


Checklist before submitting a PR
--------------------------------

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


===========================
Running SciPy Tests Locally
===========================
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New.


=================
Git configuration
=================
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This and the rest of doc/source/dev/gitwash adapted from NumPy documentation.


=====================
Git for development
=====================
Copy link
Contributor Author

@mdhaber mdhaber Jun 10, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NumPy removed the Development Workflow documentation from this list (https://www.numpy.org/devdocs/dev/gitwash/index.html) so I followed suit. It feels sort of incomplete without it, though. Maybe will fill it out with the basic commands (like git commit) at some point.


========
Git tips
========
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved from Development Workflow.


==========================
SciPy Core Developer Guide
==========================
Copy link
Contributor Author

@mdhaber mdhaber Jun 10, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a new contributor, I thought I should start with the "SciPy Developer Guide". Most of this isn't really appropriate for new contributors, though. Some of it could be useful, so it's linked from the CTOC, but hopefully now this looks less like it's supposed to be starting point for new contributors.

@mdhaber
Copy link
Contributor Author

mdhaber commented Jun 10, 2019

CI failure presumably for:

API.rst.txt:175: WARNING: Unknown target name: "how to document".
/home/circleci/repo/doc/source/building/faq.rst:10: WARNING: Unknown target name: "virtualenv".
/home/circleci/repo/doc/source/building/faq.rst:10: WARNING: Unknown target name: "virtualenvwrapper".
/home/circleci/repo/doc/source/building/faq.rst:39: WARNING: Unknown target name: "spyder".
/home/circleci/repo/doc/source/dev/contributor/quickstart_mac.rst:59: WARNING: Title underline too short.

Installing SciPy
--------------
/home/circleci/repo/doc/source/dev/contributor/quickstart_mac.rst:59: WARNING: Title underline too short.

Installing SciPy
--------------
/home/circleci/repo/doc/source/dev/contributor/quickstart_mac.rst:5: WARNING: Duplicate explicit target name: "here".
/home/circleci/repo/doc/source/dev/gitwash/useful_git.rst:227: WARNING: Unknown target name: "scipy/master".

Will fix.

@rgommers
Copy link
Member

Why does HACKING.rst.tst exist separately in the scipy root directory? Why not just put the contents in \doc\source\hacking.rst? Just curious.

It predates more extensive html docs, and that file name is (used to be) commonly used by projects for developer docs.

The extra slow tests are run by adding SCIPY_XSLOW=1 as an OS environment variable?

yes

How should I credit NumPy for the Git and Development Workflow documentation?

don't, in the docs themselves. just put it in the description of this PR. that applies to other credits too (e.g. I saw a "thanks to Yarik ..." note somewhere).

link to CONTRIBUTING.rst somewhere. (I don't know that I've run across this before, so if it had a link before perhaps it was buried?)

I don't think you should link back to that. It's a very concise intro, and is a file that GitHub recognizes so it needs to be there. It's an intro point to link to the real docs, no need to reverse that flow of information/attention.

Contributing to SciPy
Contributor Table of Contents

This naming is a bit odd. How about something like "Ways to contribute to SciPy" and "Contributor Guide"?

@mdhaber
Copy link
Contributor Author

mdhaber commented Jun 12, 2019

Re: "Thanks to Yarik", I didn't add that. It was in the NumPy version, but I'll remove it.
Yes, I'll change the names.

@mdhaber
Copy link
Contributor Author

mdhaber commented Jun 15, 2019

Changed names and fixed some errors, but somehow my changes are making Sphinx complain about 100 files not being included in any toctree. I compared to another doc build, and these warnings are the only messages not present there, so I assume they are why Makefile:115: recipe for target 'html-scipyorg' failed. Some of the warnings are for my files, but most of them aren't. How could the changes I made to the development documentation break all of this content generated from docstrings?

I will try adding all the new stuff to an invisible toctree to see if that helps. (Everything is already linked from contributor_toc.rst, which is intended to be a table of contents, so I don't want a visible toctree there.)

Update: I had to add all my new files to a visible toctree to get Sphinx to stop complaining about them. Now the warnings are all about auto-generated files:
Update: Fixed warnings about auto-generated files by rebasing on master.

@mdhaber
Copy link
Contributor Author

mdhaber commented Jun 16, 2019

I'm trying to improve the checklist for submitting a PR:
https://13487-1460385-gh.circle-artifacts.com/0/html-scipyorg/dev/contributor/development_workflow.html#checklist-before-submitting-a-pr

  • Is the wiki the place to add to the release notes? Update: I'm assuming so.
  • What is the easiest way to find the version number of the next release, if not running scipy.__version__ from the development version? The checklist says to get it from setup.py, but I don't see it there. Update: I'm recommending getting it from the version number of the newest release notes on the wiki.
  • If compiled code is not "integrated correctly via setup.py", could it still pass tests? Since there is not yet documentation for setting up compiled code correctly (except the Cython instructions I'm adding), I'm leaving this off the list.
  • I don't know what the "Is the new functionality added to the reference guide?" means if not "Do all public function have docstrings including examples?" I know there are some cases in which the reference guide will not be updated automatically based on the docstrings (adding a new method to an existing function?, but what are others?

@mdhaber
Copy link
Contributor Author

mdhaber commented Jun 20, 2019

@larsoner Hi Eric, you mentioned you'd be willing to review this. I added notes about finding a reviewer to Deciding on New Features, and I link to that in HACKING.rst.txt:

...the first step is to
discuss on the scipy-dev mailing list.  All new features, as well as changes to
existing code, are discussed and decided on there.  You can, and probably
should, already start this discussion before your code is finished. *Remember
that in order to be added to SciPy your code will need to be reviewed by
someone else, so try to find someone willing to review your work while you're
at it.*

Before reviewing, I was wondering if you had any idea what is causing the Sphinx build to fail. My comment above:

Changed names and fixed some errors...

describes the issue in more detail. I see there are also some new errors:

source/dev/core-dev/github.rst:10: WARNING: duplicate label labels-and-milestones, other instance in /home/circleci/repo/doc/source/dev/core-dev/github.rst
source/dev/core-dev/github.rst:61: WARNING: duplicate label backporting, other instance in /home/circleci/repo/doc/source/dev/core-dev/github.rst
source/dev/core-dev/deprecations.rst:4: WARNING: duplicate label deprecations, other instance in /home/circleci/repo/doc/source/dev/core-dev/deprecations.rst
source/dev/core-dev/distributing.rst:4: WARNING: duplicate label distributing-a-release, other instance in /home/circleci/repo/doc/source/dev/core-dev/distributing.rst
source/dev/core-dev/distributing.rst:88: WARNING: duplicate label supported-py-numpy-versions, other instance in /home/circleci/repo/doc/source/dev/core-dev/distributing.rst
/home/circleci/repo/doc/source/dev/core-dev/newfeatures.rst:5: WARNING: duplicate label deciding-on-new-features, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst
/home/circleci/repo/doc/source/dev/core-dev/releasing.rst:4: WARNING: duplicate label making-a-release, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst
/home/circleci/repo/doc/source/dev/core-dev/versioning.rst:4: WARNING: duplicate label version-numbering, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst

They just showed up when I moved the Core Developer documentation files into their own folder. I didn't make changes to all those files, and I don't see the duplicate labels it's complaining about.

@larsoner
Copy link
Member

Should be able to look tomorrow. In the meantime can you rebase on latest master to make sure it hasn't been fixed there?

@mdhaber
Copy link
Contributor Author

mdhaber commented Jun 21, 2019

@larsoner Genius! (or I'm a noob.)
I'm sure I rebased on master before branching, so I didn't suspect there was something wrong with it.

Now all that's left is the duplicate labels:

source/dev/core-dev/github.rst:10: WARNING: duplicate label labels-and-milestones, other instance in /home/circleci/repo/doc/source/dev/core-dev/github.rst
source/dev/core-dev/github.rst:61: WARNING: duplicate label backporting, other instance in /home/circleci/repo/doc/source/dev/core-dev/github.rst
source/dev/core-dev/deprecations.rst:4: WARNING: duplicate label deprecations, other instance in /home/circleci/repo/doc/source/dev/core-dev/deprecations.rst
source/dev/core-dev/distributing.rst:4: WARNING: duplicate label distributing-a-release, other instance in /home/circleci/repo/doc/source/dev/core-dev/distributing.rst
source/dev/core-dev/distributing.rst:88: WARNING: duplicate label supported-py-numpy-versions, other instance in /home/circleci/repo/doc/source/dev/core-dev/distributing.rst
/home/circleci/repo/doc/source/dev/core-dev/newfeatures.rst:5: WARNING: duplicate label deciding-on-new-features, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst
/home/circleci/repo/doc/source/dev/core-dev/releasing.rst:4: WARNING: duplicate label making-a-release, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst
/home/circleci/repo/doc/source/dev/core-dev/versioning.rst:4: WARNING: duplicate label version-numbering, other instance in /home/circleci/repo/doc/source/dev/core-dev/index.rst

That seems to be the same as this, so perhaps I need to edit exclude_patterns. Update. Yeah, that's it. Fix incoming.

Copy link

@fletcheaston fletcheaston left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nearly all of the instructions were clear, and easy to follow. The accompanying videos were also tremendously helpful in the few places where the documentation was difficult to follow.

While I was unable to add our root SciPy directory to our PYTHONPATH, there appears to be a simpler solution than creating directories and editing files. The potential solution is detailed in the comments.


#. Enter ``conda install cython numpy matplotlib pytest spyder``. |br| Note that we're only installing SciPy's dependencies (and Spyder so we can use the IDE), but not SciPy itself.

#. Our goal now is to add our root SciPy directory to the ``PYTHONPATH`` environment variable whenever this virtual environment is activated. This will ensure that Python can find the SciPy code we are trying to `import`. This requires adding a few files and folders deep inside your Anaconda installation directory. I suggest watching `the video <https://youtu.be/Faz29u5xIZc?t=35>`_ for this part. To summarize, you want to create:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I encountered some problems when adding our root development-SciPy directory to the PYTHONPATH environment variable.

First, the video tutorial differs from the written tutorial. In the video, the /conda/activate.d/env_vars.sh and /conda/deactivate.d/env_vars.sh were located within the /anaconda3/envs/scipydev/etc directory, not within the /anaconda3/envs/scipydev directory.

Screen Shot 2019-06-20 at 7 22 34 PM

Second, trying either approach (with ~/env_vars.sh in either ~/scipydev or ~/scipydev/etc) failed to make our development-SciPy library available in Spyder. While the Conda installed SciPy library was available in the base environment, neither the Conda installed library nor our development library were available in the scipydev environment. Unsure if anaconda has changed this in the last few months, or if I'm missing something entirely. Two solutions were found, however.

The first is a quick workaround, and not feasible for long-term development. This includes using the Spyder app (in either the base or scipydev environment) to edit our PYTHONPATH. The downside is that Spyder seemingly uses this PYTHONPATH for all development environments, and will override the Conda installed SciPy library in the base environment.
Screen Shot 2019-06-20 at 7 29 01 PM

The second solution is built into Anaconda, and appears to be the 'correct' way of doing this. Using the command "conda develop /path-to-scipy", Anaconda creates a .pth file within the ~/anaconda3/envs/scipydev/lib/pythonX.X/site-packages/ directory. On startup, Anaconda adds any newline-separated paths found in any .pth files to our environment path. Spyder will then use our development-SciPy library when in our scipydev environment, and the Conda installed SciPy library when in our base environment.

I would look into replacing this section on '...adding our root SciPy directory...' with the second solution.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More information on the "conda develop..." command can be found here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good find! I created the video about a year ago, maybe more. It looks like I made a typo when I (recently) typed the document based on the video.
I knew about changing PYTHONPATH from within Spyder, and you can toggle that on and off, but it's not as convenient as the solution I chose to present (once you get it set up right). Anyway, I didn't find this conda develop solution then. I'll look into it.

Copy link
Contributor Author

@mdhaber mdhaber Jun 21, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you write instructions for this and indicate which existing instructions they should replace?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely!


#. Install `Homebrew`_. Enter into the terminal |br| ``/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`` |br| or follow the installation instructions listed on the Homebrew website. Homebrew is a package manager for macOS that will help you download `gcc`, the software we will use to compile C, C++, and Fortran code included in SciPy.

#. Use Homebrew to install ``gcc`` by entering the command ``brew install gcc``.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Compared to the old documentation on getting the correct compilers (because I attempted to follow those directions very closely... for scientific reasons of course..), this is far simpler, and much harder to mess up.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great to hear!

* performing an in-place build of SciPy; and
* creating a virtual environment that adds this development version of SciPy to the Python path on macOS.

Its companion videos `Anaconda SciPy Dev: Part I (macOS)`_ and `Anaconda SciPy Dev: Part I (macOS)`_ show many of the steps being performed. This guide may diverge slightly from the videos over time with the goal of keeping this guide the simplest, up-to-date procedure.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The companion videos are extremely helpful! Watching and pausing them as I went through each respective step helped ensure I was doing the correct things.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great.


#. (Optional) Check your present working directory by entering ``pwd`` at the terminal. You should be in the root ``/scipy`` directory, not in a directory ending ``/scipy/scipy``.

#. Do an in-place build: enter ``python3 setup.py build_ext --inplace``. |br| This will compile the C, C++, and Fortran code that comes with SciPy. We installed ``python3`` with Anaconda. ``setup.py`` is a script in the root directory of SciPy, which is why you have to be in the SciPy root directory to call it. ``build_ext`` is a command defined in ``setup.py``, and ``--inplace`` is an option we'll use to ensure that the compiling happens in the SciPy directory you already have rather than some other folder on your computer.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explaining what the command does and what the flags do is a good move, especially for those who haven't built SciPy or similar libraries before.

doc/source/dev/contributor/quickstart_mac.rst Outdated Show resolved Hide resolved
Copy link

@fletcheaston fletcheaston left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The steps for rendering documentation locally with Sphinx are fairly straightforward, and they work well.

doc/source/dev/contributor/rendering_documentation.rst Outdated Show resolved Hide resolved

.. note::

Changes to certain documents do not take effect when Sphinx documentation

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we know what kinds of changes exhibit this behavior, or is it seemingly arbitrary?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know it happens when updating documentation of solver methods, but I'm not sure if that's the only time, so I didn't speculate. If someone else has an answer it would be good to know.

@mdhaber
Copy link
Contributor Author

mdhaber commented Jun 22, 2019

@larsoner CI is happy and the toctrees are gone. I still need to make the modifications Fletcher suggested, but they are relatively small. Update: all set.

Copy link
Member

@larsoner larsoner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a useful refactoring, I added a few sphinx-related suggestions that might make it a bit more streamlined (highlight and intersphinx use) and easier to understand for the next person to edit (rename included files as .inc and remove them from excludes).

'dev/releasing.rst',
'dev/versioning.rst',
# these are all included directly in dev/core-dev/index.rst:
'dev/core-dev/decisions.rst',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe the thing to do would be to rename the files with .rst.inc extension to make it clear that they are just meant to be included and not rendered/used on their own. Then they don't even need to be in this list because they won't match the doc extension (rst)

Copy link
Contributor Author

@mdhaber mdhaber Jun 27, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After renaming the files, removing the exclude patterns, modifying the include directives, e.g.

.. include:: decisions.rst.inc

and waiting for it to rebuild from scratch, I found /dev/core-dev/index.html to be empty. Reverting and waiting again : (
I'd prefer not to try again with this PR, if that's OK? Maybe we can make this an issue?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Saw your PR so I tried again.

The problem was that when I attempted to change the filename extension, macOS appended .rst onto it again and then automatically turned on "Hide filename extension" for that file. So my files were actually .rst.inc.rst but it only showed me .rst.inc, as though I had successfully changed the extension.

No ./ because all the files are in the same directory as index.rst.

doc/source/dev/contributor/benchmarking.rst Outdated Show resolved Hide resolved
doc/source/dev/contributor/contributor_toc.rst Outdated Show resolved Hide resolved
doc/source/dev/contributor/contributor_toc.rst Outdated Show resolved Hide resolved

.. _NumPy/SciPy Testing Guidelines: https://docs.scipy.org/doc/numpy/reference/testing.html

.. _numpydoc docstring guide: https://numpydoc.readthedocs.io/en/latest/format.html
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After making sure numpydoc is in our intersphinx this can be

:label:`numpydoc:format`

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doc/source/dev/contributor/rendering_documentation.rst Outdated Show resolved Hide resolved

#. Log into CircleCI with your GitHub account.
#. Visit the “ci/circleci: build_docs” job page as explained above.
#. Select the “Artifacts” tab and find ``index.html``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of this can be removed, given the above.

FYI any GitHub user can also access https://circleci.com/gh/scipy to see all builds, but they probably don't care in most cases.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe that's new? At some point I think that URL trick was needed. Thanks.

doc/source/dev/gitwash/development_setup.rst Outdated Show resolved Hide resolved
doc/source/dev/gitwash/dot2_dot3.rst Outdated Show resolved Hide resolved
@tylerjereddy
Copy link
Contributor

What is the easiest way to find the version number of the next release, if not running scipy.version from the development version? The checklist says to get it from setup.py, but I don't see it there. Update: I'm recommending getting it from the version number of the newest release notes on the wiki.

It is in setup.py (see below) for development branch, but you'd be right that a released version of SciPy probably wouldn't have the next version string around IIRC. I suppose you could also check the milestones available on GitHub, but programmatically probing the next SciPy stable release from an older stable release would indeed seem confusing to me.

 56 MAJOR = 1
 57 MINOR = 4
 58 MICRO = 0
 59 ISRELEASED = False
 60 VERSION = '%d.%d.%d' % (MAJOR, MINOR, MICRO)

@mdhaber mdhaber changed the title WIP: Development Documentation Overhaul Development Documentation Overhaul Jun 25, 2019
@mdhaber
Copy link
Contributor Author

mdhaber commented Jun 27, 2019

Thanks @tylerjreddy didn't see that before. I'm adding it to the checklist.

Adapted existing NumPy documentation for SciPy. Changes are mostly trivial,
but should be helpful to new contributors.
Added contributor-toc.rst; link to it from source/index.rst and HACKING.rst.txt.

Remove "Recommended development setup", "SciPy structure", checklist, links,
and FAQ from HACKING.rst.txt. They will be added to other sections as appropriate.
HACKING.rst.txt is a good introduction to how to contribute, but it does not
prepare the new reader for actually using all the rest of this information.
Added macOS Development Setup Quickstart guide
Moved ecommended Development Setup from HACKING.rst.txt to new document
New SciPy contributors are likely to think of themselves as
"Developers", but this guide is geared toward Core Developers.
The name made it sound like it was a good place to start learning
about developing for SciPy, but it isn't. I hope this slight change
helps to distinguish it from the rest of the contributor documentation.
@mdhaber
Copy link
Contributor Author

mdhaber commented Jul 1, 2019

@Kai-Striega @larsoner I've responded to comments and cleaned commit history. Can we merge before the sprint at the SciPy conference (July 13/14)?

@Kai-Striega
Copy link
Member

Kai-Striega commented Jul 1, 2019 via email

@pvanmulbregt
Copy link
Contributor

I added gh-10386 with instructions on adding a new scipy.stats distribution. I kept it separate so that it wouldn't get lost in the conversation of this PR. Similarly the process to add a function to scipy.special is sufficiently complicated that it should be written down. (There are some old minimal docs in scipy/doc/source/dev/modules.rst but developers would probably appreciate step-by-step instructions for the ~10 steps needed.)

Does this Overhaul have an obvious place for such instructions?

@mdhaber
Copy link
Contributor Author

mdhaber commented Jul 2, 2019

@pvanmulbregt adding those is a great idea. There is definitely a good place for them, but yeah - this PR is already massive, so let's get this merged and then you can fit these documents into the new table of contents.

@Kai-Striega @larsoner I tried to clean the commit history after responding to your comments. Look ready to go? If so, would one of you hit the green button?

@Kai-Striega
Copy link
Member

@mdhaber just confirming merge or squash & merge?

@mdhaber
Copy link
Contributor Author

mdhaber commented Jul 2, 2019

@Kai-Striega I've tried to keep the commits logical. If you think they look OK to you, regular merge is good.

@WarrenWeckesser
Copy link
Member

@mdhaber, a belated thanks for this!

Earlier in the discussion you asked about the file HACKING.rst.txt. I still have a question about it. I'd like to see that file changed to CONTRIBUTING.rst (and merge anything from the existing CONTRIBUTING.rst into that file if it is not already there). Having both is clearly redundant, and the current CONTRIBUTING.rst has just a couple paragraphs. The first section title in HACKING.rst.txt is "Ways to contribute", so the name CONTRIBUTING.rst seems the most appropriate for the merged file, and these days it just seems like the right name to use.

Is there any reason to not merge these? I can do it if there is no reason not to.

@mdhaber
Copy link
Contributor Author

mdhaber commented Jul 15, 2019

@WarrenWeckesser note that @rgommers wrote on June 10:

Why does HACKING.rst.tst exist separately in the scipy root directory? Why not just put the contents in \doc\source\hacking.rst? Just curious.

It predates more extensive html docs, and that file name is (used to be) commonly used by projects for developer docs.

link to CONTRIBUTING.rst somewhere. (I don't know that I've run across this before, so if it had a link before perhaps it was buried?)

I don't think you should link back to that. It's a very concise intro, and is a file that GitHub recognizes so it needs to be there. It's an intro point to link to the real docs, no need to reverse that flow of information/attention.

If it's OK to break from history and not have a HACKING.rst.txt, it sounds like putting that file's contents into CONTRIBUTING.rst would satisfy GitHub, and it makes more sense to me, too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

SciPy Development Documentation improve docs on building docs SciPy Dev Install Videos
9 participants