-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathcontributing.html
257 lines (239 loc) · 14.1 KB
/
contributing.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Contributing to Instaloader — Instaloader documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=377f2d93" />
<link rel="stylesheet" type="text/css" href="_static/basic.css?v=fb9458d3" />
<link rel="stylesheet" type="text/css" href="_static/instaloaderdoc.css?v=d1e01417" />
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/instaloaderdoc.js?v=d3bfff1a"></script>
<script src="_static/instaloaderdoc.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="prev" title="Troubleshooting" href="troubleshooting.html" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="google-site-verification" content="FNUsDdkOJM9obm9QEdrNBVd9AtAzHzA-aaSMCUrS6C8"/>
<link rel="canonical" href="https://instaloader.github.io/contributing.html"/>
</head><body>
<nav class="navbar navbar-light navbar-expand bg-light border-bottom">
<a class="navbar-brand" href="index.html">
<img src="_static/logo.png" width="30" height="30" class="d-inline-block align-top" alt="logo">
<span class="ml-3">Instaloader</span>
</a>
<ul class="navbar-nav mr-auto">
<li class="nav-item ml-0 ml-sm-2">
<a class="nav-link"
href="https://github.com/instaloader/instaloader/releases/tag/v4.14.1"
title="Released on 24 Jan 2025" data-toggle="tooltip">
v<b>4.14.1</b>
</a>
</li>
</ul>
<ul class="navbar-nav ml-auto d-none d-sm-flex">
<li class="nav-item">
<a class="nav-link" href="https://github.com/instaloader/instaloader/issues">
Issues
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://github.com/instaloader/instaloader/releases">
Releases
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="https://github.com/instaloader/instaloader">
GitHub
</a>
</li>
</ul>
<button class="d-inline-block d-md-none btn btn-outline-primary btn-sm" type="button"
data-toggle="collapse" data-target="#instaloaderdocSidebar" aria-controls="instaloaderdocSidebar"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
</nav>
<div class="container-fluid">
<div class="row">
<div class="instaloaderdoc-sidebar collapse d-md-block col-md-3 col-xl-2 bg-light"
id="instaloaderdocSidebar">
<nav role="navigation" aria-label="Table of Contents">
<form action="search.html" method="get" role="search" class="border-bottom mr-2 pb-2 mb-2 px-1">
<label class="sr-only" for="searchQueryInput">Search</label>
<input type="search" name="q" id="searchQueryInput" class="form-control my-2"
placeholder="Search..." aria-label="Search">
</form>
<h4>Contents</h4>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="installation.html">Install Instaloader</a></li>
<li class="toctree-l1"><a class="reference internal" href="basic-usage.html">Download Pictures from Instagram</a></li>
<li class="toctree-l1"><a class="reference internal" href="cli-options.html">Command Line Options</a></li>
<li class="toctree-l1"><a class="reference internal" href="as-module.html">Python Module <code class="xref py py-mod docutils literal notranslate"><span class="pre">instaloader</span></code></a></li>
<li class="toctree-l1"><a class="reference internal" href="codesnippets.html">Advanced Instaloader Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Contributing to Instaloader</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#answering-questions">Answering Questions</a></li>
<li class="toctree-l2"><a class="reference internal" href="#reporting-bugs">Reporting Bugs</a></li>
<li class="toctree-l2"><a class="reference internal" href="#writing-code-or-improving-the-documentation">Writing Code or Improving the Documentation</a></li>
<li class="toctree-l2"><a class="reference internal" href="#proposing-features">Proposing Features</a></li>
<li class="toctree-l2"><a class="reference internal" href="#sponsoring">Sponsoring</a></li>
</ul>
</li>
</ul>
</nav>
</div>
<main class="col-12 col-md-9 col-xl-10 pt-2" role="main">
<section id="contributing-to-instaloader">
<span id="contributing"></span><h1>Contributing to Instaloader<a class="headerlink" href="#contributing-to-instaloader" title="Link to this heading">¶</a></h1>
<p>As an open source project, Instaloader heavily depends on the contributions from
its community. In this document, we advise on how you may help Instaloader to
become an even greater tool.</p>
<p>Instaloader’s development is organized on
<a class="reference external" href="https://github.com/instaloader/instaloader">GitHub</a>, where Issues and Pull
Requests are discussed.</p>
<p>Contributing to an open source project is an unmatchable opportunity to improve
and manifest programming skills. For issues that are good starting points to get
involved in Instaloader development, as they do not require deep insight into
Instaloader’s code base, have a look at our
<a class="reference external" href="https://github.com/instaloader/instaloader/contribute">Issues labelled ‘good first issue’</a>.</p>
<p>This document covers several ways of how you can contribute back to Instaloader.</p>
<section id="answering-questions">
<h2>Answering Questions<a class="headerlink" href="#answering-questions" title="Link to this heading">¶</a></h2>
<p>The easiest way to help out is to answer questions. If you are interested in
answering questions regarding Instaloader, good places to begin are</p>
<ul class="simple">
<li><p><a class="reference external" href="https://stackoverflow.com/questions/tagged/instaloader">Questions tagged ‘instaloader’ on Stack Overflow</a>,</p></li>
<li><p><a class="reference external" href="https://github.com/instaloader/instaloader/issues?q=is%3Aissue+is%3Aopen+label%3Aquestion">Instaloader Issues labeled ‘question’</a>.</p></li>
</ul>
</section>
<section id="reporting-bugs">
<h2>Reporting Bugs<a class="headerlink" href="#reporting-bugs" title="Link to this heading">¶</a></h2>
<p>If you encounter a bug, do not hesitate to report it in our
<a class="reference external" href="https://github.com/instaloader/instaloader/issues">Issue Tracker</a>. When
reporting a problem, please keep the following in mind:</p>
<ul class="simple">
<li><p>Ensure you <strong>use the latest version</strong> of Instaloader. The currently-installed
version can be found out with <code class="docutils literal notranslate"><span class="pre">instaloader</span> <span class="pre">--version</span></code>.</p></li>
<li><p>Check whether there is a valid solution in our <a class="reference internal" href="troubleshooting.html#troubleshooting"><span class="std std-ref">Troubleshooting</span></a> section.</p></li>
<li><p>Briefly <strong>check whether the bug has already been reported</strong>. If you find an
issue reporting the same bug you encountered, comment there rather than
opening a new issue. However, if unsure, please create a new issue.</p></li>
<li><p>State <strong>how the bug can be reproduced</strong>, i.e. how Instaloader was invoked
when the problem occurred (of course, you may anonymize profile names etc.).</p></li>
<li><p>Include all <strong>error messages and tracebacks</strong> in the report.</p></li>
<li><p>Even if it seems obvious, describe <strong>which behavior you expected</strong>
instead of what actually happened.</p></li>
<li><p>If we have closed an issue apparently inadvertently or inappropriately, please
let us know.</p></li>
</ul>
</section>
<section id="writing-code-or-improving-the-documentation">
<h2>Writing Code or Improving the Documentation<a class="headerlink" href="#writing-code-or-improving-the-documentation" title="Link to this heading">¶</a></h2>
<p>Improvements of the Instaloader source or its documentation can be proposed as a
<a class="reference external" href="https://github.com/instaloader/instaloader/pulls">Pull Request</a>.</p>
<ul>
<li><p>Please base your Pull Request on</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">master</span></code>, which will be released with the next minor release, if it is</p>
<ul>
<li><p>a bug fix that does not require extensive testing,</p></li>
<li><p>an improvement to the documentation,</p></li>
</ul>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">upcoming/v4.X</span></code>, if it is</p>
<ul>
<li><p>a new feature,</p></li>
<li><p>a bug fix that does require thorough testing before being released to a
final version.</p></li>
</ul>
</li>
</ul>
</li>
<li><p>All Pull Requests are analyzed by <a class="reference external" href="https://www.pylint.org/">Pylint</a> for
error and syntax checking of the source and
<a class="reference external" href="https://github.com/python/mypy">Mypy</a> for type checking. You can run them
locally with:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pylint</span> <span class="n">instaloader</span>
<span class="n">mypy</span> <span class="o">-</span><span class="n">m</span> <span class="n">instaloader</span>
</pre></div>
</div>
</li>
<li><p>Improvements to the documentation are very welcome. The documentation is
created with <a class="reference external" href="https://www.sphinx-doc.org/en/2.0/">Sphinx</a>, version 2,
and can be build locally using:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="o">-</span><span class="n">C</span> <span class="n">docs</span> <span class="n">html</span>
</pre></div>
</div>
</li>
<li><p>Feel free to create an issue to make sure someone from the Instaloader team
agrees that the change might be an improvement, or if you want to discuss
your basic proposal, before working on a pull request.</p></li>
</ul>
</section>
<section id="proposing-features">
<h2>Proposing Features<a class="headerlink" href="#proposing-features" title="Link to this heading">¶</a></h2>
<p>Instaloader’s goal is to mimic the browser’s behavior to access the data that
is available through the Instagram web interface, pack this data into complete
and easily-(re)usable python objects, and provide a user interface for the most
common downloading and metadata collection tasks, without changing any of the
online data.</p>
<p>Prior spending effort on implementing a new feature, it might be appropriate to
clarify how it could fit into the project’s scope or discuss implementation
details. If you feel the need to do so, please create a “feature suggestion”.</p>
<ul class="simple">
<li><p>Instaloader already has plenty of features. <strong>Check the documentation</strong>
beforehand to ensure your desired suggestion is not already implemented.</p></li>
<li><p>Briefly <strong>ensure that your idea has not already been suggested</strong>. If you find
an issue suggesting the same or a similar feature, share your thoughts in a
comment there, instead of opening a new issue.</p></li>
<li><p><strong>Motivate the feature</strong>, i.e.</p>
<ul>
<li><p>Provide us a <strong>use case of the feature</strong>: How could the user
invoke the new function? Which problem would it solve? If new information is
obtained, how would it be further processed?</p></li>
<li><p>Describe already-working <strong>alternatives of the feature</strong> and how they
compare to your proposed feature.</p></li>
<li><p>Briefly describe how your suggested feature <strong>conforms with Instaloader’s
project goal</strong>.</p></li>
</ul>
</li>
<li><p>Explain your <strong>solution ideas</strong>. Describe your ideas on how the feature could
be implemented and the underlying problem could be solved. Also <strong>describe
alternatives</strong> that you have considered.</p></li>
</ul>
</section>
<section id="sponsoring">
<h2>Sponsoring<a class="headerlink" href="#sponsoring" title="Link to this heading">¶</a></h2>
<div class="line-block">
<div class="line">Instaloader is proudly sponsored by</div>
<div class="line-block">
<div class="line"><a class="reference external" href="https://github.com/rocketapi-io">@rocketapi-io</a></div>
</div>
</div>
<p>See <a class="reference external" href="https://github.com/sponsors/aandergr">Alex’ GitHub Sponsors</a> page for
how you can sponsor the development of Instaloader!</p>
<p>It is a pleasure for us to share our Instaloader to the world, and we are proud
to have attracted such an active and motivating community, with so many users
who share their suggestions and ideas with us. Buying a community-sponsored beer
or coffee from time to time is very likely to further raise our passion for the
development of Instaloader.</p>
<div class="line-block">
<div class="line">For Donations, we provide GitHub Sponsors page, a PayPal.Me link and a Bitcoin address.</div>
<div class="line-block">
<div class="line">GitHub Sponsors: <a class="reference external" href="https://github.com/sponsors/aandergr">Sponsor @aandergr on GitHub Sponsors</a></div>
<div class="line">PayPal: <a class="reference external" href="https://www.paypal.me/aandergr">PayPal.me/aandergr</a></div>
<div class="line">BTC: 1Nst4LoadeYzrKjJ1DX9CpbLXBYE9RKLwY</div>
</div>
</div>
</section>
</section>
</main>
</div>
</div>
</body>
</html>