Automated Dependency Checking API for CI/CD Integration
1405
Views
5
Comments
New
Architecture & Governance 

I would like to propose the development of an API that allows integration with CI/CD tools to check for unused dependencies in an application. This API would provide a boolean value indicating whether there are any unused dependencies, enabling automatic detection during the CI/CD pipeline. By integrating this API into the CI/CD workflow, developers can easily identify and remove unnecessary dependencies, improving application performance and reducing resource consumption early in the development process.

Hi Fontinha,

There are many, but really many ideas to improve the topic of unused and outdated dependencies.

Regarding unused dependencies, I keep repeating that the best solution is, that unused dependencies are always kept in DEV, and that OutSystems should automatically remove them on deploy to the next environment. There is 100% no reason why a developer action/decision needs to be involved here. On deploy to the next environment the unused dependencies are not needed.

Regards,

Daniel

Hi @Daniel Kuhlmann

I completely agree with you: "Unused dependencies are always kept in the DEV". In my setup, we manage deploys through Jenkins, which triggers the Lifetime API.

In our Jenkins pipeline, before moving the application from DEV to QA (TST), we check the AI Mentor API, and the pipeline can be interrupted based on the level of technical debt.

So, what I'm envisioning is that unused dependencies could be a new pattern in AI Mentor. @Rui Quintino, what do you think about this?

Thank you

2021-05-20 17-43-29
Rui Quintino

thanks @Fontinha for tagging! and sorry for the delay

that's actually one topic on AI Mentor Studio radar. Now, one thing we are particularly interested at this point is to understand and quantifying the impact of the unused dependencies detection/cleanup has in overal development (ex: 1CP) and deployment productivity for teams. 

Anyone has concrete data, stories, metrics, experiences around this? What so you see would be biggest benefits? we're interested, so we can better assess priority vs other goals.

Hi @Rui Quintino ,

I will provide a practical case here: in our quality rules, every OutSystems application must have a 90% BDD test coverage for public actions and APIs.

Currently, we perform a quantitative checks for code in the BDD project referencing the public action or APIs. However, there is a false positive in this quantitative check, if the developer adds a reference but does not implement it, which generates a false positive in our quality gateway pipeline.

We have over 100 OutSystems development teams working, and performing this verification manually is extremely costly.

Verifying unused references through AI Mentor would bring us immediate gains since our pipeline already blocks deployments with number or level of technical debts. Using the API could be an alternative solution that would bring us advantages, but we would need to make adjustments to our pipeline.

If you need more information, we can schedule a conversation.

Thank you.

@Fontinhathanks for your request, certainly, with this improvement would be possible to increase performance and quality from the DEV phase.

Outsystem team, I appreciate your interest and agility in managing this issue.