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

Release Notes - PR release notes only for first dep in a monorepo #10954

Closed
5 of 15 tasks
setchy opened this issue Jul 24, 2021 · 9 comments
Closed
5 of 15 tasks

Release Notes - PR release notes only for first dep in a monorepo #10954

setchy opened this issue Jul 24, 2021 · 9 comments
Labels
status:requirements Full requirements are not yet known, so implementation should not be started type:bug Bug fix of existing functionality

Comments

@setchy
Copy link
Collaborator

setchy commented Jul 24, 2021

How are you running Renovate?

  • WhiteSource Renovate hosted app on github.com
  • Self hosted

If using the hosted app, please skip to the next section.
Otherwise, if self-hosted, please complete the following:

Please select which platform you are using:

  • Azure DevOps (dev.azure.com)
  • Azure DevOps Server
  • Bitbucket Cloud (bitbucket.org)
  • Bitbucket Server
  • Gitea
  • github.com
  • GitHub Enterprise Server
  • gitlab.com
  • GitLab self-hosted

Renovate version: @latest (25.56.10 at time of post)

Describe the bug
We have a nodejs project that has dependencies on both

  • @apollo/federation and
  • @apollo/gateway

It appears that when renovate-bot is producing the PR release notes is not handling both of the CHANGELOG.md files in the monorepo for each respective depdency

Minimal reproduction details below

Only the apollographql/federation CHANGELOG.md notes are added, while the apollographql/gateway CHANGELOG.md is skipped entirely
...

Relevant debug logs

Click me to see logs
Copy/paste any log here, between the starting and ending backticks

Have you created a minimal reproduction repository?

Please read the minimal reproductions documentation to learn how to make a good minimal reproduction repository.

  • I have provided a minimal reproduction repository
  • I don't have time for that, but it happens in a public repository I have linked to
  • I don't have time for that, and cannot share my private repository
  • The nature of this bug means it's impossible to reproduce publicly

Additional context

...

@setchy setchy added priority-5-triage status:requirements Full requirements are not yet known, so implementation should not be started type:bug Bug fix of existing functionality labels Jul 24, 2021
@setchy setchy changed the title monorepo changelog.md handling apollographql/federation - monorepo changelog handling Jul 24, 2021
@setchy setchy changed the title apollographql/federation - monorepo changelog handling Release Notes - PR release notes only for first dep in a monorepo Jul 24, 2021
@setchy
Copy link
Collaborator Author

setchy commented Jul 31, 2021

@rarkins - please let me know if you require further information to triage this

@rarkins
Copy link
Collaborator

rarkins commented Jul 31, 2021

I don't see any minimal reproduction repository (please see the linked document above). I believe it's related to the way we de-dupe packages from the same repo

@setchy
Copy link
Collaborator Author

setchy commented Jul 31, 2021

@rarkins - the reproduction repository is this one - https://github.com/setchy/apollo-federation-poc/pull/17

@rarkins
Copy link
Collaborator

rarkins commented Jul 31, 2021

The presence of 13 dependencies disqualifies it as minimal

@setchy
Copy link
Collaborator Author

setchy commented Jul 31, 2021

@github-actions
Copy link
Contributor

github-actions bot commented Aug 3, 2021

Thank you for providing a reproduction! 🎉 🚀

The Renovate team will take a look at the reproduction repository.

@rarkins
Copy link
Collaborator

rarkins commented Aug 3, 2021

I think it's this logic that's causing us to dedupe:

for (const upgrade of config.upgrades) {
if (upgrade.hasReleaseNotes) {
if (releaseNoteRepos.includes(upgrade.sourceUrl)) {
logger.debug(
{ depName: upgrade.depName },
'Removing duplicate release notes'
);
upgrade.hasReleaseNotes = false;
} else {
releaseNoteRepos.push(upgrade.sourceUrl);
}
}
}

The further challenge is that we display release notes in PRs grouped by repo today, so that would need to change because monorepos can have different packages with different release notes.

@rarkins
Copy link
Collaborator

rarkins commented Aug 3, 2021

To progress from status:requirements to status:ready we'd need agreement on how the logic and presentation should work once we move from the assumption of source URLs being the "key" for each release notes.

@setchy
Copy link
Collaborator Author

setchy commented Dec 2, 2021

Resolved with #12543

@setchy setchy closed this as completed Dec 2, 2021
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status:requirements Full requirements are not yet known, so implementation should not be started type:bug Bug fix of existing functionality
Projects
None yet
Development

No branches or pull requests

2 participants