Commit 5289957b authored by Strit's avatar Strit

initial commit

parent c27e5979
# Credits
- Roland Singer <roland@manjaro.org>
- Esclapion
- Philip Müller <philm@manjaro.org>
- Ramon Buldó <ramon@manjaro.org>
- Hugo Posnic <huluti@manjaro.org>
- Frede Hundewadt <echo ZmhAbWFuamFyby5vcmcK | base64 -d>
Thank you all! ;)
=======
Credits
=======
Development Lead
----------------
* Roland Singer <roland@manjaro.org>
* Esclapion
* philm
* Ramon Buldó <rbuldo@gmail.com>
Contributors
------------
Manjaro-Arm
* dodgejcr
This diff is collapsed.
# Contributing
Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.
You can contribute in many ways:
## Types of Contributions
### Report Bugs
Report bugs at [Manjaro Gitlab](https://gitlab.manjaro.org/applications/pacman-mirrors/issues).
If you are reporting a bug, please include:
- Your operating system name and version.
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
### Fix Bugs
Look through the Gitlab issues for bugs. Anything tagged with "bug"
is open to whoever wants to implement it.
### Implement Features
Look through the Gitlab issues for features. Anything tagged with "feature"
is open to whoever wants to implement it.
### Write Documentation
pacman-mirrors could always use more documentation, whether as part of the
official pacman-mirrors docs, in docstrings, or even on the web in blog posts,
articles, and such.
### Translations
Help us to ship pacman-mirrors in your language by helping our translators on [Transifex](https://www.transifex.com/manjarolinux/manjaro-pacman-mirrors/dashboard/).
### Submit Feedback
The best way to send feedback is to file an issue at [Manjaro Gitlab](https://gitlab.manjaro.org/applications/pacman-mirrors/issues).
If you are proposing a feature:
* Explain in detail how it would work.
* Keep the scope as narrow as possible, to make it easier to implement.
* Remember that this is a volunteer-driven project, and that contributions
are welcome :)
## Get Started!
Ready to contribute? Here's how to set up `pacman-mirrors` for local development.
* Fork the `pacman-mirrors` repo on GitHub.
* Clone your fork locally:
```
$ git clone https://gitlab.manjaro.org/your-name-here/pacman-mirrors.git
```
* Install your local copy into a virtualenv. Assuming you have [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/) installed, this is how you set up your fork for local development
```
$ mkvirtualenv pacman-mirrors
$ cd pacman-mirrors/
$ python setup.py develop
```
* Create a branch for local development:
```
$ git checkout -b name-of-your-bugfix-or-feature
```
Now you can make your changes locally.
* When you're done making changes, check that your changes pass flake8 and the tests:
```
$ flake8 pacman-mirrors tests
$ python setup.py test
```
* To get flake8, just pip install it into your virtualenv (see notes below).
* Commit your changes and push your branch to GitHub:
```
$ git add
$ git commit -m "Your detailed description of your changes."
$ git push origin name-of-your-bugfix-or-feature
```
* Submit a pull request through the GitHub website.
## Test Guidelines
```
make test
```
### Generated Mirrorlist Verification
From experience it is so easy to forget verification of the generated mirrorlists.
As the mirrorlists can be generated in a variety of ways - a list of verifications is presented here.
1. `sudo pacman-mirrors -c all`
2. `sudo pacman-mirrors -f`
3. `sudo pacman-mirrors -c Germany`
4. `sudo pacman-mirrors -c Germany -i`
5. `sudo pacman-mirrors -aP https -c Germany`
6. `sudo pacman-mirrors -aP https http -c Germany -i`
7. `sudo pacman-mirrors -aP http https -c Germany -i`
8. `sudo pacman-mirrors -aP https http -c Germany`
9. `sudo pacman-mirrors -aP http https -c Germany`
All urls in the mirrorlist **must** end with **$repo/$arch**
## Pull Request Guidelines
Before you submit a pull request, check that it meets these guidelines:
* The pull request should include tests.
* If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring, and add the
feature to the list in README.md.
* The pull request should work for Python 3.4+, and for PyPy. Check
https://travis-ci.org/manjaro/pacman-mirrors/pull_requests
and make sure that the tests pass for all supported Python versions.
## Tips
To run a subset of tests:
```
$ python -m unittest tests.test_pacman_mirrors
```
## Developing environment
* An editor of choice e.g.
* Visual Studio Code `yay -S visual-studio-code`
* PyCharm Community `pacman -Syu pycharm-community`
* Pandoc converter `pacman -Syu pandoc`
* Python environment
```
$ git clone https://gitlab.manjaro.org/applications/pacman-mirrors.git
$ cd pacman-mirrors
$ sudo pacman -Syu python-pip python-virtualenvwrapper
$ mkvirtualenv pacman-mirrors
$ python setup.py develop
$ pip install mkdocs coverage babel flake8 npyscreen transifex-client
```
* Remember to `source /usr/bin/virtualenvwrapper.sh` to get the virtualenv CLI
============
Contributing
============
Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.
You can contribute in many ways:
Types of Contributions
----------------------
Report Bugs
~~~~~~~~~~~
Report bugs at https://github.com/manjaro/pacman-mirrors/issues.
If you are reporting a bug, please include:
* Your operating system name and version.
* Any details about your local setup that might be helpful in troubleshooting.
* Detailed steps to reproduce the bug.
Fix Bugs
~~~~~~~~
Look through the GitHub issues for bugs. Anything tagged with "bug"
is open to whoever wants to implement it.
Implement Features
~~~~~~~~~~~~~~~~~~
Look through the GitHub issues for features. Anything tagged with "feature"
is open to whoever wants to implement it.
Write Documentation
~~~~~~~~~~~~~~~~~~~
pacman-mirrors could always use more documentation, whether as part of the
official pacman-mirrors docs, in docstrings, or even on the web in blog posts,
articles, and such.
Submit Feedback
~~~~~~~~~~~~~~~
The best way to send feedback is to file an issue at https://github.com/manjaro/pacman-mirrors/issues.
If you are proposing a feature:
* Explain in detail how it would work.
* Keep the scope as narrow as possible, to make it easier to implement.
* Remember that this is a volunteer-driven project, and that contributions
are welcome :)
Get Started!
------------
Ready to contribute? Here's how to set up `pacman-mirrors` for local development.
1. Fork the `pacman-mirrors` repo on GitHub.
2. Clone your fork locally::
$ git clone git@github.com:your_name_here/pacman-mirrors.git
3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development::
$ mkvirtualenv pacman-mirrors
$ cd pacman-mirrors/
$ python setup.py develop
4. Create a branch for local development::
$ git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox::
$ flake8 pacman-mirrors tests
$ python setup.py test
$ tox
To get flake8 and tox, just pip install them into your virtualenv.
6. Commit your changes and push your branch to GitHub::
$ git add .
$ git commit -m "Your detailed description of your changes."
$ git push origin name-of-your-bugfix-or-feature
7. Submit a pull request through the GitHub website.
Pull Request Guidelines
-----------------------
Before you submit a pull request, check that it meets these guidelines:
1. The pull request should include tests.
2. If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring, and add the
feature to the list in README.rst.
3. The pull request should work for Python 3.4+, and for PyPy. Check
https://travis-ci.org/manjaro/pacman-mirrors/pull_requests
and make sure that the tests pass for all supported Python versions.
Tips
----
To run a subset of tests::
$ python -m unittest tests.test_pacman_mirrors
.. :changelog:
History
-------
2.0 (2016-03-01)
---------------------
* Add translation support.
* Better error messages.
* --no-update option, to prevent updates when upgrading the package.
* Big refractor of code.
* Configuration file /etc/pacman-mirrors.conf is optional.
* Pep8 all the code in pacman_mirrors.py
* Reestructure the project.
* The Custom country created with interactive mode is now stored in /var/lib/pacman-mirrors/
* If a Custom country is found in /etc/pacman.d/mirrors/ its moved automatically to the new directory.
include AUTHORS.rst
include CONTRIBUTING.rst
include HISTORY.rst
include AUTHORS.md
include CONTRIBUTING.md
include CHANGELOG.md
include LICENSE
include README.rst
include data/mirrors/*
include README.md
include man/pacman-mirrors.8
include share/mirrors.json
include scripts/pacman-mirrors
recursive-include tests *
recursive-exclude * __pycache__
recursive-exclude * *.py[co]
recursive-include docs *.rst conf.py Makefile make.bat
recursive-include docs *.md
......@@ -7,15 +7,14 @@ help:
@echo "clean-test - remove test and coverage artifacts"
@echo "lint - check style with flake8"
@echo "test - run tests quickly with the default Python"
@echo "test-all - run tests on every Python version with tox"
@echo "coverage - check code coverage quickly with the default Python"
@echo "docs - generate Sphinx HTML documentation, including API docs"
@echo "docs - generate MkDocs HTML documentation, man page using Pandoc, including API docs"
@echo "release - package and upload a release"
@echo "dist - package"
@echo "install - install the package to the active Python's site-packages"
@echo "pot-file - extract messages to locale/pacman_mirrors.pot"
@echo "push-pot - push pot file to transifex"
@echo "pull-pot - pull all translations from transifex"
@echo "pull-po - pull all translations from transifex"
@echo "mo-files - generate .mo files"
clean: clean-build clean-pyc clean-test
......@@ -34,7 +33,6 @@ clean-pyc:
find . -name '__pycache__' -exec rm -fr {} +
clean-test:
rm -fr .tox/
rm -f .coverage
rm -fr htmlcov/
......@@ -44,22 +42,21 @@ lint:
test:
python setup.py test
test-all:
tox
coverage:
coverage run --source pacman_mirrors setup.py test
coverage report -m
coverage html
open htmlcov/index.html
firefox htmlcov/index.html
docs:
rm -f docs/pacman-mirrors.rst
rm -f docs/modules.rst
sphinx-apidoc -o docs/ pacman-mirrors
$(MAKE) -C docs clean
$(MAKE) -C docs html
open docs/_build/html/index.html
mkdocs build
pandoc -s -t man docs/index.md -o man/pacman-mirrors.8
pandoc docs/index.md -f markdown -t html -s -o man/pacman-mirrors.8.html
gzip man/pacman-mirrors.8 -fq
man-page:
pandoc -s -t man docs/index.md -o man/pacman-mirrors.8
man man/pacman-mirrors.8
release: clean
python setup.py sdist upload
......
# pacman-mirrors
\ No newline at end of file
# pacman-mirrors
[![Build Status](https://travis-ci.org/manjaro/pacman-mirrors.svg?branch=master)](https://travis-ci.org/manjaro/pacman-mirrors)
Package that provides all mirrors for Manjaro Linux.
- Free software: GPL license
## Features
- A GUI for selecting mirror/protocol combinations used to generate a custom list.
- Generate a new mirror list by using several options:
- method : rank or random.
- country : a single, a list or all.
- fasttrack : limited ranked list of `x` up-to-date mirrors.
- geoip : mirrors for country if available.
- Information
- get-branch : get current branch from config
- country-list: list of countries with mirrors
- API
- prefix : prefix for files handled by pacman-mirrors.
- set-branch : set branch from supplied branch option to config
- protocols:
- set protocol limitation in config
- remove protocol limitation from config
## Technologies
pacman-mirrors is build with Python and Gtk3.
===============================
pacman-mirrors
===============================
.. image:: https://img.shields.io/travis/manjaro/pacman-mirrors.svg
:target: https://travis-ci.org/manjaro/pacman-mirrors
Package that provides all mirrors for Manjaro Linux.
* Free software: GPL license
Features
--------
* TODO
......@@ -10,19 +10,18 @@
## 2) random - randomly generate the output mirrorlist
# Method = rank
## Specify to use only mirrors from specific a country.
## Can add multiple countries separated by a comma (ex: Germany,France)
## Empty means all
# OnlyCountry =
## Filename to use when ranking mirrors
## The file must be present in core repo
# TestFile = core.db.tar.gz
## Mirrors directory
# MirrorlistsDir = /etc/pacman.d/mirrors
## Define protocols and priority
## separated by comma 'https,http' or 'http,https'
## ATM available protocols are: http, https, ftp
## Not specifying a protocol will ban the protocol from being used
## If a mirror has more than one protocol defined only the first is written to the mirrorlist
## Empty means all in reversed alphabetic order
# Protocols =
## Output file
# OutputMirrorlist = /etc/pacman.d/mirrorlist
## When set to True prevents the regeneration of the mirrorlist if
## pacman-mirrors is invoked with the --no-update argument.
## Useful if you don't want the mirrorlist regenerated after a
## pacman-mirrors package upgrade.
# NoUpdate = False
\ No newline at end of file
## When set to False - all certificates are accepted.
## Use only if you fully trust all ssl-enabled mirrors.
# SSLVerify = True
##
## Pacman Mirrorlist
##
[Denmark]
Server = http://mirror.strits.dk/manjaro-arm/$branch/$arch/$repo
Server = https://www.uex.dk/public/manjaro-arm/$branch/$arch/$repo
Server = https://mirrors.dotsrc.org/manjaro-arm/$branch/$arch/$repo
##
## Pacman Mirrorlist
##
[Switzerland]
Server = https://mirror.scachemaille.ch/manjaro-arm/$branch/$arch/$repo
##
## Pacman Mirrorlist
##
[United_States]
Server = http://ftp-osl.osuosl.org/pub/manjaro-arm/repo/$branch/$arch/$repo
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pacman-mirrors.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pacman-mirrors.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/pacman-mirrors"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pacman-mirrors"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
.. include:: ../AUTHORS.rst
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# pacman-mirrors documentation build configuration file, created by
# sphinx-quickstart on Tue Jul 9 22:26:36 2013.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#