Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New changelog conventions #505

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

New changelog conventions #505

wants to merge 6 commits into from

Conversation

sjsrey
Copy link
Member

@sjsrey sjsrey commented Jan 6, 2023

This is modeled after how to keep a changelog .

Opening up for discussion of conventions for how to keep our changelogs across the federation, using libpysal as a test case.

@sjsrey sjsrey added the WIP Work in progress, do not merge. Discussion only. label Jan 6, 2023
@codecov
Copy link

codecov bot commented Jan 6, 2023

Codecov Report

Merging #505 (94ec7b5) into master (8286c8f) will decrease coverage by 0.1%.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff            @@
##           master    #505     +/-   ##
========================================
- Coverage    78.8%   78.7%   -0.1%     
========================================
  Files         122     122             
  Lines       13100   13185     +85     
========================================
+ Hits        10320   10374     +54     
- Misses       2780    2811     +31     
Impacted Files Coverage Δ
libpysal/examples/remotes.py 74.4% <0.0%> (-21.4%) ⬇️
libpysal/weights/contiguity.py 77.2% <0.0%> (-1.9%) ⬇️
libpysal/examples/base.py 58.9% <0.0%> (-1.1%) ⬇️
libpysal/weights/distance.py 85.4% <0.0%> (ø)
libpysal/weights/tests/test_weights.py 99.7% <0.0%> (+<0.1%) ⬆️
libpysal/weights/weights.py 82.8% <0.0%> (+0.1%) ⬆️
libpysal/weights/tests/test_contiguity.py 95.1% <0.0%> (+0.3%) ⬆️
libpysal/_version.py 40.7% <0.0%> (+2.7%) ⬆️
libpysal/weights/gabriel.py 47.1% <0.0%> (+3.3%) ⬆️

@sjsrey
Copy link
Member Author

sjsrey commented Jan 6, 2023

To avoid conflicts in the changelog, we might add a digest directory in the repo. In there we add a digest entry for each PR that we want to highlight in the changelog.

---
category: added
description: "No longer polling remotes on init"
d_url: https://github.com/pysal/libpysal/pull/504
contributor: sjsrey
c_url: https://github.com/sjsrey
status:

We add tooling that globs the digest directory for all entries that have empty status.
Each such entry is parsed and added to the [Unrleased] section and category of the changelog.md file.
For this entry the result would be something like:

# Changelog

## [Unreleased]
https://github.com/pysal/libpysal/compare/v4.7.0...master

### Added

- W.from_WSP
- W.to_sparse

### Changed
- [No longer polling remotes on init](https://github.com/pysal/libpysal/pull/504) [@sjsrey](https://github.com/sjsrey/)

After the changelog is updated, the digest entry gets updated: status: logged.

---
category: added
description: "No longer polling remotes on init"
d_url: https://github.com/pysal/libpysal/pull/504
contributor: sjsrey
c_url: https://github.com/sjsrey
status: logged

Release

When it comes time to do the release, the changelog.md file goes from:

# Changelog

## [Unreleased]
https://github.com/pysal/libpysal/compare/v4.7.0...master

### Added

- W.from_WSP
- W.to_sparse

### Changed
- [No longer polling remotes on init](https://github.com/pysal/libpysal/pull/504) [@sjsrey](https://github.com/sjsrey/)

to

# Changelog

## [Unreleased]
https://github.com/pysal/libpysal/compare/v4.8.0...master



## [4.8.0](2023-01-12)

### Added

- W.from_WSP
- W.to_sparse

### Changed
- [No longer polling remotes on init](https://github.com/pysal/libpysal/pull/504) [@sjsrey](https://github.com/sjsrey/)

And we continue on post-release with the [Unreleased] version sections getting automatically populated with PRs and their digest entries.

This is a blend of curation (digests) and automation.

@sjsrey
Copy link
Member Author

sjsrey commented Jan 13, 2023

At the Jan-23 dev meeting, we decided to drop the digest idea and instead keep the ## [Unlreased] heading. The latter will contain entries that come with Pull Requests that we want to publicize in a future release.

The PR template likely needs adjusting to reflect this.

@sjsrey sjsrey added WIP Work in progress, do not merge. Discussion only. and removed WIP Work in progress, do not merge. Discussion only. labels Jan 13, 2023
@sjsrey sjsrey requested a review from jGaboardi January 13, 2023 22:45
@sjsrey
Copy link
Member Author

sjsrey commented Jan 13, 2023

It would be great to standardize the changelogs across all pysal packages.

Building on the work @jGaboardi has done with ghactions, I think we can come up with a mapping of labels -> categories to get automated changelogs and release notes that are the same structure across the packages.

I re-added the WIP label so we can have a discussion of this to flesh the design out here.

@sjsrey
Copy link
Member Author

sjsrey commented Jan 13, 2023

We can add labels to already merged PRs, so this could be done now with an eye towards the meta release and aggregating across the packages.

@jGaboardi
Copy link
Member

Always willing to try something new for a better user experience.

@martinfleis martinfleis changed the base branch from master to main February 27, 2023 08:45
@sjsrey
Copy link
Member Author

sjsrey commented Jul 20, 2023

Perhaps the new effort out of the scientific-python changelist is what we should use instead of rolling our own?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WIP Work in progress, do not merge. Discussion only.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants