---------- Forwarded message ----------
From:
Heikki Linnakangas <hlinna...@pivotal.io>Date: Thu, Oct 12, 2017 at 11:25 PM
Subject: Re: Development and initial-trial platforms: governance over adding / removing "support"
To: Robert Eckhardt <
reck...@pivotal.io>, Daniel Gustafsson <
dgust...@pivotal.io>
Cc: Greenplum Developers <
gpdb...@greenplum.org>, "C.J. Jameson" <
cjam...@pivotal.io>
On 10/13/2017 06:10 AM, Robert Eckhardt wrote:
On Oct 12, 2017 6:07 PM, "Daniel Gustafsson" <dgust...@pivotal.io> wrote:
On 12 Oct 2017, at 17:56, C.J. Jameson <cjam...@pivotal.io> wrote:
3. On this particular question, should we veer towards more platforms /
vehicles, or fewer but higher quality?
Regardless of fewer/more (I have less of a strong opinion there), the ones
we
do adopt into the tree should be considered first class citizens that we as
a
community collectively have a responsibility to keep as green as the build
pipeline.
+1
We also need enough ways to have a GPDB cluster so that developers can
build things for gpdb. Having a strong community means not only people
being able to contribute code to gpdb but also allowing them to build the
ecosystem of tools surrounding gpdb.
Agreed.
To make that possible, let's make GPDB easy to package. That means:
* Minimize dependencies. Reuse is good, but often re-implementing something is better, after all, if it avoids having to link with an extra library.
* Use programming languages, compilers, etc. that we already depend on.
* Use autoconf checks for any libraries or versions that you do depend on. That way you at least get a nice "libfoo version 1.23 or later is needed". Use #ifdefs and configure options to make it possible to build without extra dependencies.
* Write regression tests in a way that doesn't unnecessarily depend on optional features or tools.
Easy packaging will make the "what are the supported platforms?" question less relevant, because you can easily build and run it on any platform, with few changes. And it will make our life easier, by reducing the amount of platform-specific scripts and code that we need to maintain.
- Heikki
On Thu, Oct 12, 2017 at 5:56 PM, C.J. Jameson <cjam...@pivotal.io> wrote:
Hi all,
I wanted to follow-up on a discussion many of the committers held recently. On the one hand, we want many avenues for people to hack on our code and give Greenplum a spin. On the other hand, we're concerned about the quality and maintenance of these delivery mechanisms.
Especially to less-involved members of the Greenplum community, we're interested in your thoughts on this tradeoff, and your experiences getting started with GPDB!
A prime example is Docker. There is a Dockerfile at the root of the main repo (
https://github.com/greenplum-db/gpdb/blob/master/Dockerfile) and lots of people are familiar with Docker and would love to use it. However, we don't publish an image from that dockerfile, it hasn't been updated in 4 months, and confusingly, we do use different Docker-compatible images for the majority of our Concourse testing pipelines.
Another example is the brew tap (
https://github.com/greenplum-db/homebrew-tap) -- it's for MacOS convenience and currently works. But it's maintained by best-effort only, still requires a number of manual steps (not ideal customer experience), and MacOS isn't an OS that users would use in production.
In similar veins, we could talk about the Vagrantfile, the OS-specific READMEs, plans for rpm / deb packaging ( --> package managers? ).
1. What's our objective in having platforms beyond `./compile; make; make install`?
2. How do we make a decision on new platforms / vehicles? (how does governance work?)
3. On this particular question, should we veer towards more platforms / vehicles, or fewer but higher quality?
Thanks,
C.J.