Skip to content

docs: modernize documentation structure - #167

Draft
galjos wants to merge 14 commits into
devfrom
agent/modernize-docs
Draft

docs: modernize documentation structure#167
galjos wants to merge 14 commits into
devfrom
agent/modernize-docs

Conversation

@galjos

@galjos galjos commented Aug 7, 2026

Copy link
Copy Markdown
Member

Scope

  • reorganize the manual around getting started, analyses, data, CLI reference, Python functions and development
  • add focused RDF, MSD, VACF, vibration and momentum guides
  • document package architecture, analysis extensions, validation and releases
  • adopt the shared Furo layout and logo treatment used by the other MolarVerse projects
  • replace the legacy Pages job with strict pull-request builds and GitHub Pages deployment actions

Re-evaluation after #168 and #169

  • merged the current dev branch into this branch
  • documented float64 trajectory parsing, fixed-bit compatibility paths, bounded fallbacks and parallel-work limits
  • corrected the RDF, MSD and momentum method descriptions to match the merged implementations
  • corrected the pull-request merge guidance and scientific units
  • fixed the mobile back-to-top control so it cannot cover equations or figures

Validation

  • 867 passed, 4 skipped in release type-checking mode
  • strict Sphinx HTML build with warnings as errors
  • strict Sphinx link check with warnings as errors
  • rendered checks at 320x568, 375x812, 768x1024, 844x390 and 1440x900
  • no page-level overflow, broken images or browser console errors on the landing, VACF, momentum, validation, output-schema and function-index pages
  • mobile navigation, logo alignment, scientific tables, VACF equation and VACF figure inspected directly

This PR remains a draft and is not merged. The repository Pages source is still
gh-pages; changing that setting is outside this draft.

@codecov

codecov Bot commented Aug 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.86%. Comparing base (bd55571) to head (289a3f4).

Additional details and impacted files
@@           Coverage Diff           @@
##              dev     #167   +/-   ##
=======================================
  Coverage   93.86%   93.86%           
=======================================
  Files         177      177           
  Lines        9215     9215           
=======================================
  Hits         8650     8650           
  Misses        565      565           
Flag Coverage Δ
unittests 93.86% <ø> (ø)
Files with missing lines Coverage Δ
PQAnalysis/io/restart_file/api.py 100.00% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@galjos
galjos marked this pull request as ready for review August 7, 2026 11:00
@galjos
galjos marked this pull request as draft August 7, 2026 11:01
galjos added 12 commits August 7, 2026 13:27
# Conflicts:
#	docs/source/developerGuide/developerGuide.rst
#	docs/source/userGuide/userGuide.rst
Address the review of the documentation draft:

- add a configure-pages step with enablement so the first Pages deploy
  switches the repository source to GitHub Actions instead of failing
  against the legacy gh-pages setting
- set sitemap_url_scheme to the plain link so the sitemap matches the
  flat deployed site instead of 404ing on language/version prefixes
- correct the build_nep_traj description (Neuroevolution Potential
  training data, not nudged elastic band)
- stop tracking the generated docs/source/code pages and ignore them
  together with docs/build, so local docs builds no longer dirty the
  working tree; drop the stale docs/autodoc.sh that conflicted with
  the better-apidoc build
- clarify that only conversion/support tools accept --mode o; the
  input-file analyses have no overwrite flag
- remove the orphaned reference/index.rst page and the unused breathe
  docs dependency; include momentum in the Cython-kernel list; ignore
  the generated momentum kernel source
Add a small local Sphinx extension with a pq-cli-table directive that
renders the command tables of the command-line reference and validates
them at build time: every listed name must exist in the pqanalysis
command registry, and after reading all pages every registered command
must be documented exactly once (prose-documented commands are marked
with pq-cli-covered). A renamed, removed or newly added command now
fails the strict documentation build instead of silently drifting out
of the reference tables. The purpose texts stay editorial.
The command-table extension scraped the attributes of the dispatcher
module. During the documentation build the api-doc generator imports
the package at the same time, so the dispatcher could be observed
half-initialized and the extension then saw no commands at all and
rejected every documented one. The strict build failed on CI while
passing locally, because the outcome depended on import order.

Read the dispatch table from the module source with ast instead and
import only the individual command modules, which have no import cycle
with the dispatcher. Raise immediately if the table cannot be read, so
an unreadable registry can no longer look like an empty one.
The dispatcher now keeps a lazy table that maps every command name to
its module, class and description, so the command tables of the
reference can be validated by reading that table alone. Parse it from
the module source and drop the import of the individual command
modules: the extension no longer depends on import order or on the
package being importable at all, and a table it cannot read is
reported instead of silently looking empty.
The analysis pages described what the software computes but not where
the methods come from or when their results can be trusted.

- add a references page with the primary sources for every implemented
  estimator, and cite them from the analysis pages where the quantity is
  defined; state that the project has no citable DOI of its own yet
- give the vibrational analysis its mathematics: the mass-weighted
  Hessian and its eigenproblem, the wavenumber conversion with its unit
  chain, the automatic sign heuristic, force constants, reduced masses
  and infrared intensities, each matching the implementation
- describe the linear momentum as a drift diagnostic and state the
  precision floor below which a reported norm is parsing noise
- add validity and interpretation sections to the radial distribution,
  mean square displacement and velocity autocorrelation pages: the
  minimum-image limit on r_max, the diffusive regime and fit window, the
  frequency resolution and Nyquist limit, and that no finite-size
  correction of the diffusion coefficient is applied
