+1 for a separate repo On Fri, 24 Aug 2018 at 06:40, Michael Shuler <mich...@pbandjelly.org> wrote:
> +1 for a separate repository. > > Michael > > On 08/23/2018 07:30 PM, Murukesh Mohanan wrote: > > FWIW, I think it's possible to merge in a separate repository into a > > subdirectory while keeping git history, but I don't know if the other way > > will be possible if commits span other parts of the repo as well\* (which > > will likely happen sooner or later). So a separate repo is a choice we > can > > backtrack from if it proves problematic later. > > > > > > \* it may be possible, but the commit messages might not make much sense > > after that. > > > > On Fri, 24 Aug 2018, 09:12 Benedict Elliott Smith, <bened...@apache.org> > > wrote: > > > >> +1 also for separate repo > >> > >>> On 24 Aug 2018, at 01:11, Jeff Jirsa <jji...@gmail.com> wrote: > >>> > >>> +1 for separate repo > >>> > >>> > >>> -- > >>> Jeff Jirsa > >>> > >>> > >>>> On Aug 23, 2018, at 1:00 PM, sankalp kohli <kohlisank...@gmail.com> > >> wrote: > >>>> > >>>> Separate repo is in a majority so far. Please reply to this thread > with > >>>> your responses. > >>>> > >>>> On Tue, Aug 21, 2018 at 4:34 PM Rahul Singh < > >> rahul.xavier.si...@gmail.com> > >>>> wrote: > >>>> > >>>>> +1 for separate repo. Especially on git. Maybe make it a submodule. > >>>>> > >>>>> Rahul > >>>>> On Aug 21, 2018, 3:33 PM -0500, Stefan Podkowinski <s...@apache.org > >, > >>>>> wrote: > >>>>>> I'm also currently -1 on the in-tree option. > >>>>>> > >>>>>> Additionally to what Aleksey mentioned, I also don't see how we > could > >>>>>> make this work with the current build and release process. Our > scripts > >>>>>> [0] for creating releases (tarballs and native packages), would need > >>>>>> significant work to add support for an independent side-car. Our ant > >>>>>> based build process is also not a great start for adding new tasks, > >> let > >>>>>> alone integrating other tool chains for web components for a > potential > >>>>> UI. > >>>>>> > >>>>>> [0] https://git-wip-us.apache.org/repos/asf?p=cassandra-builds.git > >>>>>> > >>>>>> > >>>>>>> On 21.08.18 19:20, Aleksey Yeshchenko wrote: > >>>>>>> Sure, allow me to elaborate - at least a little bit. But before I > do, > >>>>> just let me note that this wasn’t a veto -1, just a shorthand for “I > >> don’t > >>>>> like this option”. > >>>>>>> > >>>>>>> It would be nice to have sidecar and C* version and release cycles > >>>>> fully decoupled. I know it *can* be done when in-tree, but the way we > >> vote > >>>>> on releases with tags off current branches would have to change > >> somehow. > >>>>> Probably painfully. It would be nice to be able to easily enforce > >> freezes, > >>>>> like the upcoming one, on the whole C* repo, while allowing feature > >>>>> development on the sidecar. It would be nice to not have sidecar > >> commits in > >>>>> emails from commits@ mailing list. It would be nice to not have C* > CI > >>>>> trigger necessarily on sidecar commits. Groups of people working on > >> the two > >>>>> repos will mostly be different too, so what’s the point in sharing > the > >> repo? > >>>>>>> > >>>>>>> Having an extra repo with its own set of branches is cheap and > easy - > >>>>> we already do that with dtests. I like cleanly separated things when > >>>>> coupling is avoidable. As such I would prefer the sidecar to live in > a > >>>>> separate new repo, while still being part of the C* project. > >>>>>>> > >>>>>>> — > >>>>>>> AY > >>>>>>> > >>>>>>> On 21 August 2018 at 17:06:39, sankalp kohli ( > kohlisank...@gmail.com > >> ) > >>>>> wrote: > >>>>>>> > >>>>>>> Hi Aleksey, > >>>>>>> Can you please elaborate on the reasons for your -1? This > >>>>>>> way we can make progress towards any one approach. > >>>>>>> Thanks, > >>>>>>> Sankalp > >>>>>>> > >>>>>>> On Tue, Aug 21, 2018 at 8:39 AM Aleksey Yeshchenko < > >> alek...@apple.com> > >>>>>>> wrote: > >>>>>>> > >>>>>>>> FWIW I’m strongly -1 on in-tree approach, and would much prefer a > >>>>> separate > >>>>>>>> repo, dtest-style. > >>>>>>>> > >>>>>>>> — > >>>>>>>> AY > >>>>>>>> > >>>>>>>> On 21 August 2018 at 16:36:02, Jeremiah D Jordan ( > >>>>>>>> jeremiah.jor...@gmail.com) wrote: > >>>>>>>> > >>>>>>>> I think the following is a very big plus of it being in tree: > >>>>>>>>>> * Faster iteration speed in general. For example when we need to > >>>>> add a > >>>>>>>>>> new > >>>>>>>>>> JMX endpoint that the sidecar needs, or change something from > >>>>> JMX to a > >>>>>>>>>> virtual table (e.g. for repair, or monitoring) we can do all > >>>>> changes > >>>>>>>>>> including tests as one commit within the main repository and > >>>>> don't > >>>>>>>> have > >>>>>>>>>> to > >>>>>>>>>> commit to main repo, sidecar repo, > >>>>>>>> > >>>>>>>> I also don’t see a reason why the sidecar being in tree means it > >>>>> would not > >>>>>>>> work in a mixed version cluster. The nodes themselves must work > in a > >>>>> mixed > >>>>>>>> version cluster during a rolling upgrade, I would expect any > >>>>> management > >>>>>>>> side car to operate in the same manor, in tree or not. > >>>>>>>> > >>>>>>>> This tool will be pretty tightly coupled with the server, and as > >>>>> someone > >>>>>>>> with experience developing such tightly coupled tools, it is > *much* > >>>>> easier > >>>>>>>> to make sure you don’t accidentally break them if they are in > tree. > >>>>> How > >>>>>>>> many times has someone updated some JMX interface, updated > nodetool, > >>>>> and > >>>>>>>> then moved on? Breaking all the external tools not in tree, > without > >>>>>>>> realizing it. The above point about being able to modify > interfaces > >>>>> and the > >>>>>>>> side car in the same commit is huge in terms of making sure > someone > >>>>> doesn’t > >>>>>>>> inadvertently break the side car while fixing something else. > >>>>>>>> > >>>>>>>> -Jeremiah > >>>>>>>> > >>>>>>>> > >>>>>>>>> On Aug 21, 2018, at 10:28 AM, Jonathan Haddad <j...@jonhaddad.com > > > >>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>> Strongly agree with Blake. In my mind supporting multiple > versions > >>>>> is > >>>>>>>>> mandatory. As I've stated before, we already do it with Reaper, > I'd > >>>>>>>>> consider it a major misstep if we couldn't support multiple with > >>>>> the > >>>>>>>>> project - provided admin tool. It's the same reason dtests are > >>>>> separate > >>>>>>>> - > >>>>>>>>> they work with multiple versions. > >>>>>>>>> > >>>>>>>>> The number of repos does not affect distribution - if we want to > >>>>> ship > >>>>>>>>> Cassandra with the admin / repair tool (we should, imo), that can > >>>>> be > >>>>>>>> part > >>>>>>>>> of the build process. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> On Mon, Aug 20, 2018 at 9:21 PM Blake Eggleston < > >>>>> beggles...@apple.com> > >>>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>>> If the sidecar is going to be on a different release cadence, or > >>>>>>>> support > >>>>>>>>>> interacting with mixed mode clusters, then it should definitely > >>>>> be in > >>>>>>>> a > >>>>>>>>>> separate repo. I don’t even know how branching and merging would > >>>>> work > >>>>>>>> in a > >>>>>>>>>> repo that supports 2 separate release targets and/or mixed mode > >>>>>>>>>> compatibility, but I’m pretty sure it would be a mess. > >>>>>>>>>> > >>>>>>>>>> As a cluster management tool, mixed mode is probably going to be > >>>>> a goal > >>>>>>>> at > >>>>>>>>>> some point. As a new project, it will benefit from not being > >>>>> tied to > >>>>>>>> the C* > >>>>>>>>>> release cycle (which would probably delay any sidecar release > >>>>> until > >>>>>>>>>> whenever 4.1 is cut). > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> On August 20, 2018 at 3:22:54 PM, Joseph Lynch ( > >>>>> joe.e.ly...@gmail.com) > >>>>>>>> > >>>>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>> I think that the pros of incubating the sidecar in tree as a > tool > >>>>>>>> first > >>>>>>>>>> outweigh the alternatives at this point of time. Rough tradeoffs > >>>>> that > >>>>>>>> I > >>>>>>>>>> see: > >>>>>>>>>> > >>>>>>>>>> Unique pros of in tree sidecar: > >>>>>>>>>> * Faster iteration speed in general. For example when we need to > >>>>> add a > >>>>>>>>>> new > >>>>>>>>>> JMX endpoint that the sidecar needs, or change something from > >>>>> JMX to a > >>>>>>>>>> virtual table (e.g. for repair, or monitoring) we can do all > >>>>> changes > >>>>>>>>>> including tests as one commit within the main repository and > >>>>> don't > >>>>>>>> have > >>>>>>>>>> to > >>>>>>>>>> commit to main repo, sidecar repo, and dtest repo (juggling > >>>>> version > >>>>>>>>>> compatibility along the way). > >>>>>>>>>> * We can in the future more easily move serious background > >>>>>>>> functionality > >>>>>>>>>> like compaction or repair itself (not repair scheduling, actual > >>>>>>>>>> repairing) > >>>>>>>>>> into the sidecar with a single atomic commit, we don't have to > >>>>> do two > >>>>>>>>>> phase > >>>>>>>>>> commits where we add some IPC mechanism to allow us to support > >>>>> it in > >>>>>>>>>> both, > >>>>>>>>>> then turn it on in the sidecar, then turn it off in the server, > >>>>> etc... > >>>>>>>>>> * I think that the verification is much easier (sounds like > >>>>> Jonathan > >>>>>>>>>> disagreed on the other thread, I could certainly be wrong), and > >>>>> we > >>>>>>>> don't > >>>>>>>>>> have to worry about testing matrices to assure that the sidecar > >>>>> works > >>>>>>>>>> with > >>>>>>>>>> various versions as the version of the sidecar that is released > >>>>> with > >>>>>>>> that > >>>>>>>>>> version of Cassandra is the only one we have to certify works. > If > >>>>>>>> people > >>>>>>>>>> want to pull in new versions or maintain backports they can do > >>>>> that at > >>>>>>>>>> their discretion/testing. > >>>>>>>>>> * We can iterate and prove value before committing to a choice. > >>>>> Since > >>>>>>>> it > >>>>>>>>>> will be a separate artifact from the start we can always move > the > >>>>>>>>>> artifact > >>>>>>>>>> to a separate repo later (but moving the other way is harder). > >>>>>>>>>> * Users will get the sidecar "for free" when they install the > >>>>> daemon, > >>>>>>>>>> they > >>>>>>>>>> don't need to take affirmative action to e.g. be able to restart > >>>>> their > >>>>>>>>>> cluster, run repair, or back their data up; it just comes out of > >>>>> the > >>>>>>>> box > >>>>>>>>>> for free. > >>>>>>>>>> > >>>>>>>>>> Unique pros of a separate repository sidecar: > >>>>>>>>>> * We can use a more modern build system like gradle instead of > >>>>> ant > >>>>>>>>>> * Merging changes is less "scary" I guess (I feel like if you're > >>>>> not > >>>>>>>>>> touching the daemon this is already true but I could see this > >>>>> being > >>>>>>>> less > >>>>>>>>>> worrisome for some). > >>>>>>>>>> * Releasing a separate artifact is somewhat easier from a > >>>>> separate > >>>>>>>> repo > >>>>>>>>>> (especially if we have gradle which makes e.g. building debs and > >>>>> rpms > >>>>>>>>>> trivial). > >>>>>>>>>> * We could backport to previous versions without getting into > >>>>>>>> arguments > >>>>>>>>>> about bug fixes vs features. > >>>>>>>>>> * Committers could be different from the main repo, which ... > >>>>> may be a > >>>>>>>>>> useful thing > >>>>>>>>>> > >>>>>>>>>> Non unique pros of a sidecar (could be achieved in the main repo > >>>>> or in > >>>>>>>> a > >>>>>>>>>> separate repo): > >>>>>>>>>> * A separate build artifact .jar/.deb/.rpm that can be installed > >>>>>>>>>> separately. It's slightly easier with a separate repo but > >>>>> certainly > >>>>>>>> not > >>>>>>>>>> out > >>>>>>>>>> of reach within a single repo (indeed the current patch already > >>>>> creates > >>>>>>>> a > >>>>>>>>>> separate jar, and we could create a separate .deb reasonably > >>>>> easily). > >>>>>>>>>> Personally I think having a separate .deb/.rpm is premature at > >>>>> this > >>>>>>>> point > >>>>>>>>>> (for companies that really want it they can build their own > >>>>> packages > >>>>>>>>>> using > >>>>>>>>>> the .jars), but I think it really is a distracting issue from > >>>>> where > >>>>>>>> the > >>>>>>>>>> patch should go as we can always choose to remove experimental > >>>>> .jar > >>>>>>>> files > >>>>>>>>>> that the main daemon doesn't touch. > >>>>>>>>>> * A separate process lifecycle. No matter where the sidecar > >>>>> goes, we > >>>>>>>> get > >>>>>>>>>> the benefit of restarting it being less dangerous for > >>>>> availability > >>>>>>>> than > >>>>>>>>>> restarting the main daemon. > >>>>>>>>>> > >>>>>>>>>> That all being said, these are strong opinions weakly held and I > >>>>> would > >>>>>>>>>> rather get something actually committed so that we can prove > >>>>> value one > >>>>>>>>>> way > >>>>>>>>>> or the other and am therefore, of course, happy to put sidecar > >>>>> patches > >>>>>>>>>> wherever someone can review and commit it. > >>>>>>>>>> > >>>>>>>>>> -Joey > >>>>>>>>>> > >>>>>>>>>> On Mon, Aug 20, 2018 at 1:52 PM sankalp kohli < > >>>>> kohlisank...@gmail.com> > >>>>>>>> > >>>>>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>>> Hi, > >>>>>>>>>>> I am starting a new thread to get consensus on where the side > >>>>> car > >>>>>>>>>>> should be contributed. > >>>>>>>>>>> > >>>>>>>>>>> Please send your responses with pro/cons of each approach or > >>>>> any > >>>>>>>> other > >>>>>>>>>>> approach. Please be clear which approach you will pick while > >>>>> still > >>>>>>>>>> giving > >>>>>>>>>>> pros/cons of both approaches. > >>>>>>>>>>> > >>>>>>>>>>> Thanks. > >>>>>>>>>>> Sankalp > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> -- > >>>>>>>>> Jon Haddad > >>>>>>>>> http://www.rustyrazorblade.com > >>>>>>>>> twitter: rustyrazorblade > >>>>>>>> > >>>>>>>> > >>>>>>>> > >> --------------------------------------------------------------------- > >>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org > >>>>>>>> For additional commands, e-mail: dev-h...@cassandra.apache.org > >>>>>>>> > >>>>>>>> > >>>>>> > >>>>>> > >>>>>> > --------------------------------------------------------------------- > >>>>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org > >>>>>> For additional commands, e-mail: dev-h...@cassandra.apache.org > >>>>>> > >>>>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org > >>> For additional commands, e-mail: dev-h...@cassandra.apache.org > >>> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org > >> For additional commands, e-mail: dev-h...@cassandra.apache.org > >> > >> -- > > > > Muru > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org > For additional commands, e-mail: dev-h...@cassandra.apache.org > >