Dne 28. 01. 22 v 16:18 Pavel Valena napsal(a):
On Fri, Jan 28, 2022 at 2:06 PM Peter Boy <pboy(a)uni-bremen.de>
wrote:
> Hi Vit,
>
> thanks for the info. I'm still considering packaging Redmine. There are not so
many, really free project management software options. Personally, I never did development
in Ruby, but a student of mine is a big Ruby fan. So the Ruby side is doable.
Hello,
I can try building it in COPR[1], if you'd be interested in
collaboration. I think it would be better to handle everything in COPR
though (I'm the maintainer of RoR; building RoR in COPR regularly[2]).
We can build it together with Rails (even with 6.1.x) in one repo, but
only in F35[3] life-cycle, because F36 will have 7.0 already. Maybe it
would be easier to maintain it for something like epel-8 or epel-9
(you can build that in COPR too), as there're no rails there (we can
build those). But some manual/upstream Ruby fixes would be required.
[1]
https://docs.pagure.org/copr.copr/user_documentation.html
[2]
https://copr.fedorainfracloud.org/coprs/pvalena/ruby-on-rails/
[3]
https://src.fedoraproject.org/rpms/rubygem-rails/blob/f35/f/rubygem-rails...
> I don't want to take up too much of your time, but regarding the Fedora side, I
would probably need information. Currently, I have 2 questions:
>
> Current Redmine requires Ruby 2.7. It’s a module in Fedora 35. As a module, it must
not be installed in parallel with current 3.0 (or 3.1 in F36). So, would a Redmine package
restrict the complete installation to Ruby 2.7? Or would conflict with other Ruby programs
or development environments? (In Java, we install several JVM versions in parallel and
each program can pick a fitting one).
Ruby does not have parallel installations of Ruby, apart from modules.
It itself would need to be packaged as a module (this can be done in
COPR also). But from my experience compatibility across versions of
Ruby (at least the latest ones) is quite good, so I would try running
it with 3.0.
> In Java there are a lot of dependency (and version) issues, too. This leads to quite
elaborate spec files and version tracking, and a lot of work. So I'm used to it to
some extent.
>
> Redmine 4.2 needs rails 5.2, indeed. And in gemfile there are mostly very specific
version specifications, likely as outdated as rails is. If I understand bundler correctly,
I can store those gems in ~/vendor and make everything private to Redmine. Is that the
proper way? Or what is the proper Fedora way?
Running it with Rails 5.2 would be possible, but in Fedora installing
anything to ~/vendor goes against the packaging. The philosophy is to
build all the dependencies that would be installed by bundler as RPMs
instead.
I'd say this philosophy was overcome. While noble (and don't get me
wrong, I very much like it and obey it whenever possible), that might be
one of reasons why we don't have Redmine in Fedora.
So I believe that for this reason, the bundling policy was relaxed quite
some time ago and it would be reasonable for this case, if used wisely.
I.e.
* use as many system gems as possible and vendor only where inevitable
and as a last resort
* make sure we strive to improve the compatibility and remove the need
for bundling
BTW, bundle everything and remove incrementaly is also good start,
because in the mean time, the incentive is working application. I have
seen too many failures when everything was attempted to be unbundled
from beginning.
Vít