Skip to content

DOC: Document the toolchain and its roadmap. #9500

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

Merged
merged 9 commits into from
Apr 21, 2019

Conversation

pvanmulbregt
Copy link
Contributor

Added some documentation for the toolchain needed to build/test/document
SciPy. In particular, document the roadmap for the Python and C language
standards, with a little rationale.

It is WIP for several reasons:

  1. The matters are currently under discussion.
  2. The list is incomplete.
  3. The content contains both tool/versions/dates, as well as some tips on how to not use the advanced features of some languages. The latter may not belong in such a document.
  4. The content may have some overlap with other parts of the SciPy doc.
  5. It makes the SciPy Developer Guide index.html page quite long. It may belong somewhere else.

It spite of the above caveats, it contains information I would have found useful when starting work on SciPy. So the PR is here to complement the roadmap gh-9489 and SciPy-dev py2.7/3.x discussions.

@pvanmulbregt pvanmulbregt added the Documentation Issues related to the SciPy documentation. Also check https://github.com/scipy/scipy.org label Nov 17, 2018
Copy link
Member

@rgommers rgommers left a comment

Choose a reason for hiding this comment

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

Thanks Paul, very nice overview. The developer guide could be a good place for this, or it could be included as a separate page in the refguide next to the roadmap. I don't have a strong preference.

C Language Standards
--------------------
[*NOTE: I'm unaware of any official SciPy decisions on the support of C standards.
This table shows what it could look like.*]
Copy link
Member

Choose a reason for hiding this comment

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

There's no official decision anywhere. It has been C89 forever, because that was the only option given the Windows situation.

It's tricky to make such decisions in advance (roadmap style). The thing is that we're evaluating such things by the impact on users and developers. Which is usually a case-by-case thing. E.g. when we decided to not ship without SSE2 support anymore, we just needed data on how many users as % of total user base was still running on older hardware without SSE2 support.

That said, document what we would like to see is very useful - let's just not call it a decision.

Copy link
Member

Choose a reason for hiding this comment

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

#9915 (comment) has a suggestion on C++ standard as well

Copy link
Contributor

Choose a reason for hiding this comment

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

I added a C++ standard statement, and some brief language to the effect that these are less "official" decisions and more "guidelines," especially for future adoptions of more modern standards

@rgommers
Copy link
Member

Thanks Paul, very nice overview. The developer guide could be a good place for this, or it could be included as a separate page in the refguide next to the roadmap. I don't have a strong preference.

Okay, now that I've just worked on gh-9537 I do have a preference: in the refguide makes the most sense to me.

@rgommers
Copy link
Member

I referred to the content in this PR a couple of times already, it is really useful. I suggest to move it to the refguide and merge it; we can then more easily incorporate new content as soon as it comes up.

@pvanmulbregt
Copy link
Contributor Author

@rgommers Now that you've referenced it, I'll have to spend some time this weekend thinking about it and finish it...

@tylerjereddy
Copy link
Contributor

I tried to take care of some of the low-hanging reviewer requested fixes here to breathe a little life into this nice doc improvement. Tried to replace some of the "NOTE" sections where we weren't sure with just general guidance language. Paul can always adjust my commit as appropriate.

So, the todo is basically just:

  • migrate to the refguide location Ralf suggests?
  • rebase on latest master (I didn't yet, just in case Paul had local changes on his commit hash base) if CI needs it maybe

For other improvements, it seems like Ralf may be just happy to have this ready to update, so perhaps we don't have to be super picky once the relocation is done?

@rgommers rgommers removed this from the 1.3.0 milestone Apr 20, 2019
@rgommers
Copy link
Member

taking the milestone off, that was just a reminder - this isn't really related to a release, we just point to the online devdocs/latest version anyway

@pvanmulbregt
Copy link
Contributor Author

Thanks @tylerjereddy and @rgommers for the comments. Yes, I do have some local unpushed changes, but I'm incorporating Tyler's changes.
Q: What is the desired directory for this doc?

@rgommers
Copy link
Member

It should show up somewhere in http://scipy.github.io/devdocs/#developer-s-guide. I would suggest calling this "Toolchain Roadmap and putting it right below "Detailed SciPy Roadmap"

@rgommers
Copy link
Member

so it would go in doc/source/toolchain.rst or some such name

pvanmulbregt and others added 5 commits April 20, 2019 19:11
Added some documentation for the toolchain needed to build/test/document
SciPy.  In particular, document the roadmap for the Python and C language
standards, with a little rationale.
@pvanmulbregt
Copy link
Contributor Author

Rebased on master, file moved to new location, updated and reformatted. Suitable for re-reviewing.

@pvanmulbregt pvanmulbregt changed the title DOC: WIP Document the toolchain and its roadmap. DOC: Document the toolchain and its roadmap. Apr 21, 2019
Copy link
Member

@rgommers rgommers left a comment

Choose a reason for hiding this comment

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

This looks great. Only a number of local comments left. The whole doc reads well.

Fixed some version numbers.
Added additional references.
Reformatted to stay under 80 characters per line (where possible).
Updated the BLAS/LAPACK description.
@rgommers
Copy link
Member

Looks great, time to merge this. Thanks a lot Paul!

@rgommers rgommers merged commit 8dd0789 into scipy:master Apr 21, 2019
@rgommers rgommers added this to the 1.3.0 milestone Apr 21, 2019
=============== ======== ==========================================
mpmath Recent http://mpmath.org/
scikit-umfpack Recent https://pypi.org/project/scikit-umfpack/
=============== ======== ==========================================
Copy link
Contributor

Choose a reason for hiding this comment

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

@rgommers should I add scikit-sparse?

Copy link
Member

Choose a reason for hiding this comment

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

Probably a good idea. Actually, could you run it by the mailing list first? We didn't have any discussion on this. My impression is that it should be fine, however for an indirect GPL dependency it's always good to have a few more eyes ....

@pvanmulbregt pvanmulbregt deleted the roadmap branch December 29, 2019 21:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation Issues related to the SciPy documentation. Also check https://github.com/scipy/scipy.org
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants