CINXE.COM
Contributing - Traffic Server - Apache Software Foundation
<!DOCTYPE html> <html lang="en-GB" > <head> <title>Contributing - Traffic Server - Apache Software Foundation</title> <meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=IE7"> <meta charset="UTF-8"> <meta id="confluence-context-path" name="confluence-context-path" content="/confluence"> <meta id="confluence-base-url" name="confluence-base-url" content="https://cwiki.apache.org/confluence"> <meta id="atlassian-token" name="atlassian-token" content="e0281d7400624dab74709a25b81cebe4766e3e11"> <meta id="confluence-space-key" name="confluence-space-key" content="TS"> <script type="text/javascript"> var contextPath = '/confluence'; </script> <meta name="confluence-request-time" content="1732726803399"> <meta name="ajs-use-keyboard-shortcuts" content="true"> <meta name="ajs-com.comalatech.checklists-stats-friendApps" content="sr-rep" /><meta name="ajs-com.comalatech.checklists-stats-comalatechToken" content="58MXm8oJQZPF89Ok3XQ2VJfL50P7BA+oc1f6FvIawlzl7T8YLMzPse6w4ofpVR147G2297X2KNYVOfNkJHKMumEfkvFwyb2gffiM8ywDJfI5vs2wQ2xqo4CO0fPjwv3eFeXcTyHILzXCZ5wTUMNXiEat2npQ5GaW6csezo+PRiCnqAhpF6XXaIaRXsFC2GuKcgworYi3E/PUHOpTm1g8hp5H9KUpYyYn7HdHrGnQ7jyhKQTMcBkCm9d1lOn1ZBZvqL8Tpx36NvSYh7UgRTasCNLtg652WQUt/rjF6Ox3P5id1jwZJyIj9EUoeuaSW04iP4WOKfN6u4NdHd2jHk3lCg==" /><meta name="ajs-com.comalatech.checklists-stats-pluginLicenseType" content="PAID" /><meta name="ajs-com.comalatech.checklists-stats-licenseType" content="OPEN_SOURCE" /><meta name="ajs-com.comalatech.checklists-stats-checklistExcerptMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-timestamp" content="1732672800026" /><meta name="ajs-com.comalatech.checklists-stats-checklistAttributeMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-dev-mode" content="false" /><meta name="ajs-com.comalatech.checklists-trace" content="false" /><meta name="ajs-com.comalatech.checklists-stats-checklistLogMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistWikiinputMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistLabelMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-licenseSize" content="10000" /><meta name="ajs-com.comalatech.checklists-stats-checklistWikiMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-instanceId" content="782e50b8e4252e986d61834beb7b94ab" /><meta name="ajs-com.comalatech.checklists-stats-checklistMetadataMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistPagelinkMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistSelectMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistMacroTotal" content="1" /><meta name="ajs-com.comalatech.checklists-stats-totalSpaces" content="444" /><meta name="ajs-com.comalatech.checklists-stats-app" content="chks" /><meta name="ajs-com.comalatech.checklists-stats-checklistInputMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistIncludeMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-hostVersion" content="7.19.28" /><meta name="ajs-com.comalatech.checklists-stats-totalVersions" content="1012999" /><meta name="ajs-com.comalatech.checklists-stats-totalPages" content="251572" /><meta name="ajs-com.comalatech.checklists-stats-version" content="2.6.13" /><meta name="ajs-com.comalatech.checklists-stats-pluginLicenseSize" content="0" /> <meta name="ajs-is-confluence-admin" content="false"> <meta name="ajs-connection-timeout" content="10000"> <script type="text/x-template" title="gliffy-webpanel-footer"> <div class="gliffy-webpanel-footer"><span>This Confluence installation runs a Free Gliffy License - Evaluate the <a href="http://www.gliffy.com/products/confluence-plugin/">Gliffy Confluence Plugin</a> for your Wiki!</span></div> </script> <style>.ia-fixed-sidebar, .ia-splitter-left {width: 285px;}.theme-default .ia-splitter #main {margin-left: 285px;}.ia-fixed-sidebar {visibility: hidden;}</style> <meta name="ajs-discovered-plugin-features" content="$discoveredList"> <meta name="ajs-keyboardshortcut-hash" content="cf3f470089c6cd344bf2057f3509b93"> <meta name="ajs-page-title" content="Contributing"> <meta name="ajs-latest-published-page-title" content="Contributing"> <meta name="ajs-space-name" content="Traffic Server"> <meta name="ajs-page-id" content="62686935"> <meta name="ajs-latest-page-id" content="62686935"> <meta name="ajs-content-type" content="page"> <meta name="ajs-parent-page-title" content="Apache Traffic Server"> <meta name="ajs-parent-page-id" content="4588509"> <meta name="ajs-space-key" content="TS"> <meta name="ajs-max-number-editors" content="12"> <meta name="ajs-macro-placeholder-timeout" content="5000"> <meta name="ajs-jira-metadata-count" content="-1"> <meta name="ajs-from-page-title" content=""> <meta name="ajs-can-remove-page" content="false"> <meta name="ajs-can-remove-page-hierarchy" content="false"> <meta name="ajs-browse-page-tree-mode" content="view"> <meta name="ajs-shared-drafts" content="true"> <meta name="ajs-context-path" content="/confluence"> <meta name="ajs-base-url" content="https://cwiki.apache.org/confluence"> <meta name="ajs-version-number" content="7.19.28"> <meta name="ajs-build-number" content="8804"> <meta name="ajs-remote-user" content=""> <meta name="ajs-remote-user-key" content=""> <meta name="ajs-remote-user-has-licensed-access" content="false"> <meta name="ajs-remote-user-has-browse-users-permission" content="false"> <meta name="ajs-current-user-fullname" content=""> <meta name="ajs-current-user-avatar-url" content=""> <meta name="ajs-current-user-avatar-uri-reference" content="/confluence/images/icons/profilepics/anonymous.svg"> <meta name="ajs-static-resource-url-prefix" content="/confluence/s/-290brt/8804/noax5f/_"> <meta name="ajs-global-settings-attachment-max-size" content="20971520"> <meta name="ajs-global-settings-quick-search-enabled" content="true"> <meta name="ajs-user-locale" content="en_GB"> <meta name="ajs-user-timezone-offset" content="0"> <meta name="ajs-enabled-dark-features" content="site-wide.shared-drafts,site-wide.synchrony,migration-assistant.enable.assess-l1-cloud-tooling.feature,clc.quick.create,confluence.view.edit.transition,cql.search.screen,confluence-inline-comments-resolved,frontend.editor.v4,http.session.registrar,nps.survey.inline.dialog,confluence.efi.onboarding.new.templates,frontend.editor.v4.compatibility,atlassian.cdn.static.assets,pdf-preview,previews.sharing,previews.versions,file-annotations,confluence.efi.onboarding.rich.space.content,collaborative-audit-log,confluence.reindex.improvements,previews.conversion-service,editor.ajax.save,read.only.mode,graphql,previews.trigger-all-file-types,attachment.extracted.text.extractor,lucene.caching.filter,confluence.table.resizable,notification.batch,previews.sharing.pushstate,confluence-inline-comments-rich-editor,tc.tacca.dacca,site-wide.synchrony.opt-in,atlassian.webresource.twophase.js.i18n.disabled,confluence.denormalisedpermissions,file-annotations.likes,gatekeeper-ui-v2,v2.content.name.searcher,mobile.supported.version,confluence.editor.tinymce.tables,pulp,confluence-inline-comments,confluence-inline-comments-dangling-comment,quick-reload-inline-comments-flags,confluence.retention.rules"> <meta name="ajs-atl-token" content="e0281d7400624dab74709a25b81cebe4766e3e11"> <meta name="ajs-confluence-flavour" content="VANILLA"> <meta name="ajs-user-date-pattern" content="dd MMM yyyy"> <meta name="ajs-access-mode" content="READ_WRITE"> <meta name="ajs-render-mode" content="READ_WRITE"> <meta name="ajs-date.format" content="MMM dd, yyyy"> <link rel="shortcut icon" href="/confluence/s/-290brt/8804/noax5f/1/_/favicon.ico"> <link rel="icon" type="image/x-icon" href="/confluence/s/-290brt/8804/noax5f/1/_/favicon.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/confluence/opensearch/osd.action" title="Apache Software Foundation"/> <meta name="ajs-create-issue-metadata-show-discovery" content="false"> <script> window.WRM=window.WRM||{};window.WRM._unparsedData=window.WRM._unparsedData||{};window.WRM._unparsedErrors=window.WRM._unparsedErrors||{}; WRM._unparsedData["com.atlassian.applinks.applinks-plugin:applinks-common-exported.entity-types"]="{\u0022singular\u0022:{\u0022refapp.charlie\u0022:\u0022Charlie\u0022,\u0022fecru.project\u0022:\u0022Crucible Project\u0022,\u0022fecru.repository\u0022:\u0022FishEye Repository\u0022,\u0022stash.project\u0022:\u0022Stash Project\u0022,\u0022generic.entity\u0022:\u0022Generic Project\u0022,\u0022confluence.space\u0022:\u0022Confluence Space\u0022,\u0022bamboo.project\u0022:\u0022Bamboo Project\u0022,\u0022jira.project\u0022:\u0022Jira Project\u0022},\u0022plural\u0022:{\u0022refapp.charlie\u0022:\u0022Charlies\u0022,\u0022fecru.project\u0022:\u0022Crucible Projects\u0022,\u0022fecru.repository\u0022:\u0022FishEye Repositories\u0022,\u0022stash.project\u0022:\u0022Stash Projects\u0022,\u0022generic.entity\u0022:\u0022Generic Projects\u0022,\u0022confluence.space\u0022:\u0022Confluence Spaces\u0022,\u0022bamboo.project\u0022:\u0022Bamboo Projects\u0022,\u0022jira.project\u0022:\u0022Jira Projects\u0022}}"; WRM._unparsedData["com.atlassian.analytics.analytics-client:programmatic-analytics-init.programmatic-analytics-data-provider"]="false"; WRM._unparsedData["com.atlassian.confluence.plugins.confluence-license-banner:confluence-license-banner-resources.license-details"]="{\u0022daysBeforeLicenseExpiry\u0022:0,\u0022daysBeforeMaintenanceExpiry\u0022:0,\u0022showLicenseExpiryBanner\u0022:false,\u0022showMaintenanceExpiryBanner\u0022:false,\u0022renewUrl\u0022:null,\u0022salesUrl\u0022:null}"; WRM._unparsedData["com.atlassian.plugins.atlassian-plugins-webresource-plugin:context-path.context-path"]="\u0022/confluence\u0022"; WRM._unparsedData["com.atlassian.analytics.analytics-client:policy-update-init.policy-update-data-provider"]="false"; WRM._unparsedData["com.atlassian.applinks.applinks-plugin:applinks-common-exported.authentication-types"]="{\u0022com.atlassian.applinks.api.auth.types.BasicAuthenticationProvider\u0022:\u0022Basic Access\u0022,\u0022com.atlassian.applinks.api.auth.types.TrustedAppsAuthenticationProvider\u0022:\u0022Trusted Applications\u0022,\u0022com.atlassian.applinks.api.auth.types.CorsAuthenticationProvider\u0022:\u0022CORS\u0022,\u0022com.atlassian.applinks.api.auth.types.OAuthAuthenticationProvider\u0022:\u0022OAuth\u0022,\u0022com.atlassian.applinks.api.auth.types.TwoLeggedOAuthAuthenticationProvider\u0022:\u0022OAuth\u0022,\u0022com.atlassian.applinks.api.auth.types.TwoLeggedOAuthWithImpersonationAuthenticationProvider\u0022:\u0022OAuth\u0022}"; WRM._unparsedData["com.atlassian.confluence.plugins.confluence-search-ui-plugin:confluence-search-ui-plugin-resources.i18n-data"]="{\u0022search.ui.recent.link.text\u0022:\u0022View more recently visited\u0022,\u0022search.ui.search.results.empty\u0022:\u0022We couldn\u0027\u0027t find anything matching \u005C\u0022{0}\u005C\u0022.\u0022,\u0022search.ui.filter.clear.selected\u0022:\u0022Clear selected items\u0022,\u0022search.ui.content.name.search.items.panel.load.all.top.items.button.text\u0022:\u0022Show more app results...\u0022,\u0022search.ui.filter.contributor.button.text\u0022:\u0022Contributor\u0022,\u0022search.ui.filter.space.current.label\u0022:\u0022CURRENT\u0022,\u0022search.ui.clear.input.button.text\u0022:\u0022Clear text\u0022,\u0022search.ui.search.results.clear.button\u0022:\u0022clear your filters.\u0022,\u0022help.search.ui.link.title\u0022:\u0022Search tips\u0022,\u0022search.ui.container.close.text\u0022:\u0022Close\u0022,\u0022search.ui.filter.date.month.text\u0022:\u0022The past month\u0022,\u0022search.ui.infinite.scroll.button.text\u0022:\u0022More results\u0022,\u0022search.ui.filter.date.button.text\u0022:\u0022Date\u0022,\u0022search.ui.filter.date.week.text\u0022:\u0022The past week\u0022,\u0022search.ui.result.subtitle.calendar\u0022:\u0022Team calendar\u0022,\u0022search.ui.filter.date.heading\u0022:\u0022Last modified within\u0022,\u0022search.ui.filter.space.input.label\u0022:\u0022Find spaces...\u0022,\u0022search.ui.generic.error\u0022:\u0022Something went wrong. Refresh the page, or contact your admin if this keeps happening.\u0022,\u0022search.ui.recent.spaces\u0022:\u0022Recent Spaces\u0022,\u0022search.ui.result.subtitle.space\u0022:\u0022Space\u0022,\u0022search.ui.filter.space.category.input.label\u0022:\u0022Find space categories...\u0022,\u0022search.ui.filter.space.archive.label\u0022:\u0022Search archived spaces\u0022,\u0022search.ui.filter.label\u0022:\u0022filter\u0022,\u0022search.ui.filter.date.all.text\u0022:\u0022Any time\u0022,\u0022search.ui.filter.date.hour.text\u0022:\u0022The past day\u0022,\u0022search.ui.filters.heading\u0022:\u0022Filter by\u0022,\u0022search.ui.filter.label.input.label\u0022:\u0022Find labels...\u0022,\u0022search.ui.recent.items.anonymous\u0022:\u0022Start exploring. Your search results will appear here.\u0022,\u0022search.ui.input.label\u0022:\u0022Search\u0022,\u0022search.ui.input.aria.label\u0022:\u0022Search, when you type, your results will be displayed below.\u0022,\u0022search.ui.search.result\u0022:\u0022{0,choice,1#{0} search result|1\u003c{0} search results}\u0022,\u0022search.ui.filter.label.button.text\u0022:\u0022Label\u0022,\u0022search.ui.container.clear.ariaLabel\u0022:\u0022Clear\u0022,\u0022search.ui.input.alert\u0022:\u0022Hit enter to search\u0022,\u0022search.ui.filter.no.result.text\u0022:\u0022We can\u0027\u0027t find anything matching your search\u0022,\u0022search.ui.result.subtitle.user\u0022:\u0022User profile\u0022,\u0022search.ui.filter.contributor.input.label\u0022:\u0022Find people...\u0022,\u0022search.ui.filter.content.type.button.text\u0022:\u0022Type\u0022,\u0022search.ui.filter.date.year.text\u0022:\u0022The past year\u0022,\u0022search.ui.advanced.search.link.text\u0022:\u0022Advanced search\u0022,\u0022search.ui.filter.space.button.text\u0022:\u0022Space\u0022,\u0022search.ui.search.results.clear.line2\u0022:\u0022Try a different search term or\u0022,\u0022search.ui.filter.space.category.button.text\u0022:\u0022Space category\u0022,\u0022search.ui.search.results.clear.line1\u0022:\u0022We couldn\u0027\u0027t find anything matching your search.\u0022,\u0022search.ui.content.name.search.items.panel.load.all.top.items.admin.button.text\u0022:\u0022Show more settings and app results...\u0022,\u0022search.ui.recent.pages\u0022:\u0022Recently visited\u0022,\u0022search.ui.search.result.anonymous\u0022:\u0022{0,choice,1#{0} search result|1\u003c{0} search results}. Have an account? {1}Log in{2} to expand your search.\u0022,\u0022search.ui.recent.items.empty\u0022:\u0022Start exploring. Pages and spaces you\u0027\u0027ve visited recently will appear here.\u0022,\u0022search.ui.filter.space.init.heading\u0022:\u0022recent spaces\u0022}"; WRM._unparsedData["com.atlassian.applinks.applinks-plugin:applinks-common-exported.applinks-types"]="{\u0022crowd\u0022:\u0022Crowd\u0022,\u0022confluence\u0022:\u0022Confluence\u0022,\u0022fecru\u0022:\u0022FishEye / Crucible\u0022,\u0022stash\u0022:\u0022Stash\u0022,\u0022jira\u0022:\u0022Jira\u0022,\u0022refapp\u0022:\u0022Reference Application\u0022,\u0022bamboo\u0022:\u0022Bamboo\u0022,\u0022generic\u0022:\u0022Generic Application\u0022}"; WRM._unparsedData["com.atlassian.confluence.plugins.synchrony-interop:synchrony-status-banner-loader.synchrony-status"]="false"; WRM._unparsedData["com.atlassian.applinks.applinks-plugin:applinks-common-exported.applinks-help-paths"]="{\u0022entries\u0022:{\u0022applinks.docs.root\u0022:\u0022https://confluence.atlassian.com/display/APPLINKS-082/\u0022,\u0022applinks.docs.diagnostics.troubleshoot.sslunmatched\u0022:\u0022SSL+and+application+link+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.oauthsignatureinvalid\u0022:\u0022OAuth+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.oauthtimestamprefused\u0022:\u0022OAuth+troubleshooting+guide\u0022,\u0022applinks.docs.delete.entity.link\u0022:\u0022Create+links+between+projects\u0022,\u0022applinks.docs.adding.application.link\u0022:\u0022Link+Atlassian+applications+to+work+together\u0022,\u0022applinks.docs.administration.guide\u0022:\u0022Application+Links+Documentation\u0022,\u0022applinks.docs.oauth.security\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.troubleshoot.application.links\u0022:\u0022Troubleshoot+application+links\u0022,\u0022applinks.docs.diagnostics.troubleshoot.unknownerror\u0022:\u0022Network+and+connectivity+troubleshooting+guide\u0022,\u0022applinks.docs.configuring.auth.trusted.apps\u0022:\u0022Configuring+Trusted+Applications+authentication+for+an+application+link\u0022,\u0022applinks.docs.diagnostics.troubleshoot.authlevelunsupported\u0022:\u0022OAuth+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.ssluntrusted\u0022:\u0022SSL+and+application+link+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.unknownhost\u0022:\u0022Network+and+connectivity+troubleshooting+guide\u0022,\u0022applinks.docs.delete.application.link\u0022:\u0022Link+Atlassian+applications+to+work+together\u0022,\u0022applinks.docs.adding.project.link\u0022:\u0022Configuring+Project+links+across+Applications\u0022,\u0022applinks.docs.link.applications\u0022:\u0022Link+Atlassian+applications+to+work+together\u0022,\u0022applinks.docs.diagnostics.troubleshoot.oauthproblem\u0022:\u0022OAuth+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.migration\u0022:\u0022Update+application+links+to+use+OAuth\u0022,\u0022applinks.docs.relocate.application.link\u0022:\u0022Link+Atlassian+applications+to+work+together\u0022,\u0022applinks.docs.administering.entity.links\u0022:\u0022Create+links+between+projects\u0022,\u0022applinks.docs.upgrade.application.link\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.diagnostics.troubleshoot.connectionrefused\u0022:\u0022Network+and+connectivity+troubleshooting+guide\u0022,\u0022applinks.docs.configuring.auth.oauth\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.insufficient.remote.permission\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.configuring.application.link.auth\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.diagnostics\u0022:\u0022Application+links+diagnostics\u0022,\u0022applinks.docs.configured.authentication.types\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.adding.entity.link\u0022:\u0022Create+links+between+projects\u0022,\u0022applinks.docs.diagnostics.troubleshoot.unexpectedresponse\u0022:\u0022Network+and+connectivity+troubleshooting+guide\u0022,\u0022applinks.docs.configuring.auth.basic\u0022:\u0022Configuring+Basic+HTTP+Authentication+for+an+Application+Link\u0022,\u0022applinks.docs.diagnostics.troubleshoot.authlevelmismatch\u0022:\u0022OAuth+troubleshooting+guide\u0022}}"; WRM._unparsedData["com.atlassian.confluence.plugins.confluence-feature-discovery-plugin:confluence-feature-discovery-plugin-resources.test-mode"]="false"; if(window.WRM._dataArrived)window.WRM._dataArrived();</script> <link rel="stylesheet" href="/confluence/s/6ae781c19260c87c2df2185688cf22d1-CDN/-290brt/8804/noax5f/35dbafbbc78d45870cb35c7d7200f6a7/_/download/contextbatch/css/_super,-com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer/batch.css" data-wrm-key="_super,-com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer" data-wrm-batch-type="context" media="all"> <link rel="stylesheet" href="/confluence/s/bbcc4b324a5a41fc0ad1bfb9c14f60b7-CDN/-290brt/8804/noax5f/3463efedda51c7056b1e351d39fff087/_/download/contextbatch/css/atl.confluence.plugins.pagetree-desktop,main,viewcontent,atl.general,page,atl.comments,-_super/batch.css?gatekeeper-ui-v2=true&highlightactions=true&hostenabled=true" data-wrm-key="atl.confluence.plugins.pagetree-desktop,main,viewcontent,atl.general,page,atl.comments,-_super" data-wrm-batch-type="context" media="all"> <link rel="stylesheet" href="/confluence/s/d41d8cd98f00b204e9800998ecf8427e-CDN/-290brt/8804/noax5f/3.9.4/_/download/batch/com.stiltsoft.confluence.handy.macros:handy-header-url-resources/com.stiltsoft.confluence.handy.macros:handy-header-url-resources.css" data-wrm-key="com.stiltsoft.confluence.handy.macros:handy-header-url-resources" data-wrm-batch-type="resource" media="all"> <script data-wrm-key="com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer" data-wrm-batch-type="resource" data-initially-rendered> !function(){"use strict";if("PerformanceObserver"in window){const e=[];window.__observedResources=e;const r=e=>"script"===e?"script":"css";new PerformanceObserver((n=>{n.getEntries().filter((({initiatorType:e,name:r})=>{const n="script"===e||((e,r)=>"link"===e&&"css"===new URL(r).pathname.split(".").pop())(e,r),i=new URL(location.href).origin===new URL(r).origin;return n&&i})).forEach((({name:n,transferSize:i,encodedBodySize:s,initiatorType:o})=>{e.push([i,s,n,r(o)])}))})).observe({type:"resource"})}}(); </script> <script src="/confluence/s/334fed6081c4845fc2054480d6113cd2-CDN/-290brt/8804/noax5f/35dbafbbc78d45870cb35c7d7200f6a7/_/download/contextbatch/js/_super,-com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer/batch.js?locale=en-GB" data-wrm-key="_super,-com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer" data-wrm-batch-type="context" data-initially-rendered></script> <script src="/confluence/s/b27939cb1799efd5df9e051891a4cd0c-CDN/-290brt/8804/noax5f/3463efedda51c7056b1e351d39fff087/_/download/contextbatch/js/atl.confluence.plugins.pagetree-desktop,main,viewcontent,atl.general,page,atl.comments,-_super/batch.js?gatekeeper-ui-v2=true&highlightactions=true&hostenabled=true&locale=en-GB" data-wrm-key="atl.confluence.plugins.pagetree-desktop,main,viewcontent,atl.general,page,atl.comments,-_super" data-wrm-batch-type="context" data-initially-rendered></script> <script src="/confluence/s/7f66847e5bae0cb5645acbbad0252f77-CDN/-290brt/8804/noax5f/3.9.4/_/download/batch/com.stiltsoft.confluence.handy.macros:handy-header-url-resources/com.stiltsoft.confluence.handy.macros:handy-header-url-resources.js?locale=en-GB" data-wrm-key="com.stiltsoft.confluence.handy.macros:handy-header-url-resources" data-wrm-batch-type="resource" data-initially-rendered></script> <script src="/confluence/s/d41d8cd98f00b204e9800998ecf8427e-T/-290brt/8804/noax5f/2.6.13/_/download/batch/com.comalatech.checklists:analyticsResources/com.comalatech.checklists:analyticsResources.js" data-wrm-key="com.comalatech.checklists:analyticsResources" data-wrm-batch-type="resource" data-initially-rendered></script> <script type="module">WRM.requireLazily(["wr!com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-async"])</script> <meta name="ajs-site-title" content="Apache Software Foundation" /> <link rel="canonical" href="https://cwiki.apache.org/confluence/display/TS/Contributing"> <link rel="shortlink" href="https://cwiki.apache.org/confluence/x/14a8Aw"> <meta name="wikilink" content="[TS:Contributing]"> <meta name="page-version" content="2"> <meta name="ajs-page-version" content="2"> </head> <body id="com-atlassian-confluence" class="theme-default aui-layout aui-theme-default"> <div id='stp-licenseStatus-banner'></div> <div id="page"> <div id="full-height-container"> <div id="header-precursor"> <div class="cell"> </div> </div> <header id="header" role="banner"> <a class="aui-skip-link" href="https://cwiki.apache.org/confluence/login.action?os_destination=%2Fdisplay%2FTS%2FContributing">Log in</a> <a class="aui-skip-link" href="#nav-sidebar">Skip to sidebar</a> <a class="aui-skip-link" href="#main">Skip to main content</a> <nav class="aui-header aui-dropdown2-trigger-group" aria-label="Site"><div class="aui-header-inner"><div class="aui-header-before"><button class=" aui-dropdown2-trigger app-switcher-trigger aui-dropdown2-trigger-arrowless" aria-controls="app-switcher" aria-haspopup="true" role="button" data-aui-trigger href="#app-switcher"><span class="aui-icon aui-icon-small aui-iconfont-appswitcher">Linked Applications</span></button><div id="app-switcher" class="aui-dropdown2 aui-style-default" role="menu" hidden data-is-user-admin="false" data-is-switcher="true"><div class="app-switcher-loading">Loading…</div></div></div><div class="aui-header-primary"><span id="logo" class="aui-header-logo aui-header-logo-confluence"><a href="/confluence/" aria-label="Go to home page"><span class="aui-header-logo-device">Apache Software Foundation</span></a></span><ul class="aui-nav"> <li> <a id="space-directory-link" href="/confluence/spacedirectory/view.action" class=" aui-nav-imagelink" title="Spaces"> <span>Spaces</span> </a> </li> <li class="aui-buttons"> </li> </ul> </div><div class="aui-header-secondary"><ul class="aui-nav"> <li> <div id="search-ui" class="aui-quicksearch dont-default-focus header-quicksearch"><button id="quick-search-query-button" aria-label="Search" aria-haspopup= "dialog" aria-controls="search_drawer" ></button><input id="quick-search-query" aria-label="Search" placeholder="Search" type="text" aria-haspopup= "dialog" aria-controls="search_drawer" /><div id="quick-search-alert" role="alert">Hit enter to search</div><aui-spinner size="small"></aui-spinner></div> </li> <li> <a id="help-menu-link" class="aui-nav-link aui-dropdown2-trigger aui-dropdown2-trigger-arrowless" href="#" aria-haspopup="true" aria-owns="help-menu-link-content" title="Help"> <span class="aui-icon aui-icon-small aui-iconfont-question-filled">Help</span> </a> <nav id="help-menu-link-content" class="aui-dropdown2 aui-style-default"> <div class="aui-dropdown2-section"> <ul id="help-menu-link-leading" class="aui-list-truncate section-leading first"> <li> <a id="confluence-help-link" href="https://docs.atlassian.com/confluence/docs-719/" class=" " title="Visit the Confluence documentation home" target="_blank" > Online Help </a> </li> <li> <a id="keyboard-shortcuts-link" href="/confluence" class=" " title="View available keyboard shortcuts" > Keyboard Shortcuts </a> </li> <li> <a id="feed-builder-link" href="/confluence/dashboard/configurerssfeed.action" class=" " title="Create your custom RSS feed." > Feed Builder </a> </li> <li> <a id="whats-new-menu-link" href="https://docs.atlassian.com/confluence/docs-719/help.whats.new.iframe.link" class=" " title="" > What鈥檚 new </a> </li> <li> <a id="whats-new-menu-link" href="https://confluence.atlassian.com/display/DOC/Confluence+7.19+Release+Notes" class=" " title="" > What鈥檚 new </a> </li> <li> <a id="gadget-directory-link" href="/confluence" class=" user-item administration-link " title="Browse gadgets provided by Confluence" > Available Gadgets </a> </li> <li> <a id="confluence-about-link" href="/confluence/aboutconfluencepage.action" class=" " title="Get more information about Confluence" > About Confluence </a> </li> </ul> </div> </nav> </li> <li> </li> <li> </li> <li> <li> <a id="login-link" href="/confluence/login.action?os_destination=%2Fdisplay%2FTS%2FContributing" class=" user-item login-link " title="" > Log in </a> </li> </li> </ul> </div></div><!-- .aui-header-inner--></nav><!-- .aui-header --> <br class="clear"> </header> <div class="ia-splitter"> <div class="ia-splitter-left"> <div class="ia-fixed-sidebar" role="complementary" aria-label=sidebar> <div class="acs-side-bar ia-scrollable-section"><div class="acs-side-bar-space-info tipsy-enabled" data-configure-tooltip="Edit space details"><div class="avatar"><div class="space-logo" data-key="TS" data-name="Traffic Server" data-entity-type="confluence.space"><div class="avatar-img-container"><div class="avatar-img-wrapper"><a href="/confluence/display/TS/Apache+Traffic+Server" title="Traffic Server"><img class="avatar-img" src="/confluence/download/attachments/4588508/TS?version=6&modificationDate=1387402830000&api=v2" alt="Traffic Server"></a></div></div></div></div><div class="space-information-container"><div class="name"><a href="/confluence/display/TS/Apache+Traffic+Server" title="Traffic Server">Traffic Server</a></div><div class="flyout-handle icon aui-icon aui-icon-small aui-iconfont-edit"></div></div></div><div class="acs-side-bar-content"><div class="acs-nav-wrapper"><div class="acs-nav" data-has-create-permission="false" data-quick-links-state="null" data-page-tree-state="null" data-nav-type="page-tree"><div class="acs-nav-sections"><div class="main-links-section "><ul class="acs-nav-list"><li class="acs-nav-item wiki current-item" aria-current="true" data-collector-key="spacebar-pages"><a class="acs-nav-item-link tipsy-enabled" href="/confluence/collector/pages.action?key=TS" data-collapsed-tooltip="Pages"><span class="icon"></span><span class="acs-nav-item-label">Pages</span></a></li><li class="acs-nav-item blog" data-collector-key="spacebar-blogs"><a class="acs-nav-item-link tipsy-enabled" href="/confluence/pages/viewrecentblogposts.action?key=TS" data-collapsed-tooltip="Blog"><span class="icon"></span><span class="acs-nav-item-label">Blog</span></a></li></ul></div><div class="quick-links-wrapper"><h2 class="ia-quick-links-header-title">Space shortcuts</h2><div class="quick-links-section tipsy-enabled "><ul class="acs-nav-list"><li class="acs-nav-item pinned_page blueprint kb-how-to-article"><a class="acs-nav-item-link tipsy-enabled" href="/confluence/display/TS/How-to+articles" data-collapsed-tooltip="null"><span class="icon"></span><span class="acs-nav-item-label">How-to articles</span></a></li></ul></div></div></div></div></div><div class="ia-secondary-container tipsy-enabled" data-tree-type="page-tree"><div class="ia-secondary-header"><h2 class="ia-secondary-header-title page-tree"><span class="icon"></span><span class="label">Page tree</span></h2></div><div class="ia-secondary-content"> <div class="plugin_pagetree conf-macro output-inline" data-hasbody="false" data-macro-name="pagetree"> <div class="plugin_pagetree_children_list plugin_pagetree_children_list_noleftspace"> <div class="plugin_pagetree_children"> </div> </div> <fieldset class="hidden"> <input type="hidden" name="treeId" value="" /> <input type="hidden" name="treeRequestId" value="/confluence/plugins/pagetree/naturalchildren.action?decorator=none&excerpt=false&sort=position&reverse=false&disableLinks=false&expandCurrent=true&placement=sidebar" /> <input type="hidden" name="treePageId" value="62686935" /> <input type="hidden" name="noRoot" value="false" /> <input type="hidden" name="rootPageId" value="4588509" /> <input type="hidden" name="rootPage" value="" /> <input type="hidden" name="startDepth" value="0" /> <input type="hidden" name="spaceKey" value="TS" /> <input type="hidden" name="i18n-pagetree.loading" value="Loading..." /> <input type="hidden" name="i18n-pagetree.error.permission" value="Unable to load page tree. It seems that you do not have permission to view the root page." /> <input type="hidden" name="i18n-pagetree.eeror.general" value="There was a problem retrieving the page tree. Please check the server log file for more information." /> <input type="hidden" name="loginUrl" value="/confluence/login.action?os_destination=%2Fpages%2Fviewpage.action%3FspaceKey%3DTS%26title%3DContributing&permissionViolation=true" /> <input type="hidden" name="mobile" value="false" /> <input type="hidden" name="placement" value="sidebar" /> <fieldset class="hidden"> <input type="hidden" name="ancestorId" value="4588509" /> </fieldset> </fieldset> </div> </div></div></div><div class="hidden"><a href="/confluence/collector/pages.action?key=TS" id="space-pages-link"></a><script type="text/x-template" title="logo-config-content"><h2>Space Details</h2><div class="personal-space-logo-hint">Your profile picture is used as the logo for your personal space. <a href="/confluence/users/profile/editmyprofilepicture.action" target="_blank">Change your profile picture</a>.</div></script></div></div><div class="space-tools-section"><div id="space-tools-menu-additional-items" class="hidden"><div data-label="Browse pages" data-class="" data-href="/confluence/pages/reorderpages.action?key=TS">Browse pages</div></div><button id="space-tools-menu-trigger" class=" aui-dropdown2-trigger aui-button aui-button-subtle tipsy-enabled aui-dropdown2-trigger-arrowless " aria-controls="space-tools-menu" aria-haspopup="true" role="button" data-aui-trigger><span class="aui-icon aui-icon-small aui-iconfont-configure">Configure</span><span class="aui-button-label">Space tools</span><span class="aui-icon "></span></button><div id="space-tools-menu" class="aui-dropdown2 aui-style-default space-tools-dropdown" role="menu" hidden data-aui-alignment="top left"></div><a href="#" role="button" class="expand-collapse-trigger aui-icon aui-icon-small aui-iconfont-chevron-double-left" aria-expanded="true"></a></div> </div> </div> <!-- \#header --> <main role="main" id="main" class=" aui-page-panel"> <div id="main-header"> <div id="navigation" class="content-navigation view" role="region" aria-label="Page tools"> <ul class="ajs-menu-bar"> <li class="normal ajs-menu-item"> <a id="action-menu-link" class="action aui-dropdown2-trigger-arrowless aui-button aui-button-subtle ajs-menu-title aui-dropdown2-trigger" href="#" aria-haspopup="true" aria-label="More options" aria-owns="action-menu" data-container="#navigation"> <span> <span class="aui-icon aui-icon-small aui-iconfont-more" aria-label="More options"></span> </span> </a> <div id="action-menu" class="aui-dropdown2 aui-style-default" aria-hidden="true"> <div class="aui-dropdown2-section"> <ul id="action-menu-primary" class="section-primary first"> <li> <a id="view-attachments-link" href="/confluence/pages/viewpageattachments.action?pageId=62686935" rel="nofollow" class="action-view-attachments" accessKey="t" title="View Attachments" > <span> A<u>t</u>tachments (0) </span> </a> </li> <li> <a id="action-view-history-link" href="/confluence/pages/viewpreviousversions.action?pageId=62686935" rel="nofollow" class="action-view-history" title="" > <span> Page History </span> </a> </li> </ul> </div> <div class="aui-dropdown2-section"> <ul id="action-menu-secondary" class="section-secondary"> <li> <a id="view-resolved-comments" href="/confluence" rel="nofollow" class="" title="" > <span> Resolved comments </span> </a> </li> <li> <a id="view-page-info-link" href="/confluence/pages/viewinfo.action?pageId=62686935" rel="nofollow" class="action-view-info" title="" > <span> Page Information </span> </a> </li> <li> <a id="view-in-hierarchy-link" href="/confluence/pages/reorderpages.action?key=TS&openId=62686935#selectedPageInHierarchy" rel="nofollow" class="" title="" > <span> View in Hierarchy </span> </a> </li> <li> <a id="action-view-source-link" href="/confluence/plugins/viewsource/viewpagesrc.action?pageId=62686935" rel="nofollow" class="action-view-source popup-link" title="" > <span> View Source </span> </a> </li> <li> <a id="delete-all-comments-link-link" href="/confluence/plugins/aptis/deleteAllComments/ask-user.action?pageId=62686935" rel="nofollow" class="" title="" > <span> Delete comments </span> </a> </li> <li> <a id="action-export-pdf-link" href="/confluence/spaces/flyingpdf/pdfpageexport.action?pageId=62686935" rel="nofollow" class="" title="" > <span> Export to PDF </span> </a> </li> <li> <a id="action-export-word-link" href="/confluence/exportword?pageId=62686935" rel="nofollow" class="action-export-word" title="" > <span> Export to Word </span> </a> </li> </ul> </div> <div class="aui-dropdown2-section"> <ul id="action-menu-modify" class="section-modify"> <li> <a id="treecopy-action" href="/confluence/plugins/tree-copy/preparing-copying.action?pageId=62686935" rel="nofollow" class="" title="" > <span> Copy Page Tree </span> </a> </li> </ul> </div> </div> </li> </ul> </div> <div id="title-heading" class="pagetitle with-breadcrumbs"> <div id="breadcrumb-section"> <nav aria-label="Breadcrumbs"> <ol id="breadcrumbs"> <li class="first" > <span class=""><a href="/confluence/collector/pages.action?key=TS">Pages</a></span> <li> <span class=""><a href="/confluence/display/TS/Apache+Traffic+Server">Apache Traffic Server</a></span> </ol> </nav> </div> <div id="page-metadata-banner"><ul class="banner"><li id="system-content-items" class="noprint"><a href="" title="Unrestricted" id="content-metadata-page-restrictions-hidden" class="hidden"></a></li><li class="page-metadata-item noprinthas-button" id="content-metadata-jira-wrapper"><a href="" title="" id="content-metadata-jira" class="aui-button aui-button-subtle content-metadata-jira tipsy-disabled hidden"><span>Jira links</span></a></li></ul></div> <h1 id="title-text" class="with-breadcrumbs"> <a href="/confluence/display/TS/Contributing">Contributing</a> </h1> </div> </div><!-- \#main-header --> <div id="sidebar-container"> </div><!-- \#sidebar-container --> <div id="content" class="page view"> <div id="action-messages"> </div> <script type="text/x-template" title="searchResultsGrid"> <table class="aui"> <thead> <tr class="header"> <th class="search-result-title">Page Title</th> <th class="search-result-space">Space</th> <th class="search-result-date">Updated</th> </tr> </thead> </table> </script> <script type="text/x-template" title="searchResultsGridCount"> <p class="search-result-count">{0}</p> </script> <script type="text/x-template" title="searchResultsGridRow"> <tr class="search-result"> <td class="search-result-title"><a href="{1}" class="content-type-{2}"><span>{0}</span></a></td> <td class="search-result-space"><a class="space" href="/confluence/display/{4}/" title="{3}">{3}</a></td> <td class="search-result-date"><span class="date" title="{6}">{5}</span></td> </tr> </script> <div class="page-metadata"> <ul> <li class="page-metadata-modification-info"> Created by <span class='author'> <a href=" /confluence/display/~jsime " aria-label="created by Jon Sime" class="url fn" >Jon Sime</a></span>, last modified by <span class='editor'> <a href=" /confluence/display/~zwoop " aria-label="modified by Leif Hedstrom" class="url fn" >Leif Hedstrom</a></span> on <a class='last-modified' aria-label='modified on Jul 14, 2017, select to show changes' title='Show changes' href='/confluence/pages/diffpagesbyversion.action?pageId=62686935&selectedPageVersions=1&selectedPageVersions=2'>Jul 14, 2017</a> </li> </ul> </div> <div id="main-content" class="wiki-content"> <p>By visiting this page, we're going to assume you have an interest in contributing to the Apache Traffic Server project. First, and very importantly, Thank you!</p><p>This page will attempt to describe as simply as possible the process by which this project accepts contributions, as well as how the existing project members hope to ideally interact with new contributors to establish and grow relationships with the user and developer communities.</p><h1 id="Contributing-JoiningTheCommunity">Joining The Community</h1><p>The core development team, as well as many other contributors and users of Traffic Server, make extensive use of IRC for day to day communication. Joining the #traffic-server channel on Freenode is a great first step. Additionally, you are encouraged to join the users mailing list by sending an email to <a class="external-link" href="mailto:users-subscribe@trafficserver.apache.org" rel="nofollow">users-subscribe@trafficserver.apache.org</a> and the developers mailing list by sending an email to <a class="external-link" href="mailto:dev-subscribe@trafficserver.apache.org" rel="nofollow">dev-subscribe@trafficserver.apache.org</a>.</p><h1 id="Contributing-FindingThingsToWorkOn">Finding Things To Work On</h1><p>The Traffic Server project tracks all open issues, feature requests, bugs, and other tasks on <a class="external-link" href="https://github.com/apache/trafficserver/issues" rel="nofollow">Github</a><span>. If you do not already have an improvement in mind, and would rather look for an existing need that is not currently being addressed, browsing through the open and unclaimed issues is highly recommended. Open issues cover functionality or deficiencies already identified by other members of the community, so tackling one of these can be a great introduction.</span></p><h1 id="Contributing-CreatingAGitHubPullRequest"><span style="font-size: 20.0px;">Creating A GitHub Pull Request</span></h1><p>Once you have a JIRA issue open, you will need to provide the actual patch(es) for your submission.</p><h3 id="Contributing-ForkTrafficServer">Fork Traffic Server</h3><p>GitHub makes this part easy. While viewing the official Traffic Server repository at <a class="external-link" href="https://github.com/apache/trafficserver" rel="nofollow">https://github.com/apache/trafficserver</a> click the Fork button near the top right of the page. This process may take a moment, but once complete you will have a new project in your personal GitHub account. This is the repository to which you should commit all of your submissions.</p><h3 id="Contributing-CommitYourChanges">Commit Your Changes</h3><p>Submitting individual changes is most easily done by creating topic branches - a new branch in your fork of the repository specific to the change you wish to submit. Create and checkout your new topic branch before issuing any commits:</p><pre>$ git checkout -b <topic branch name></pre><h3 id="Contributing-PushingYourBranch">Pushing Your Branch</h3><p>Your topic branch now needs to be brought up to speed before it can be proposed as a pull request. The first step is to rebase your branch with the current state of the public project, which breaks down into fetching the upstream changes (anything committed to the official repository from which you forked) and then updating your topic branch to incorporate those changes:</p><pre>$ git checkout master<br/>$ git fetch upstream<br/>$ git merge upstream/master<br/>$ git checkout <topic branch name><br/>$ git rebase master</pre><p>If you have any local modifications on your branch, you will need to stash those first, then stash apply them once you have rebased. You may now push your branch to GitHub:</p><pre>$ git push -u origin <topic branch name></pre><h3 id="Contributing-CreateThePullRequest">Create The Pull Request</h3><p>Once you have pushed your topic branch to your fork, you can generate the GitHub pull request against the official Traffic Server repository. On the GitHub website, browse to your personal fork of the project. Select the topic branch which you just pushed, and click on the New Pull Request link next to the branch. The base should be the official Traffic Server repository (on its master branch) and the head should be your personal fork (on the appropriate topic branch).</p><p>Pull requests should always reference the JIRA issue to which the changes are related. Convention is to list the聽JIRA issue at the very beginning of the pull request title, followed by a very brief (a few dozen characters or less) description of the PR. A pull request referencing JIRA issue #123, for example, might be titled "TS-123: frobnicates the wobblinar using whosi-whatsits." A more detailed explanation of the pull request's contents should be included in the description body.</p><p>Once all these have been filled out, you're ready to click Create Pull Request.</p><h3 id="Contributing-Discuss,Modify,Rinse,Repeat">Discuss, Modify, Rinse, Repeat</h3><p>Once your pull request has been opened, committers and other community members with the Traffic Server project may comment with suggestions, alternatives, advice, and proposed tweaks or changes. This process may repeat through a few rounds as your submission is refined. Once your pull request has reached a point where the committers have accepted it, one of them will merge the request into the official repository and your contribution will become an official part of the public project. Congratulations!</p> </div> <div id="labels-section" class="pageSection group"> <div class="labels-section-content content-column" entityid="62686935" entitytype="page"> <div class="labels-content"> <ul class="label-list label-list-right "> <li class="no-labels-message"> No labels </li> </ul> </div> </div> </div> <div id="comments-section" class="pageSection group"> </div> </div> <div id="space-tools-web-items" class="hidden"> <div data-label="Overview" data-href="/confluence/spaces/viewspacesummary.action?key=TS">Overview</div> <div data-label="Content Tools" data-href="/confluence/pages/reorderpages.action?key=TS">Content Tools</div> <div data-label="Apps" data-href="/confluence/spaces/snippeterrors.action?key=TS">Apps</div> </div> </main><!-- \#main --> <div id="footer" role="contentinfo"> <section class="footer-body"> <p class="license license-opensource"> Powered by a free <b>Atlassian Confluence Open Source Project License</b> granted to Apache Software Foundation. <a href="https://www.atlassian.com/software/views/opensource-community-additional-license-offer">Evaluate Confluence today</a>.<br> </p> <ul id="poweredby"> <li class="noprint">Powered by <a href="https://www.atlassian.com/software/confluence" class="hover-footer-link" rel="nofollow">Atlassian Confluence</a> <span id='footer-build-information'>7.19.28</span></li> <li class="print-only">Printed by Atlassian Confluence 7.19.28</li> <li class="noprint"><a href="https://support.atlassian.com/confluence-server/" class="hover-footer-link" rel="nofollow">Report a bug</a></li> <li class="noprint"><a href="https://www.atlassian.com/company" class="hover-footer-link" rel="nofollow">Atlassian News</a></li> </ul> <div id="footer-logo"><a href="https://www.atlassian.com/" rel="nofollow">Atlassian</a></div> </section> </div> </div> </div><!-- \#full-height-container --> </div><!-- \#page --> <span style="display:none;" id="confluence-server-performance">{"serverDuration": 78, "requestCorrelationId": "400662e33497aedb"}</span> </body> </html>