text:
Synthesis failed for java-websecurityscanner

Hello! Autosynth couldn't regenerate java-websecurityscanner. :broken_heart:
Here's the output from running synth.py:
bf2fe5e0352b1dffd7eb15e31809c7fd62
2021-02-08 14:33:23,038 autosynth [DEBUG] > Running: git log -1 --pretty=%at 5de29e9434b63ea6d7e46dc348521c62969af1a1
2021-02-08 14:33:23,041 autosynth [DEBUG] > Running: git log -1 --pretty=%at e935c9ecb47da0f2e054f5f1845f7cf7c95fa625
2021-02-08 14:33:23,045 autosynth [DEBUG] > Running: git log -1 --pretty=%at 140ba24a136c63e7f10a998a63e7898aed63ea7d
2021-02-08 14:33:23,048 autosynth [DEBUG] > Running: git log -1 --pretty=%at 318e351e26ba65b2b3cfa3f61b3b64e3540c3525
2021-02-08 14:33:23,052 autosynth [DEBUG] > Running: git log -1 --pretty=%at 27b2d4f4674840628d0b75c5941e89c12af4764f
2021-02-08 14:33:23,056 autosynth [DEBUG] > Running: git log -1 --pretty=%at 692715c0f23a7bb3bfbbaa300f7620ddfa8c47e5
2021-02-08 14:33:23,059 autosynth [DEBUG] > Running: git log -1 --pretty=%at 33366574ffb9e11737b3547eb6f020ecae0536e8
2021-02-08 14:33:23,063 autosynth [DEBUG] > Running: git log -1 --pretty=%at 4679e7e415221f03ff2a71e3ffad75b9ec41d87e
2021-02-08 14:33:23,069 autosynth [DEBUG] > Running: git checkout bfe0e1116fe1ad356564e6297881f4e63155bdc1
Note: checking out 'bfe0e1116fe1ad356564e6297881f4e63155bdc1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at bfe0e11 chore: regenerate README (#355)
2021-02-08 14:33:23,075 autosynth [DEBUG] > Running: git checkout 8d8c008e56f1af31d57f75561e0f1848ffb29eeb
Note: checking out '8d8c008e56f1af31d57f75561e0f1848ffb29eeb'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 8d8c008e feat: generate sample code in the Java microgenerator
2021-02-08 14:33:23,090 autosynth [DEBUG] > Running: git checkout 4679e7e415221f03ff2a71e3ffad75b9ec41d87e
Note: checking out '4679e7e415221f03ff2a71e3ffad75b9ec41d87e'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 4679e7e docs: update python contributing guide (#943)
2021-02-08 14:33:23,097 autosynth [DEBUG] > Running: git branch -f autosynth-109
2021-02-08 14:33:23,101 autosynth [DEBUG] > Running: git checkout autosynth-109
Switched to branch 'autosynth-109'
2021-02-08 14:33:23,107 autosynth [INFO] > Running synthtool
2021-02-08 14:33:23,107 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2021-02-08 14:33:23,107 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/java-websecurityscanner/109/sponge_log.log
2021-02-08 14:33:23,109 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata synth.metadata synth.py --
2021-02-08 14:33:23,346 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/java-websecurityscanner/synth.py.
On branch autosynth-109
nothing to commit, working tree clean
2021-02-08 14:33:23,494 synthtool [DEBUG] > Ensuring dependencies.
2021-02-08 14:33:23,504 synthtool [DEBUG] > Cloning googleapis.
2021-02-08 14:33:23,505 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/googleapis
2021-02-08 14:33:23,509 synthtool [DEBUG] > Which version of bazel will I run?
bazel 3.0.0
2021-02-08 14:33:23,513 synthtool [DEBUG] > Generating code for: //google/cloud/websecurityscanner/v1alpha:google-cloud-websecurityscanner-v1alpha-java.
2021-02-08 14:33:23,639 synthtool [ERROR] > Failed executing bazel --max_idle_secs=240 build //google/cloud/websecurityscanner/v1alpha:google-cloud-websecurityscanner-v1alpha-java:

Loading:
Loading: 0 packages loaded
INFO: Call stack for the definition of repository 'com_github_grpc_grpc' which is a http_archive (rule definition at /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/bazel_tools/tools/build_defs/repo/http.bzl:296:16):
 - <builtin>
 - /home/kbuilder/.cache/synthtool/googleapis/WORKSPACE:113:1
WARNING: Download from https://github.com/grpc/grpc/archive/v1.33.1.zip failed: class com.google.devtools.build.lib.bazel.repository.downloader.UnrecoverableHttpException GET returned 502 Bad Gateway
ERROR: An error occurred during the fetch of repository 'com_github_grpc_grpc':
   java.io.IOException: Error downloading [https://github.com/grpc/grpc/archive/v1.33.1.zip] to /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/v1.33.1.zip: GET returned 502 Bad Gateway
ERROR: no such package '@com_github_grpc_grpc//bazel': java.io.IOException: Error downloading [https://github.com/grpc/grpc/archive/v1.33.1.zip] to /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/v1.33.1.zip: GET returned 502 Bad Gateway
INFO: Elapsed time: 0.111s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)
FAILED: Build did NOT complete successfully (0 packages loaded)

Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/kbuilder/.cache/synthtool/java-websecurityscanner/synth.py", line 28, in <module>
    bazel_target=f'//google/cloud/{service}/{version}:google-cloud-{service}-{version}-java',
  File "/tmpfs/src/github/synthtool/synthtool/languages/java.py", line 306, in bazel_library
    service=service, version=version, diregapic=diregapic, **kwargs
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 68, in java_library
    service, version, "java", tar_strip_components=0, **kwargs
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 197, in _generate_code
    shell.run(bazel_run_args)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['bazel', '--max_idle_secs=240', 'build', '//google/cloud/websecurityscanner/v1alpha:google-cloud-websecurityscanner-v1alpha-java']' returned non-zero exit status 1.
2021-02-08 14:33:23,719 autosynth [ERROR] > Synthesis failed
2021-02-08 14:33:23,720 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at bfe0e11 chore: regenerate README (#355)
2021-02-08 14:33:23,729 autosynth [DEBUG] > Running: git checkout autosynth
Switched to branch 'autosynth'
2021-02-08 14:33:23,736 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 65, in synthesize_loop
    has_changes = toolbox.synthesize_version_in_new_branch(synthesizer, youngest)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 259, in synthesize_version_in_new_branch
    synthesizer.synthesize(synth_log_path, self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:

source: gharchive/issue

repo: googleapis/java-websecurityscanner

license_type: permissive

license_source: bigquery


text:
chore: disable release please

Fix version number. Disable release-please robot because it uses the
wrong versions for 0.x projects

Lol, owlbot doesn't want me to turn it off. Let me find out how to exclude the file.

source: gharchive/pull-request

repo: googleapis/nodejs-cloud-rad


text:
fix: back-compat for service.ts

These came up while upgrading a few other modules.

Codecov Report

Merging #128 into master will decrease coverage by 0.02%.
The diff coverage is 94.11%.

@@            Coverage Diff             @@
##           master     #128      +/-   ##
==========================================
- Coverage   98.11%   98.08%   -0.03%
==========================================
  Files          15       15
  Lines        2859     2874      +15
  Branches      164      165       +1
==========================================
+ Hits         2805     2819      +14
- Misses         30       31       +1
  Partials       24       24

Impacted Files
Coverage Δ

test/service.ts
99.59% <100%> (+0.01%)
:arrow_up:

src/service.ts
92.06% <83.33%> (-1.16%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 75dd968...e6988e0. Read the comment docs.

authors: JustinBeckwith codecov-io

repo: googleapis/nodejs-common


text:
GA release of Network Connectivity

Package name: @google-cloud/network-connectivity
Current release: beta
Proposed release: GA
Instructions
Check the lists below, adding tests / documentation as required. Once all the "required" boxes are ticked, please create a release and close this issue.
Required

[ ] 28 days elapsed since last beta release with new API surface
[ ] Server API is GA
[ ] Package API is stable, and we can commit to backward compatibility
[ ] All dependencies are GA

Optional

[ ] Most common / important scenarios have descriptive samples
[ ] Public manual methods have at least one usage sample each (excluding overloads)
[ ] Per-API README includes a full description of the API
[ ] Per-API README contains at least one “getting started” sample using the most common API scenario
[ ] Manual code has been reviewed by API producer
[ ] Manual code has been reviewed by a DPE responsible for samples
[ ] 'Client Libraries' page is added to the product documentation in 'APIs & Reference' section of the product's documentation on Cloud Site

Thanks!

Waiting for stable release.

repo: googleapis/nodejs-network-connectivity


text:
docs(subscription): ensure sub options are not removed by ts

Fixes #684

@anguillanneuf you would have to clone the forked branch, npm run docs, and then open docs/index.html.

@callmehiphop Nit: can we update the description for subscriberOptions here to configuration object as well?

@anguillanneuf done!

repo: googleapis/nodejs-pubsub


text:
Update incorrect documentation for getSignedUrl

The documentation for File.getSignedUrl https://cloud.google.com/nodejs/docs/reference/storage/2.5.x/File#getSignedUrl
incorrectly says contentType is optional. It is not, after an hour of debugging I realized from stackoverflow, that you must set the content type when making the url, or the upload fails with a 403 every time.

@zackify Thank you for reporting this issue.
The documentation is correct, but doesn't paint the full picture.
contentType (as well as contentMd5 and extensionHeaders) are optional parameters, however what documentation is lacking is that these parameters and values must be mirrored both ways as headers with the same values. Meaning just like corresponding HTTP header mus be passed if the parameter was set so to a corresponding HTTP header must not be provided if it was not set in getSignedUrl method. Otherwise it will fail with signature mismatch message.
As an example:
Getting a write signedUrl without a contentType as below
  const url = await file.getSignedUrl({
    action: 'write',
    expires: Date.now + 600000
  });

will work fine in the scenario of
  const request = require('request');
  const writableStream = request.put(url);
  writableStream.write('Hello ', console.error);
  writableStream.write('world', console.error);
  writableStream.end('!');

but will fail if piped from a readableStream:
  const readable = getReadableSomehow();
  const writableStream = request.put(url);
  readable.pipe(writableStream);

because request module automatically sets content-type header on 'pipe' event via mime.lookup.

authors: AVaksman zackify

repo: googleapis/nodejs-storage

license_source: github-api


text:
chore: Adding local testing documentation to contributing guide.

Hi team, just adding some stuff to the guide that maybe useful for contributors.

Apologies, this got closed on its own because I deleted the fork. Reopening it for @chingor13's approval.

Can you check the formatted view? I don't think you fixed the problem.

Closing this in favor of #1743.

repo: googleapis/release-please


text:
api-common-java/src/test/java/com/google/api/pathtemplate/PathTemplateTest.complexResourceIdEqualsPathWildcard test erroneously succeeding

https://github.com/googleapis/sdk-platform-java/blob/v2.40.0/api-common-java/src/test/java/com/google/api/pathtemplate/PathTemplateTest.java#L310
@Test
  public void complexResourceIdEqualsPathWildcard() {
    thrown.expect(ValidationException.class);
    PathTemplate template = PathTemplate.create("projects/{project=*}/zones/{zone_a=**}~{zone_b}");
    thrown.expectMessage(
        String.format(
            "parse error: wildcard path not allowed in complex ID resource '%s'", "zone_a"));

    template = PathTemplate.create("projects/{project=*}/zones/{zone_a}.{zone_b=**}");
    thrown.expectMessage(
        String.format(
            "parse error: wildcard path not allowed in complex ID resource '%s'", "zone_b"));
  }

The first template throws the exception as expected and causes the whole test to pass. However, the second template actually does not throw any exception. Either the test needs to be rewritten or he code needs to be refactored to fix this bug.

Delete the second case should be good enough for now, since it never worked.

repo: googleapis/sdk-platform-java


text:
Saving 2D map as .ply

How can I configure cartographer to save a 2d map to something other than a .png?

You can use the assets write pipeline to export e.g. pointclouds, see Exploiting the map generated by Cartographer ROS.

authors: kdaun rowlanddeep

repo: googlecartographer/cartographer


text:
StateColab issue with TodoItemInlineEditor on Android 7.0

In devices or emulators with Android 7.0 it is impossible to edit properly the text of an item in the todo list.
The problem can be reproduced through the following steps:

checkout of the codelab
install the "finished" module app on the device or emulator with Android 7.0 (24).
click on the button "Add random Item".
click on the task that has just been added to the list
try editing the text

It is impossible to add to the text, but it is possible to delete characters.
In other physical devices or emulators with versions different from Android 7.0 (24) everything works as expected.

Using an emulator with API 24 I am unable to reproduce this.

Using an emulator with API 24 I am unable to reproduce this.

Branch main, commit 52f22aabd7d06b89beaaf874bb71e995f388671f
Android Studio Arctic Fox | 2020.3.1 Canary 3
Build #AI-202.7319.50.2031.7019041, built on December 8, 2020
Runtime version: 11.0.8+10-b944.6842174 x86_64
VM: OpenJDK 64-Bit Server VM by N/A
macOS 10.15.6
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 8
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: org.jetbrains.kotlin, com.developerphil.adbidea
Android Gradle Plugin version: 7.0.0-alpha03
Gradle version: 6.8-rc-1
Compose version: 1.0.0-alpha09
Kotlin version: 1.4.21
Physical device:

board: universal7420
brand: samsung
cpu.abi: arm64-v8a
cpu.abilist: arm64-v8a,armeabi-v7a,armeabi
cpu.abilist32: armeabi-v7a,armeabi
cpu.abilist64: arm64-v8a
device: zeroflte
locale: en-GB
manufacturer: samsung
model: SM-G920F
name: zerofltexx
version.release: 7.0
version.sdk: 24

https://user-images.githubusercontent.com/6303224/104033143-6e90de00-51cf-11eb-82a3-84713be8ae2e.mp4
unfortunately I can no longer reproduce the same problem with the emulator

Branch main, commit 52f22aabd7d06b89beaaf874bb71e995f388671f
Android Studio Arctic Fox | 2020.3.1 Canary 3
Build #AI-202.7319.50.2031.7019041, built on December 8, 2020
Runtime version: 11.0.8+10-b944.6842174 x86_64
VM: OpenJDK 64-Bit Server VM by N/A
macOS 10.15.6
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 8
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: org.jetbrains.kotlin, com.developerphil.adbidea
Android Gradle Plugin version: 7.0.0-alpha03
Gradle version: 6.8-rc-1
Compose version: 1.0.0-alpha09
Kotlin version: 1.4.21
Physical device:

board: universal7420
brand: samsung
cpu.abi: arm64-v8a
cpu.abilist: arm64-v8a,armeabi-v7a,armeabi
cpu.abilist32: armeabi-v7a,armeabi
cpu.abilist64: arm64-v8a
device: zeroflte
locale: en-GB
manufacturer: samsung
model: SM-G920F
name: zerofltexx
version.release: 7.0
version.sdk: 24

https://user-images.githubusercontent.com/6303224/104033143-6e90de00-51cf-11eb-82a3-84713be8ae2e.mp4
unfortunately I can no longer reproduce the same problem with the emulator

Thanks for the details. This doesn't look like an issue with the codelab, but with Compose.
I created an issue for this here.
Closing this issue.

Thanks for the details. This doesn't look like an issue with the codelab, but with Compose.
I created an issue for this here.
Closing this issue.

@defio - our engineers have some questions for you to help fix this issue.
Would you mind adding a comment to the official issue so they can start asking some questions?
Thanks!

@florina-muntenescu  of course! I just commented on the ticket in the official issue.

authors: defio florina-muntenescu

repo: googlecodelabs/android-compose-codelabs


text:
[com.google.fonts/check/varfont_instance_names] Add ExtraBlack 1000 weight support

The Cairo PR needed a ExtraBlack 1000 weight added, both Dave and Marc approved this, and it looks like it has been added to the wip spec.
In the Cairo PR, the latest gf-bot report using Fontbakery version: 0.7.21 gives a fail for the check com.google.fonts/check/varfont_instance_names:
🔥 FAIL: Check variable font instances have correct names
com.google.fonts/check/varfont_instance_names

🔥 FAIL Instance name "ExtraBlack" is incorrect. It should be "Black" [code: bad-name]

🔥 FAIL Check has either failed or produced a warning. See our wip spec for further info https://gist.github.com/m4rc1e/8f4c4498519e8a36cd54e16a004275cb [code: bad-instance-names]

It seems like this check needs to be updated to support a ExtraBlack 1000 weight.

I 'm working on this one, thanks for reporting, @eliheuer

Thanks! If you haven't seen it yet, https://github.com/googlefonts/fontbakery/issues/2804 is a closely related issue.

yeah!

Thanks Felipe!

authors: eliheuer felipesanches m4rc1e

repo: googlefonts/fontbakery


text:
Refactor metadata loading and close all streams after loading metadata

b/30669304
b/30726034
b/30807096

cc @hagbard

PTAL

Also, do you think this warrants a minor major version bump (x.y.0)? Although it fixes a rare bug it's not going to change how clients use the library at all, so I'd think not.
I think yes though for inclusion in release notes as code changes?

Code changes: yes mention. Minor/major version bump: no.
2016-08-16 15:10 GMT+02:00 Keghani Kouzoujian notifications@github.com:

Also, do you think this warrants a minor major version bump (x.y.0)?
Although it fixes a rare bug it's not going to change how clients use the
library at all, so I'd think not.
I think yes though for inclusion in release notes as code changes?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/googlei18n/libphonenumber/pull/1256#issuecomment-240096458,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIjiszysrhWcUblfNIiSl_3W8BdfS4UTks5qgbbdgaJpZM4JgGsY
.

LGTM, thanks for the explanations :)

authors: keghani lararennie


text:
Have cloudbuild.yaml skip unit tests

As GitHub presubmit workflow already runs the tests, it is redundant/confusing to have the deploy flow run them again.

Thanks for creating this PR, i'll branch off this and try to add the API key as an argument.

authors: gbuenoandrade tttzach


text:
Package Maps SDK for iOS in .xcframework to ease SPM integration

Comment or +1 this issue if this is something you'd like to see in the library so it can be prioritized. Also a good candidate for contributions.
Is your feature request related to a problem? Please describe.
Currently, integrating this library with SPM requires that developers additionally include Maps SDK for iOS either via CocoaPods or Carthage. In other words, the Maps SDK is not packaged in the .xcframework which causes additional friction and confusion (see #326) while using this library.
Describe the solution you'd like
The Maps SDK for iOS should be included in the .xcframework.zip asset on each release so that developers can just include the iOS Utils library.
Describe alternatives you've considered
Keep existing integration.
Additional context
See #326

As the confused in #326 I'm a proponent. Without it being included I have to maintain Google Maps manually or use Carthage, both of which require a lot of extra steps I'd rather not mess with again. Cocoapods is not an option for my team. Additionally I think it'd be a great idea so the google-maps-ios-utils can maintain the proper corresponding Google Maps version. If there is an version incompatibility down the road, it'd be on the developer to figure out the issue and update either this or Google Maps to the appropriate version.

@michael-mckenna curious... why is CocoaPods not an option for your team?

Mainly two reasons. The primary is that we are transitioning to SwiftPM as it's the officially supported dependency manager. The second is that cocoapods lead to dreadfully slow incremental build times which slowed the development cycle. Switching to Carthage remediated that issue, so there's no looking back for us ;) if memory serves me correctly, we got our incremental build times down from 1m45s on cocoapods to 23s with Carthage. This was also 2-3 years ago.

Wow, that's quite a huge difference 😅  Thanks for providing context.

@michael-mckenna the built XCFramework simply mirrors the architectures that are currently supported by the SDK (arm64
& armv7 for iPhones, and i386 & x86_6 for Simulators). Adding support for Mac Catalyst, which we are evaluating and will eventually support, would be a separate step.

+1 for a solution that would allow using only the officially supported dependency manager.

@michael-mckenna the built XCFramework simply mirrors the architectures that are currently supported by the SDK (arm64
& armv7 for iPhones, and i386 & x86_6 for Simulators). Adding support for Mac Catalyst, which we are evaluating and will eventually support, would be a separate step.

Don't forget add arm64 for Simulators, so we can use it on new arm macs 😉

This is marked as good first issue, but it’s really up to the maintainers and distributors of https://cocoapods.org/pods/GoogleMaps. There is a lot of good information on xcframeworks here: https://github.com/bielikb/xcframeworks. It’s likely a simplification of the existing process for packaging the GoogleMaps framework and wouldn’t take much effort for someone to repackage it.
It is probably possible that someone external to google could download the existing release and repackage it as an xcframework, but I doubt Google wants the officially supported way to use google maps for spm and m1 macs to be: download a modified version of our binaries from someone else...

This is marked as good first issue, but it’s really up to the maintainers and distributors of https://cocoapods.org/pods/GoogleMaps. There is a lot of good information on xcframeworks here: https://github.com/bielikb/xcframeworks. It’s likely a simplification of the existing process for packaging the GoogleMaps framework and wouldn’t take much effort for someone to repackage it.
It is probably possible that someone external to google could download the existing release and repackage it as an xcframework, but I doubt Google wants the officially supported way to use google maps for spm and m1 macs to be: download a modified version of our binaries from someone else...

I filed this issue considering that the existing Maps SDK for iOS .framework could be packaged into the Maps SDK for iOS Utility library .xcframework. However, that's not really how SPM packages work.
Rather, the steps to mark this issue fixed would be: (1) for the Maps SDK for iOS to support .xcframeworks, and (2) update Package.swift for this repo and specify Maps SDK for iOS as a dependency. (1) needs to be done by us, and (2) can be done by us or a contributor. Since this issue is blocked by (1), I'll remove the good first issue label since you are correct that this needs to be provided by us.
(1) currently has no ETA so if you are using .xcframework version of this library you will need to include the Maps SDK for iOS dependency in addition using one of the installation options (CocoaPods, Carthage, or manual).

Big +1 to this issue. I'd love to see GoogleMaps properly available via SPM. It's the primary blocker in moving my large app fully onto SPM now.

Any update on this issue? It’s a blocker for a lot of users.

Please see my comment here https://github.com/googlemaps/maps-sdk-for-ios-samples/issues/70#issuecomment-811231129

Any update on this feature request?

+1, still waiting . xcframework

+1

+1

+1

+1

+1

+1
After the release of the SPM-compatible GoogleSignIn SDK this week, the Google Maps SDK is the last one for us that does not yet support SPM. So this would be highly appreciated🤞

Any updates on SPM and Apple Silicon slices?  This is also our last one that we need to update before we can go 100% SPM, and not need to run our project with Rosetta.

@arriolac Hi! Could you please clarify, since new 6.0.0 version of Google Maps SDK is available and #355 is closed, may we use this new XCFramework version in our local Swift Packages?

+1

+1

+1

+1

+1

+1

+1

+1

+1

Any update on when SPM will be available for google maps.

+1 still waiting for this update.
Last version of google maps sdk allows build on new arm mac so is there anything still blocking the SPM migration ?

+1

+1

+1

+1

+1

+1

+1

Any update on when SPM will be available for google maps

+1

+10

Hi folks, I see the need here. I recommend "starring" the issue on the Maps SDK for iOS Public Issue Tracker as the best way to get notified when SPM support is available for the Maps SDK for iOS. That's the first priority, then the subsequent packaging in this Utils library will be easier.

It is now officially supported https://cloud.google.com/blog/products/maps-platform/google-maps-platform-sdks-for-ios-now-available-through-swift-package-manager

authors: ARamy23 AmarSinghRajput DanijelHuis EastHell ElysiumWhale Neilfau RyuX51 SaidAlSouti Scvairy StefanNestorov TaimoorSaeed VincentDurandChewbi Vl330 akhakimzyanov arriolac blazek cltnschlosser emilismayilov095 federicopolesello iserbius kemalenver leenatekani5 luispadron mathaeus michael-mckenna mthole petropavel13 piotrekjeremicz steffenbirkis stherold thehavre thr1llseek3r tuananhdoqm twprzybysz wangela

repo: googlemaps/google-maps-ios-utils


text:
doing too much work on its main thread

I have the project that uses MVP pattern and I got this message so often. I cannot understand why? All my remote tasks I do with AsyncTask.

You'll probably have more luck posting on stackoverflow. Closing as not related to samples.

authors: JoseAlcerreca mladenrakonjac

repo: googlesamples/android-architecture


text:
Unity 5.2.1f1/5.2.2f1 & 0.5.2: Stretched view when starting in landscape orientation

When in landscape orientation the eye viewports are stretched.

This is observable in any of the following cases:

Default orientation is set to Landscape Left
Default orientation is set to Auto Rotation but only Landscape Left is selected
Default orientation is set to Auto Rotation, all orientations are selected, but calling Screen.orientation = ScreenOrientation.LandscapeLeft; in script.

This only happens when building on a device (testing with Nexus 5 on Android 6 - target API level is 19/4.4), everything looks fine when playing within the editor.
The only configuration I've found which doesn't have this issue requires all of the following:

Default orientation is set to Auto Rotation
Both Landscape Left and Portrait orientations are selected
Not setting Screen.orientation in script
Start app with device in portrait orientation, then rotate to landscape

As suggested in CardboardAndroidDevice.cs I've tried commenting out the GetDisplayMetrics method - no change.
I've tried the following log line just before the return in CardboardAndroidDevice.cs:GetDisplayMetrics:
Debug.Log("METRICS: " + width + ", " + height + " @ " + metrics[3] + " - " + metrics[2] + " - " + Screen.dpi);
This prints the same whether the app is started with the device in portrait or landscape orientation:
METRICS: 1920, 1080 @ 443.345 - 442.451 - 442.898
The DisplayMetricsAndroid workaround listed in #88 doesn't seem to have any effect.

Cannot repro.

authors: arraypad nathanmartz

repo: googlesamples/cardboard-unity


text:
Check for touches property before deep referencing

Fixes TypeError when touching Daydream trackpad caused by the fact
that Daydream controller creates an event object without a touches
property.
See https://github.com/aframevr/aframe/issues/2669 for background info.

Closed in favor of https://github.com/googlevr/webvr-polyfill/pull/230

repo: googlevr/webvr-polyfill


text:
🛑 goormEDU is down

In 2309684, goormEDU (https://edu.goorm.io) was down:

HTTP code: 403
Response time: 739 ms

Resolved: goormEDU is back up in 5c7d932 after 11 minutes.

repo: goorm-dev/goorm-status

license: MIT


text:
🛑 goormEDU is down

In ecbaef5, goormEDU (https://edu.goorm.io) was down:

HTTP code: 403
Response time: 660 ms

Resolved: goormEDU is back up in 7cef2da after 9 minutes.


text:
🛑 goormIDE is down

In d06b89b, goormIDE (https://ide.goorm.io) was down:

HTTP code: 403
Response time: 476 ms

Resolved: goormIDE is back up in 622fc6f after 31 minutes.


text:
🛑 goormIDE is down

In 3e2d6b1, goormIDE (https://ide.goorm.io) was down:

HTTP code: 403
Response time: 786 ms

Resolved: goormIDE is back up in 4d32c70 after 8 minutes.


text:
parsing is not honored in config

Summary
parsing entry set to false manually in the config is not honored.
Steps To Reproduce
Here's the config I have:
autoimport: false
cliptimeout: 45
nopager: false
path: /home/user/password-store
safecontent: false
nocolor: false
parsing: false
mounts: {}

Here is what gopass says about parsing config entry:
$ gopass config parsing
parsing: true

Editing the config with gopass itself will somehow re-order the entries and result in a parsing entry being correctly handled:
$ gopass config parsing false
parsing: false

$ gopass config parsing
parsing: false

$ gopass config
autoclip: false
autoimport: false
cliptimeout: 45
exportkeys: false
nopager: false
notifications: false
parsing: false
path: /home/user/password-store
safecontent: false

Expected behavior
parsing is honored independently where it is in the config file
Environment

OS: linux
gopass Version: 1.12.8

I think the problem might stem from the fact that this config file is a partial one, which wasn't supported before #1968 and whose support is still mostly untested, I'm afraid.
A full config file should contain the following defaults:
autoclip: true
autoimport: true
cliptimeout: 45
exportkeys: true
nopager: false
notifications: true
parsing: true
path: /home/user/.local/share/gopass/stores/root
safecontent: false

so in yours you are missing at least the autoclip option and have an extra field nocolor that is now deprecated.

Okay, further investigations allowed me to discover the problem is actually in our "legacy parsing" of old config files.
To debug it, I tried loading your config file and here is what GOPASS_DEBUG_LOG=gopass.log gopass config told me:
2021/09/28 11:32:59.618746 config/io.go:44	config.loadConfig	Trying to load config from /home/user/.config/gopass/config.yml
2021/09/28 11:32:59.618918 config/io.go:135	config.decode	Trying to unmarshal config into *config.Config
2021/09/28 11:32:59.619091 config/io.go:141	config.decode	Extra elements in config: unknown fields: [nocolor]
2021/09/28 11:32:59.619103 config/io.go:135	config.decode	Trying to unmarshal config into *config.Pre1127
2021/09/28 11:32:59.619515 config/io.go:158	config.decode	Loaded config: *config.Pre1127: &{AutoClip:false AutoImport:false ClipTimeout:45 ExportKeys:false NoColor:false NoPager:false Notifications:false Parsing:false Path:/home/user/password-store SafeContent:false Mounts:map[] ConfigPath: XXX:map[]}
2021/09/28 11:32:59.619557 config/io.go:161	config.decode	Loaded legacy config. Should rewrite config.
2021/09/28 11:32:59.619935 config/io.go:52	config.loadConfig	Loaded config from /home/user/.config/gopass/config.yml: &config.Config{AutoClip:false, AutoImport:false, ClipTimeout:45, ExportKeys:false, NoPager:false, Notifications:false, Parsing:true, Path:"/home/user/password-store", SafeContent:false, Mounts:map[string]string{}, ConfigPath:"/home/user/.config/gopass/config.yml", XXX:map[string]interface {}(nil)}
2021/09/28 11:32:59.620015 cache/disk.go:29	cache.NewOnDisk	New on disk cache reminder created at /home/user/.cache/gopass/gopass/reminder
2021/09/28 11:32:59.620272 action/config.go:40	action.(*Action).printConfigValues	autoclip: false
2021/09/28 11:32:59.620293 action/config.go:40	action.(*Action).printConfigValues	autoimport: false
2021/09/28 11:32:59.620303 action/config.go:40	action.(*Action).printConfigValues	cliptimeout: 45
2021/09/28 11:32:59.620311 action/config.go:40	action.(*Action).printConfigValues	exportkeys: false
2021/09/28 11:32:59.620319 action/config.go:40	action.(*Action).printConfigValues	nopager: false
2021/09/28 11:32:59.620343 action/config.go:40	action.(*Action).printConfigValues	notifications: false
2021/09/28 11:32:59.620352 action/config.go:40	action.(*Action).printConfigValues	parsing: true
2021/09/28 11:32:59.620360 action/config.go:40	action.(*Action).printConfigValues	path: /home/user/password-store
2021/09/28 11:32:59.620368 action/config.go:40	action.(*Action).printConfigValues	safecontent: false

So your config file is recognized as a "legacy" file and it's parsed using the pre-1.12.7 parse, which wrongly specifies:
https://github.com/gopasspw/gopass/blob/f11303d2359cc423c92943aac91bf99f4a421cb3/internal/config/legacy.go#L37
this is a mistake, as the parsing field was added in 1.10.2 and not in 1.12.7.
I'll push a PR shortly to correct it.

Ok, thanks a lot for your help.
If config entries are deprecated/missing, it would be useful to get some warning when using gopass

repo: gopasspw/gopass

license: mit


text:
Dart 2 generator

Currently, router.generator returns a Route<Null>, however MaterialApp is expecting a RouteFactory. This doesn't cause issues on Dart 1, but does when enabling the Dart 2 preview.
This will need to be fixed to make Fluro compatible with Dart 2.

I'm sorry, I was totally wrong here. A RouteFactory is just a Route<dynamic>. I don't know what's erroring then, but it's probably worth taking a look!

repo: goposse/fluro


text:
Requires NSCameraUsageDescription always

When I submit to appstore connect I get an error saying that it is required to have NSCameraUsageDescription key, even though I am not using the camera because I am recording only a ScnView.
Is there a way to disable the part relative to the camera API in the SDK so that Apple does not require NSCameraUsageDescription key?

Hi @giomurru, a good catch.
The SDK doesn't use the camera by any means.
But I think it happens because the SDK imports ARKit in several places.
So, you can safely give any NSCameraUsageDescription.
And I can look at moving ARKit-related functionality to a submodule.

@giomurru  What dependency manager are you using? Cocoapods?

Thank you. That would be great. Yes I am using Cocapods.

@v-grigoriev I found the file that is causing the issue. :-)
It's AVCaptureSession+BaseRecorder.swift
Since I am not using it I just removed it from the target and now when I submit the app to appstoreconnect I don't have any issue of missing NSCameraUsageDescription.

authors: giomurru v-grigoriev

repo: gorastudio-ceo/SCNRecorder


text:
Navigation: Features > Navigation Settings

Book selection: Add support to enable or disable list of book names or grid of book abbreviations
Book selection: Add support to show verse selector after selecting a chapter number

Verse Selector after Chapter done

Done

repo: gordon-cs/appbuilder-pwa


text:
Implemented doctype nodes

This PR implements a new node type named "doctype". It is used for the <!doctype>  tags which works a bit differently than regular tags.
The common tree structure would be:
|- <document node (0)>
   |- <doctype node (1)>
   |- <element node "html" (2)>
   |  |- <element node "head" (3)>
   |  |   |- <element node "title" (4)>
   |- <element node "body" (5)>

Note that the document node (0) is the root node. We use a separate document node type for this, but this isn't really used anywhere except for holding a html tree.
The "document" which we use and create with DocumentBuilder::new_document() is a the structure that holds the node arena and other things. This may be a bit confusing in naming, especially when we will get to the "DOM" document (which is an interface that interacts with our document-tree).
Anyway, for now.. the doctype works, and we are at 92% pass rate.

Would it make sense to repurpose the existing Document node type for this? That's actually what I originally thought it was, I didn't realize it was just a placeholder.
Maybe when creating a new document we have an empty root until we find a doctype token (or force insert a default if not found)
If it's more work than what it's worth, I don't really mind going for this, but just seems a little odd to have both a Document and DocType type

The initial setup was indeed to have a document as a first class node but it turns out we dont really use it. However, there will be some settings (like the quirks mode etc,) that we want to keep in the document because the DOM document interface exposes these properties. I can image that at that point, the document node we have becomes more important

authors: Kiyoshika jaytaph

repo: gosub-browser/gosub-engine


text:
fixed memory leak on OnGlobalLayoutListener

Allows you to remove the OnGlobalLayoutListener from the FAB applied in the MaterialSheetFab so that it doesn't leak the Activity when used in a Fragment.

I wonder if we can solve this without requiring the user to call dispose().
Can you try the following code and see if it solves the memory leak for you? LeakCanary keeps failing to analyze so I'm not able to verify.
fab.getViewTreeObserver()
	.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
		@Override
		public void onGlobalLayout() {
			// Removing layout listener to avoid multiple calls
			MaterialSheetFab.this.fab.getViewTreeObserver()
					.removeGlobalOnLayoutListener(this);
			// Initialize FAB anchor when the FAB view is laid out
			updateFabAnchor();
		}
	});

authors: agrosner gowong

repo: gowong/material-sheet-fab


text:
Real-time Dialogue Intermittent Issues During Conversation

Great project.
The installation process in Windows went smoothly for me, but during conversations, the real-time dialogue is intermittent, while the manually generated dialogue is very smooth. Does anyone know the reason?
Thanks!

did you use GPU or CPU? how many tokens per sec in server log?

Hi, I was using GPU, and where to check the number of tokens per sec? I basically did nothing and just was following the github instruction, nothing changed in your original code. Are there any parameters I should play around in order to work smoothly? thanks!

I can add that the input was always interuppted around 2 seconds, not sure why

Hi, I was using GPU, and where to check the number of tokens per sec? I basically did nothing and just was following the github instruction, nothing changed in your original code. Are there any parameters I should play around in order to work smoothly? thanks!

you can check the speed from the log of server.

I can add that the input was always interuppted around 2 seconds, not sure why

It uses VAD to detect speech, if you pause longer than 0.5 sec, it will stop listen and send request to server.


text:
[General][All] Add Description for all notebooks

In every notebook, we need to give a brief of our repository so anyone going through any lab would know the contents of our repository and can explore the materials. We also need to provide relevant references so that anyone interested will become aware of our Hackathons.
For example, at the end of this Notebook
I found the following lines with relevant hyperlinks.

Examples and tutorials
Here are some examples for using distribution strategy with custom training loops:

Tutorial to train MNIST using MirroredStrategy.
Guide on training MNIST using TPUStrategy.
TensorFlow Model Garden repository containing collections of state-of-the-art models implemented using various strategies.

Which made me curious to check out their repository and the collection of models they have.
So if we can add a couple of lines about what we do in our repository and hackathons, more people would be aware of our work and interested people could contact us.

https://github.com/gpuhackathons-org/gpubootcamp/pull/62

repo: gpuhackathons-org/gpubootcamp


text:
Cannot use in JDK11 and with Spring boot

If a run my application from within the IDE then GraalJS works, even without adopting the module-path. Once it is packed by spring-boot-maven-plugin I get this log:
ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider com.oracle.truffle.js.scriptengine.GraalJSEngineFactory could not be instantiated
Warning: Nashorn engine is planned to be removed from a future JDK release

Unfortunately there is no detailed error message or stacktrace. So I do not see whats the reason. Any idea how get detailed information why it fails?
Thx,
Stephan

This message comes from javax.script.ScriptEngineManager.initEngines() (you can see "ScriptEngineManager providers.next(): " message there) resp. from java.util.ServiceLoader.nextService() (you can see "Provider " + cn + " could not be instantiated" expression there). You can try to run the problematic code under Java debugger and see more details about the root of the problem there. I agree that it is unfortuate that ScriptEngineManager swallows the original error.

Closing; this does not seem to be a problem with GraalVM, rather with ScriptEngine swallowing the error (whatever that might be).
You might try to open a GraalJSScriptEngine directly (maybe just to debug the issue), or even better: move to our org.graalvm.polyglot.Context instead.

authors: iamstolis stephanpelikan wirthi

repo: graalvm/graaljs


text:
Build a shared module from Swift source

This story builds on the spike work in #1 to add polish and test coverage for building a module from Swift source.
Changes:

Remove duplication between Swift executable and Swift module plugins.
Remove duplication between C++ library and Swift module plugins.

Test coverage:

[x] Something sensible happens when the project has no source.
[ ] ~Incremental build works when source files are changed, added, removed and renamed.~ Incrementalness is handled by swiftc
[x] Stale output files are removed when source files are renamed or removed.
[x] Changes to the build directory location are respected (as was done for C++ libraries).

Left over test coverage can be reviewed as part of https://github.com/gradle/gradle/pull/2800.

authors: adammurdoch lacasseio

repo: gradle/gradle-native


text:
Gradle generated incorrect build/scripts/app and build/scripts/app.bat

The generated "app" script sets CLASSPATH=$APP_HOME/lib/app.jar:...
There is no /lib folder so it throws ClassNotFoundException but there a /libs folder was generated. Adding an "s" fixes the script. Same typo is in the distribution/app.tar and app.zip.
Expected Behavior

Generated build/scripts need to have correct CLASSPATH with libs rather than lib folder.
Current Behavior

Context

Run generated script to run the executable jar.
Steps to Reproduce

Run gradlew init and build and note the typo in the build/scripts/app file: lib versus libs
Your Environment

Build scan URL:

Gradle 7.5
Build time:   2022-07-14 12:48:15 UTC
Revision:     c7db7b958189ad2b0c1472b6fe663e6d654a5103
Kotlin:       1.6.21
Groovy:       3.0.10
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          11.0.11 (AdoptOpenJDK 11.0.11+9)
OS:           Mac OS X 10.15.7 x86_64

I don't believe this is the case.
Here's the directory structure for the application project generated by gradle init with 7.5:

app/build/install/
└── app
├── bin
│   ├── app
│   └── app.bat
└── lib
├── app.jar
├── checker-qual-3.12.0.jar
├── error_prone_annotations-2.7.1.jar
├── failureaccess-1.0.1.jar
├── guava-31.0.1-jre.jar
├── j2objc-annotations-1.3.jar
├── jsr305-3.0.2.jar
└── listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar

lib is the correct path.

@big-guy
Can I ask you a question about how do you generate above file three output/

@CoXier it's just tree

@CoXier it's just tree

Thanks a lot.

authors: CoXier big-guy cogitaria-admin

repo: gradle/gradle


text:
Mangled stacktraces in configuration cache reports

Current Behavior
It feels like there is a race condition somewhere.
configuration-cache-report.zip
I get stacktraces like this
	at org.gradle.internal.configuration.problems.DefaultProblemFactory$problem$1.build(DefaultProblemFactory.kt:89)oorg.gradle.internal.configuration.problems.DefaultProblemFactory$problem$1$build$diagnostics$1.get(DefaultProblemFactory.kt:89)com.	at gradle.internal.cc.impl.ProblemReportingCrossProjectModelAccess$ProblemReportingP
	at		at org.gradle.internal.cc.impl.ProblemReportingCrossProjectModelAccess$ProblemReportingProject.reportCrossProjectAccessProblem(ProblemReportingCrossProjectModelAccess.kt:584)
	at org.gradle.api.InvalidUserCodeException: Project ':activity:activity-compose' cannot dynamically look up a method in the parent project ':activity'

at
	at 	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at androidx.build.testConfiguration.TestSuiteConfigurationKt.access$createTestConfigurationGenerationTa	at org.gradle.internal.cc.impl.ProblemReportingCrossProjectModelAccess$ProblemReportingProject.onMutableStateAccess(ProblemReportingCrossProjectModelAccess.kt:162)
	at org.jetbrains.kotlin.compilerRunner.KotlinNativeToolRunner$Settings$Companion.of(nativeToolRunners.kt:103)
	at org.gradle.internal.metaobject.CompositeDynamicObject.hasMethod(CompositeDynamicObject.java:89)
org.org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunne
	at a:59)
	at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAct
on.execu
e(Defaul
	at
gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.
	at 	at gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.lambda$run$0(LifecycleProjectEvaluator.java:114)
	at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:65)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030)org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMu	at onGuard.java:	at 	at le.internal.event.AbstractBroadcastDisp	at .dispatch(AbstractBroadcastDispatch.java:70)Downloader$c
rg.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)			at 		at groovy.lang.Closure.call(Closure.java:427)o	at radle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$fromMutableState$2(DefaultProjectStateRegistry.java:434)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:348)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.api.internal.project.MutableStateAccessAwareProject.getTasks(MutableStateAccessAwarePro
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
	at org.gradle.internal.problems.DefaultProblemDiagnosticsFactory$DefaultProblemStream.getImplicitThrowable(DefaultProblemDiagnosticsFactory.java:165)
org.org.gradle.internal.operations.DefaultBuildOperationRunner$1.executultBuildOperationRunner.java:47
		at  gradle.internal.event.BroadcastDispatch$
ompositeDispatch.dispatch(BroadcastDispatch.java:272)
	at C	at
rg.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:280)
	at oidx.build.testConfiguration.TestSuiteConfigurationKt.registerGenera	at stConfigurationTask(TestSuiteConfiguration.kt:190)
	at 	at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:434)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:170)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
	at org.gradle.api.internal.plugins.DefaultPluginManager.lambda$doApply$0(DefaultPluginManager.java:170)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
	at androidx.build.testConfiguration.TestSuiteConfigurationKt.createTestConfigurationGenerationTask(TestSuiteConfiguration.kt:109)o		at gradle.api.internal.provider.DefaultProviderFactory.of(DefaultProviderFactory.java:212)
	at 	at java	at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:100)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)

	at 	at  	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at androidx.build.testConfiguration.TestSuiteConfigurationKt.access$createTestConfigurationGenerationTa	at org.gradle.internal.cc.impl.ProblemReportingCrossProjectModelAccess$ProblemReportingProject.onMutableStateAccess(ProblemReportingCrossProjectModelAccess.kt:162)
	at org.jetbrains.kotlin.compilerRunner.KotlinNativeToolRunner$Settings$Companion.of(nativeToolRunners.kt:103)
	at org.gradle.internal.metaobject.CompositeDynamicObject.hasMethod(CompositeDynamicObject.java:89)
