Project goal: Improve performance of one of the most popular authorization plugins in Jenkins
Skills to study/improve: Java, Performance Testing
Role Strategy Plugin is widely used in Jenkins as an authorization engine, but it has known performance limitations for large-scale setups. In this project the proposal is to improve the plugin’s performance and to create a proper testing framework for Jenkins security plugins.
The project may include:
Perform profiling of the plugin, together with the mentor
Optimize memory and CPU usage by updating internal (refactor string operations, redesign APIs, etc.)
Introduce better caching logic for role groups and assignments
Setup test automation in order to verify the plugin’s performance in Jenkins pull request builds
See this JIRA query for more potential tasks for performance improvements.
Create a Jenkins instance with many projects and user roles defined by the plugin
oleg-nenashev/demo-jenkins-config-as-code can be used as an example of such configuration
Configuration-as-code approach is recommended, because it may be needed to automate generation of roles, users and projects for this task
Setup complex roles with heavy regular expressions, try to get visible performance degradation of the plugin
See this JIRA query. More issues can be added to the list if needed, please do not hesitate to ask in the task.