Skip to content

Commit 64c146c

Browse files
Merge pull request #197 from CosmoStat/release/v3.0.0
Release/v3.0.0
2 parents 41f04ad + 34734d6 commit 64c146c

File tree

7 files changed

+94
-63
lines changed

7 files changed

+94
-63
lines changed

.github/pull_request_template.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
- [ ] Hotfix
3434
- [ ] Documentation / process change
3535
- [ ] Internal / refactor
36+
- [ ] Release
3637

3738
> Optionally, note if this PR is part of a larger milestone or set of related PRs.
3839
@@ -49,7 +50,7 @@
4950

5051
> Reviewers should confirm the following before approving and merging:
5152
52-
- [ ] The PR targets the `develop` branch
53+
- [ ] The PR targets the correct base branch (`develop`, or `main` for release PRs)
5354
- [ ] The PR is assigned to the developer
5455
- [ ] Appropriate labels are applied
5556
- [ ] The PR is included in relevant projects and/or milestones

CHANGELOG.md

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,53 @@
1-
# Changelog
1+
# WaveDiff / WF-PSF Changelog
22

33
All notable changes to WaveDiff are documented in this file.
44

55
## [Unreleased]
6+
7+
- Changes in progress for the next release.
8+
9+
## [3.0.0] – 2026-01-20
10+
11+
Major update with PSF model refactoring, masked training, and CI/doc improvements.
12+
13+
## Breaking changes
14+
15+
- Removed the `--repodir` argument in CLI; scripts using it will now fail.
16+
17+
## New features
18+
19+
- Added physical layer model with improved modularity (`TFPhysicalPolychromatic` refactor) and configurable parameters.
20+
- Introduced rotation of obscuration mask with configurable parameter.
21+
- Updated `CentroidEstimator` to support mask-based estimation.
22+
- Added options for user-configurable flags:
23+
- `use_prior` for Zernike prior
24+
- `correct_centroids` and `sigma_centroid_window` for centroid error correction
25+
- `add_ccd_misalignments` and `ccd_misalignments_input_path` for CCD misalignment correction
26+
- Added option to randomize the data-driven part seed for reproducibility.
27+
- Added phase retrieval projection algorithm considering obscurations.
28+
- Masked training and evaluation: added `masked_mse` loss and `MaskedMeanSquaredErrorMetric` classes.
29+
- Added configurable parameter for computing shape metrics for test datasets as optional.
30+
- Added new sigmoid parameters to apply to the sample weights.
31+
- Added masked datasets and corresponding generation notebooks.
32+
33+
## Bug fixes
34+
35+
- Fixed missing e₂ and R₂ shape metric plots
36+
- Fixed broken contribution link in documentation
37+
- Corrected bug in `MonochromaticMetricsPlotHandler` class regarding `eval_mono_metric` configuration.
38+
39+
## Performance improvements
40+
41+
- Improved numerical stability and reproducibility in training routines
42+
43+
## Internal changes
44+
45+
- Replaced Black with Ruff for linting and formatting.
46+
- Updated TensorFlow to 2.11 (compatibility fixes for NumPy ≥ 1.26.4 and Astropy).
47+
- Reorganized modules for clarity (e.g., `SimPSFToolkit.py` renamed).
48+
- Improved PEP8 compliance across the codebase.
49+
- Introduced Scriv-based changelog infrastructure.
50+
- Configured `sphinx.ext.autosummary` to auto-generate stubs in `_autosummary/`.
51+
- Added new documentation and templates: `CODE_OF_CONDUCT.md`, `CONTRIBUTING.md`, `DEV_WORKFLOW.md`.
52+
53+

DEV_WORKFLOW.md

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,41 @@
1111
Make a milestone related to a release on possibly a minor release schedule (e.g. monthly schedule). Differentiate between the different types of releases (minor, major, patch).
1212

1313
## 2. **Git Workflow Branching Model (Made with** [**mermaid**](https://mermaid.js.org)**)**
14-
![](assets/branching_model.png)
14+
![](assets/Git-Branching-Model.png)
1515

1616
* **main**: Stores official release history with tagged version numbers (see top row in the diagram above).
1717

1818
* **develop**: This branch is the integration branch for features.
1919

20-
* **feature**: Branch off of develop for new feature development.  Features get merged to develop (never to main).
20+
* **feature**: Branch off of `develop` for new feature development.  Features get merged to `develop` (never to main).
2121

2222
* **bug**: For fixing specific bugs introduced during the production phase.
2323

24-
* **hotfix**: Quickly corrects bugs in the latest release version; branched off main.
24+
* **hotfix**: Quickly corrects bugs in the latest release version; branched off `main`.
25+
26+
* **release/vX.Y.Z**: Temporary branch created from `develop`; used to:
27+
* Collect Scriv changelog fragments here.
28+
* Apply final QA or documentation updates.
29+
* Merge into `main` when ready and tag the release.
2530

2631

2732
## 3. **New Branch naming conventions**
2833

2934

