loopbackio / loopback-next

LoopBack makes it easy to build modern API applications that require complex integrations.
https://loopback.io
Other
4.95k stars 1.07k forks source link

@loopback/renovate-config package #4378

Closed frbuceta closed 3 years ago

frbuceta commented 4 years ago

Suggestion

Today I come to propose incorporating a new loopback package (for loopback 3 and 4).

In my day to day I use Renovate (if I'm not confused, in loopback-next it is also used) and as I have seen that @raymondfeng has incorporated in the CLI the option to update the project, At this point, I want to go a little further and take advantage of the full power of Renovate.

To block Renovate from updating packages without control, I propose to create a package with settings that are updated every time loopback packages do.

Here we can see a bit how to create this package --> https://docs.renovatebot.com/config-presets/

Use Cases

Update dependencies with @renovate-bot

Acceptance criteria

TBD - will be filled by the team.

bajtos commented 4 years ago

Thank you for starting this discussion, @frbuceta.

Based on my limited knowledge of RenovateBot, I don't see how config presets could be used to control the way how LoopBack dependencies are updated by RenovateBot. In my understanding, these presets typically configure paths & modules to ignore, range strategy, lock file maintenance, and so on - see https://github.com/strongloop/loopback-next/blob/master/.renovaterc.json

Personally, if my project was depending on LoopBack 4, then I would want RenovateBot to open a single pull request to update all LB dependencies together. This can be configured via package groups, see e.g. how we are doing it here:

https://github.com/strongloop/loopback-next/blob/908dc28eccf6fdbd830d096c372437a4a2324284/.renovaterc.json#L38-L44

Apparently, such configuration can be contributed to RenovateBot as a monorepo preset, see https://docs.renovatebot.com/presets-monorepo/

Maybe that would be a good first step?

Anyhow, I don't want to discourage you (or anybody else) from researching different approaches. As I said, my knowledge of RenovateBot is limited and thus the opinions presented above may be wrong.

achrinza commented 4 years ago

Currently, I haven't had any issue with using Renovate to update lb4 project to the latest versions as new package versions are published together.

However, I think it may be beneficial for those who don't want to update to the latest CLI version yet (e.g. devops workflow is not updated yet).

I think integration with Renovate is a good idea and could be used as a drop-in replacement for lb4 update for those who prefer consolidating everything to Renovate.

To extend @frbuceta's idea, I would think that the Renovate config package version would need to be in sync with the CLI for compatibility in some way.

All-in-all, I think the new package should closely replicate the behaviour of lb4 update so that users have the flexibility of switching between either methods.

stale[bot] commented 3 years ago

This issue has been marked stale because it has not seen activity within six months. If you believe this to be in error, please contact one of the code owners, listed in the CODEOWNERS file at the top-level of this repository. This issue will be closed within 30 days of being stale.