@github-actions

Copy link
Copy Markdown
Contributor

PYLINT REPORT

Your code has been rated at 9.78/10

Full report

Raw metrics

type number % previous difference
code 15638 45.62 NC NC
docstring 13023 37.99 NC NC
comment 463 1.35 NC NC
empty 5152 15.03 NC NC

Duplication

now previous difference
nb duplicated lines 0 NC NC
percent duplicated lines 0.000 NC NC

Messages by category

type number previous difference
convention 15 NC NC
refactor 135 NC NC
warning 17 NC NC
error 5 NC NC

% errors / warnings by module

module error warning refactor convention
PQAnalysis.type_checking 40.00 0.00 0.00 0.00
PQAnalysis.atomic_system.atomic_system 20.00 11.76 6.67 0.00
PQAnalysis.analysis.vibrational.vibrational_analysis 20.00 0.00 7.41 0.00
PQAnalysis 20.00 0.00 0.00 0.00
PQAnalysis.analysis.vacf._vacf_kernel_py 0.00 11.76 1.48 0.00
PQAnalysis.tools.traj_to_com_traj 0.00 11.76 0.00 0.00
PQAnalysis.io.traj_file._process_lines_py 0.00 11.76 0.00 0.00
PQAnalysis.io.moldescriptor_reader 0.00 11.76 0.00 0.00
PQAnalysis.tools.add_molecule 0.00 5.88 4.44 0.00
PQAnalysis.analysis.rdf._rdf_kernel_py 0.00 5.88 2.22 0.00
PQAnalysis.analysis.msd._msd_kernel_py 0.00 5.88 2.22 0.00
PQAnalysis.io.conversion_api 0.00 5.88 1.48 0.00
PQAnalysis.version 0.00 5.88 0.00 0.00
PQAnalysis.utils.custom_logging 0.00 5.88 0.00 0.00
PQAnalysis.io.write_api 0.00 5.88 0.00 0.00
PQAnalysis.io.restart_file.restart_writer 0.00 0.00 14.81 0.00
PQAnalysis.analysis.rdf.rdf 0.00 0.00 6.67 6.67
PQAnalysis.analysis.msd.msd 0.00 0.00 5.93 33.33
PQAnalysis.io.nep.nep_writer 0.00 0.00 5.19 6.67
PQAnalysis.analysis.vacf.vacf 0.00 0.00 4.44 13.33
PQAnalysis.io.traj_file._slab_parser_py 0.00 0.00 3.70 0.00
PQAnalysis.analysis.vacf.spectrum 0.00 0.00 3.70 0.00
PQAnalysis.io.traj_file.trajectory_reader 0.00 0.00 2.96 0.00
PQAnalysis.topology.bonded_topology.dihedral 0.00 0.00 2.22 0.00
PQAnalysis.core.residue 0.00 0.00 2.22 0.00
PQAnalysis.topology.bonded_topology.bonded_topology 0.00 0.00 1.48 0.00
PQAnalysis.topology.bonded_topology.bond 0.00 0.00 1.48 0.00
PQAnalysis.topology.bonded_topology.angle 0.00 0.00 1.48 0.00
PQAnalysis.io.traj_file.raw_frame_reader 0.00 0.00 1.48 0.00
PQAnalysis.core.cell.cell 0.00 0.00 1.48 0.00
PQAnalysis.atomic_system._standard_properties 0.00 0.00 1.48 0.00
PQAnalysis.analysis.vacf.api 0.00 0.00 1.48 0.00
PQAnalysis.analysis.spectrum_broadening.api 0.00 0.00 1.48 0.00
PQAnalysis.analysis.momentum.api 0.00 0.00 1.48 0.00
PQAnalysis.analysis.vibrational.vibrational_input_file_reader 0.00 0.00 0.74 6.67
PQAnalysis.traj.formats 0.00 0.00 0.74 0.00
PQAnalysis.topology.topology 0.00 0.00 0.74 0.00
PQAnalysis.topology.selection 0.00 0.00 0.74 0.00
PQAnalysis.io.traj_file.frame_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.restart_file.restart_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.input_file_reader.pq_analysis._parse 0.00 0.00 0.74 0.00
PQAnalysis.io.input_file_reader.pq.pq_input_file_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.input_file_reader.input_file_parser 0.00 0.00 0.74 0.00
PQAnalysis.io.info_file_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.formats 0.00 0.00 0.74 0.00
PQAnalysis.analysis.momentum.momentum 0.00 0.00 0.74 0.00
PQAnalysis.core.atom.element 0.00 0.00 0.00 13.33
PQAnalysis.analysis.vacf.vacf_input_file_reader 0.00 0.00 0.00 6.67
PQAnalysis.analysis.rdf.rdf_input_file_reader 0.00 0.00 0.00 6.67
PQAnalysis.analysis.msd.msd_input_file_reader 0.00 0.00 0.00 6.67

Messages

message id occurrences
too-many-positional-arguments 29
too-many-arguments 29
duplicate-code 20
too-many-locals 15
too-many-instance-attributes 13
invalid-name 12
too-complex 9
inconsistent-return-statements 8
fixme 7
too-many-branches 5
missing-type-doc 4
too-many-return-statements 3
too-many-lines 3
unused-import 2
too-many-statements 2
redefined-builtin 2
missing-kwoa 2
use-set-for-membership 1
unexpected-keyword-arg 1
too-many-public-methods 1
possibly-used-before-assignment 1
no-member 1
missing-param-doc 1
arguments-differ 1

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.

1 participant