org.org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunne
	at a:59)
	at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAct
on.execu
e(Defaul
	at
gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.
	at 	at gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.lambda$run$0(LifecycleProjectEvaluator.java:114)
	at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:65)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030)org.gradle.api.internal.DefaultMutationGuard$1.execute(DefaultMu	at onGuard.java:	at 	at le.internal.event.AbstractBroadcastDisp	at .dispatch(AbstractBroadcastDispatch.java:70)Downloader$c
rg.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)			at 		at groovy.lang.Closure.call(Closure.java:427)o	at radle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$fromMutableState$2(DefaultProjectStateRegistry.java:434)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:348)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.api.internal.project.MutableStateAccessAwareProject.getTasks(MutableStateAccessAwarePro
org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
	at org.gradle.internal.problems.DefaultProblemDiagnosticsFactory$DefaultProblemStream.getImplicitThrowable(DefaultProblemDiagnosticsFactory.java:165)
org.org.gradle.internal.operations.DefaultBuildOperationRunner$1.executultBuildOperationRunner.java:47
		at  gradle.internal.event.BroadcastDispatch$
ompositeDispatch.dispatch(BroadcastDispatch.java:272)
	at C	at
rg.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:280)
	at oidx.build.testConfiguration.TestSuiteConfigurationKt.registerGenera	at stConfigurationTask(TestSuiteConfiguration.kt:190)
	at 	at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:434)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:170)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
	at org.gradle.api.internal.plugins.DefaultPluginManager.lambda$doApply$0(DefaultPluginManager.java:170)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
	at androidx.build.testConfiguration.TestSuiteConfigurationKt.createTestConfigurationGenerationTask(TestSuiteConfiguration.kt:109)o		at gradle.api.internal.provider.DefaultProviderFactory.of(DefaultProviderFactory.java:212)
	at 	at java	at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:100)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
