Subject: [alpine-devel] How to package Web applications

From: "A. Wilcox" <[email-masked]>
Date: Thu, 14 Dec 2017 00:13:38 -0600

Hello Alpinists,

I am trying to package Taiga[1] for Alpine.

I was wondering what dependencies that I should use:

- - Only python3 and py3-pip / py3-virtualenv.  Then have Taiga install
its deps in a venv folder using the requirements.txt file included.

This means there is much less modules needing to packaged for Alpine,
so less maintenance burden.  But it does also mean that we would need
a post-upgrade script that updates the venv, and hope it doesn't break.

- - All the deps are written out manually.  APK controls the modules
that Taiga requires, and we need to write the versions that Taiga is
compatible with in the APKBUILD.

Much more work at the beginning, but assuming the Python modules are
maintained[2], it may be slightly simpler to version-bump it (assuming
no new modules are required in later versions).

If the answer is the latter, I was also wondering how to handle its
optional dependencies:

- - Have splitpkgs that are blank contents but have the deps.  So, for
instance, taiga-async (supporting running import/export and webhooks
in the background without holding up the web worker process) would be
empty but have rabbitmq, redis, and celery as dependencies.

- - Make one big package with all possible dependencies explicitly
specified.  Ouch, this would be very large indeed!

I also wonder about the configuration:

- - Depending on the answer above, should all features be enabled by
default?  If it is split, should the config be updated by a post-inst
/ post-deinst script per split package that automatically enables /
disables that feature?

Thank you for your time.  I look forward to bringing nice, open source
project management utilities to all users of Alpine!  =)

Best,
- --arw

[1]: https://taiga.io/

[2]: Depending on the number of modules that there are, I may or may
not be able to maintain them all myself.  I don't want to make a very
large commitment when I don't know exactly how to package Python
correctly in Alpine, and I don't really want to deal with / support Py2.

- -- 
A. Wilcox (awilfox)
Project Lead, Adélie Linux
http://adelielinux.org

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---