Maybe making a backup first would improve things?

My first feeling was just let the user do this, but I work in a bunch of
envs and it's very nice to have.

At worst the task description and any doc can say WARNING!: we are going to
edit your file if you do this, there will be a .bak or something.

Mark

On Mon, Sep 16, 2019 at 1:36 PM Mark Miller <markrmil...@gmail.com> wrote:

> That's against Gradle best practices, if you look it up, this is the way
> Gradle is intended to work. Settings like
>
> That task description can warn about editing your file, but I feel it's
> pretty safe given that you have to decide to use it.
>
> We don't remove anything and we don't change controversial settings
> (unless they break us, like configure on demand).
>
> Settings like org.gradle.workers.max are used by the Daemon and meant to
> be pretty universal as Daemons are intended to be reused.
>
> Another property is ours - if you have overridden it, asking for these
> settings changes will change it. Good?
>
> Configure on demand will break us and is experimental and is noted around
> a variety of bugs, so we disable it.
>
> Sure, just smashing up someones ~/.gradle/gradle.properties is not nice,
> but making required and performance adjustments at request seems great to
> me.
>
> - Mark
>
> On Sun, Sep 15, 2019 at 10:56 PM Gus Heck <gus.h...@gmail.com> wrote:
>
>> Haven't looked at your code, but it sounds a bit scary for you (or
>> whomever comes after you) to touch my ~/.gradle/gradle.properties.
>> Sometimes I have some pretty important stuff there.... Can we use the
>> project specific gradle.properties in the project root dir and make it
>> .gitignore?
>>
>> On Sun, Sep 15, 2019 at 8:47 PM Mark Miller <markrmil...@gmail.com>
>> wrote:
>>
>>> Okay, there is now a task called defaultUserConfig
>>>
>>> You can do gw defaultUserConfig to set some recommended settings in
>>> ~/.gradle/gradle.properties. By default they should be more relaxed, but we
>>> can tune as needed.
>>>
>>> For better build performance but also more resource usage you can do:
>>>
>>> gw defaultUserConfig --style=aggressive
>>>
>>> Mark
>>>
>>> On Sun, Sep 15, 2019 at 5:50 PM Mark Miller <markrmil...@gmail.com>
>>> wrote:
>>>
>>>> By the way, I did hear about the hack day and some Gradle testing,
>>>> which is great, and very useful. Totally needed, but we also need a bit of
>>>> a more deep core developer view of things vs the old build as well. The
>>>> type of stuff that’s much harder to tease out than verifying all the new
>>>> build targets and such. Of course a lot of that can come after we switch,
>>>> but I have a sneaky feeling some core devs will have deep opinions about
>>>> certain things.
>>>>
>>>> Ill add a new task for default config setup.
>>>>
>>>> Mark
>>>>
>>>> On Sun, Sep 15, 2019 at 5:12 PM Mark Miller <markrmil...@gmail.com>
>>>> wrote:
>>>>
>>>>> I'll just detail it out here as well:
>>>>>
>>>>> You can configure parallelism in ~/.gradle/gradle.properties
>>>>>
>>>>> org.gradle.workers.max=2
>>>>> tests_jvms=5
>>>>>
>>>>> org.gradle.workers.max is controlled by gradle and defaults to the
>>>>> number of cores detected - I wish I could change to divided by 2.
>>>>> test_jvms is controlled by us and defaults to the number of cores
>>>>> detected / 2.
>>>>>
>>>>> org.gradle.workers.max  controls the total number of jvms that will be
>>>>> run in parallel - for tasks or tests or whatever gradle is doing.
>>>>> test_jvms controls how many parallel jvms a module will use for tests,
>>>>> but that is also limited by org.gradle.workers.max
>>>>>
>>>>> You should try setting both to cores / 2 and work down from there if
>>>>> needed.
>>>>>
>>>>> When running tests across multiple modules, org.gradle.workers.max is
>>>>> the actual limit for test jvms spun up because each module is only limited
>>>>> to test_jvms, but ALL tasks are limited to org.gradle.workers.max and
>>>>> module tasks are run in parallel by default.
>>>>>
>>>>> By setting them the same, we get similar behavior whether we run tests
>>>>> from the root directory of the project (all tests) or from a single module
>>>>> (say solr-core).
>>>>>
>>>>> On Sun, Sep 15, 2019 at 5:03 PM Mark Miller <markrmil...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> I've added more about that here:
>>>>>> https://cwiki.apache.org/confluence/display/SOLR/Intro+to+the+Gradle+build
>>>>>>
>>>>>> It's configurable, but difficult for us to choose a default based on
>>>>>> cores as far as I can tell and gradles default, which is based on cores
>>>>>> detected, is too high, especially because of hyperthreading.
>>>>>>
>>>>>> Probably the best we can do is default it to a hard 2 or 4 and let
>>>>>> people raise it depending on what wait you want to error. In both cases 
>>>>>> the
>>>>>> majority of people will want to change it.
>>>>>>
>>>>>> On Sun, Sep 15, 2019 at 3:39 PM Gus Heck <gus.h...@gmail.com> wrote:
>>>>>>
>>>>>>> Not sure if you heard, but about a half a dozen folks tried it out
>>>>>>> on macs and one on windows at the hack day on Tuesday before Activate. 
>>>>>>> It
>>>>>>> caused some scrambling for sharing of power bricks (a single run of the
>>>>>>> tests eats 70% of a fully charged 2018 macbook pro battery in 45 min), 
>>>>>>> but
>>>>>>> the good news is it only failed on well known flaky tests and on the one
>>>>>>> windows machine and that in the PDF building for the ref guide (and 
>>>>>>> there
>>>>>>> was that small bit with the error message and the AtomicBoolean that I
>>>>>>> fixed). I've heard some opinions that maybe we don't need the PDF 
>>>>>>> version
>>>>>>> in the future, The one bit of feedback that came out of it was it would 
>>>>>>> be
>>>>>>> nice to have a task that tweaked the configs things to not peg the
>>>>>>> processor quite so efficiently :). Certainly we do want the mode for 
>>>>>>> full
>>>>>>> utilization to be available, but a background mode would be good too in
>>>>>>> case folks need to do other work.
>>>>>>>
>>>>>>> -Gus
>>>>>>>
>>>>>>> On Sun, Sep 15, 2019 at 3:24 PM Mark Miller <markrmil...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Okay, I've tried to spread that link a little on social media as
>>>>>>>> well.
>>>>>>>>
>>>>>>>> Please do some experimentation. Especially those of you that use or
>>>>>>>> know more esoteric things about the build. The basics are pretty solid,
>>>>>>>> most have been working for months now, it's the corners and crannies 
>>>>>>>> that
>>>>>>>> I'm more concerned about. You could have built and run tests a few 
>>>>>>>> months
>>>>>>>> ago and said, nice, it's working, but then I've done 10,000 things 
>>>>>>>> since
>>>>>>>> then that were necessary. You may easily not realize things are a 
>>>>>>>> problem
>>>>>>>> until you really dig into something.
>>>>>>>>
>>>>>>>> The more that devs can start trying out Gradle now, the less
>>>>>>>> overlap of the two build systems we will need.
>>>>>>>>
>>>>>>>> The idea of the overlap is that it will almost force many of us to
>>>>>>>> start trying things out - at which point we will start to understand 
>>>>>>>> any
>>>>>>>> key things that are missing, key problems or bugs, etc. If I just make 
>>>>>>>> the
>>>>>>>> switch and let the cards fall were they may, those cards are almost
>>>>>>>> certainly going to be very disruptive and annoying to a lot of people.
>>>>>>>>
>>>>>>>> It will also give us a chance to start rolling CI and other tools
>>>>>>>> over to using the Gradle build while ant+ivy are still available and in
>>>>>>>> charge. I don't think it's a great idea to try and do this all at one
>>>>>>>> moment, that will be difficult to coordinate and be more disruptive to 
>>>>>>>> less
>>>>>>>> interested devs. We would like to keep the dual build situation 
>>>>>>>> contained
>>>>>>>> and short though. That's why I have a plan to pull out if we don't make
>>>>>>>> enough progress by a month or twos time (closer to a month).
>>>>>>>>
>>>>>>>> If we have enough experimentation ahead of time, the overlap can be
>>>>>>>> very short - we start moving things like jenkins jobs over and when we 
>>>>>>>> are
>>>>>>>> done and confident the world is not ending, we make some adjustments so
>>>>>>>> that gradle owns the build (eg the dependency tree) and then remove
>>>>>>>> ant+ivy+maven.
>>>>>>>>
>>>>>>>> Some things like the smoke tester and what not *can* come shortly
>>>>>>>> after we switch I think - we have until the 9 release to truly get
>>>>>>>> everything in order (keeping in mind that we are still developing so 
>>>>>>>> some
>>>>>>>> things are still critical). But we need CI and other basics all moved 
>>>>>>>> over
>>>>>>>> when we flip the ownership switch.
>>>>>>>>
>>>>>>>> - Mark
>>>>>>>>
>>>>>>>> On Sun, Sep 15, 2019 at 12:28 PM Mark Miller <markrmil...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I've started to put together a little guide to help people ramp up
>>>>>>>>> here:
>>>>>>>>> https://cwiki.apache.org/confluence/display/SOLR/Intro+to+the+Gradle+build
>>>>>>>>>
>>>>>>>>> On Sat, Sep 14, 2019 at 9:09 PM Mark Miller <markrmil...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> https://issues.apache.org/jira/browse/SOLR-13452
>>>>>>>>>> Update the lucene-solr build from Ivy+Ant+Maven (shadow build) to
>>>>>>>>>> Gradle.
>>>>>>>>>>
>>>>>>>>>> Hey all.
>>>>>>>>>>
>>>>>>>>>> Here is my Lucene and Solr 'move to Gradle' plans.
>>>>>>>>>>
>>>>>>>>>> * I plan on trying to commit the Gradle build by 9/30
>>>>>>>>>> * In the meantime I'll do a bit more work on packaging,
>>>>>>>>>> publishing, and dependencies.
>>>>>>>>>> * It would be great if others could start digging in a bit as
>>>>>>>>>> well.
>>>>>>>>>> * I plan to try and sidecar Gradle to begin with. Once that
>>>>>>>>>> happens, I really need others to start digging in as we have a lot 
>>>>>>>>>> to do
>>>>>>>>>> (switch ci and other tools to the new build, figure out new release 
>>>>>>>>>> docs
>>>>>>>>>> and issues, finish the Solr documentation module (I'll try and get 
>>>>>>>>>> to that
>>>>>>>>>> earlier than later), and generally make things pleasant across as 
>>>>>>>>>> many dev
>>>>>>>>>> envs as we can.
>>>>>>>>>> * Beyond that, there will likely be a longer tail of smaller
>>>>>>>>>> issues or missing things even after we make the switch.
>>>>>>>>>> * I'll put some effort into the side car experiment for another
>>>>>>>>>> month or two perhaps (maybe not much in November)
>>>>>>>>>> * If things are not looking like we will be able to flip the
>>>>>>>>>> switch, I'll look at pulling out Gradle.
>>>>>>>>>>
>>>>>>>>>> - Mark
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> - Mark
>>>>>>>>>
>>>>>>>>> http://about.me/markrmiller
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> - Mark
>>>>>>>>
>>>>>>>> http://about.me/markrmiller
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> http://www.needhamsoftware.com (work)
>>>>>>> http://www.the111shift.com (play)
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> - Mark
>>>>>>
>>>>>> http://about.me/markrmiller
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> - Mark
>>>>>
>>>>> http://about.me/markrmiller
>>>>>
>>>> --
>>>> - Mark
>>>>
>>>> http://about.me/markrmiller
>>>>
>>>
>>>
>>> --
>>> - Mark
>>>
>>> http://about.me/markrmiller
>>>
>>
>>
>> --
>> http://www.needhamsoftware.com (work)
>> http://www.the111shift.com (play)
>>
>
>
> --
> - Mark
>
> http://about.me/markrmiller
>


-- 
- Mark

http://about.me/markrmiller

Reply via email to