Testing
Go to file
Jelle van der Waa 6507d02ca9
remove psycopg2 from production requirements
Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2019-12-18 17:27:44 +01:00
.github rename funding to the correct filename 2019-11-04 22:27:02 +01:00
devel Fix a typo in commands/retire_user.py 2019-11-07 14:12:05 +01:00
main update jquery to 3.4.1 2019-10-13 16:12:58 +02:00
mirrors mirrors: IPNetworkField context parameter is deprecated 2019-04-05 16:26:05 +02:00
news news: Make the check for MAILMAN_PASSWORD backwards compatible 2019-10-25 14:58:33 -03:00
packages Add support for searching by package provides 2019-11-17 17:19:24 +01:00
public remove unecessary list calls 2019-02-01 21:27:57 +01:00
releng releng: reduce SELECT's for archlinux.ipxe request 2019-02-28 21:54:57 +01:00
sitestatic js: split out package JavaScript to details.html 2019-10-13 16:13:08 +02:00
templates add packages rss feeds for "all stable repos" and "all testing repos" 2019-12-18 17:26:04 +01:00
todolists todolist: send email when the todolist is fully complete 2019-06-13 14:13:30 +02:00
visualize Revert "visualize: remove unrequired list() calls added" 2019-04-27 21:49:30 +02:00
.coveragerc Misc fixes (#84) 2018-02-18 04:33:52 -05:00
.gitattributes Add gitattributes file 2010-09-30 12:51:36 -05:00
.gitignore add mypy_cache to gitignore 2019-02-01 21:27:57 +01:00
.pylintrc pylint: comment out warning without code changes 2019-02-24 17:59:33 +01:00
.pyup.yml create pyup.io config file 2018-05-31 20:35:29 +02:00
.travis.yml Test on 3.7 2019-07-30 20:53:42 +02:00
archweb.wsgi Fix hardcoded python version in archweb.wsgi 2019-01-21 21:19:58 +01:00
AUTHORS Add myself as maintainer 2018-06-08 19:02:11 +02:00
feeds.py add packages rss feeds for "all stable repos" and "all testing repos" 2019-12-18 17:26:04 +01:00
HACKING update documentation 2008-10-10 18:38:08 -04:00
LICENSE Initial import for public release... 2007-11-03 03:45:10 -04:00
local_settings.py.example Developing locally needs CSRF_COOKIE_SECURE=False 2019-09-09 21:27:35 +08:00
manage.py Switch shebang for Python 3 support 2019-01-21 21:19:58 +01:00
README Move markdown formatted readme to README.md 2013-11-25 21:54:15 -06:00
README.md Add Github actions status 2019-11-04 22:08:29 +01:00
requirements_prod.txt remove psycopg2 from production requirements 2019-12-18 17:27:44 +01:00
requirements.txt Update django to 2.2.9 2019-12-18 16:27:57 +01:00
settings.py news: Change the news app to use the EmailMessage class to be able to include the mailman password 2019-10-25 14:06:52 -03:00
sitemaps.py news: fix xml sitemap 2019-02-09 19:12:57 +01:00
urls.py retro: remove retro module 2019-03-26 20:49:55 +01:00

Archweb README

Actions Status Build Status Coverage Status

To get a pretty version of this document, run

$ markdown README > README.html

License

See LICENSE file.

Authors

See AUTHORS file.

Dependencies

  • python
  • rsync (optional for mirrorcheck with rsync mirrors)

Python dependencies

More detail in requirements.txt and requirements_prod.txt; it is best to use virtualenv and pip to handle these. But if you insist on (Arch Linux) packages, you will probably want the following:

  • python-django
  • python-psycopg2
  • python-markdown
  • python-memcached

Testing Installation

  1. Run python -m venv env.

     cd /path/to/archweb && python -m venv ./env/
    
  2. Activate the virtualenv.

     source ./env/bin/activate
    
  3. Install dependencies through pip.

     pip install -r requirements.txt
    
  4. Copy local_settings.py.example to local_settings.py and modify. Make sure to uncomment the appropriate database section (either sqlite or PostgreSQL).

  5. Migrate changes.

     ./manage.py migrate
    
  6. Load the fixtures to prepopulate some data. If you don't want some of the provided data, adjust the file glob accordingly.

     ./manage.py loaddata main/fixtures/*.json
     ./manage.py loaddata devel/fixtures/*.json
     ./manage.py loaddata mirrors/fixtures/*.json
     ./manage.py loaddata releng/fixtures/*.json
    
  7. Use the following commands to start a service instance

     ./manage.py runserver
    
  8. To optionally populate the database with real data:

     wget http://mirrors.kernel.org/archlinux/core/os/x86_64/core.db.tar.gz
     ./manage.py reporead x86_64 core.db.tar.gz
     # Package file listing
     wget http://mirrors.kernel.org/archlinux/core/os/x86_64/core.files.tar.gz
     ./manage.py reporead --filesonly x86_64 core.files.tar.gz
    

Alter architecture and repo to get x86_64 and packages from other repos if needed.

  1. Database Updates for Added/Removed packages

     sqlite3 archweb.db < packages/sql/update.sqlite3.sql
    

For PostgreSQL use packages/sql/update.postgresql_psycopg2.sql

Testing SMTP server

To be able to create an account on your test environment an SMTP server is required. A simple debugging SMTP server can be setup using Python.

    python -m smtpd -n -c DebuggingServer localhost:1025

In local_settings.py add entries to set EMAIL_HOST to 'localhost' and EMAIL_PORT to 1025.

Running tests and coverage

To the unittests execute the following commands:

    ./manage.py collectstatic --noinput
    ./manage.py test

Running coverage:

    pip install coverage
    coverage run --omit='env*' --source='.' manage.py test
    coverage report

Django Debug toolbar

To use the Django Debug toolbar install django-debug-toolbar and in local_settings.py set DEBUG_TOOLBAR to True.

Updating iPXE image

The netboot image can be updated by building the AUR package (note that it builds from git master) and copying the resulting ipxe.pxe, ipxe.lkrn and ipxe.efi to sitestatic/netboot. Then as Arch Linux Developer sign them with your PGP key gpg --output ipxe.efi.sig --detach-sig ipxe.efi.

Production Installation

Arch Linux has an Ansible role for Archweb in their infrastructure repo.

vim: set syntax=markdown et: