Package: hydrilla
Hydrilla (Python implementation)This is the repository of Python incarnation ofHydrilla, a repository software to serveHaketilopackages.The information below is meant to help hack on the codebase. If you're instead looking for some noob-friendly documentation, see theuser manual.DependenciesRuntimePython3 (>= 3.7)hydrilla.builderflaskclickjsonschema (>= 3.0)Buildsetuptoolswheelsetuptools_scmbabelTestpytestreuseBuildingWe're using setuptools. You can build a wheel underdist/withpython3-mbuildOptionally, add a--no-isolationoption to the second command to have it use system packages where possible instead of downloading all dependencies from PyPI.The generated .whl file can then be used to install Hydrilla either globally or in the current Python virtualenv:python3-mpipinstalldist/put_the_name_of_generated_file_here.whlPyPI considerationsCommands likepython3 -m buildandpython3 -m pipbut alsovirtualenvwill by default download the dependencies from PyPI repository^pypi. Although this is what many people want, it carries along a freedom issue. PyPI is not committed to only hosting libre software packages^pypi_freewareand, like any platform allowing upload of code by the public, has lower package standards than repositories of many operating system distributions. For this reason you are encouraged to use the dependencies as provided by your distribution.To perform the build and installation without PyPI, first install all dependencies system-wide. For example, in Debian-based distributions (including Trisquel):sudoaptinstallpython3-flaskpython3-flaskpython3-jsonschema\python3-setuptoolspython3-setuptools-scmpython3-babelpython3-wheelThen, block programs you're about to spawn from accessinghttps://pypi.org. If running on a GNU/Linux system you can utilize Linux user namespaces:unshare-UrnThe above will put you in a network-isolated shell. If you're using a virtualenv, activate itaftertheunsharecommand.Now, in unpacked source directories ofbothhydrilla-builderandhydrilla, run the build and installation commands:python3-mbuild--no-isolation
python3-mpipinstalldist/hydrilla*.whl# or use the full file nameTestingFor tests to pass you need compiled message catalogs to be present. If you've performed the build at least once, they're already there. Otherwise, you need to run./setup.py compile_catalog. Then you can run the actual tests:python3-mpytestRunningHydrilla commandHydrilla includes ahydrillashell command that can be used to quickly and easily spawn a local instance, e.g.:hydrilla -m /path/to/where/package/files/to/serve/are/stored -p 10112This will cause the resources from provided path to be served athttp://127.0.0.1:10112/.The actual packages to serve are made usingHydrilla builder.For more information about available options, pass the--helpflag tohydrillacommand:hydrilla--helpIf you navigate your POSIX shell to Hydrilla sources directory, you can also consult the included manpage (mantool required):man./doc/man/man1/hydrilla.1Last but not least, you might find it useful to consult the default, internal configuration file of Hydrilla that resides undersrc/hydrilla/server/config.jsonin the sources repository.WSGIIf you want to test a more production-suitable deployment option, consult sample Apache2 config files and a WSGI script supplied indoc/examplesdirectory.CopyingHydrilla is Copyright (C) 2021-2022 Wojtek Kosior and contributors, entirely available under the GNU Affero General Public License version 3 or later. Some files might also give you broader permissions, see comments inside them.I, Wojtek Kosior, thereby promise not to sue for violation of this project's license. Although I request that you do not make use this code in a proprietary program, I am not going to enforce this in court.ContributingPlease visit our Redmine instance athttps://hydrillabugs.koszko.org.You can also write an email tokoszko@koszko.org.