Skip to content

[DOC] Add developer guide for pytorch-forecasting (v1 + v2) - #2351

Open
echo-xiao wants to merge 11 commits into
sktime:mainfrom
echo-xiao:developer-guide-2301
Open

[DOC] Add developer guide for pytorch-forecasting (v1 + v2)#2351
echo-xiao wants to merge 11 commits into
sktime:mainfrom
echo-xiao:developer-guide-2301

Conversation

@echo-xiao

Copy link
Copy Markdown
Contributor

LLM-assisted, human-directed content, produced with Claude Opus 4.8.

Reference Issues/PRs

Closes #2301 (part of the v2 documentation umbrella #2304).

What does this implement/fix? Explain your changes.

Adds docs/source/developer_guide.rst, a contributor-facing developer guide
covering both the v1 (stable) and v2 (active redesign) APIs, wired into the
Tutorials toctree.

Structure: Overview → Setup / CI → Architecture (v1 / v2 / v1→v2, with two
mermaid diagrams and a v1↔v2 comparison table) → Adding a contribution (shared
conventions, the official extension templates for models / data modules /
metrics, and migrating a v1 model to v2) → Verifying & submitting → Roadmap →
Getting help.

Design choices:

  • Delegates the fork/clone/editable-venv setup and PR best-practices to the
    existing installation.rst rather than duplicating them.
  • Delegates deep architecture reference to the existing v2 pages (data_v2,
    models_v2, pkg_v2, api_v2) and links the v2 tutorial notebooks for
    runnable end-to-end examples.
  • Emphasises v2 and the v1→v2 developer migration, since that is the active
    work, and distinguishes it from the user-facing code migration guide.

What should a reviewer concentrate their feedback on?

  • This PR adds one documentation build dependency, sphinxcontrib-mermaid (to
    the [docs] extra in pyproject.toml and to conf.py), used only to render
    the two architecture diagrams. I'm happy to drop the diagrams and the
    dependency for a zero-dependency page if you prefer — the ReadTheDocs PR
    preview shows them rendering.
  • Whether the placement (under the Tutorials toctree) and the v1/v2 balance
    read well.

Did you add any tests for the change?

No — documentation-only change. The docs build cleanly (make html) with no new
warnings; all cross-references resolve and the ReadTheDocs PR preview renders
correctly.

Any other comments?

Content is grounded in the codebase — every class, method, tag, and CI job
referenced was verified against the source (extension templates, base classes,
.github/workflows/test.yml, pyproject.toml).

PR checklist

  • The PR title starts with [DOC].
  • Added/modified tests — N/A (documentation only).
  • Used pre-commit hooks.

…ide (rename to migration_v1_to_v2, move under tutorials)
@echo-xiao

Copy link
Copy Markdown
Contributor Author

hi, @phoeenniixx this developer guide (#2301) is the general contribution guide, and the model migration guide (#2288, pr #2349) is the detailed v1→v2 model-migration companion. once both are merged, a small follow-up pr will add the bidirectional :doc: cross-links between them.

@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@a4068ff). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2351   +/-   ##
=======================================
  Coverage        ?   87.34%           
=======================================
  Files           ?      171           
  Lines           ?    10080           
  Branches        ?        0           
=======================================
  Hits            ?     8804           
  Misses          ?     1276           
  Partials        ?        0           
Flag Coverage Δ
cpu 87.34% <ø> (?)
pytest 87.34% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@phoeenniixx phoeenniixx left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice start!
I have a few comments

  • There is a lot of use of em dashes (--) we should avoid that, makes it awkward, no?
  • I can see explaination of v1 and v2, you can simply point to v1 and v2 API for this, no need to explain in the developer guide.
  • There is a table for v1 to v2 - should that be in the migration guide instead?
  • FOr the extension-templates, it would be great if we could add the link to the templates as well
  • Also, for the CI, I am not sure we need to explain the matrix - the devs care more about the test framework just? @fkiraly what do you think?

Comment thread docs/source/tutorials.rst Outdated
tutorials/building
tutorials/deepar
tutorials/nhits
developer_guide

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should add it to getting-started and installation page, no? We need to make it easily accessible. Rn it is too deep in the stack

@phoeenniixx

Copy link
Copy Markdown
Member