3035
Branches created for the purpose of a Pull Request should be directly related to an open issue within the project’s issue tracker.  This ensures that all code changes are tied to specific tasks or features, facilitating better organisation and tracking of contributions. Below are the branch naming conventions:
3136

32-
* **Feature**: feature/<issue number>/short-description
37+
* **Feature**: `feature/<issue number>/short-description`
3338

34-
* **Bug**: bug/<issue number>/short-description
39+
* **Bug**: `bug/<issue number>/short-description`
3540

36-
* **Hotfix**: hotfix/<issue number>/short-description
41+
* **Hotfix**: `hotfix/<issue number>/short-description`
42+
43+
* **Release**: `release/v<MAJOR>.<MINOR>.<PATCH>`
44+
45+
**Notes:**
46+
- Replace `<ISSUE_NUMBER>` with the tracker issue number.
47+
- Keep short-description concise.
48+
- Release branches are short-lived and should not include ongoing development.
3749

3850

3951
Replace with the corresponding issue number and provide a brief description of the changes in \`short\_description\`.
@@ -43,7 +55,7 @@ Replace with the corresponding issue number and provide a brief description of t
4355

4456
* Pull the latest changes from the remote repository
4557

46-
* Checkout develop
58+
* Checkout `develop`
4759

4860
* Create a new feature branch
4961

@@ -57,7 +69,7 @@ Replace with the corresponding issue number and provide a brief description of t
5769

5870
* Run training and metrics validation tests locally to confirm no breaking behaviour or errors were introduced.  Include test reports as per the PR template.
5971

60-
* Open a Pull Request to start the review process, ensuring to map the branch correctly to the target branch (i.e. feature\_branch -> develop or hotfix\_branch -> main).
72+
* Open a Pull Request to start the review process, ensuring to map the branch correctly to the target branch (i.e. `feature` -> `develop` or `hotfix` -> `main`).
6173

6274
* In the description of the Pull Request, explicitly state whether the PR resolves or closes an open issue by using one of the following formats:
6375

@@ -77,7 +89,6 @@ Example: "Solves #12345" or "Closes #8679".
7789

7890
## 6. **Merging Pull Requests** 
7991

80-
8192
* Approval and Merging: Once the reviewer approves the PR and all feedback is addressed, merge the feature branch into develop.  Note, it is the reviewer who is responsible for merging the PR when satisfied with the changes.
8293

8394
## 7. **Changelog and release notes**
@@ -100,6 +111,9 @@ This approach:
100111
```bash
101112
scriv create
102113
```
114+
**Notes**:
115+
- Do not collect fragments in your PR; leave [Unreleased] in CHANGELOG.md.
116+
- [Unreleased] is always at the top; contributors never write directly into it.
103117

104118
Fragment creation and writing guidelines are documented in [CONTRIBUTING.md](./CONTRIBUTING.md).
105119

@@ -114,7 +128,7 @@ This separation keeps release notes accurate and enables clean backports
114128

115129
* Each milestone targets a release (feature, patch, etc).
116130

117-
* Open a PR from develop to main upon completing a milestone
131+
* Open a PR from `develop` to `release/vX.Y.Z` upon completing a milestone
118132

119133
* Collect changelog fragments and generate release notes using:
120134

assets/Git-Branching-Model.png

583 KB
Loading

assets/branching_model.png

-87.6 KB
Binary file not shown.

changelog.d/20251217_142619_jennifer.pollack_add_changelogmd.md

Lines changed: 0 additions & 37 deletions
This file was deleted.

environment.yml

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
1+
# WaveDiff v3.0.0 release environment
2+
# Tested on Jean-Zay HPC. NumPy 1.26.x is installed via pip.
3+
# This file reflects the dependency constraints defined in pyproject.toml
4+
# and is not a fully pinned development environment.
15
name: wavediff-env
26
channels:
37
- conda-forge
48
dependencies:
5-
- keras=2.9.0=pyhd8ed1ab_0
6-
- scipy=1.11.4=py310h2b794db_0
7-
- tensorflow=2.9.1=cpu_py310h6ecea76_0
8-
- pip=23.3.1
9+
- python>=3.9,<3.12
10+
- scipy
11+
- tensorflow=2.11.0
12+
- pip
913
- pip:
10-
- astropy>=6.0.0
11-
- galsim>=2.5.1
12-
- matplotlib>=3.8.2
13-
- opencv-python>=4.8.1.78
14-
- pandas>=2.1.4
15-
- pillow>=10.1.0
16-
- seaborn>=0.13.0
17-
- tensorflow-addons>=0.23.0
18-
- tensorflow-estimator>=2.15.0
19-
- zernike>=0.0.32
14+
- numpy>=1.26,<2.0
15+
- tensorflow-addons
16+
- tensorflow-estimator
17+
- zernike
18+
- opencv-python
19+
- pillow
20+
- galsim
21+
- astropy
22+
- matplotlib
23+
- seaborn
24+

0 commit comments

Comments
 (0)