org.gradle.util.internal.ConfigureUtil.configureTarget(ConfigureUtil.java:166)org.gradle.internal.cc.impl.ProblemReportingCrossProjectModelAccess$ProblemReportingProject.reportCrossProjectAccessProblem(ProblemReportingCrossProjectModelAccess.kt:584)
	at gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunne
.java:69)
at iteConfiguration.kt:1		at	at .gradle.internal.operations.DefaultBuildOperationRunner.run(Def	at Build	at ationRunner.java:47)mpl.ProblemReportingCrossProjectModelAccess$ProblemReportingProject.reportCrossProjectAccessProblem$default(ProblemReportingCrossProjectModelAccess.kt:569)
	at o	at 	at com.android.build.api.extension.impl.AndroidComponentsExtensionImpl$onVariants$1.execute(AndroidComponentsExtension
	at
	at org.gradle.api.internal.plugins.DefaultPluginManager.addImperativePlugin(DefaultPluginManager.java:98)
	at jdk.proxy1/jdk.proxy1.$Proxy102.afterEvaluate(Unknown Source)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:170)a	at id	at 	at Release.addToAnchorTask(Release.kt:470)org.gradle.internal.cc.impl.ProblemReportingCrossProjectModelAccess$ProblemReportingProject.reportCrossProjectAccessProblem(ProblemReportingCrossProjectModelAccess.kt:584)
	at com.android.build.gradle.internal.plugins.BasePlugin$createTasks$2.accept(BasePlugin.kt:594)
	at  gradle	at org.gradle.internal.cc.impl.ProblemReportingCrossProjectModelAccess$ProblemReportingProject.onMutableStateAccess(ProblemReportingCrossProjectModelAccess.kt:162)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)o
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:348)
org.gradle.api.internal.project.DefaultProject.evaluateUnchecked(DefaultProject.java:824)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:110)
uild_e0u21j5nyv8aavr08nk5y2t00.run(/usr/local/google/home/aurimas/Code/androidx-main/frameworks/support/activity/activity-compose/build.gradle:72)o
	at java.base/java.lang.Thread.run(Thread.java:1583)

