dirtsimple / poste.io

poste.io mail server, but with IP management and custom webmail plugins
153 stars 28 forks source link

Consider targeting version 2 rather than 2.2.2? #3

Closed cmer closed 4 years ago

cmer commented 4 years ago

Would you consider changing FROM analogic/poste.io:2.2.2 to FROM analogic/poste.io:2 in order to benefit from updates made to poste.io?

pjeby commented 4 years ago

Not really. I have to test each version to make sure that the patches apply cleanly, and that no new patches are required for any added functionality. This makes blindly building from upstream a problem unless somebody's going to test it first, which isn't a trivial thing when there's so much functionality. Frankly, I keep discovering new things that need patching in 2.2.2 (like 422e76f0c2e), without yet seeing what 2.2.19 is gonna break or add to the picture.

At some point, though, I should have a way to manage that, but it will involve extracting and diffing upstream releases to find out what was changed and whether it impacts the patches. Even so, I can't see how that could be automatic, so it will still require human review.

Now, would it make sense to turn the upstream into an ARG so you can custom build based on a specific upstream version? Absolutely. So I've just added that in b310e9b. Now you can just add something like:

image: dirtsimple/poste.io:dev
build:
  context: https://github.com/dirtsimple.org/poste.io.git
  args:
    - UPSTREAM=2.2.19

to your service definition and docker-compose build servicename. (But of course, you'll be using code that may or may not work, since I haven't tested against 2.2.19 yet.)

pjeby commented 4 years ago

Update: As of 333667d, the unstable tag tracks upstream 2.2.19. A lot of changes were required, so depending on an upstream of 2 would definitely not have worked. (In particular, most of the web UI would have broken, as well as the haraka rspamd plugin.)

cmer commented 4 years ago

This is awesome and makes a lot of sense. Thanks!