Jenkins : 2014 JIRA Components Refactoring

The page represents a summary of proposed changes in Jenkins JIRA.

Notice for contributors

This document is just a draft. Feel free to add new proposals.
Discussions in jenkinsci-dev

Aims and objectives

  • Simplify the component selection for users
  • Get rid of "forgotten" categories, which are being rarely reviewed by Jenkins contributors (e.g. "www", "master2slave")
  • Make JIRA components similar to GitHub Projects if it is possible
  • Introduce the initial state for incoming issues in order to highlight unrevised requests
  • Create a specific category for new plugin proposals (proposed by Daniel Beck)

Proposals by category

JIRA Workflow changes

  1. Introduce the "Untriaged" state (proposed by Jesse Glick)
    1. This state should be initial for all new issues
    2. "Open" unassigned issues from renamed components should be transferred to this state as well
    3. The similar approach is being used in SECURITY project
  2. Introduce the "Waiting on requester" state (proposed by Oleg Nenashev)
    1. Aims: Better tracking of hanging requests for additional info and timeouts
    2. JIRA bot could distribute weekly summaries about timeouts

Modification of existing components

Approach:

  1. Call IRC Bot to rename/delete the component (see https://issues.jenkins-ci.org/browse/INFRA-100)
  2. Manually update the JIRA component ID on Jenkins Wiki (e.g. jiraComponent=customtools-plugin in "excerpt" section)

Component name

New name

Labels

Comments

Status

gui

core

gui

 

DONE

matrix

matrix-project-plugin

matrix

Most of issues are related to the decoupled Matrix Project plugin

DONE

other

unsorted

 

Could be a default component

 

master-slave

remoting

remoting

 

DONE

maven2

maven-plugin

 

 

DONE

junit

junit-plugin

 

Should be decoupled according to JENKINS-23263

DONE

www

core

www, gui

 

DONE

parameters

core

parameter

 

DONE

hudson-logaction

logaction-plugin



DONE

update-center

core

update, updateCenter

 

DONE

infrastructure

INFRA/unsorted

 

Should be moved to the INFRA project. The issues review is required as well

DONE

ui-changes

core

www, gui

 

DONE

mail

mailer-plugin

 

Most of issues are related to the decoupled Mailer Plugin

DONE

trayapp

hudsontrayapp-plugin

 

 

 

firefox-extension

firefox-extension-buildmonitor

 

 

DONE

ruby-plugin-runtime

ruby-runtime-plugin

 

The plugin has no Wiki page

DONE

flow

jenkins-flow-plugin

 

danielbeck says: Why the "jenkins-" prefix? Isn't that implied? (TODO)

 

repository

maven-repository-plugin

 

 

DONE

jenkins-multijob-plugin

multijob-plugin

 

 

DONE

plugin

plugin-proposals

 

A storage for the new plugin proposals

DONE, issues review is required

docker

docker-plugin

 

 

renamed component,wiki

(plugin-name)

(plugin-name)-plugin

 

Clearly indicate what's a plugin by adding a suffix like for github repos

 

These non-plugin components are not currently scheduled to be reworked:

  • cli
  • core

Add comments to existing components referring to plugins

These components don't have a comment of the form "(name) plugin" to indicate they're about plugins. Rename (see above) and add comment:

  • analysis-collector
  • analysis-core
  • artifactory
  • backup
  • campfire
  • clearcase-ucm-baseline
  • clone-workspace
  • copy-to-slave
  • cppunit
  • createjobadvanced
  • cvs
  • doclinks
  • fitnesse
  • fortify360
  • github
  • locked-files-report
  • logaction
  • next-build-number
  • parameterized-trigger
  • perfpublisher
  • platformlabeler
  • pview
  • radiatorview
  • rebuild
  • scons
  • selenium
  • startup-trigger-plugin
  • subversion
  • swarm
  • validating-string-parameter

Add missing component owners

Approach:

  • Any plugin component should have an owner (the information can be retrieved from Wiki)
  • "core" component - No owner, we rely on the Untriaged state
  • Jenkins Core components and libraries should have owners as well (see the table above)

Components to be deleted

The table below contains components, which contain the stuff without the explicit component reference. These components should be deleted, all issues should be handled manually.

Simple cases

Component name

Move issues to...

Comment

Status

email-ext-template-plugin

emailext-template-plugin

Duplicated components

 

custom-tools

customtools-plugin

Duplicated components

DONE

 

 

 

 

Complex cases

Component name

Proposed actions

Status

security

  1. Transfer all issues to the "Untriaged" state
  2. Inspect and assign issues to proper components (or move to SECURITY)

IN_PROGRESS

hudson.sfbay

  1. Close all issues, because they're outdated (Kohsuke)

DONE

concurrent-build

  1. Transfer all issues to the "Untriaged" state
  2. Inspect and assign issues to proper components

DONE

ant

  1. Create the "ant-plugin" component
  2. Transfer all issues to the "Untriaged" state
  3. Inspect and assign issues to proper components

 

slave-setup

  1. Rename to slave-setup-plugin
  2. Review and cleanup issues (too much garbage)

IN_PROGRESS

oauth-credentials

Same GitHub repose, one of them should be removed:

  1. https://github.com/jenkinsci/oauth-credentials/ (15 commits)
  2. https://github.com/jenkinsci/oauth-credentials-plugin (2 commits)

 

kerberos-authenticator-plugin

Same GitHub repos, one of them should be removed:

  1. https://github.com/jenkinsci/kerberos-authenticator-plugin
  2. https://github.com/jenkinsci/kerberos-auth-plugin (1 commit)

 

New components to be created

The approach:

  • In general, only a single component per GitHub repository should exist
  • Exception: Jenkins Core
    • Main component: core
    • Several top-level components or decoupling candidates can present as standalone components

Component name

Owner

Description

Comment

core-test-unit

TBD

Jenkins Core Unit Tests

A component for build-in Unit tests

core-test-harness

TBD

Jenkins Test Harness

 

native-windows

TBD

Jenkins Native Package for Windows

 

native-rpm

TBD

Jenkins Native Package for Red Hat/Fedora/CentOS


native-opensuse

TBD

Jenkins Native Package for openSUSE

 

native-debian

TBD

Jenkins Native Package for Ubuntu/Debian

 

native-osx

TBD

Jenkins Native Package for Mac OS X

 

native-ips

TBD

Jenkins Native Package for Solaris/OpenIndiana

 

stapler

TBD

Stapler HTTP request handling engine

https://github.com/stapler/stapler

winsw

kohsuke

Windows service wrapper

https://github.com/kohsuke/winsw

winp

kohsuke

Windows process management library

https://github.com/kohsuke/winp

winstone

TBD

Patched winstone used in Jenkins

https://github.com/jenkinsci/winstone

[lib-]crypto-util

kohsuke

Utility around Java Crypto API

[https://github.com/jenkinsci/lib-crypto-util
]

trilead-ssh2

TBD

A patched version of Trilead SSH-2 for Java

https://github.com/jenkinsci/trilead-ssh2