[Gluster-devel] Location of distaf tests
Niels de Vos
ndevos at redhat.com
Thu Mar 24 09:30:59 UTC 2016
On Thu, Mar 24, 2016 at 12:05:29PM +0530, Raghavendra Talur wrote:
> On Wed, Mar 23, 2016 at 9:56 PM, M S Vishwanath Bhat <msvbhat at gmail.com>
> wrote:
>
> >
> >
> > On 18 March 2016 at 02:47, Jonathan Holloway <jholloway at redhat.com> wrote:
> >
> >>
> >>
> >> ------------------------------
> >>
> >> *From: *"M S Vishwanath Bhat" <msvbhat at gmail.com>
> >> *To: *"Niels de Vos" <ndevos at redhat.com>
> >> *Cc: *"Gluster Devel" <gluster-devel at gluster.org>
> >> *Sent: *Thursday, March 17, 2016 8:18:23 AM
> >> *Subject: *Re: [Gluster-devel] Location of distaf tests
> >>
> >>
> >>
> >>
> >> On 17 March 2016 at 10:50, Niels de Vos <ndevos at redhat.com> wrote:
> >>
> >>> On Wed, Mar 09, 2016 at 08:26:44PM +0530, M S Vishwanath Bhat wrote:
> >>> > On 9 March 2016 at 19:39, Kaushal M <kshlmster at gmail.com> wrote:
> >>> >
> >>> > > On Wed, Mar 9, 2016 at 7:02 PM, M S Vishwanath Bhat <
> >>> msvbhat at gmail.com>
> >>> > > wrote:
> >>> > > > Hi,
> >>> > > >
> >>> > > > When we were discussing about the readiness of distaf for upstream
> >>> test
> >>> > > > automation, this question came up, That we should have a process or
> >>> > > workflow
> >>> > > > for proposing, reviewing and including the tests somewhere.
> >>> > > >
> >>> > > > Right now the tests are part of distaf repository
> >>> > > > (github.com/gluster/distaf) itself. And contributing to distaf is
> >>> by
> >>> > > sending
> >>> > > > a PR. But we want this to be included in gerrit so that review and
> >>> > > > contributing process becomes much easier. But the question still
> >>> > > remains...
> >>> > > > where? Right now I can think of below options.
> >>> > > >
> >>> > > > * Use the same distaf repo in github for tests as well.
> >>> > > > * Create a separate repo distaf_gluster_tests (or something
> >>> similar) and
> >>> > > > have all the tests there.
> >>> > > > * Or have a tests/distaf/ directory inside glusterfs repository.
> >>> And this
> >>> > > > tests can be bundled in a rpm and distributed. This directory will
> >>> have
> >>> > > both
> >>> > > > the test cases and related library functions.
> >>> > >
> >>> > > I prefer this approach. It makes it easier for developers to submit
> >>> > > tests along with their changes, as is the case with our regression
> >>> > > tests now.
> >>> > >
> >>> > > By library functions, I'm assuming you mean helper libraries related
> >>> > > to gluster, which will be used in the tests which will be written.
> >>> > >
> >>> >
> >>> > Yes, I mean helper functions which are related to gluster. The
> >>> framework
> >>> > itself will be made a python package. At least that's the plan.
> >>>
> >>> +1 for the tests in tests/distaf/ . I think I would like the libs to be
> >>> part of the main distaf project. That would make it easier to run distaf
> >>> for other projects that integrate with Gluster (like Samba,
> >>> NFS-Ganesha and the like). The upstream projects can that use distaf for
> >>> their integration with Gluster if they choose so.
> >>>
> >>
> >> My concern with having libs in main distaf project is that, libs and test
> >> cases are very much tied together. So when someone writes a testcase, they
> >> write and/or modify the related gluster libs along with it. And the one
> >> needs to go back and forth between the testcase and gluster libs while
> >> writing and debugging the case. If they are in separate repo/package, it
> >> makes it bit difficult (not impossible) for test case writer.
> >>
> >> If everyone is of the same opinion that gluster libs should be part of
> >> main distaf repo, I can still do it when I package it next week.
> >>
> >>
> >> I'm now thinking we should go ahead and keep it three distinct projects:
> >> - Gluster: testcase--and supporting functions that are not a good fit for
> >> the libs
> >> - distaf-libs-gluster: core libarary and utility functions
> >> - distaf: framework only
> >>
> >
> > But that (having more than one repo) kind of defeats the purpose of
> > developers having to concern themselves with only single repo
> > (glusterfs.git). Since I couldn't discuss this in weekly gluster meeting in
> > #gluster-meeting, let me propose my solution here.
> >
>
> This proposal from Jonathan of 3 repos is what I like the best for long
> term.
Same here, although having distaf-libs-gluster in the man distaf
framework might be good too. Many frameworks also provide plugins of
some kind, I see the libs as something like a plugin.
In the end, I do not really care very much. Just check with whoever is
writing test-cases that need library extensions. Hopefully the library
changes are rare (on future) and new test-cases do not need any
framework/libs modifications. Once the libs are (more) stable, maybe
move them to the main distaf repo.
> > Library functions and test cases both go into a subdirectory inside
> > glusterfs.git. This helps for devs and people writing test case for
> > gluster. And we find a way to sync the libraries to distaf.git, so that
> > each time a package is made, it is available for integrating projects to
> > make use of. I know this is not very elegant way of dealing with the
> > problem, but I couldn't think of anything which would fit all requirements.
> >
>
> If you think distaf-libs-gluster can have more improvements and it makes
> sense to have them with tests for now; we can have 2 repos temporarily
> 1. Gluster git has tests + distaf-libs-gluster ( We can even avoid
> packaging these two for now. Just let them be part of Gluster repo. )
> 2. distaf repo has distaf framework only
I really would like to see the tests (and distaf-libs) packaged too.
This makes it much easier for writing and running test cases. All the
tests that we do in the CentOS CI should only install RPMs, that makes
it very simple to run the same tests on different environments.
At the moment we package the tests/ directory for non-official builds
already. We do not want to provide the glusterfs-regression-tests RPM in
repositories for users where they can install the package and easily
break their existing deployment. But installing the package on a
test-machine with the matching binary RPMs makes testing pretty smooth.
Niels
>
>
> >
> > Jonathan, Niels, Kaushal, Raghavendra Talur - Your thoughts?
> >
> > Best Regards,
> > Vishwanath
> >
> >
> >> Here's some of my reasoning...
> >> - We're already talking about not putting the libs in the Gluster repo as
> >> an option, so from a convenience perspective it's not as relevant which
> >> repo is being used (distaf or distaf-gluster-libs).
> >> - And if we're already talking about the possibility of a refactor to
> >> split the libs out down the road, it's not much different to talk refactor
> >> to roll the libs into the distaf project should they become a problem to
> >> maintain.
> >> - With that said, if looking to have distaf adopted by a wider
> >> non-Gluster audience, we'll want to split the libs out down the road
> >> anyway. It would also lay the foundation for others
> >> (distaf-libs-<your-project-here>).
> >> - The Maintainer/Reviewer/Contributor demographic isn't necessarily the
> >> same across all three and the Maintainer/Reviewer will most likely play a
> >> larger role initially as we build out the libs and figure out what goes
> >> where, what works, etc.
> >> I'm just thinking it would be easier to manage that separately in
> >> the beginning.
> >> - If we are including the libs in the distaf project, how will the libs
> >> be consumed? Roll them in the distaf package? Separate package? Git clone
> >> and setup.py?
> >> I like the concept of separate distaf and distaf-libs-gluster
> >> packages that can be versioned and maintained separately. It keeps them
> >> flexible and clean/clear of each other, and any framework changes that are
> >> required by a library change can be managed through the packaging.
> >> We can still do that if the libs are in the same repo, but in my
> >> opinion it's not as clean and the value add in having them combined is
> >> minimal.
> >> - It shouldn't take that long to create the new project and may save us
> >> some inevitable headache down the road.
> >>
> >> Either way, I agree with Niels that the sooner the better--so if a
> >> separate repo for distaf-libs-gluster would create an unacceptable delay,
> >> rolling libs into the distaf project works for me.
> >>
> >> Cheers,
> >> Jonathan
> >>
> >> Best Regards,
> >> Vishwanath
> >>
> >>>
> >>> > > I'm also in favor of including them here as well. This will help keep
> >>> > > DiSTAF free of an Gluster specific cruft and allow it to be
> >>> (possibly)
> >>> > > reusable by others.
> >>> > >
> >>> >
> >>> > The recent changes makes it specific to gluster, but very easy to make
> >>> it
> >>> > generic.
> >>>
> >>> Starting Gluster specific is fine, later on when things are in use and
> >>> working the way we need it should be trivial to make it more generic.
> >>> Just keep a generic way for adding new functionalities for now, and file
> >>> issues in GitHub for the parts that need to get refactored.
> >>>
> >>> The sooner we can start using distaf and gain (more) real world
> >>> experience the better.
> >>>
> >>> Thanks,
> >>> Niels
> >>>
> >>>
> >>> > Best Regards,
> >>> > Vishwanath
> >>> >
> >>> >
> >>> > >
> >>> > > >
> >>> > > > Please let us know what your preferred option is. If you have any
> >>> other
> >>> > > > ideas, please let us know as well.
> >>> > > >
> >>> > > > Best Regards,
> >>> > > > Vishwanath
> >>> > > >
> >>> > > >
> >>> > > > _______________________________________________
> >>> > > > Gluster-devel mailing list
> >>> > > > Gluster-devel at gluster.org
> >>> > > > http://www.gluster.org/mailman/listinfo/gluster-devel
> >>> > >
> >>>
> >>> > _______________________________________________
> >>> > Gluster-devel mailing list
> >>> > Gluster-devel at gluster.org
> >>> > http://www.gluster.org/mailman/listinfo/gluster-devel
> >>>
> >>>
> >>
> >> _______________________________________________
> >> Gluster-devel mailing list
> >> Gluster-devel at gluster.org
> >> http://www.gluster.org/mailman/listinfo/gluster-devel
> >>
> >>
> >>
> >
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://www.gluster.org/pipermail/gluster-devel/attachments/20160324/18ed8ede/attachment.sig>
More information about the Gluster-devel
mailing list