Expected Behavior
Normal readeable stacktraces
Context (optional)
No response
Self-contained Reproducer Project
It seems to work best on large projects like https://github.com/androidx/androidx
Gradle version
gradle-8.11-20240919190722+0000
Build scan URL (optional)
https://ge.androidx.dev/s/wb6w45ftnfiwq
Your Environment (optional)
No response

Thank you for the report Aurimas.
The issue is in the backlog of the relevant team and is prioritized by them.

authors: eskatos liutikas


text:
Unable to resolve a configuration into a single file for use as a Task input

Current Behavior
There does not appear to be a workable way to resolve a configuration into a single output file for use as a Task input.  Various API was attempted to be used unsuccessfully (see reproducer).  Any attempts are resolving beyond resolveConfig.incoming.files (e.g., resolveConfig.incoming.files.singleFile) fails at ConsumerTask execution-time.
As a result, if the task being configured accepts a File or Property<File>, there is no way to properly configure it.
Expected Behavior
Existing APIs should:

Cause the configuration to resolve
Resolution of the configuration should trigger the producer task
Configurations with a single artifact file should be able to provide this artifact file as a task input

Context (optional)
We are working toward project isolation but have some cross-project artifact sharing that requires feeding a task with a single input file.  The existing task definition cannot be changed to accept a ConfigurableFileCollection.  The result is that we are unable to define out project in a manner which is considered best practice and project isolation- ready.
Self-contained Reproducer Project
The following can reproduce the project:
First, the producer module (:) with its build.gradle.kts file:
import org.gradle.api.artifacts.type.ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE

tasks.register("clean", Delete::class.java) {
    delete(project.layout.buildDirectory)
}

val producerConfig = configurations.consumable("producerConfig") {
    attributes {
        attribute(ARTIFACT_TYPE_ATTRIBUTE, "repro-producer")
    }
}

abstract class ProducerTask : DefaultTask() {
    @get:OutputFile
    abstract val output: RegularFileProperty

    @TaskAction
    fun run() {
        logger.lifecycle("ProducerTask")
        output.asFile.get().writeText(System.currentTimeMillis().toString())
    }
}

val producerTask = tasks.register("producer", ProducerTask::class.java) {
    output.set(layout.buildDirectory.file("producer.txt"))
}

project.artifacts.add(producerConfig.name, producerTask)

Second, the consumer module (:consumer) with its build.gradle.kts file:
import org.gradle.api.artifacts.type.ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE

abstract class ConsumerTask : DefaultTask() {
    @get:InputFiles
    abstract val input: ConfigurableFileCollection

    @TaskAction
    fun run() {
        logger.lifecycle("ConsumerTask")
        input.files.forEach { file ->
            logger.lifecycle("file = $file: ${file.readText()}")
        }
    }
}

tasks.register("clean", Delete::class.java) {
    delete(project.layout.buildDirectory)
}

val resolveConfig = configurations.create("consumerConfig") {
    isCanBeResolved = true
    isCanBeConsumed = false
    dependencies.add(project.dependencies.project(":"))
}

tasks.register("consumer", ConsumerTask::class.java) {
    /*
     * This works.  The `producer` task is automatically run and feeds the `consumer` task.
     */
    //input.setFrom(resolveConfig.incoming.files)

    // ..but I need to feed the (existing) task with a single file, not a file collection!

    /*
     * None of the following work.  The producer task is not run and the consumer task fails.
     *
     * Execution failed for task ':consumer:consumer'.
     *   > java.io.FileNotFoundException: /Users/username/src/ebay/repro-gradle-config/build/producer.txt (No such file or directory)
     */

    input.setFrom(resolveConfig.incoming.files.singleFile)

//    input.setFrom(provider { resolveConfig.incoming.files.singleFile })

    /*
     * This doesn't work either, failing with a different message:
     *
     * > Could not create task ':consumer:consumer'.
     *  > Collection is empty.
     */
//    input.setFrom(resolveConfig.incoming.files.asFileTree.single())
}

With the above in place, the following reproduces the failure:
./gradlew clean consumer

Gradle version
8.10.2
Build scan URL (optional)
No response
Your Environment (optional)

Gradle 8.10.2
Build time:    2024-09-23 21:28:39 UTC
Revision:      415adb9e06a516c44b391edff552fd42139443f7
Kotlin:        1.9.24
Groovy:        3.0.22
Ant:           Apache Ant(TM) version 1.10.14 compiled on August 16 2023
Launcher JVM:  17.0.6 (Azul Systems, Inc. 17.0.6+10-LTS)
Daemon JVM:    /Users/username/Library/Java/open-jdk-17.0.6.2-apple/zulu-17.jdk/Contents/Home (no JDK specified, using current Java home)
OS:            Mac OS X 14.6.1 aarch64

Does getElements work for you?
https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html#getElements()

Hah!  Somehow I missed that API while trying pretty much everything else.  It does indeed appear to work!
    input.setFrom(resolveConfig.incoming.files.elements.map { it.first().asFile })

Thanks!

authors: jvandort mcumings


text:
sourceset output.dir() does not work with java-library plugin

Expected Behavior
In a multi-module build, adding an output directory to the main sourceSet (as explained in SourceSetOutput) should work the same when using the java plugin or the java-library plugin.
Current Behavior
If the project in question is using the java-library plugin, only its classes directory is on the consumer's classpath (as explained in the docs), but not any extra output directories registered on the main sourceSet. This might also affect resources, since the resources directory is also not on the classpath of consumers.

Could you please provide a code example that reproduces the issue?

Of course. Please find it here: https://github.com/mkmaier/gradle-3231

Is there any reason why you don't model the main source set like this?
sourceSets {
    main {
        java {
            srcDirs = ['src/main/java', 'src/second/java']
        }
    }
}

