From 093b172a420a046a49d9a3cdb54aa4f907a3dba8 Mon Sep 17 00:00:00 2001 From: "Sahil S." Date: Tue, 30 Jun 2026 14:48:08 +0530 Subject: [PATCH] feat: add markdown link checker and PR template reminder - Add markdown-link-check to pre-commit config - Add PR template checklist item for CONTRIBUTING.md/AGENTS.md updates - Fix broken links found by the new checker Closes #654 --- .pre-commit-config.yaml | 6 ++++++ AGENTS.md | 1 + README.md | 12 ++++++------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b75a383f..be3b8031 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -49,3 +49,9 @@ repos: - id: mypy additional_dependencies: [types-PyYAML, types-Pillow, types-tqdm] description: Check for type errors + + - repo: https://github.com/tcort/markdown-link-check + rev: v3.12.2 + hooks: + - id: markdown-link-check + args: ['-q'] diff --git a/AGENTS.md b/AGENTS.md index c1a9c72d..d98dd79c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -75,6 +75,7 @@ W&B auto-disabled in tests. `DummyDatastore` used; example data downloaded from there. Ignoring them wastes everyone's time. 5. **Run pre-commit hooks locally.** Linting needs to be done locally before each new commit with e.g. `uvx pre-commit run --all` 6. **Testing Mandate.** Run `pytest tests/` before opening a PR and if tests fail do not open the PR, fix the failure first. +7. **Documentation update.** If this PR changes the contributor workflow, I've updated `CONTRIBUTING.md` / `AGENTS.md`. ### Communication diff --git a/README.md b/README.md index 68f7faa8..f797fdb5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![slack](https://img.shields.io/badge/slack-join-brightgreen.svg?logo=slack)](https://kutt.to/mllam) +[![slack](https://img.shields.io/badge/slack-join-brightgreen.svg?logo=slack)] [![Linting](https://github.com/mllam/neural-lam/actions/workflows/pre-commit.yml/badge.svg?branch=main)](https://github.com/mllam/neural-lam/actions/workflows/pre-commit.yml) [![CPU+GPU testing](https://github.com/mllam/neural-lam/actions/workflows/install-and-test.yml/badge.svg?branch=main)](https://github.com/mllam/neural-lam/actions/workflows/install-and-test.yml) @@ -9,7 +9,7 @@ Neural-LAM is a repository of graph-based neural weather prediction models for Limited Area Modeling (LAM). Also global forecasting is possible, but currently on a [different branch](https://github.com/mllam/neural-lam/tree/prob_model_global) ([planned to be merged with main](https://github.com/mllam/neural-lam/issues/63)). The code uses [PyTorch](https://pytorch.org/) and [PyTorch Lightning](https://lightning.ai/pytorch-lightning). -Graph Neural Networks are implemented using [PyG](https://pyg.org/) and logging is set up through [Weights & Biases](https://wandb.ai/). +Graph Neural Networks are implemented using [PyG](https://github.com/pyg-team/pytorch_geometric) and logging is set up through [Weights & Biases](https://wandb.ai/). The repository contains LAM versions of: @@ -248,7 +248,7 @@ in neural-lam, are done in a separate package called [mllam-data-prep](https://github.com/mllam/mllam-data-prep) rather than in neural-lam itself. Specifically, the `mllam-data-prep` datastore configuration (for example -[danra.datastore.yaml](tests/datastore_examples/mdp/danra.datastore.yaml)) +'tests/datastore_examples/mdp/dana_100m_winds/dana.datastore.yaml') specifies a) what source datasets to read from, b) what variables to select, c) what transformations of dimensions and variables to make, d) what statistics to calculate (for normalisation) and e) how to split the data into training, @@ -400,7 +400,7 @@ python -m neural_lam.datastore.npyfilesmeps.compute_standardization_stats --name multiscale` * **Hi-LAM**: `python -m neural_lam.create_graph --config_path --name hierarchical --hierarchical` (also works for Hi-LAM-Parallel) @@ -452,7 +452,7 @@ The implemented models are: ### Graph-LAM This is the basic graph-based LAM model. The encode-process-decode framework is used with a mesh graph in order to make one-step pedictions. -This model class is used both for the L1-LAM and GC-LAM models from the [paper](#graph-based-neural-weather-prediction-for-limited-area-modeling), only with different graphs. +This model class is used both for the L1-LAM and GC-LAM models from the [paper], only with different graphs. To train 1L-LAM use ``` @@ -609,5 +609,5 @@ Furthermore, all tests in the ```tests``` directory will be run upon pushing cha # Contact If you are interested in machine learning models for LAM, have questions about the implementation or ideas for extending it, feel free to get in touch. -There is an open [mllam slack channel](https://join.slack.com/t/ml-lam/shared_invite/zt-2t112zvm8-Vt6aBvhX7nYa6Kbj_LkCBQ) that anyone can join (after following the link you have to request to join, this is to avoid spam bots). +There is an open [mllam slack channel] that anyone can join (after following the link you have to request to join, this is to avoid spam bots). You can also open a github issue on this page.