Giter Site home page Giter Site logo

Comments (5)

elefeint avatar elefeint commented on August 22, 2024

Lazy property evaluation is not supported in this plugin. Leaving it open as a feature request.

from appengine-plugins.

yigit avatar yigit commented on August 22, 2024

Note that this is happening for other properties too.
e.g. this also doesn't work:

setAppEngineDirectory(buildAppEngineDirectoryTask.map {
  it.outputDirectory
})

The problem seems to be in these lines where the inputs are being normalized into a file immediately.

If you change StageAppYamlExtension's properties to RegularFileProperty, that should fix the issue but not sure if you would need to break API to do that.

from appengine-plugins.

elefeint avatar elefeint commented on August 22, 2024

We would accept a user contribution for the feature.

Backwards compatibility would be ideal, although not always possible (e.g. the user programmatically accessing the value will have to call .get() on the object, which is not needed when the value is a string).

from appengine-plugins.

TWiStErRob avatar TWiStErRob commented on August 22, 2024

Wanted to open a similar issue. Laziness is missing overall. The problem goes as far as NPE in some cases because a task is not realized yet, so a workaround like this is needed:

// Eagerly configure Jar task, because AppEngineAppYamlPlugin uses Groovy properties APIs to access it.
tasks.named("jar").get()

Based on best practices from Google's very own @liutikas, here are some easily fixable red flags from AppEngineAppYamlPlugin:

  • project.getTasks().create(). -> .getTasks().register
  • project.afterEvaluate {} -> Provider.map and Gradle org.gradle.api.provider.Property
  • project.getTasks().getByName().... -> getTasks().named().configure { }
  • project.getProperties().get("jar") -> getTasks().named("jar") + provider

They all have solutions, some are breaking as you described above. Would anyone be willing to collab on having a stab at this with me? And would anyone from @GoogleCloudPlatform promise to review the changes we make to land it, because it looks like @chanseokoh tried something similar 1.5 years ago, but it stalled.

from appengine-plugins.

martinbonnin avatar martinbonnin commented on August 22, 2024

Still interested by this. Haven't looked at my GCP projects for a while but I can try to do a small PR at some point to get the ball rolling. Happy to review/test anything too.

from appengine-plugins.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.