I saw that you use directories like "generated" in your sample though no code is actually generated. Is that relevant? Is code generated and then supposed to be on the compile classpath for the main source set? Please provide the relevant information and the code that you use to generate code (if that's what you are trying to do).

This is only a reproducer mostly taken from gradle documentation examples. I tried to keep things as minimal as possible to highlight what I think is a bug, without going into details of why we run into this. The salient point for me is that it does work with the 'java' plugin, but this might be a conscious design choice. If so, I did not find it documented.

But since you asked, this is what we are really doing that runs into this problem. I'd welcome any suggestions for improvement as this also has the downside of not compiling in either IDEA or Eclipse.
The gist of what we do is:

compile the sources as intermediate
generate java sources from the intermediate classes (task createWrappers)
(copy and) modify the intermediate classes (task wrap)
compile the generated sources from 2. and the add the modified classes from 3. as output in the main sourceSet (the unmodified intermediate classes are not part of this)

I hope this is clear enough, but I cannot provide much more details, especially not for the two ant tasks.
The relevant lines are these:
// generated java source
def srcGen = file("${buildDir}/src-gen")

// generated binaries
def wrappers = file("${buildDir}/wrappers")

sourceSets {
    // original sources, not directly part of output
    intermediate {
        java.srcDirs = ['src']
    }
    // generated sources plus modified classes from original sources
    main {
        java.srcDirs = [srcGen]
        output.dir(wrappers, builtBy: 'wrap')
        compileClasspath += sourceSets.intermediate.output
    }
}

// generate modified classes
task wrap() {
    inputs.files compileIntermediateJava
    outputs.dir wrappers

    doLast {
        ant.wrap(srcdir: sourceSets.intermediate.java.outputDir, targetdir: wrappers)
    }
}

// generate sources
task createWrappers() {
    inputs.files compileIntermediateJava
    outputs.dir srcGen

    doLast {
        ant.createwrappers(srcdir: sourceSets.intermediate.java.outputDir, targetdir: srcGen)
    }
}
tasks.compileJava.dependsOn createWrappers

I have the same problem in another subproject as well, now, where we need to compile parts of the code with an older target release:
apply plugin: 'java-library'
sourceSets {
	legacy {
		java {
			srcDirs = ['src']
			include 'com/acme/legacy/**'
			compileClasspath += sourceSets.main.compileClasspath
		}
	}
	main {
		java {
			srcDirs = ['src']
			exclude 'com/acme/legacy/**'
			compileClasspath += sourceSets.legacy.output
			output.dir(sourceSets.legacy.output, builtBy: tasks[sourceSets.legacy.getCompileTaskName('java')])
		}
	}
}
tasks[sourceSets.legacy.getCompileTaskName('java')].sourceCompatibility = 1.6
tasks[sourceSets.legacy.getCompileTaskName('java')].targetCompatibility = 1.6

If I use the 'java-library' plugin, the consumers cannot see the legacy classes and fail to compile. Without the second sourceSet, or with the 'java' plugin, all is well. Do you agree that this is a bug, or is this behaviour intended?

authors: bmuschko mkmaier


text:
Autodetect Eclipse Temurin runtimes in Windows

Context

Adoptium JDK is now under the Eclipse Adoptium/Temurin project.
Newer builds of Adoptium JDK (such as JDK 17) register themselves under a different registry key, HKLM\Software\Eclipse Adoptium. Those JDKs are not autodetected by Gradle.
This commit amends the registry lookup logic to also look for this new key.
Implementation note: I explored having the Temurin runtime detection happening under a different method (like findTemurinOpenJdk), however given that Temurin is the current implementation of AdoptOpenJDK I believe that having that distinction in the code could be misleading because it would imply those are competing runtimes. That option also required marginally more lines of code than the version submitted in this PR.
Contributor Checklist

[x] Review Contribution Guidelines
[x] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[x] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[x] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[x] Provide unit tests (under <subproject>/src/test) to verify logic
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[x] Ensure that tests pass sanity check: ./gradlew sanityCheck
[x] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest

Gradle Core Team Checklist

[x] Verify design and implementation
[x] Verify test coverage and CI build status
[x] Verify documentation
[x] Recognize contributor in release notes

@jvandort: can you pleasse take a new look?

Thank you. Is there any chance that this could be backported into Gradle 7.5 or Gradle 7.5.x?


text:
Deprecate mutating configuration after observation and resolution

Looks like we are not close to being able to do this. At the very least Android seems to be using this.

@bot-gradle test ast

I've triggered the following builds for you:

AllSmokeTestsPullRequestFeedback build

@bot-gradle test ast

I've triggered the following builds for you:

AllSmokeTestsPullRequestFeedback build

@bot-gradle test ast apt

I've triggered the following builds for you:

AllSmokeTestsPullRequestFeedback build
AllPerformanceTestsReadyForRelease build

@bot-gradle test apt ast

I've triggered the following builds for you:

AllPerformanceTestsReadyForRelease build
AllSmokeTestsPullRequestFeedback build

Superseded by https://github.com/gradle/gradle/pull/27558

authors: bot-gradle jvandort


text:
Remove AGP 8.2.0-dev from test versions

See https://github.com/gradle/gradle-private/issues/3966

I've triggered a build for you. Click here to see all failures if there's any.

authors: blindpirate bot-gradle


text:
Remove Action from TaskClassValidator

The validation action is prepended to the task but the action itself
is a no-op.

Looks good in general. Shall we add an integration test for tasks without actions being skipped even if they have inputs? Or shall we remove that concept ("tasks with no actions to be skipped") altogether?

@lptr I added an integration test. Please have another look.

LGTM, LM!

authors: lptr wolfs


text:
Improve Configuration#withDependencies documentation

The prior documentation suggested to use the method for mutating dependencies. Given changes to the way dependency resolution handles mutation of configurations, using withDependencies for this use case is no longer recommended. Instead, for adding dependencies to a configuration lazily, users should use addLater or addAllLater on DependencySet or DependencyConstraintSet. Further, instead of mutating dependencies with withDependencies, users should add constraints that influence the resolution of other dependencies (if they're added to the graph).
We describe this in detail in the javadoc for this method. We also update the user guide to remove the recommendation of using withDependencies to mutate dependencies and instead add snippets showing the proper way to lazily add dependencies and influence dependency version selection.
Finally, we update the build to avoid withDependencies where possible.
Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@bot-gradle test bd

I've triggered the following builds for you. Click here to see all build failures.

BuildDistributions build

@bot-gradle test bd

I've triggered the following builds for you. Click here to see all build failures.

BuildDistributions build

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build

@bot-gradle merge

authors: big-guy bot-gradle jvandort


text:
Honor dependency attributes for direct dependencies

Context
This pull request makes sure that dependency attributes are used during dependency resolution, whenever a direct dependency has attributes, and the target component has multiple variants. It does not allow selection of a dynamic version dependency using attributes.
The biggest change in this PR is to be able to pass in the dependency attributes down to the artifact selector, after selection is done: when we resolve the graph, we can without too much hassle determine the appropriate variant to select, based on the consumer (configuration) attributes and the dependency attributes. However, when artifacts are selected, we perform another round of attribute matching, and here we need the attributes that were on the dependency.

@oehme I have added you as a reviewer, because we're going to lack "elder" reviewers for the next few weeks in the dependency management team.

I cannot write the tests for "transitive dependencies with attributes" as there's no way to write them yet. The good news is that I have a branch which supports it already, so it's going to be in a subsequent PR.


text:
Any variable on dashboard breaks 'SELECT 1 UNION ALL SELECT 2;'

Duplicate of https://github.com/grafana/clickhouse-datasource/issues/132, which was closed, but still hasn't been fixed - tested in a fresh v2 build (as of today). Close this and reopen that one.

Describe the bug A clear and concise description of what the bug is.
Versions Grafana 8.5.5 Plugin 1.1.2
Query SELECT 1 UNION ALL SELECT 2;
To Reproduce Steps to reproduce the behavior: 1.
compose.yaml
1.1. docker compose up --detach 1.2. docker compose exec grafana grafana-cli plugins install grafana-clickhouse-datasource

add datasource clickhouse

open explore
http://localhost:3000/explore?left={"datasource":"ClickHouse","queries":[{"refId":"A","queryType":"sql","rawSql":"SELECT 1 UNION ALL SELECT 2;\r\n","meta":{"builderOptions":{"mode":"list","fields":[],"limit":100}},"format":1}],"range":{"from":"now-1h","to":"now"}}&orgId=1
and check that SELECT 1 UNION ALL SELECT 2; it is works
Greate new dashboard http://localhost:3000/dashboard/new?orgId=1
4.1. Add a new panel
4.2. switch into SQL Editor
4.3. paste SELECT 1 UNION ALL SELECT 2;
4.4. Run Query
4.5. POST 200 OK with rawSql: SELECT 1 UNION ALL SELECT 2;\r\n

add any variable
5.1. http://localhost:3000/dashboard/new?orgId=1&editview=templating
5.2. add var with the name query0

5.3. go back to panel and Run Query 5.4. POST 400 Bad Request with rawSql: SELECT 2 UNION ALL

Expected behavior POST 200 OK with correct SQL

This issue is fixed on main. We will create a new release soon.

authors: bossinc washcroft

repo: grafana/clickhouse-datasource


text:
chore: use dep for dependency management

This change removes the vendor directory from git, and sets up dependency management with dep.
I am by no means a Makefile expert, so extra scrutiny there is advised :)
Resolves #62.

To me it seems that removing the vendor directory is separate issue from switching to dep. Do we want to remove vendor? I don't have any experience with dep but my experience from using the other dependency management tools has been that keeping vendor versioned makes life way easier.

If dep can guarantee that you always get the same result I don’t mind removing vendor at all. It’s just been my experience that other packaging systems has not been able to do this reliably.

My understanding of
https://golang.github.io/dep/docs/ensure-mechanics.html#no-vendor-and-vendor-only
Is that dep ensure --vendor-only will populate your vendor directory with the correct dependencies as your lock file.

With vgo coming out, I'm not sure if this is the right direction anymore.  I'll let this one go and come back around :)

authors: JustinBeckwith clrprod furuholm

repo: grafeas/grafeas


text:
Auto-detect applicable SCTs in multi-vhost setups

When running a nginx setup with multiple vhosts for different domains that each have independent domains+certificates it would be nice, if SCTs for all certificates could be put in one directory with the module including only those applicable to the current connection's server certificate.
As I understood the code while skimming over it, the module currently puts all SCTs it finds into the TLS extension. It would be nice, if the module only added SCTs applicable to the current vhost's certificate (and if necessary trust chain).
Intention:

Avoid configuration overhead by specifying SCT behaviour globally
Centralize storage of SCTs for all certificates in one directory (e.g. all SCTs for all certs go to /etc/ssl/sct via cron or similar means).

I agree this would be a nice feature, but it adds lots of complexity - nginx-ct would need to know about the keys of all the logs (presumably from reading the official log_list.json file, or similar) and it'd need code to verify the signatures (to tie each SCT to a certificate).
I also suspect it'd be much easier to do this outside of nginx in a higher level language than C - a separate program could take your bunch of certs/SCTs and split them into separate separate directories as required by nginx-ct. That said, I also understand the appeal of having it built into the module.
This isn't a feature my own setup requires, so it's currently low on my list of priorities. Patches are welcome, however!

Totally understandable.
To simplify the "verification" you could even make the list of log server keys just that - similar to the list of trusted CAs for the certificate verification. Code for reading a list of keys should already be available in nginx - or is easily adopted from reading a list of certificates.
Armed with this list of public keys you could kinda pre-sort entries per log server, so that upon configuring the actual VHosts you just iterate each of the per-logserver lists of SCTs with the matching key and certificate and add all SCTs that "verify".
This approach originating from individual certificates eliminates the requirement for one ssl_ct_file per ssl_certificate directive. (Based on this the ssl_ct on directive might become advisory in the sense, that it is ignored for non-SSL hosts.)
This being said, I'll see what I can prepare for this.

Minor heads-up on this:

SCT validation and management of CT log servers is available in the OpenSSL v1.1.0 API onwards. Due to the hassle of maintaining two versions of the code, my patch will likely only address OpenSSL versions offering the CTLOG and SCT APIs.
Huge portions of the existing code can be reused, especially the parts reading the SCTs from disk. But given I need the SCTs and not a fully encoded structure (encoding the final structure of SCTs to send can be done using OpenSSL API AFAIC), the functions for loading SCTs from disk will be somewhat rewritten (ABI-change) to return a list of SCTs read in a given directory.
The way the SCT structure is attached to each certificate as extra data can be reused.
OpenSSL comes with an API to manage a CTLOG_STORE. There will be a new directive to divert the system default one to a user-supplied one in the nginx configuration.

Backporting the changes to use OpenSSL 1.0.2 compatible API is mostly reinventing the wheel. My patch will thus target OpenSSL 1.1.0+. For use in old versions it will need someone else to copy OpenSSL source between the correct ifdef blocks.

First part of the patch done; mostly fighting with keeping changes to a minimum and including OpenSSL API calls to CTLog/SCT API - which as expected is best explained by reading the OpenSSL source ...
So far:

Specifying multiple SCT directories will work
No need to configure SCT directories per VHost should work
Detection of applicable SCTs per Certificate should work

Will likely make SCTs for unknown Log IDs a warning and add those SCT to all servers. User will then have to configure this additional log in system default or supplied CT log config. Other option would be dropping those SCT, which would be most unlike existing behaviour: Currently you can think of the module handling all SCTs in one directory as unknown logs.
Patch stats @ +112/-64 or +59/-11 (if ignoring indentation changes). Progress at around 60% ...

Okay, time for a new status update:
Patch itself is written and is available at https://github.com/BenBE/nginx-ct/tree/check_sct for review.
Code neither tested if it compiles nor if it fully works. This both is still WIP.
I'd appreciate comments and suggestions. Especially the resource handling may still need quite some cleanup.

Minor fixup during the week (missed to delete one LOC in the original patch).
Patch should do as expected; looking for reviews and tests.

@BenBE thanks! I haven't forgotten about this, will take a look at the patch asap.

Looking forward. If you need anything feel free to ask. Not yet tested (lack of suitable test system on my side). Confident it should work though.

Further update: I included 5aa305a yesterday to fix some issues with compilation when using OpenSSL 1.1.1-dev from branch tls1.3-draft-19. While this compiles (and does not crash immediately) I still see some weird behaviour in my configuration (despite SCTs existing I receive a configuration failed without explicit error message). Will further investigate, but would be happy if somebody else could have a look too.

And a second minor issue found with the ssl_ct_log directive I introduced: Forgot both to add it for mail servers AND to actually initialize it to unset ... Patch in 8d89b3f.