hi, @phoeenniixx this developer guide (#2301) is the general contribution guide, and the model migration guide (#2288, pr #2349) is the detailed v1→v2 model-migration companion. once both are merged, a small follow-up pr will add the bidirectional :doc: cross-links between them.

Suggestion:
You can stack these PRs: https://www.sktime.net/docs/developer-guide/git-workflow/#working-on-a-chain-of-dependent-tasks-pull-request-stacking

echo-xiao and others added 4 commits July 25, 2026 14:51
…me#2348)

Bumps [actions/setup-python](https://github.com/actions/setup-python)
from 6 to 7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-python/releases">actions/setup-python's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<h3>Enhancements</h3>
<ul>
<li>Migrate to ESM and upgrade dependencies by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1330">actions/setup-python#1330</a></li>
<li>Pin SHA commits and update docs with latest versions by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1338">actions/setup-python#1338</a></li>
<li>Remove the pip-install input by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/1336">actions/setup-python#1336</a></li>
</ul>
<h3>Bug Fix</h3>
<ul>
<li>Fix to Classify stderr warning messages as warnings instead of
errors in annotations by <a
href="https://github.com/lmvysakh"><code>@​lmvysakh</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1335">actions/setup-python#1335</a></li>
<li>Validate and retry manifest fetch to prevent silent failures by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1332">actions/setup-python#1332</a></li>
</ul>
<h3>Dependency Upgrade</h3>
<ul>
<li>Bump certifi from 2020.6.20 to 2024.7.4 in
/<strong>tests</strong>/data by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1328">actions/setup-python#1328</a></li>
<li>Remove EOL Python versions and Bumps numpy text fixture by <a
href="https://github.com/priya-kinthali"><code>@​priya-kinthali</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1333">actions/setup-python#1333</a></li>
<li>Upgrade <code>@​actions/cache</code> to 6.2.0 by <a
href="https://github.com/philip-gai"><code>@​philip-gai</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1337">actions/setup-python#1337</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/lmvysakh"><code>@​lmvysakh</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1335">actions/setup-python#1335</a></li>
<li><a
href="https://github.com/philip-gai"><code>@​philip-gai</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1337">actions/setup-python#1337</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v6...v7.0.0">https://github.com/actions/setup-python/compare/v6...v7.0.0</a></p>
<h2>v6.3.0</h2>
<h2>What's Changed</h2>
<h3>Enhancement</h3>
<ul>
<li>Add RHEL support and include Linux distro in cache keys by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1323">actions/setup-python#1323</a></li>
<li>Fix pip cache error handling on Windows by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1040">actions/setup-python#1040</a></li>
</ul>
<h3>Dependency update</h3>
<ul>
<li>Upgrade minimatch from 3.1.2 to 3.1.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1281">actions/setup-python#1281</a></li>
<li>Upgrade actions dependencies by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a>
with <a href="https://github.com/Copilot"><code>@​Copilot</code></a> in
<a
href="https://redirect.github.com/actions/setup-python/pull/1303">actions/setup-python#1303</a></li>
<li>Upgrade <code>@​actions/cache</code> to 5.1.0, log cache write
denied by <a
href="https://github.com/jasongin"><code>@​jasongin</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1324">actions/setup-python#1324</a></li>
<li>Upgrade dependency versions and test workflow configuration by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-python/pull/1322">actions/setup-python#1322</a></li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update advanced-usage.md by <a
href="https://github.com/Dunky-Z"><code>@​Dunky-Z</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/811">actions/setup-python#811</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a>
with <a href="https://github.com/Copilot"><code>@​Copilot</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1303">actions/setup-python#1303</a></li>
<li><a href="https://github.com/jasongin"><code>@​jasongin</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/1324">actions/setup-python#1324</a></li>
<li><a href="https://github.com/Dunky-Z"><code>@​Dunky-Z</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/setup-python/pull/811">actions/setup-python#811</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-python/compare/v6.2.0...v6.3.0">https://github.com/actions/setup-python/compare/v6.2.0...v6.3.0</a></p>
<h2>v6.2.0</h2>
<h2>What's Changed</h2>
<h3>Dependency Upgrades</h3>
<ul>
<li>Upgrade dependencies to Node 24 compatible versions by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/setup-python/pull/1259">actions/setup-python#1259</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-python/commit/5fda3b95a4ea91299a34e894583c3862153e4b97"><code>5fda3b9</code></a>
Pin SHA commits and update docs with latest versions (<a
href="https://redirect.github.com/actions/setup-python/issues/1338">#1338</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/4ab7e95f05e168b4356aebde89dd84f59c283d8e"><code>4ab7e95</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/setup-python/issues/1337">#1337</a>
from actions/philip-gai/bump-actions-cache-6-2-0</li>
<li><a
href="https://github.com/actions/setup-python/commit/0f3a009f475dbea83c0371cd85d099690fee8c5c"><code>0f3a009</code></a>
Remove the pip-install input (<a
href="https://redirect.github.com/actions/setup-python/issues/1336">#1336</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/f8cf4291c8b8e273ddd26e569454615c7315d932"><code>f8cf429</code></a>
Migrate to ESM and upgrade dependencies (<a
href="https://redirect.github.com/actions/setup-python/issues/1330">#1330</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/54baeea5b34417d10a7479663a23cca53ea209b5"><code>54baeea</code></a>
Validate and retry manifest fetch to prevent silent failures (<a
href="https://redirect.github.com/actions/setup-python/issues/1332">#1332</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/c7092773a316760f4ecfe498e4af668a4dafeac5"><code>c709277</code></a>
Annotation code fix (<a
href="https://redirect.github.com/actions/setup-python/issues/1335">#1335</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/6849080452e69b330395e8a6d23cf90f56d76a1a"><code>6849080</code></a>
remove EOL Python versions and Bumps numpy text fixture (<a
href="https://redirect.github.com/actions/setup-python/issues/1333">#1333</a>)</li>
<li><a
href="https://github.com/actions/setup-python/commit/0903b469fbf4441aadfe4f4b249dc5b1fba3a73e"><code>0903b46</code></a>
Bump certifi from 2020.6.20 to 2024.7.4 in /<strong>tests</strong>/data
(<a
href="https://redirect.github.com/actions/setup-python/issues/1328">#1328</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/setup-python/compare/v6...v7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-python&package-manager=github_actions&previous-version=6&new-version=7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… compress CI, promote to top-level nav, cross-link migration guide
@echo-xiao
echo-xiao force-pushed the developer-guide-2301 branch from a2f4ae9 to 0f84175 Compare July 25, 2026 22:24
@echo-xiao

Copy link
Copy Markdown
Contributor Author

hi, @phoeenniixx thx for the review. i have already stacked the two PRs, so the cross-links are in place. the diff includes #2349 until it merges, then i'll rebase to clean up.

  • remoted dashes
  • trimmed the v1/v2 architecture parts
  • removed v1->v2 table, now points to migration guide
  • dropped the ci matrix, i think there is not need to keep it, but i can always restore it if @fkiraly prefer it
  • movedthis to the top-level nav

for pr #2349 , the migration guide is now linked from the beta box at the top of every v2 page.

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.

[ENH] Add a developer's Guide

3 participants