Add dev env investigation to Badges
This documents outcomes of development environment investigation to Badges ARC documentation. Signed-off-by: Michal Konečný <mkonecny@redhat.com>
This commit is contained in:
parent
062b64273c
commit
af24160c4a
2 changed files with 105 additions and 0 deletions
104
docs/badges/exploring_the_development_environment.rst
Normal file
104
docs/badges/exploring_the_development_environment.rst
Normal file
|
@ -0,0 +1,104 @@
|
|||
.. _exploring_the_development_environment:
|
||||
|
||||
Exploring the development environment
|
||||
====
|
||||
|
||||
This document will go through all repositories of Badges project
|
||||
and describe the state of development environment and how it could be improved.
|
||||
|
||||
Tahrir
|
||||
----
|
||||
|
||||
`Tahrir <https://github.com/fedora-infra/tahrir>`_ is a Fedora badges frontend.
|
||||
The guide for setting up development environment is described in
|
||||
`DEVELOPING.md <https://github.com/fedora-infra/tahrir/blob/develop/DEVELOPING.md>`_
|
||||
and it's using `Vagrant <https://www.vagrantup.com/>`_.
|
||||
|
||||
Vagrantfile.example is using F29, which is no longer available. Updated this to F36,
|
||||
but encountered issue when tried to provision the machine by ansible
|
||||
`Failed to connect to the host via ssh: Shared connection to xxx.xxx.xxx.xxx closed.`
|
||||
Solved by defining the domain of VM in Vagrantfile::
|
||||
|
||||
config.vm.define "tahrir" do |tahrir|
|
||||
tahrir.vm.host_name = "tahrir.example.com"
|
||||
|
||||
tahrir.vm.provider :libvirt do |domain|
|
||||
# Season to taste
|
||||
domain.cpus = 4
|
||||
domain.graphics_type = "spice"
|
||||
domain.memory = 2048
|
||||
domain.video_type = "qxl"
|
||||
end
|
||||
end
|
||||
|
||||
The installation of the tahrir needed a specific version of setuptools (57.5.0),
|
||||
later version doesn’t have 2to3 in it.
|
||||
|
||||
The provisioning steps in the ansible needed to be done manually, because of this setuptools issue.
|
||||
Installation in a virtual environment inside the vagrant machine was finished successfully.
|
||||
|
||||
Initialization of the database failed on
|
||||
`ImportError: cannot import name 'ZopeTransactionExtension' from 'zope.sqlalchemy'`.
|
||||
To get over this I needed to remove `extension=ZopeTransactionExtension()` and corresponding import
|
||||
from `.venv/lib64/python3.8/site-packages/tahrir_api-0.8.1-py3.8.egg/tahrir_api/model.py`.
|
||||
|
||||
Next issue during the initialization of DB was `ModuleNotFoundError: No module named 'utils'`
|
||||
Fixed this by adding `.` before local imports in
|
||||
`.venv/lib64/python3.8/site-packages/tahrir_api-0.8.1-py3.8.egg/tahrir_api/dbapi.py`
|
||||
This was the end of the provisioning phase.
|
||||
|
||||
When trying to run `pserve --reload development.ini` I ended up with error
|
||||
`TypeError: SignedCookieSessionFactory() got an unexpected keyword argument 'cookie_secure'`
|
||||
Fixed by removing `cookie_` prefix from
|
||||
`SignedCookieSessionFactory` call in `/vagrant/tahrir/__init__.py`
|
||||
|
||||
Another error
|
||||
`ImportError: cannot import name 'authenticated_userid' from 'pyramid.security' (unknown location)`
|
||||
Fixed this by changing the dependency `pyramid < 2.0` in `setup.py`
|
||||
See https://github.com/stevearc/pypicloud/issues/274 for more info
|
||||
|
||||
After that the instance is running, but it’s not accessible outside of the VM.
|
||||
When trying curl http://0.0.0.0:8000 it throws error
|
||||
`TypeError: __init__() got an unexpected keyword argument 'extension'`
|
||||
|
||||
At this point we wouldn't want to put more effort in it, because it means starting to fix
|
||||
issues in app itself and this is not part of the investigation.
|
||||
|
||||
Recommendation
|
||||
^^^^
|
||||
|
||||
Before fixing the development environment Tahrir needs to be updated to python 3.0, so
|
||||
it could run no never versions of Fedora.
|
||||
|
||||
The development environment itself could be used with few enhancements. See investigation
|
||||
above.
|
||||
|
||||
|
||||
tahrir_api
|
||||
----
|
||||
|
||||
tahrir_api is part of Fedora Badges backend and provides API and database to work with.
|
||||
The guide for setting up development environment is available in
|
||||
`README <https://github.com/fedora-infra/tahrir-api#readme>`_ and it's using Python
|
||||
virtual environment.
|
||||
|
||||
The guide is working without issue, but it's missing any tools to work with tahrir_api
|
||||
itself.
|
||||
|
||||
Recommendation
|
||||
^^^^
|
||||
|
||||
Provide guide or tools to work with standalone tahrir_api in development environment.
|
||||
|
||||
|
||||
fedbadges
|
||||
----
|
||||
|
||||
fedbadges is part of Fedora Badges backend and provides consumer for fedmsg messages.
|
||||
There is no guide or any description of development environment.
|
||||
|
||||
Recommendation
|
||||
^^^^
|
||||
|
||||
Create a development environment that allows you to work with fedbadges and document
|
||||
it.
|
|
@ -38,6 +38,7 @@ Resources
|
|||
* `Fedora Badges frontend <https://github.com/fedora-infra/tahrir>`_
|
||||
* `Issue ticket about the ongoing efforts of revitalization <https://github.com/fedora-infra/fedbadges/issues/90>`_
|
||||
* `Infrastructure developer guide <https://docs.fedoraproject.org/en-US/infra/developer_guide/>`_
|
||||
* `Badges documentation in Fedora docs <https://docs.fedoraproject.org/en-US/badges/>`_
|
||||
|
||||
Index
|
||||
----
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue