Skip to content

Commit 3661d79

Browse files
authored
Merge branch 'master' into chualan/fix-19658
2 parents c7f02ed + ce038e8 commit 3661d79

File tree

225 files changed

+5188
-4173
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

225 files changed

+5188
-4173
lines changed

.actions/assistant.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,8 @@ def load_readme_description(path_dir: str, homepage: str, version: str) -> str:
154154
155155
"""
156156
path_readme = os.path.join(path_dir, "README.md")
157-
with open(path_readme, encoding="utf-8") as fo:
158-
text = fo.read()
157+
with open(path_readme, encoding="utf-8") as fopen:
158+
text = fopen.read()
159159

160160
# drop images from readme
161161
text = text.replace(
@@ -308,17 +308,17 @@ def copy_replace_imports(
308308
if ext in (".pyc",):
309309
continue
310310
# Try to parse everything else
311-
with open(fp, encoding="utf-8") as fo:
311+
with open(fp, encoding="utf-8") as fopen:
312312
try:
313-
lines = fo.readlines()
313+
lines = fopen.readlines()
314314
except UnicodeDecodeError:
315315
# a binary file, skip
316316
print(f"Skipped replacing imports for {fp}")
317317
continue
318318
lines = _replace_imports(lines, list(zip(source_imports, target_imports)), lightning_by=lightning_by)
319319
os.makedirs(os.path.dirname(fp_new), exist_ok=True)
320-
with open(fp_new, "w", encoding="utf-8") as fo:
321-
fo.writelines(lines)
320+
with open(fp_new, "w", encoding="utf-8") as fopen:
321+
fopen.writelines(lines)
322322

323323

324324
def create_mirror_package(source_dir: str, package_mapping: dict[str, str]) -> None:
@@ -370,10 +370,10 @@ def _prune_packages(req_file: str, packages: Sequence[str]) -> None:
370370

371371
@staticmethod
372372
def _replace_min(fname: str) -> None:
373-
with open(fname, encoding="utf-8") as fo:
374-
req = fo.read().replace(">=", "==")
375-
with open(fname, "w", encoding="utf-8") as fw:
376-
fw.write(req)
373+
with open(fname, encoding="utf-8") as fopen:
374+
req = fopen.read().replace(">=", "==")
375+
with open(fname, "w", encoding="utf-8") as fwrite:
376+
fwrite.write(req)
377377

378378
@staticmethod
379379
def replace_oldest_ver(requirement_fnames: Sequence[str] = REQUIREMENT_FILES_ALL) -> None:
@@ -471,15 +471,15 @@ def convert_version2nightly(ver_file: str = "src/version.info") -> None:
471471
"""Load the actual version and convert it to the nightly version."""
472472
from datetime import datetime
473473

474-
with open(ver_file) as fo:
475-
version = fo.read().strip()
474+
with open(ver_file) as fopen:
475+
version = fopen.read().strip()
476476
# parse X.Y.Z version and prune any suffix
477477
vers = re.match(r"(\d+)\.(\d+)\.(\d+).*", version)
478478
# create timestamp YYYYMMDD
479479
timestamp = datetime.now().strftime("%Y%m%d")
480480
version = f"{'.'.join(vers.groups())}.dev{timestamp}"
481-
with open(ver_file, "w") as fo:
482-
fo.write(version + os.linesep)
481+
with open(ver_file, "w") as fopen:
482+
fopen.write(version + os.linesep)
483483

484484
@staticmethod
485485
def generate_docker_tags(

.actions/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
jsonargparse >=4.16.0, <=4.35.0
1+
jsonargparse
22
requests
33
packaging

.azure/gpu-benchmarks.yml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,13 @@ jobs:
7676
displayName: "Image info & NVIDIA"
7777
7878
- bash: |
79-
pip install -e .[dev] --find-links ${TORCH_URL}
80-
pip install setuptools==75.6.0 jsonargparse==4.35.0
79+
pip install -U -q -r .actions/requirements.txt
80+
python .actions/assistant.py copy_replace_imports --source_dir="./tests" \
81+
--source_import="lightning.fabric,lightning.pytorch" \
82+
--target_import="lightning_fabric,pytorch_lightning"
83+
displayName: "Adjust tests"
84+
85+
- bash: pip install -e .[dev] --find-links ${TORCH_URL}
8186
env:
8287
FREEZE_REQUIREMENTS: "1"
8388
displayName: "Install package"
@@ -88,13 +93,6 @@ jobs:
8893
python -c "import torch ; mgpu = torch.cuda.device_count() ; assert mgpu == 2, f'GPU: {mgpu}'"
8994
displayName: "Env details"
9095
91-
- bash: |
92-
pip install -q -r .actions/requirements.txt
93-
python .actions/assistant.py copy_replace_imports --source_dir="./tests" \
94-
--source_import="lightning.fabric,lightning.pytorch" \
95-
--target_import="lightning_fabric,pytorch_lightning"
96-
displayName: "Adjust tests"
97-
9896
- bash: python -m pytest parity_$(PACKAGE_NAME) -v --durations=0
9997
env:
10098
PL_RUNNING_BENCHMARKS: "1"

.azure/gpu-tests-fabric.yml

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,13 @@ jobs:
6060
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.10-torch2.1-cuda12.1.1"
6161
PACKAGE_NAME: "fabric"
6262
"Fabric | latest":
63-
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.6-cuda12.4.1"
64-
PACKAGE_NAME: "fabric"
65-
"Fabric | future":
6663
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.7-cuda12.6.3"
6764
PACKAGE_NAME: "fabric"
65+
#"Fabric | future":
66+
# image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.7-cuda12.6.3"
67+
# PACKAGE_NAME: "fabric"
6868
"Lightning | latest":
69-
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.6-cuda12.4.1"
69+
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.7-cuda12.6.3"
7070
PACKAGE_NAME: "lightning"
7171
workspace:
7272
clean: all
@@ -100,6 +100,12 @@ jobs:
100100
pip list
101101
displayName: "Image info & NVIDIA"
102102
103+
- bash: |
104+
python .actions/assistant.py replace_oldest_ver
105+
pip install "cython<3.0" wheel # for compatibility
106+
condition: contains(variables['Agent.JobName'], 'oldest')
107+
displayName: "setting oldest dependencies"
108+
103109
- bash: |
104110
PYTORCH_VERSION=$(python -c "import torch; print(torch.__version__.split('+')[0])")
105111
pip install -q wget packaging
@@ -109,11 +115,22 @@ jobs:
109115
done
110116
displayName: "Adjust dependencies"
111117
118+
- bash: |
119+
pip install -U -q -r .actions/requirements.txt
120+
python .actions/assistant.py copy_replace_imports --source_dir="./tests/tests_fabric" \
121+
--source_import="lightning.fabric" \
122+
--target_import="lightning_fabric"
123+
python .actions/assistant.py copy_replace_imports --source_dir="./examples/fabric" \
124+
--source_import="lightning.fabric" \
125+
--target_import="lightning_fabric"
126+
# without succeeded this could run even if the job has already failed
127+
condition: and(succeeded(), eq(variables['PACKAGE_NAME'], 'fabric'))
128+
displayName: "Adjust tests & examples"
129+
112130
- bash: |
113131
set -e
114132
extra=$(python -c "print({'lightning': 'fabric-'}.get('$(PACKAGE_NAME)', ''))")
115-
pip install -e ".[${extra}dev]" pytest-timeout -U --extra-index-url="${TORCH_URL}"
116-
pip install setuptools==75.6.0 jsonargparse==4.35.0
133+
pip install -e ".[${extra}dev]" -U --upgrade-strategy=eager --extra-index-url="${TORCH_URL}"
117134
displayName: "Install package & dependencies"
118135
119136
- bash: |
@@ -130,18 +147,6 @@ jobs:
130147
condition: and(succeeded(), eq(variables['PACKAGE_NAME'], 'fabric'))
131148
displayName: "Testing: Fabric doctests"
132149

133-
- bash: |
134-
pip install -q -r .actions/requirements.txt
135-
python .actions/assistant.py copy_replace_imports --source_dir="./tests/tests_fabric" \
136-
--source_import="lightning.fabric" \
137-
--target_import="lightning_fabric"
138-
python .actions/assistant.py copy_replace_imports --source_dir="./examples/fabric" \
139-
--source_import="lightning.fabric" \
140-
--target_import="lightning_fabric"
141-
# without succeeded this could run even if the job has already failed
142-
condition: and(succeeded(), eq(variables['PACKAGE_NAME'], 'fabric'))
143-
displayName: "Adjust tests & examples"
144-
145150
- bash: python -m coverage run --source ${COVERAGE_SOURCE} -m pytest tests_fabric/ -v --durations=50
146151
workingDirectory: tests/
147152
displayName: "Testing: fabric standard"

.azure/gpu-tests-pytorch.yml

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ jobs:
5353
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.10-torch2.1-cuda12.1.1"
5454
PACKAGE_NAME: "pytorch"
5555
"PyTorch | latest":
56-
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.6-cuda12.4.1"
57-
PACKAGE_NAME: "pytorch"
58-
"PyTorch | future":
5956
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.7-cuda12.6.3"
6057
PACKAGE_NAME: "pytorch"
58+
#"PyTorch | future":
59+
# image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.7-cuda12.6.3"
60+
# PACKAGE_NAME: "pytorch"
6161
"Lightning | latest":
62-
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.6-cuda12.4.1"
62+
image: "pytorchlightning/pytorch_lightning:base-cuda-py3.12-torch2.7-cuda12.6.3"
6363
PACKAGE_NAME: "lightning"
6464
pool: lit-rtx-3090
6565
variables:
@@ -104,6 +104,12 @@ jobs:
104104
pip list
105105
displayName: "Image info & NVIDIA"
106106
107+
- bash: |
108+
python .actions/assistant.py replace_oldest_ver
109+
pip install "cython<3.0" wheel # for compatibility
110+
condition: contains(variables['Agent.JobName'], 'oldest')
111+
displayName: "setting oldest dependencies"
112+
107113
- bash: |
108114
PYTORCH_VERSION=$(python -c "import torch; print(torch.__version__.split('+')[0])")
109115
pip install -q wget packaging
@@ -113,11 +119,22 @@ jobs:
113119
done
114120
displayName: "Adjust dependencies"
115121
122+
- bash: |
123+
pip install -U -q -r .actions/requirements.txt
124+
python .actions/assistant.py copy_replace_imports --source_dir="./tests/tests_pytorch" \
125+
--source_import="lightning.fabric,lightning.pytorch" \
126+
--target_import="lightning_fabric,pytorch_lightning"
127+
python .actions/assistant.py copy_replace_imports --source_dir="./examples/pytorch/basics" \
128+
--source_import="lightning.fabric,lightning.pytorch" \
129+
--target_import="lightning_fabric,pytorch_lightning"
130+
# without succeeded this could run even if the job has already failed
131+
condition: and(succeeded(), eq(variables['PACKAGE_NAME'], 'pytorch'))
132+
displayName: "Adjust tests & examples"
133+
116134
- bash: |
117135
set -e
118136
extra=$(python -c "print({'lightning': 'pytorch-'}.get('$(PACKAGE_NAME)', ''))")
119-
pip install -e ".[${extra}dev]" pytest-timeout -U --extra-index-url="${TORCH_URL}"
120-
pip install setuptools==75.6.0 jsonargparse==4.35.0
137+
pip install -e ".[${extra}dev]" -U --upgrade-strategy=eager --extra-index-url="${TORCH_URL}"
121138
displayName: "Install package & dependencies"
122139
123140
- bash: pip uninstall -y lightning
@@ -144,17 +161,6 @@ jobs:
144161
condition: and(succeeded(), eq(variables['PACKAGE_NAME'], 'pytorch'))
145162
displayName: "Testing: PyTorch doctests"
146163

147-
- bash: |
148-
python .actions/assistant.py copy_replace_imports --source_dir="./tests/tests_pytorch" \
149-
--source_import="lightning.fabric,lightning.pytorch" \
150-
--target_import="lightning_fabric,pytorch_lightning"
151-
python .actions/assistant.py copy_replace_imports --source_dir="./examples/pytorch/basics" \
152-
--source_import="lightning.fabric,lightning.pytorch" \
153-
--target_import="lightning_fabric,pytorch_lightning"
154-
# without succeeded this could run even if the job has already failed
155-
condition: and(succeeded(), eq(variables['PACKAGE_NAME'], 'pytorch'))
156-
displayName: "Adjust tests & examples"
157-
158164
- bash: |
159165
bash .actions/pull_legacy_checkpoints.sh
160166
cd tests/legacy

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,6 @@
1818
/README.md @williamfalcon @lantiga
1919
/src/pytorch_lightning/__about__.py @williamfalcon @lantiga @borda
2020
/src/lightning_fabric/__about__.py @williamfalcon @lantiga @borda
21+
22+
/src/lightning/fabric/loggers @williamfalcon
23+
/src/lightning/pytorch/loggers @williamfalcon

.github/CONTRIBUTING.md

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Welcome to the PyTorch Lightning community! We're building the most advanced research platform on the planet to implement the latest, best practices
44
and integrations that the amazing PyTorch team and other research organization rolls out!
55

6-
If you are new to open source, check out [this blog to get started with your first Open Source contribution](https://devblog.pytorchlightning.ai/quick-contribution-guide-86d977171b3a).
6+
If you are new to open source, check out [this blog to get started with your first Open Source contribution](https://medium.com/pytorch-lightning/quick-contribution-guide-86d977171b3a).
77

88
## Main Core Value: One less thing to remember
99

@@ -97,7 +97,7 @@ _**Note**, even if you do not find the solution, sending a PR with a test coveri
9797

9898
1. Add/update the relevant tests!
9999

100-
- [This PR](https://github.com/Lightning-AI/lightning/pull/2671) is a good example for adding a new metric, and [this one for a new logger](https://github.com/Lightning-AI/lightning/pull/2721).
100+
- [This PR](https://github.com/Lightning-AI/pytorch-lightning/pull/2671) is a good example for adding a new metric, and [this one for a new logger](https://github.com/Lightning-AI/pytorch-lightning/pull/2721).
101101

102102
### Test cases:
103103

@@ -109,6 +109,50 @@ ______________________________________________________________________
109109

110110
## Guidelines
111111

112+
### Development environment
113+
114+
To set up a local development environment, we recommend using `uv`, which can be installed following their [instructions](https://docs.astral.sh/uv/getting-started/installation/).
115+
116+
Once `uv` has been installed, begin by cloning the forked repository:
117+
118+
```bash
119+
git clone https://github.com/{YOUR_GITHUB_USERNAME}/pytorch-lightning.git
120+
cd pytorch-lightning
121+
```
122+
123+
> If you're using [Lightning Studio](https://lightning.ai) or already have your `uv venv` activated, you can quickly set up the project by running:
124+
125+
```bash
126+
make setup
127+
```
128+
129+
This will:
130+
131+
- Install all required dependencies.
132+
- Perform an editable install of the `pytorch-lightning` project.
133+
- Install and configure `pre-commit`.
134+
135+
#### Manual Setup (Optional)
136+
137+
If you prefer more fine-grained control over the dependencies, you can set up the environment manually:
138+
139+
```bash
140+
uv venv
141+
# uv venv --python 3.11 # use this instead if you need a specific python version
142+
143+
source .venv/bin/activate # command may differ based on your shell
144+
uv pip install ".[dev, examples]"
145+
```
146+
147+
Once the dependencies have been installed, install pre-commit and set up the git hook scripts:
148+
149+
```bash
150+
uv pip install pre-commit
151+
pre-commit install
152+
```
153+
154+
If you would like more information regarding the uv commands, please refer to uv's documentation for more information on their [pip interface](https://docs.astral.sh/uv/pip/).
155+
112156
### Developments scripts
113157

114158
To build the documentation locally, simply execute the following commands from project root (only for Unix):
@@ -130,11 +174,11 @@ In case you are adding new dependencies, make sure that they are compatible with
130174

131175
### Documentation
132176

133-
To learn about development of docs, check out the docs [README.md](https://github.com/Lightning-AI/lightning/blob/master/docs/README.md).
177+
To learn about development of docs, check out the docs [README.md](https://github.com/Lightning-AI/pytorch-lightning/blob/master/docs/README.md).
134178

135179
### Testing
136180

137-
To learn about tests, check out the tests [README.md](https://github.com/Lightning-AI/lightning/blob/master/tests/README.md).
181+
To learn about tests, check out the tests [README.md](https://github.com/Lightning-AI/pytorch-lightning/blob/master/tests/README.md).
138182

139183
### Pull Request
140184

@@ -165,8 +209,8 @@ We welcome any useful contribution! For your convenience here's a recommended wo
165209

166210
1. If any of the existing tests fail in your PR on our CI, refer to the following READMEs to identify what's failing and try to address it.
167211

168-
- [Test README](https://github.com/Lightning-AI/lightning/blob/master/tests/README.md)
169-
- [CI/CD README](https://github.com/Lightning-AI/lightning/blob/master/.github/workflows/README.md)
212+
- [Test README](https://github.com/Lightning-AI/pytorch-lightning/blob/master/tests/README.md)
213+
- [CI/CD README](https://github.com/Lightning-AI/pytorch-lightning/tree/master/.github/workflows#readme)
170214

171215
1. When you feel ready for integrating your work, mark your PR "Ready for review".
172216

.github/ISSUE_TEMPLATE/1_bug_report.yaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,22 @@ body:
4646
attributes:
4747
value: "**Note: The rest of this form is optional, but filling it out may help us to provide better support.**"
4848

49+
- type: input
50+
attributes:
51+
label: Reproduced in studio
52+
description: >
53+
Create a new Lightning Studio with code that reproduces the issue and share the link.
54+
Also include all the relevant files and data required to reproduce shared issue.
55+
In case the code does not crash, please add assert statements to show what is the real and expected output.
56+
A simple guide on how to create such a studio can be found [here](https://www.youtube.com/watch?v=YcW-2Zt_bFg&ab_channel=LightningAI).
57+
placeholder: https://lightning.ai/live-session/...
58+
validations:
59+
required: false
4960
- type: textarea
5061
attributes:
5162
label: How to reproduce the bug
5263
description: >
53-
Provide steps and example code here.
54-
You can also paste a link to Google Colab (see our [Colab bug report template](https://colab.research.google.com/github/Lightning-AI/lightning/blob/master/examples/pytorch/bug_report/bug_report_model.ipynb)) or adapt this minimal [snippet](https://github.com/Lightning-AI/lightning/blob/master/examples/pytorch/bug_report/bug_report_model.py).
64+
In the special case when the issue can't be reproduced in a studio, provide steps and example code here.
5565
placeholder: |
5666
```python
5767
# Sample code to reproduce the problem

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Fixes #\<issue_number>
1818
<summary><b>Before submitting</b></summary>
1919

2020
- Was this **discussed/agreed** via a GitHub issue? (not for typos and docs)
21-
- [ ] Did you read the [contributor guideline](https://github.com/Lightning-AI/lightning/blob/master/.github/CONTRIBUTING.md), **Pull Request** section?
21+
- [ ] Did you read the [contributor guideline](https://github.com/Lightning-AI/pytorch-lightning/blob/master/.github/CONTRIBUTING.md), **Pull Request** section?
2222
- [ ] Did you make sure your **PR does only one thing**, instead of bundling different changes together?
2323
- Did you make sure to **update the documentation** with your changes? (if necessary)
2424
- Did you write any **new necessary tests**? (not for typos and docs)

0 commit comments

Comments
 (0)