The branch received some more refinements (somehow the ssl_ct_log directive got messed up and wasn't handled properly, among some other issues). Current set of changes can be found at https://github.com/grahamedgecombe/nginx-ct/compare/master...BenBE:check_sct?expand=1
Unfortunately I was not yet able to witness this code sending back SCTs, debugging.

Latest version on my branch seems to work (it properly detects all the SCT to attach), but for some reason fails to include them in the ServerHello (debugging this part). Inclusion requires a ctlogs.cnf file to be present (either via OpenSSL config or set in the nginx config via ssl_ct_log). An almost complete file (the one I used for testing) is below:
enabled_logs = akamai, certly, cnnic, comodo-dodo, comodo-mammoth, comodo-sabre, ct-cn, digicert-ct1, digicert-ct2, gdca-ct, gdca-ctlog, google-aviator, google-deadalus, google-icarus, google-pilot, google-rocketeer, google-skydiver, google-submariner, google-testtube, izenpe-com, izenpe-eus, le-clicky, nordu-flimsy, nordu-plausible, sheca-1, sheca-2, sofa, startssl, symantec-ct, symantec-deneb, symantec-sirius, symantec-vega, venafi-gen1, venafi-gen2, wosign-ct, wosign-ctlog

[akamai]
description = Akamai CT Log
url = https://ct.akamai.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQ3nrSVxQKkpqj1mTvMNCdsKZ+CeBPAZs0sgEj3R7tLUh8uOo3DO5/iXpPQT8P7SuQONFfoSSKthS6x8/cxPQyA==

[certly]
description = Certly.IO
url = https://log.certly.io/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECyPLhWKYYUgEc+tUXfPQB4wtGS2MNvXrjwFCCnyYJifBtd2Sk7Cu+Js9DNhMTh35FftHaHu6ZrclnNBKwmbbSA==

[cnnic]
description = CNNIC CT Log
url = https://ctserver.cnnic.cn/
key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv7UIYZopMgTTJWPp2IXhhuAf1l6a9zM7gBvntj5fLaFm9pVKhKYhVnno94XuXeN8EsDgiSIJIj66FpUGvai5samyetZhLocRuXhAiXXbDNyQ4KR51tVebtEq2zT0mT9liTtGwiksFQccyUsaVPhsHq9gJ2IKZdWauVA2Fm5x9h8B9xKn/L/2IaMpkIYtd967TNTP/dLPgixN1PLCLaypvurDGSVDsuWabA3FHKWL9z8wr7kBkbdpEhLlg2H+NAC+9nGKx+tQkuhZ/hWR65aX+CNUPy2OB9/u2rNPyDydb988LENXoUcMkQT0dU3aiYGkFAY0uZjD2vH97TM20xYtNQIDAQAB

[comodo-dodo]
description = Comodo 'Dodo' Log
url = https://dodo.ct.comodo.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELPXCMfVjQ2oWSgrewu4fIW4Sfh3lco90CwKZ061pvAI1eflh6c8ACE90pKM0muBDHCN+j0HV7scco4KKQPqq4A==

[comodo-mammoth]
description = Comodo 'Mammoth' Log
url = https://mammoth.ct.comodo.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7+R9dC4VFbbpuyOL+yy14ceAmEf7QGlo/EmtYU6DRzwat43f/3swtLr/L8ugFOOt1YU/RFmMjGCL17ixv66MZw==

[comodo-sabre]
description = Comodo 'Sabre' Log
url = https://sabre.ct.comodo.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8m/SiQ8/xfiHHqtls9m7FyOMBg4JVZY9CgiixXGz0akvKD6DEL8S0ERmFe9U4ZiA0M4kbT5nmuk3I85Sk4bagA==

[ct-cn]
description = PuChuangSiDa CT Log
url = https://www.certificatetransparency.cn/ct/
key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArM8vS3Cs8Q2Wv+gK/kSd1IwXncOaEBGEE+2M+Tdtg+QAb7FLwKaJx2GPmjS7VlLKA1ZQ7yR/S0npNYHd8OcX9XLSI8XjE3/Xjng1j0nemASKY6+tojlwlYRoS5Ez/kzhMhfC8mG4Oo05f9WVgj5WGVBFb8sIMw3VGUIIGkhCEPFow8NBE8sNHtsCtyR6UZZuvAjqaa9t75KYjlXzZeXonL4aR2AwfXqArVaDepPDrpMraiiKpl9jGQy+fHshY0E4t/fodnNrhcy8civBUtBbXTFOnSrzTZtkFJkmxnH4e/hE1eMjIPMK14tRPnKA0nh4NS1K50CZEZU01C9/+V81NwIDAQAB

[digicert-ct1]
description = DigiCert CT Server #1
url = https://ct1.digicert-ct.com/log/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAkbFvhu7gkAW6MHSrBlpE1n4+HCFRkC5OLAjgqhkTH+/uzSfSl8ois8ZxAD2NgaTZe1M9akhYlrYkes4JECs6A==

[digicert-ct2]
description = DigiCert CT Server #2
url = https://ct2.digicert-ct.com/log/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzF05L2a4TH/BLgOhNKPoioYCrkoRxvcmajeb8Dj4XQmNY+gxa4Zmz3mzJTwe33i0qMVp+rfwgnliQ/bM/oFmhA==

[gdca-ct]
description = GDCA CT Server #1
url = https://ct.gdca.com.cn/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErQ8wrZ55pDiJJlSGq0FykG/7yhemrO7Gn30CBexBqMdBnTJJrbA5vTqHPnzuaGxg0Ucqk67hQPQLyDU8HQ9l0w==

[gdca-ctlog]
description = GDCA CT Server #2
url = https://ctlog.gdca.com.cn/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEW0rHAbd0VLpAnEN1lD+s77NxVrjT4nuuobE+U6qXM6GCu19dHAv6hQ289+Wg4CLwoInZCn9fJpTTJOOZLuQVjQ==

[google-aviator]
description = Google 'Aviator' Log
url = https://ct.googleapis.com/aviator/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1/TMabLkDpCjiupacAlP7xNi0I1JYP8bQFAHDG1xhtolSY1l4QgNRzRrvSe8liE+NPWHdjGxfx3JhTsN9x8/6Q==

[google-deadalus]
description = Google 'Daedalus' Log
url = https://ct.googleapis.com.daedalus/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbgwcuu4rakGFYB17fqsILPwMCqUIsz7VcCTRbR0ttrfzizbcI02VYxK75IaNzOnR7qFAot8LowYKMMqNrKQpVg==

[google-icarus]
description = Google 'Ikarus' Log
url = https://ct.googleapis.com/icarus/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETtK8v7MICve56qTHHDhhBOuV4IlUaESxZryCfk9QbG9co/CqPvTsgPDbCpp6oFtyAHwlDhnvr7JijXRD9Cb2FA==

[google-pilot]
description = Google 'Pilot' Log
url = https://ct.googleapis.com/pilot/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfahLEimAoz2t01p3uMziiLOl/fHTDM0YDOhBRuiBARsV4UvxG2LdNgoIGLrtCzWE0J5APC2em4JlvR8EEEFMoA==

[google-rocketeer]
description = Google 'Rocketeer' Log
url = https://ct.googleapis.com/rocketeer/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIFsYyDzBi7MxCAC/oJBXK7dHjG+1aLCOkHjpoHPqTyghLpzA9BYbqvnV16mAw04vUjyYASVGJCUoI3ctBcJAeg==

[google-skydiver]
description = Google 'Skydiver' Log
url = https://ct.googleapis.com/skydiver/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEmyGDvYXsRJsNyXSrYc9DjHsIa2xzb4UR7ZxVoV6mrc9iZB7xjI6+NrOiwH+P/xxkRmOFG6Jel20q37hTh58rA==

[google-submariner]
description = Google 'Submariner' Log
url = https://ct.googleapis.com/submariner/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOfifIGLUV1Voou9JLfA5LZreRLSUMOCeeic8q3Dw0fpRkGMWV0Gtq20fgHQweQJeLVmEByQj9p81uIW4QkWkTw==

[google-testtube]
description = Google 'Testtbe' Log
url = https://ct.googleapis.com/testtube/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEw8i8S7qiGEs9NXv0ZJFh6uuOmR2Q7dPprzk9XNNGkUXjzqx2SDvRfiwKYwBljfWujozHESVPQyydGaHhkaSz/g==

[izenpe-com]
description = Izenpe CT Log
url = https://ct.izenpe.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJ2Q5DC3cUBj4IQCiDu0s6j51up+TZAkAEcQRF6tczw90rLWXkJMAW7jr9yc92bIKgV8vDXU4lDeZHvYHduDuvg==

[izenpe-eus]
description = Izenpe 'Argi' Log
url = https://ct.izenpe.eus/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE18gOIz6eAjyauAdKKgX/SkuI1IpNOc73xfK2N+mj7eT1RQkOZxT9UyTVOpTy6rUT2R2LXKfD82vYPy07ZXJY1g==

[le-clicky]
description = Let's Encrypt 'Clicky' log
url = https://clicky.ct.letsencrypt.org/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHxoVg3cAdWK5n/YGBe2ViYNBgZfn4NQz/na6O8lJws3xz/4ScNe+qCJfsqRnAntxrh2sqOnRCNXO7zN6w18A3A==

[nordu-flimsy]
description = Nordu 'flimsy' Log
url = https://flimsy.ct.nordu.net:8080/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4qWq6afhBUi0OdcWUYhyJLNXTkGqQ9PMS5lqoCgkV2h1ZvpNjBH2u8UbgcOQwqDo66z6BWQJGolozZYmNHE2kQ==

[nordu-plausible]
description = Nordu 'plausible' Log
url = https://plausible.ct.nordu.net/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE9UV9+jO2MCTzkabodO2F7LM03MUBc8MrdAtkcW6v6GA9taTTw9QJqofm0BbdAsbtJL/unyEf0zIkRgXjjzaYqQ==

[sheca-1]
description = SHECA CT log 1
url = https://ctlog.sheca.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEalgK7RxRWbgLt7VhzvV/vCSN/RoxpLdPxrivAwi1pljKW4yKBTAdiyAqCJRkdbrptjx7PAHfrD8dnB2cnyR6Q==

[sheca-2]
description = SHECA CT log 2
url = https://ct.sheca.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsY4diqo6rM6Gy1N26KidWb4XiAMH8ifggr6x/Gc7Ru7T8Y3Wd+ijtNsJXKAJQ/xf0Gg0IyQIwk/Y0rad7dWM2w==

[sofa]
description = Behind the Sofa Log
url = https://ct.filippo.io/behindthesofa/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWTmyppTGMrn+Y2keMDujW9WwQ8lQHpWlLadMSkmOi4+3+MziW5dy1eo/sSFI6ERrf+rvIv/f9F87bXcEsa+Qjw==

[startssl]
description = StartSSL CT Log
url = https://ct.startssl.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESPNZ8/YFGNPbsu1Gfs/IEbVXsajWTOaft0oaFIZDqUiwy1o/PErK38SCFFWa+PeOQFXc9NKv6nV0+05/YIYuUQ==

[symantec-ct]
description = Symantec CT Log
url = https://ct.ws.symantec.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEluqsHEYMG1XcDfy1lCdGV0JwOmkY4r87xNuroPS2bMBTP01CEDPwWJePa75y9CrsHEKqAy8afig1dpkIPSEUhg==

[symantec-deneb]
description = Symantec 'Deneb' Log
url = https://deneb.ws.symantec.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEloIeo806gIQel7i3BxmudhoO+FV2nRIzTpGI5NBIUFzBn2py1gH1FNbQOG7hMrxnDTfouiIQ0XKGeSiW+RcemA==

[symantec-sirius]
description = Symantec 'Sirius' Log
url = https://sirius.ws.symantec.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEowJkhCK7JewN47zCyYl93UXQ7uYVhY/Z5xcbE4Dq7bKFN61qxdglnfr0tPNuFiglN+qjN2Syxwv9UeXBBfQOtQ==

[symantec-vega]
description = Symantec 'Vega' Log
url = https://vega.ws.symantec.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6pWeAv/u8TNtS4e8zf0ZF2L/lNPQWQc/Ai0ckP7IRzA78d0NuBEMXR2G3avTK0Zm+25ltzv9WWis36b4ztIYTQ==

[venafi-gen1]
description = Venafi Generation 1 CT Log
url = https://ctlog.api.venafi.com/
key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAolpIHxdSlTXLo1s6H1OCdpSj/4DyHDc8wLG9wVmLqy1lk9fz4ATVmm+/1iN2Nk8jmctUKK2MFUtlWXZBSpym97M7frGlSaQXUWyA3CqQUEuIJOmlEjKTBEiQAvpfDjCHjlV2Be4qTM6jamkJbiWtgnYPhJL6ONaGTiSPm7Byy57iaz/hbckldSOIoRhYBiMzeNoA0DiRZ9KmfSeXZ1rB8y8X5urSW+iBzf2SaOfzBvDpcoTuAaWx2DPazoOl28fP1hZ+kHUYvxbcMjttjauCFx+JII0dmuZNIwjfeG/GBb9frpSX219k1O4Wi6OEbHEr8at/XQ0y7gTikOxBn/s5wQIDAQAB

[venafi-gen2]
description = Venafi Generation 2 CT Log
url = https://ctlog-gen2.api.venafi.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEjicnerZVCXTrbEuUhGW85BXx6lrYfA43zro/bAna5ymW00VQb94etBzSg4j/KS/Oqf/fNN51D8DMGA2ULvw3AQ==

[wosign-ct]
description = WoSign CT Server #1
url = https://ct.wosign.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1+wvK3VPN7yjQ7qLZWY8fWrlDCqmwuUm/gx9TnzwOrzi0yLcAdAfbkOcXG6DrZwV9sSNYLUdu6NiaX7rp6oBmw==

[wosign-ctlog]
description = WoSign CT Server #2
url = https://ctlog.wosign.com/
key = MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzBGIey1my66PTTBmJxklIpMhRrQvAdPG+SvVyLpzmwai8IoCnNBrRhgwhbrpJIsO0VtwKAx+8TpFf1rzgkJgMQ==

Things to note when testing the patch:

Be sure the CT log server you used to issue the SCT is listed (and enabled) in the config file.
The SCT files reside all in one directory listed in the server config
The SCT files contain only the raw SCT structure (beginning with the version id field).

If in doubt, ask nginx to log level debug and you should receive all the information you need (I chose to log the verification results inside the loop, despite this repeating quite a bit of log).

Any updates on this issue/PR?

authors: BenBE grahamedgecombe

repo: grahamedgecombe/nginx-ct

license: ISC


text:
Netlify build failing

https://github.com/graphcool/prep/blob/master/src/index.js#L1
Specifies where to source node, but in Netlify's build image node lives somewhere else. This is causing builds to fail. When I run prep in the build container locally...
buildbot@537748d807a3:~/repo$ ./node_modules/.bin/prep -c ./src/prerender/prep.js build
I get an error
/usr/bin/env: node: No such file or directory

PS this is the first prerendering library that has really worked for me :)

Hmm that's a good catch. @bdougie would you mind helping @mvanlonden out how to debug this on Netlify?

Hey Johannes!  I don't think there's anything to debug on our side yet.  I worked through this with Michael in support already - I think it probably works fine if he follows my advice around how to run commands in the container (hint:  you HAVE to use the build shell command in front of your build command).
So, we'll be waiting to see him try that here before debugging at all

Sorry for the miscommunication, misunderstood @fool via email. Got past that issue but now nightmare is getting hung up.
Probably has something to do with the Dockerfile because I don't see the same config there as I do in the Dockerfile on this repo. Will try running my own container next.

Since my pages are fairly dynamic I've decided to go with a middleware solution instead of a build chain one. prerender.cloud seems to do the trick

authors: fool mvanlonden schickling

repo: graphcool/prep


text:
Prevent and recover from 2 valid cards or bank accounts

We assume that we will only have one credit card on file. There are cases of users somehow ending up with two cards on file, which results in a 500 on the site for them (on the credit card page, maybe elsewhere?).
(Login required)
http://gittip.freshdesk.com/helpdesk/tickets/567
https://app.getsentry.com/gittip/gittip/group/22950746/
https://app.getsentry.com/gittip/gittip/group/22950711/

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Closing in light of our decision to shut down Gratipay.
Thank you all for a great run, and I'm sorry it didn't work out! 😞  💃


text:
🛑 GrauNeko.com is down

In 16f6b0a, GrauNeko.com (https://graueneko.com) was down:

HTTP code: 403
Response time: 1846 ms

Resolved: GrauNeko.com is back up in 304ef00 after 21 minutes.

repo: graueneko/status-page


text:
Test retry flaky tests

Issue
https://gravitee.atlassian.net/browse/APIM-XXX
Description

Add junit-pioneer extension to Junit 5. It will allow us to retry our flaky tests.
See - circle ci to get the flaky tests list.
migrate all gravitee-apim-definition tests to use Junit 5.
Add junit platform launcher in the gravitee-apim-definition and gravitee-apim-plugin modules to avoid java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory exception.

Additional context

📚  View the storybook of this branch here

This PR will be applied only on 3.19 and 3.20 for the moment. We will see if it's possible to correct the flaky tests on 4.0

repo: gravitee-io/gravitee-api-management


text:
Use dl, dt tags correctly in DefinitionList

<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements

сс @Raubzeug

repo: gravity-ui/components


text:
Add"RangeValue" to the public interface

It would be handy if added "RangeValue" to the public interface of the library. What do you think about it?
Right now I have to either import from dist or create my own type

fixed in #54

repo: gravity-ui/date-components


text:
[CI] Replace Lerna with NX

:bulb: Feature request
Feature Name
NX
The Desired Behavior
Currently, we have a fairly slow build process because we tried NX initially and the UX wasn't great. I've since used NX on other projects and the experience has been much improved.
Your Use Case
It would be really nice (since Daffodil is a package framework) to use a DAG tool like NX to build the package graph efficiently.
Prior Work
https://nx.dev/

Closed by #2412

repo: graycoreio/daffodil