-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Requesting permissions for several branch-source traits #456
Requesting permissions for several branch-source traits #456
Conversation
@stephenc AFAIUI this is the result of you rejecting new filters in branch source plugins. TBH I do not think rejecting additions such as this is the right approach and hope you reconsider. This seems like very limited overhead if added to the branch source plugins (an additional entry in a dropdown somewhere?). Making people look for plugins implementing some (well generalizable) filters seems actively user-hostile. IIRC similar tools already use the tedious plugin management in Jenkins as "attack ads", why do we give them more ammunition? |
@daniel-beck everything we add to scm-api / branch-api / *-branch-source is exposed to ALL users and adds complexity to the users. The decision that was taken is to support the core needs of the 80% of users in the core plugins and let all the other cases be handled via extension plugins. If we add these traits to core, we add complexity to releasing the core plugins as the testing surface is larger. In fact I would very much like to remove the existing traits from scm-api and keep it a pure api plugin rather than a mix of api with some impl, but there were objections to the introduction of another plugin to the dependency tree. The advantage of these small plugins is that they are much easier to test in isolation and users need only install the implementations they need. That said, the names of these plugins I object to. These are not branch-source plugins but scm-api plugins. There is no dependency on branch-api (nor should there be), the names should be ending in Naming plugins with "branch-source" in the name is an anti-pattern that I would very much like to stamp out. Branch API is just one consumer of the SCM API. Can we please revert and request a rename |
These are pure filters, plugin names should start or end with
No branch source in the name please |
@witokondoria PTAL. Up to you. |
I acknowledge that here (AFAIUI):
This is externalization of costs. It's nice that there's less to test in your plugin, but at the same time it's much more likely to break user instances due to incompatible changes. The average Jenkins instance today has 74 independently managed plugins (up from 52 just a year ago), and it's still growing rapidly. I'm not asking that plugins be combined needlessly because they do something similar. But these are clearly auxiliary features for branch sources with very little cost to have right there, as 'batteries included'. |
Then very soon you end up with 100's of behaviours in every installation... now while that is preferable to 100's of checkboxes, it does not help the new user. We could pool some of these filters into tiered plugins, but even there you end up exposing configuration options and complexity to many many users. The ones in #459 are probably generic enough that they could form the start of a These ones are more complex. They need
The general user does not want these behaviours unless they have very specific needs as they will play havoc with the build history... but there are some users who may want them... and as such I encourage they be published, just not with the current artifactIds |
Right, hence generalizable: This looks like a "PR title/message regex filter". Either include or exclude on match, and it's general enough IMO.
Also general enough if configurable. Of course, the behavior you describe seems broken and should just skip building inapplicable commits, but otherwise this seems pretty generally useful too. The criticisms of these plugins seem based on limitations of their current implementation. Those should just be fixed. My more general concerns about unnecessary plugin proliferation stands. It's a massive problem for users, and rejecting additions like these from 'core' plugins doesn't help. |
My two cents:
The only way to skip a reference from being built is via the implementing th Wether the branch-api offered a Filtering via PR title is meant to block the initial job creation, so the Filtering via age is meant to completely block the job creation for old references, so Regarding the PR title filter being generalizable, even it is conceptually, it has a jira-plugin dependency. Someone not using jira but willing to filter via a regexp, will earn a new plugin to its installed pool (and thats supposed to be unwanted). I will go on with renaming the repos, GAVs and packagings and if the |
The commit message "filter" should actually be using https://issues.jenkins-ci.org/browse/JENKINS-45502 longer term. As such this would be more of a "decoration" rather than a "filter" so that one should be The other two, age and PR title are certainly pure filter plugins and as such should be |
Description
Three new plugins, implementing additional traits over branch-source plugins (currently github and bitbucket)
https://github.com/jenkinsci/branch-source-aged-refs-traits-plugin
https://github.com/jenkinsci/branch-source-commit-skip-traits-plugin
https://github.com/jenkinsci/branch-source-jira-validator-traits-plugin
https://issues.jenkins-ci.org/browse/HOSTING-414
https://issues.jenkins-ci.org/browse/HOSTING-417
https://issues.jenkins-ci.org/browse/HOSTING-428
branch-source-aged-refs-traits-plugin has a pending pull request (jenkinsci/scm-filter-aged-refs-plugin#1), blocked due a dependency, where the GAV will be changed to the one in this permission request.
Submitter checklist for changing permissions
Always
For a newly hosted plugin only
For a new permissions file only
permissions/
directoryartifactId
(pom.xml) is used forname
(permissions YAML file).groupId
/artifactId
(pom.xml) are correctly represented inpath
(permissions YAML file)plugin-${artifactId}.yml
for pluginsWhen adding new uploaders (this includes newly created permissions files)