Rework generate_release_notes.py and add PR summary parsing#6961
Rework generate_release_notes.py and add PR summary parsing#6961stefanv merged 33 commits intoscikit-image:mainfrom
generate_release_notes.py and add PR summary parsing#6961Conversation
Adapted with light modifications from napari/docs [1]. [1] https://github.com/napari/docs/blob/741829fdf90c06d0593baaa183a95f152e35bac4/docs/release/generate_release_notes.py
tools/generate_release_notes.py
Outdated
| with short_cache(60): | ||
| all_commits = list( | ||
| tqdm( | ||
| repository.get_commits( | ||
| sha=args.to_commit, since=previous_tag_date | ||
| ), | ||
| desc=f'Getting all commits between {remote_commit.sha} ' | ||
| f'and {args.to_commit}', | ||
| total=new_commits_count, | ||
| ) | ||
| ) |
There was a problem hiding this comment.
So I may be getting this completely wrong but it seems like the caching may not be working? First of all the context is only covering getting the commits. Everything else happens after the context manager short_cache is closed. Secondly, even if indent everything after this a second execution seems to take the exact time as before. It seems like there is no caching happening?
@Czaki, I'm not sure whether you are the right person to ping on this but maybe you would know more? 🙏
There was a problem hiding this comment.
Caching is not introduced for speedup but to reduce the probability of hitting the GitHub limit of API access (5000 per hour if I remember correctly)
But it caches every GitHub API call. Even a list of all commits since the given tag. So I created a context manager that shorted the cache for this operation to 1 minute.
But As I remember, the speedup could be observed if you comment out lines 52-54 that setup cache.
There was a problem hiding this comment.
Ah, good to know! I just discovered this by accident while playing around with it. It's nice to have that option while iterating on the script. Thanks for the fast reply. 😊
This would fail with:
github.GithubException.GithubException: 422 {"message": "Query must include 'is:issue' or 'is:pull-request'", "documentation_url": "https://docs.github.com/rest/reference/search#search-issues-and-pull-requests"}
d1fec20 to
775d9f4
Compare
Newly introduced deprecations are API changes. Completed deprecations are not something we need to highlight specifically.
|
Note that some PR titles use markdown syntax, most predominantly backticks to highlight function names. I think those are proably fine to pass through to RST? |
|
PR titles shouldn't have space pre or postfixes, but it happens, so strip those off. |
This refactor is supposed to make the script re-usable and easier to maintain in anticipation of moving it to the umbrella of the scientific-python organisation. Also changes / improvements: Access to and parsing of a local git repository is no longer necessary. Instead, the github.Repository.compare() is used to retrieve all commits of interest. Pull requests are no longer retrieved from commits by parsing the commit message with a regex. Instead, github.Commit.get_pulls() is used to retrieve them. RestructuredText and Markdown are now both supported. In case the notes are formatted in RST, single backticks "`" are transformed accordingly to "``" (using naive replacement).
If a pull requests's body (description) contains a code block like this ```release-note A short summary. ``` its content is used instead of the PR title in the release notes. See scikit-image#6858 for a PR to which the appropriate block was added.
|
With 3d59e77 Click to expand# scikit-image 0.2.0 release notes
We're happy to announce the release of scikit-image 0.2.0!
scikit-image is an image processing toolbox for SciPy that includes algorithms
for segmentation, geometric transformations, color space manipulation,
analysis, filtering, morphology, feature detection, and more.
For more information, examples, and documentation, please visit our website:
https://scikit-image.org
## Highlights
## New Features
- Add new image sequence `skimage.data.palisades_of_vogt` showing in-vivo tissue of the palisades of Vogt
([#6858](https://github.com/scikit-image/scikit-image/pull/6858)).
## Enhancements
## Performance
- Add lazy loading to skimage.feature module
([#6983](https://github.com/scikit-image/scikit-image/pull/6983)).
- Add lazy loading to graph submodule
([#6985](https://github.com/scikit-image/scikit-image/pull/6985)).
- Add lazy loading to measure submodule
([#6999](https://github.com/scikit-image/scikit-image/pull/6999)).
- Add lazy loading to skimage.transform module
([#7009](https://github.com/scikit-image/scikit-image/pull/7009)).
## Bug Fixes
## API Changes
## Maintenance
- Don't test numpy prerelease on azure
([#6996](https://github.com/scikit-image/scikit-image/pull/6996)).
- Drop Python 3.8 support per SPEC 0
([#6990](https://github.com/scikit-image/scikit-image/pull/6990)).
- Upper pin imageio
([#7002](https://github.com/scikit-image/scikit-image/pull/7002)).
- Update core dependencies per SPEC0
([#7005](https://github.com/scikit-image/scikit-image/pull/7005)).
- meson: allow proper selection of NumPy, Pythran in cross builds
([#7003](https://github.com/scikit-image/scikit-image/pull/7003)).
- Unpin imageio and add warningfilter
([#7006](https://github.com/scikit-image/scikit-image/pull/7006)).
- Update to latest attach-next-milestone action
([#7014](https://github.com/scikit-image/scikit-image/pull/7014)).
## Documentation
- Use a more descriptive title for current inpainting example
([#6989](https://github.com/scikit-image/scikit-image/pull/6989)).
- Fix URLs to the install page
([#6998](https://github.com/scikit-image/scikit-image/pull/6998)).
- Fix equation for Wiener filter in `restoration.wiener`'s docstring
([#6987](https://github.com/scikit-image/scikit-image/pull/6987)).
- Fix missing links in INSTALL.rst and simplify language
([#6984](https://github.com/scikit-image/scikit-image/pull/6984)).
- Edit installation and contributor guidelines
([#6991](https://github.com/scikit-image/scikit-image/pull/6991)).
- Fix URLs that lead to 404 page
([#7008](https://github.com/scikit-image/scikit-image/pull/7008)).
## Infrastructure
- Pin milestone labeler to v0.1.0 SHA
([#6982](https://github.com/scikit-image/scikit-image/pull/6982)).
## Other
## Contributors
8 authors added to this release (sorted by login):
Andrew J. Hesford ([@ahesford](https://github.com/ahesford))
Ananya Srivastava ([@ana42742](https://github.com/ana42742))
Adeyemi Biola ([@decorouz](https://github.com/decorouz))
Jarrod Millman ([@jarrodmillman](https://github.com/jarrodmillman))
Lars Grüter ([@lagru](https://github.com/lagru))
Matthias Nwt ([@matthiasnwt](https://github.com/matthiasnwt))
Marianne Corvellec ([@mkcor](https://github.com/mkcor))
Stefan van der Walt ([@stefanv](https://github.com/stefanv))
8 reviewers added to this release (sorted by login):
Andrew J. Hesford ([@ahesford](https://github.com/ahesford))
Ananya Srivastava ([@ana42742](https://github.com/ana42742))
Adeyemi Biola ([@decorouz](https://github.com/decorouz))
Mark Harfouche ([@hmaarrfk](https://github.com/hmaarrfk))
Jarrod Millman ([@jarrodmillman](https://github.com/jarrodmillman))
Lars Grüter ([@lagru](https://github.com/lagru))
Marianne Corvellec ([@mkcor](https://github.com/mkcor))
Stefan van der Walt ([@stefanv](https://github.com/stefanv))
Note the first item for #6858 to see the new feature in action. |
|
First, that's awesome, Lars!! I have been wanting that feature for so long 🎉 Second, as in this case, we probably want to discourage release notes that just restate the PR title. Was the PR template updated to include it? |
generate_release_notes.py with updates from naparigenerate_release_notes.py and add PR summary parsing
| def _parse_pull_request_summary(self, pr: PullRequest) -> str: | ||
| if pr.body and (match := self.pr_summary_regex.search(pr.body)): | ||
| summary = match["summary"] | ||
| else: | ||
| logger.debug("falling back to title for %s", pr.html_url) | ||
| summary = pr.title | ||
| summary = self._sanitize_text(summary) | ||
| return summary |
There was a problem hiding this comment.
This method handles the parsing for the PR summary (I call it that for lack of a better term right now). Note that self._sanitize_text(summary) is replacing \r\n and \n with a space naively. I'm sure there are edge cases the script is not yet handling well. 😅
|
Yes, the template was updated, see this diff. Though, this might need some additional tweaking to be less confusing / surprising to users. Probably a link to an new section in our contributor guide. Good thing is, we can easily clean it up ourselves when merging. :D See also this comment. In my mind we use this feature optionally, whenever we feel like the PR title isn't complete or precise enough in the context of a changelog. If we were to make it mandatory (not advocating this), we could move it to the top of the PR and use it as a summary of the longer description section and for the changelog. Not sure if I am supposed to keep working on this right now or wait until you have moved this out. I could also create the standalone repo on my account to keep working and then you move it to scientific-python to preserve the history? 🤔 |
Co-authored-by: Stefan van der Walt <sjvdwalt@gmail.com>
For commit authors we get a login handle (nice unique key) and name from GitHub's API. For co-authors, I couldn't find a way to get them via the API. So I fell back to parsing the commit message which only yields a name and email pair. Co-authors are considered unique by their parsed name, and a random URL to a co-authored commit is included to make them more discoverable.
stefanv
left a comment
There was a problem hiding this comment.
This looks great; once we sort out the co-authors, it should go in.
Merges co-authors and first commit authors now. Previously, the regex would only ever find one co-author. Presumably because the regex would not match the "\r\n" which is used as the line ending GitHub's API. This also introduces and tweaks a few sanity checks within the code.
Doesn't pass mypy completely but that's not the goal here.
Previously, co-authors were always filtered out accidentally and thus never included. Furthermore, co-authors were dropped when they were matching known reviewers, which is wrong. Now, the code only uses known reviewers to replace co-authors with NamedUsers if a match is found.
Capitalization is ignored now, and fewer lines start with a syntax character corresponding to the start of a hyperlink.
|
This is the current output for cd0ba3c with Click to expand# scikit-image 0.0.0 release notes
We're happy to announce the release of scikit-image 0.0.0!
scikit-image is an image processing toolbox for SciPy that includes algorithms
for segmentation, geometric transformations, color space manipulation,
analysis, filtering, morphology, feature detection, and more.
For more information, examples, and documentation, please visit our website:
https://scikit-image.org
## Highlights
## New Features
- Implement Fisher vectors in scikit-image
([#5349](https://github.com/scikit-image/scikit-image/pull/5349)).
- Add support for y-dimensional shear to the AffineTransform
([#6752](https://github.com/scikit-image/scikit-image/pull/6752)).
## Enhancements
- Make join_segmentations return array maps from output to input labels
([#6786](https://github.com/scikit-image/scikit-image/pull/6786)).
- Add support for y-dimensional shear to the AffineTransform
([#6752](https://github.com/scikit-image/scikit-image/pull/6752)).
- Bounding box crop
([#5499](https://github.com/scikit-image/scikit-image/pull/5499)).
- Enable use of `rescale_intensity` with dask array
([#6910](https://github.com/scikit-image/scikit-image/pull/6910)).
- Check if `spacing` parameter is tuple in `regionprops`
([#6907](https://github.com/scikit-image/scikit-image/pull/6907)).
## Performance
- Speed up threshold_local function by fixing call to _supported_float_type
([#6847](https://github.com/scikit-image/scikit-image/pull/6847)).
- Add lazy loading to skimage.color submodule
([#6967](https://github.com/scikit-image/scikit-image/pull/6967)).
- Add Lazy loading to skimage.draw submodule
([#6971](https://github.com/scikit-image/scikit-image/pull/6971)).
- Add Lazy loader to skimage.exposure
([#6978](https://github.com/scikit-image/scikit-image/pull/6978)).
- Add lazy loading to skimage.future module
([#6981](https://github.com/scikit-image/scikit-image/pull/6981)).
## Bug Fixes
- Fix threshold_li(): prevent log(0) on single-value background
([#6745](https://github.com/scikit-image/scikit-image/pull/6745)).
- shift and normalize data before fitting circle or ellipse
([#6703](https://github.com/scikit-image/scikit-image/pull/6703)).
- Fix copy-paste error in `footprints.diamond` test case
([#6756](https://github.com/scikit-image/scikit-image/pull/6756)).
- Update .devpy/cmds.py to match latest devpy
([#6789](https://github.com/scikit-image/scikit-image/pull/6789)).
- Avoid installation of rtoml via conda in installation guide
([#6792](https://github.com/scikit-image/scikit-image/pull/6792)).
- Raise error in skeletonize for invalid value to method param
([#6805](https://github.com/scikit-image/scikit-image/pull/6805)).
- Sign error fix in measure.regionprops for orientations of 45 degrees
([#6836](https://github.com/scikit-image/scikit-image/pull/6836)).
- Fix returned data type in `segmentation.watershed`
([#6839](https://github.com/scikit-image/scikit-image/pull/6839)).
- Handle NaNs when clipping in `transform.resize`
([#6852](https://github.com/scikit-image/scikit-image/pull/6852)).
- Fix failing regionprop_table for multichannel properties
([#6861](https://github.com/scikit-image/scikit-image/pull/6861)).
- Refactor `_invariant_denoise` to `denoise_invariant`
([#6660](https://github.com/scikit-image/scikit-image/pull/6660)).
- Expose `color.get_xyz_coords` in public API
([#6696](https://github.com/scikit-image/scikit-image/pull/6696)).
- Fix matrix calculation for shear angle in `AffineTransform`
([#6717](https://github.com/scikit-image/scikit-image/pull/6717)).
- Do not allow 64-bit integer inputs; add test to ensure masked and unmasked modes are aligned
([#6875](https://github.com/scikit-image/scikit-image/pull/6875)).
- Showcase pydata-sphinx-theme
([#6714](https://github.com/scikit-image/scikit-image/pull/6714)).
- Fix typo in apply_parallel introduced in #6876
([#6881](https://github.com/scikit-image/scikit-image/pull/6881)).
- Fix and refactor `deprecated` decorator to `deprecate_func`
([#6594](https://github.com/scikit-image/scikit-image/pull/6594)).
- Fix LPI filter for data with even dimensions
([#6883](https://github.com/scikit-image/scikit-image/pull/6883)).
- Use legacy datasets without creating a `data_dir`
([#6886](https://github.com/scikit-image/scikit-image/pull/6886)).
- Corrected energy calculation in chan vese
([#6902](https://github.com/scikit-image/scikit-image/pull/6902)).
- Raise error when source_range is not correct
([#6898](https://github.com/scikit-image/scikit-image/pull/6898)).
- Add missing backticks to DOI role in docstring of `area_opening`
([#6913](https://github.com/scikit-image/scikit-image/pull/6913)).
- Fix inclusion of `random.js` in HTML output
([#6935](https://github.com/scikit-image/scikit-image/pull/6935)).
- Fix URL of random gallery links
([#6937](https://github.com/scikit-image/scikit-image/pull/6937)).
- Use context manager to ensure urlopen buffer is closed
([#6942](https://github.com/scikit-image/scikit-image/pull/6942)).
- apply spacing rescaling when computing centroid_weighted
([#6900](https://github.com/scikit-image/scikit-image/pull/6900)).
- Fix sparse index type casting in `skimage.graph._ncut`
([#6975](https://github.com/scikit-image/scikit-image/pull/6975)).
## API Changes
- Make join_segmentations return array maps from output to input labels
([#6786](https://github.com/scikit-image/scikit-image/pull/6786)).
- Refactor `_invariant_denoise` to `denoise_invariant`
([#6660](https://github.com/scikit-image/scikit-image/pull/6660)).
- Unify API on seed keyword for random seeds / generator
([#6258](https://github.com/scikit-image/scikit-image/pull/6258)).
- Expose `color.get_xyz_coords` in public API
([#6696](https://github.com/scikit-image/scikit-image/pull/6696)).
- Unify pseudo-random seeding interface
([#6922](https://github.com/scikit-image/scikit-image/pull/6922)).
- Change geometric transform inverse to property
([#6926](https://github.com/scikit-image/scikit-image/pull/6926)).
## Maintenance
- Unpin scipy dependency
([#6773](https://github.com/scikit-image/scikit-image/pull/6773)).
- Fix copy-paste error in `footprints.diamond` test case
([#6756](https://github.com/scikit-image/scikit-image/pull/6756)).
- Relicense CLAHE code under BSD-3-Clause
([#6795](https://github.com/scikit-image/scikit-image/pull/6795)).
- Update .devpy/cmds.py to match latest devpy
([#6789](https://github.com/scikit-image/scikit-image/pull/6789)).
- Relax reproduce section in bug issue template
([#6825](https://github.com/scikit-image/scikit-image/pull/6825)).
- Specify kernel for ipywidgets
([#6849](https://github.com/scikit-image/scikit-image/pull/6849)).
- Rename devpy to spin
([#6842](https://github.com/scikit-image/scikit-image/pull/6842)).
- Update references to outdated dev.py with spin
([#6856](https://github.com/scikit-image/scikit-image/pull/6856)).
- Speed up threshold_local function by fixing call to _supported_float_type
([#6847](https://github.com/scikit-image/scikit-image/pull/6847)).
- Bump 0.21 removals to 0.22
([#6868](https://github.com/scikit-image/scikit-image/pull/6868)).
- Update pre-commits
([#6870](https://github.com/scikit-image/scikit-image/pull/6870)).
- Update dependencies
([#6869](https://github.com/scikit-image/scikit-image/pull/6869)).
- Add test for radon transform on circular phantom
([#6873](https://github.com/scikit-image/scikit-image/pull/6873)).
- Do not allow 64-bit integer inputs; add test to ensure masked and unmasked modes are aligned
([#6875](https://github.com/scikit-image/scikit-image/pull/6875)).
- Don't use mutable types as default values for arguments
([#6876](https://github.com/scikit-image/scikit-image/pull/6876)).
- Point `version_switcher.json` URL at dev docs
([#6882](https://github.com/scikit-image/scikit-image/pull/6882)).
- Fix and refactor `deprecated` decorator to `deprecate_func`
([#6594](https://github.com/scikit-image/scikit-image/pull/6594)).
- allow trivial ransac call
([#6755](https://github.com/scikit-image/scikit-image/pull/6755)).
- Add back parallel tests that were removed as part of Meson build
([#6884](https://github.com/scikit-image/scikit-image/pull/6884)).
- Use legacy datasets without creating a `data_dir`
([#6886](https://github.com/scikit-image/scikit-image/pull/6886)).
- Remove old doc cruft
([#6901](https://github.com/scikit-image/scikit-image/pull/6901)).
- Temporarily pin imageio to <2.28
([#6909](https://github.com/scikit-image/scikit-image/pull/6909)).
- Unify pseudo-random seeding interface follow-up
([#6924](https://github.com/scikit-image/scikit-image/pull/6924)).
- Use imageio v3 API
([#6764](https://github.com/scikit-image/scikit-image/pull/6764)).
- Use pytest.warn instead of custom context manager
([#6931](https://github.com/scikit-image/scikit-image/pull/6931)).
- Follow-up to move to pydata-sphinx-theme
([#6933](https://github.com/scikit-image/scikit-image/pull/6933)).
- Mark functions as `noexcept` to support Cython 3
([#6936](https://github.com/scikit-image/scikit-image/pull/6936)).
- Skip unstable test in `ransac`'s docstring
([#6938](https://github.com/scikit-image/scikit-image/pull/6938)).
- Stabilize EllipseModel fitting parameters
([#6943](https://github.com/scikit-image/scikit-image/pull/6943)).
- Point logo in generated HTML docs at scikit-image.org
([#6947](https://github.com/scikit-image/scikit-image/pull/6947)).
- If user provides RNG, spawn it before deepcopying
([#6948](https://github.com/scikit-image/scikit-image/pull/6948)).
- Skip ransac doctest
([#6953](https://github.com/scikit-image/scikit-image/pull/6953)).
- Make `image_fetcher` and `create_image_fetcher` in `data` private
([#6855](https://github.com/scikit-image/scikit-image/pull/6855)).
- Fix NumPy 1.25 deprecation warnings
([#6969](https://github.com/scikit-image/scikit-image/pull/6969)).
- Expose `GeometricTransform.residuals` in HTML doc
([#6968](https://github.com/scikit-image/scikit-image/pull/6968)).
- Revert jupyterlite
([#6972](https://github.com/scikit-image/scikit-image/pull/6972)).
- Don't test numpy nightlies due to transcendental functions issue
([#6973](https://github.com/scikit-image/scikit-image/pull/6973)).
- Ignore tight layout warning from matplotlib pre-release
([#6976](https://github.com/scikit-image/scikit-image/pull/6976)).
- Remove temporary constraint <2.28 for imageio
([#6980](https://github.com/scikit-image/scikit-image/pull/6980)).
## Documentation
- Merge duplicate instructions for setting up build environment
([#6770](https://github.com/scikit-image/scikit-image/pull/6770)).
- DOC: Fix underline length in `docstring_add_deprecated`
([#6778](https://github.com/scikit-image/scikit-image/pull/6778)).
- Add docstring to `skimage.color` module
([#6777](https://github.com/scikit-image/scikit-image/pull/6777)).
- Fix conda instructions for dev env setup
([#6781](https://github.com/scikit-image/scikit-image/pull/6781)).
- Link full license to README
([#6779](https://github.com/scikit-image/scikit-image/pull/6779)).
- Update docstring in skimage.future module
([#6782](https://github.com/scikit-image/scikit-image/pull/6782)).
- Handle pip-only dependencies when using conda
([#6806](https://github.com/scikit-image/scikit-image/pull/6806)).
- Fix returned data type in `segmentation.watershed`
([#6839](https://github.com/scikit-image/scikit-image/pull/6839)).
- Update references to outdated dev.py with spin
([#6856](https://github.com/scikit-image/scikit-image/pull/6856)).
- Remove outdated build instructions from README
([#6788](https://github.com/scikit-image/scikit-image/pull/6788)).
- Add docstring to the `transform` module
([#6797](https://github.com/scikit-image/scikit-image/pull/6797)).
- Added example to AffineTransform class
([#6859](https://github.com/scikit-image/scikit-image/pull/6859)).
- Added examples to the EssentialMatrixTransform class and its estimation function
([#6832](https://github.com/scikit-image/scikit-image/pull/6832)).
- Update _warps_cy.pyx
([#6867](https://github.com/scikit-image/scikit-image/pull/6867)).
- Document boundary behavior of `draw.polygon` and `draw.polygon2mask`
([#6690](https://github.com/scikit-image/scikit-image/pull/6690)).
- Showcase pydata-sphinx-theme
([#6714](https://github.com/scikit-image/scikit-image/pull/6714)).
- Point `version_switcher.json` URL at dev docs
([#6882](https://github.com/scikit-image/scikit-image/pull/6882)).
- Fix docstring underline lengths
([#6895](https://github.com/scikit-image/scikit-image/pull/6895)).
- Add missing backticks to DOI role in docstring of `area_opening`
([#6913](https://github.com/scikit-image/scikit-image/pull/6913)).
- Simplify installation instruction document
([#6927](https://github.com/scikit-image/scikit-image/pull/6927)).
- Add 0.21 release notes
([#6925](https://github.com/scikit-image/scikit-image/pull/6925)).
- Follow-up to move to pydata-sphinx-theme
([#6933](https://github.com/scikit-image/scikit-image/pull/6933)).
- ENH Add JupyterLite button to gallery examples
([#6911](https://github.com/scikit-image/scikit-image/pull/6911)).
- Update release notes
([#6944](https://github.com/scikit-image/scikit-image/pull/6944)).
- MNT Fix typo in JupyterLite comment
([#6945](https://github.com/scikit-image/scikit-image/pull/6945)).
- Point logo in generated HTML docs at scikit-image.org
([#6947](https://github.com/scikit-image/scikit-image/pull/6947)).
- fix bad link in CODE_OF_CONDUCT.md
([#6952](https://github.com/scikit-image/scikit-image/pull/6952)).
- Expose `GeometricTransform.residuals` in HTML doc
([#6968](https://github.com/scikit-image/scikit-image/pull/6968)).
- Add missing PRs to release notes
([#6949](https://github.com/scikit-image/scikit-image/pull/6949)).
## Infrastructure
- Relax reproduce section in bug issue template
([#6825](https://github.com/scikit-image/scikit-image/pull/6825)).
- Pin to devpy 0.1 tag
([#6816](https://github.com/scikit-image/scikit-image/pull/6816)).
- Prepare CI configuration for merge queue
([#6771](https://github.com/scikit-image/scikit-image/pull/6771)).
- Rename devpy to spin
([#6842](https://github.com/scikit-image/scikit-image/pull/6842)).
- Cleanup cruft in tools
([#6846](https://github.com/scikit-image/scikit-image/pull/6846)).
- Use lazy loader 0.2
([#6844](https://github.com/scikit-image/scikit-image/pull/6844)).
- Update pre-commits
([#6870](https://github.com/scikit-image/scikit-image/pull/6870)).
- Showcase pydata-sphinx-theme
([#6714](https://github.com/scikit-image/scikit-image/pull/6714)).
- Remove `codecov` dependency which disappeared from PyPI
([#6887](https://github.com/scikit-image/scikit-image/pull/6887)).
- Add CircleCI API token; fixes status link to built docs
([#6894](https://github.com/scikit-image/scikit-image/pull/6894)).
- Temporarily pin imageio to <2.28
([#6909](https://github.com/scikit-image/scikit-image/pull/6909)).
- Add PR links to release notes generating script
([#6917](https://github.com/scikit-image/scikit-image/pull/6917)).
- Use official meson-python release
([#6928](https://github.com/scikit-image/scikit-image/pull/6928)).
- Fix inclusion of `random.js` in HTML output
([#6935](https://github.com/scikit-image/scikit-image/pull/6935)).
- Fix URL of random gallery links
([#6937](https://github.com/scikit-image/scikit-image/pull/6937)).
- Respect SPHINXOPTS and add --install-deps flags to `spin docs`
([#6940](https://github.com/scikit-image/scikit-image/pull/6940)).
- Build skimage before generating docs
([#6946](https://github.com/scikit-image/scikit-image/pull/6946)).
- Enable testing against nightly upstream wheels
([#6956](https://github.com/scikit-image/scikit-image/pull/6956)).
- Add nightly wheel builder
([#6957](https://github.com/scikit-image/scikit-image/pull/6957)).
- Run weekly tests on nightly wheels
([#6959](https://github.com/scikit-image/scikit-image/pull/6959)).
- CI: ensure that a "type: " label is present on each PR
([#6960](https://github.com/scikit-image/scikit-image/pull/6960)).
- Add PR milestone labeler
([#6977](https://github.com/scikit-image/scikit-image/pull/6977)).
## Other
## Contributors
38 authors added to this release (alphabetically):
[@aeisenbarth](https://github.com/aeisenbarth),
[@DavidTorpey](https://github.com/DavidTorpey),
[@GGoussar](https://github.com/GGoussar),
[@i-aki-y](https://github.com/i-aki-y),
[@mahamtariq58](https://github.com/mahamtariq58),
[@scott-vsi](https://github.com/scott-vsi),
Adam J. Stewart ([@adamjstewart](https://github.com/adamjstewart)),
Adeyemi Biola ([@decorouz](https://github.com/decorouz)),
Ananya Srivastava ([@ana42742](https://github.com/ana42742)),
arsh73552 (see [4968b71e144d06ec459a26ba88980cc4f099d78a](https://github.com/scikit-image/scikit-image/commit/4968b71e144d06ec459a26ba88980cc4f099d78a)),
Bohumír Zámečník ([@bzamecnik](https://github.com/bzamecnik)),
Carlos Horn ([@carloshorn](https://github.com/carloshorn)),
Daniel Angelov ([@23pointsNorth](https://github.com/23pointsNorth)),
Dipkumar Patel ([@immortal3](https://github.com/immortal3)),
Enrico Tagliavini ([@enricotagliavini](https://github.com/enricotagliavini)),
Eric Prestat ([@ericpre](https://github.com/ericpre)),
Gregory Lee ([@grlee77](https://github.com/grlee77)),
harshitha kolipaka ([@harshithakolipaka](https://github.com/harshithakolipaka)),
Hayato Ikoma ([@hayatoikoma](https://github.com/hayatoikoma)),
Henry Pinkard ([@henrypinkard](https://github.com/henrypinkard)),
horn (see [35bf7bab24c57608d1cd90b6b09fb7f444a843d8](https://github.com/scikit-image/scikit-image/commit/35bf7bab24c57608d1cd90b6b09fb7f444a843d8)),
Jake Martin ([@jakeMartin1234](https://github.com/jakeMartin1234)),
Jarrod Millman ([@jarrodmillman](https://github.com/jarrodmillman)),
Juan Nunez-Iglesias ([@jni](https://github.com/jni)),
Julien Jerphanion ([@jjerphan](https://github.com/jjerphan)),
kczimm (see [8495b071ff81f3f1c5c4d8a44cb0387a81092066](https://github.com/scikit-image/scikit-image/commit/8495b071ff81f3f1c5c4d8a44cb0387a81092066)),
Kevin MEETOOA ([@kevinmeetooa](https://github.com/kevinmeetooa)),
Lars Grüter ([@lagru](https://github.com/lagru)),
Loïc Estève ([@lesteve](https://github.com/lesteve)),
Marianne Corvellec ([@mkcor](https://github.com/mkcor)),
Mark Harfouche ([@hmaarrfk](https://github.com/hmaarrfk)),
Matthias Bussonnier ([@Carreau](https://github.com/Carreau)),
Matus Valo ([@matusvalo](https://github.com/matusvalo)),
Michael Görner ([@v4hn](https://github.com/v4hn)),
Ramyashri Padmanabhakumar ([@rum1887](https://github.com/rum1887)),
Sean Quinn ([@seanpquinn](https://github.com/seanpquinn)),
Stefan van der Walt ([@stefanv](https://github.com/stefanv)),
Tony Reina ([@tonyreina](https://github.com/tonyreina)),
28 reviewers added to this release (alphabetically):
[@aeisenbarth](https://github.com/aeisenbarth),
[@DavidTorpey](https://github.com/DavidTorpey),
[@i-aki-y](https://github.com/i-aki-y),
[@kzuiderveld](https://github.com/kzuiderveld),
Adeyemi Biola ([@decorouz](https://github.com/decorouz)),
Ananya Srivastava ([@ana42742](https://github.com/ana42742)),
Brigitta Sipőcz ([@bsipocz](https://github.com/bsipocz)),
Carlos Horn ([@carloshorn](https://github.com/carloshorn)),
Cris Luengo ([@crisluengo](https://github.com/crisluengo)),
Dipkumar Patel ([@immortal3](https://github.com/immortal3)),
Enrico Tagliavini ([@enricotagliavini](https://github.com/enricotagliavini)),
Gregory Lee ([@grlee77](https://github.com/grlee77)),
Henry Pinkard ([@henrypinkard](https://github.com/henrypinkard)),
Jarrod Millman ([@jarrodmillman](https://github.com/jarrodmillman)),
Juan Nunez-Iglesias ([@jni](https://github.com/jni)),
Julien Jerphanion ([@jjerphan](https://github.com/jjerphan)),
Kevin MEETOOA ([@kevinmeetooa](https://github.com/kevinmeetooa)),
Lars Grüter ([@lagru](https://github.com/lagru)),
Marianne Corvellec ([@mkcor](https://github.com/mkcor)),
Mark Harfouche ([@hmaarrfk](https://github.com/hmaarrfk)),
Ramyashri Padmanabhakumar ([@rum1887](https://github.com/rum1887)),
Riadh Fezzani ([@rfezzani](https://github.com/rfezzani)),
Sean Quinn ([@seanpquinn](https://github.com/seanpquinn)),
Sebastian Berg ([@seberg](https://github.com/seberg)),
Sebastian Wallkötter ([@FirefoxMetzger](https://github.com/FirefoxMetzger)),
Stefan van der Walt ([@stefanv](https://github.com/stefanv)),
Tony Reina ([@tony-res](https://github.com/tony-res)),
Tony Reina ([@tonyreina](https://github.com/tonyreina)),
*These lists are automatically generated, and may not be complete or may contain duplicates.*
|
| if commit.committer: | ||
| reviewers.add(commit.committer) |
There was a problem hiding this comment.
Note, I am sorting committers as reviewers here. The "logic" is that that action feels more administrative and may indicate a maintainer directly merging after an implicit but not public review. Previously, committers where ignored I think.
Also add a few asserts checking the line-wise output of the formatter.
Adds linking via user id in noreply-email and if co-author name corresponds to a known login.
|
Note, I am just indulging my urge for perfection here. 😅 Feel free to merge if you are happy. |
|
Saving for later: it seems like GitHub's GraphQL API supports returning co-authors (see |
|
@stefanv, @jarrodmillman, I solved the final issue of reliably determining co-authors by falling back to GraphQL. Which is... complicated. 😅 The script should be pretty stand-alone now. Already tested it on networkx and NumPy as well. In the latter case there's even some useful sorting because NumPy uses similar labels to scikit-image. 😊 |
|
Nice, thanks! I haven't looked at the code yet, but wanted to mention that we also use graphql on devstats, so could be worth comparing the paging approach taken. Looking forward to reviewing this soon! |
|
I prepped https://github.com/lagru/ghchangelist for today's meeting. |
|
@lagru Should we merge this for provenance, and then remove it again and start using the library? |
|
Up to you. I don't anticipate that we will loose this PR in the near future so it would be mainly for the symbolic value. :D |
Description
Adapted with light modifications from napari/docs [1].This refactor is supposed to make the script re-usable and easier to maintain in anticipation of moving it to the umbrella of the scientific-python organisation.
Also changes / improvements:
Instead, the github.Repository.compare() is used to retrieve all commits
of interest.
message with a regex. Instead, github.Commit.get_pulls() is used to
retrieve them.
transformed accordingly to "``" (using naive replacement).
-If a pull requests's body (description) contains a code block like this ```release-note ... ```,
its content is used instead of the PR title in the release notes.
[1] https://github.com/napari/docs/blob/741829fdf90c06d0593baaa183a95f152e35bac4/docs/release/generate_release_notes.py
Checklist
./doc/examples(new features only)./benchmarks, if your changes aren't covered by anexisting benchmark
For reviewers
later.
__init__.py.doc/release/release_dev.rst.example, to backport to v0.19.x after merging, add the following in a PR
comment:
@meeseeksdev backport to v0.19.xrun-benchmarklabel. To rerun, the labelcan be removed and then added again. The benchmark output can be checked in
the "Actions" tab.