<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.softwareheritage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Seirl</id>
	<title>Software Heritage Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.softwareheritage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Seirl"/>
	<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/wiki/Special:Contributions/Seirl"/>
	<updated>2026-04-20T10:59:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=1549</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=1549"/>
		<updated>2021-03-23T13:33:06Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* IRC authentication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IRC channels ==&lt;br /&gt;
&lt;br /&gt;
The following channels have been registered on the [https://freenode.net/ Freenode] network for [[Software Heritage]] usage.&lt;br /&gt;
&lt;br /&gt;
* [https://app.element.io/#/room/#freenode_#swh-devel:matrix.org '''#swh-devel''']: public development discussions&lt;br /&gt;
* [https://app.element.io/#/room/#freenode_#swh-team:matrix.org '''#swh-team''']: private discussions of the core team&lt;br /&gt;
* [https://app.element.io/#/room/#freenode_#swh-sysadm:matrix.org '''#swh-sysadm''']: operations team discussions/bots&lt;br /&gt;
* [https://app.element.io/#/room/#freenode_#softwareheritage:matrix.org '''#softwareheritage''']: general discussions about the project (currently unused)&lt;br /&gt;
* [https://app.element.io/#/room/#freenode_#swh:matrix.org '''#swh''']: ditto, in case we end up preferring the short version&lt;br /&gt;
&lt;br /&gt;
If you use IRC, consider joining the channels.&lt;br /&gt;
&lt;br /&gt;
If you don't use IRC ''directly'', you can still join our chat channels from your web browser via a [https://matrix.org/ Matrix] bridge by clicking on the channel names in the list above. You will be asked to create a [https://element.io/ Element] account if you don't have one yet.&lt;br /&gt;
&lt;br /&gt;
== IRC authentication ==&lt;br /&gt;
&lt;br /&gt;
You should register their nick with NickServ using:&lt;br /&gt;
&lt;br /&gt;
 /nick &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
 /msg nickserv register &amp;lt;PASSWORD&amp;gt; &amp;lt;EMAIL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will then receive an e-mail containing a link to activate you account. After doing so, you need to configure your client to auto-authenticate. The recommended way of doing that is using [https://freenode.net/kb/answer/sasl SASL authentication].&lt;br /&gt;
&lt;br /&gt;
For Weechat:&lt;br /&gt;
&lt;br /&gt;
 /set irc.server.freenode.sasl_username &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
 /set irc.server.freenode.sasl_password &amp;lt;PASSWORD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For matrix, the relevant docs is here: https://github.com/matrix-org/matrix-appservice-irc/wiki/End-user-FAQ#how-do-i-registeridentify-to-nickserv&lt;br /&gt;
&lt;br /&gt;
Freenode also supports authentication via [https://freenode.net/kb/answer/certfp TLS client certificates].&lt;br /&gt;
&lt;br /&gt;
=== Matrix bridge ===&lt;br /&gt;
&lt;br /&gt;
For the Matrix bridge ([https://github.com/matrix-org/matrix-appservice-irc/wiki/End-user-FAQ#how-do-i-registeridentify-to-nickserv relevant docs here]), you first need to choose you IRC nick by sending this to the bridge appservice:&lt;br /&gt;
&lt;br /&gt;
 /msg @appservice-irc:matrix.org !nick &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then send this command to NickServ to register your account:&lt;br /&gt;
&lt;br /&gt;
 /msg @freenode_NickServ:matrix.org register &amp;lt;PASSWORD&amp;gt; &amp;lt;EMAIL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will then receive an e-mail containing a link to activate you account. You can then identify using:&lt;br /&gt;
&lt;br /&gt;
 /msg @freenode_NickServ:matrix.org identify &amp;lt;PASSWORD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, ask the IRC bridge appservice to remember your password so that you get identified automatically:&lt;br /&gt;
&lt;br /&gt;
 /msg @appservice-irc:matrix.org !storepass &amp;lt;USERNAME&amp;gt;:&amp;lt;PASSWORD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IRC access list ==&lt;br /&gt;
&lt;br /&gt;
To auto-voice people with a registered nick (only doable by people with +fA access modes will be able to do it), add them to the channel access list:&lt;br /&gt;
&lt;br /&gt;
 /msg chanserv access #swh-devel add zack +V&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=1282</id>
		<title>Suggestion box: source code to add</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=1282"/>
		<updated>2020-05-27T11:06:35Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Archive]] is growing organically. We started &amp;quot;small&amp;quot;, tracking 3 '''software origins''' (GitHub + Debian + GNU), and we will be adding new origins bit by bit, depending on the urgency of archiving them and available development energies to integrate them into Software Heritage.&lt;br /&gt;
&lt;br /&gt;
Using this page you can add suggestions of software origins that we aren't following yet, but we should. You can include information about who to contact for technical collaboration, the urgency of archival, and other useful information. To that end, just add a row to the table below. Here some information about the meaning of the various columns.&lt;br /&gt;
&lt;br /&gt;
Entries are currently listed simply in order of addition to this page; we will add more structure when the list will start growing.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&lt;br /&gt;
;Software origin&lt;br /&gt;
: any (public accessible) &amp;quot;place&amp;quot; on the Internet that host software in source code form. Please provide a title for it and hyperlink it to the relevant URL&lt;br /&gt;
;Type of origin&lt;br /&gt;
: information about the kind of hosting, e.g., whether it is a forge, a collection of repositories, an homepage publishing tarball, or a one shot source code repository. For all kind of repositories please specify which VCS system is in use (Git, SVN, CVS, etc.)&lt;br /&gt;
;Contact&lt;br /&gt;
: who to contact for technical collaboration on how to best archive source code hosted on the software origin. You can list yourself if you're the relevant person, or provide the most relevant contact point if you know it&lt;br /&gt;
;Conservation status&lt;br /&gt;
: information about how likely it is that the software origin will disappear; high likelihood will make it more urgent for us to archive software hosted there. We suggest to use the [https://en.wikipedia.org/wiki/Conservation_status species conservation status], i.e., one of: Critically endangered (CR), Endangered (EN), Vulnerable (VU), Near threatened (NT), Least concern (LC).&lt;br /&gt;
;How to mirror&lt;br /&gt;
: (pointers to) technical information on how to do a full mirror of ''all'' the source code available at the software origin, ideally one shot and in batch&lt;br /&gt;
;How to keep up&lt;br /&gt;
: (pointers to) technical information on how to incrementally retrieve new source code accumulated since the last visit; usually this should be based on some kind of incremental change feed or event API&lt;br /&gt;
;Notes&lt;br /&gt;
: anything else you think we should know about this software origin&lt;br /&gt;
;Forge task&lt;br /&gt;
: pointer to the task on our [[forge]] tracking the work needed to ingest the software origin&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
&lt;br /&gt;
* https://notabug.org/ (customized gogs)&lt;br /&gt;
* https://gitgud.io/ (GitLab, run by Sapphire, a user-supported open source company)&lt;br /&gt;
* https://octo.sh/ (GitLab)&lt;br /&gt;
* https://chaos.expert/explore (GitLab by Chaos Computer Club)&lt;br /&gt;
* https://gitlab.coko.foundation/public (GitLab)&lt;br /&gt;
* https://git.teknik.io/explore/repos (Gitea)&lt;br /&gt;
* https://gitlab.gnome.org/explore/groups (GNOME software)&lt;br /&gt;
* https://launchpad.net/ (used by Ubuntu and others)&lt;br /&gt;
* https://archive.codeplex.com/ (was Microsoft's free, open source project hosting)&lt;br /&gt;
* https://wiki.p2pfoundation.net/List_of_Community-Hosted_GitLab_Instances&lt;br /&gt;
* https://0xacab.org/explore (Gitlab)&lt;br /&gt;
* https://git.fosscommunity.in/explore/projects (GitLab by Free Software Community of India)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Software origin&lt;br /&gt;
!Type of origin&lt;br /&gt;
!Contact&lt;br /&gt;
!Conservation status&lt;br /&gt;
!How to mirror&lt;br /&gt;
!How to keep up&lt;br /&gt;
!Notes&lt;br /&gt;
![https://forge.softwareheritage.org/ Forge] task&lt;br /&gt;
|-&lt;br /&gt;
|'''(sample entry)''' ''GitHubBub forge''&lt;br /&gt;
|''Git hosting''&lt;br /&gt;
|''John Doe &amp;lt;john@example.com&amp;gt;''&lt;br /&gt;
|''LC''&lt;br /&gt;
|''retrieve full repo list at /api/list, then git clone on each entry''&lt;br /&gt;
|''poll RSS feed at /api/updates?since=YYYY-MM-DD''&lt;br /&gt;
|''nothing special to add''&lt;br /&gt;
|''[https://forge.softwareheritage.org/T123456 T123456]''&lt;br /&gt;
|-&lt;br /&gt;
|[https://bitbucket.org/ Bitbucket]&lt;br /&gt;
|Git and hg/Mercurial hosting&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;| LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://forge.softwareheritage.org/T561 T561]&lt;br /&gt;
|-&lt;br /&gt;
|[https://sourceforge.net/ SourceForge]&lt;br /&gt;
|CVS, SVN, Mercurial, Git&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: orange&amp;quot;|VU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://wiki.debian.org/Derivatives/Census all Debian derivatives]&lt;br /&gt;
|Debian-based distros&lt;br /&gt;
|Paul Wise &amp;lt;pabs@debian.org&amp;gt;&lt;br /&gt;
|varying, depending on the distro&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.gentoo.org/ Gentoo]&lt;br /&gt;
|&lt;br /&gt;
|Johannes Kellner &amp;lt;gentoo@johannes-kellner.eu&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://pauillac.inria.fr/~huet/cea.html Gérard Huet's seminal work on 3D]&lt;br /&gt;
|Scanned source code&lt;br /&gt;
|Gérard Huet &amp;lt;gerard.huet@inria.fr&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: red&amp;quot;|EN&lt;br /&gt;
|retrieve listing images from the web pages&lt;br /&gt;
|N/A&lt;br /&gt;
|links are half broken, yquem should be replaced with pauillac everywhere it appears&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.softwarepreservation.org/projects Software Preservation Project]&lt;br /&gt;
|Website with a collection of archives&lt;br /&gt;
|Paul McJones &amp;lt;paul@mcjones.org&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://code.nasa.gov/ 253 NASA open source software projects]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://smaky.ch/ Smaky], the swiss micro-computer series&lt;br /&gt;
|[http://infini.smaky.ch/sources.html Partial code dump]&lt;br /&gt;
|[mailto:arnaud@epsitec.ch Pierre Arnaud] (current CEO of Epsitec) and/or [mailto:jean-daniel.nicoud@epfl.ch Jean-Daniel Nicoud] (founder of the computer series]&lt;br /&gt;
|style=&amp;quot;background-color: red&amp;quot;|EN&lt;br /&gt;
|Probably manually&lt;br /&gt;
|No new updates&lt;br /&gt;
|Some references to this history: [http://www.memoires-informatiques.org/ Fondation Mémoires Informatiques], [http://smaky.ch/ Smaky.ch] (in particular, [http://smaky.ch/theme.php?id=lami the short history]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#Conservation_status_2 wikidata endangered software]&lt;br /&gt;
|depends on the &amp;quot;source code repository&amp;quot; property&lt;br /&gt;
|Loic Dachary &amp;lt;loic@dachary.org&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: yellow&amp;quot;|The risk is higher than [https://www.wikidata.org/wiki/Property_talk:P141 LC]&lt;br /&gt;
|A script should obtain the &amp;quot;source code repository&amp;quot; property for the software and mirror it depending on the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#source_code_repository protocol] qualifier. If the &amp;quot;source code repository&amp;quot; is &amp;quot;no value&amp;quot;, the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#streaming_media_URL streaming media URL] of the &amp;quot;preferred&amp;quot; [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#software_version_.28P348.29 software version] should be downloaded instead.&lt;br /&gt;
|Once a copy is secured by software heritage, a URL to the software heritage repository should be added to the &amp;quot;source code repository&amp;quot; property and the &amp;quot;conservation status&amp;quot; property should be removed, meaning it is &amp;quot;least concerned&amp;quot; by default. The software will no longer show in the list of endangered software.&lt;br /&gt;
|This is work in progress, part of the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS wikidata FLOSS project] and the scripts do not exist yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|historical KDE repos&lt;br /&gt;
|CVS/SVN/Git&lt;br /&gt;
|KDE sysadmin team &amp;lt;sysadmin@kde.org&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: yellow&amp;quot;|NT&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://java.net/projects Java.net] &amp;amp; [https://kenai.com/ Kenai.com]&lt;br /&gt;
|hg, git, svn&lt;br /&gt;
|communitymanager@java.net&lt;br /&gt;
|style=&amp;quot;background-color: black; color: white&amp;quot;|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://community.oracle.com/community/java/javanet-forge-sunset Shutting down on April 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://fedorahosted.org/ fedorahosted.org]&lt;br /&gt;
|git, svn, hg, bzr&lt;br /&gt;
|[https://lists.fedoraproject.org/admin/lists/infrastructure@lists.fedoraproject.org infrastructure@lists.fedoraproject.org]&lt;br /&gt;
|style=&amp;quot;background-color: black; color: white&amp;quot;|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://communityblog.fedoraproject.org/fedorahosted-sunset-2017-02-28/ Shutting down on Feb. 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.societe-informatique-de-france.fr/wp-content/uploads/2015/12/1024-no7-Baude.pdf Langage symbolique d'Enseignement (LSE)]&lt;br /&gt;
|archives&lt;br /&gt;
|Association Enseignement Public et Informatique (EPI) &amp;lt;bureau@epi.asso.fr&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: black; color: white&amp;quot;|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| + educational software (INRP-CNDP)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.netlib.org The Netlib collection of numerical software]&lt;br /&gt;
|structured website with links to archives&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|many of these libraries are mirrored in sources already collected in Software Heritage; there is sure value in the curation information.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://codebender.cc/ codebender]&lt;br /&gt;
|IOT and educationnal ressources&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: black; color: white&amp;quot;|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|closing expected at Dec31st, 2016 upon this announce by founders https://codebender.cc/next-chapter&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://git.oschina.net/ OS China]&lt;br /&gt;
|Chinese GitHub equivalent&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|interesting test case for all the unicode tooling in Software Heritage&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Usenet source code archives&lt;br /&gt;
|NNTP&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: yellow&amp;quot;|NT&lt;br /&gt;
|crawl relevant newsgroup archives (e.g., at Google Groups), retrieve archives (possibly chunked), ingest&lt;br /&gt;
|one shot might be enough?&lt;br /&gt;
|suggestion by John Gilmore&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.x.org/releases/ X11/XOrg archives]&lt;br /&gt;
|http&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|one shot might be enough&lt;br /&gt;
|&lt;br /&gt;
||''[https://forge.softwareheritage.org/T1774 T1774]''&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.curseforge.com/ Curse mods]&lt;br /&gt;
|Code distributed as versioned tarballs&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|The API should be sufficient, maybe some scraping will be required&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Symbian source code&lt;br /&gt;
|HG&lt;br /&gt;
|carlo.daffara@nodeweaver.eu&lt;br /&gt;
|style=&amp;quot;background-color: orange&amp;quot;|VU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Cloned from Nokia's Symbian Mercurial repository, a few days before the closure of the repo and the change to a proprietary license. The mercurial HG files are the only copy publicly available; I have made a snapshot of the code and placed on sourceforge- but missing is the entire project history and commit log.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://gist.github.com/ GitHub's gists]&lt;br /&gt;
|git&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|No proper listing API, but there's [https://developer.github.com/v3/gists/#list-all-public-gists an endpoint] to get gists created after a given date&lt;br /&gt;
|use the same endpoint&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://codeberg.org/ Codeberg]&lt;br /&gt;
|git&lt;br /&gt;
|contact@codeberg.org&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|[https://github.com/go-gitea Gitea] API&lt;br /&gt;
|[https://github.com/go-gitea Gitea] API&lt;br /&gt;
|Codeberg e.V. is a Non-Profit Collaboration Community for Free and Open Source Projects&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://puszcza.gnu.org.ua/ Puszcza]&lt;br /&gt;
|cvs/git/hg/svn, VCS snapshot tarballs, tarballs&lt;br /&gt;
|https://puszcza.gnu.org.ua/contact.php&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|Savane instance, https://download.gnu.org.ua/ (also has ftp), http://git.gnu.org.ua/&lt;br /&gt;
|Savane instance&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://directory.fsf.org/ Free Software Directory]&lt;br /&gt;
|solely contains links (to VCS and tarballs)&lt;br /&gt;
|https://lists.gnu.org/archive/html/directory-discuss/&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|MediaWiki instance, use API to clone (or git-remote-mediawiki)&lt;br /&gt;
|MediaWiki instance, use API for updates clone (or git-remote-mediawiki)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://kb.netgear.com/2649/NETGEAR-Open-Source-Code-for-Programmers-GPL NetGear GPL tarballs]&lt;br /&gt;
|Tarballs&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: yellow&amp;quot;|NT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.ui.com/download/edgemax/edgerouter/default/edgerouter-er-8erpro-8ep-r8-firmware-v11011 Ubiquity firmware GPL tarballs]&lt;br /&gt;
|Tarballs&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: yellow&amp;quot;|NT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
[[Category:Archive]]&lt;br /&gt;
[[Category:Suggestions]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2020&amp;diff=1180</id>
		<title>Google Summer of Code 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2020&amp;diff=1180"/>
		<updated>2020-01-29T14:53:02Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Ideas list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GSoCLogo.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
&lt;br /&gt;
This page is the central point of information for [[Software Heritage]] participation into the [https://summerofcode.withgoogle.com/ Google Summer of Code] program in 2020.&lt;br /&gt;
&lt;br /&gt;
Google Summer of Code is a program where Google pays students stipends to work over the (northern hemisphere) summer on free software projects such as Software Heritage. Each student works with mentors from the community to complete a software project.&lt;br /&gt;
&lt;br /&gt;
== Accepted projects ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I want to participate as a student ==&lt;br /&gt;
&lt;br /&gt;
Great!, we are very glad for your interest in contributing to Software Heritage and we are looking forward to work together.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The following prerequisites apply to Software Heritage GSoC projects:&lt;br /&gt;
&lt;br /&gt;
* [https://www.python.org Python 3] is our language of choice, you should be fluent with that language to apply&lt;br /&gt;
* [https://git-scm.com Git] is our version control system of choice, you should be familiar with it to apply&lt;br /&gt;
* additional prerequisites depend on the project you will work on; check project descriptions for details&lt;br /&gt;
&lt;br /&gt;
=== Before you apply ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps you should follow before applying, to make sure you have a good grasp of what we are doing at Software Heritage and how we do it:&lt;br /&gt;
&lt;br /&gt;
# Follow our [https://docs.softwareheritage.org/devel/getting-started.html getting started guide]: it will make sure you can locally run a (small) copy of the archive and ingest source code into it&lt;br /&gt;
# Create an account on our [https://forge.softwareheritage.org development forge]&lt;br /&gt;
# Familiarize yourself with our [[Code review in Phabricator|code review workflow]]&lt;br /&gt;
# Make at least one simple change to any one of our [https://docs.softwareheritage.org/devel/ software components] and submit it as a [https://forge.softwareheritage.org/differential/ diff] for code review, following the above workflow. [[Easy hacks]] and [https://forge.softwareheritage.org/project/view/20/ Web UI] issues are good options for what to fix, but feel free to submit any patch you think it might be useful.&lt;br /&gt;
&lt;br /&gt;
=== What to include in your application ===&lt;br /&gt;
&lt;br /&gt;
Make sure that your application includes the following information:&lt;br /&gt;
&lt;br /&gt;
* Describe the '''specific project''' you want to work on. What do you want to achieve? Why is it important? Why is it useful for Software Heritage? The project might be one of the project ideas that we have prepared below, or something else entirely that you want to contribute to Software Heritage. Your source code archival pet peeve, surprise us!&lt;br /&gt;
* Detail your '''work plan''': a brief description of how you plan to go about your project, including a list of  ''deliverables'' and a ''timeline'' of when do you expect them to be available.&lt;br /&gt;
* Include a reference to '''the diff''' you submitted before applying (see the &amp;quot;Before you apply&amp;quot; section above).&lt;br /&gt;
&lt;br /&gt;
== Ideas list ==&lt;br /&gt;
&lt;br /&gt;
Below you can find a list of project ideas that are good options for a&lt;br /&gt;
reasonably sized GSoC project.  They are just suggestion though, don't feel&lt;br /&gt;
obliged to pick one of them if there is nothing that fits your taste and&lt;br /&gt;
abilities.  Feel free to propose something else that you are excited about and&lt;br /&gt;
that contributes to improve the Software Heritage archive: we will be happy to&lt;br /&gt;
consider it!&lt;br /&gt;
&lt;br /&gt;
=== Mine information from archived content ===&lt;br /&gt;
&lt;br /&gt;
In addition to archival, Software Heritage indexes the retrieved source code&lt;br /&gt;
artifacts, to enable semantic searches on the archive and scientific research.&lt;br /&gt;
&lt;br /&gt;
Indexing can happen at the individual file-level (e.g., detect the programming&lt;br /&gt;
language the file is written in or the license declared in its header), or at&lt;br /&gt;
more coarse grained granularity (e.g., what metadata are declared for the most&lt;br /&gt;
recently archived version of a given project).&lt;br /&gt;
&lt;br /&gt;
A number of indexes are [https://forge.softwareheritage.org/source/swh-indexer/ currently supported],&lt;br /&gt;
such as:&lt;br /&gt;
&lt;br /&gt;
* file level mining:&lt;br /&gt;
** MIME type detection (using libmagic)&lt;br /&gt;
** license detection (using FOSSology/nomossa)&lt;br /&gt;
** language detection (using Pygments)&lt;br /&gt;
** ctags extraction (using universal-ctags)&lt;br /&gt;
* project level mining:&lt;br /&gt;
** Ruby gemspec metadata&lt;br /&gt;
** Python PKG-INFO metadata&lt;br /&gt;
** Maven pom.xml metadata&lt;br /&gt;
** NPM package.json metadata&lt;br /&gt;
&lt;br /&gt;
Writing additional indexers that extract more information from archived source&lt;br /&gt;
code is welcome and would constitute a suitable GSoC project.&lt;br /&gt;
&lt;br /&gt;
Name the kind of data mining you want to do!&lt;br /&gt;
&lt;br /&gt;
For inspiration you can have a look at [https://libraries.io Libraries.io], as&lt;br /&gt;
most package formats/package managers support dedicated ways of expressing&lt;br /&gt;
metadata and we only support a small number of them up-to-now. But do not&lt;br /&gt;
restrict your ambition to those, any kind of data extraction/mining you want to&lt;br /&gt;
do on the archive could work.&lt;br /&gt;
&lt;br /&gt;
You may also add support for multiple formats at once, using an external tool,&lt;br /&gt;
such as [https://github.com/datacite/bolognese Bolognese] or&lt;br /&gt;
[https://github.com/librariesio/bibliothecary/ bibliothecary].&lt;br /&gt;
&lt;br /&gt;
=== Mine information from external sources ===&lt;br /&gt;
&lt;br /&gt;
In addition to arching source code artifacts, Software Heritage is interested in&lt;br /&gt;
archive metadata from external sources and correlate it to source code artifacts.&lt;br /&gt;
This is also to enable semantic searches on the archive and scientific research.&lt;br /&gt;
&lt;br /&gt;
Collecting this extrinsic metadata is a&lt;br /&gt;
[https://forge.softwareheritage.org/T1739 work in progress], and you are welcome&lt;br /&gt;
to contribute to its implementation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Improve and extend the archive Web UI ===&lt;br /&gt;
&lt;br /&gt;
As you probably know already, The Software Heritage archive can be&lt;br /&gt;
[https://archive.softwareheritage.org browsed on the Web]. The&lt;br /&gt;
[https://forge.softwareheritage.org/source/swh-web/ code] powering that&lt;br /&gt;
interface is a Django application that also implements a&lt;br /&gt;
[https://archive.softwareheritage.org/api/ Web API].&lt;br /&gt;
&lt;br /&gt;
Several improvements are possible on the archive Web interface and would make&lt;br /&gt;
great GSoC projects, some ideas to whet your appetite:&lt;br /&gt;
&lt;br /&gt;
* add new source code search criteria and improve the search interface&lt;br /&gt;
* add developer-oriented features, e.g., source file history, blame/praise interface, in-browser edit (with patch download), ... (note that this will also require backend design and implementation)&lt;br /&gt;
* improve [https://www.w3.org/WAI/ accessibility]&lt;br /&gt;
* help us design and implement our [https://forge.softwareheritage.org/T1805 next API version]&lt;br /&gt;
&lt;br /&gt;
=== Improve the Vault ===&lt;br /&gt;
&lt;br /&gt;
The Software Heritage archive allows retrieval of archived objects of different formats.&lt;br /&gt;
Once an object has been chosen for retrieval, it can be &amp;quot;cooked&amp;quot; using the [https://docs.softwareheritage.org/devel/swh-vault/index.html Software Heritage Vault].&lt;br /&gt;
&lt;br /&gt;
Right now the Vault has several limitations: it only handles two kinds of objects (revisions and directories), it requires recursively requesting the database to get the full subgraph of an object, and it generates revisions in an unpractical format (git fast-import).&lt;br /&gt;
&lt;br /&gt;
Several improvements are possible:&lt;br /&gt;
&lt;br /&gt;
* add coverage for new kinds of objects (releases, snapshots and even origins?)&lt;br /&gt;
* use our in-memory graph database [https://docs.softwareheritage.org/devel/swh-graph/index.html swh-graph] to speed up fetching the necessary subgraphs.&lt;br /&gt;
* write cookers to output new formats (e.g git tarballs/git bundles or even other VCS?)&lt;br /&gt;
* improve end-to-end testing&lt;br /&gt;
* other general code improvements (better progress/error reporting in the frontend, etc.)&lt;br /&gt;
&lt;br /&gt;
=== Research internships ===&lt;br /&gt;
&lt;br /&gt;
For the more research-inclined students, we also maintain a separate list of [[Internships]].&lt;br /&gt;
Any topic below is also a viable GSoC project.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;DynamicPageList&amp;gt;&lt;br /&gt;
category=Available internship&lt;br /&gt;
&amp;lt;/DynamicPageList&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
GSoC students are encouraged to get in touch with the Software Heritage community using the standard development communication channels, i.e.:&lt;br /&gt;
&lt;br /&gt;
* the #swh-devel IRC channel on [https://freenode.net Freenode]&lt;br /&gt;
* the [https://sympa.inria.fr/sympa/info/swh-devel swh-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
See our [https://www.softwareheritage.org/community/developers/ development information page] for more details.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
See the official [https://developers.google.com/open-source/gsoc/timeline Google Summer of Code timeline].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;br /&gt;
[[Category:Google Summer of Code 2020]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Main_Page&amp;diff=986</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Main_Page&amp;diff=986"/>
		<updated>2019-03-25T14:45:25Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the wiki of [[Software Heritage]].&lt;br /&gt;
&lt;br /&gt;
We are just getting started, so please bear with us while we organize the content of the wiki.&amp;lt;br &amp;gt;&lt;br /&gt;
In the meantime you can find below entry points for various communities we're collaborating with.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
* [[Suggestion box]] for software we should add to the [[Archive]] ← add your entry here!&lt;br /&gt;
* [[Talks]] about Software Heritage&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
* see pages in [[:Category:Software development]]&lt;br /&gt;
&lt;br /&gt;
== Scientists ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Related work|Related work]]&lt;br /&gt;
* [[Working groups]]&lt;br /&gt;
&lt;br /&gt;
== Students ==&lt;br /&gt;
&lt;br /&gt;
* [[Internships|Internship opportunities]]&lt;br /&gt;
* [[Google Summer of Code 2019]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=982</id>
		<title>Suggestion box: source code to add</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=982"/>
		<updated>2019-03-22T17:36:05Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Archive]] is growing organically. We started &amp;quot;small&amp;quot;, tracking 3 '''software origins''' (GitHub + Debian + GNU), and we will be adding new origins bit by bit, depending on the urgency of archiving them and available development energies to integrate them into Software Heritage.&lt;br /&gt;
&lt;br /&gt;
Using this page you can add suggestions of software origins that we aren't following yet, but we should. You can include information about who to contact for technical collaboration, the urgency of archival, and other useful information. To that end, just add a row to the table below. Here some information about the meaning of the various columns.&lt;br /&gt;
&lt;br /&gt;
Entries are currently listed simply in order of addition to this page; we will add more structure when the list will start growing.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&lt;br /&gt;
;Software origin&lt;br /&gt;
: any (public accessible) &amp;quot;place&amp;quot; on the Internet that host software in source code form. Please provide a title for it and hyperlink it to the relevant URL&lt;br /&gt;
;Type of origin&lt;br /&gt;
: information about the kind of hosting, e.g., whether it is a forge, a collection of repositories, an homepage publishing tarball, or a one shot source code repository. For all kind of repositories please specify which VCS system is in use (Git, SVN, CVS, etc.)&lt;br /&gt;
;Contact&lt;br /&gt;
: who to contact for technical collaboration on how to best archive source code hosted on the software origin. You can list yourself if you're the relevant person, or provide the most relevant contact point if you know it&lt;br /&gt;
;Conservation status&lt;br /&gt;
: information about how likely it is that the software origin will disappear; high likelihood will make it more urgent for us to archive software hosted there. We suggest to use the [https://en.wikipedia.org/wiki/Conservation_status species conservation status], i.e., one of: Critically endangered (CR), Endangered (EN), Vulnerable (VU), Near threatened (NT), Least concern (LC).&lt;br /&gt;
;How to mirror&lt;br /&gt;
: (pointers to) technical information on how to do a full mirror of ''all'' the source code available at the software origin, ideally one shot and in batch&lt;br /&gt;
;How to keep up&lt;br /&gt;
: (pointers to) technical information on how to incrementally retrieve new source code accumulated since the last visit; usually this should be based on some kind of incremental change feed or event API&lt;br /&gt;
;Notes&lt;br /&gt;
: anything else you think we should know about this software origin&lt;br /&gt;
;Forge task&lt;br /&gt;
: pointer to the task on our [[forge]] tracking the work needed to ingest the software origin&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
&lt;br /&gt;
* https://notabug.org/ (customized gogs)&lt;br /&gt;
* https://gitgud.io/ (GitLab, run by Sapphire, a user-supported open source company)&lt;br /&gt;
* https://octo.sh/ (GitLab)&lt;br /&gt;
* https://chaos.expert/explore (GitLab by Chaos Computer Club)&lt;br /&gt;
* https://gitlab.coko.foundation/public (GitLab)&lt;br /&gt;
* https://git.teknik.io/explore/repos (Gitea)&lt;br /&gt;
* https://gitlab.gnome.org/explore/groups (GNOME software)&lt;br /&gt;
* https://launchpad.net/ (used by Ubuntu and others)&lt;br /&gt;
* https://archive.codeplex.com/ (was Microsoft's free, open source project hosting)&lt;br /&gt;
* https://wiki.p2pfoundation.net/List_of_Community-Hosted_GitLab_Instances&lt;br /&gt;
* https://0xacab.org/explore (Gitlab)&lt;br /&gt;
* https://git.fosscommunity.in/explore/projects (GitLab by Free Software Community of India)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Software origin&lt;br /&gt;
!Type of origin&lt;br /&gt;
!Contact&lt;br /&gt;
!Conservation status&lt;br /&gt;
!How to mirror&lt;br /&gt;
!How to keep up&lt;br /&gt;
!Notes&lt;br /&gt;
![https://forge.softwareheritage.org/ Forge] task&lt;br /&gt;
|-&lt;br /&gt;
|'''(sample entry)''' ''GitHubBub forge''&lt;br /&gt;
|''Git hosting''&lt;br /&gt;
|''John Doe &amp;lt;john@example.com&amp;gt;''&lt;br /&gt;
|''LC''&lt;br /&gt;
|''retrieve full repo list at /api/list, then git clone on each entry''&lt;br /&gt;
|''poll RSS feed at /api/updates?since=YYYY-MM-DD''&lt;br /&gt;
|''nothing special to add''&lt;br /&gt;
|''[https://forge.softwareheritage.org/T123456 T123456]''&lt;br /&gt;
|-&lt;br /&gt;
|[https://bitbucket.org/ Bitbucket]&lt;br /&gt;
|Git and hg/Mercurial hosting&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;| LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://forge.softwareheritage.org/T561 T561]&lt;br /&gt;
|-&lt;br /&gt;
|[https://sourceforge.net/ SourceForge]&lt;br /&gt;
|CVS, SVN, Mercurial, Git&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: orange&amp;quot;|VU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://wiki.debian.org/Derivatives/Census all Debian derivatives]&lt;br /&gt;
|Debian-based distros&lt;br /&gt;
|Paul Wise &amp;lt;pabs@debian.org&amp;gt;&lt;br /&gt;
|varying, depending on the distro&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.gentoo.org/ Gentoo]&lt;br /&gt;
|&lt;br /&gt;
|Johannes Kellner &amp;lt;gentoo@johannes-kellner.eu&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://pauillac.inria.fr/~huet/cea.html Gérard Huet's seminal work on 3D]&lt;br /&gt;
|Scanned source code&lt;br /&gt;
|Gérard Huet &amp;lt;gerard.huet@inria.fr&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: red&amp;quot;|EN&lt;br /&gt;
|retrieve listing images from the web pages&lt;br /&gt;
|N/A&lt;br /&gt;
|links are half broken, yquem should be replaced with pauillac everywhere it appears&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.softwarepreservation.org/projects Software Preservation Project]&lt;br /&gt;
|Website with a collection of archives&lt;br /&gt;
|Paul McJones &amp;lt;paul@mcjones.org&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://code.nasa.gov/ 253 NASA open source software projects]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://smaky.ch/ Smaky], the swiss micro-computer series&lt;br /&gt;
|[http://infini.smaky.ch/sources.html Partial code dump]&lt;br /&gt;
|[mailto:arnaud@epsitec.ch Pierre Arnaud] (current CEO of Epsitec) and/or [mailto:jean-daniel.nicoud@epfl.ch Jean-Daniel Nicoud] (founder of the computer series]&lt;br /&gt;
|style=&amp;quot;background-color: red&amp;quot;|EN&lt;br /&gt;
|Probably manually&lt;br /&gt;
|No new updates&lt;br /&gt;
|Some references to this history: [http://www.memoires-informatiques.org/ Fondation Mémoires Informatiques], [http://smaky.ch/ Smaky.ch] (in particular, [http://smaky.ch/theme.php?id=lami the short history]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#Conservation_status_2 wikidata endangered software]&lt;br /&gt;
|depends on the &amp;quot;source code repository&amp;quot; property&lt;br /&gt;
|Loic Dachary &amp;lt;loic@dachary.org&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: yellow&amp;quot;|The risk is higher than [https://www.wikidata.org/wiki/Property_talk:P141 LC]&lt;br /&gt;
|A script should obtain the &amp;quot;source code repository&amp;quot; property for the software and mirror it depending on the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#source_code_repository protocol] qualifier. If the &amp;quot;source code repository&amp;quot; is &amp;quot;no value&amp;quot;, the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#streaming_media_URL streaming media URL] of the &amp;quot;preferred&amp;quot; [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#software_version_.28P348.29 software version] should be downloaded instead.&lt;br /&gt;
|Once a copy is secured by software heritage, a URL to the software heritage repository should be added to the &amp;quot;source code repository&amp;quot; property and the &amp;quot;conservation status&amp;quot; property should be removed, meaning it is &amp;quot;least concerned&amp;quot; by default. The software will no longer show in the list of endangered software.&lt;br /&gt;
|This is work in progress, part of the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS wikidata FLOSS project] and the scripts do not exist yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|historical KDE repos&lt;br /&gt;
|CVS/SVN/Git&lt;br /&gt;
|KDE sysadmin team &amp;lt;sysadmin@kde.org&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: yellow&amp;quot;|NT&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://java.net/projects Java.net] &amp;amp; [https://kenai.com/ Kenai.com]&lt;br /&gt;
|hg, git, svn&lt;br /&gt;
|communitymanager@java.net&lt;br /&gt;
|style=&amp;quot;background-color: black; color: white&amp;quot;|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://community.oracle.com/community/java/javanet-forge-sunset Shutting down on April 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://fedorahosted.org/ fedorahosted.org]&lt;br /&gt;
|git, svn, hg, bzr&lt;br /&gt;
|[https://lists.fedoraproject.org/admin/lists/infrastructure@lists.fedoraproject.org infrastructure@lists.fedoraproject.org]&lt;br /&gt;
|style=&amp;quot;background-color: black; color: white&amp;quot;|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://communityblog.fedoraproject.org/fedorahosted-sunset-2017-02-28/ Shutting down on Feb. 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.societe-informatique-de-france.fr/wp-content/uploads/2015/12/1024-no7-Baude.pdf Langage symbolique d'Enseignement (LSE)]&lt;br /&gt;
|archives&lt;br /&gt;
|Association Enseignement Public et Informatique (EPI) &amp;lt;bureau@epi.asso.fr&amp;gt;&lt;br /&gt;
|style=&amp;quot;background-color: black; color: white&amp;quot;|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| + educational software (INRP-CNDP)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.netlib.org The Netlib collection of numerical software]&lt;br /&gt;
|structured website with links to archives&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|many of these libraries are mirrored in sources already collected in Software Heritage; there is sure value in the curation information.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://codebender.cc/ codebender]&lt;br /&gt;
|IOT and educationnal ressources&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: black; color: white&amp;quot;|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|closing expected at Dec31st, 2016 upon this announce by founders https://codebender.cc/next-chapter&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://git.oschina.net/ OS China]&lt;br /&gt;
|Chinese GitHub equivalent&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|interesting test case for all the unicode tooling in Software Heritage&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Usenet source code archives&lt;br /&gt;
|NNTP&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: yellow&amp;quot;|NT&lt;br /&gt;
|crawl relevant newsgroup archives (e.g., at Google Groups), retrieve archives (possibly chunked), ingest&lt;br /&gt;
|one shot might be enough?&lt;br /&gt;
|suggestion by John Gilmore&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.x.org/releases/ X11/XOrg archives]&lt;br /&gt;
|http&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|&lt;br /&gt;
|one shot might be enough&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.curseforge.com/ Curse mods]&lt;br /&gt;
|Code distributed as versioned tarballs&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|The API should be sufficient, maybe some scraping will be required&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Symbian source code&lt;br /&gt;
|HG&lt;br /&gt;
|carlo.daffara@nodeweaver.eu&lt;br /&gt;
|style=&amp;quot;background-color: orange&amp;quot;|VU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Cloned from Nokia's Symbian Mercurial repository, a few days before the closure of the repo and the change to a proprietary license. The mercurial HG files are the only copy publicly available; I have made a snapshot of the code and placed on sourceforge- but missing is the entire project history and commit log.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://gist.github.com/ GitHub's gists]&lt;br /&gt;
|git&lt;br /&gt;
|&lt;br /&gt;
|style=&amp;quot;background-color: lightgreen&amp;quot;|LC&lt;br /&gt;
|No proper listing API, but there's [https://developer.github.com/v3/gists/#list-all-public-gists an endpoint] to get gists created after a given date&lt;br /&gt;
|use the same endpoint&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Archive]]&lt;br /&gt;
[[Category:Suggestions]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Graph_Dataset_on_Amazon_Athena&amp;diff=975</id>
		<title>Graph Dataset on Amazon Athena</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Graph_Dataset_on_Amazon_Athena&amp;diff=975"/>
		<updated>2019-03-11T18:09:57Z</updated>

		<summary type="html">&lt;p&gt;Seirl: Created page with &amp;quot;== Using Amazon Athena ==  The ''Software Heritage graph dataset'' is available as a public dataset in [https://aws.amazon.com/athena/ Amazon Athena].  === Setup ===  In order...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using Amazon Athena ==&lt;br /&gt;
&lt;br /&gt;
The ''Software Heritage graph dataset'' is available as a public dataset in [https://aws.amazon.com/athena/ Amazon Athena].&lt;br /&gt;
&lt;br /&gt;
=== Setup ===&lt;br /&gt;
&lt;br /&gt;
In order to query the dataset using Athena, you will first need to [https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/ create an AWS account and setup billing].&lt;br /&gt;
&lt;br /&gt;
Once your AWS account is ready, you will need to install a few dependencies on your machine:&lt;br /&gt;
&lt;br /&gt;
* Python 3&lt;br /&gt;
* The [https://docs.aws.amazon.com/cli/index.html aws cli]&lt;br /&gt;
* The [https://boto3.amazonaws.com/v1/documentation/api/latest/index.html boto3 Python package]&lt;br /&gt;
&lt;br /&gt;
On Debian, the dependencies can be installed with the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python3 python3-boto3 awscli&amp;lt;/pre&amp;gt;&lt;br /&gt;
Once the dependencies are installed, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;aws configure&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and add your AWS Access Key ID and your AWS Secret Access Key, to give Python access to your AWS account.&lt;br /&gt;
&lt;br /&gt;
=== Create the tables ===&lt;br /&gt;
&lt;br /&gt;
To import the schema of the dataset into your account, download the scripts from the [https://annex.softwareheritage.org/public/dataset/swh-graph-2019-01-28/athena/ athena/] folder, then run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./gen_schema.py&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create the required tables in your AWS account. You can check that the tables were successfuly created by going to the [https://console.aws.amazon.com/athena/home Amazon Athena console] and selecting the &amp;quot;swh&amp;quot; database.&lt;br /&gt;
&lt;br /&gt;
=== Run queries ===&lt;br /&gt;
&lt;br /&gt;
From the console, once you have selected the &amp;quot;swh&amp;quot; database, you can directly run queries from the Query Editor.&lt;br /&gt;
&lt;br /&gt;
Here is an example query that computes the most frequent file names in the archive:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;SELECT FROM_UTF8(name, '?') AS name,&lt;br /&gt;
  COUNT(DISTINCT target) AS cnt&lt;br /&gt;
  FROM directory_entry_file&lt;br /&gt;
  GROUP BY name&lt;br /&gt;
  ORDER BY cnt DESC&lt;br /&gt;
  LIMIT 1;&amp;lt;/pre&amp;gt;&lt;br /&gt;
More documentation on Amazon Athena is available [https://docs.aws.amazon.com/athena/index.html here].&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=948</id>
		<title>Google Summer of Code 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=948"/>
		<updated>2019-02-03T20:48:09Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Increase archive coverage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GSoCLogo.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
&lt;br /&gt;
This page is the central point of information for [[Software Heritage]] participation into the [https://summerofcode.withgoogle.com/ Google Summer of Code] program.&lt;br /&gt;
&lt;br /&gt;
Google Summer of Code is a program where Google pays students stipends to work over the (northern hemisphere) summer on free software projects such as Software Heritage. Each student works with mentors from the community to complete a software project.&lt;br /&gt;
&lt;br /&gt;
== I want to participate as a student ==&lt;br /&gt;
&lt;br /&gt;
Great!, we are very glad for your interest in contributing to Software Heritage and we are looking forward to work together.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The following prerequisites apply to Software Heritage GSoC projects:&lt;br /&gt;
&lt;br /&gt;
* [https://www.python.org Python] 3 is our language of choice, you should be fluent with that language to apply&lt;br /&gt;
* [https://git-scm.com Git] is our version control system of choice, you should be familiar with it to apply&lt;br /&gt;
* additional prerequisites depend on the project you will work on; check project descriptions for details&lt;br /&gt;
&lt;br /&gt;
=== Before you apply ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps you should follow before applying, to make sure you have a good grasp of what we are doing at Software Heritage and how we do it:&lt;br /&gt;
&lt;br /&gt;
# Follow our [https://docs.softwareheritage.org/devel/getting-started.html getting started guide]: it will make sure you can locally run a (small) copy of the archive and ingest source code into it&lt;br /&gt;
# Create an account our [https://forge.softwareheritage.org development forge]&lt;br /&gt;
# Familiarize yourself with our [[Code review in Phabricator|code review workflow]]&lt;br /&gt;
# Make a simple change to any one of our [https://docs.softwareheritage.org/devel/ software components] and submit it as a [https://forge.softwareheritage.org/differential/ diff] for code review, following the above workflow. [[Easy hacks]] and [https://forge.softwareheritage.org/project/view/20/ Web UI] issues are good options for what to fix, but feel free to submit any patch you think it might be useful.&lt;br /&gt;
&lt;br /&gt;
=== What to include in your application ===&lt;br /&gt;
&lt;br /&gt;
Make sure that your application includes the following information:&lt;br /&gt;
&lt;br /&gt;
* Describe the '''specific project''' you want to work on. What do you want to achieve? Why is it import? Why is it useful for Software Heritage? The project might be one of the project ideas that we have prepared, or something else entirely that you want to contribute to Software Heritage. Your source code archival pet peeve, surprise us!&lt;br /&gt;
* Detail your '''work plan''': a brief description of how you plan to go about your project, including a list of  ''deliverables'' and a ''timeline'' of when do you expect them to be available.&lt;br /&gt;
* Include a reference to '''the diff''' you submitted before applying (see the &amp;quot;Before you apply&amp;quot; section above).&lt;br /&gt;
&lt;br /&gt;
== Ideas list ==&lt;br /&gt;
&lt;br /&gt;
Below you can find a list of project ideas that are good options for a reasonably sized GSoC project.&lt;br /&gt;
They are just suggestion though, don't feel obliged to pick one of them if there is nothing that fits your taste and abilities.&lt;br /&gt;
Feel free to propose something else that you are excited about and that contributes to improve the Software Heritage archive: we will be happy to consider it!&lt;br /&gt;
&lt;br /&gt;
=== Increase archive coverage ===&lt;br /&gt;
&lt;br /&gt;
Software Heritage aims to archive '''all the software'''. We naturally started with the place where most of the software is easily available today: git repositories on GitHub.&lt;br /&gt;
&lt;br /&gt;
As Software Heritage grows, we're incrementally trying to increase the coverage of the archive by expanding the sources from which we archive software. We built ways of archiving things like mercurial repositories, Debian packages, pypi bundles, etc.&lt;br /&gt;
&lt;br /&gt;
Expanding the coverage of the archive has two different components:&lt;br /&gt;
&lt;br /&gt;
1. Create '''origin listers'''. Listers are pieces of code that crawl the APIs of Software Forges[https://en.wikipedia.org/wiki/Forge_(software)] (like Bitbucket, Gitorious, Sourceforge, NPM...)  and return a list of the software available in it. The documentation on listers is here: https://docs.softwareheritage.org/devel/swh-lister/index.html&lt;br /&gt;
&lt;br /&gt;
2. Create '''loaders'''. Loaders take a bundle of software (tarball, git repository, Python package, ...) and load it into Software Heritage, by adapting it so that it matches our uniform data model[https://docs.softwareheritage.org/devel/swh-model/data-model.html].&lt;br /&gt;
&lt;br /&gt;
In a few words, a lister can be a way of asking &amp;quot;what are all the repositories available on npm.org?&amp;quot;, while a loader would be &amp;quot;how do I load the NPM package I downloaded into Software Heritage?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Writing a lister or a loader is a great way to contribute to Software Heritage by expanding its coverage! We have a list of software sources we would like to archive here[https://wiki.softwareheritage.org/wiki/Suggestion_box:_source_code_to_add], but you're free to suggest more.&lt;br /&gt;
&lt;br /&gt;
=== Mine information from archived content ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
=== Improve and extend the archive Web UI ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
GSoC students are encouraged to get in touch with the Software Heritage community using the standard development communication channels, i.e.:&lt;br /&gt;
&lt;br /&gt;
* the #swh-devel IRC channel on [https://freenode.net Freenode]&lt;br /&gt;
* the [https://sympa.inria.fr/sympa/info/swh-devel swh-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
See our [https://www.softwareheritage.org/community/developers/ development information page] for more details.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
See the official [https://developers.google.com/open-source/gsoc/timeline Google Summer of Code timeline].&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=947</id>
		<title>Google Summer of Code 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=947"/>
		<updated>2019-02-03T20:47:44Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Increase archive coverage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GSoCLogo.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
&lt;br /&gt;
This page is the central point of information for [[Software Heritage]] participation into the [https://summerofcode.withgoogle.com/ Google Summer of Code] program.&lt;br /&gt;
&lt;br /&gt;
Google Summer of Code is a program where Google pays students stipends to work over the (northern hemisphere) summer on free software projects such as Software Heritage. Each student works with mentors from the community to complete a software project.&lt;br /&gt;
&lt;br /&gt;
== I want to participate as a student ==&lt;br /&gt;
&lt;br /&gt;
Great!, we are very glad for your interest in contributing to Software Heritage and we are looking forward to work together.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The following prerequisites apply to Software Heritage GSoC projects:&lt;br /&gt;
&lt;br /&gt;
* [https://www.python.org Python] 3 is our language of choice, you should be fluent with that language to apply&lt;br /&gt;
* [https://git-scm.com Git] is our version control system of choice, you should be familiar with it to apply&lt;br /&gt;
* additional prerequisites depend on the project you will work on; check project descriptions for details&lt;br /&gt;
&lt;br /&gt;
=== Before you apply ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps you should follow before applying, to make sure you have a good grasp of what we are doing at Software Heritage and how we do it:&lt;br /&gt;
&lt;br /&gt;
# Follow our [https://docs.softwareheritage.org/devel/getting-started.html getting started guide]: it will make sure you can locally run a (small) copy of the archive and ingest source code into it&lt;br /&gt;
# Create an account our [https://forge.softwareheritage.org development forge]&lt;br /&gt;
# Familiarize yourself with our [[Code review in Phabricator|code review workflow]]&lt;br /&gt;
# Make a simple change to any one of our [https://docs.softwareheritage.org/devel/ software components] and submit it as a [https://forge.softwareheritage.org/differential/ diff] for code review, following the above workflow. [[Easy hacks]] and [https://forge.softwareheritage.org/project/view/20/ Web UI] issues are good options for what to fix, but feel free to submit any patch you think it might be useful.&lt;br /&gt;
&lt;br /&gt;
=== What to include in your application ===&lt;br /&gt;
&lt;br /&gt;
Make sure that your application includes the following information:&lt;br /&gt;
&lt;br /&gt;
* Describe the '''specific project''' you want to work on. What do you want to achieve? Why is it import? Why is it useful for Software Heritage? The project might be one of the project ideas that we have prepared, or something else entirely that you want to contribute to Software Heritage. Your source code archival pet peeve, surprise us!&lt;br /&gt;
* Detail your '''work plan''': a brief description of how you plan to go about your project, including a list of  ''deliverables'' and a ''timeline'' of when do you expect them to be available.&lt;br /&gt;
* Include a reference to '''the diff''' you submitted before applying (see the &amp;quot;Before you apply&amp;quot; section above).&lt;br /&gt;
&lt;br /&gt;
== Ideas list ==&lt;br /&gt;
&lt;br /&gt;
Below you can find a list of project ideas that are good options for a reasonably sized GSoC project.&lt;br /&gt;
They are just suggestion though, don't feel obliged to pick one of them if there is nothing that fits your taste and abilities.&lt;br /&gt;
Feel free to propose something else that you are excited about and that contributes to improve the Software Heritage archive: we will be happy to consider it!&lt;br /&gt;
&lt;br /&gt;
=== Increase archive coverage ===&lt;br /&gt;
&lt;br /&gt;
Software Heritage aims to archive '''all the software'''. We naturally started with the place where most of the software is easily available today: git repositories on GitHub.&lt;br /&gt;
&lt;br /&gt;
As Software Heritage grows, we're incrementally trying to increase the coverage of the archive by expanding the sources from which we archive software. We built ways of archiving things like mercurial repositories, Debian packages, pypi bundles, etc.&lt;br /&gt;
&lt;br /&gt;
Expanding the coverage of the archive has two different components:&lt;br /&gt;
&lt;br /&gt;
1. Create '''origin listers'''. Listers are pieces of code that crawl the APIs of Software Forges[https://en.wikipedia.org/wiki/Forge_(software)] (like Bitbucket, Gitorious, Sourceforge, NPM...)  and return a list of the software available in it. The documentation on listers is here: https://docs.softwareheritage.org/devel/swh-lister/index.html&lt;br /&gt;
&lt;br /&gt;
2. Create '''loaders'''. Loaders take a bundle of software (tarball, git repository, Python package, ...) and load it into Software Heritage, by adapting it so that it matches our uniform data model[https://docs.softwareheritage.org/devel/swh-model/data-model.html].&lt;br /&gt;
&lt;br /&gt;
In a few words, a lister can be a way of asking &amp;quot;what are all the repositories available on npm.org?&amp;quot;, while a loader would be &amp;quot;how do I load the NPM package I downloaded into Software Heritage?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Writing a lister or a loader is a great way to contribute to Software Heritage by expanding its coverage! We have a list of software sources we would like to archive here[https://wiki.softwareheritage.org/wiki/Suggestion_box:_source_code_to_add], but you're free to suggest something else.&lt;br /&gt;
&lt;br /&gt;
=== Mine information from archived content ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
=== Improve and extend the archive Web UI ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
GSoC students are encouraged to get in touch with the Software Heritage community using the standard development communication channels, i.e.:&lt;br /&gt;
&lt;br /&gt;
* the #swh-devel IRC channel on [https://freenode.net Freenode]&lt;br /&gt;
* the [https://sympa.inria.fr/sympa/info/swh-devel swh-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
See our [https://www.softwareheritage.org/community/developers/ development information page] for more details.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
See the official [https://developers.google.com/open-source/gsoc/timeline Google Summer of Code timeline].&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=946</id>
		<title>Google Summer of Code 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=946"/>
		<updated>2019-02-03T20:46:11Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Increase archive coverage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GSoCLogo.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
&lt;br /&gt;
This page is the central point of information for [[Software Heritage]] participation into the [https://summerofcode.withgoogle.com/ Google Summer of Code] program.&lt;br /&gt;
&lt;br /&gt;
Google Summer of Code is a program where Google pays students stipends to work over the (northern hemisphere) summer on free software projects such as Software Heritage. Each student works with mentors from the community to complete a software project.&lt;br /&gt;
&lt;br /&gt;
== I want to participate as a student ==&lt;br /&gt;
&lt;br /&gt;
Great!, we are very glad for your interest in contributing to Software Heritage and we are looking forward to work together.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The following prerequisites apply to Software Heritage GSoC projects:&lt;br /&gt;
&lt;br /&gt;
* [https://www.python.org Python] 3 is our language of choice, you should be fluent with that language to apply&lt;br /&gt;
* [https://git-scm.com Git] is our version control system of choice, you should be familiar with it to apply&lt;br /&gt;
* additional prerequisites depend on the project you will work on; check project descriptions for details&lt;br /&gt;
&lt;br /&gt;
=== Before you apply ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps you should follow before applying, to make sure you have a good grasp of what we are doing at Software Heritage and how we do it:&lt;br /&gt;
&lt;br /&gt;
# Follow our [https://docs.softwareheritage.org/devel/getting-started.html getting started guide]: it will make sure you can locally run a (small) copy of the archive and ingest source code into it&lt;br /&gt;
# Create an account our [https://forge.softwareheritage.org development forge]&lt;br /&gt;
# Familiarize yourself with our [[Code review in Phabricator|code review workflow]]&lt;br /&gt;
# Make a simple change to any one of our [https://docs.softwareheritage.org/devel/ software components] and submit it as a [https://forge.softwareheritage.org/differential/ diff] for code review, following the above workflow. [[Easy hacks]] and [https://forge.softwareheritage.org/project/view/20/ Web UI] issues are good options for what to fix, but feel free to submit any patch you think it might be useful.&lt;br /&gt;
&lt;br /&gt;
=== What to include in your application ===&lt;br /&gt;
&lt;br /&gt;
Make sure that your application includes the following information:&lt;br /&gt;
&lt;br /&gt;
* Describe the '''specific project''' you want to work on. What do you want to achieve? Why is it import? Why is it useful for Software Heritage? The project might be one of the project ideas that we have prepared, or something else entirely that you want to contribute to Software Heritage. Your source code archival pet peeve, surprise us!&lt;br /&gt;
* Detail your '''work plan''': a brief description of how you plan to go about your project, including a list of  ''deliverables'' and a ''timeline'' of when do you expect them to be available.&lt;br /&gt;
* Include a reference to '''the diff''' you submitted before applying (see the &amp;quot;Before you apply&amp;quot; section above).&lt;br /&gt;
&lt;br /&gt;
== Ideas list ==&lt;br /&gt;
&lt;br /&gt;
Below you can find a list of project ideas that are good options for a reasonably sized GSoC project.&lt;br /&gt;
They are just suggestion though, don't feel obliged to pick one of them if there is nothing that fits your taste and abilities.&lt;br /&gt;
Feel free to propose something else that you are excited about and that contributes to improve the Software Heritage archive: we will be happy to consider it!&lt;br /&gt;
&lt;br /&gt;
=== Increase archive coverage ===&lt;br /&gt;
&lt;br /&gt;
Software Heritage aims to archive '''all the software'''. We naturally started with the place where most of the software is easily available today: git repositories on GitHub.&lt;br /&gt;
&lt;br /&gt;
As Software Heritage grows, we're incrementally trying to increase the coverage of the archive by expanding the sources from which we archive software. We built ways of archiving things like mercurial repositories, Debian packages, pypi bundles, etc.&lt;br /&gt;
&lt;br /&gt;
Expanding the coverage of the archive has two different components:&lt;br /&gt;
&lt;br /&gt;
1. Create '''origin listers'''. Listers are pieces of code that crawl the APIs of Software Forges[https://en.wikipedia.org/wiki/Forge_(software)] (like Bitbucket, Gitorious, Sourceforge, NPM...)  and return a list of the software available in it. The documentation on listers is here: https://docs.softwareheritage.org/devel/swh-lister/index.html&lt;br /&gt;
&lt;br /&gt;
2. Create '''loaders'''. Loaders take a bundle of software (tarball, git repository, Python package, ...) and load it into Software Heritage, by adapting it so that it matches our uniform data model[https://docs.softwareheritage.org/devel/swh-model/data-model.html].&lt;br /&gt;
&lt;br /&gt;
In a few words, a lister can be a way of asking &amp;quot;what are all the repositories available on npm.org?&amp;quot;, while a loader would be &amp;quot;how do I load the NPM package I downloaded into Software Heritage?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Writing a lister or a loader is a great way to contribute to Software Heritage by expanding its coverage!&lt;br /&gt;
&lt;br /&gt;
=== Mine information from archived content ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
=== Improve and extend the archive Web UI ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
GSoC students are encouraged to get in touch with the Software Heritage community using the standard development communication channels, i.e.:&lt;br /&gt;
&lt;br /&gt;
* the #swh-devel IRC channel on [https://freenode.net Freenode]&lt;br /&gt;
* the [https://sympa.inria.fr/sympa/info/swh-devel swh-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
See our [https://www.softwareheritage.org/community/developers/ development information page] for more details.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
See the official [https://developers.google.com/open-source/gsoc/timeline Google Summer of Code timeline].&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=945</id>
		<title>Google Summer of Code 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=945"/>
		<updated>2019-02-03T20:45:19Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Increase archive coverage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GSoCLogo.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
&lt;br /&gt;
This page is the central point of information for [[Software Heritage]] participation into the [https://summerofcode.withgoogle.com/ Google Summer of Code] program.&lt;br /&gt;
&lt;br /&gt;
Google Summer of Code is a program where Google pays students stipends to work over the (northern hemisphere) summer on free software projects such as Software Heritage. Each student works with mentors from the community to complete a software project.&lt;br /&gt;
&lt;br /&gt;
== I want to participate as a student ==&lt;br /&gt;
&lt;br /&gt;
Great!, we are very glad for your interest in contributing to Software Heritage and we are looking forward to work together.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The following prerequisites apply to Software Heritage GSoC projects:&lt;br /&gt;
&lt;br /&gt;
* [https://www.python.org Python] 3 is our language of choice, you should be fluent with that language to apply&lt;br /&gt;
* [https://git-scm.com Git] is our version control system of choice, you should be familiar with it to apply&lt;br /&gt;
* additional prerequisites depend on the project you will work on; check project descriptions for details&lt;br /&gt;
&lt;br /&gt;
=== Before you apply ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps you should follow before applying, to make sure you have a good grasp of what we are doing at Software Heritage and how we do it:&lt;br /&gt;
&lt;br /&gt;
# Follow our [https://docs.softwareheritage.org/devel/getting-started.html getting started guide]: it will make sure you can locally run a (small) copy of the archive and ingest source code into it&lt;br /&gt;
# Create an account our [https://forge.softwareheritage.org development forge]&lt;br /&gt;
# Familiarize yourself with our [[Code review in Phabricator|code review workflow]]&lt;br /&gt;
# Make a simple change to any one of our [https://docs.softwareheritage.org/devel/ software components] and submit it as a [https://forge.softwareheritage.org/differential/ diff] for code review, following the above workflow. [[Easy hacks]] and [https://forge.softwareheritage.org/project/view/20/ Web UI] issues are good options for what to fix, but feel free to submit any patch you think it might be useful.&lt;br /&gt;
&lt;br /&gt;
=== What to include in your application ===&lt;br /&gt;
&lt;br /&gt;
Make sure that your application includes the following information:&lt;br /&gt;
&lt;br /&gt;
* Describe the '''specific project''' you want to work on. What do you want to achieve? Why is it import? Why is it useful for Software Heritage? The project might be one of the project ideas that we have prepared, or something else entirely that you want to contribute to Software Heritage. Your source code archival pet peeve, surprise us!&lt;br /&gt;
* Detail your '''work plan''': a brief description of how you plan to go about your project, including a list of  ''deliverables'' and a ''timeline'' of when do you expect them to be available.&lt;br /&gt;
* Include a reference to '''the diff''' you submitted before applying (see the &amp;quot;Before you apply&amp;quot; section above).&lt;br /&gt;
&lt;br /&gt;
== Ideas list ==&lt;br /&gt;
&lt;br /&gt;
Below you can find a list of project ideas that are good options for a reasonably sized GSoC project.&lt;br /&gt;
They are just suggestion though, don't feel obliged to pick one of them if there is nothing that fits your taste and abilities.&lt;br /&gt;
Feel free to propose something else that you are excited about and that contributes to improve the Software Heritage archive: we will be happy to consider it!&lt;br /&gt;
&lt;br /&gt;
=== Increase archive coverage ===&lt;br /&gt;
&lt;br /&gt;
Software Heritage aims to archive '''all the software'''. We naturally started with the place where most of the software is easily available today: git repositories on GitHub.&lt;br /&gt;
&lt;br /&gt;
As Software Heritage grows, we're incrementally trying to increase the coverage of the archive by expanding the sources from which we archive software. We built ways of archiving things like mercurial repositories, Debian packages, pypi bundles, etc.&lt;br /&gt;
&lt;br /&gt;
Expanding the coverage of the archive has two different components:&lt;br /&gt;
&lt;br /&gt;
1. Create '''origin listers'''. Listers are pieces of code that crawl the APIs of Software Forges[https://en.wikipedia.org/wiki/Forge_(software)] (like Bitbucket, Gitorious, Sourceforge, NPM...)  and return a list of the software available in it. The documentation on listers is here: https://docs.softwareheritage.org/devel/swh-lister/index.html&lt;br /&gt;
&lt;br /&gt;
2. Create '''loaders'''. Loaders take a bundle of software (tarball, git repository, Python package, ...) and load it into Software Heritage, by adapting it so that it matches our uniform data model[https://docs.softwareheritage.org/devel/swh-model/data-model.html].&lt;br /&gt;
&lt;br /&gt;
In a few words, a lister can be a way of asking &amp;quot;what are all the repositories available on npm.org?&amp;quot;, while a loader would be &amp;quot;how do I load the NPM package I downloaded into Software Heritage?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Mine information from archived content ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
=== Improve and extend the archive Web UI ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
GSoC students are encouraged to get in touch with the Software Heritage community using the standard development communication channels, i.e.:&lt;br /&gt;
&lt;br /&gt;
* the #swh-devel IRC channel on [https://freenode.net Freenode]&lt;br /&gt;
* the [https://sympa.inria.fr/sympa/info/swh-devel swh-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
See our [https://www.softwareheritage.org/community/developers/ development information page] for more details.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
See the official [https://developers.google.com/open-source/gsoc/timeline Google Summer of Code timeline].&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=944</id>
		<title>Google Summer of Code 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=944"/>
		<updated>2019-02-03T20:43:30Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Increase archive coverage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GSoCLogo.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
&lt;br /&gt;
This page is the central point of information for [[Software Heritage]] participation into the [https://summerofcode.withgoogle.com/ Google Summer of Code] program.&lt;br /&gt;
&lt;br /&gt;
Google Summer of Code is a program where Google pays students stipends to work over the (northern hemisphere) summer on free software projects such as Software Heritage. Each student works with mentors from the community to complete a software project.&lt;br /&gt;
&lt;br /&gt;
== I want to participate as a student ==&lt;br /&gt;
&lt;br /&gt;
Great!, we are very glad for your interest in contributing to Software Heritage and we are looking forward to work together.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The following prerequisites apply to Software Heritage GSoC projects:&lt;br /&gt;
&lt;br /&gt;
* [https://www.python.org Python] 3 is our language of choice, you should be fluent with that language to apply&lt;br /&gt;
* [https://git-scm.com Git] is our version control system of choice, you should be familiar with it to apply&lt;br /&gt;
* additional prerequisites depend on the project you will work on; check project descriptions for details&lt;br /&gt;
&lt;br /&gt;
=== Before you apply ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps you should follow before applying, to make sure you have a good grasp of what we are doing at Software Heritage and how we do it:&lt;br /&gt;
&lt;br /&gt;
# Follow our [https://docs.softwareheritage.org/devel/getting-started.html getting started guide]: it will make sure you can locally run a (small) copy of the archive and ingest source code into it&lt;br /&gt;
# Create an account our [https://forge.softwareheritage.org development forge]&lt;br /&gt;
# Familiarize yourself with our [[Code review in Phabricator|code review workflow]]&lt;br /&gt;
# Make a simple change to any one of our [https://docs.softwareheritage.org/devel/ software components] and submit it as a [https://forge.softwareheritage.org/differential/ diff] for code review, following the above workflow. [[Easy hacks]] and [https://forge.softwareheritage.org/project/view/20/ Web UI] issues are good options for what to fix, but feel free to submit any patch you think it might be useful.&lt;br /&gt;
&lt;br /&gt;
=== What to include in your application ===&lt;br /&gt;
&lt;br /&gt;
Make sure that your application includes the following information:&lt;br /&gt;
&lt;br /&gt;
* Describe the '''specific project''' you want to work on. What do you want to achieve? Why is it import? Why is it useful for Software Heritage? The project might be one of the project ideas that we have prepared, or something else entirely that you want to contribute to Software Heritage. Your source code archival pet peeve, surprise us!&lt;br /&gt;
* Detail your '''work plan''': a brief description of how you plan to go about your project, including a list of  ''deliverables'' and a ''timeline'' of when do you expect them to be available.&lt;br /&gt;
* Include a reference to '''the diff''' you submitted before applying (see the &amp;quot;Before you apply&amp;quot; section above).&lt;br /&gt;
&lt;br /&gt;
== Ideas list ==&lt;br /&gt;
&lt;br /&gt;
Below you can find a list of project ideas that are good options for a reasonably sized GSoC project.&lt;br /&gt;
They are just suggestion though, don't feel obliged to pick one of them if there is nothing that fits your taste and abilities.&lt;br /&gt;
Feel free to propose something else that you are excited about and that contributes to improve the Software Heritage archive: we will be happy to consider it!&lt;br /&gt;
&lt;br /&gt;
=== Increase archive coverage ===&lt;br /&gt;
&lt;br /&gt;
Software Heritage aims to archive '''all the software'''. We naturally started with the place where most of the software is easily available today: git repositories on GitHub.&lt;br /&gt;
&lt;br /&gt;
As Software Heritage grows, we're incrementally trying to increase the coverage of the archive by expanding the sources from which we archive software. We built ways of archiving things like mercurial repositories, Debian packages, pypi bundles, etc.&lt;br /&gt;
&lt;br /&gt;
Expanding the coverage of the archive has two different components:&lt;br /&gt;
&lt;br /&gt;
1. Create '''origin listers'''. Listers are pieces of code that crawl the APIs of [Software forges](https://en.wikipedia.org/wiki/Forge_(software)) (like Bitbucket, Gitorious, Sourceforge, NPM...)  and return a list of the software available in it. The documentation on listers is here: https://docs.softwareheritage.org/devel/swh-lister/index.html&lt;br /&gt;
&lt;br /&gt;
2. Create '''loaders'''. Loaders take a bundle of software (tarball, git repository, Python package, ...) and load it into Software Heritage, by adapting it so that it matches our [uniform data model](https://docs.softwareheritage.org/devel/swh-model/data-model.html).&lt;br /&gt;
&lt;br /&gt;
In a few words, a lister can be a way of asking &amp;quot;what are all the repositories available on npm.org?&amp;quot;, while a loader would be &amp;quot;how do I load the NPM package I downloaded into Software Heritage?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Mine information from archived content ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
=== Improve and extend the archive Web UI ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
GSoC students are encouraged to get in touch with the Software Heritage community using the standard development communication channels, i.e.:&lt;br /&gt;
&lt;br /&gt;
* the #swh-devel IRC channel on [https://freenode.net Freenode]&lt;br /&gt;
* the [https://sympa.inria.fr/sympa/info/swh-devel swh-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
See our [https://www.softwareheritage.org/community/developers/ development information page] for more details.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
See the official [https://developers.google.com/open-source/gsoc/timeline Google Summer of Code timeline].&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=943</id>
		<title>Google Summer of Code 2019</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=943"/>
		<updated>2019-02-03T20:43:05Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Increase archive coverage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GSoCLogo.png|1024px]]&lt;br /&gt;
&lt;br /&gt;
== General information ==&lt;br /&gt;
&lt;br /&gt;
This page is the central point of information for [[Software Heritage]] participation into the [https://summerofcode.withgoogle.com/ Google Summer of Code] program.&lt;br /&gt;
&lt;br /&gt;
Google Summer of Code is a program where Google pays students stipends to work over the (northern hemisphere) summer on free software projects such as Software Heritage. Each student works with mentors from the community to complete a software project.&lt;br /&gt;
&lt;br /&gt;
== I want to participate as a student ==&lt;br /&gt;
&lt;br /&gt;
Great!, we are very glad for your interest in contributing to Software Heritage and we are looking forward to work together.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The following prerequisites apply to Software Heritage GSoC projects:&lt;br /&gt;
&lt;br /&gt;
* [https://www.python.org Python] 3 is our language of choice, you should be fluent with that language to apply&lt;br /&gt;
* [https://git-scm.com Git] is our version control system of choice, you should be familiar with it to apply&lt;br /&gt;
* additional prerequisites depend on the project you will work on; check project descriptions for details&lt;br /&gt;
&lt;br /&gt;
=== Before you apply ===&lt;br /&gt;
&lt;br /&gt;
Here are the steps you should follow before applying, to make sure you have a good grasp of what we are doing at Software Heritage and how we do it:&lt;br /&gt;
&lt;br /&gt;
# Follow our [https://docs.softwareheritage.org/devel/getting-started.html getting started guide]: it will make sure you can locally run a (small) copy of the archive and ingest source code into it&lt;br /&gt;
# Create an account our [https://forge.softwareheritage.org development forge]&lt;br /&gt;
# Familiarize yourself with our [[Code review in Phabricator|code review workflow]]&lt;br /&gt;
# Make a simple change to any one of our [https://docs.softwareheritage.org/devel/ software components] and submit it as a [https://forge.softwareheritage.org/differential/ diff] for code review, following the above workflow. [[Easy hacks]] and [https://forge.softwareheritage.org/project/view/20/ Web UI] issues are good options for what to fix, but feel free to submit any patch you think it might be useful.&lt;br /&gt;
&lt;br /&gt;
=== What to include in your application ===&lt;br /&gt;
&lt;br /&gt;
Make sure that your application includes the following information:&lt;br /&gt;
&lt;br /&gt;
* Describe the '''specific project''' you want to work on. What do you want to achieve? Why is it import? Why is it useful for Software Heritage? The project might be one of the project ideas that we have prepared, or something else entirely that you want to contribute to Software Heritage. Your source code archival pet peeve, surprise us!&lt;br /&gt;
* Detail your '''work plan''': a brief description of how you plan to go about your project, including a list of  ''deliverables'' and a ''timeline'' of when do you expect them to be available.&lt;br /&gt;
* Include a reference to '''the diff''' you submitted before applying (see the &amp;quot;Before you apply&amp;quot; section above).&lt;br /&gt;
&lt;br /&gt;
== Ideas list ==&lt;br /&gt;
&lt;br /&gt;
Below you can find a list of project ideas that are good options for a reasonably sized GSoC project.&lt;br /&gt;
They are just suggestion though, don't feel obliged to pick one of them if there is nothing that fits your taste and abilities.&lt;br /&gt;
Feel free to propose something else that you are excited about and that contributes to improve the Software Heritage archive: we will be happy to consider it!&lt;br /&gt;
&lt;br /&gt;
=== Increase archive coverage ===&lt;br /&gt;
&lt;br /&gt;
Software Heritage aims to archive **all the software**. We naturally started with the place where most of the software is easily available today: git repositories on GitHub.&lt;br /&gt;
&lt;br /&gt;
As Software Heritage grows, we're incrementally trying to increase the coverage of the archive by expanding the sources from which we archive software. We built ways of archiving things like mercurial repositories, Debian packages, pypi bundles, etc.&lt;br /&gt;
&lt;br /&gt;
Expanding the coverage of the archive has two different components:&lt;br /&gt;
&lt;br /&gt;
1. Create **origin listers**. Listers are pieces of code that crawl the APIs of [Software forges](https://en.wikipedia.org/wiki/Forge_(software)) (like Bitbucket, Gitorious, Sourceforge, NPM...)  and return a list of the software available in it. The documentation on listers is here: https://docs.softwareheritage.org/devel/swh-lister/index.html&lt;br /&gt;
&lt;br /&gt;
2. Create **loaders**. Loaders take a bundle of software (tarball, git repository, Python package, ...) and load it into Software Heritage, by adapting it so that it matches our [uniform data model](https://docs.softwareheritage.org/devel/swh-model/data-model.html).&lt;br /&gt;
&lt;br /&gt;
In a few words, a lister can be a way of asking &amp;quot;what are all the repositories available on npm.org?&amp;quot;, while a loader would be &amp;quot;how do I load the NPM package I downloaded into Software Heritage?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Mine information from archived content ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
=== Improve and extend the archive Web UI ===&lt;br /&gt;
&lt;br /&gt;
'''TODO'''&lt;br /&gt;
&lt;br /&gt;
== Contact ==&lt;br /&gt;
&lt;br /&gt;
GSoC students are encouraged to get in touch with the Software Heritage community using the standard development communication channels, i.e.:&lt;br /&gt;
&lt;br /&gt;
* the #swh-devel IRC channel on [https://freenode.net Freenode]&lt;br /&gt;
* the [https://sympa.inria.fr/sympa/info/swh-devel swh-devel mailing list]&lt;br /&gt;
&lt;br /&gt;
See our [https://www.softwareheritage.org/community/developers/ development information page] for more details.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
See the official [https://developers.google.com/open-source/gsoc/timeline Google Summer of Code timeline].&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Large-scale_progamming_language_detection_(internship)&amp;diff=810</id>
		<title>Large-scale progamming language detection (internship)</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Large-scale_progamming_language_detection_(internship)&amp;diff=810"/>
		<updated>2018-02-13T15:37:07Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Articles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Detection de langage de programmation à grande échelle ==&lt;br /&gt;
&lt;br /&gt;
(english description follows)&lt;br /&gt;
&lt;br /&gt;
'''Contexte''': [https://www.softwareheritage.org/ Software Heritage], projet&lt;br /&gt;
de recherche de grande envergure ayant comme but la récupération, l'archivage&lt;br /&gt;
à très long terme, et le partage de la totalité du Logiciel Libre publiquement&lt;br /&gt;
accessible en format code source.&lt;br /&gt;
&lt;br /&gt;
'''Description''':&lt;br /&gt;
L'[https://archive.softwareheritage.org/ archive de Software Heritage] est la&lt;br /&gt;
plus vaste collection de code source existante aujourd'hui: 4 milliard des&lt;br /&gt;
fichiers uniques et 1 milliard des commits, provenant de plus de 70 million des&lt;br /&gt;
projets logiciel.&lt;br /&gt;
À cette échelle la détection du langage de programmation d'un fichier est très&lt;br /&gt;
compliquée.&lt;br /&gt;
&lt;br /&gt;
Le premier objectif de ce stage est conduire une review systématique de la&lt;br /&gt;
literature scientifique sur la detection de langage de programmation, pour&lt;br /&gt;
ensuite évaluer quelles techniques et outils seront les plus appropriés pour&lt;br /&gt;
un usage dans le contexte de Software Heritage. Deuxièmement, le stage portera&lt;br /&gt;
sur l'evaluation pratique et expérimentale des techniques et outils retenues&lt;br /&gt;
sur (un sous-ensemble de) l'archive, pour comparer analytiquement leurs&lt;br /&gt;
efficacités respectives.&lt;br /&gt;
&lt;br /&gt;
'''Connaissances souhaitées''' pour accéder au stage:&lt;br /&gt;
* programmation en Python&lt;br /&gt;
* statistique de base pour l'analyse de données&lt;br /&gt;
* des connaissances de base dans les domaines suivantes pourraient être utiles, mais ne sont pas indispensable:&lt;br /&gt;
** traitement automatique du langage naturel&lt;br /&gt;
** apprentissage automatique&lt;br /&gt;
** GNU R&lt;br /&gt;
&lt;br /&gt;
'''Établissement d'accueil''': Inria Paris&lt;br /&gt;
&lt;br /&gt;
'''Environnement''': vous serez en immersion totale avec l'équipe qui construit l'archive de Software Heritage, et vous aurez la possibilité d'observer de près la construction d'un projet d'envergure mondiale.&lt;br /&gt;
&lt;br /&gt;
'''Encadrants''':&lt;br /&gt;
* Roberto Di Cosmo &amp;lt;roberto@dicosmo.org&amp;gt;&lt;br /&gt;
* Stefano Zacchiroli &amp;lt;zack@upsilon.cc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Large-scale programming language detection ==&lt;br /&gt;
&lt;br /&gt;
'''Context''': [https://www.softwareheritage.org/ Software Heritage] is an&lt;br /&gt;
ambitious research project whose goal is to collect, preserve in the very long&lt;br /&gt;
term, and share the whole publicly accessible Free/Open Source Software&lt;br /&gt;
(FOSS) in source code form.&lt;br /&gt;
&lt;br /&gt;
'''Description''':&lt;br /&gt;
The [[Software Heritage archive]] has assembled the largest public collection of&lt;br /&gt;
source code to date: about 4 billion unique files and 1 billion unique commits&lt;br /&gt;
coming from more than 70 million development projects.&lt;br /&gt;
Detecting the programming language of each individual source code file at this&lt;br /&gt;
scale is no easy feat.&lt;br /&gt;
&lt;br /&gt;
The goal of this internship is, first, to review&lt;br /&gt;
state-of-the-art techniques and research results on large-scale detection of&lt;br /&gt;
programming languages, to assess which ones are good candidates for application&lt;br /&gt;
to the Software Heritage archive; second, practically experiment with (a subset&lt;br /&gt;
of) the chosen techniques on (a subset of) the Software Heritage archive to&lt;br /&gt;
quantitatively compare their effectiveness.&lt;br /&gt;
&lt;br /&gt;
'''Desirable skills''' to obtain this internship:&lt;br /&gt;
* Python development&lt;br /&gt;
* basic statistics for data analysis&lt;br /&gt;
* working knowledge of one of the following would be a plus:&lt;br /&gt;
** natural language processing&lt;br /&gt;
** machine learning&lt;br /&gt;
** GNU R&lt;br /&gt;
&lt;br /&gt;
'''Workplace''': Inria Paris&lt;br /&gt;
&lt;br /&gt;
'''Environnement''': you will work shoulder to shoulder with all members of the&lt;br /&gt;
Software Heritage team, and you will have a chance to witness from within the&lt;br /&gt;
construction of the ultimate source code archive.&lt;br /&gt;
&lt;br /&gt;
'''Internship mentors''':&lt;br /&gt;
* Roberto Di Cosmo &amp;lt;roberto@dicosmo.org&amp;gt;&lt;br /&gt;
* Stefano Zacchiroli &amp;lt;zack@upsilon.cc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reading list ===&lt;br /&gt;
&lt;br /&gt;
==== Articles ====&lt;br /&gt;
&lt;br /&gt;
* Eric De la Clergerie, [https://www.slideshare.net/clerger/slides-isn14 Des expériences simples autour du langage], lecture&lt;br /&gt;
* Juriaan Kennedy van Dam, Vadim Zaytsev, [http://ieeexplore.ieee.org/abstract/document/7476685/ Software Language Identification with Natural Language Classifiers], SANER 2016&lt;br /&gt;
* David Klein, Kyle Murray, Simon Weber, [https://arxiv.org/abs/1106.4064 Algorithmic Programming Language Identification], arXiv preprint (2011)&lt;br /&gt;
* Shlok Gilda, [http://ieeexplore.ieee.org/document/8025917/ Source code classification using Neural Networks], JCSSE 2017&lt;br /&gt;
* Robson Montenegro, [http://blog.aylien.com/source-code-classification-using-deep-learning/ Source Code Classification Using Deep Learning], 2016&lt;br /&gt;
* Shaul Zevin, Catherine Holzem [https://arxiv.org/abs/1703.07638 Machine Learning Based Source Code Classification Using Syntax Oriented Features], 2017&lt;br /&gt;
* Secil Ugurel et. al., [https://dl.acm.org/citation.cfm?doid=775047.775141 What's the code?: automatic classification of source code archives], 2002&lt;br /&gt;
&lt;br /&gt;
==== Tools ====&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/blackducksoftware/ohcount Ohcount], Black Duck Software&lt;br /&gt;
* [https://github.com/github/linguist Linguist], GitHub&lt;br /&gt;
* [https://guesslang.readthedocs.io/en/latest/ Guesslang], Y. SOMDA&lt;br /&gt;
* SLOC counters: [https://github.com/AlDanial/cloc cloc], [https://www.dwheeler.com/sloccount/ SLOCCount]&lt;br /&gt;
* Code indexers: [http://ctags.io/ Universal Ctags]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Available internship]]&lt;br /&gt;
[[Category:Internship]]&lt;br /&gt;
[[Category:Lang:English]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Large-scale_progamming_language_detection_(internship)&amp;diff=809</id>
		<title>Large-scale progamming language detection (internship)</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Large-scale_progamming_language_detection_(internship)&amp;diff=809"/>
		<updated>2018-02-13T14:53:20Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Detection de langage de programmation à grande échelle ==&lt;br /&gt;
&lt;br /&gt;
(english description follows)&lt;br /&gt;
&lt;br /&gt;
'''Contexte''': [https://www.softwareheritage.org/ Software Heritage], projet&lt;br /&gt;
de recherche de grande envergure ayant comme but la récupération, l'archivage&lt;br /&gt;
à très long terme, et le partage de la totalité du Logiciel Libre publiquement&lt;br /&gt;
accessible en format code source.&lt;br /&gt;
&lt;br /&gt;
'''Description''':&lt;br /&gt;
L'[https://archive.softwareheritage.org/ archive de Software Heritage] est la&lt;br /&gt;
plus vaste collection de code source existante aujourd'hui: 4 milliard des&lt;br /&gt;
fichiers uniques et 1 milliard des commits, provenant de plus de 70 million des&lt;br /&gt;
projets logiciel.&lt;br /&gt;
À cette échelle la détection du langage de programmation d'un fichier est très&lt;br /&gt;
compliquée.&lt;br /&gt;
&lt;br /&gt;
Le premier objectif de ce stage est conduire une review systématique de la&lt;br /&gt;
literature scientifique sur la detection de langage de programmation, pour&lt;br /&gt;
ensuite évaluer quelles techniques et outils seront les plus appropriés pour&lt;br /&gt;
un usage dans le contexte de Software Heritage. Deuxièmement, le stage portera&lt;br /&gt;
sur l'evaluation pratique et expérimentale des techniques et outils retenues&lt;br /&gt;
sur (un sous-ensemble de) l'archive, pour comparer analytiquement leurs&lt;br /&gt;
efficacités respectives.&lt;br /&gt;
&lt;br /&gt;
'''Connaissances souhaitées''' pour accéder au stage:&lt;br /&gt;
* programmation en Python&lt;br /&gt;
* statistique de base pour l'analyse de données&lt;br /&gt;
* des connaissances de base dans les domaines suivantes pourraient être utiles, mais ne sont pas indispensable:&lt;br /&gt;
** traitement automatique du langage naturel&lt;br /&gt;
** apprentissage automatique&lt;br /&gt;
** GNU R&lt;br /&gt;
&lt;br /&gt;
'''Établissement d'accueil''': Inria Paris&lt;br /&gt;
&lt;br /&gt;
'''Environnement''': vous serez en immersion totale avec l'équipe qui construit l'archive de Software Heritage, et vous aurez la possibilité d'observer de près la construction d'un projet d'envergure mondiale.&lt;br /&gt;
&lt;br /&gt;
'''Encadrants''':&lt;br /&gt;
* Roberto Di Cosmo &amp;lt;roberto@dicosmo.org&amp;gt;&lt;br /&gt;
* Stefano Zacchiroli &amp;lt;zack@upsilon.cc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Large-scale programming language detection ==&lt;br /&gt;
&lt;br /&gt;
'''Context''': [https://www.softwareheritage.org/ Software Heritage] is an&lt;br /&gt;
ambitious research project whose goal is to collect, preserve in the very long&lt;br /&gt;
term, and share the whole publicly accessible Free/Open Source Software&lt;br /&gt;
(FOSS) in source code form.&lt;br /&gt;
&lt;br /&gt;
'''Description''':&lt;br /&gt;
The [[Software Heritage archive]] has assembled the largest public collection of&lt;br /&gt;
source code to date: about 4 billion unique files and 1 billion unique commits&lt;br /&gt;
coming from more than 70 million development projects.&lt;br /&gt;
Detecting the programming language of each individual source code file at this&lt;br /&gt;
scale is no easy feat.&lt;br /&gt;
&lt;br /&gt;
The goal of this internship is, first, to review&lt;br /&gt;
state-of-the-art techniques and research results on large-scale detection of&lt;br /&gt;
programming languages, to assess which ones are good candidates for application&lt;br /&gt;
to the Software Heritage archive; second, practically experiment with (a subset&lt;br /&gt;
of) the chosen techniques on (a subset of) the Software Heritage archive to&lt;br /&gt;
quantitatively compare their effectiveness.&lt;br /&gt;
&lt;br /&gt;
'''Desirable skills''' to obtain this internship:&lt;br /&gt;
* Python development&lt;br /&gt;
* basic statistics for data analysis&lt;br /&gt;
* working knowledge of one of the following would be a plus:&lt;br /&gt;
** natural language processing&lt;br /&gt;
** machine learning&lt;br /&gt;
** GNU R&lt;br /&gt;
&lt;br /&gt;
'''Workplace''': Inria Paris&lt;br /&gt;
&lt;br /&gt;
'''Environnement''': you will work shoulder to shoulder with all members of the&lt;br /&gt;
Software Heritage team, and you will have a chance to witness from within the&lt;br /&gt;
construction of the ultimate source code archive.&lt;br /&gt;
&lt;br /&gt;
'''Internship mentors''':&lt;br /&gt;
* Roberto Di Cosmo &amp;lt;roberto@dicosmo.org&amp;gt;&lt;br /&gt;
* Stefano Zacchiroli &amp;lt;zack@upsilon.cc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reading list ===&lt;br /&gt;
&lt;br /&gt;
==== Articles ====&lt;br /&gt;
&lt;br /&gt;
* Eric De la Clergerie, [https://www.slideshare.net/clerger/slides-isn14 Des expériences simples autour du langage], lecture&lt;br /&gt;
* Juriaan Kennedy van Dam, Vadim Zaytsev, [http://ieeexplore.ieee.org/abstract/document/7476685/ Software Language Identification with Natural Language Classifiers], SANER 2016&lt;br /&gt;
* David Klein, Kyle Murray, Simon Weber, [https://arxiv.org/abs/1106.4064 Algorithmic Programming Language Identification], arXiv preprint (2011)&lt;br /&gt;
* Shlok Gilda, [http://ieeexplore.ieee.org/document/8025917/ Source code classification using Neural Networks], JCSSE 2017&lt;br /&gt;
* Cristina V. Lopez et. al., [https://dl.acm.org/citation.cfm?doid=3152284.3133908 DéjàVu: a map of code duplicates on GitHub], 2017&lt;br /&gt;
* Robson Montenegro, [http://blog.aylien.com/source-code-classification-using-deep-learning/ Source Code Classification Using Deep Learning], 2016&lt;br /&gt;
* Shaul Zevin, Catherine Holzem [https://arxiv.org/abs/1703.07638 Machine Learning Based Source Code Classification Using Syntax Oriented Features], 2017&lt;br /&gt;
* Secil Ugurel et. al., [https://dl.acm.org/citation.cfm?doid=775047.775141 What's the code?: automatic classification of source code archives], 2002&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Tools ====&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/blackducksoftware/ohcount Ohcount], Black Duck Software&lt;br /&gt;
* [https://github.com/github/linguist Linguist], GitHub&lt;br /&gt;
* [https://guesslang.readthedocs.io/en/latest/ Guesslang], Y. SOMDA&lt;br /&gt;
* SLOC counters: [https://github.com/AlDanial/cloc cloc], [https://www.dwheeler.com/sloccount/ SLOCCount]&lt;br /&gt;
* Code indexers: [http://ctags.io/ Universal Ctags]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Available internship]]&lt;br /&gt;
[[Category:Internship]]&lt;br /&gt;
[[Category:Lang:English]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Vault_Blueprint&amp;diff=778</id>
		<title>Vault Blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Vault_Blueprint&amp;diff=778"/>
		<updated>2018-01-16T15:56:44Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''WARNING: out of date draft blueprint'''&lt;br /&gt;
* '''INFO: the Software Heritage implementation of the vault is now staying in its own repository with an up to date documentation, in [https://forge.softwareheritage.org/source/swh-vault/ swh-vault]'''&lt;br /&gt;
&lt;br /&gt;
= Software Heritage Vault =&lt;br /&gt;
&lt;br /&gt;
Software source code '''objects'''---e.g., individual source code files, tarballs, commits, tagged releases, etc.---are stored in the Software Heritage (SWH) Archive in fully deduplicated form. That allows direct access to individual artifacts but require some preparation, usually in the form of collecting and assembling multiple artifacts in a single '''bundle''', when fast access to a set of related artifacts (e.g., the snapshot of a VCS repository, the archive corresponding to a Git commit, or a specific software release as a zip archive) is required.&lt;br /&gt;
&lt;br /&gt;
The '''Software Heritage Vault''' is a cache of pre-built source code bundles which are assembled opportunistically retrieving objects from the Software Heritage Archive, can be accessed efficiently, and might be garbage collected after a long period of non-use.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* '''Shared cache'''&lt;br /&gt;
&lt;br /&gt;
The vault is a cache shared among the various origins that the SWH archive tracks. If the same bundle, originally coming from different origins, is requested, a single entry for it in the cache shall exist.&lt;br /&gt;
&lt;br /&gt;
* '''Efficient retrieval'''&lt;br /&gt;
&lt;br /&gt;
Where supported by the desired access protocol (e.g., HTTP) it should be possible for the vault to serve bundles efficiently (e.g., as static files served via HTTP, possibly further proxied/cached at that level). In particular, this rules out building bundles on the fly from the archive DB.&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
&lt;br /&gt;
All URLs below are meant to be mounted at API root, which is currently at https://archive.softwareheritage.org/api/1/. Unless otherwise stated, all API endpoints respond on HTTP GET method.&lt;br /&gt;
&lt;br /&gt;
== Object identification ==&lt;br /&gt;
&lt;br /&gt;
The vault stores bundles corresponding to different kinds of objects. The following object kinds are supported:&lt;br /&gt;
&lt;br /&gt;
* directories&lt;br /&gt;
* revisions&lt;br /&gt;
* repository snapshots&lt;br /&gt;
&lt;br /&gt;
The URL fragment &amp;lt;code&amp;gt;:objectkind/:objectid&amp;lt;/code&amp;gt; is used throughout the vault API to fully identify vault objects. The syntax and meaning of :objectid for the different object kinds is detailed below.&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
&lt;br /&gt;
* object kind: directory&lt;br /&gt;
* URL fragment: directory/:sha1git&lt;br /&gt;
&lt;br /&gt;
where :sha1git is the directory ID in the SWH data model.&lt;br /&gt;
&lt;br /&gt;
=== Revisions ===&lt;br /&gt;
&lt;br /&gt;
* object kind: revision&lt;br /&gt;
* URL fragment: revision/:sha1git&lt;br /&gt;
&lt;br /&gt;
where :sha1git is the revision ID in the SWH data model.&lt;br /&gt;
&lt;br /&gt;
=== Repository snapshots ===&lt;br /&gt;
&lt;br /&gt;
* object kind: snapshot&lt;br /&gt;
* URL fragment: snapshot/:sha1git&lt;br /&gt;
&lt;br /&gt;
where :sha1git is the snapshot ID in the SWH data model. ('''TODO''' repository snapshots don't exist yet as first-class citizens in the SWH data model; see References below.)&lt;br /&gt;
&lt;br /&gt;
== Cooking ==&lt;br /&gt;
&lt;br /&gt;
Bundles in the vault might be ready for retrieval or not. When they are not, they will need to be '''cooked''' before they can be retrieved. A cooked bundle will remain around until it expires; at that point it will need to be cooked again before it can be retrieved. Cooking is idempotent, and a no-op in between a previous cooking operation and expiration.&lt;br /&gt;
&lt;br /&gt;
To cook a bundle:&lt;br /&gt;
&lt;br /&gt;
* POST /vault/:objectkind/:objectid&lt;br /&gt;
&lt;br /&gt;
Request body: '''TODO''' something here in a JSON payload that would allow notifying the user when the bundle is ready.&lt;br /&gt;
&lt;br /&gt;
Response: 201 Created&lt;br /&gt;
&lt;br /&gt;
== Retrieval ==&lt;br /&gt;
&lt;br /&gt;
* GET /vault/:objectkind&lt;br /&gt;
&lt;br /&gt;
(paginated) list of all bundles of a given kind available in the vault; see Pagination. Note that, due to cache expiration, objects might disappear between listing and subsequent actions on them.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* GET /vault/directory&lt;br /&gt;
* GET /vault/revision&lt;br /&gt;
* GET /vault/:objectkind/:objectid&lt;br /&gt;
&lt;br /&gt;
Retrieve a specific bundle from the vault.&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
* 200 OK: bundle available; response body is the bundle&lt;br /&gt;
* 404 Not Found: missing bundle; client should request its preparation (see Cooking)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.softwareheritage.org/index.php?title=User:StefanoZacchiroli/Repository_snapshot_objects Repository snapshot objects]&lt;br /&gt;
* Amazon Web Services, [http://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-api.html API Reference for Amazon Glacier]; specifically [http://docs.aws.amazon.com/amazonglacier/latest/dev/job-operations.html Job Operations]&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* '''TODO''' pagination using HATEOAS&lt;br /&gt;
* '''TODO''' authorization: the cooking API should be somehow controlled to avoid obvious abuses (e.g., let's cache everything)&lt;br /&gt;
* '''TODO''' finalize repository snapshot proposal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Blueprint]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Vault_Blueprint&amp;diff=777</id>
		<title>Vault Blueprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Vault_Blueprint&amp;diff=777"/>
		<updated>2018-01-16T15:39:34Z</updated>

		<summary type="html">&lt;p&gt;Seirl: Created page with &amp;quot;= Software Heritage Vault =  Software source code '''objects'''---e.g., individual source code files, tarballs, commits, tagged releases, etc.---are stored in the Software Her...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Software Heritage Vault =&lt;br /&gt;
&lt;br /&gt;
Software source code '''objects'''---e.g., individual source code files, tarballs, commits, tagged releases, etc.---are stored in the Software Heritage (SWH) Archive in fully deduplicated form. That allows direct access to individual artifacts but require some preparation, usually in the form of collecting and assembling multiple artifacts in a single '''bundle''', when fast access to a set of related artifacts (e.g., the snapshot of a VCS repository, the archive corresponding to a Git commit, or a specific software release as a zip archive) is required.&lt;br /&gt;
&lt;br /&gt;
The '''Software Heritage Vault''' is a cache of pre-built source code bundles which are assembled opportunistically retrieving objects from the Software Heritage Archive, can be accessed efficiently, and might be garbage collected after a long period of non-use.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* '''Shared cache'''&lt;br /&gt;
&lt;br /&gt;
The vault is a cache shared among the various origins that the SWH archive tracks. If the same bundle, originally coming from different origins, is requested, a single entry for it in the cache shall exist.&lt;br /&gt;
&lt;br /&gt;
* '''Efficient retrieval'''&lt;br /&gt;
&lt;br /&gt;
Where supported by the desired access protocol (e.g., HTTP) it should be possible for the vault to serve bundles efficiently (e.g., as static files served via HTTP, possibly further proxied/cached at that level). In particular, this rules out building bundles on the fly from the archive DB.&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
&lt;br /&gt;
All URLs below are meant to be mounted at API root, which is currently at https://archive.softwareheritage.org/api/1/. Unless otherwise stated, all API endpoints respond on HTTP GET method.&lt;br /&gt;
&lt;br /&gt;
== Object identification ==&lt;br /&gt;
&lt;br /&gt;
The vault stores bundles corresponding to different kinds of objects. The following object kinds are supported:&lt;br /&gt;
&lt;br /&gt;
* directories&lt;br /&gt;
* revisions&lt;br /&gt;
* repository snapshots&lt;br /&gt;
&lt;br /&gt;
The URL fragment &amp;lt;code&amp;gt;:objectkind/:objectid&amp;lt;/code&amp;gt; is used throughout the vault API to fully identify vault objects. The syntax and meaning of :objectid for the different object kinds is detailed below.&lt;br /&gt;
&lt;br /&gt;
=== Directories ===&lt;br /&gt;
&lt;br /&gt;
* object kind: directory&lt;br /&gt;
* URL fragment: directory/:sha1git&lt;br /&gt;
&lt;br /&gt;
where :sha1git is the directory ID in the SWH data model.&lt;br /&gt;
&lt;br /&gt;
=== Revisions ===&lt;br /&gt;
&lt;br /&gt;
* object kind: revision&lt;br /&gt;
* URL fragment: revision/:sha1git&lt;br /&gt;
&lt;br /&gt;
where :sha1git is the revision ID in the SWH data model.&lt;br /&gt;
&lt;br /&gt;
=== Repository snapshots ===&lt;br /&gt;
&lt;br /&gt;
* object kind: snapshot&lt;br /&gt;
* URL fragment: snapshot/:sha1git&lt;br /&gt;
&lt;br /&gt;
where :sha1git is the snapshot ID in the SWH data model. ('''TODO''' repository snapshots don't exist yet as first-class citizens in the SWH data model; see References below.)&lt;br /&gt;
&lt;br /&gt;
== Cooking ==&lt;br /&gt;
&lt;br /&gt;
Bundles in the vault might be ready for retrieval or not. When they are not, they will need to be '''cooked''' before they can be retrieved. A cooked bundle will remain around until it expires; at that point it will need to be cooked again before it can be retrieved. Cooking is idempotent, and a no-op in between a previous cooking operation and expiration.&lt;br /&gt;
&lt;br /&gt;
To cook a bundle:&lt;br /&gt;
&lt;br /&gt;
* POST /vault/:objectkind/:objectid&lt;br /&gt;
&lt;br /&gt;
Request body: '''TODO''' something here in a JSON payload that would allow notifying the user when the bundle is ready.&lt;br /&gt;
&lt;br /&gt;
Response: 201 Created&lt;br /&gt;
&lt;br /&gt;
== Retrieval ==&lt;br /&gt;
&lt;br /&gt;
* GET /vault/:objectkind&lt;br /&gt;
&lt;br /&gt;
(paginated) list of all bundles of a given kind available in the vault; see Pagination. Note that, due to cache expiration, objects might disappear between listing and subsequent actions on them.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* GET /vault/directory&lt;br /&gt;
* GET /vault/revision&lt;br /&gt;
* GET /vault/:objectkind/:objectid&lt;br /&gt;
&lt;br /&gt;
Retrieve a specific bundle from the vault.&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
* 200 OK: bundle available; response body is the bundle&lt;br /&gt;
* 404 Not Found: missing bundle; client should request its preparation (see Cooking)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.softwareheritage.org/index.php?title=User:StefanoZacchiroli/Repository_snapshot_objects Repository snapshot objects]&lt;br /&gt;
* Amazon Web Services, [http://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-api.html API Reference for Amazon Glacier]; specifically [http://docs.aws.amazon.com/amazonglacier/latest/dev/job-operations.html Job Operations]&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* '''TODO''' pagination using HATEOAS&lt;br /&gt;
* '''TODO''' authorization: the cooking API should be somehow controlled to avoid obvious abuses (e.g., let's cache everything)&lt;br /&gt;
* '''TODO''' finalize repository snapshot proposal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Blueprint]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=776</id>
		<title>Debian packaging</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=776"/>
		<updated>2018-01-10T14:31:27Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* overlay in tmpfs for faster builds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Creating a package for deployment ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;swh-environment&amp;lt;/tt&amp;gt; contains a script, &amp;lt;tt&amp;gt;bin/make-package&amp;lt;/tt&amp;gt;, which generates a Debian package from a given Git repository, and uploads it to our internal repository targeting suites unstable and jessie-backports.&lt;br /&gt;
&lt;br /&gt;
This assumes that the '''current''' (''HEAD'') revision has been tagged with a version '''v&amp;lt;foo&amp;gt;''' (e.g. v0.0.4), and that the repository contains the debian metadata. (i.e. &amp;lt;tt&amp;gt;debian/{copyright,control,changelog.rules,source/format,compat}&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  $ git tag -as -m 'version 0.0.42' v0.0.42&lt;br /&gt;
  $ bin/make-package -b -u swh-core&lt;br /&gt;
&lt;br /&gt;
== Package repository ==&lt;br /&gt;
&lt;br /&gt;
A package repository is available on http://debian.internal.softwareheritage.org/.&lt;br /&gt;
&lt;br /&gt;
Unstable / Testing :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ unstable main&lt;br /&gt;
&lt;br /&gt;
Stable / Stretch :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ stretch-swh main&lt;br /&gt;
&lt;br /&gt;
Oldstable / Jessie :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ jessie main&lt;br /&gt;
&lt;br /&gt;
This package repository is handled via reprepro on pergamon.internal.softwareheritage.org (base directory : /srv/softwareheritage/repository).&lt;br /&gt;
&lt;br /&gt;
=== Uploading packages ===&lt;br /&gt;
&lt;br /&gt;
Packages are added to the repository using &amp;lt;tt&amp;gt;reprepro -vb /srv/softwareheritage/repository processincoming incoming&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For packages to be accepted, they need to be :&lt;br /&gt;
# A changes file uploaded to &amp;lt;tt&amp;gt;/srv/softwareheritage/repository/incoming&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Targetted at one of the supported distributions (unstable, unstable-swh, stretch, stretch-backports, stretch-backports-swh), jessie, jessie-backports, jessie-backports-swh)&lt;br /&gt;
# Signed by one of the keys listed in /srv/softwareheritage/repository/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
== Build Environment setup ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;bin/make-package.sh&amp;lt;/tt&amp;gt; uses sbuild for package construction. You therefore need to setup sbuild before being able to use it.&lt;br /&gt;
&lt;br /&gt;
=== sbuild setup ===&lt;br /&gt;
&lt;br /&gt;
 # Install the package&lt;br /&gt;
 sudo apt-get install sbuild&lt;br /&gt;
 &lt;br /&gt;
 # Add your user to the sbuild group, to allow him to use the sbuild commands&lt;br /&gt;
 sudo sbuild-adduser $USER&lt;br /&gt;
 # You have to logout and log back in&lt;br /&gt;
 &lt;br /&gt;
 # Prepare chroots&lt;br /&gt;
 sudo mkdir /srv/chroots&lt;br /&gt;
 sudo mkdir /srv/chroots/var&lt;br /&gt;
 &lt;br /&gt;
 # Optionally create a separate filesystem for /srv/chroots and move the sbuild/schroot data to that partition&lt;br /&gt;
 sudo rsync -avz --delete /var/lib/schroot/ /srv/chroots/var/schroot/&lt;br /&gt;
 sudo rm -r /var/lib/schroot&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/schroot /var/lib/schroot&lt;br /&gt;
 &lt;br /&gt;
 sudo rsync -avz --delete /var/lib/sbuild/ /srv/chroots/var/sbuild/&lt;br /&gt;
 sudo rm -r /var/lib/sbuild&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/sbuild /var/lib/sbuild&lt;br /&gt;
 # end optionally&lt;br /&gt;
 &lt;br /&gt;
 # Create unstable/sid chroot&lt;br /&gt;
 sudo sbuild-createchroot sid /srv/chroots/sid http://deb.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 # Create stretch chroot&lt;br /&gt;
 sudo sbuild-createchroot stretch /srv/chroots/stretch http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 # Create jessie chroot&lt;br /&gt;
 sudo sbuild-createchroot jessie /srv/chroots/jessie http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # If you use /etc/hosts to resolve *.internal.softwareheritage.org hosts&lt;br /&gt;
 echo hosts &amp;gt;&amp;gt; /etc/schroot/sbuild/nssdatabases&lt;br /&gt;
&lt;br /&gt;
=== schroot setup ===&lt;br /&gt;
&lt;br /&gt;
Now that the sbuild base setup is done. You now need to configure schroot to use an overlay filesystem, which will avoid copying the chroots at each build.&lt;br /&gt;
&lt;br /&gt;
In recent (&amp;gt;= 1.6) versions of schroot, you need to update the configuration (in &amp;lt;tt&amp;gt;/etc/schroot/chroot.d/*-sbuild-*&amp;lt;/tt&amp;gt;) with the following directives:&lt;br /&gt;
&lt;br /&gt;
 source-groups=root,sbuild&lt;br /&gt;
 source-root-groups=root,sbuild&lt;br /&gt;
 union-type=overlay&lt;br /&gt;
&lt;br /&gt;
You should also use this opportunity to add &amp;quot;aliases&amp;quot; to your chroot, so that sbuild will directly support the distributions we're using (unstable-swh, jessie-backports-swh):&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 aliases=unstable-amd64-sbuild,UNRELEASED-amd64-sbuild,unstable-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 aliases=stable-amd64-sbuild,stable-backports-amd64-sbuild,stretch-backports-amd64-sbuild,stretch-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 aliases=oldstable-amd64-sbuild,oldstable-backports-amd64-sbuild,jessie-backports-amd64-sbuild,jessie-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
==== dependencies cache ====&lt;br /&gt;
&lt;br /&gt;
Add the following line to schroot's fstab /etc/schroot/sbuild/fstab&lt;br /&gt;
to permit reuse of existing fetched dependencies:&lt;br /&gt;
&lt;br /&gt;
    /var/cache/apt/archives /var/cache/apt/archives none rw,bind 0 0&lt;br /&gt;
&lt;br /&gt;
=== schroot migration ===&lt;br /&gt;
&lt;br /&gt;
From October the 19th 2017, we migrated our private repository from http://debian.internal.softwareheritage.org to https://debian.softwareheritage.org.&lt;br /&gt;
So, we need to update the chroots with the right certificate.&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 schroot -c source:sid-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 schroot -c source:stretch-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 schroot -c source:jessie-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
=== schroot update ===&lt;br /&gt;
&lt;br /&gt;
You can update your chroot environments once in a while (to avoid repeating over and over the same step during your package build):&lt;br /&gt;
&lt;br /&gt;
  sudo sbuild-update --update --dist-upgrade sid; sudo sbuild-update -ud stretch; sudo sbuild-update -ud jessie &lt;br /&gt;
&lt;br /&gt;
=== environment setup ===&lt;br /&gt;
&lt;br /&gt;
The Debian tools use a few variables to preset your name and email. Add this to your &amp;lt;tt&amp;gt;.&amp;lt;shell&amp;gt;rc&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 export DEBFULLNAME=&amp;quot;Debra Hacker&amp;quot;&lt;br /&gt;
 export DEBEMAIL=debra.hacker@example.com&lt;br /&gt;
&lt;br /&gt;
Make sure this data matches an uid for your GPG key. Else, you can use the &amp;lt;tt&amp;gt;DEBSIGN_KEYID=&amp;lt;yourkeyid&amp;gt;&amp;lt;/tt&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
=== overlay in tmpfs for faster builds ===&lt;br /&gt;
&lt;br /&gt;
You can add this to your fstab to put the overlay hierarchy in RAM:&lt;br /&gt;
&lt;br /&gt;
  tmpfs /var/lib/schroot/union/overlay tmpfs uid=root,gid=root,mode=0750,nr_inodes=0  0  0&lt;br /&gt;
&lt;br /&gt;
=== Base packages ===&lt;br /&gt;
&lt;br /&gt;
In order not to reinstall the same packages every time, it is also reasonable to install debhelper, python3 and python3-all in the chroot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software development]]&lt;br /&gt;
[[Category:System administration]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=775</id>
		<title>Debian packaging</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=775"/>
		<updated>2018-01-10T14:31:07Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Creating a package for deployment ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;swh-environment&amp;lt;/tt&amp;gt; contains a script, &amp;lt;tt&amp;gt;bin/make-package&amp;lt;/tt&amp;gt;, which generates a Debian package from a given Git repository, and uploads it to our internal repository targeting suites unstable and jessie-backports.&lt;br /&gt;
&lt;br /&gt;
This assumes that the '''current''' (''HEAD'') revision has been tagged with a version '''v&amp;lt;foo&amp;gt;''' (e.g. v0.0.4), and that the repository contains the debian metadata. (i.e. &amp;lt;tt&amp;gt;debian/{copyright,control,changelog.rules,source/format,compat}&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  $ git tag -as -m 'version 0.0.42' v0.0.42&lt;br /&gt;
  $ bin/make-package -b -u swh-core&lt;br /&gt;
&lt;br /&gt;
== Package repository ==&lt;br /&gt;
&lt;br /&gt;
A package repository is available on http://debian.internal.softwareheritage.org/.&lt;br /&gt;
&lt;br /&gt;
Unstable / Testing :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ unstable main&lt;br /&gt;
&lt;br /&gt;
Stable / Stretch :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ stretch-swh main&lt;br /&gt;
&lt;br /&gt;
Oldstable / Jessie :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ jessie main&lt;br /&gt;
&lt;br /&gt;
This package repository is handled via reprepro on pergamon.internal.softwareheritage.org (base directory : /srv/softwareheritage/repository).&lt;br /&gt;
&lt;br /&gt;
=== Uploading packages ===&lt;br /&gt;
&lt;br /&gt;
Packages are added to the repository using &amp;lt;tt&amp;gt;reprepro -vb /srv/softwareheritage/repository processincoming incoming&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For packages to be accepted, they need to be :&lt;br /&gt;
# A changes file uploaded to &amp;lt;tt&amp;gt;/srv/softwareheritage/repository/incoming&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Targetted at one of the supported distributions (unstable, unstable-swh, stretch, stretch-backports, stretch-backports-swh), jessie, jessie-backports, jessie-backports-swh)&lt;br /&gt;
# Signed by one of the keys listed in /srv/softwareheritage/repository/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
== Build Environment setup ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;bin/make-package.sh&amp;lt;/tt&amp;gt; uses sbuild for package construction. You therefore need to setup sbuild before being able to use it.&lt;br /&gt;
&lt;br /&gt;
=== sbuild setup ===&lt;br /&gt;
&lt;br /&gt;
 # Install the package&lt;br /&gt;
 sudo apt-get install sbuild&lt;br /&gt;
 &lt;br /&gt;
 # Add your user to the sbuild group, to allow him to use the sbuild commands&lt;br /&gt;
 sudo sbuild-adduser $USER&lt;br /&gt;
 # You have to logout and log back in&lt;br /&gt;
 &lt;br /&gt;
 # Prepare chroots&lt;br /&gt;
 sudo mkdir /srv/chroots&lt;br /&gt;
 sudo mkdir /srv/chroots/var&lt;br /&gt;
 &lt;br /&gt;
 # Optionally create a separate filesystem for /srv/chroots and move the sbuild/schroot data to that partition&lt;br /&gt;
 sudo rsync -avz --delete /var/lib/schroot/ /srv/chroots/var/schroot/&lt;br /&gt;
 sudo rm -r /var/lib/schroot&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/schroot /var/lib/schroot&lt;br /&gt;
 &lt;br /&gt;
 sudo rsync -avz --delete /var/lib/sbuild/ /srv/chroots/var/sbuild/&lt;br /&gt;
 sudo rm -r /var/lib/sbuild&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/sbuild /var/lib/sbuild&lt;br /&gt;
 # end optionally&lt;br /&gt;
 &lt;br /&gt;
 # Create unstable/sid chroot&lt;br /&gt;
 sudo sbuild-createchroot sid /srv/chroots/sid http://deb.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 # Create stretch chroot&lt;br /&gt;
 sudo sbuild-createchroot stretch /srv/chroots/stretch http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 # Create jessie chroot&lt;br /&gt;
 sudo sbuild-createchroot jessie /srv/chroots/jessie http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # If you use /etc/hosts to resolve *.internal.softwareheritage.org hosts&lt;br /&gt;
 echo hosts &amp;gt;&amp;gt; /etc/schroot/sbuild/nssdatabases&lt;br /&gt;
&lt;br /&gt;
=== schroot setup ===&lt;br /&gt;
&lt;br /&gt;
Now that the sbuild base setup is done. You now need to configure schroot to use an overlay filesystem, which will avoid copying the chroots at each build.&lt;br /&gt;
&lt;br /&gt;
In recent (&amp;gt;= 1.6) versions of schroot, you need to update the configuration (in &amp;lt;tt&amp;gt;/etc/schroot/chroot.d/*-sbuild-*&amp;lt;/tt&amp;gt;) with the following directives:&lt;br /&gt;
&lt;br /&gt;
 source-groups=root,sbuild&lt;br /&gt;
 source-root-groups=root,sbuild&lt;br /&gt;
 union-type=overlay&lt;br /&gt;
&lt;br /&gt;
You should also use this opportunity to add &amp;quot;aliases&amp;quot; to your chroot, so that sbuild will directly support the distributions we're using (unstable-swh, jessie-backports-swh):&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 aliases=unstable-amd64-sbuild,UNRELEASED-amd64-sbuild,unstable-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 aliases=stable-amd64-sbuild,stable-backports-amd64-sbuild,stretch-backports-amd64-sbuild,stretch-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 aliases=oldstable-amd64-sbuild,oldstable-backports-amd64-sbuild,jessie-backports-amd64-sbuild,jessie-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
==== dependencies cache ====&lt;br /&gt;
&lt;br /&gt;
Add the following line to schroot's fstab /etc/schroot/sbuild/fstab&lt;br /&gt;
to permit reuse of existing fetched dependencies:&lt;br /&gt;
&lt;br /&gt;
    /var/cache/apt/archives /var/cache/apt/archives none rw,bind 0 0&lt;br /&gt;
&lt;br /&gt;
=== schroot migration ===&lt;br /&gt;
&lt;br /&gt;
From October the 19th 2017, we migrated our private repository from http://debian.internal.softwareheritage.org to https://debian.softwareheritage.org.&lt;br /&gt;
So, we need to update the chroots with the right certificate.&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 schroot -c source:sid-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 schroot -c source:stretch-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 schroot -c source:jessie-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
=== schroot update ===&lt;br /&gt;
&lt;br /&gt;
You can update your chroot environments once in a while (to avoid repeating over and over the same step during your package build):&lt;br /&gt;
&lt;br /&gt;
  sudo sbuild-update --update --dist-upgrade sid; sudo sbuild-update -ud stretch; sudo sbuild-update -ud jessie &lt;br /&gt;
&lt;br /&gt;
=== environment setup ===&lt;br /&gt;
&lt;br /&gt;
The Debian tools use a few variables to preset your name and email. Add this to your &amp;lt;tt&amp;gt;.&amp;lt;shell&amp;gt;rc&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 export DEBFULLNAME=&amp;quot;Debra Hacker&amp;quot;&lt;br /&gt;
 export DEBEMAIL=debra.hacker@example.com&lt;br /&gt;
&lt;br /&gt;
Make sure this data matches an uid for your GPG key. Else, you can use the &amp;lt;tt&amp;gt;DEBSIGN_KEYID=&amp;lt;yourkeyid&amp;gt;&amp;lt;/tt&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
=== overlay in tmpfs for faster builds ===&lt;br /&gt;
&lt;br /&gt;
You can add this to your fstab to put the overlay hierarchy in RAM:&lt;br /&gt;
&lt;br /&gt;
  tmpfs /var/lib/schroot/union/overlay tmpfs uid=root,gid=root,mode=0750,nr_inodes=0  0  0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Base packages ===&lt;br /&gt;
&lt;br /&gt;
In order not to reinstall the same packages every time, it is also reasonable to install debhelper, python3 and python3-all in the chroot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software development]]&lt;br /&gt;
[[Category:System administration]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=774</id>
		<title>Debian packaging</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=774"/>
		<updated>2018-01-10T14:29:59Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* environment setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Creating a package for deployment ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;swh-environment&amp;lt;/tt&amp;gt; contains a script, &amp;lt;tt&amp;gt;bin/make-package&amp;lt;/tt&amp;gt;, which generates a Debian package from a given Git repository, and uploads it to our internal repository targeting suites unstable and jessie-backports.&lt;br /&gt;
&lt;br /&gt;
This assumes that the '''current''' (''HEAD'') revision has been tagged with a version '''v&amp;lt;foo&amp;gt;''' (e.g. v0.0.4), and that the repository contains the debian metadata. (i.e. &amp;lt;tt&amp;gt;debian/{copyright,control,changelog.rules,source/format,compat}&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  $ git tag -as -m 'version 0.0.42' v0.0.42&lt;br /&gt;
  $ bin/make-package -b -u swh-core&lt;br /&gt;
&lt;br /&gt;
== Package repository ==&lt;br /&gt;
&lt;br /&gt;
A package repository is available on http://debian.internal.softwareheritage.org/.&lt;br /&gt;
&lt;br /&gt;
Unstable / Testing :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ unstable main&lt;br /&gt;
&lt;br /&gt;
Stable / Stretch :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ stretch-swh main&lt;br /&gt;
&lt;br /&gt;
Oldstable / Jessie :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ jessie main&lt;br /&gt;
&lt;br /&gt;
This package repository is handled via reprepro on pergamon.internal.softwareheritage.org (base directory : /srv/softwareheritage/repository).&lt;br /&gt;
&lt;br /&gt;
=== Uploading packages ===&lt;br /&gt;
&lt;br /&gt;
Packages are added to the repository using &amp;lt;tt&amp;gt;reprepro -vb /srv/softwareheritage/repository processincoming incoming&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For packages to be accepted, they need to be :&lt;br /&gt;
# A changes file uploaded to &amp;lt;tt&amp;gt;/srv/softwareheritage/repository/incoming&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Targetted at one of the supported distributions (unstable, unstable-swh, stretch, stretch-backports, stretch-backports-swh), jessie, jessie-backports, jessie-backports-swh)&lt;br /&gt;
# Signed by one of the keys listed in /srv/softwareheritage/repository/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
== Build Environment setup ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;bin/make-package.sh&amp;lt;/tt&amp;gt; uses sbuild for package construction. You therefore need to setup sbuild before being able to use it.&lt;br /&gt;
&lt;br /&gt;
=== sbuild setup ===&lt;br /&gt;
&lt;br /&gt;
 # Install the package&lt;br /&gt;
 sudo apt-get install sbuild&lt;br /&gt;
 &lt;br /&gt;
 # Add your user to the sbuild group, to allow him to use the sbuild commands&lt;br /&gt;
 sudo sbuild-adduser $USER&lt;br /&gt;
 # You have to logout and log back in&lt;br /&gt;
 &lt;br /&gt;
 # Prepare chroots&lt;br /&gt;
 sudo mkdir /srv/chroots&lt;br /&gt;
 sudo mkdir /srv/chroots/var&lt;br /&gt;
 &lt;br /&gt;
 # Optionally create a separate filesystem for /srv/chroots and move the sbuild/schroot data to that partition&lt;br /&gt;
 sudo rsync -avz --delete /var/lib/schroot/ /srv/chroots/var/schroot/&lt;br /&gt;
 sudo rm -r /var/lib/schroot&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/schroot /var/lib/schroot&lt;br /&gt;
 &lt;br /&gt;
 sudo rsync -avz --delete /var/lib/sbuild/ /srv/chroots/var/sbuild/&lt;br /&gt;
 sudo rm -r /var/lib/sbuild&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/sbuild /var/lib/sbuild&lt;br /&gt;
 # end optionally&lt;br /&gt;
 &lt;br /&gt;
 # Create unstable/sid chroot&lt;br /&gt;
 sudo sbuild-createchroot sid /srv/chroots/sid http://deb.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 # Create stretch chroot&lt;br /&gt;
 sudo sbuild-createchroot stretch /srv/chroots/stretch http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 # Create jessie chroot&lt;br /&gt;
 sudo sbuild-createchroot jessie /srv/chroots/jessie http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # If you use /etc/hosts to resolve *.internal.softwareheritage.org hosts&lt;br /&gt;
 echo hosts &amp;gt;&amp;gt; /etc/schroot/sbuild/nssdatabases&lt;br /&gt;
&lt;br /&gt;
=== schroot setup ===&lt;br /&gt;
&lt;br /&gt;
Now that the sbuild base setup is done. You now need to configure schroot to use an overlay filesystem, which will avoid copying the chroots at each build.&lt;br /&gt;
&lt;br /&gt;
In recent (&amp;gt;= 1.6) versions of schroot, you need to update the configuration (in &amp;lt;tt&amp;gt;/etc/schroot/chroot.d/*-sbuild-*&amp;lt;/tt&amp;gt;) with the following directives:&lt;br /&gt;
&lt;br /&gt;
 source-groups=root,sbuild&lt;br /&gt;
 source-root-groups=root,sbuild&lt;br /&gt;
 union-type=overlay&lt;br /&gt;
&lt;br /&gt;
You should also use this opportunity to add &amp;quot;aliases&amp;quot; to your chroot, so that sbuild will directly support the distributions we're using (unstable-swh, jessie-backports-swh):&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 aliases=unstable-amd64-sbuild,UNRELEASED-amd64-sbuild,unstable-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 aliases=stable-amd64-sbuild,stable-backports-amd64-sbuild,stretch-backports-amd64-sbuild,stretch-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 aliases=oldstable-amd64-sbuild,oldstable-backports-amd64-sbuild,jessie-backports-amd64-sbuild,jessie-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
==== dependencies cache ====&lt;br /&gt;
&lt;br /&gt;
Add the following line to schroot's fstab /etc/schroot/sbuild/fstab&lt;br /&gt;
to permit reuse of existing fetched dependencies:&lt;br /&gt;
&lt;br /&gt;
    /var/cache/apt/archives /var/cache/apt/archives none rw,bind 0 0&lt;br /&gt;
&lt;br /&gt;
=== schroot migration ===&lt;br /&gt;
&lt;br /&gt;
From October the 19th 2017, we migrated our private repository from http://debian.internal.softwareheritage.org to https://debian.softwareheritage.org.&lt;br /&gt;
So, we need to update the chroots with the right certificate.&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 schroot -c source:sid-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 schroot -c source:stretch-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 schroot -c source:jessie-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
=== schroot update ===&lt;br /&gt;
&lt;br /&gt;
You can update your chroot environments once in a while (to avoid repeating over and over the same step during your package build):&lt;br /&gt;
&lt;br /&gt;
  sudo sbuild-update --update --dist-upgrade sid; sudo sbuild-update -ud stretch; sudo sbuild-update -ud jessie &lt;br /&gt;
&lt;br /&gt;
=== environment setup ===&lt;br /&gt;
&lt;br /&gt;
The Debian tools use a few variables to preset your name and email. Add this to your &amp;lt;tt&amp;gt;.&amp;lt;shell&amp;gt;rc&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 export DEBFULLNAME=&amp;quot;Debra Hacker&amp;quot;&lt;br /&gt;
 export DEBEMAIL=debra.hacker@example.com&lt;br /&gt;
&lt;br /&gt;
Make sure this data matches an uid for your GPG key. Else, you can use the &amp;lt;tt&amp;gt;DEBSIGN_KEYID=&amp;lt;yourkeyid&amp;gt;&amp;lt;/tt&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
=== overlay in tmpfs for faster builds ===&lt;br /&gt;
&lt;br /&gt;
You can add this to your fstab to put the overlay hierarchy in RAM:&lt;br /&gt;
&lt;br /&gt;
  tmpfs /var/lib/schroot/union/overlay tmpfs uid=root,gid=root,mode=0750,nr_inodes=0  0  0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software development]]&lt;br /&gt;
[[Category:System administration]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=773</id>
		<title>Debian packaging</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=773"/>
		<updated>2018-01-10T14:29:49Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Creating a package for deployment ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;swh-environment&amp;lt;/tt&amp;gt; contains a script, &amp;lt;tt&amp;gt;bin/make-package&amp;lt;/tt&amp;gt;, which generates a Debian package from a given Git repository, and uploads it to our internal repository targeting suites unstable and jessie-backports.&lt;br /&gt;
&lt;br /&gt;
This assumes that the '''current''' (''HEAD'') revision has been tagged with a version '''v&amp;lt;foo&amp;gt;''' (e.g. v0.0.4), and that the repository contains the debian metadata. (i.e. &amp;lt;tt&amp;gt;debian/{copyright,control,changelog.rules,source/format,compat}&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  $ git tag -as -m 'version 0.0.42' v0.0.42&lt;br /&gt;
  $ bin/make-package -b -u swh-core&lt;br /&gt;
&lt;br /&gt;
== Package repository ==&lt;br /&gt;
&lt;br /&gt;
A package repository is available on http://debian.internal.softwareheritage.org/.&lt;br /&gt;
&lt;br /&gt;
Unstable / Testing :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ unstable main&lt;br /&gt;
&lt;br /&gt;
Stable / Stretch :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ stretch-swh main&lt;br /&gt;
&lt;br /&gt;
Oldstable / Jessie :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ jessie main&lt;br /&gt;
&lt;br /&gt;
This package repository is handled via reprepro on pergamon.internal.softwareheritage.org (base directory : /srv/softwareheritage/repository).&lt;br /&gt;
&lt;br /&gt;
=== Uploading packages ===&lt;br /&gt;
&lt;br /&gt;
Packages are added to the repository using &amp;lt;tt&amp;gt;reprepro -vb /srv/softwareheritage/repository processincoming incoming&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For packages to be accepted, they need to be :&lt;br /&gt;
# A changes file uploaded to &amp;lt;tt&amp;gt;/srv/softwareheritage/repository/incoming&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Targetted at one of the supported distributions (unstable, unstable-swh, stretch, stretch-backports, stretch-backports-swh), jessie, jessie-backports, jessie-backports-swh)&lt;br /&gt;
# Signed by one of the keys listed in /srv/softwareheritage/repository/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
== Build Environment setup ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;bin/make-package.sh&amp;lt;/tt&amp;gt; uses sbuild for package construction. You therefore need to setup sbuild before being able to use it.&lt;br /&gt;
&lt;br /&gt;
=== sbuild setup ===&lt;br /&gt;
&lt;br /&gt;
 # Install the package&lt;br /&gt;
 sudo apt-get install sbuild&lt;br /&gt;
 &lt;br /&gt;
 # Add your user to the sbuild group, to allow him to use the sbuild commands&lt;br /&gt;
 sudo sbuild-adduser $USER&lt;br /&gt;
 # You have to logout and log back in&lt;br /&gt;
 &lt;br /&gt;
 # Prepare chroots&lt;br /&gt;
 sudo mkdir /srv/chroots&lt;br /&gt;
 sudo mkdir /srv/chroots/var&lt;br /&gt;
 &lt;br /&gt;
 # Optionally create a separate filesystem for /srv/chroots and move the sbuild/schroot data to that partition&lt;br /&gt;
 sudo rsync -avz --delete /var/lib/schroot/ /srv/chroots/var/schroot/&lt;br /&gt;
 sudo rm -r /var/lib/schroot&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/schroot /var/lib/schroot&lt;br /&gt;
 &lt;br /&gt;
 sudo rsync -avz --delete /var/lib/sbuild/ /srv/chroots/var/sbuild/&lt;br /&gt;
 sudo rm -r /var/lib/sbuild&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/sbuild /var/lib/sbuild&lt;br /&gt;
 # end optionally&lt;br /&gt;
 &lt;br /&gt;
 # Create unstable/sid chroot&lt;br /&gt;
 sudo sbuild-createchroot sid /srv/chroots/sid http://deb.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 # Create stretch chroot&lt;br /&gt;
 sudo sbuild-createchroot stretch /srv/chroots/stretch http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 # Create jessie chroot&lt;br /&gt;
 sudo sbuild-createchroot jessie /srv/chroots/jessie http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # If you use /etc/hosts to resolve *.internal.softwareheritage.org hosts&lt;br /&gt;
 echo hosts &amp;gt;&amp;gt; /etc/schroot/sbuild/nssdatabases&lt;br /&gt;
&lt;br /&gt;
=== schroot setup ===&lt;br /&gt;
&lt;br /&gt;
Now that the sbuild base setup is done. You now need to configure schroot to use an overlay filesystem, which will avoid copying the chroots at each build.&lt;br /&gt;
&lt;br /&gt;
In recent (&amp;gt;= 1.6) versions of schroot, you need to update the configuration (in &amp;lt;tt&amp;gt;/etc/schroot/chroot.d/*-sbuild-*&amp;lt;/tt&amp;gt;) with the following directives:&lt;br /&gt;
&lt;br /&gt;
 source-groups=root,sbuild&lt;br /&gt;
 source-root-groups=root,sbuild&lt;br /&gt;
 union-type=overlay&lt;br /&gt;
&lt;br /&gt;
You should also use this opportunity to add &amp;quot;aliases&amp;quot; to your chroot, so that sbuild will directly support the distributions we're using (unstable-swh, jessie-backports-swh):&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 aliases=unstable-amd64-sbuild,UNRELEASED-amd64-sbuild,unstable-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 aliases=stable-amd64-sbuild,stable-backports-amd64-sbuild,stretch-backports-amd64-sbuild,stretch-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 aliases=oldstable-amd64-sbuild,oldstable-backports-amd64-sbuild,jessie-backports-amd64-sbuild,jessie-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
==== dependencies cache ====&lt;br /&gt;
&lt;br /&gt;
Add the following line to schroot's fstab /etc/schroot/sbuild/fstab&lt;br /&gt;
to permit reuse of existing fetched dependencies:&lt;br /&gt;
&lt;br /&gt;
    /var/cache/apt/archives /var/cache/apt/archives none rw,bind 0 0&lt;br /&gt;
&lt;br /&gt;
=== schroot migration ===&lt;br /&gt;
&lt;br /&gt;
From October the 19th 2017, we migrated our private repository from http://debian.internal.softwareheritage.org to https://debian.softwareheritage.org.&lt;br /&gt;
So, we need to update the chroots with the right certificate.&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 schroot -c source:sid-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 schroot -c source:stretch-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 schroot -c source:jessie-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
=== schroot update ===&lt;br /&gt;
&lt;br /&gt;
You can update your chroot environments once in a while (to avoid repeating over and over the same step during your package build):&lt;br /&gt;
&lt;br /&gt;
  sudo sbuild-update --update --dist-upgrade sid; sudo sbuild-update -ud stretch; sudo sbuild-update -ud jessie &lt;br /&gt;
&lt;br /&gt;
=== environment setup ===&lt;br /&gt;
&lt;br /&gt;
The Debian tools use a few variables to preset your name and email. Add this to your &amp;lt;tt&amp;gt;.&amp;lt;shell&amp;gt;rc&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 export DEBFULLNAME=&amp;quot;Debra Hacker&amp;quot;&lt;br /&gt;
 export DEBEMAIL=debra.hacker@example.com&lt;br /&gt;
&lt;br /&gt;
Make sure this data matches an uid for your GPG key. Else, you can use the &amp;lt;tt&amp;gt;DEBSIGN_KEYID=&amp;lt;yourkeyid&amp;gt;&amp;lt;/tt&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== overlay in tmpfs for faster builds ===&lt;br /&gt;
&lt;br /&gt;
You can add this to your fstab to put the overlay hierarchy in RAM:&lt;br /&gt;
&lt;br /&gt;
  tmpfs /var/lib/schroot/union/overlay tmpfs uid=root,gid=root,mode=0750,nr_inodes=0  0  0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software development]]&lt;br /&gt;
[[Category:System administration]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=772</id>
		<title>Debian packaging</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=772"/>
		<updated>2018-01-10T14:29:20Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Build Environment setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Creating a package for deployment ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;swh-environment&amp;lt;/tt&amp;gt; contains a script, &amp;lt;tt&amp;gt;bin/make-package&amp;lt;/tt&amp;gt;, which generates a Debian package from a given Git repository, and uploads it to our internal repository targeting suites unstable and jessie-backports.&lt;br /&gt;
&lt;br /&gt;
This assumes that the '''current''' (''HEAD'') revision has been tagged with a version '''v&amp;lt;foo&amp;gt;''' (e.g. v0.0.4), and that the repository contains the debian metadata. (i.e. &amp;lt;tt&amp;gt;debian/{copyright,control,changelog.rules,source/format,compat}&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  $ git tag -as -m 'version 0.0.42' v0.0.42&lt;br /&gt;
  $ bin/make-package -b -u swh-core&lt;br /&gt;
&lt;br /&gt;
== Package repository ==&lt;br /&gt;
&lt;br /&gt;
A package repository is available on http://debian.internal.softwareheritage.org/.&lt;br /&gt;
&lt;br /&gt;
Unstable / Testing :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ unstable main&lt;br /&gt;
&lt;br /&gt;
Stable / Stretch :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ stretch-swh main&lt;br /&gt;
&lt;br /&gt;
Oldstable / Jessie :&lt;br /&gt;
  deb [trusted=yes] https://debian.softwareheritage.org/ jessie main&lt;br /&gt;
&lt;br /&gt;
This package repository is handled via reprepro on pergamon.internal.softwareheritage.org (base directory : /srv/softwareheritage/repository).&lt;br /&gt;
&lt;br /&gt;
=== Uploading packages ===&lt;br /&gt;
&lt;br /&gt;
Packages are added to the repository using &amp;lt;tt&amp;gt;reprepro -vb /srv/softwareheritage/repository processincoming incoming&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For packages to be accepted, they need to be :&lt;br /&gt;
# A changes file uploaded to &amp;lt;tt&amp;gt;/srv/softwareheritage/repository/incoming&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Targetted at one of the supported distributions (unstable, unstable-swh, stretch, stretch-backports, stretch-backports-swh), jessie, jessie-backports, jessie-backports-swh)&lt;br /&gt;
# Signed by one of the keys listed in /srv/softwareheritage/repository/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
== Build Environment setup ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;bin/make-package.sh&amp;lt;/tt&amp;gt; uses sbuild for package construction. You therefore need to setup sbuild before being able to use it.&lt;br /&gt;
&lt;br /&gt;
=== sbuild setup ===&lt;br /&gt;
&lt;br /&gt;
 # Install the package&lt;br /&gt;
 sudo apt-get install sbuild&lt;br /&gt;
 &lt;br /&gt;
 # Add your user to the sbuild group, to allow him to use the sbuild commands&lt;br /&gt;
 sudo sbuild-adduser $USER&lt;br /&gt;
 # You have to logout and log back in&lt;br /&gt;
 &lt;br /&gt;
 # Prepare chroots&lt;br /&gt;
 sudo mkdir /srv/chroots&lt;br /&gt;
 sudo mkdir /srv/chroots/var&lt;br /&gt;
 &lt;br /&gt;
 # Optionally create a separate filesystem for /srv/chroots and move the sbuild/schroot data to that partition&lt;br /&gt;
 sudo rsync -avz --delete /var/lib/schroot/ /srv/chroots/var/schroot/&lt;br /&gt;
 sudo rm -r /var/lib/schroot&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/schroot /var/lib/schroot&lt;br /&gt;
 &lt;br /&gt;
 sudo rsync -avz --delete /var/lib/sbuild/ /srv/chroots/var/sbuild/&lt;br /&gt;
 sudo rm -r /var/lib/sbuild&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/sbuild /var/lib/sbuild&lt;br /&gt;
 # end optionally&lt;br /&gt;
 &lt;br /&gt;
 # Create unstable/sid chroot&lt;br /&gt;
 sudo sbuild-createchroot sid /srv/chroots/sid http://deb.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 # Create stretch chroot&lt;br /&gt;
 sudo sbuild-createchroot stretch /srv/chroots/stretch http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 # Create jessie chroot&lt;br /&gt;
 sudo sbuild-createchroot jessie /srv/chroots/jessie http://deb.debian.org/debian/&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # If you use /etc/hosts to resolve *.internal.softwareheritage.org hosts&lt;br /&gt;
 echo hosts &amp;gt;&amp;gt; /etc/schroot/sbuild/nssdatabases&lt;br /&gt;
&lt;br /&gt;
=== schroot setup ===&lt;br /&gt;
&lt;br /&gt;
Now that the sbuild base setup is done. You now need to configure schroot to use an overlay filesystem, which will avoid copying the chroots at each build.&lt;br /&gt;
&lt;br /&gt;
In recent (&amp;gt;= 1.6) versions of schroot, you need to update the configuration (in &amp;lt;tt&amp;gt;/etc/schroot/chroot.d/*-sbuild-*&amp;lt;/tt&amp;gt;) with the following directives:&lt;br /&gt;
&lt;br /&gt;
 source-groups=root,sbuild&lt;br /&gt;
 source-root-groups=root,sbuild&lt;br /&gt;
 union-type=overlay&lt;br /&gt;
&lt;br /&gt;
You should also use this opportunity to add &amp;quot;aliases&amp;quot; to your chroot, so that sbuild will directly support the distributions we're using (unstable-swh, jessie-backports-swh):&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 aliases=unstable-amd64-sbuild,UNRELEASED-amd64-sbuild,unstable-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 aliases=stable-amd64-sbuild,stable-backports-amd64-sbuild,stretch-backports-amd64-sbuild,stretch-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 aliases=oldstable-amd64-sbuild,oldstable-backports-amd64-sbuild,jessie-backports-amd64-sbuild,jessie-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
==== dependencies cache ====&lt;br /&gt;
&lt;br /&gt;
Add the following line to schroot's fstab /etc/schroot/sbuild/fstab&lt;br /&gt;
to permit reuse of existing fetched dependencies:&lt;br /&gt;
&lt;br /&gt;
    /var/cache/apt/archives /var/cache/apt/archives none rw,bind 0 0&lt;br /&gt;
&lt;br /&gt;
=== schroot migration ===&lt;br /&gt;
&lt;br /&gt;
From October the 19th 2017, we migrated our private repository from http://debian.internal.softwareheritage.org to https://debian.softwareheritage.org.&lt;br /&gt;
So, we need to update the chroots with the right certificate.&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 schroot -c source:sid-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For stretch:&lt;br /&gt;
 schroot -c source:stretch-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 schroot -c source:jessie-amd64-sbuild -u root --directory / -- apt-get -y install ca-certificates apt-transport-https&lt;br /&gt;
&lt;br /&gt;
=== schroot update ===&lt;br /&gt;
&lt;br /&gt;
You can update your chroot environments once in a while (to avoid repeating over and over the same step during your package build):&lt;br /&gt;
&lt;br /&gt;
  sudo sbuild-update --update --dist-upgrade sid; sudo sbuild-update -ud stretch; sudo sbuild-update -ud jessie &lt;br /&gt;
&lt;br /&gt;
=== environment setup ===&lt;br /&gt;
&lt;br /&gt;
The Debian tools use a few variables to preset your name and email. Add this to your &amp;lt;tt&amp;gt;.&amp;lt;shell&amp;gt;rc&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 export DEBFULLNAME=&amp;quot;Debra Hacker&amp;quot;&lt;br /&gt;
 export DEBEMAIL=debra.hacker@example.com&lt;br /&gt;
&lt;br /&gt;
Make sure this data matches an uid for your GPG key. Else, you can use the &amp;lt;tt&amp;gt;DEBSIGN_KEYID=&amp;lt;yourkeyid&amp;gt;&amp;lt;/tt&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software development]]&lt;br /&gt;
[[Category:System administration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== overlay in tmpfs for faster builds ===&lt;br /&gt;
&lt;br /&gt;
You can add this to your fstab to put the overlay hierarchy in RAM:&lt;br /&gt;
&lt;br /&gt;
  tmpfs /var/lib/schroot/union/overlay tmpfs uid=root,gid=root,mode=0750,nr_inodes=0  0  0&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=739</id>
		<title>Suggestion box: source code to add</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=739"/>
		<updated>2017-11-28T14:09:16Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Suggestions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Archive]] is growing organically. We started &amp;quot;small&amp;quot;, tracking 3 '''software origins''' (GitHub + Debian + GNU), and we will be adding new origins bit by bit, depending on the urgency of archiving them and available development energies to integrate them into Software Heritage.&lt;br /&gt;
&lt;br /&gt;
Using this page you can add suggestions of software origins that we aren't following yet, but we should. You can include information about who to contact for technical collaboration, the urgency of archival, and other useful information. To that end, just add a row to the table below. Here some information about the meaning of the various columns.&lt;br /&gt;
&lt;br /&gt;
Entries are currently listed simply in order of addition to this page; we will add more structure when the list will start growing.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&lt;br /&gt;
;Software origin&lt;br /&gt;
: any (public accessible) &amp;quot;place&amp;quot; on the Internet that host software in source code form. Please provide a title for it and hyperlink it to the relevant URL&lt;br /&gt;
;Type of origin&lt;br /&gt;
: information about the kind of hosting, e.g., whether it is a forge, a collection of repositories, an homepage publishing tarball, or a one shot source code repository. For all kind of repositories please specify which VCS system is in use (Git, SVN, CVS, etc.)&lt;br /&gt;
;Contact&lt;br /&gt;
: who to contact for technical collaboration on how to best archive source code hosted on the software origin. You can list yourself if you're the relevant person, or provide the most relevant contact point if you know it&lt;br /&gt;
;Conservation status&lt;br /&gt;
: information about how likely it is that the software origin will disappear; high likelihood will make it more urgent for us to archive software hosted there. We suggest to use the [https://en.wikipedia.org/wiki/Conservation_status species conservation status], i.e., one of: Critically endangered (CR), Endangered (EN), Vulnerable (VU), Near threatened (NT), Least concern (LC).&lt;br /&gt;
;How to mirror&lt;br /&gt;
: (pointers to) technical information on how to do a full mirror of ''all'' the source code available at the software origin, ideally one shot and in batch&lt;br /&gt;
;How to keep up&lt;br /&gt;
: (pointers to) technical information on how to incrementally retrieve new source code accumulated since the last visit; usually this should be based on some kind of incremental change feed or event API&lt;br /&gt;
;Notes&lt;br /&gt;
: anything else you think we should know about this software origin&lt;br /&gt;
;Forge task&lt;br /&gt;
: pointer to the task on our [[forge]] tracking the work needed to ingest the software origin&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Software origin&lt;br /&gt;
!Type of origin&lt;br /&gt;
!Contact&lt;br /&gt;
!Conservation status&lt;br /&gt;
!How to mirror&lt;br /&gt;
!How to keep up&lt;br /&gt;
!Notes&lt;br /&gt;
![https://forge.softwareheritage.org/ Forge] task&lt;br /&gt;
|-&lt;br /&gt;
|'''(sample entry)''' ''GitHubBub forge''&lt;br /&gt;
|''Git hosting''&lt;br /&gt;
|''John Doe &amp;lt;john@example.com&amp;gt;''&lt;br /&gt;
|''LC''&lt;br /&gt;
|''retrieve full repo list at /api/list, then git clone on each entry''&lt;br /&gt;
|''poll RSS feed at /api/updates?since=YYYY-MM-DD''&lt;br /&gt;
|''nothing special to add''&lt;br /&gt;
|''[https://forge.softwareheritage.org/T123456 T123456]''&lt;br /&gt;
|-&lt;br /&gt;
|[https://bitbucket.org/ Bitbucket]&lt;br /&gt;
|Git and hg/Mercurial hosting&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://forge.softwareheritage.org/T561 T561]&lt;br /&gt;
|-&lt;br /&gt;
|[https://sourceforge.net/ SourceForge]&lt;br /&gt;
|CVS, SVN, Mercurial, Git&lt;br /&gt;
|&lt;br /&gt;
|VU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://wiki.debian.org/Derivatives/Census all Debian derivatives]&lt;br /&gt;
|Debian-based distros&lt;br /&gt;
|Paul Wise &amp;lt;pabs@debian.org&amp;gt;&lt;br /&gt;
|varying, depending on the distro&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.gentoo.org/ Gentoo]&lt;br /&gt;
|&lt;br /&gt;
|Johannes Kellner &amp;lt;gentoo@johannes-kellner.eu&amp;gt;&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://pauillac.inria.fr/~huet/cea.html Gérard Huet's seminal work on 3D]&lt;br /&gt;
|Scanned source code&lt;br /&gt;
|Gérard Huet &amp;lt;gerard.huet@inria.fr&amp;gt;&lt;br /&gt;
|EN&lt;br /&gt;
|retrieve listing images from the web pages&lt;br /&gt;
|N/A&lt;br /&gt;
|links are half broken, yquem should be replaced with pauillac everywhere it appears&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.softwarepreservation.org/projects Software Preservation Project]&lt;br /&gt;
|Website with a collection of archives&lt;br /&gt;
|Paul McJones &amp;lt;paul@mcjones.org&amp;gt;&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://code.nasa.gov/ 253 NASA open source software projects]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://smaky.ch/ Smaky], the swiss micro-computer series&lt;br /&gt;
|[http://infini.smaky.ch/sources.html Partial code dump]&lt;br /&gt;
|[mailto:arnaud@epsitec.ch Pierre Arnaud] (current CEO of Epsitec) and/or [mailto:jean-daniel.nicoud@epfl.ch Jean-Daniel Nicoud] (founder of the computer series]&lt;br /&gt;
|EN&lt;br /&gt;
|Probably manually&lt;br /&gt;
|No new updates&lt;br /&gt;
|Some references to this history: [http://www.memoires-informatiques.org/ Fondation Mémoires Informatiques], [http://smaky.ch/ Smaky.ch] (in particular, [http://smaky.ch/theme.php?id=lami the short history]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#Conservation_status_2 wikidata endangered software]&lt;br /&gt;
|depends on the &amp;quot;source code repository&amp;quot; property&lt;br /&gt;
|Loic Dachary &amp;lt;loic@dachary.org&amp;gt;&lt;br /&gt;
|The risk is higher than [https://www.wikidata.org/wiki/Property_talk:P141 LC]&lt;br /&gt;
|A script should obtain the &amp;quot;source code repository&amp;quot; property for the software and mirror it depending on the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#source_code_repository protocol] qualifier. If the &amp;quot;source code repository&amp;quot; is &amp;quot;no value&amp;quot;, the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#streaming_media_URL streaming media URL] of the &amp;quot;preferred&amp;quot; [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#software_version_.28P348.29 software version] should be downloaded instead.&lt;br /&gt;
|Once a copy is secured by software heritage, a URL to the software heritage repository should be added to the &amp;quot;source code repository&amp;quot; property and the &amp;quot;conservation status&amp;quot; property should be removed, meaning it is &amp;quot;least concerned&amp;quot; by default. The software will no longer show in the list of endangered software.&lt;br /&gt;
|This is work in progress, part of the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS wikidata FLOSS project] and the scripts do not exist yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|historical KDE repos&lt;br /&gt;
|CVS/SVN/Git&lt;br /&gt;
|KDE sysadmin team &amp;lt;sysadmin@kde.org&amp;gt;&lt;br /&gt;
|NT&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://java.net/projects Java.net] &amp;amp; [https://kenai.com/ Kenai.com]&lt;br /&gt;
|hg, git, svn&lt;br /&gt;
|communitymanager@java.net&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://community.oracle.com/community/java/javanet-forge-sunset Shutting down on April 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://fedorahosted.org/ fedorahosted.org]&lt;br /&gt;
|git, svn, hg, bzr&lt;br /&gt;
|[https://lists.fedoraproject.org/admin/lists/infrastructure@lists.fedoraproject.org infrastructure@lists.fedoraproject.org]&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://communityblog.fedoraproject.org/fedorahosted-sunset-2017-02-28/ Shutting down on Feb. 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.societe-informatique-de-france.fr/wp-content/uploads/2015/12/1024-no7-Baude.pdf Langage symbolique d'Enseignement (LSE)]&lt;br /&gt;
|archives&lt;br /&gt;
|Association Enseignement Public et Informatique (EPI) &amp;lt;bureau@epi.asso.fr&amp;gt;&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| + educational software (INRP-CNDP)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.netlib.org The Netlib collection of numerical software]&lt;br /&gt;
|structured website with links to archives&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|many of these libraries are mirrored in sources already collected in Software Heritage; there is sure value in the curation information.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://codebender.cc/ codebender]&lt;br /&gt;
|IOT and educationnal ressources&lt;br /&gt;
|&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|closing expected at Dec31st, 2016 upon this announce by founders https://codebender.cc/next-chapter&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://git.oschina.net/ OS China]&lt;br /&gt;
|Chinese GitHub equivalent&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|interesting test case for all the unicode tooling in Software Heritage&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Usenet source code archives&lt;br /&gt;
|NNTP&lt;br /&gt;
|&lt;br /&gt;
|NT&lt;br /&gt;
|crawl relevant newsgroup archives (e.g., at Google Groups), retrieve archives (possibly chunked), ingest&lt;br /&gt;
|one shot might be enough?&lt;br /&gt;
|suggestion by John Gilmore&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.x.org/releases/ X11/XOrg archives]&lt;br /&gt;
|http&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|one shot might be enough&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.curseforge.com/ Curse mods]&lt;br /&gt;
|Code distributed as versioned tarballs&lt;br /&gt;
|&lt;br /&gt;
|NT&lt;br /&gt;
|The API should be sufficient, maybe some scraping will be required&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Archive]]&lt;br /&gt;
[[Category:Suggestions]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=738</id>
		<title>Suggestion box: source code to add</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=738"/>
		<updated>2017-11-28T14:09:00Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Suggestions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Archive]] is growing organically. We started &amp;quot;small&amp;quot;, tracking 3 '''software origins''' (GitHub + Debian + GNU), and we will be adding new origins bit by bit, depending on the urgency of archiving them and available development energies to integrate them into Software Heritage.&lt;br /&gt;
&lt;br /&gt;
Using this page you can add suggestions of software origins that we aren't following yet, but we should. You can include information about who to contact for technical collaboration, the urgency of archival, and other useful information. To that end, just add a row to the table below. Here some information about the meaning of the various columns.&lt;br /&gt;
&lt;br /&gt;
Entries are currently listed simply in order of addition to this page; we will add more structure when the list will start growing.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&lt;br /&gt;
;Software origin&lt;br /&gt;
: any (public accessible) &amp;quot;place&amp;quot; on the Internet that host software in source code form. Please provide a title for it and hyperlink it to the relevant URL&lt;br /&gt;
;Type of origin&lt;br /&gt;
: information about the kind of hosting, e.g., whether it is a forge, a collection of repositories, an homepage publishing tarball, or a one shot source code repository. For all kind of repositories please specify which VCS system is in use (Git, SVN, CVS, etc.)&lt;br /&gt;
;Contact&lt;br /&gt;
: who to contact for technical collaboration on how to best archive source code hosted on the software origin. You can list yourself if you're the relevant person, or provide the most relevant contact point if you know it&lt;br /&gt;
;Conservation status&lt;br /&gt;
: information about how likely it is that the software origin will disappear; high likelihood will make it more urgent for us to archive software hosted there. We suggest to use the [https://en.wikipedia.org/wiki/Conservation_status species conservation status], i.e., one of: Critically endangered (CR), Endangered (EN), Vulnerable (VU), Near threatened (NT), Least concern (LC).&lt;br /&gt;
;How to mirror&lt;br /&gt;
: (pointers to) technical information on how to do a full mirror of ''all'' the source code available at the software origin, ideally one shot and in batch&lt;br /&gt;
;How to keep up&lt;br /&gt;
: (pointers to) technical information on how to incrementally retrieve new source code accumulated since the last visit; usually this should be based on some kind of incremental change feed or event API&lt;br /&gt;
;Notes&lt;br /&gt;
: anything else you think we should know about this software origin&lt;br /&gt;
;Forge task&lt;br /&gt;
: pointer to the task on our [[forge]] tracking the work needed to ingest the software origin&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Software origin&lt;br /&gt;
!Type of origin&lt;br /&gt;
!Contact&lt;br /&gt;
!Conservation status&lt;br /&gt;
!How to mirror&lt;br /&gt;
!How to keep up&lt;br /&gt;
!Notes&lt;br /&gt;
![https://forge.softwareheritage.org/ Forge] task&lt;br /&gt;
|-&lt;br /&gt;
|'''(sample entry)''' ''GitHubBub forge''&lt;br /&gt;
|''Git hosting''&lt;br /&gt;
|''John Doe &amp;lt;john@example.com&amp;gt;''&lt;br /&gt;
|''LC''&lt;br /&gt;
|''retrieve full repo list at /api/list, then git clone on each entry''&lt;br /&gt;
|''poll RSS feed at /api/updates?since=YYYY-MM-DD''&lt;br /&gt;
|''nothing special to add''&lt;br /&gt;
|''[https://forge.softwareheritage.org/T123456 T123456]''&lt;br /&gt;
|-&lt;br /&gt;
|[https://bitbucket.org/ Bitbucket]&lt;br /&gt;
|Git and hg/Mercurial hosting&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://forge.softwareheritage.org/T561 T561]&lt;br /&gt;
|-&lt;br /&gt;
|[https://sourceforge.net/ SourceForge]&lt;br /&gt;
|CVS, SVN, Mercurial, Git&lt;br /&gt;
|&lt;br /&gt;
|VU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://wiki.debian.org/Derivatives/Census all Debian derivatives]&lt;br /&gt;
|Debian-based distros&lt;br /&gt;
|Paul Wise &amp;lt;pabs@debian.org&amp;gt;&lt;br /&gt;
|varying, depending on the distro&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.gentoo.org/ Gentoo]&lt;br /&gt;
|&lt;br /&gt;
|Johannes Kellner &amp;lt;gentoo@johannes-kellner.eu&amp;gt;&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://pauillac.inria.fr/~huet/cea.html Gérard Huet's seminal work on 3D]&lt;br /&gt;
|Scanned source code&lt;br /&gt;
|Gérard Huet &amp;lt;gerard.huet@inria.fr&amp;gt;&lt;br /&gt;
|EN&lt;br /&gt;
|retrieve listing images from the web pages&lt;br /&gt;
|N/A&lt;br /&gt;
|links are half broken, yquem should be replaced with pauillac everywhere it appears&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.softwarepreservation.org/projects Software Preservation Project]&lt;br /&gt;
|Website with a collection of archives&lt;br /&gt;
|Paul McJones &amp;lt;paul@mcjones.org&amp;gt;&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://code.nasa.gov/ 253 NASA open source software projects]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://smaky.ch/ Smaky], the swiss micro-computer series&lt;br /&gt;
|[http://infini.smaky.ch/sources.html Partial code dump]&lt;br /&gt;
|[mailto:arnaud@epsitec.ch Pierre Arnaud] (current CEO of Epsitec) and/or [mailto:jean-daniel.nicoud@epfl.ch Jean-Daniel Nicoud] (founder of the computer series]&lt;br /&gt;
|EN&lt;br /&gt;
|Probably manually&lt;br /&gt;
|No new updates&lt;br /&gt;
|Some references to this history: [http://www.memoires-informatiques.org/ Fondation Mémoires Informatiques], [http://smaky.ch/ Smaky.ch] (in particular, [http://smaky.ch/theme.php?id=lami the short history]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#Conservation_status_2 wikidata endangered software]&lt;br /&gt;
|depends on the &amp;quot;source code repository&amp;quot; property&lt;br /&gt;
|Loic Dachary &amp;lt;loic@dachary.org&amp;gt;&lt;br /&gt;
|The risk is higher than [https://www.wikidata.org/wiki/Property_talk:P141 LC]&lt;br /&gt;
|A script should obtain the &amp;quot;source code repository&amp;quot; property for the software and mirror it depending on the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#source_code_repository protocol] qualifier. If the &amp;quot;source code repository&amp;quot; is &amp;quot;no value&amp;quot;, the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#streaming_media_URL streaming media URL] of the &amp;quot;preferred&amp;quot; [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#software_version_.28P348.29 software version] should be downloaded instead.&lt;br /&gt;
|Once a copy is secured by software heritage, a URL to the software heritage repository should be added to the &amp;quot;source code repository&amp;quot; property and the &amp;quot;conservation status&amp;quot; property should be removed, meaning it is &amp;quot;least concerned&amp;quot; by default. The software will no longer show in the list of endangered software.&lt;br /&gt;
|This is work in progress, part of the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS wikidata FLOSS project] and the scripts do not exist yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|historical KDE repos&lt;br /&gt;
|CVS/SVN/Git&lt;br /&gt;
|KDE sysadmin team &amp;lt;sysadmin@kde.org&amp;gt;&lt;br /&gt;
|NT&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://java.net/projects Java.net] &amp;amp; [https://kenai.com/ Kenai.com]&lt;br /&gt;
|hg, git, svn&lt;br /&gt;
|communitymanager@java.net&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://community.oracle.com/community/java/javanet-forge-sunset Shutting down on April 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://fedorahosted.org/ fedorahosted.org]&lt;br /&gt;
|git, svn, hg, bzr&lt;br /&gt;
|[https://lists.fedoraproject.org/admin/lists/infrastructure@lists.fedoraproject.org infrastructure@lists.fedoraproject.org]&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://communityblog.fedoraproject.org/fedorahosted-sunset-2017-02-28/ Shutting down on Feb. 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.societe-informatique-de-france.fr/wp-content/uploads/2015/12/1024-no7-Baude.pdf Langage symbolique d'Enseignement (LSE)]&lt;br /&gt;
|archives&lt;br /&gt;
|Association Enseignement Public et Informatique (EPI) &amp;lt;bureau@epi.asso.fr&amp;gt;&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| + educational software (INRP-CNDP)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.netlib.org The Netlib collection of numerical software]&lt;br /&gt;
|structured website with links to archives&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|many of these libraries are mirrored in sources already collected in Software Heritage; there is sure value in the curation information.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://codebender.cc/ codebender]&lt;br /&gt;
|IOT and educationnal ressources&lt;br /&gt;
|&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|closing expected at Dec31st, 2016 upon this announce by founders https://codebender.cc/next-chapter&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://git.oschina.net/ OS China]&lt;br /&gt;
|Chinese GitHub equivalent&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|interesting test case for all the unicode tooling in Software Heritage&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Usenet source code archives&lt;br /&gt;
|NNTP&lt;br /&gt;
|&lt;br /&gt;
|NT&lt;br /&gt;
|crawl relevant newsgroup archives (e.g., at Google Groups), retrieve archives (possibly chunked), ingest&lt;br /&gt;
|one shot might be enough?&lt;br /&gt;
|suggestion by John Gilmore&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.x.org/releases/ X11/XOrg archives]&lt;br /&gt;
|http&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|one shot might be enough&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.curseforge.com/ Curse mods]&lt;br /&gt;
|Code distributed as versioned tarballs&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|The API should be sufficient, maybe some scraping will be required&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Archive]]&lt;br /&gt;
[[Category:Suggestions]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=737</id>
		<title>Suggestion box: source code to add</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Suggestion_box:_source_code_to_add&amp;diff=737"/>
		<updated>2017-11-28T14:07:58Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Suggestions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Archive]] is growing organically. We started &amp;quot;small&amp;quot;, tracking 3 '''software origins''' (GitHub + Debian + GNU), and we will be adding new origins bit by bit, depending on the urgency of archiving them and available development energies to integrate them into Software Heritage.&lt;br /&gt;
&lt;br /&gt;
Using this page you can add suggestions of software origins that we aren't following yet, but we should. You can include information about who to contact for technical collaboration, the urgency of archival, and other useful information. To that end, just add a row to the table below. Here some information about the meaning of the various columns.&lt;br /&gt;
&lt;br /&gt;
Entries are currently listed simply in order of addition to this page; we will add more structure when the list will start growing.&lt;br /&gt;
&lt;br /&gt;
=== Legend ===&lt;br /&gt;
&lt;br /&gt;
;Software origin&lt;br /&gt;
: any (public accessible) &amp;quot;place&amp;quot; on the Internet that host software in source code form. Please provide a title for it and hyperlink it to the relevant URL&lt;br /&gt;
;Type of origin&lt;br /&gt;
: information about the kind of hosting, e.g., whether it is a forge, a collection of repositories, an homepage publishing tarball, or a one shot source code repository. For all kind of repositories please specify which VCS system is in use (Git, SVN, CVS, etc.)&lt;br /&gt;
;Contact&lt;br /&gt;
: who to contact for technical collaboration on how to best archive source code hosted on the software origin. You can list yourself if you're the relevant person, or provide the most relevant contact point if you know it&lt;br /&gt;
;Conservation status&lt;br /&gt;
: information about how likely it is that the software origin will disappear; high likelihood will make it more urgent for us to archive software hosted there. We suggest to use the [https://en.wikipedia.org/wiki/Conservation_status species conservation status], i.e., one of: Critically endangered (CR), Endangered (EN), Vulnerable (VU), Near threatened (NT), Least concern (LC).&lt;br /&gt;
;How to mirror&lt;br /&gt;
: (pointers to) technical information on how to do a full mirror of ''all'' the source code available at the software origin, ideally one shot and in batch&lt;br /&gt;
;How to keep up&lt;br /&gt;
: (pointers to) technical information on how to incrementally retrieve new source code accumulated since the last visit; usually this should be based on some kind of incremental change feed or event API&lt;br /&gt;
;Notes&lt;br /&gt;
: anything else you think we should know about this software origin&lt;br /&gt;
;Forge task&lt;br /&gt;
: pointer to the task on our [[forge]] tracking the work needed to ingest the software origin&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Software origin&lt;br /&gt;
!Type of origin&lt;br /&gt;
!Contact&lt;br /&gt;
!Conservation status&lt;br /&gt;
!How to mirror&lt;br /&gt;
!How to keep up&lt;br /&gt;
!Notes&lt;br /&gt;
![https://forge.softwareheritage.org/ Forge] task&lt;br /&gt;
|-&lt;br /&gt;
|'''(sample entry)''' ''GitHubBub forge''&lt;br /&gt;
|''Git hosting''&lt;br /&gt;
|''John Doe &amp;lt;john@example.com&amp;gt;''&lt;br /&gt;
|''LC''&lt;br /&gt;
|''retrieve full repo list at /api/list, then git clone on each entry''&lt;br /&gt;
|''poll RSS feed at /api/updates?since=YYYY-MM-DD''&lt;br /&gt;
|''nothing special to add''&lt;br /&gt;
|''[https://forge.softwareheritage.org/T123456 T123456]''&lt;br /&gt;
|-&lt;br /&gt;
|[https://bitbucket.org/ Bitbucket]&lt;br /&gt;
|Git and hg/Mercurial hosting&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://forge.softwareheritage.org/T561 T561]&lt;br /&gt;
|-&lt;br /&gt;
|[https://sourceforge.net/ SourceForge]&lt;br /&gt;
|CVS, SVN, Mercurial, Git&lt;br /&gt;
|&lt;br /&gt;
|VU&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://wiki.debian.org/Derivatives/Census all Debian derivatives]&lt;br /&gt;
|Debian-based distros&lt;br /&gt;
|Paul Wise &amp;lt;pabs@debian.org&amp;gt;&lt;br /&gt;
|varying, depending on the distro&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|see [[Suggestion_box:_source_code_to_add/Debian_derivatives|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.gentoo.org/ Gentoo]&lt;br /&gt;
|&lt;br /&gt;
|Johannes Kellner &amp;lt;gentoo@johannes-kellner.eu&amp;gt;&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://pauillac.inria.fr/~huet/cea.html Gérard Huet's seminal work on 3D]&lt;br /&gt;
|Scanned source code&lt;br /&gt;
|Gérard Huet &amp;lt;gerard.huet@inria.fr&amp;gt;&lt;br /&gt;
|EN&lt;br /&gt;
|retrieve listing images from the web pages&lt;br /&gt;
|N/A&lt;br /&gt;
|links are half broken, yquem should be replaced with pauillac everywhere it appears&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.softwarepreservation.org/projects Software Preservation Project]&lt;br /&gt;
|Website with a collection of archives&lt;br /&gt;
|Paul McJones &amp;lt;paul@mcjones.org&amp;gt;&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://code.nasa.gov/ 253 NASA open source software projects]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://smaky.ch/ Smaky], the swiss micro-computer series&lt;br /&gt;
|[http://infini.smaky.ch/sources.html Partial code dump]&lt;br /&gt;
|[mailto:arnaud@epsitec.ch Pierre Arnaud] (current CEO of Epsitec) and/or [mailto:jean-daniel.nicoud@epfl.ch Jean-Daniel Nicoud] (founder of the computer series]&lt;br /&gt;
|EN&lt;br /&gt;
|Probably manually&lt;br /&gt;
|No new updates&lt;br /&gt;
|Some references to this history: [http://www.memoires-informatiques.org/ Fondation Mémoires Informatiques], [http://smaky.ch/ Smaky.ch] (in particular, [http://smaky.ch/theme.php?id=lami the short history]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#Conservation_status_2 wikidata endangered software]&lt;br /&gt;
|depends on the &amp;quot;source code repository&amp;quot; property&lt;br /&gt;
|Loic Dachary &amp;lt;loic@dachary.org&amp;gt;&lt;br /&gt;
|The risk is higher than [https://www.wikidata.org/wiki/Property_talk:P141 LC]&lt;br /&gt;
|A script should obtain the &amp;quot;source code repository&amp;quot; property for the software and mirror it depending on the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS#source_code_repository protocol] qualifier. If the &amp;quot;source code repository&amp;quot; is &amp;quot;no value&amp;quot;, the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#streaming_media_URL streaming media URL] of the &amp;quot;preferred&amp;quot; [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/Software#software_version_.28P348.29 software version] should be downloaded instead.&lt;br /&gt;
|Once a copy is secured by software heritage, a URL to the software heritage repository should be added to the &amp;quot;source code repository&amp;quot; property and the &amp;quot;conservation status&amp;quot; property should be removed, meaning it is &amp;quot;least concerned&amp;quot; by default. The software will no longer show in the list of endangered software.&lt;br /&gt;
|This is work in progress, part of the [https://www.wikidata.org/wiki/Wikidata:WikiProject_Informatics/FLOSS wikidata FLOSS project] and the scripts do not exist yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|historical KDE repos&lt;br /&gt;
|CVS/SVN/Git&lt;br /&gt;
|KDE sysadmin team &amp;lt;sysadmin@kde.org&amp;gt;&lt;br /&gt;
|NT&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|See [[Suggestion box: source code to add/KDE|details]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://java.net/projects Java.net] &amp;amp; [https://kenai.com/ Kenai.com]&lt;br /&gt;
|hg, git, svn&lt;br /&gt;
|communitymanager@java.net&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://community.oracle.com/community/java/javanet-forge-sunset Shutting down on April 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://fedorahosted.org/ fedorahosted.org]&lt;br /&gt;
|git, svn, hg, bzr&lt;br /&gt;
|[https://lists.fedoraproject.org/admin/lists/infrastructure@lists.fedoraproject.org infrastructure@lists.fedoraproject.org]&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|[https://communityblog.fedoraproject.org/fedorahosted-sunset-2017-02-28/ Shutting down on Feb. 28, 2017]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.societe-informatique-de-france.fr/wp-content/uploads/2015/12/1024-no7-Baude.pdf Langage symbolique d'Enseignement (LSE)]&lt;br /&gt;
|archives&lt;br /&gt;
|Association Enseignement Public et Informatique (EPI) &amp;lt;bureau@epi.asso.fr&amp;gt;&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| + educational software (INRP-CNDP)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.netlib.org The Netlib collection of numerical software]&lt;br /&gt;
|structured website with links to archives&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|many of these libraries are mirrored in sources already collected in Software Heritage; there is sure value in the curation information.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://codebender.cc/ codebender]&lt;br /&gt;
|IOT and educationnal ressources&lt;br /&gt;
|&lt;br /&gt;
|CR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|closing expected at Dec31st, 2016 upon this announce by founders https://codebender.cc/next-chapter&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://git.oschina.net/ OS China]&lt;br /&gt;
|Chinese GitHub equivalent&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|interesting test case for all the unicode tooling in Software Heritage&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Usenet source code archives&lt;br /&gt;
|NNTP&lt;br /&gt;
|&lt;br /&gt;
|NT&lt;br /&gt;
|crawl relevant newsgroup archives (e.g., at Google Groups), retrieve archives (possibly chunked), ingest&lt;br /&gt;
|one shot might be enough?&lt;br /&gt;
|suggestion by John Gilmore&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.x.org/releases/ X11/XOrg archives]&lt;br /&gt;
|http&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|&lt;br /&gt;
|one shot might be enough&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.curseforge.com/ Curse mods]&lt;br /&gt;
|Code distributed as versioned tarballs&lt;br /&gt;
|&lt;br /&gt;
|''NT''&lt;br /&gt;
|''retrieve full repo list at /api/list, then git clone on each entry''&lt;br /&gt;
|''poll RSS feed at /api/updates?since=YYYY-MM-DD''&lt;br /&gt;
|''nothing special to add''&lt;br /&gt;
|''[https://forge.softwareheritage.org/T123456 T123456]''&lt;br /&gt;
|-&lt;br /&gt;
|[https://bitbucket.org/ Bitbucket]&lt;br /&gt;
|Git and hg/Mercurial hosting&lt;br /&gt;
|&lt;br /&gt;
|LC&lt;br /&gt;
|The API should be sufficient, maybe some scraping will be required&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Archive]]&lt;br /&gt;
[[Category:Suggestions]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=680</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=680"/>
		<updated>2017-09-05T13:40:02Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IRC channels ==&lt;br /&gt;
&lt;br /&gt;
The following channels have been registered on the [https://freenode.net/ Freenode] network for [[Software Heritage]] usage.&lt;br /&gt;
&lt;br /&gt;
* '''#softwareheritage''': general discussions about the project (currently unused)&lt;br /&gt;
* '''#swh''': ditto, in case we end up preferring the short version&lt;br /&gt;
* '''#swh-devel''': public development discussions&lt;br /&gt;
* '''#swh-team''': private discussions of the core team&lt;br /&gt;
* '''#swh-sysadm''': private discussions of the sysadm/operations team&lt;br /&gt;
&lt;br /&gt;
If you do IRC, consider joining the channels.&lt;br /&gt;
&lt;br /&gt;
== IRC authentication ==&lt;br /&gt;
&lt;br /&gt;
You should register their nick with NickServ using:&lt;br /&gt;
&lt;br /&gt;
 /nick &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
 /msg nickserv register &amp;lt;PASSWORD&amp;gt; &amp;lt;EMAIL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will then receive an e-mail containing a link to activate you account. After doing so, you need to configure your client to auto-authenticate. The recommanded way of doing that is using [https://freenode.net/kb/answer/sasl SASL authentication].&lt;br /&gt;
&lt;br /&gt;
For Weechat:&lt;br /&gt;
&lt;br /&gt;
 /set irc.server.freenode.sasl_username &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
 /set irc.server.freenode.sasl_password &amp;lt;PASSWORD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IRC access list ==&lt;br /&gt;
&lt;br /&gt;
To auto-voice people with a registered nick (only doable by people with +fA access modes will be able to do it), add them to the channel access list:&lt;br /&gt;
&lt;br /&gt;
 /msg chanserv access #swh-devel add zack +V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=679</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=679"/>
		<updated>2017-09-05T13:39:08Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IRC channels ==&lt;br /&gt;
&lt;br /&gt;
The following channels have been registered on the [https://freenode.net/ Freenode] network for [[Software Heritage]] usage.&lt;br /&gt;
&lt;br /&gt;
* '''#softwareheritage''': general discussions about the project (currently unused)&lt;br /&gt;
* '''#swh''': ditto, in case we end up preferring the short version&lt;br /&gt;
* '''#swh-devel''': public development discussions&lt;br /&gt;
* '''#swh-team''': private discussions of the core team&lt;br /&gt;
* '''#swh-sysadm''': private discussions of the sysadm/operations team&lt;br /&gt;
&lt;br /&gt;
If you do IRC, consider joining the channels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IRC authentication ==&lt;br /&gt;
&lt;br /&gt;
You should register their nick with NickServ using:&lt;br /&gt;
&lt;br /&gt;
 /nick &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
 /msg nickserv register &amp;lt;PASSWORD&amp;gt; &amp;lt;EMAIL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will then receive an e-mail containing a link to activate you account. After doing so, you need to configure your client to auto-authenticate. The recommanded way of doing that is using [https://freenode.net/kb/answer/sasl SASL authentication].&lt;br /&gt;
&lt;br /&gt;
For Weechat:&lt;br /&gt;
&lt;br /&gt;
 /set irc.server.freenode.sasl_username &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
 /set irc.server.freenode.sasl_password &amp;lt;PASSWORD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IRC access list ==&lt;br /&gt;
&lt;br /&gt;
To auto-voice people with a registered nick (only doable by people with +fA access modes will be able to do it), add them to the channel access list:&lt;br /&gt;
&lt;br /&gt;
 /msg chanserv access #swh-devel add zack +V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=678</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=678"/>
		<updated>2017-09-05T13:39:01Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IRC channels ==&lt;br /&gt;
&lt;br /&gt;
The following channels have been registered on the [https://freenode.net/ Freenode] network for [[Software Heritage]] usage.&lt;br /&gt;
&lt;br /&gt;
* '''#softwareheritage''': general discussions about the project (currently unused)&lt;br /&gt;
* '''#swh''': ditto, in case we end up preferring the short version&lt;br /&gt;
* '''#swh-devel''': public development discussions&lt;br /&gt;
* '''#swh-team''': private discussions of the core team&lt;br /&gt;
* '''#swh-sysadm''': private discussions of the sysadm/operations team&lt;br /&gt;
&lt;br /&gt;
If you do IRC, consider joining the channels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IRC authentication ==&lt;br /&gt;
&lt;br /&gt;
You should register their nick with NickServ using:&lt;br /&gt;
&lt;br /&gt;
 /nick &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
 /msg nickserv register &amp;lt;PASSWORD&amp;gt; &amp;lt;EMAIL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will then receive an e-mail containing a link to activate you account. After doing so, you need to configure your client to auto-authenticate. The recommanded way of doing that is using [https://freenode.net/kb/answer/sasl SASL authentication].&lt;br /&gt;
&lt;br /&gt;
For Weechat:&lt;br /&gt;
&lt;br /&gt;
 /set irc.server.freenode.sasl_username &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
 /set irc.server.freenode.sasl_password &amp;lt;PASSWORD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IRC access list ==&lt;br /&gt;
&lt;br /&gt;
To auto-voice people with a registered nick (only doable by people with +fA access modes will be able to do it), add them to the channel access list:&lt;br /&gt;
&lt;br /&gt;
 /msg chanserv access #swh-devel add zack +V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=677</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=677"/>
		<updated>2017-09-05T13:37:47Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== IRC channels ==&lt;br /&gt;
&lt;br /&gt;
The following channels have been registered on the [https://freenode.net/ Freenode] network for [[Software Heritage]] usage.&lt;br /&gt;
&lt;br /&gt;
* '''#softwareheritage''': general discussions about the project (currently unused)&lt;br /&gt;
* '''#swh''': ditto, in case we end up preferring the short version&lt;br /&gt;
* '''#swh-devel''': public development discussions&lt;br /&gt;
* '''#swh-team''': private discussions of the core team&lt;br /&gt;
* '''#swh-sysadm''': private discussions of the sysadm/operations team&lt;br /&gt;
&lt;br /&gt;
If you do IRC, consider joining the channels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IRC authentication ==&lt;br /&gt;
&lt;br /&gt;
You should register their nick with NickServ using:&lt;br /&gt;
&lt;br /&gt;
    /nick &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
    /msg nickserv register &amp;lt;PASSWORD&amp;gt; &amp;lt;EMAIL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will then receive an e-mail containing a link to activate you account. After doing so, you need to configure your client to auto-authenticate. The recommanded way of doing that is using [https://freenode.net/kb/answer/sasl SASL authentication].&lt;br /&gt;
&lt;br /&gt;
For Weechat:&lt;br /&gt;
&lt;br /&gt;
    /set irc.server.freenode.sasl_username &amp;lt;USERNAME&amp;gt;&lt;br /&gt;
    /set irc.server.freenode.sasl_password &amp;lt;PASSWORD&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IRC access list ==&lt;br /&gt;
&lt;br /&gt;
To auto-voice people with a registered nick (only doable by people with +fA access modes will be able to do it), add them to the channel access list:&lt;br /&gt;
&lt;br /&gt;
    /msg chanserv access #swh-devel add zack +V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=676</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=676"/>
		<updated>2017-09-05T13:31:27Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== IRC channels ==&lt;br /&gt;
&lt;br /&gt;
The following channels have been registered on the [https://freenode.net/ Freenode] network for [[Software Heritage]] usage.&lt;br /&gt;
&lt;br /&gt;
* '''#softwareheritage''': general discussions about the project (currently unused)&lt;br /&gt;
* '''#swh''': ditto, in case we end up preferring the short version&lt;br /&gt;
* '''#swh-devel''': public development discussions&lt;br /&gt;
* '''#swh-team''': private discussions of the core team&lt;br /&gt;
* '''#swh-sysadm''': private discussions of the sysadm/operations team&lt;br /&gt;
&lt;br /&gt;
If you do IRC, consider joining the channels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=675</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=675"/>
		<updated>2017-09-05T13:31:17Z</updated>

		<summary type="html">&lt;p&gt;Seirl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# IRC channels&lt;br /&gt;
&lt;br /&gt;
The following channels have been registered on the [https://freenode.net/ Freenode] network for [[Software Heritage]] usage.&lt;br /&gt;
&lt;br /&gt;
* '''#softwareheritage''': general discussions about the project (currently unused)&lt;br /&gt;
* '''#swh''': ditto, in case we end up preferring the short version&lt;br /&gt;
* '''#swh-devel''': public development discussions&lt;br /&gt;
* '''#swh-team''': private discussions of the core team&lt;br /&gt;
* '''#swh-sysadm''': private discussions of the sysadm/operations team&lt;br /&gt;
&lt;br /&gt;
If you do IRC, consider joining the channels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=IRC_channels&amp;diff=674</id>
		<title>IRC channels</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=IRC_channels&amp;diff=674"/>
		<updated>2017-09-05T13:31:03Z</updated>

		<summary type="html">&lt;p&gt;Seirl: Seirl moved page IRC channels to IRC: More general information about IRC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[IRC]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=673</id>
		<title>Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Matrix&amp;diff=673"/>
		<updated>2017-09-05T13:31:02Z</updated>

		<summary type="html">&lt;p&gt;Seirl: Seirl moved page IRC channels to IRC: More general information about IRC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following channels have been registered on the [https://freenode.net/ Freenode] network for [[Software Heritage]] usage.&lt;br /&gt;
&lt;br /&gt;
* '''#softwareheritage''': general discussions about the project (currently unused)&lt;br /&gt;
* '''#swh''': ditto, in case we end up preferring the short version&lt;br /&gt;
* '''#swh-devel''': public development discussions&lt;br /&gt;
* '''#swh-team''': private discussions of the core team&lt;br /&gt;
* '''#swh-sysadm''': private discussions of the sysadm/operations team&lt;br /&gt;
&lt;br /&gt;
If you do IRC, consider joining the channels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=625</id>
		<title>Debian packaging</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Debian_packaging&amp;diff=625"/>
		<updated>2017-02-09T10:20:57Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Backport on jessie chroot (optional) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Creating a package for deployment ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;swh-environment&amp;lt;/tt&amp;gt; contains a script, &amp;lt;tt&amp;gt;bin/make-package&amp;lt;/tt&amp;gt;, which generates a Debian package from a given Git repository, and uploads it to our internal repository targeting suites unstable and jessie-backports.&lt;br /&gt;
&lt;br /&gt;
This assumes that the '''current''' (''HEAD'') revision has been tagged with a version '''v&amp;lt;foo&amp;gt;''' (e.g. v0.0.4), and that the repository contains the debian metadata. (i.e. &amp;lt;tt&amp;gt;debian/{copyright,control,changelog.rules,source/format,compat}&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  $ git tag -as -m 'version 0.0.42' v0.0.42&lt;br /&gt;
  $ bin/make-package -b -u swh-core&lt;br /&gt;
&lt;br /&gt;
== Package repository ==&lt;br /&gt;
&lt;br /&gt;
A package repository is available on http://debian.internal.softwareheritage.org/.&lt;br /&gt;
&lt;br /&gt;
Unstable / Testing :&lt;br /&gt;
  deb [trusted=yes] http://debian.internal.softwareheritage.org/ unstable main&lt;br /&gt;
&lt;br /&gt;
Stable / Jessie :&lt;br /&gt;
  deb [trusted=yes] http://debian.internal.softwareheritage.org/ jessie main&lt;br /&gt;
&lt;br /&gt;
This package repository is handled via reprepro on pergamon.internal.softwareheritage.org (base directory : /srv/softwareheritage/repository).&lt;br /&gt;
&lt;br /&gt;
=== Uploading packages ===&lt;br /&gt;
&lt;br /&gt;
Packages are added to the repository using &amp;lt;tt&amp;gt;reprepro -vb /srv/softwareheritage/repository processincoming incoming&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For packages to be accepted, they need to be :&lt;br /&gt;
# A changes file uploaded to &amp;lt;tt&amp;gt;/srv/softwareheritage/repository/incoming&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Targetted at one of the supported distributions (unstable, unstable-swh, jessie, jessie-backports, jessie-backports-swh)&lt;br /&gt;
# Signed by one of the keys listed in /srv/softwareheritage/repository/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
== Build Environment setup ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;bin/make-package.sh&amp;lt;/tt&amp;gt; uses sbuild for package construction. You therefore need to setup sbuild before being able to use it.&lt;br /&gt;
&lt;br /&gt;
=== sbuild setup ===&lt;br /&gt;
&lt;br /&gt;
 # Install the package&lt;br /&gt;
 sudo apt-get install sbuild&lt;br /&gt;
 &lt;br /&gt;
 # Add your user to the sbuild group, to allow him to use the sbuild commands&lt;br /&gt;
 sudo sbuild-adduser $USER&lt;br /&gt;
 # You have to logout and log back in&lt;br /&gt;
 &lt;br /&gt;
 # Prepare chroots&lt;br /&gt;
 sudo mkdir /srv/chroots&lt;br /&gt;
 sudo mkdir /srv/chroots/var&lt;br /&gt;
 &lt;br /&gt;
 # Optionally create a separate filesystem for /srv/chroots and move the sbuild/schroot data to that partition&lt;br /&gt;
 sudo rsync -avz --delete /var/lib/schroot/ /srv/chroots/var/schroot/&lt;br /&gt;
 sudo rm -r /var/lib/schroot&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/schroot /var/lib/schroot&lt;br /&gt;
 &lt;br /&gt;
 sudo rsync -avz --delete /var/lib/sbuild/ /srv/chroots/var/sbuild/&lt;br /&gt;
 sudo rm -r /var/lib/sbuild&lt;br /&gt;
 sudo ln -sf /srv/chroots/var/sbuild /var/lib/sbuild&lt;br /&gt;
 # end optionally&lt;br /&gt;
 &lt;br /&gt;
 # Create unstable/sid chroot&lt;br /&gt;
 sudo sbuild-createchroot sid /srv/chroots/sid http://httpredir.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 # Create jessie chroot&lt;br /&gt;
 sudo sbuild-createchroot jessie /srv/chroots/jessie http://httpredir.debian.org/debian/&lt;br /&gt;
 &lt;br /&gt;
 # Create sbuild autosign gpg key (!! needs entropy, consider installing haveged and not worrying about it again)&lt;br /&gt;
 sudo sbuild-update --keygen&lt;br /&gt;
 &lt;br /&gt;
 # If you use /etc/hosts to resolve *.internal.softwareheritage.org hosts&lt;br /&gt;
 echo hosts &amp;gt;&amp;gt; /etc/schroot/sbuild/nssdatabases&lt;br /&gt;
&lt;br /&gt;
=== schroot setup ===&lt;br /&gt;
&lt;br /&gt;
Now that the sbuild base setup is done. You now need to configure schroot to use an overlay filesystem, which will avoid copying the chroots at each build.&lt;br /&gt;
&lt;br /&gt;
In recent (&amp;gt;= 1.6) versions of schroot, you need to update the configuration (in &amp;lt;tt&amp;gt;/etc/schroot/chroot.d/*-sbuild-*&amp;lt;/tt&amp;gt;) with the following directives:&lt;br /&gt;
&lt;br /&gt;
 source-groups=root,sbuild&lt;br /&gt;
 source-root-groups=root,sbuild&lt;br /&gt;
 union-type=overlay&lt;br /&gt;
&lt;br /&gt;
You should also use this opportunity to add &amp;quot;aliases&amp;quot; to your chroot, so that sbuild will directly support the distributions we're using (unstable-swh, jessie-backports-swh):&lt;br /&gt;
&lt;br /&gt;
For unstable:&lt;br /&gt;
 aliases=unstable-amd64-sbuild,UNRELEASED-amd64-sbuild,unstable-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
For jessie:&lt;br /&gt;
 aliases=stable-amd64-sbuild,stable-backports-amd64-sbuild,jessie-backports-amd64-sbuild,jessie-backports-swh-amd64-sbuild&lt;br /&gt;
&lt;br /&gt;
==== dependencies cache ====&lt;br /&gt;
&lt;br /&gt;
Add the following line to schroot's fstab /etc/schroot/sbuild/fstab&lt;br /&gt;
to permit reuse of existing fetched dependencies:&lt;br /&gt;
&lt;br /&gt;
    /var/cache/apt/archives /var/cache/apt/archives none rw,bind 0 0&lt;br /&gt;
&lt;br /&gt;
==== Backport on jessie chroot (optional) ====&lt;br /&gt;
&lt;br /&gt;
Some repository may need backport packages in their dependencies.&lt;br /&gt;
&lt;br /&gt;
To open the backports in your jessie chroot, add the file /srv/chroots/jessie/etc/apt/sources.list.d/jessie-backports.list with the following content:&lt;br /&gt;
    deb http://ftp.debian.org/debian jessie-backports main&lt;br /&gt;
&lt;br /&gt;
If your chroot folder is different, check your chroot setup in /etc/schroot/chroot.d/jessie-amd64-sbuild-something (ymmv):&lt;br /&gt;
    grep 'directory=' /etc/schroot/chroot.d/*sbuild* | cut -f2 -d'='&lt;br /&gt;
&lt;br /&gt;
=== environment setup ===&lt;br /&gt;
&lt;br /&gt;
The Debian tools use a few variables to preset your name and email. Add this to your &amp;lt;tt&amp;gt;.&amp;lt;shell&amp;gt;rc&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 export DEBFULLNAME=&amp;quot;Debra Hacker&amp;quot;&lt;br /&gt;
 export DEBEMAIL=debra.hacker@example.com&lt;br /&gt;
&lt;br /&gt;
Make sure this data matches an uid for your GPG key. Else, you can use the &amp;lt;tt&amp;gt;DEBSIGN_KEYID=&amp;lt;yourkeyid&amp;gt;&amp;lt;/tt&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software development]]&lt;br /&gt;
[[Category:System administration]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Code_review_in_Phabricator&amp;diff=622</id>
		<title>Code review in Phabricator</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Code_review_in_Phabricator&amp;diff=622"/>
		<updated>2017-02-06T17:52:04Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Landing your change onto master */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We use the [[Differential]] application of [[Phabricator]] to do code reviews in the context of [[Software Heritage]].&lt;br /&gt;
&lt;br /&gt;
* we use Git and history.immutable=true (but beware as that is partly a Phabricator misnomer, read on)&lt;br /&gt;
* when code reviews are required, developers will be allowed to push directly to master once an accepted Differential diff exists&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
&lt;br /&gt;
When using git, [[Arcanist]] by default mess with the local history, rewriting commits at the time of first submission.&amp;lt;br /&amp;gt;&lt;br /&gt;
To avoid that we use so called [https://secure.phabricator.com/book/phabricator/article/arcanist_new_project/#history-mutability-git history immutability].&lt;br /&gt;
&lt;br /&gt;
To that end, you shall configure your &amp;lt;tt&amp;gt;arc&amp;lt;/tt&amp;gt; accordingly:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arc set-config history.immutable true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this does ''not'' mean that you are forbidden to rewrite your local branches (e.g., with &amp;lt;tt&amp;gt;git rebase&amp;lt;/tt&amp;gt;).&lt;br /&gt;
Quite the contrary: you are encouraged to locally rewrite branches before pushing to ensure that commits are logically separated and your commit history easy to bisect.&lt;br /&gt;
The above setting just means that ''arc'' will not rewrite commit history under your nose.&lt;br /&gt;
&lt;br /&gt;
= Workflow =&lt;br /&gt;
&lt;br /&gt;
'''TL;DR:'''&lt;br /&gt;
* work in a feature branch: &amp;lt;tt&amp;gt;git checkout -b my-feat&amp;lt;/tt&amp;gt;&lt;br /&gt;
* initial review request: hack/commit/hack/commit ; &amp;lt;tt&amp;gt;arc diff origin/master&amp;lt;/tt&amp;gt;&lt;br /&gt;
* react to change requests: hack/commit/hack/commit ; &amp;lt;tt&amp;gt;arc diff --update Dxx origin/master&amp;lt;/tt&amp;gt;&lt;br /&gt;
* landing change: &amp;lt;tt&amp;gt;git checkout master ; git merge my-feat ; git push&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Starting a new feature and submit it for review ==&lt;br /&gt;
&lt;br /&gt;
Use a '''one branch per feature''' workflow, with well-separated ''logical commits'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -b my-shiny-feature&lt;br /&gt;
... hack hack hack ...&lt;br /&gt;
git commit -m 'architecture skeleton for my-shiny-feature'&lt;br /&gt;
... hack hack hack ...&lt;br /&gt;
git commit -m 'my-shiny-feature: implement module foo'&lt;br /&gt;
... etc ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To '''submit your code for review''' the first time:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arc diff origin/master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
arc will prompt for a '''code review message'''. Provide the following information:&lt;br /&gt;
* first line: ''short description'' of the overall work (i.e., the feature you're working on). This will become the title of the review&lt;br /&gt;
* ''Summary'' field (optional): ''long description'' of the overall work; the field can continue in subsequent lines, up to the next field. This will become the &amp;quot;Summary&amp;quot; section of the review&lt;br /&gt;
* ''Test Plan'' field (optional): write here if something special is needed to test your change&lt;br /&gt;
* ''Reviewers'' field (optional): the (Phabricator) name(s) of desired reviewers. If you don't specify one (recommended) the default reviewers will be chosen&lt;br /&gt;
* ''Subscribers'' field (optional): the (Phabricator) name(s) of people that will be notified about changes to this review request. In most cases it should be left empty&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mercurial loader&lt;br /&gt;
&lt;br /&gt;
Summary: first stab at a mercurial loader (T329)&lt;br /&gt;
&lt;br /&gt;
The implementation follows the plan detailed in F2F discussion with @foo.&lt;br /&gt;
&lt;br /&gt;
Performances seem decent enough for a first trial (XXX seconds for YYY repository&lt;br /&gt;
that contains ZZZ patches).&lt;br /&gt;
&lt;br /&gt;
Test plan: &lt;br /&gt;
&lt;br /&gt;
Reviewers: &lt;br /&gt;
&lt;br /&gt;
Subscribers: foo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After completing the message arc will submit the review request and tell you its number and URL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
Created a new Differential revision:&lt;br /&gt;
        Revision URI: https://forge.softwareheritage.org/Dxx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating your branch to reflect requested changes ==&lt;br /&gt;
&lt;br /&gt;
Your feature might get accepted as is, YAY!&lt;br /&gt;
Or, reviewers might request changes; no big deal!&lt;br /&gt;
&lt;br /&gt;
Use the Differential web UI to follow-up to received comments, if needed.&lt;br /&gt;
&lt;br /&gt;
To implement requested changes in the code, hack on your branch as usual by:&lt;br /&gt;
&lt;br /&gt;
* adding new commits, and/or&lt;br /&gt;
* rewriting old commits with git rebase (to preserve a nice, easy to bisect history)&lt;br /&gt;
&lt;br /&gt;
When you're ready to '''update your review request''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arc diff --update Dxx origin/master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arc will prompt you for a message: describe what you've changed w.r.t. the previous review request, free form.&lt;br /&gt;
Your message will become the changelog entry in Differential for this new version of the diff.&lt;br /&gt;
&lt;br /&gt;
Differential only care about the code diff, and not about the commits or their order.&lt;br /&gt;
Therefore each &amp;quot;update&amp;quot; can be a completely different series of commits, possibly rewritten from the previous submission.&lt;br /&gt;
&lt;br /&gt;
== Landing your change onto master ==&lt;br /&gt;
&lt;br /&gt;
Once your change has been approved in Differential, you will be able to land it onto the master branch.&lt;br /&gt;
&lt;br /&gt;
Before doing so, you're encouraged to '''clean up your git commit history''', reordering/splitting/merging commits as needed to have separate logical commits and an easy to bisect history.&lt;br /&gt;
The correspondence between the accepted review and pushed code is checked by looking only at the code diff, so commit fiddling will not impact your ability to push to master.&lt;br /&gt;
&lt;br /&gt;
Once you're happy you can '''push to origin/master''' directly, e.g.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout master&lt;br /&gt;
git merge my-shiny-feature&lt;br /&gt;
git push&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionally you can then delete your local feature branch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git branch -d my-shiny-feature&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software development]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Code_review_in_Phabricator&amp;diff=621</id>
		<title>Code review in Phabricator</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=Code_review_in_Phabricator&amp;diff=621"/>
		<updated>2017-02-06T17:51:46Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Landing your change onto master */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We use the [[Differential]] application of [[Phabricator]] to do code reviews in the context of [[Software Heritage]].&lt;br /&gt;
&lt;br /&gt;
* we use Git and history.immutable=true (but beware as that is partly a Phabricator misnomer, read on)&lt;br /&gt;
* when code reviews are required, developers will be allowed to push directly to master once an accepted Differential diff exists&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
&lt;br /&gt;
When using git, [[Arcanist]] by default mess with the local history, rewriting commits at the time of first submission.&amp;lt;br /&amp;gt;&lt;br /&gt;
To avoid that we use so called [https://secure.phabricator.com/book/phabricator/article/arcanist_new_project/#history-mutability-git history immutability].&lt;br /&gt;
&lt;br /&gt;
To that end, you shall configure your &amp;lt;tt&amp;gt;arc&amp;lt;/tt&amp;gt; accordingly:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arc set-config history.immutable true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this does ''not'' mean that you are forbidden to rewrite your local branches (e.g., with &amp;lt;tt&amp;gt;git rebase&amp;lt;/tt&amp;gt;).&lt;br /&gt;
Quite the contrary: you are encouraged to locally rewrite branches before pushing to ensure that commits are logically separated and your commit history easy to bisect.&lt;br /&gt;
The above setting just means that ''arc'' will not rewrite commit history under your nose.&lt;br /&gt;
&lt;br /&gt;
= Workflow =&lt;br /&gt;
&lt;br /&gt;
'''TL;DR:'''&lt;br /&gt;
* work in a feature branch: &amp;lt;tt&amp;gt;git checkout -b my-feat&amp;lt;/tt&amp;gt;&lt;br /&gt;
* initial review request: hack/commit/hack/commit ; &amp;lt;tt&amp;gt;arc diff origin/master&amp;lt;/tt&amp;gt;&lt;br /&gt;
* react to change requests: hack/commit/hack/commit ; &amp;lt;tt&amp;gt;arc diff --update Dxx origin/master&amp;lt;/tt&amp;gt;&lt;br /&gt;
* landing change: &amp;lt;tt&amp;gt;git checkout master ; git merge my-feat ; git push&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Starting a new feature and submit it for review ==&lt;br /&gt;
&lt;br /&gt;
Use a '''one branch per feature''' workflow, with well-separated ''logical commits'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -b my-shiny-feature&lt;br /&gt;
... hack hack hack ...&lt;br /&gt;
git commit -m 'architecture skeleton for my-shiny-feature'&lt;br /&gt;
... hack hack hack ...&lt;br /&gt;
git commit -m 'my-shiny-feature: implement module foo'&lt;br /&gt;
... etc ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To '''submit your code for review''' the first time:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arc diff origin/master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
arc will prompt for a '''code review message'''. Provide the following information:&lt;br /&gt;
* first line: ''short description'' of the overall work (i.e., the feature you're working on). This will become the title of the review&lt;br /&gt;
* ''Summary'' field (optional): ''long description'' of the overall work; the field can continue in subsequent lines, up to the next field. This will become the &amp;quot;Summary&amp;quot; section of the review&lt;br /&gt;
* ''Test Plan'' field (optional): write here if something special is needed to test your change&lt;br /&gt;
* ''Reviewers'' field (optional): the (Phabricator) name(s) of desired reviewers. If you don't specify one (recommended) the default reviewers will be chosen&lt;br /&gt;
* ''Subscribers'' field (optional): the (Phabricator) name(s) of people that will be notified about changes to this review request. In most cases it should be left empty&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mercurial loader&lt;br /&gt;
&lt;br /&gt;
Summary: first stab at a mercurial loader (T329)&lt;br /&gt;
&lt;br /&gt;
The implementation follows the plan detailed in F2F discussion with @foo.&lt;br /&gt;
&lt;br /&gt;
Performances seem decent enough for a first trial (XXX seconds for YYY repository&lt;br /&gt;
that contains ZZZ patches).&lt;br /&gt;
&lt;br /&gt;
Test plan: &lt;br /&gt;
&lt;br /&gt;
Reviewers: &lt;br /&gt;
&lt;br /&gt;
Subscribers: foo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After completing the message arc will submit the review request and tell you its number and URL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
Created a new Differential revision:&lt;br /&gt;
        Revision URI: https://forge.softwareheritage.org/Dxx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating your branch to reflect requested changes ==&lt;br /&gt;
&lt;br /&gt;
Your feature might get accepted as is, YAY!&lt;br /&gt;
Or, reviewers might request changes; no big deal!&lt;br /&gt;
&lt;br /&gt;
Use the Differential web UI to follow-up to received comments, if needed.&lt;br /&gt;
&lt;br /&gt;
To implement requested changes in the code, hack on your branch as usual by:&lt;br /&gt;
&lt;br /&gt;
* adding new commits, and/or&lt;br /&gt;
* rewriting old commits with git rebase (to preserve a nice, easy to bisect history)&lt;br /&gt;
&lt;br /&gt;
When you're ready to '''update your review request''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arc diff --update Dxx origin/master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arc will prompt you for a message: describe what you've changed w.r.t. the previous review request, free form.&lt;br /&gt;
Your message will become the changelog entry in Differential for this new version of the diff.&lt;br /&gt;
&lt;br /&gt;
Differential only care about the code diff, and not about the commits or their order.&lt;br /&gt;
Therefore each &amp;quot;update&amp;quot; can be a completely different series of commits, possibly rewritten from the previous submission.&lt;br /&gt;
&lt;br /&gt;
== Landing your change onto master ==&lt;br /&gt;
&lt;br /&gt;
Once your change has been approved in Differential, you will be able to land it onto the master branch.&lt;br /&gt;
&lt;br /&gt;
Before doing so, you're encouraged to '''clean up your git commit history''', reordering/splitting/merging commits as needed to have separate logical commits and an easy to bisect history.&lt;br /&gt;
The correspondence between the accepted review and pushed code is checked by looking only at the code diff, so commit fiddling will not impact your ability to push to master.&lt;br /&gt;
&lt;br /&gt;
Once you're happy you can '''push to origin/master''' directly, e.g.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout master&lt;br /&gt;
git merge my-shiny-feature&lt;br /&gt;
git push&lt;br /&gt;
&lt;br /&gt;
# Optionally you can then delete your local feature branch&lt;br /&gt;
git branch -d my-shiny-feature&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software development]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=VPN&amp;diff=1306</id>
		<title>VPN</title>
		<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/index.php?title=VPN&amp;diff=1306"/>
		<updated>2017-02-06T15:09:01Z</updated>

		<summary type="html">&lt;p&gt;Seirl: /* Network Manager GUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Software Heritage]] server and the VMs running on it are severely firewalled.&lt;br /&gt;
To get onto their network unrestricted, a VPN based on [https://openvpn.net/ OpenVPN] is available.&lt;br /&gt;
&lt;br /&gt;
The setup is client-server, with per-client certificates.&lt;br /&gt;
&lt;br /&gt;
== OpenVPN client configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Raw OpenVPN ===&lt;br /&gt;
&lt;br /&gt;
Sample configuration file, e.g., /etc/openvpn/softwareheritage.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
remote louvre.softwareheritage.org&lt;br /&gt;
ns-cert-type server &lt;br /&gt;
comp-lzo &lt;br /&gt;
nobind&lt;br /&gt;
dev tun&lt;br /&gt;
proto udp &lt;br /&gt;
port 1194 &lt;br /&gt;
log /var/log/openvpn.log&lt;br /&gt;
up-restart &lt;br /&gt;
persist-key &lt;br /&gt;
persist-tun &lt;br /&gt;
client &lt;br /&gt;
ca /etc/openvpn/keys/softwareheritage-ca.crt&lt;br /&gt;
cert /etc/openvpn/keys/softwareheritage.crt&lt;br /&gt;
key /etc/openvpn/keys/softwareheritage.key&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
# If you are using resolvconf, add this:&lt;br /&gt;
# Make sure you add louvre to /etc/hosts to avoid issues in using the vpn-provided DNS server.&lt;br /&gt;
script-security 2&lt;br /&gt;
up /etc/openvpn/update-resolv-conf&lt;br /&gt;
down /etc/openvpn/update-resolv-conf&lt;br /&gt;
&lt;br /&gt;
# If you want the connection to persist when your network fails, add this:&lt;br /&gt;
ping-restart 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition to the above configuration file, you will need to install the following 3 files under /etc/openvpn/keys:&lt;br /&gt;
&lt;br /&gt;
* '''[[softwareheritage-ca.crt]]''': ''public'' certificate for the Software Heritage certification authority (CA)&lt;br /&gt;
* '''softwareheritage.crt''': ''public'', client-specific certificate (see below)&lt;br /&gt;
* '''softwareheritage.key''': ''private'', client-specific key (see below)&lt;br /&gt;
&lt;br /&gt;
=== Network Manager GUI ===&lt;br /&gt;
&lt;br /&gt;
You need network-manager-openvpn and network-manager-openvpn-gnome for the configuration gui.&lt;br /&gt;
&lt;br /&gt;
[[File:nm_openvpn_base.png]]&lt;br /&gt;
[[File:nm_openvpn_routes.png]]&lt;br /&gt;
[[File:nm_openvpn_advanced_general.png]]&lt;br /&gt;
[[File:nm_openvpn_advanced_security.png]]&lt;br /&gt;
[[File:nm_openvpn_advanced_tls_auth.png]]&lt;br /&gt;
&lt;br /&gt;
== Obtaining a client certificate ==&lt;br /&gt;
&lt;br /&gt;
=== For users ===&lt;br /&gt;
&lt;br /&gt;
Ask an admin to produce a pair of client-specific certificate/key for you.&lt;br /&gt;
&lt;br /&gt;
Please ensure there is a way to send you the certificate and the key securely (e.g., GPG).&lt;br /&gt;
&lt;br /&gt;
=== For admins ===&lt;br /&gt;
&lt;br /&gt;
On louvre:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@louvre:~# cd /etc/openvpn/easy-rsa/&lt;br /&gt;
root@louvre:/etc/openvpn/easy-rsa# . vars &lt;br /&gt;
root@louvre:/etc/openvpn/easy-rsa# ./build-key USERNAME&lt;br /&gt;
[ accept defaults, they should be OK ]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At the end of the process certificate and key will be in /etc/openvpn/keys/USERNAME.{crt,key}.&lt;br /&gt;
Send them to USERNAME (securely).&lt;br /&gt;
&lt;br /&gt;
Add the DNS entry for the new host to hiera and do a puppet run on pergamon.&lt;br /&gt;
&lt;br /&gt;
== Revoking a client certificate ==&lt;br /&gt;
&lt;br /&gt;
On louvre:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@louvre:~# cd /etc/openvpn/easy-rsa/&lt;br /&gt;
root@louvre:/etc/openvpn/easy-rsa# . vars &lt;br /&gt;
root@louvre:/etc/openvpn/easy-rsa# ./revoke-full USERNAME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OpenVPN re-reads the CRL at each connection, so once the cert is revoked, there's nothing more to do. You can restart openvpn to make sure the client is disconnected.&lt;br /&gt;
&lt;br /&gt;
== /etc/hosts entries ==&lt;br /&gt;
&lt;br /&gt;
Once the Vpn is setup on your machine, you can access Software Heritage hosts via their private IP addresses; see [[Network configuration]].&lt;br /&gt;
&lt;br /&gt;
OpenVPN now pushes the address of our DNS server (192.168.100.29, pergamon).&lt;br /&gt;
&lt;br /&gt;
You might want to add louvre.softwareheritage.org in your /etc/hosts to avoid a bootstrap problem if the &amp;quot;on-vpn&amp;quot; DNS server is in your resolv.conf.&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;br /&gt;
[[Category:System administration]]&lt;/div&gt;</summary>
		<author><name>Seirl</name></author>
	</entry>
</feed>