Skip to content

Omnibus backport for 1.4.x #3146

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 41 commits into from
Jan 6, 2020
Merged

Conversation

oesteban and others added 30 commits January 6, 2020 10:42
The ``InterfaceHelpWriter`` class was practically a clone of
``ApiDocWriter``.

Both have been merged into one single module, having the Interface
helper inherit from the ApiDocWriter.
This PR follows up on nipy#3119 (merge that one first for a clean diff, or
diff against ``oesteban:maint/dedup-apigen-code``).

In practice, this PR fixes several broken points of our documentation
(e.g., the workflows list was empty and now it has been updated,
changelog not rendered, API of pure python code not rendered by the
Nipype API parser was missing, etc.).

CHANGES
-------

* Replaced the ``numpydoc`` sphinx extension with
``sphinxcontrib-napoleon``.
* Removed autosummary sphinx extension, required by numpydoc
* Cleared up ``docs/sphinxext/*``, as nothing is now used from there
* Use current sphinx-apidoc/autodoc/autosummary
* Removed the modref generation tooling, as it is not necessary anymore
  after re-enabling apidoc.
* Cut building warnings down to 321 - just those we incur because our
  API generator. This required some fixes of some docstrings.
  Beyond those corresponding to the Nipype API generator, only missing
  links remain as warnings (for sections in the navbar).
* Updated changelogs to be reStructuredText.
Building on top of nipy#3119 and nipy#3129, this PR makes a deep revision of the
documentation:

  * Added a new ``build_docs`` job to CircleCI to test how it renders.
  * Minimized external machinery (under ``/tools/``) when building the
    documentation:

      1. Some minimal modifications to sphinx extensions (apidoc,
         napoleon) allow the generation of special documentation
         for nipype interfaces, as it used to be before this PR
      2. A new sphinx extension (``nipype.sphinxext.apidoc``) takes
         care of parsing and rendering inputs and outputs. They now
         look like the parameters/arguments of functions when formatted
         with numpydoc.

  * Revised the description of many interfaces and the documentation of
    the main class and the input/output specs.
  * Revised the structure of the navbar, separating out
    User-Guide/Examples, Interfaces-Index, and Devs' documentation.
  * Minimized the number of WARNINGS at documentation build to 5 (4 of
    them coming out from the auto-generated SEM tools).
Co-Authored-By: Chris Markiewicz <[email protected]>
Co-Authored-By: Chris Markiewicz <[email protected]>
Co-Authored-By: Chris Markiewicz <[email protected]>
Co-Authored-By: Chris Markiewicz <[email protected]>
Co-Authored-By: Chris Markiewicz <[email protected]>
In particular, after allowing printing the inheritance of interfaces,
links for ZZZCommandBase interfaces were broken, as originally filtered
out and not built. Now they are being built and we are back to 5
warnings.
oesteban and others added 11 commits January 6, 2020 10:49
Bringing CircleCI back to green after nipy#3124, nipy#3131, and nipy#3132.
By removing some space concatenation of strings, some of them were
r-strings and the concatenated one contained ``\n``, effectively
escaping the special return-carriage.

Instead of concatenating strings, the interface now accumulates the
lines in a list that is joined in the end.
Master is broken -- this PR relocates the pip install of
``niflow-nipype1-workflows`` so that it happens AFTER nipype
was installed.
@effigies effigies added this to the 1.4.1 milestone Jan 6, 2020
@effigies
Copy link
Member Author

effigies commented Jan 6, 2020

Once this is merged, we should merge into master like so:

git fetch upstream
git checkout upstream/master
git merge --strategy ours upstream/maint/1.4.x
git push upstream HEAD:master

Then when bugfixes are merged into maint/1.4.x, it will be easy to update master with a simple merge commit.

@codecov
Copy link

codecov bot commented Jan 6, 2020

Codecov Report

Merging #3146 into maint/1.4.x will increase coverage by 3.41%.
The diff coverage is 39.52%.

Impacted file tree graph

@@               Coverage Diff               @@
##           maint/1.4.x    #3146      +/-   ##
===============================================
+ Coverage        64.16%   67.57%   +3.41%     
===============================================
  Files              293      299       +6     
  Lines            39222    39499     +277     
  Branches          5168     5220      +52     
===============================================
+ Hits             25167    26693    +1526     
+ Misses           13016    12091     -925     
+ Partials          1039      715     -324
Flag Coverage Δ
#smoketests 53.03% <50.84%> (?)
#unittests 64.8% <39.52%> (+0.64%) ⬆️
Impacted Files Coverage Δ
nipype/interfaces/mrtrix3/tracking.py 89.47% <ø> (ø) ⬆️
nipype/interfaces/niftyreg/__init__.py 100% <ø> (ø) ⬆️
nipype/interfaces/dipy/tensors.py 39.72% <ø> (ø) ⬆️
nipype/utils/filemanip.py 77.59% <ø> (+4%) ⬆️
nipype/interfaces/cmtk/cmtk.py 17.96% <ø> (ø) ⬆️
nipype/utils/nipype2boutiques.py 51.95% <ø> (ø) ⬆️
nipype/interfaces/niftyseg/maths.py 77.52% <ø> (-0.25%) ⬇️
nipype/sphinxext/plot_workflow.py 13.79% <ø> (ø) ⬆️
nipype/interfaces/vista/vista.py 100% <ø> (ø) ⬆️
nipype/interfaces/dtitk/__init__.py 100% <ø> (ø) ⬆️
... and 134 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a5c7108...4953418. Read the comment docs.

@effigies effigies merged commit 7dd3b37 into nipy:maint/1.4.x Jan 6, 2020
@effigies effigies deleted the bp/1.4.x/cherrypicking branch January 6, 2020 17:54
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.

4 participants