[katello-devel] developing & deploying on multiple platforms
Dmitri Dolguikh
dmitri at redhat.com
Thu Aug 23 06:37:13 UTC 2012
Hey all,
We currently have two, soon to be three platforms that we support: RHEL
6.3+ (client and server), F16, and F17. I'll talk about support (AKA
production deployment) and development separately.
Support.
Each of the platforms has its own set of ruby-gems that it ships with,
and we use in our deployment on said platform. I propose that for each
of deployment platforms we create a branch, and *bundle* and potentially
freeze (in bundler sense of the word) all of that platform dependencies,
including development ones. We tag it, just like we usually do, when we
generate an rpm for that platform.
The benefits of this approach are:
- no need for multiple gem repositories (this stuff is slowly changing
on support-platforms)
- deployment setup is easily and consistently replicated on any
platform (and saves us from situations when newer development dependency
relies on a production dependency that is not available on a given platform)
- packaging-specific information is kept away from the main
development branch
Development.
We use the same set of newer version of dependencies on any platform
(including those above). We develop using gems, changing Gemfile as
often as required. We convert gems to rpms as we go - this is similar to
Conductor development model.
The benefits of this approach are:
- very easy to update/modify dependencies
- no need to maintain custom gem repository, we can rely on rubygems.com
- development setup is easily and consistently replicated on any platform
Thoughts/opinions?
-d
More information about the katello-devel
mailing list