Mail archive
alpine-devel

[alpine-devel] How to package Web applications

From: A. Wilcox <awilfox_at_adelielinux.org>
Date: Thu, 14 Dec 2017 00:13:38 -0600

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJaMhaPAAoJEMspy1GSK50UepUP/2jf0JU6WzXB+IZhznqvxfWP
mcDt1cJn/uCBsGKsOr8HfJ+bcLt2YGlXsRqcwltIYF7eUF90f49La/RhfWRxjUuh
k1JxFax5v6TvJV7Tm0ZQkWxlqxg6rrKDQNJD/rliAtrs3ieb+OxQaht8CLsjI3bY
fYLjrY8EwpXAMN1APlrumjzMN0WQByb0cIb/Ohh2kg4yLrs0EubhWNllbnUL/Ah8
TOc4tYjjuLZKSKNAgAX2RR3A8CTLfDaMutx6W1U0DT7k/MAArs2MDiJR1HZsJpQQ
oKScrXRyQUPBoxnP8dodVbyr9PZcANx2J13M2aKu6LHVH5coqb/rS6MaW7B1Dvoz
BXI1q1YXfPiEju0Ul2FGnRWbtFjMbe2t1YxfwKz1+o/RH9Sm5coqWEAKU3O9q+h1
JqPoU0AbJr7gvxT582oOBe9qVTsNJggV73F5JJ/vYj3dyleGdYcdv6K82oH887GC
SxauKxLpy2MPo2Pn+UIVF9qoE526kzZg8j3AA83OjAkVFtqN2Le51Kns6owj3wew
BO/uuVhapmQ2hDWKbNgjXNTN1o26kDP6pVWqCCysLD76hsMQUkDxvq+IMHECs0mp
vNthqmjsv33kcX/Y4o1P8FmYM/PrMnmmSicT5XbM0/R5M/4+mticyE/oMxiw18T4
63HNUyfl9RJTjqhsEpDm
=IrbS
-----END PGP SIGNATURE-----


---
Unsubscribe:  alpine-devel+unsubscribe_at_lists.alpinelinux.org
Help:         alpine-devel+help_at_lists.alpinelinux.org
---
Received on Thu Dec 14 2017 - 00:13:38 GMT