CINXE.COM
turnip in Launchpad
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> <head> <base href="https://launchpad.net/turnip/+index" /> <meta charset="UTF-8" /> <title>turnip in Launchpad</title> <link rel="apple-touch-icon" sizes="180x180" href="/@@/apple-touch-icon.png?v=2022" /> <link rel="icon" type="image/png" sizes="32x32" href="/@@/favicon-32x32.png?v=2022" /> <link rel="icon" type="image/png" sizes="16x16" href="/@@/favicon-16x16.png?v=2022" /> <link rel="manifest" href="/@@/site.webmanifest?v=2022" /> <link rel="mask-icon" href="/@@/safari-pinned-tab.svg?v=2022" color="#e9531f" /> <link rel="shortcut icon" href="/@@/favicon.ico?v=2022" /> <meta name="msapplication-TileColor" content="#da532c" /> <meta name="msapplication-config" content="/@@/browserconfig.xml?v=2022" /> <meta name="theme-color" content="#ffffff" /> <link rel="alternate" type="application/atom+xml" href="http://feeds.launchpad.net/turnip/announcements.atom" title="Announcements for turnip" /> <link rel="alternate" type="application/atom+xml" href="http://feeds.launchpad.net/turnip/latest-bugs.atom" title="Latest Bugs for turnip" /> <link rel="alternate" type="application/atom+xml" href="http://feeds.launchpad.net/turnip/branches.atom" title="Latest Branches for turnip" /> <link rel="alternate" type="application/atom+xml" href="http://feeds.launchpad.net/turnip/revisions.atom" title="Latest Revisions for turnip" /> <link type="text/css" rel="stylesheet" media="screen, print" href="/+icing/rev78860d903de6d6d7dd5a0ade63efaca45d3467e2/combo.css" /> <meta property="og:title" content="turnip in Launchpad" /> <meta property="og:type" content="website" /> <meta property="og:image" content="/@@/launchpad-og-image.png" /> <meta property="og:url" content="https://launchpad.net/turnip/+index" /> <meta property="og:site_name" content="Launchpad" /> <script type="text/javascript"> var LP = { cache: {}, links: {} }; </script> <script type="text/javascript">var cookie_scope = '; Path=/; Secure; Domain=.launchpad.net';</script> <script type="text/javascript" src="/+combo/rev78860d903de6d6d7dd5a0ade63efaca45d3467e2/?yui/yui/yui-min.js&lp/meta.js&yui/loader/loader-min.js"></script> <script type="text/javascript"> var raw = null; if (LP.devmode) { raw = 'raw'; } YUI.GlobalConfig = { combine: true, comboBase: '/+combo/rev78860d903de6d6d7dd5a0ade63efaca45d3467e2/?', root: 'yui/', filter: raw, debug: false, fetchCSS: false, maxURLLength: 2000, groups: { lp: { combine: true, base: '/+combo/rev78860d903de6d6d7dd5a0ade63efaca45d3467e2/?lp/', comboBase: '/+combo/rev78860d903de6d6d7dd5a0ade63efaca45d3467e2/?', root: 'lp/', // comes from including lp/meta.js modules: LP_MODULES, fetchCSS: false } } }</script> <script type="text/javascript"> // we need this to create a single YUI instance all events and code // talks across. All instances of YUI().use should be based off of // LPJS instead. var LPJS = new YUI(); </script> <script id="base-layout-load-scripts" type="text/javascript"> //<![CDATA[ LPJS.use('base', 'node', 'console', 'event', 'oop', 'lp', 'lp.app.foldables','lp.app.sorttable', 'lp.app.inlinehelp', 'lp.app.links', 'lp.bugs.bugtask_index', 'lp.bugs.subscribers', 'lp.app.ellipsis', 'lp.code.branchmergeproposal.diff', 'lp.views.global', function(Y) { Y.on("domready", function () { var global_view = new Y.lp.views.Global(); global_view.render(); Y.lp.app.sorttable.SortTable.init(); Y.lp.app.inlinehelp.init_help(); Y.lp.activate_collapsibles(); Y.lp.app.foldables.activate(); Y.lp.app.links.check_valid_lp_links(); }); Y.on('lp:context:web_link:changed', function(e) { window.location = e.new_value; }); }); //]]> </script> <script id="base-helper-functions" type="text/javascript"> //<![CDATA[ // This code is pulled from lp.js that needs to be available on every // request. Pulling here to get it outside the scope of the YUI block. function setFocusByName(name) { // Focus the first element matching the given name which can be focused. var nodes = document.getElementsByName(name); var i, node; for (i = 0; i < nodes.length; i++) { node = nodes[i]; if (node.focus) { try { // Trying to focus a hidden element throws an error in IE8. if (node.offsetHeight !== 0) { node.focus(); } } catch (e) { LPJS.use('console', function(Y) { Y.log('In setFocusByName(<' + node.tagName + ' type=' + node.type + '>): ' + e); }); } break; } } } function selectWidget(widget_name, event) { if (event && (event.keyCode === 9 || event.keyCode === 13)) { // Avoid firing if user is tabbing through or simply pressing // enter to submit the form. return; } document.getElementById(widget_name).checked = true; } //]]> </script> <script type="text/javascript"> LPJS.use('lp.registry.structural_subscription', function(Y) { var module = Y.lp.registry.structural_subscription; Y.on('domready', function() { module.setup({content_box: "#structural-subscription-content-box"}); }); }); </script> <meta name="go-import" content="launchpad.net/turnip git https://git.launchpad.net/turnip" /> </head> <body id="document" itemscope="" itemtype="http://schema.org/WebPage" class="tab-overview main_side public yui3-skin-sam"> <div class="yui-d0"> <div id="locationbar" class="login-logout"> <div id="logincontrol"><a href="https://launchpad.net/turnip/+login">Log in / Register</a></div> </div><!--id="locationbar"--> <div id="watermark" class="watermark-apps-portlet"> <div> <a href="https://launchpad.net/turnip"><img alt="" width="64" height="64" src="/@@/product-logo" /></a> </div> <div class="wide"> <h2 id="watermark-heading"><a href="https://launchpad.net/turnip">turnip</a></h2> </div> <!-- Application Menu --> <ul class="facetmenu"> <li class="overview active"><span>Overview</span></li> <li class="branches"><a href="https://code.launchpad.net/turnip">Code</a></li> <li class="bugs"><a href="https://bugs.launchpad.net/turnip">Bugs</a></li> <li class="specifications"><a href="https://blueprints.launchpad.net/turnip">Blueprints</a></li> <li class="translations"><a href="https://translations.launchpad.net/turnip">Translations</a></li> <li class="answers"><a href="https://answers.launchpad.net/turnip">Answers</a></li> </ul> </div> <div class="yui-t4"> <div id="maincontent" class="yui-main"> <div class="yui-b" dir="ltr"> <div class="context-publication"> <div id="registration" class="registering"> Registered <time title="2014-02-24 05:05:11 UTC" datetime="2014-02-24T05:05:11.030644+00:00">2014-02-24</time> by <a href="/~wgrant" class="sprite person">William Grant</a> </div> </div> <div id="request-notifications"> </div> <div class="top-portlet"> <div class="summary"><p>turnip is a flexible and scalable Git server suite written in Python<br /> using Twisted.</p></div> </div> <div class="yui-g"> <div class="yui-u first"> <div id="project-info" class="portlet"> <h2>Project information</h2> <div class="two-column-list"> <dl id="partof"> <dt>Part of:</dt> <dd><a href="/launchpad-project" class="bg-image" style="background-image: url(https://launchpadlibrarian.net/600855674/Canonical_Launchpad_icon_14px.png)">Launchpad Suite</a></dd> </dl> <dl id="owner"> <dt>Maintainer:</dt> <dd> <span id="edit-owner"> <span class="yui3-activator-data-box"> <a href="/~launchpad" class="bg-image" style="background-image: url(https://launchpadlibrarian.net/600856263/Canonical_Launchpad_icon_14px.png)">Canonical Launchpad Engineering</a> </span> </span> </dd> </dl> <dl id="driver"> <dt>Driver:</dt> <dd> <span id="edit-driver"> <span class="yui3-activator-data-box"> Not yet selected </span> </span> </dd> </dl> </div> <div> <dl id="licences"> <dt>Licence:</dt> <dd> GNU Affero GPL v3 </dd> </dl> </div> <p> <a class="menu-link-rdf sprite download" href="https://launchpad.net/turnip/+rdf"><abbr title="Resource Description Framework">RDF</abbr> metadata</a> </p> </div> </div> <div class="yui-u"> <div class="portlet"> <h2> <span class="see-all"><a class="menu-link-series sprite info" href="https://launchpad.net/turnip/+series">View full history</a></span> Series and milestones </h2> <div id="timeline-loading" class="hidden"> <img src="/@@/spinner" /> Loading graph... </div> <!-- Opera ignores overflow:hidden for iframe, so use scrolling=no. --> <iframe id="timeline-iframe" name="timeline-iframe" class="timeline-iframe hidden" style="border: 0" scrolling="no" width="100%" height="216px"></iframe> <script> //<![CDATA[ function timeline_iframe(auto_resize, include_inactive, start, size) { var timeline_url = "+timeline-graph?"; if (include_inactive == 'true') { timeline_url += "include_inactive=true&"; } if (auto_resize == 'true') { timeline_url += 'resize_frame=timeline-iframe&'; } start = parseInt(start); size = parseInt(size); if (start != NaN && start >= 0) { timeline_url += "start=" + start + "&"; } if (size != NaN && size >= 1) { timeline_url += "size=" + size + "&"; } LPJS.use('node', 'lp.registry.timeline', function(Y) { if (!Y.lp.registry.timeline.isCanvasSupported()) { return; } var loading_el = Y.one('#timeline-loading'); loading_el.setStyle('display', 'block'); var iframe = Y.one('#timeline-iframe'); iframe.set('src', timeline_url); Y.on('load', function(e) { loading_el.setStyle('display', 'none'); iframe.setStyle('display', 'block'); }, iframe); }); } //]]> </script> <script> timeline_iframe( 'None', 'None', 'None', 'None' ); </script> <p id="development-focus"> <a href="/turnip/trunk">trunk series</a> is the current focus of development. </p> <ul class="horizontal" id="project-link-info"> <li class="nowrap"> <a class="menu-link-milestones sprite info" href="https://launchpad.net/turnip/+milestones">View milestones</a> </li> <li class="nowrap"> <a class="menu-link-create_snap sprite add" href="https://launchpad.net/turnip/+new-snap">Create snap package</a> </li> <li class="nowrap"> <a class="menu-link-view_charm_recipes sprite info" href="https://launchpad.net/turnip/+charm-recipes">View charm recipes</a> </li> <li class="nowrap"> <a class="menu-link-create_charm_recipe sprite add" href="https://launchpad.net/turnip/+new-charm-recipe">Create charm recipe</a> </li> </ul> </div> </div> </div> <div class="yui-g"> <div class="yui-u first"> <div id="code-info" class="portlet"> <h2> <span class="see-all"><a href="https://code.launchpad.net/turnip"> All code</a></span> Code </h2> <div id="code-trunk"> <p> <a href="https://code.launchpad.net/~launchpad/turnip/+git/turnip">lp:turnip</a> <br /> <a class="menu-link-source sprite info" href="https://git.launchpad.net/turnip">Browse the code</a> </p> </div> <div class="two-column-list"> <dl id="product-vcs"> <dt>Version control system:</dt> <dd>Git</dd> </dl> <dl id="product-languages"> <dt>Programming languages:</dt> <dd><span id="edit-programminglang" class="nowrap"> <span class="yui3-editable_text-text" style=""> Python </span> </span> </dd> </dl> </div> </div> <div> </div> </div> <div class="yui-u"> <div><div class="portlet" id="portlet-latest-bugs"> <h2><span class="see-all"><a href="https://bugs.launchpad.net/turnip">All bugs</a></span> Latest bugs reported</h2> <ul> <li> <a href="https://bugs.launchpad.net/turnip/+bug/2080279" class="sprite bug-high" title="High - Fix Released">Bug #2080279: HTTP transport does not return correct application/x-git* headers</a> <br /><span class="registered"> Reported <time title="2024-09-10 19:32:18 UTC" datetime="2024-09-10T19:32:18.159780+00:00">on 2024-09-10</time> </span> </li> <li> <a href="https://bugs.launchpad.net/turnip/+bug/2052380" class="sprite bug-low" title="Low - Triaged">Bug #2052380: the receiving end does not support --signed push</a> <br /><span class="registered"> Reported <time title="2024-02-04 13:39:10 UTC" datetime="2024-02-04T13:39:10.170465+00:00">on 2024-02-04</time> </span> </li> <li> <a href="https://bugs.launchpad.net/turnip/+bug/2038872" class="sprite bug-low" title="Low - Triaged">Bug #2038872: Please add support for git repo format sha256</a> <br /><span class="registered"> Reported <time title="2023-10-10 08:31:16 UTC" datetime="2023-10-10T08:31:16.516943+00:00">on 2023-10-10</time> </span> </li> <li> <a href="https://bugs.launchpad.net/turnip/+bug/2032871" class="sprite bug-low" title="Low - Triaged">Bug #2032871: Not able to download repository ref as a tarball</a> <br /><span class="registered"> Reported <time title="2023-08-24 14:56:22 UTC" datetime="2023-08-24T14:56:22.409739+00:00">on 2023-08-24</time> </span> </li> <li> <a href="https://bugs.launchpad.net/turnip/+bug/2031645" class="sprite bug-undecided" title="Undecided - Invalid">Bug #2031645: Cant Access Git Repos</a> <br /><span class="registered"> Reported <time title="2023-08-17 11:19:23 UTC" datetime="2023-08-17T11:19:23.902018+00:00">on 2023-08-17</time> </span> </li> </ul> </div> </div> <div> </div> <div> <div class="portlet" id="portlet-top-contributors"> <h2> <span class="see-all"><a class="menu-link-top_contributors sprite info" href="https://launchpad.net/turnip/+topcontributors">More contributors</a></span> Top contributors </h2> <ul> <li> <a href="/~jugmac00" class="sprite person">J眉rgen Gmach</a> 668 points </li> <li> <a href="/~otto-copilot" class="sprite person">Otto Co-Pilot</a> 304 points </li> <li> <a href="/~ikoruk" class="sprite person">Yuliy Schwartzburg</a> 158 points </li> <li> <a href="/~lgp171188" class="sprite person">Guruprasad</a> 66 points </li> <li> <a href="/~liushuyu-011" class="sprite person">Zixing Liu</a> 44 points </li> </ul> </div> </div> </div> <div class="yui-u"> <div id="structural-subscription-content-box"></div> </div> </div> </div><!-- yui-b --> </div><!-- yui-main --> <div id="side-portlets" class="yui-b side"> <div id="involvement" class="portlet"> <h2>Get Involved</h2> <ul class="involvement"> <li> <a class="menu-link-report_bug sprite bugs" href="https://bugs.launchpad.net/turnip/+filebug">Report a bug</a> </li> <li class="disabled" title="Launchpad needs to know where the user can ask a question"> <div style="padding: 0.3em 0 0.3em 0.3em"> <div style="display: inline-block" class="sprite warning-icon action-icon">warning</div> <div style="height: 1.2em; float: right"> <img src="/@@/gray-arrow-right.png" style="top: 50%; bottom: 50%; margin-top: -5px; position: relative; height: 9px; width: 14px; padding: 0" /> </div> <span>Ask a question</span> </div> </li> <li class="disabled" title="Launchpad needs to know where the user can help translate"> <div style="padding: 0.3em 0 0.3em 0.3em"> <div style="display: inline-block" class="sprite warning-icon action-icon">warning</div> <div style="height: 1.2em; float: right"> <img src="/@@/gray-arrow-right.png" style="top: 50%; bottom: 50%; margin-top: -5px; position: relative; height: 9px; width: 14px; padding: 0" /> </div> <span>Help translate</span> </div> </li> </ul> </div> <div id="downloads" class="top-portlet downloads"> <h2>Downloads</h2> <div class="version"> Latest version is 0.1.1 </div> <ul> <li> <a href="https://launchpad.net/turnip/trunk/0.1.1/+download/turnip-0.1.1.tar.gz" title="turnip 0.1.1">turnip-0.1.1.tar.gz</a> </li> </ul> <div class="released"> released <time title="2015-06-11 16:37:00 UTC" datetime="2015-06-11T16:37:00+00:00">on 2015-06-11</time> </div> <p class="alternate"> <a class="sprite info" href="https://launchpad.net/turnip/+download">All downloads</a> </p> </div> <div id="portlet-latest-announcements" class="portlet announcements"> <h2> <span style="float: right;"><a title="Atom 1.0 feed" href="http://feeds.launchpad.net/turnip/announcements.atom"><img src="/@@/rss.png" /></a></span> Announcements </h2> <ul> <li> <div class="latest-announcement"> <a href="/launchpad-project/+announcement/4977">Launchpad 10.01: bug heat</a> <strong>on 2010-01-28</strong> <br /> The Launchpad team is proud to announce Launchpad 10.01, released on January ... </div> </li> <li> <a href="/launchpad-project/+announcement/4621">Launchpad 3.1.12</a> <strong>on 2009-12-17</strong> <br /> The Launchpad team is proud to announce Launchpad 3.1.12, released on Decembe... </li> <li> <a href="/launchpad-project/+announcement/4288">Launchpad 3.1.10 releases</a> <strong>on 2009-11-05</strong> <br /> The Launchpad team is proud to announce Launchpad 3.1.10, released on Novembe... </li> <li> <a href="/launchpad-project/+announcement/4171">Launchpad 3.0 is here! New UI and more</a> <strong>on 2009-09-22</strong> <br /> The Launchpad team is proud to announce the release of Launchpad 3.0! Highli... </li> <li> <a href="/launchpad-project/+announcement/3451">Launchpad 2.2.7 released</a> <strong>on 2009-07-22</strong> <br /> The Launchpad team is proud to announce Launchpad 2.2.7! Launchpd 2.2.7 was ... </li> </ul> <div class="see-all"><a class="menu-link-announcements sprite info" href="https://launchpad.net/turnip/+announcements">Read all announcements</a></div> <div class="actions"></div> </div> </div><!-- yui-b side --> </div><!-- yui-t4 --> <div id="footer" class="footer"> <div class="lp-arcana"> <div class="lp-branding"> <a href="https://launchpad.net/"><img src="/@@/launchpad-footer-logo.svg" alt="Launchpad" width="65" height="18" /></a> • <a href="https://launchpad.net/+tour">Take the tour</a> • <a href="https://help.launchpad.net/">Read the guide</a> <form id="globalsearch" method="get" accept-charset="UTF-8" action="https://launchpad.net/+search"> <input type="search" id="search-text" name="field.text" /> <input type="image" src="/@@/search" style="vertical-align:5%" alt="Search Launchpad" /> </form> </div> </div> <div class="colophon"> © 2004 <a href="http://canonical.com/">Canonical Ltd.</a> • <a href="https://launchpad.net/legal">Terms of use</a> • <a href="https://www.ubuntu.com/legal/dataprivacy">Data privacy</a> • <a href="/feedback">Contact Launchpad Support</a> • <a href="http://blog.launchpad.net/">Blog</a> • <a href="https://canonical.com/careers">Careers</a> • <a href="https://ubuntu.social/@launchpadstatus">System status</a> <span id="lp-version"> • 78860d9 (<a href="https://dev.launchpad.net/">Get the code!</a>) </span> </div> </div> </div><!-- yui-d0--> <script id="json-cache-script">LP.cache = {"related_features": {}, "team_membership_policy_data": [{"name": "Restricted Team", "value": "RESTRICTED", "description": "", "description_css_class": "choice-description", "style": "", "help": "", "disabled": false}, {"name": "Moderated Team", "value": "MODERATED", "description": "", "description_css_class": "choice-description", "style": "", "help": "", "disabled": false}], "administratedTeams": [], "importances": ["Unknown", "Undecided", "Critical", "High", "Medium", "Low", "Wishlist"], "statuses": ["New", "Incomplete", "Opinion", "Invalid", "Won't Fix", "Expired", "Confirmed", "Triaged", "In Progress", "Fix Committed", "Fix Released", "Does Not Exist", "Unknown"], "information_types": ["Public", "Public Security", "Private Security", "Private", "Proprietary", "Embargoed"], "target_info": {"title": "turnip", "url": "https://launchpad.net/turnip"}, "context": {"self_link": "https://launchpad.net/api/devel/turnip", "web_link": "https://launchpad.net/turnip", "resource_type_link": "https://launchpad.net/api/devel/#project", "translations_usage": "Not Applicable", "official_answers": false, "official_blueprints": false, "official_codehosting": true, "official_bugs": true, "information_type": "Public", "active": true, "all_specifications_collection_link": "https://launchpad.net/api/devel/turnip/all_specifications", "valid_specifications_collection_link": "https://launchpad.net/api/devel/turnip/valid_specifications", "bug_reporting_guidelines": null, "content_templates": null, "bug_reported_acknowledgement": null, "official_bug_tags": [], "recipes_collection_link": "https://launchpad.net/api/devel/turnip/recipes", "webhooks_collection_link": "https://launchpad.net/api/devel/turnip/webhooks", "bug_supervisor_link": null, "active_milestones_collection_link": "https://launchpad.net/api/devel/turnip/active_milestones", "all_milestones_collection_link": "https://launchpad.net/api/devel/turnip/all_milestones", "translationgroup_link": null, "translationpermission": "Open", "qualifies_for_free_hosting": true, "reviewer_whiteboard": "tag:launchpad.net:2008:redacted", "is_permitted": "tag:launchpad.net:2008:redacted", "project_reviewed": "tag:launchpad.net:2008:redacted", "license_approved": "tag:launchpad.net:2008:redacted", "private": false, "display_name": "turnip", "icon_link": "https://launchpad.net/api/devel/turnip/icon", "logo_link": "https://launchpad.net/api/devel/turnip/logo", "name": "turnip", "owner_link": "https://launchpad.net/api/devel/~launchpad", "project_group_link": "https://launchpad.net/api/devel/launchpad-project", "title": "turnip", "registrant_link": "https://launchpad.net/api/devel/~wgrant", "driver_link": null, "summary": "turnip is a flexible and scalable Git server suite written in Python\nusing Twisted.", "description": null, "date_created": "2014-02-24T05:05:11.030644+00:00", "homepage_url": null, "wiki_url": null, "screenshots_url": null, "download_url": null, "programming_language": "Python", "sourceforge_project": null, "freshmeat_project": null, "brand_link": "https://launchpad.net/api/devel/turnip/brand", "branch_sharing_policy": "Public", "bug_sharing_policy": "Public", "specification_sharing_policy": "Public", "licenses": ["GNU Affero GPL v3"], "license_info": "Launchpad 30-day trial commercial license", "bug_tracker_link": null, "series_collection_link": "https://launchpad.net/api/devel/turnip/series", "development_focus_link": "https://launchpad.net/api/devel/turnip/trunk", "releases_collection_link": "https://launchpad.net/api/devel/turnip/releases", "translation_focus_link": null, "commercial_subscription_link": null, "commercial_subscription_is_due": false, "remote_product": null, "vcs": "Git", "http_etag": "\"030aee3b5bd8a074acc2c4d05e4076b9565b74aa-b2b5b10ee53b890ce1445c1518e20a06a75dbee0\""}};</script> </body> <!-- Facet name: overview Page type: main_side Has global search: True Has application tabs: True Has side portlets: True At least 47 queries/external actions issued in 1.25 seconds Features: {'profiling.enabled': None, 'hard_timeout': '5000', 'app.mainsite_only.canonical_url': None, 'js.yui_version': None, 'app.maintenance_message': None, 'markdown.enabled': None, 'charm.recipe.create.enabled': 'on', 'oci.project.create.enabled': None, 'bugs.webhooks.disabled': None, 'baselayout.careers_link.disabled': None, 'visible_render_time': None} r78860d9 --> </html>