2021-08-16 10:46:18 +02:00
|
|
|
<div align="center">
|
2017-10-30 15:35:47 +01:00
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
<p><img src="https://gitlab.com/fdroid/artwork/-/raw/master/fdroid-logo-2015/fdroid-logo.svg" width="200"></p>
|
2017-10-30 10:27:05 +01:00
|
|
|
|
|
|
|
# F-Droid Server
|
2021-08-16 10:46:18 +02:00
|
|
|
### Server tools for maintaining an F-Droid repository system.
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## What is F-Droid?
|
|
|
|
|
|
|
|
F-Droid is an installable catalogue of FOSS (Free and Open Source Software)
|
|
|
|
applications for the Android platform. The client makes it easy to browse,
|
|
|
|
install, and keep track of updates on your device.
|
|
|
|
|
2015-08-28 01:08:36 +02:00
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
## What is F-Droid Server?
|
2013-10-24 21:31:15 +02:00
|
|
|
|
2017-07-19 16:08:21 +02:00
|
|
|
The F-Droid server tools provide various scripts and tools that are
|
|
|
|
used to maintain the main
|
|
|
|
[F-Droid application repository](https://f-droid.org/packages). You
|
|
|
|
can use these same tools to create your own additional or alternative
|
|
|
|
repository for publishing, or to assist in creating, testing and
|
|
|
|
submitting metadata to the main repository.
|
2013-10-24 21:31:15 +02:00
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
For documentation, please see <https://f-droid.org/docs>, or you can
|
2017-02-13 22:36:28 +01:00
|
|
|
find the source for the documentation in
|
|
|
|
[fdroid/fdroid-website](https://gitlab.com/fdroid/fdroid-website).
|
2010-10-22 00:26:38 +02:00
|
|
|
|
2014-04-18 19:12:29 +02:00
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
## Installing
|
2015-09-04 06:51:37 +02:00
|
|
|
|
2018-04-06 19:16:56 +02:00
|
|
|
There are many ways to install _fdroidserver_, they are documented on
|
2017-07-19 16:08:21 +02:00
|
|
|
the website:
|
|
|
|
https://f-droid.org/docs/Installing_the_Server_and_Repo_Tools
|
2014-04-18 19:12:29 +02:00
|
|
|
|
2017-07-19 16:08:21 +02:00
|
|
|
All sorts of other documentation lives there as well.
|
2016-12-06 13:57:04 +01:00
|
|
|
|
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
## Tests
|
2017-12-20 16:33:39 +01:00
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
There are many components to all the tests for the components in
|
|
|
|
this git repository. The most commonly used parts of well tested, while
|
2017-12-20 16:33:39 +01:00
|
|
|
some parts still lack tests. This test suite has built over time a
|
|
|
|
bit haphazardly, so it is not as clean, organized, or complete as it
|
|
|
|
could be. We welcome contributions. Before rearchitecting any parts
|
|
|
|
of it, be sure to [contact us](https://f-droid.org/about) to discuss
|
|
|
|
the changes beforehand.
|
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
### `fdroid` commands
|
2017-12-20 16:33:39 +01:00
|
|
|
|
|
|
|
The test suite for all of the `fdroid` commands is in the _tests/_
|
|
|
|
subdir. _.gitlab-ci.yml_ and _.travis.yml_ run this test suite on
|
|
|
|
various configurations.
|
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
- _tests/run-tests_ runs the whole test suite
|
|
|
|
- _tests/*.TestCase_ are individual unit tests for all of the `fdroid`
|
2017-12-20 16:33:39 +01:00
|
|
|
commands, which can be run separately, e.g. `./update.TestCase`.
|
2021-08-16 10:46:18 +02:00
|
|
|
- run one test: `tests/common.TestCase CommonTest.test_get_apk_id`
|
2017-12-20 16:33:39 +01:00
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
### Additional tests for different linux distributions
|
2017-12-21 00:51:26 +01:00
|
|
|
|
|
|
|
These tests are also run on various distributions through GitLab CI. This is
|
2021-08-16 10:46:18 +02:00
|
|
|
only enabled for `master@fdroid/fdroidserver` because it takes longer to
|
2017-12-21 00:51:26 +01:00
|
|
|
complete than the regular CI tests. Most of the time you won't need to worry
|
2021-08-16 10:46:18 +02:00
|
|
|
about them, but sometimes it might make sense to also run them for your merge
|
2017-12-21 00:51:26 +01:00
|
|
|
request. In that case you need to remove [these lines from
|
|
|
|
.gitlab-ci.yml](https://gitlab.com/fdroid/fdroidserver/blob/master/.gitlab-ci.yml#L34-35)
|
|
|
|
and push this to a new branch of your fork.
|
|
|
|
|
|
|
|
Alternatively [run them
|
|
|
|
locally](https://docs.gitlab.com/runner/commands/README.html#gitlab-runner-exec)
|
|
|
|
like this: `gitlab-runner exec docker ubuntu_lts`
|
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
### Buildserver
|
2017-12-20 16:33:39 +01:00
|
|
|
|
|
|
|
The tests for the whole build server setup are entirely separate
|
2021-08-16 10:46:18 +02:00
|
|
|
because they require at least 200 GB of disk space, and 8 GB of
|
2017-12-20 16:33:39 +01:00
|
|
|
RAM. These test scripts are in the root of the project, all starting
|
|
|
|
with _jenkins-_ since they are run on https://jenkins.debian.net.
|
|
|
|
|
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
## Documentation
|
2021-05-17 09:56:51 +02:00
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
The API documentation based on the docstrings gets automatically
|
|
|
|
published [here](https://fdroid.gitlab.io/fdroidserver) on every commit
|
|
|
|
on the `master` branch.
|
2021-05-17 09:56:51 +02:00
|
|
|
|
|
|
|
It can be built locally via
|
|
|
|
|
|
|
|
```bash
|
|
|
|
pip install -e .[docs]
|
|
|
|
cd docs
|
|
|
|
sphinx-apidoc -o ./source ../fdroidserver -M -e
|
2023-01-28 16:38:48 +01:00
|
|
|
sphinx-autogen -o generated source/*.rst
|
2021-05-17 09:56:51 +02:00
|
|
|
make html
|
|
|
|
```
|
|
|
|
|
|
|
|
To additionally lint the code call
|
|
|
|
```bash
|
|
|
|
pydocstyle fdroidserver --count
|
|
|
|
```
|
|
|
|
|
2021-08-16 10:46:18 +02:00
|
|
|
When writing docstrings you should follow the
|
|
|
|
[numpy style guide](https://numpydoc.readthedocs.io/en/latest/format.html).
|
|
|
|
|
|
|
|
|
|
|
|
## Translation
|
|
|
|
|
|
|
|
Everything can be translated. See
|
|
|
|
[Translation and Localization](https://f-droid.org/docs/Translation_and_Localization)
|
2023-01-28 16:38:48 +01:00
|
|
|
for more info.
|
2021-08-16 10:46:18 +02:00
|
|
|
|
|
|
|
<div align="center">
|
|
|
|
|
|
|
|
[![](https://hosted.weblate.org/widgets/f-droid/-/287x66-white.png)](https://hosted.weblate.org/engage/f-droid)
|
|
|
|
|
|
|
|
<details>
|
|
|
|
<summary>View translation status for all languages.</summary>
|
|
|
|
|
|
|
|
[![](https://hosted.weblate.org/widgets/f-droid/-/fdroidserver/multi-auto.svg)](https://hosted.weblate.org/engage/f-droid/?utm_source=widget)
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|