<?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=AntoineLambert</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=AntoineLambert"/>
	<link rel="alternate" type="text/html" href="https://wiki.softwareheritage.org/wiki/Special:Contributions/AntoineLambert"/>
	<updated>2026-04-20T15:28:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=1026</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=1026"/>
		<updated>2019-05-09T15:39:20Z</updated>

		<summary type="html">&lt;p&gt;AntoineLambert: &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;
== Accepted projects ==&lt;br /&gt;
&lt;br /&gt;
* [[Google Summer of Code 2019/Graph compression|Graph compression on the development history of software]] - Thibault Allançon&lt;br /&gt;
* [[Google Summer of Code 2019/Web UI improvements|Web UI improvements]] - Kalpit Kothari&lt;br /&gt;
* [[Google Summer of Code 2019/Increase archive coverage|Increase archive coverage]] - Archit Agrawal&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 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 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;
=== Increase archive coverage ===&lt;br /&gt;
&lt;br /&gt;
Software Heritage aims to archive ''all publicly available software source&lt;br /&gt;
code''. We naturally started with the place where most of the software is&lt;br /&gt;
easily available today: git repositories on GitHub.&lt;br /&gt;
&lt;br /&gt;
As Software Heritage grows, we're incrementally increasing archive coverage by&lt;br /&gt;
expanding the sources from which we archive software; a list of currently&lt;br /&gt;
crawled sources is listed on the&lt;br /&gt;
[https://archive.softwareheritage.org main archive page]. As you can see there,&lt;br /&gt;
we have already built ways of archiving Mercurial repositories, Debian packages,&lt;br /&gt;
PyPI bundles, and more.&lt;br /&gt;
&lt;br /&gt;
Further expansions of archive coverage are very suitable GSoC project.&lt;br /&gt;
&lt;br /&gt;
Practically, to expand archive coverage two kinds of software components need&lt;br /&gt;
to be implemented: listers and loaders.&lt;br /&gt;
&lt;br /&gt;
'''Listers''' are components that crawl the APIs of software&lt;br /&gt;
[https://en.wikipedia.org/wiki/Forge_(software) forges] (e.g., Bitbucket,&lt;br /&gt;
Gitorious, Sourceforge, ...) or package managers (a larges list is maintained&lt;br /&gt;
by [https://libraries.io Libraries.io]) and return a list of the software&lt;br /&gt;
available in it. See the official&lt;br /&gt;
[https://docs.softwareheritage.org/devel/swh-lister/ listers documentation] for&lt;br /&gt;
more details.&lt;br /&gt;
&lt;br /&gt;
'''Loaders''' take a bundle of software (tarball, Git repository, Python&lt;br /&gt;
package, ...) and load it into Software Heritage, by adapting it so that it&lt;br /&gt;
matches the archive&lt;br /&gt;
[https://docs.softwareheritage.org/devel/swh-model/data-model.html data model].&lt;br /&gt;
&lt;br /&gt;
While listers answer questions like &amp;quot;what are all the repositories available on&lt;br /&gt;
npm.org?&amp;quot;, a loader addresses the &amp;quot;how do I load the NPM package I downloaded&lt;br /&gt;
into Software Heritage?&amp;quot; problem.&lt;br /&gt;
&lt;br /&gt;
Writing a missing lister or a loader is a great way to contribute to expand the&lt;br /&gt;
coverage of the Software Heritage archive! Feel free to propose the&lt;br /&gt;
implementation of one (or several!) listers or loaders that are currently&lt;br /&gt;
missing. For inspiration you can check out our [[Suggestion box]] for code to&lt;br /&gt;
archive, or propose your favorite missing forge or package repository.&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;
=== 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;
* improve navigation on mobile devices and browsers&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), ...&lt;br /&gt;
* improve [https://www.w3.org/WAI/ accessibility]&lt;br /&gt;
* add missing API endpoints (name your pet peeves!)&lt;br /&gt;
* add end to end tests using [https://www.seleniumhq.org/ Selenium]&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 there is also a viable GSoC project.&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 2019]]&lt;/div&gt;</summary>
		<author><name>AntoineLambert</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=974</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=974"/>
		<updated>2019-03-07T16:30:03Z</updated>

		<summary type="html">&lt;p&gt;AntoineLambert: &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 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 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 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;
=== Increase archive coverage ===&lt;br /&gt;
&lt;br /&gt;
Software Heritage aims to archive ''all publicly available software source&lt;br /&gt;
code''. We naturally started with the place where most of the software is&lt;br /&gt;
easily available today: git repositories on GitHub.&lt;br /&gt;
&lt;br /&gt;
As Software Heritage grows, we're incrementally increasing archive coverage by&lt;br /&gt;
expanding the sources from which we archive software; a list of currently&lt;br /&gt;
crawled sources is listed on the&lt;br /&gt;
[https://archive.softwareheritage.org main archive page]. As you can see there,&lt;br /&gt;
we have already built ways of archiving Mercurial repositories, Debian packages,&lt;br /&gt;
PyPI bundles, and more.&lt;br /&gt;
&lt;br /&gt;
Further expansions of archive coverage are very suitable GSoC project.&lt;br /&gt;
&lt;br /&gt;
Practically, to expand archive coverage two kinds of software components need&lt;br /&gt;
to be implemented: listers and loaders.&lt;br /&gt;
&lt;br /&gt;
'''Listers''' are components that crawl the APIs of software&lt;br /&gt;
[https://en.wikipedia.org/wiki/Forge_(software) forges] (e.g., Bitbucket,&lt;br /&gt;
Gitorious, Sourceforge, ...) or package managers (a larges list is maintained&lt;br /&gt;
by [https://libraries.io Libraries.io]) and return a list of the software&lt;br /&gt;
available in it. See the official&lt;br /&gt;
[https://docs.softwareheritage.org/devel/swh-lister/ listers documentation] for&lt;br /&gt;
more details.&lt;br /&gt;
&lt;br /&gt;
'''Loaders''' take a bundle of software (tarball, Git repository, Python&lt;br /&gt;
package, ...) and load it into Software Heritage, by adapting it so that it&lt;br /&gt;
matches the archive&lt;br /&gt;
[https://docs.softwareheritage.org/devel/swh-model/data-model.html data model].&lt;br /&gt;
&lt;br /&gt;
While listers answer questions like &amp;quot;what are all the repositories available on&lt;br /&gt;
npm.org?&amp;quot;, a loader addresses the &amp;quot;how do I load the NPM package I downloaded&lt;br /&gt;
into Software Heritage?&amp;quot; problem.&lt;br /&gt;
&lt;br /&gt;
Writing a missing lister or a loader is a great way to contribute to expand the&lt;br /&gt;
coverage of the Software Heritage archive! Feel free to propose the&lt;br /&gt;
implementation of one (or several!) listers or loaders that are currently&lt;br /&gt;
missing. For inspiration you can check out our [[Suggestion box]] for code to&lt;br /&gt;
archive, or propose your favorite missing forge or package repository.&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;
=== 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;
* improve navigation on mobile devices and browsers&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), ...&lt;br /&gt;
* improve [https://www.w3.org/WAI/ accessibility]&lt;br /&gt;
* add missing API endpoints (name your pet peeves!)&lt;br /&gt;
* add end to end tests using [https://www.seleniumhq.org/ Selenium]&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 there is also a viable GSoC project.&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>AntoineLambert</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Code_review_in_Phabricator&amp;diff=970</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=970"/>
		<updated>2019-02-10T17:05:29Z</updated>

		<summary type="html">&lt;p&gt;AntoineLambert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We use the [[Differential]] application of [[Phabricator]] to perform [[code review|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;
=== Arcanist 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;
=== Enabling &amp;lt;tt&amp;gt;git push&amp;lt;/tt&amp;gt; to our forge ===&lt;br /&gt;
&lt;br /&gt;
The way we've configured our review setup for continuous integration needs you to configure git to allow pushes to our forge. There's two ways you can do this : setting a ssh key to push over ssh, or setting a specific password for git pushes over https.&lt;br /&gt;
&lt;br /&gt;
==== SSH key for pushes ====&lt;br /&gt;
&lt;br /&gt;
In your forge User settings page (On the top right, click on your avatar, then click ''Settings''), you have access to a ''Authentication'' &amp;gt; ''SSH Public Keys'' section (Direct link: &amp;lt;tt&amp;gt;hxxps://forge.softwareheritage.org/settings/user/'''&amp;lt;your username&amp;gt;'''/page/ssh/&amp;lt;/tt&amp;gt;). You then have the option to upload a SSH public key, which will authenticate your pushes.&lt;br /&gt;
&lt;br /&gt;
You then need to configure ssh/git to use that key pair, for instance by editing the &amp;lt;tt&amp;gt;~/.ssh/config&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
Finally, you should configure git to push over ssh when pushing to https://forge.softwareheritage.org, by running the following command:&lt;br /&gt;
 git config --global url.git@forge.softwareheritage.org:.pushInsteadOf https://forge.softwareheritage.org&lt;br /&gt;
&lt;br /&gt;
This lets git know that it should use &amp;lt;tt&amp;gt;git@forge.softwareheritage.org:&amp;lt;/tt&amp;gt; as a base url when pushing repositories cloned from forge.softwareheritage.org over https.&lt;br /&gt;
&lt;br /&gt;
==== VCS password for pushes ====&lt;br /&gt;
&lt;br /&gt;
If you're not comfortable setting up SSH to upload your changes, you have the option of setting a VCS password. This password, ''separate from your account password'', allows Phabricator to authenticate your uploads over HTTPS.&lt;br /&gt;
&lt;br /&gt;
In your forge User settings page (On the top right, click on your avatar, then click ''Settings''), you need to use the ''Authentication'' &amp;gt; ''VCS Password'' section to set your VCS password (Direct link: &amp;lt;tt&amp;gt;hxxps://forge.softwareheritage.org/settings/user/'''&amp;lt;your username&amp;gt;'''/page/vcspassword/&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Workflow ==&lt;br /&gt;
&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;
=== Reviewing locally / landing someone else's changes ===&lt;br /&gt;
&lt;br /&gt;
You can do local reviews of code with arc patch:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
arc patch Dxyz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create a branch '''arcpatch-Dxyz''' containing the changes on your local checkout.&lt;br /&gt;
&lt;br /&gt;
You can then merge those changes upstream with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout master&lt;br /&gt;
git merge --ff arcpatch-Dxyz&lt;br /&gt;
git push origin master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Code review]] for guidelines on how code is reviewed when developing for Software Heritage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software development]]&lt;/div&gt;</summary>
		<author><name>AntoineLambert</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=952</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=952"/>
		<updated>2019-02-05T15:42:25Z</updated>

		<summary type="html">&lt;p&gt;AntoineLambert: &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 important? 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;
In order to easily navigate into the archive content, a [https://forge.softwareheritage.org/source/swh-web/ web application] is currently developed.&lt;br /&gt;
So far it offers the following main features:&lt;br /&gt;
* programmatic access to the content of the archive via the [https://archive.softwareheritage.org/api/ Software Heritage API]&lt;br /&gt;
* in-browser navigation of the content of the archive via the [https://archive.softwareheritage.org/browse/ Software Heritage browse UI]&lt;br /&gt;
&lt;br /&gt;
There are still numerous improvements and new features to add to that web application, for instance:&lt;br /&gt;
* add new API endpoints&lt;br /&gt;
* improve overall design&lt;br /&gt;
* improve navigation for mobile browsers&lt;br /&gt;
* add new source code search criteria and improve the search interface&lt;br /&gt;
* implement new developer oriented features: source file history, blame interface, ...&lt;br /&gt;
* improve web application [https://www.w3.org/WAI/ accessibility]&lt;br /&gt;
&lt;br /&gt;
If you are interested in web development and want to contribute to the application&lt;br /&gt;
enabling users to navigate in the biggest public source code archive collected so far,&lt;br /&gt;
feel free to apply.&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>AntoineLambert</name></author>
	</entry>
	<entry>
		<id>https://wiki.softwareheritage.org/index.php?title=Google_Summer_of_Code_2019&amp;diff=950</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=950"/>
		<updated>2019-02-05T13:28:52Z</updated>

		<summary type="html">&lt;p&gt;AntoineLambert: &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 important? 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;
In order to easily navigate into the archive content, a [https://forge.softwareheritage.org/source/swh-web/ web application] is currently developed.&lt;br /&gt;
So far it offers the following main features:&lt;br /&gt;
* programmatic access to the content of the archive via the [https://archive.softwareheritage.org/api/ Software Heritage API]&lt;br /&gt;
* in-browser navigation of the content of the archive via the [https://archive.softwareheritage.org/browse/ Software Heritage browse UI]&lt;br /&gt;
&lt;br /&gt;
There is still numerous improvements and new features to add to that web application, for instance:&lt;br /&gt;
* improve overall design&lt;br /&gt;
* improve navigation for mobile browsers&lt;br /&gt;
* add new source code search criteria and improve the search interface&lt;br /&gt;
* implement new developer oriented features: source file history, blame interface, ...&lt;br /&gt;
* improve web application [https://www.w3.org/WAI/ accessibility]&lt;br /&gt;
&lt;br /&gt;
If you are interested in web development and want to contribute to the application&lt;br /&gt;
enabling users to navigate in the biggest public source code archive collected so far,&lt;br /&gt;
feel free to apply.&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>AntoineLambert</name></author>
	</entry>
</feed>