We could probably add a lint that rejects the spelling `task("` pretty
easily that would catch most of these.

On Thu, Dec 8, 2022 at 11:34 AM Luke Cwik via dev <dev@beam.apache.org>
wrote:

> I have found the Gradle build reports very useful to enumerate
> deprecations and an easier thing to look at over the command line output.
>
> On Thu, Dec 8, 2022 at 8:26 AM Damon Douglas via dev <dev@beam.apache.org>
> wrote:
>
>> Thank you, Kerry, for your kind and encouraging words!
>>
>> Kenn, I wondered as well whether there exist proactive options.  I know
>> that gradle will warn of soon-to-be deprecated syntax in the build.gradle
>> files when executing gradle tasks on the command-line.  Perhaps we can
>> start there.  Not to sound cliche, but with any process improvement,
>> awareness is the first step.
>>
>> On Mon, Dec 5, 2022 at 3:54 PM Kenneth Knowles <k...@apache.org> wrote:
>>
>>> Nice!
>>>
>>> I believe at some point in the past we made a pass to try to convert our
>>> stuff to this model. I wonder if we can prevent it proactively somehow,
>>> like disabling the legacy way of creating tasks or something.
>>>
>>> Kenn
>>>
>>> On Mon, Dec 5, 2022 at 6:25 AM Kerry Donny-Clark via dev <
>>> dev@beam.apache.org> wrote:
>>>
>>>> Thanks Damon! I really appreciate how clear your emails are here.
>>>> Instead of my usual feeling of "I don't quite understand, and don't have
>>>> time to get context" I can read all the context in the mail.
>>>> This error message had confused me, so I really appreciate the cleanup
>>>> and explanation.
>>>>
>>>> On Fri, Dec 2, 2022, 7:28 PM Damon Douglas via dev <dev@beam.apache.org>
>>>> wrote:
>>>>
>>>>> Hello Everyone,
>>>>>
>>>>> *If you are new to Beam and coming from non-Java language conventions,
>>>>> it is likely you are new to gradle.  At the end of this email is a list of
>>>>> definitions and references to help understand this email.*
>>>>>
>>>>> *Short Version (For those who know gradle)*:
>>>>> A pull request [1] may fix the continual error message "Error: Backend
>>>>> initialization required, please run "terraform init"".  The PR applies 
>>>>> Task
>>>>> Configuration Avoidance [2] by applying changes to a few tasks from
>>>>> tasks(String) to tasks.register(String).
>>>>>
>>>>> *Long Version (For those who are not as familiar with gradle)*:
>>>>>
>>>>> I write this not as an expert but as someone still learning.  Gradle
>>>>> [3] is the software we use in the Beam repository to automate many needed
>>>>> tasks associated with building and testing code.  It is typically used in
>>>>> Java projects but can be extended for other purposes.  We store code
>>>>> related to our Beam Playground [4] that also uses gradle though it is not
>>>>> mainly a Java project.  The unit of work for Gradle is what is called a
>>>>> task.  To run a task you open a terminal and type "./gradlew
>>>>> nameOfMyTask".  There are two main ways to create a custom task in our
>>>>> build.gradle files.  One is writing task("doSomething") and the other is
>>>>> tasks.register("doSomethingElse").  According to [2], the recommendation 
>>>>> is
>>>>> to use the tasks.register("doSomething").  This avoids executing other 
>>>>> work
>>>>> (configuration but don't worry about it for now) until one runs the
>>>>> doSomething task or another task we are running depends on it.
>>>>>
>>>>> So why were we seeing this "Error: Backend initialization required"
>>>>> message all the time?  The reason is that tasks were configured as
>>>>> task("doSomething").  All I had to do was change this to
>>>>> tasks.register("doSomething") and it removed the message.
>>>>>
>>>>> *Definitions/References*
>>>>>
>>>>> 1. https://github.com/apache/beam/pull/24509
>>>>> 2.
>>>>> https://docs.gradle.org/current/userguide/task_configuration_avoidance.html
>>>>> 3. https://docs.gradle.org/current/userguide/what_is_gradle.html
>>>>> 4. https://play.beam.apache.org/
>>>>>
>>>>> *Suggested Learning Path To Understand This Email*
>>>>> 1.
>>>>> https://docs.gradle.org/current/samples/sample_building_java_libraries.html
>>>>> 2. https://docs.gradle.org/current/userguide/build_lifecycle.html
>>>>> 3. https://docs.gradle.org/current/userguide/tutorial_using_tasks.html
>>>>> 4.
>>>>> https://docs.gradle.org/current/userguide/task_configuration_avoidance.html
>>>>>
>>>>> Best,
>>>>>
>>>>> Damon
>>>>>
>>>>>

Reply via email to