Text glitches when using a custom font and when Snap Control To Pixels and GPU Pixel Snap are turned off (and a temporary fix)

Godot version
3.5.stable
System information
Fedora 36, AMD RENOIR, GLES3
Issue description
The characters in labels look weird (in my case, their tops look cut off). It seems to only affect labels which have a custom font and whose anchors have been changed (from the default top-left).
Turning Snap Control To Pixels or GPU Pixel Snap on fixes it, but they make animations which modify scale choppy.
Resizing the window sometimes makes it go away.
How to fix: Change the scale of the affected label from 1 to 1.001. (Changing it to 1.01 almost fixes it.)
Steps to reproduce

Turn off the Snap Control to Pixels and GPU Pixel Snap options in Project Settings
Add a new label
Add a custom dynamic font to it and change its anchor

Minimal reproduction project
The zip file is in one of the replies below

@2150m Please upload a minimal reproduction project to make this easier to troubleshoot.

textglitching.zip

Closing due to lack of response, if you provide the requested information this can be reopened


loxicmd get ct shows confusing info related to liveness check

Liveness frames need to be marked differently from normal LB conntrack for better visibility.

When. egress hooks are enabled, there is no need for special marking of liveness frames.


[4.1] SubViewport, InputEvent Pressed and Area3D

Godot version
v4.1.stable.official [970459615]
System information
Windows 11
Issue description
Hi,
After updating my project from godot 4.0.3 to 4.1, I noticed the SubViewport blocks the Input Events event pressed on my Area3D.
I made a small Godot project to test the issue with:

two cubes rotating when we interact with their Area3D with the signal input_event.
one is in front of the camera
the other is from the SubViewport,

if the SubViewport is visible, only the content in the viewport receives the event pressed.
Important to note the mouse_entered signal works well.
I made a video to demonstrate the issue (the godot project is avalaible below):
https://drive.google.com/file/d/1gBgL_zsX0A8Y4mFQ0AwpIv0NDygISj_k/view?usp=sharing
Steps to reproduce

Create a 3D scene, insert a mesh with an Area3D,
Create a SubViewport and place another mesh using Area3D
For the two Area3D, connect the signal input_event to a script, and get feedback on the InputEventMouseButton and  event.pressed

Area3D code:
func _on_input_event(camera, event, position, normal, shape_idx):
	if event is InputEventMouseButton:
		if event.pressed:
			self.rotate(Vector3.UP,deg_to_rad(45));

func _on_mouse_entered():
	print("Mouse enter on: ", self.name)

Minimal reproduction project
SubViewportAndMouseArea.zip

I noticed the SubViewport blocks the Input Events event pressed

It is more precise, that the SubViewportContainer blocks the Input Events. Mouse clicks on Control-Nodes always accept the event, when their mouse-filter is set to PASS. So it is expected, that SubViewportContainer as a Control-Node does the same. This was an inconsistency in the previous version, which lead to multiple problems and got fixed in #57894.
What you want to achieve is no longer possible with SubViewportContainer but you can use Area2D instead.
Here is a demo-project to showcase one possible way, how this can be done: SubViewportAndMouseAreaWithChanges.zip

Thank you @Sauermann for the explanations, I implemented what you showcase in the demo-project, and it is working perfectly!

I am glad to hear that. Closing this issue accordingly.

I don't like to download zips, could someone give an explanation of how to convert from subviewportcontainer to an Area2D?


Access plain file content in .pipe()

As suggested in #396 I use pipe to encrypt the content of a file before upload.
 const uploader = EntryAttachments.insert({
    file: attachment,
    streams: 'dynamic',
    chunkSize: 'dynamic',
  }, false);
  uploader.pipe(plainContent => {
    console.log('PLAIN CONTENT', plainContent);
...

For a test I used a simple textfile "test.txt" with content
"Just a simple dummy text file"
If I use pipe and dump out the file content that is passed in, it looks like this:

PLAIN CONTENT SnVzdCBhIHNpbXBsZSBkdW1teSB0ZXh0IGZpbGUK

So, that doesn't look like the content from my testfile. What is it?
How can I access the plain content?
(on your question in the last issue: Yes, I can write an example once I have my workflow ... working ;) )

Hello @theWeird
From the docs:

data flow uses dataURI (Base64)

Means all chunks passed as it is from the FileReader
Hope that will help, let me know.

Hello @theWeird ,
Any updates on your end?

Closed due to silence at issue owner end.
Feel free to reopen it in case if the issue still persists on your end.


Pallet/truck analysis is empty

Using Versions <IP_ADDRESS> on Windows 10.
When I try to create a truck load with a pallet, the analysis shows layers, but then when I click Next, the analysis shows the empty truck, and no pallets loaded.
Also, I don't know how to get 2 layers of pallets to show.
Thanks!
romeo

Please check Truck maximal loading weight...
It is probably set to zero.

Yes - that was it!  Thanks for the help.


Warning when turning of CsWinRTEnableLogging

Describe the bug
If I don't set CsWinRTEnableLogging to true in an authoring project, I get the following warning and the winmd isn't generated.
Severity	Code	Description	Project	File	Line	Source	Suppression State	Tool
Warning	CS8785	Generator 'SourceGenerator' failed to generate source. It will not contribute to the output and compilation errors may occur as a result. Exception was of type 'ObjectDisposedException' with message 'Cannot write to a closed TextWriter.'	AuthoringDemo	C:\Users\angzhang\source\repos\AuthoringDemo\AuthoringDemo\CSC	1	Build	Active	Compiler
Expected behavior
no warning
Version Info
CsWinRT 1.1.1

Not able to reliably repro.  Monitoring for hits.

Managed to get a repro, issue occurs when logging is enabled and then disabled in same session or across projects using CsWinRT authoring at the same time.


Clarify that $HOME/.cargo is always checked

@bors: r+

:pushpin: Commit 271860a has been approved by alexcrichton

:hourglass: Testing commit 271860a92d4636ee5e0fbbbccdaf02ae6e7ef251 with merge c0173bed00316a0e369e027ad7de32fc5234f8fb...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing c0173bed00316a0e369e027ad7de32fc5234f8fb to master...


Request for verification of incorrect dataset link

I enjoyed reading your paper and thank you so much for sharing the code.
It seems that the link of dataset is wrong.
can you confirm again?
Thank you.

I enjoyed reading your paper and thank you so much for sharing the code.
It seems that the link of dataset is wrong.
can you confirm again?
Thank you.

Hello, have you solved this problem? I also encountered this issue during the Quickstart step after environment setup.

I enjoyed reading your paper and thank you so much for sharing the code.
Although the dataset links seems wrong, I try to use the data_generation to construct a dataset.
It didn't work out very well。
Can you confirm again?
I'm curious about your data architecture.
Thank you.

@cher0000 Please let us know the error you faced while using data_generation code.


Max Planning Time Control

I wonder whether there exists a kind of solution to control the planning time of single query, since such query would occupy large amounts of resource and affect other following query.
Is there any configs can do this?Or can I do this by limit the total query time through other configs?
My presto version is 0.202.

There is experimental.iterative-optimizer-timeout config property and matching iterative_optimizer_timeout session property. This control only optimizer execution. This was
One option (workaround) would be to periodically do select * from system.runtime.queries and call system.kill_query() which exceeds threshold.

@kokosing Thanks for quick reply!
As I know,  iterative-optimizer-timeout only works within "single iterativeOptomizer". Is there any global control on all optimizers?
BTW, is it better that presto supports a kind of automcatic strategy to control such high-cost query?

@kokosing In our situation，there exists some query involve about 100 thousands columns. These query cost long time such as 20 minutes on planning. So we try to control the planning time of such query in order not to affect following query.
On the other hand, if we can know the most time-consumed procedure within the planning of such query, it would also be helpful. Can we analyze the time cost of each planning procedure?
Thanks for your attention.

@infearOnTheWay Have you fixed your issue? What was the resolution?

On the other hand, if we can know the most time-consumed procedure within the planning of such query, it would also be helpful. Can we analyze the time cost of each planning procedure?

There are JMX statistics exposed for planner which tells which optimizer rules takes how much of time.

there exists some query involve about 100 thousands columns. These query cost long time such as 20 minutes on planning.

Maybe there are places where we can improve planning, can you try attach a profiller during a planing of that query?

So we try to control the planning time of such query in order not to affect following query.

I don't get it. Do you try to kill queries which take huge amount of time for planing? Notice that system.runtime.queries exposes information about planning time and analysis time. That could be used for external system to control such queries.


Not working for GCam 7.2

Portrait photos taken by Google Camera 7.2 seems to have different format that the current version of depthy doesn't support : (

Same here. Pixel4, GCam 7.2.018, in protrait mode not working with either original or blurred (COVER) picture. I can provide an example photo to work on.


Signing with a certificate from an untrusted chain fails

Signing this file failed with the error: "A certificate chain could not be built to a trusted root authority."
Is there any flag that can be set to override this behavior?
Also, the error above was generated from Azure DevOps Pipelines, because in GitHub Actions the error becomes malformed: Signing this file failed with the error: "⁁散瑲晩捩瑡档楡潣汵潮⁴敢戠極瑬琠牴獵整潲瑯愠瑵潨楲祴."

Ended up just switching to a self-hosted runner, feel free to close the issue if it's not going to be resolved.


Fixed confusing terminology In Users Tab

Fixes #16178
Screenshots :

Edit  : Also as discussed within the topic here , Would love to know the exact replacement of term "(unavailable)" so as to make according changes here .

You should fix the failing node tests (see the pipeline failures) and update your commit message according to our developer documentation.

Would love to know the exact replacement of term "(unavailable)" so as to make according changes here .

I don't think we want to change the (unavailable) string.

You want to squash your commits.

Fixes : Fixed confusing terminology within User's tab .

The part before the colon should be the area. This is not really a tab, but a sidebar. I'd probably title the commit buddy list: Change "active" to "online".

Closing in favor of #18693 (which replaces it with a Idlestatus)


Optional Types

Syntax
maybe_an_int: int? = some_function_call()

maybe_give_int = fn() -> int? {
    if math.rand() * 2 == 1 {
        return 42
    }

    return nil
}

# Initialize later

coolest_person: str? = nil

# Do some work...

print coolest_person # Some(Person { name: "Mateo", age: 16 })

?= and get
Will resolve as true if the variable exists, and False if it does not exist.

maybe_best_fruit: str? = read_fruit_db()

if best_fruit ?= maybe_best_fruit {
    print best_fruit
} else {
    print "maybe_best_fruit is empty"
}

best_fruit = get maybe_best_fruit : "Guava"

// has the potential to abort if maybe_best_fruit is nil
best_fruit_dangerous = get maybe_best_fruit

print best_fruit
print maybe_best_fruit

none_str: str? = nil

Instead of !, an empty optional will be created with the nil keyword.

Instead of :, use or as the delimiter between an optional variable and its fallback.


fix(validate): fix validation of options in moduleExec (#24)

Fixes #24
This PR fixes validation of options overrides when overrides are not passed.
Changes

Pass an empty object to validateAndCoerceTypes's options if no option overrides are passed.

Hey @PythonCreator27, appreciate the PR. Some comments below:

I think the solution is not the correct one, the object we should be validating should be "Defaults" + "Overrides" (that's what I think and what I wrote in the issue - but @gadicc can confirm)
This PR also touches lines of code that is simply changing single quotes to double quotes, this is not a good practice, please remove those changes by tuning your code editor

I created a PR for this myself (as I wrote in the initial issue) that you can see here; https://github.com/gadicc/node-yahoo-finance2/pull/27

Hey @PythonCreator27!  It's amazing that at this early stage we're getting two PRs for the same issue at the same time!  Thanks for playing nice and looking forward to your next one :)
Awesome that you got the editing fixed.  Nevertheless I'm going to look into #22 today so that styling and linting is consistent.  Thanks again.


improve performance of our trace detail page

I think we are probably not doing things in the most efficient way. I'm hoping maybe someone like @ghermeto could review some of our code for opportunities for improvement or even better improve it. Goal would be to ensure faster rendering of traces with 1k spans (look at zipkin-ui/testdata for examples)
Notably the following files would be helpful to get some performance advice on, and especially some thoughts on tooling to ensure we know how well they are doing:
zipkin-ui/js/component_data/skew.js
zipkin-ui/js/component_data/spanCleaner.js
zipkin-ui/js/component_data/spanNode.js
zipkin-ui/js/component_ui//traceSummary.js
zipkin-ui/js/component_ui//traceToMustache.js
cc @openzipkin/ui

Spoiler alert, he is always doing benchmarks.
Den ons. 5. des. 2018, 13:02 skrev Adrian Cole<EMAIL_ADDRESS>
I think we are probably not doing things in the most efficient way. I'm
hoping maybe someone like @ghermeto https://github.com/ghermeto could
review some of our code for opportunities for improvement or even better
improve it. Goal would be to ensure faster rendering of traces with 1k
spans (look at zipkin-ui/testdata for examples)
Notably the following files would be helpful to get some performance
advice on, and especially some thoughts on tooling to ensure we know how
well they are doing:
zipkin-ui/js/component_data/skew.js
zipkin-ui/js/component_data/spanCleaner.js
zipkin-ui/js/component_data/spanNode.js
zipkin-ui/js/component_ui//traceSummary.js
zipkin-ui/js/component_ui//traceToMustache.js
cc @openzipkin/ui https://github.com/orgs/openzipkin/teams/ui
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/openzipkin/zipkin/issues/2314, or mute the thread
https://github.com/notifications/unsubscribe-auth/AC7sAuBO4ISzzyMpF5ONmwjTiixjLUtdks5u17XLgaJpZM4ZClnp
.

I can take look this weekend... For Node.js I usually use Benchmark.js which powers JsPerf or Autocannon for HTTP/1.1.
Although Benchmark.js works for javascript in general, it doesn't help with rendering, so I ask around here...

@redsunsoft this is the ticket

We gave this a try with "smartthings-oauth-authorization.json" data and it rendered quite quickly.  Are we reproing correctly?

@redsunsoft so mainly were hoping for a code review in case there are some ways to improve perf. There is a lag loading that trace, it doesn't snap, but larger traces can be slower. It is all subjective I guess. I know larger traces are problematic (approaching 10k spans), but we don't have one here.
At the moment, the new UI is under zipkin-lens, so probably feedback there will end up with highest value.
At any rate an example setup for benchmarking added to help track down perf concerns would be good if you have integration ideas and/or instructions.

Got it.  I'll take a read through the code.

thanks @redsunsoft and happy holidays!

Took a good look at the code and React scripts but nothing jumped out to me.  Your composition and lifecycle hooks all seem to be fine.  So unless there's a specific issue that needs attention, you're looking good with the new codebase.

thanks much!


Update deprecated setting in neo4j-config.yaml

Replaced with dbms.cluster.discovery.resolver_type.
Config reference.

Thanks @justinwalz for bringing this to our notice.
closing this as the PR is incomplete. getting fixed here
https://github.com/neo4j/helm-charts/pull/220/files


Update lighthouse

It looks like the image for lighthouse is outdated - version 6.5.0
Could you please update it?

Rebuilt!


Any recommended gulpfile or gruntfile or any other tool to optimize before deploying?

Hi, I've been looking for a gulpfile or gruntfile or any other easy to use tool to successfully optimize before deploying.
I ran into some build errors which, I read on the web, are actually related with font-awesome (or with certain versions of it) and other specific resources in use (or optionally in use) in Hyde-X.
Is anybody successfully optimizing, with which tool(s)?
I'd like it all if possible :) fetch remote resources, minify and concat of css, js and html.

Well, I have been seeing "a lot" this error and researching how to get rid of it:
events.js:85
      throw er; // Unhandled 'error' event

Apparently it is being associated with very different possible causes in different scenarios.
font-awesome version:
https://github.com/mcasimir/generator-mobileangularui/issues/8
port number being served, other node process running, user permissions:
http://stackoverflow.com/questions/16827987/expressjs-throw-er-unhandled-error-event
node/gulp/components version:
https://github.com/google/web-starter-kit/issues/678
specific code of some call in an application
http://stackoverflow.com/questions/31789502/google-api-exception-unhandled-by-user-code-request-error
a syntax error in one of the included minified files
http://stackoverflow.com/questions/31003457/gulp-uglify-events-js-unhandled-error-event

I'd concur with @zyro that the ideal would be for hugo itself to handle minification as desired. That said, it doesn't seem to do so right now, so the two most convenient approaches I can think of:

Deploy to a host/CDN that compresses automatically
Install standalone tools (e.g. http://yui.github.io/yuicompressor/ for CSS, http://www.crockford.com/javascript/jsmin.html for JS) and invoke them after running hugo and before pushing the static files to your host

In the second case, I think things like gulp/grunt are generally overkill for a fairly normal static site. If you have a truly substantial page with a lot of other dependencies then maybe, but personally I'd just write a bash or python script and be done with it (and be less likely to run into the sorts of strange errors you're hitting).
Minification is a low priority for me (I'm working with small sites that tend to be super responsive simply by being static), but if I revisit in future and try to implement any of the above I'll update here. Good luck!

@soycode Thank you. Well... I commented (in the "thread" associated with your issue) about Hugo and minification/optimization being In My Newbie Opinion something completely different from what Hugo does. Hugo doesn't parse our html code, we could throw anything in our templates. That's fine IMNO, Hugo is a great tool as it is already, parsing etc. is really another layer I believe.
My website is very small... yet this tool I already mentioned suggests that I should do something to make it more responsive for cell phones users navigating through their phone service provider data connection... it mentions "blocking resources" (we have some css and js files) and mentions minifying, optimizing, concat, making remote resources local...
I guess the Google search engine is just providing your URL with lower priority to cell phone users searching on Google by keywords, when it assumes that those users' experience wouldn't be that good on your website. Besides, I always like to learn towards the best possible quality.
As for writing scripts... well... apart skipping white space and eventually also CR or CRLF... the rest is a hell of a task, it seems to me. Gulp/Grunt stuff relies on the work of many many people, and the intervention of various modules... yes of course that's also a wider possible source of errors, admittedly.

Optimizing in the name of pagerank makes sense and isn't something I'd considered as much, I guess I still view that as a sort of later step but it is worth working on. To be clear, I'm not suggesting writing a script to do the processing directly - rather, the script would just invoke various shell commands (hugo, yuicompressor, and git push for example). So it'd be kind of like gulp/grunt, just more single-purpose.
And on that note, I actually happened across a newer interesting tool that may suit this purpose - http://brunch.io/
I've not tried it myself but may give it a closer look later.

@soycode

[...] the script would just invoke various shell commands (hugo, yuicompressor, and git push for example)

Understood. That's actually what gulp does, the author says gulp itself does nothing but calling other tools and possibly piping one's output to another.
But I understand that one can be more comfortable (and possibly dramatically limit the scope of investigation in case of errors) with a self made tool (that was my posture always, years ago, I had even made my own metalanguage for writing, and especially for scriptwriting, with footnotes... easy to switch among "French" "USA" and "Italian" script formatting... when markdown and fountain didn't exist yet... then shell => perl => html).
I'll check out yuicompressor, thank you. I was also tempted to inquire in the optimum page and ask them where I could put some pipe to extract more precise error messages, it's quite possible that that error is a common fall back (or fall out) of errors of any kind, including syntax errors in processed files (so I read in one of the pages linked above, yesterday).

I've just posted an update here, you can search for these words to locate it in the page:
have been full steam on this matter


CI - use rust local action for caching of dependencies in rust test_ockam_command job

We recently created a composite action that adds conditional caching of Rust dependencies in this PR https://github.com/build-trust/ockam/pull/6515, we should use this action in place of Swatinem/rust-cache in the rust - test_ockam_command job by changing
      - uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43
        with:
          workspaces: "ockam_cli -> target"

to
      - uses: ./ockam_bats/.github/actions/cache_rust
        with:
          directory_to_cache: "ockam_cli"
          job_name: ${{ github.job }}

We love helping new contributors! ❤
If you have questions or need help as you explore, please join us on Discord. If you're looking for other issues to contribute to, please checkout our good first issues.

@metaclips I would like to work on this. Can you assign it to me?

Hello @Lumexralph there are two issues assigned to you https://github.com/build-trust/ockam/issues/6551 and https://github.com/build-trust/ockam/issues/6538 can we close those two before assigning any other issue to you?

@metaclips I made a PR for #6551 but waiting for response on #6538. Is that a good reason to be assigned one of the issues I requested?

@Lumexralph assigning you to this issue. Thanks


Update trace4cats-core, trace4cats-meta, ... to 0.13.1+93-3b55f15a

Updates

io.janstenpickle:trace4cats-core
io.janstenpickle:trace4cats-meta
io.janstenpickle:trace4cats-tail-sampling

from 0.13.1+67-a7d9b849 to 0.13.1+93-3b55f15a.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.janstenpickle" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "io.janstenpickle" }
}]

labels: library-update, early-semver-build-metadata, semver-spec-build-metadata, commit-count:1

Superseded by #167.


Adding works from Hard Drive

Can the manager display only works that you have on your account? Or can you point it to a folder with RJxx zip files that you don't have on your account and still display them? Thanks.

Yes, currently the manager can display works that you have. But the DLsite's API allows us to fetch works information without having them, so I think I can implement those features. I'll consider them to be shipped in next release.

Any update on this? DLSite manager from ULMF is dead in the water
and Atlas (https://github.com/KJNeko/Atlas) is probably half a year out for DLSite support even though they have started scraping general data.

@CuddleBear92 DLsite Manager at this moment requires detailed product information which is only open to product owners. I'm re-designing entire codebase to support products with incomplete information. But I was very busy end of 2023 and earlier 2024, the work is not much progressed. Now I'm back, I think next release will be completed within a month at the latest.

what kind of detailed info is required that only the product owners has? seems most of the info outside of the main description is in their json open for all, even games that is removed from the store, heck they still host all the product images from removed products to this day. https://www.dlsite.com/maniax/product/info/ajax?product_id=RJ021041
Not that DLsite Manager currently pulls the description, the only thing i can see the client has that the json is missing is the creator name which could be pulled from the maker list url that lists all the creators. such a thing could just have a maker_id <-> creator name map.
Or i guess just looking it up on a per  maker_id type deal in html.
Not quite sure if they have a public json for the creator.
Just an idea anyway.

@CuddleBear92 For an example, DLsite Manager requires file list to download. It must be fetched and stored to local database in current implementation. Yes, technically they are not needed to support the feature this issue suggests, but anyway, those behavior must be changed, that's the point.

Added in the latest release.


Send notification when comments have replies

When there are replies to comments, the original commenter does not get notified of the replies unless they subscribe to the APIview. It would be useful to get notified (ideally, a single email consisting of all replies for a revision) to either respond or resolve the original comment.

Another option is to auto-subscribe to any API view that I add a comment to as it's an API of interest to me and would like to get notified when there are more comments from other reviewers/authors.


Wrong "today" mark

If I am not mistaken, the calendar has a special css for "today".  But it is showing the wrong date:

I can't reproduce it. But the "Today" interaction will be redesigned soon :)

I can confirm this, today is 19.12 and  plugin shows 16.12

I can confirm this, today is 19.12 and plugin shows 16.12  After restarting app it show again ok date my logseq was probably not restarted since 16.12
@xyhp915 to reproduce please start the logseq a day before (or artificially change date) plugin probably will not change date next day without restart Also when I create note for next, it doesnt show dot until I restart logseq

I can confirm this be behaviour. I rarely turn my computer off and leave logseq running for days at a time. Seems the plugin doesn't update the current date after initial startup.
Looks like we rely on dayjs/esm/plugin/isToday to determine the current date.
Here's the snippet that I think controls the behaviour:
https://github.com/xyhp915/logseq-journals-calendar/blob/91766617b0b44248145a708d81eb2d58da7cf60e/src/App.vue#L95-L100
This gets executed in the mounted method. I'm not familiar with logseq plugins, but it sounds like this is a run-once-on-load method. To adjust this behaviour we could extract this code to a separate method, have mounted call that method, and have a scheduled / event-based call to the method at/after midnight somehow.

I can confirm that the problem is reproducing when the logseq is running for more than one day.


Go: Refer to hand-written client when one exists

Current coverage is 81.06% (diff: 100%)

Merging #600 into master will increase coverage by <.01%

@@             master       #600   diff @@
==========================================
  Files           266        266
  Lines         10013      10015     +2
  Methods           0          0
  Messages          0          0
  Branches       1299       1299
==========================================
+ Hits           8117       8119     +2
  Misses         1562       1562
  Partials        334        334

Powered by Codecov. Last update 148d29d...b8c86b7

@jba @garrettjonesgoogle PTAL

LGTM after you address the small doc change I requested.


Updated Website Typeface

This PR contains "Website's Typeface Improvement" changes. If you want some changes, mention them. I would like to consider them.

There are many conflicts in this plus I think current fonts are okish. We can change these things later first we need to focus on visible updates. You can raise this issue again after the website gets updates to an extent @iamRabia-N I will assign it to you then 👍


JS file changes require server restart

Version
2.2.4
Platform
MacOS Sonoma 14.5 (M2)
What steps will reproduce the bug?

Load a basic client-side .js file. In my case, I have a /_includes/layout.tsx file that calls to .js file in the root folder via a  <script> tag.)
After starting the server, make a change to the JS file
Although the CLI reports that the change has been detected and then sent to the broser, the change is not registered until and unless the server is restarted. The JavaScript that was in the file initially will continue to run, unchanged, even after a hard refresh and with caching disabled in dev tools.

(Note: it appears this may be the case with images as well; perhaps any static assets)
How often does it reproduce? Is there a required condition?
As far as I can tell, there's nothing special other than the conditions above.
What is the expected behavior?
After detecting the change and sending it to the browser, the new JS should load instead of the old JS.
What do you see instead?
The old, initial JS continues to load and run until and unless the server is restarted.
Additional information
We're seeing this issue on https://github.com/denoland/docs, if you'd like to reproduce from there. (In my case, editing sidebar.client.ts, which should run on any individual doc page.)

Thanks @josh-collinsworth
It's indeed a bug that I just fixed it.
I'm in the middle of releasing Lume v2.3 with some new features, and one of the changes is to run the build in a Worker. This will allows to restart the build completely after some changes like modify the _config.ts file (i.e. to add or remove plugins) without need to stop and restart the build manually.
Unfortunately, now Prism is failing:

Inspecting the NPM code, seems that the self variable is not defined:

Replacing this variable with globalThis works fine.
Maybe this is a Deno bug? self property should exist in Workers contexts

FYI I have filed an issue with the self bug: https://github.com/denoland/deno/issues/25008

Seems that the Deno bug with Workers is fixed!
You can use the latest development version of Lume with deno task lume upgrade --dev.

Hi @oscarotero - it looks like we may have a recent regression on this bug somewhere. (Or, maybe it was fixed for one file type, but not another.)
I'm noticing that I need to restart the server before I can see changes to .tsx files, even when on the latest Lume, in the Deno Docs repo.
I believe this was working before, but if so, it hasn't been for a bit, I'm told. Any insights as to where this issue with .tsx files might be coming from?

Hi. I just tried to modify _components/Footer.tsx and _includes/layout.tsx and it was working in my end (the site is rebuilt and the browser reloaded, showing the changes).
Do you know any particular file with which doesn't work?

Sorry, @oscarotero, I didn't realize the problem is much more narrowly scoped than I thought.
The issue can be seen in this PR (which I think should be merged into main within the next day or so).
Specifically, the issue seems to occur in the examples/index.tsx file; there, we're importing and using a <LandingPage /> component.
Changes made to the base examples/index.tsx file seem to update just fine. However, changes made to that imported LandingPage.tsx component are not reflected without a server restart.
So maybe the issue is with one .tsx file importing another and using it in this way, somehow? Or maybe we're just doing something wrong here. If you have any guidance it would be much appreciated.

Okay, I see you´re importing the components as esm modules (i.e. import { LearningList } from "../_components/LearningList.tsx";).
Sadly, Deno does't have any way to reload a module once they are imported. This is why in Lume components should be consumed through the comp variable.
This doesn't refresh:
import Header from "./_components/header.ts";

export default function () {
  <Header />
}

This does:
export default function ({comp}) {
  <comp.Header />
}

@oscarotero Thank you so much for your help! Problem solved. ✅


servicemonitor is not created for missing role on camel-k-operator

We receive the following error when we enable the trait prometheus service monitor --trait prometheus.service-monitor=true:
Cannot reconcile Integration sample: error executing post actions: error during replace resource: could not create or replace resource sample: servicemonitors.monitoring.coreos.com is forbidden: User "system:serviceaccount:fuse7:camel-k-operator" cannot create resource "servicemonitors" in API group "monitoring.coreos.com" in the namespace "fuse7"

As workaround we have to apply the following
oc apply -f https://raw.githubusercontent.com/apache/camel-k/237ab293213ac2477f039e70afd28af412e4bcd1/deploy/operator-role-olm.yaml
in order to add the role servicemonitors.monitoring.coreos.com to camel-k-operator:
servicemonitors.monitoring.coreos.com              []                 []                      [create delete deletecollection get list patch update watch]


Remove version: qBittorrent.qBittorrent version 5.0.1

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://sourceforge.net/projects/qbittorrent/files/qbittorrent-win32/qbittorrent-5.0.1/qbittorrent_5.0.1_x64_setup.exe/download
OK
(Automated message - build 923)

Close with reason: Package still available.;


Runtime tests fall over when run with address sanitizer

If you run
swift test --sanitize=address

You get the following error
Test Case '-[RuntimeTests.GetSetClassTests testGet]' started.
=================================================================
==68277==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffeeb309100 at pc 0x00010accef1f bp 0x7ffeeb3080f0 sp 0x7ffeeb3080e8
READ of size 8 at 0x7ffeeb309100 thread T0
    #0 0x10accef1e in closure #1 in closure #1 in withExistentialValuePointer<A, B>(of:_:) Pointers.swift:54
    #1 0x10accf1b1 in thunk for @callee_guaranteed (@unowned UnsafePointer<ExistentialContainer>) -> (@unowned ExistentialContainer, @error @owned Error) <compiler-generated>
    #2 0x10accf493 in partial apply for thunk for @callee_guaranteed (@unowned UnsafePointer<ExistentialContainer>) -> (@unowned ExistentialContainer, @error @owned Error) <compiler-generated>
    #3 0x7fff2ca94c9e in UnsafePointer.withMemoryRebound<A, B>(to:capacity:_:)+0xe (libswiftCore.dylib:x86_64+0x13ac9e)
    #4 0x10accdc85 in closure #1 in withExistentialValuePointer<A, B>(of:_:) Pointers.swift:54
    #5 0x10accecc1 in partial apply for closure #1 in withExistentialValuePointer<A, B>(of:_:) <compiler-generated>
    #6 0x7fff2ca8ec9b in withUnsafePointer<A, B>(to:_:)+0xb (libswiftCore.dylib:x86_64+0x134c9b)
    #7 0x10acccece in withExistentialValuePointer<A, B>(of:_:) Pointers.swift:53
    #8 0x10accbf6d in withValuePointer<A, B>(of:_:) Pointers.swift:35
    #9 0x10acc53ac in PropertyInfo.get(from:) PropertyInfo.swift:59
    #10 0x10acc46fe in PropertyInfo.get<A>(from:) PropertyInfo.swift:50
    #11 0x10acf03de in GetSetClassTests.testGet() GetSetClassTests.swift:63
    #12 0x10acf0b72 in @objc GetSetClassTests.testGet() <compiler-generated>
    #13 0x7fff2065856b in __invoking___+0x8b (CoreFoundation:x86_64h+0x6456b)
    #14 0x7fff2065840f in -[NSInvocation invoke]+0x12e (CoreFoundation:x86_64h+0x6440f)
    #15 0x105759bfc in __24-[XCTestCase invokeTest]_block_invoke_3+0x33 (XCTest:x86_64+0x30bfc)
    #16 0x10582d3e8 in +[XCTSwiftErrorObservation observeErrorsInBlock:]+0x44 (XCTest:x86_64+0x1043e8)
    #17 0x105759afe in __24-[XCTestCase invokeTest]_block_invoke_2+0x76 (XCTest:x86_64+0x30afe)
    #18 0x1057f0b75 in -[XCTMemoryChecker _assertInvalidObjectsDeallocatedAfterScope:]+0x40 (XCTest:x86_64+0xc7b75)
    #19 0x105764a3d in -[XCTestCase assertInvalidObjectsDeallocatedAfterScope:]+0x3c (XCTest:x86_64+0x3ba3d)
    #20 0x105759a44 in __24-[XCTestCase invokeTest]_block_invoke.262+0xc6 (XCTest:x86_64+0x30a44)
    #21 0x1057d15d7 in -[XCTestCase(XCTIssueHandling) _caughtUnhandledDeveloperExceptionPermittingControlFlowInterruptions:caughtInterruptionException:whileExecutingBlock:]+0xb2 (XCTest:x86_64+0xa85d7)
    #22 0x105759507 in -[XCTestCase invokeTest]+0x40c (XCTest:x86_64+0x30507)
    #23 0x10575b17d in __26-[XCTestCase performTest:]_block_invoke_2+0x2a (XCTest:x86_64+0x3217d)
    #24 0x1057d15d7 in -[XCTestCase(XCTIssueHandling) _caughtUnhandledDeveloperExceptionPermittingControlFlowInterruptions:caughtInterruptionException:whileExecutingBlock:]+0xb2 (XCTest:x86_64+0xa85d7)
    #25 0x10575b0b4 in __26-[XCTestCase performTest:]_block_invoke.393+0x55 (XCTest:x86_64+0x320b4)
    #26 0x1057e5462 in +[XCTContext runInContextForTestCase:markAsReportingBase:block:]+0xdb (XCTest:x86_64+0xbc462)
    #27 0x10575a8c1 in -[XCTestCase performTest:]+0x2bd (XCTest:x86_64+0x318c1)
    #28 0x1057ac0ae in -[XCTest runTest]+0x38 (XCTest:x86_64+0x830ae)
    #29 0x10575264c in -[XCTestSuite runTestBasedOnRerunPolicy:testRun:]+0x9a (XCTest:x86_64+0x2964c)
    #30 0x1057524c1 in __27-[XCTestSuite performTest:]_block_invoke+0xfc (XCTest:x86_64+0x294c1)
    #31 0x105751d15 in __59-[XCTestSuite _performProtectedSectionForTest:testSection:]_block_invoke+0x17 (XCTest:x86_64+0x28d15)
    #32 0x1057e5462 in +[XCTContext runInContextForTestCase:markAsReportingBase:block:]+0xdb (XCTest:x86_64+0xbc462)
    #33 0x105751ccc in -[XCTestSuite _performProtectedSectionForTest:testSection:]+0x9e (XCTest:x86_64+0x28ccc)
    #34 0x105751fd0 in -[XCTestSuite performTest:]+0x121 (XCTest:x86_64+0x28fd0)
    #35 0x1057ac0ae in -[XCTest runTest]+0x38 (XCTest:x86_64+0x830ae)
    #36 0x10575264c in -[XCTestSuite runTestBasedOnRerunPolicy:testRun:]+0x9a (XCTest:x86_64+0x2964c)
    #37 0x1057524c1 in __27-[XCTestSuite performTest:]_block_invoke+0xfc (XCTest:x86_64+0x294c1)
    #38 0x105751d15 in __59-[XCTestSuite _performProtectedSectionForTest:testSection:]_block_invoke+0x17 (XCTest:x86_64+0x28d15)
    #39 0x1057e5462 in +[XCTContext runInContextForTestCase:markAsReportingBase:block:]+0xdb (XCTest:x86_64+0xbc462)
    #40 0x105751ccc in -[XCTestSuite _performProtectedSectionForTest:testSection:]+0x9e (XCTest:x86_64+0x28ccc)
    #41 0x105751fd0 in -[XCTestSuite performTest:]+0x121 (XCTest:x86_64+0x28fd0)
    #42 0x1057ac0ae in -[XCTest runTest]+0x38 (XCTest:x86_64+0x830ae)
    #43 0x10575264c in -[XCTestSuite runTestBasedOnRerunPolicy:testRun:]+0x9a (XCTest:x86_64+0x2964c)
    #44 0x1057524c1 in __27-[XCTestSuite performTest:]_block_invoke+0xfc (XCTest:x86_64+0x294c1)
    #45 0x105751d15 in __59-[XCTestSuite _performProtectedSectionForTest:testSection:]_block_invoke+0x17 (XCTest:x86_64+0x28d15)
    #46 0x1057e5462 in +[XCTContext runInContextForTestCase:markAsReportingBase:block:]+0xdb (XCTest:x86_64+0xbc462)
    #47 0x105751ccc in -[XCTestSuite _performProtectedSectionForTest:testSection:]+0x9e (XCTest:x86_64+0x28ccc)
    #48 0x105751fd0 in -[XCTestSuite performTest:]+0x121 (XCTest:x86_64+0x28fd0)
    #49 0x1057ac0ae in -[XCTest runTest]+0x38 (XCTest:x86_64+0x830ae)
    #50 0x1058052ce in __44-[XCTTestRunSession runTestsAndReturnError:]_block_invoke_2+0x93 (XCTest:x86_64+0xdc2ce)
    #51 0x1057e5462 in +[XCTContext runInContextForTestCase:markAsReportingBase:block:]+0xdb (XCTest:x86_64+0xbc462)
    #52 0x105805233 in __44-[XCTTestRunSession runTestsAndReturnError:]_block_invoke+0x6e (XCTest:x86_64+0xdc233)
    #53 0x1058053b4 in __44-[XCTTestRunSession runTestsAndReturnError:]_block_invoke.87+0x5f (XCTest:x86_64+0xdc3b4)
    #54 0x10577b684 in -[XCTestObservationCenter _observeTestExecutionForBlock:]+0x144 (XCTest:x86_64+0x52684)
    #55 0x105804fab in -[XCTTestRunSession runTestsAndReturnError:]+0x1d8 (XCTest:x86_64+0xdbfab)
    #56 0x105736338 in -[XCTestDriver _runTests]+0x1d1 (XCTest:x86_64+0xd338)
    #57 0x1057e01b7 in _XCTestMain+0x6b (XCTest:x86_64+0xb71b7)
    #58 0x1048fa530 in main+0x194 (xctest:x86_64+0x100006530)
    #59 0x7fff20598620 in start+0x0 (libdyld.dylib:x86_64+0x15620)

Address 0x7ffeeb309100 is located in stack of thread T0 at offset 256 in frame
    #0 0x10acc4d0f in PropertyInfo.get(from:) PropertyInfo.swift:57

  This frame has 4 object(s):
    [32, 80) ''
    [112, 120) ''
    [144, 192) ''
    [224, 256) '' <== Memory access at offset 256 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow Pointers.swift:54 in closure #1 in closure #1 in withExistentialValuePointer<A, B>(of:_:)
Shadow bytes around the buggy address:
  0x1fffdd6611d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1fffdd6611e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1fffdd6611f0: 00 00 00 00 ca ca ca ca 00 00 00 cb cb cb cb cb
  0x1fffdd661200: f1 f1 f1 f1 00 00 00 00 00 00 f2 f2 f2 f2 00 f2
  0x1fffdd661210: f2 f2 00 00 00 00 00 00 f2 f2 f2 f2 00 00 00 00
=>0x1fffdd661220:[f3]f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
  0x1fffdd661230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1fffdd661240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1fffdd661250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1fffdd661260: 00 00 00 00 ca ca ca ca 00 00 cb cb cb cb cb cb
  0x1fffdd661270: ca ca ca ca 00 00 cb cb cb cb cb cb f1 f1 f1 f1
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==68277==ABORTING

Looks like this is because you are assuming you can use the pointee value outside of a withMemoryRebound. Although if I fix this the address sanitizer just fails elsewhere.
On Linux both thread and address sanitizers fail

Here are fixed versions of the functions using pointee outside of the withMemoryRebound closure from Pointers.swift. I can add a PR for these if you want.
func withClassValuePointer<Value, Result>(
    of value: inout Value,
    _ body: (UnsafeMutableRawPointer) throws -> Result) throws -> Result {
    return try withUnsafePointer(to: &value) {
        return try $0.withMemoryRebound(to: UnsafeMutableRawPointer.self, capacity: 1) {
            try body($0.pointee)
        }
    }
}

func withExistentialValuePointer<Value, Result>(
    of value: inout Value,
    _ body: (UnsafeMutableRawPointer) throws -> Result) throws -> Result {
    return try withUnsafePointer(to: &value) { ptr in
        try ptr.withMemoryRebound(to: ExistentialContainer.self, capacity: 1) {
            let container = $0.pointee
            let info = try metadata(of: container.type)
            if info.kind == .class || info.size > ExistentialContainerBuffer.size() {
                return try ptr.withMemoryRebound(to: UnsafeMutableRawPointer.self, capacity: 1) {
                    let base = $0.pointee
                    if info.kind == .struct {
                        return try body(base.advanced(by: existentialHeaderSize))
                    } else {
                        return try body(base)
                    }
                }
            } else {
                return try body($0.mutable.raw)
            }
        }
    }
}

Ah good catch. Yea I originally started doing that in a couple places when reading the metadata, and those addresses would always be static so it wasn't too much of an issue. Obviously got to use to it and it should not be done here 😅. But Id be happy to merge a PR that fixes it!


Is there any working package for Conan ?

Hello. I''ve just faced some trouble with conan packages.
I tried to install pugixml 1.10 and 1.11 via Conan. But in all cases I can't see heders.
My conanfile.txt:
[requires]
boost/1.78.0
pugixml/1.11

[generators]
cmake
cmake_find_package

CmakeLists.txt:
...
find_package(PugiXML CONFIG)
if (NOT PUGIXML_FOUND)
  find_dependency(PugiXML)
endif()
target_link_libraries(lib_xml PRIVATE pugixml pugixml::static pugixml::pugixml)

target_link_libraries(my_app PUBLIC lib_xml)

Finally I can't see <pugixml.hpp>
What I'm doing wrong ?
Thanks!

I've just changed CMakeLists.txt to:
find_package(pugixml REQUIRED)
target_link_libraries(lib_xml PRIVATE pugixml::pugixml)

and now I have another exception:
error: Imported target "pugixml::pugixml" includes non-existent path "/home/user/.conan/data/pugixml/1.11/_/_/package/803d1cd04e225b70657161961aaf49e6f4674680/include" in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include: * The path was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and references files it does not provide.


Sadpanda Parse Error

简略描述 / Describe the bug
Parse error when trying to view a gallery.
如何重现 / To Reproduce
Steps to reproduce the behavior:

Click on a gallery
See parse error

预期行为 / Expected behavior
Gallery should be viewable
截图 / Screenshots
None
设备型号与 Android 版本 / Device model and Android version

Device model: Galaxy Tab S9
Android version: Android 14

备注 / Additional context
Same issue as https://github.com/exzhawk/EhViewer/issues/32, but the latest update did not fix it for me.

The regex won't match since there's another nested layer of
, not sure if it's added after exzhawk made the fix.
Here's my fix, simply changing PATTERN_LARGE_PREVIEW_NEW would already fix the problem, but I didn't really like the idea of parsing the entire page of HTML with regex, so I tried to limit the amount of HTML code being parsed.
- app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.java -
index dfdb862a..62b22667 100644
@@ -70,7 +70,8 @@ public class GalleryDetailParser {
     private static final Pattern PATTERN_NORMAL_PREVIEW = Pattern.compile("<div class=\"gdtm\"[^<>]*><div[^<>]*width:(\\d+)[^<>]*height:(\\d+)[^<>]*\\((.+?)\\)[^<>]*-(\\d+)px[^<>]*><a[^<>]*href=\"(.+?)\"[^<>]*><img alt=\"([\\d,]+)\"");
     private static final Pattern PATTERN_NORMAL_PREVIEW_NEW=Pattern.compile("<a[^<>]*href=\"([^\"]+)\"><div title=\"Page (\\d+): [^\"]+\" style=\"width:(\\d+)[^<>]*height:(\\d+)[^<>]*\\((.+?)\\)[^<>]*-(\\d+)px");
     private static final Pattern PATTERN_LARGE_PREVIEW = Pattern.compile("<div class=\"gdtl\".+?<img alt=\"([\\d,]+)\".+?src=\"(.+?)\"");
-    private static final Pattern PATTERN_LARGE_PREVIEW_NEW = Pattern.compile("<a[^<>]*href=\"([^\"]+)\"><div title=\"Page (\\d+): [^\"]+\"[^<>]*\\((.+?)\\)[^<>]*\">");
+    private static final Pattern PATTERN_LARGE_PREVIEW_NEW = Pattern.compile("f=\"([^\"]+)\"[^\"]+\"Page (\\d+)[^(]+\\(([^)]+)");
+    private static final Pattern PATTERN_PREVIEW_RN = Pattern.compile("(\\d+?):[^(]+\\(([^)]+)");

     private static final GalleryTagGroup[] EMPTY_GALLERY_TAG_GROUP_ARRAY = new GalleryTagGroup[0];
     private static final GalleryCommentList EMPTY_GALLERY_COMMENT_ARRAY = new GalleryCommentList(new GalleryComment[0], false);
@@ -601,7 +602,8 @@ public class GalleryDetailParser {

     public static PreviewSet parsePreviewSet(String body) throws ParseException {
         try {
-            return parseLargePreviewSet(body);
+            //return parseLargePreviewSet(body);
+            return parseLargePreviewSet(Jsoup.parse(body), body);
         } catch (ParseException e) {
             try {
                 return parseNormalPreviewSet(body);
@@ -621,7 +623,22 @@ public class GalleryDetailParser {
             Elements gdtls = gdt.getElementsByClass("gdtl");
             int n = gdtls.size();
             if (n <= 0) {
-                throw new ParseException("Can't parse large preview", body);
+                //throw new ParseException("Can't parse large preview", body);
+                //exhentai after 2024/10/26
+                if (gdt.childNodeSize() <= 0) {
+                    throw new ParseException("Can't parse large preview", body);
+                }
+                for (Node previewNode : gdt.childNodes()) {
+                    String pageUrl = previewNode.attr("href");
+                    String imageNode = previewNode.childNode(0).childNode(0).toString();
+                    Matcher m = PATTERN_PREVIEW_RN.matcher(imageNode);
+                    while (m.find()){
+                        int index = Integer.parseInt(m.group(1)) - 1;
+                        String imageUrl = m.group(2);
+                        largePreviewSet.addItem(index, imageUrl, pageUrl);
+                    }
+                }
+                return largePreviewSet;
             }
             for (int i = 0; i < n; i++) {
                 Element element = gdtls.get(i).child(0);

@exzhawk I think I've found the cause: there is a setting called "Gallery Page Thumbnail Labeling" which defaults to "Page Number Only" causing the DOM to have a nested
 like this:

   Page 1

The code I posted in the previous comment (edited just now, removed one .childNode(0)) would work for both cases, feel free to use it if you like. Also, please take a look at issue #30 and #31 if you have time.

@exzhawk I think I've found the cause: there is a setting called "Gallery Page Thumbnail Labeling" which defaults to "Page Number Only" causing the DOM to have a nested
 like this:

   Page 1

The code I posted in the previous comment (edited just now, removed one .childNode(0)) would work for both cases, feel free to use it if you like. Also, please take a look at issue #30 and #31 if you have time.

It do works on my clients when change Gallery Page Thumbnail Labeling in Ehwebsite Setting!
Thus it is the key to resolve this issue and my issues #35

Here's what my HTML looks like:

Page 2

Page 3

fixed in 1.7.22


Support for Vector tiles

Vector tile basemaps do not display in the basemap widget

Basemap widget appears to have been fixed:

This gallery is using the configuration
"basemapBox.basemapgroupTitle": "Vector Basemaps (Beta)",
"basemapBox.basemapgroupOwner": "esri",

Known limitations with vector tiles (may affect their display in the basemap widget):

"May only be displayed in Internet Explorer 11 and higher and other current versions of desktop browsers, including Chrome, Firefox, and Safari. Edge is not supported at this time."
"Tiles are sometimes not renderered [sic] in the map viewer (Chrome) - known limitation with graphic cards."


Restore support for bash kernel

For #7345

Codecov Report

Merging #7359 (7cc3695) into main (2e1c221) will decrease coverage by 2%.
The diff coverage is n/a.

@@          Coverage Diff           @@
##            main   #7359    +/-   ##
======================================
- Coverage     65%     63%    -3%
======================================
  Files        361     361
  Lines      22554   22554
  Branches    3410    3410
======================================
- Hits       14800   14268   -532
- Misses      6453    7099   +646
+ Partials    1301    1187   -114

Impacted Files
Coverage Δ

src/client/datascience/constants.ts
99% <ø> (ø)

...ience/variablesView/variableViewMessageListener.ts
22% <0%> (-78%)
:arrow_down:

...ent/common/application/webviewViews/webviewView.ts
14% <0%> (-72%)
:arrow_down:

...c/client/datascience/variablesView/variableView.ts
17% <0%> (-62%)
:arrow_down:

src/client/datascience/webviews/webviewViewHost.ts
21% <0%> (-58%)
:arrow_down:

src/client/common/application/webviews/webview.ts
13% <0%> (-54%)
:arrow_down:

src/client/datascience/themeFinder.ts
13% <0%> (-48%)
:arrow_down:

src/client/datascience/codeCssGenerator.ts
16% <0%> (-44%)
:arrow_down:

src/client/datascience/jupyter/jupyterNotebook.ts
21% <0%> (-33%)
:arrow_down:

src/client/datascience/webviews/webviewHost.ts
47% <0%> (-31%)
:arrow_down:

... and 30 more


support for this repo in Azure Government Cloud?

hello Everyone,
does anyone know if there is an existing fork of this repo that runs in Azure Government Cloud?
if not, does anyone know of any issues with the underlying services that would prevent me from doing such a port, as long as i change over the referenced endpoints and Client mechanisms, such as using:
SearchEndpointClient( endpoint=, credential=, audience=AzureAuthorityHosts.AZURE_GOVERNMENT)
thanks in advance for any help or pointers

@delbert -- No fork necessary. Well-known sovereign clouds are already supported. https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/sovereign-clouds
Please give it a try and let us know if you have any feedback!

~@delbert -- No fork necessary. Well-known sovereign clouds are already supported. https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/sovereign-clouds~
~Please give it a try and let us know if you have any feedback!~
I misread the context on this issue. Let me take a look at this specific template.

thanks, @danieljurek!  i am specifically looking at code in prepdocs.py, searchmanager.py, and strategy.py -- trying to ingest some sample docs with a Azure OpenAI, AI Search, blob storage, all in Gov Cloud

I am not aware of issues, but am not positive if it has been deployed to the Government Cloud. I did look into removing the hard-coded URLs in our Bicep files, but ran into an issue where not all government URLs were available programmatically: https://github.com/Azure/bicep/issues/12482
But that shouldn't affect you since you know you only want it working for Cloud. Please report back if you try it and discover any issues.

thanks, @pamelafox.  curiouser and curiouser.  you start pulling on a thread and its amazing what comes out of the tapestry at you.
we will definitely report back what we find.  we have started by manually deploying the services via the portal in gov cloud (with private endpoints and policy and rbac restrictions in place) and then are running the prepdocs sequence and deploying the chat app.  hopin for a chat-on-data solution relatively quickly.
we are also trying the template as is, in a gov cloud sandbox subscription with no restrictions on public ip, policy, and rbac to see how that goes.

There's also the integrated vectorization approach that you can enable in this repository, versus running the local script. The search team says that Integrated Vectorization is compatible with government cloud, as long as you have an OpenAI in that cloud.

thanks! super-helpful, at this point.  i'll give it a try

I am wondering if the hardcoded DNS zones (e.g. search.windows.net) would interfere with deploying to a different cloud

thanks! super-helpful, at this point. i'll give it a try

unfortunately, this limitation will disqualify Integrated Vectorization for almost any Gov Cloud implementation:
Shared private link connections to a vectorizer

I am wondering if the hardcoded DNS zones (e.g. search.windows.net) would interfere with deploying to a different cloud

yes it would.  in my case, though, the customer uses their own DNS service, not Azure's

@delbert Were you ever able to make progress on this? We've had other developers inquire.


Synthesis failed for datastoreadmin

Hello! Autosynth couldn't regenerate datastoreadmin. :broken_heart:
Please investigate and fix this issue within 5 business days.  While it remains broken,
this library cannot be updated with changes to the datastoreadmin API, and the library grows
stale.
See https://github.com/googleapis/synthtool/blob/master/autosynth/TroubleShooting.md
for trouble shooting tips.
Here's the output from running synth.py:
77d65f0e05ce584c1a824c7ecab53b411498b
Note: checking out 'e7d77d65f0e05ce584c1a824c7ecab53b411498b'.

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 e7d77d65 fix: specify valid go_package option
2021-04-27 03:06:38,145 autosynth [DEBUG] > Running: git branch -f autosynth-datastoreadmin-358
2021-04-27 03:06:38,149 autosynth [DEBUG] > Running: git checkout autosynth-datastoreadmin-358
Switched to branch 'autosynth-datastoreadmin-358'
2021-04-27 03:06:38,179 autosynth [INFO] > Running synthtool
2021-04-27 03:06:38,179 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2021-04-27 03:06:38,179 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/DatastoreAdmin/358/sponge_log.log
2021-04-27 03:06:38,182 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata synth.metadata synth.py --
2021-04-27 03:06:38,417 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/google-cloud-php/DatastoreAdmin/synth.py.
On branch autosynth-datastoreadmin-358
nothing to commit, working tree clean
2021-04-27 03:06:38,587 synthtool [DEBUG] > Ensuring dependencies.
DEBUG:synthtool:Ensuring dependencies.
2021-04-27 03:06:38,598 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/synthtool
DEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/synthtool
2021-04-27 03:06:38,603 synthtool [DEBUG] > Cloning googleapis.
DEBUG:synthtool:Cloning googleapis.
2021-04-27 03:06:38,603 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/googleapis
DEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/googleapis
2021-04-27 03:06:38,607 synthtool [DEBUG] > Which version of bazel will I run?
DEBUG:synthtool:Which version of bazel will I run?
bazel 3.0.0
2021-04-27 03:06:38,611 synthtool [DEBUG] > Generating code for: //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php.
DEBUG:synthtool:Generating code for: //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php.
2021-04-27 03:06:38,899 synthtool [ERROR] > Failed executing bazel --max_idle_secs=240 build //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php:

Loading:
Loading: 0 packages loaded
DEBUG: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/rules_python/python/pip.bzl:61:5: DEPRECATED: the pip_repositories rule has been replaced with pip_install, please see rules_python 0.1 release notes
Analyzing: target //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php (1 packages loaded, 0 targets configured)
ERROR: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/upb/bazel/upb_proto_library.bzl:257:29: aspect() got unexpected keyword argument 'incompatible_use_toolchain_transition'
ERROR: /home/kbuilder/.cache/synthtool/googleapis/google/datastore/admin/v1/BUILD.bazel:182:1: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors and referenced by '//google/datastore/admin/v1:admin_php_grpc'
ERROR: Analysis of target '//google/datastore/admin/v1:google-cloud-datastore-admin-v1-php' failed; build aborted: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors
INFO: Elapsed time: 0.270s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (3 packages loaded, 0 targets configured)
FAILED: Build did NOT complete successfully (3 packages loaded, 0 targets configured)

ERROR:synthtool:Failed executing bazel --max_idle_secs=240 build //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php:

Loading:
Loading: 0 packages loaded
DEBUG: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/rules_python/python/pip.bzl:61:5: DEPRECATED: the pip_repositories rule has been replaced with pip_install, please see rules_python 0.1 release notes
Analyzing: target //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php (1 packages loaded, 0 targets configured)
ERROR: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/upb/bazel/upb_proto_library.bzl:257:29: aspect() got unexpected keyword argument 'incompatible_use_toolchain_transition'
ERROR: /home/kbuilder/.cache/synthtool/googleapis/google/datastore/admin/v1/BUILD.bazel:182:1: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors and referenced by '//google/datastore/admin/v1:admin_php_grpc'
ERROR: Analysis of target '//google/datastore/admin/v1:google-cloud-datastore-admin-v1-php' failed; build aborted: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors
INFO: Elapsed time: 0.270s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (3 packages loaded, 0 targets configured)
FAILED: Build did NOT complete successfully (3 packages loaded, 0 targets configured)

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/google-cloud-php/DatastoreAdmin/synth.py", line 30, in <module>
    bazel_target=f'//google/datastore/admin/v1:google-cloud-datastore-admin-v1-php',
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 66, in php_library
    return self._generate_code(service, version, "php", clean_build, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 204, 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/datastore/admin/v1:google-cloud-datastore-admin-v1-php']' returned non-zero exit status 1.
2021-04-27 03:06:38,948 autosynth [ERROR] > Synthesis failed
2021-04-27 03:06:38,948 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 7b571cd4 feat: Allow RequestWrapperTrait to use its auth cache when fetching ADC (#3959)
2021-04-27 03:06:38,992 autosynth [DEBUG] > Running: git checkout autosynth-datastoreadmin
Switched to branch 'autosynth-datastoreadmin'
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 356, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 191, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 336, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 68, 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 is still having trouble generating datastoreadmin. :sob:
Please investigate and fix this issue within 5 business days.  While it remains broken,
this library cannot be updated with changes to the datastoreadmin API, and the library grows
stale.
See https://github.com/googleapis/synthtool/blob/master/autosynth/TroubleShooting.md
for trouble shooting tips.
Here's the output from running synth.py:
25'.

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 ef119e7a feat: Expose supported languages of the agent; feat: add export / import flow API docs: Update docs on Pages, Session, Version, etc.
2021-04-28 03:06:50,440 autosynth [DEBUG] > Running: git branch -f autosynth-datastoreadmin-370
2021-04-28 03:06:50,444 autosynth [DEBUG] > Running: git checkout autosynth-datastoreadmin-370
Switched to branch 'autosynth-datastoreadmin-370'
2021-04-28 03:06:50,475 autosynth [INFO] > Running synthtool
2021-04-28 03:06:50,475 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2021-04-28 03:06:50,475 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/DatastoreAdmin/370/sponge_log.log
2021-04-28 03:06:50,478 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata synth.metadata synth.py --
2021-04-28 03:06:50,721 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/google-cloud-php/DatastoreAdmin/synth.py.
On branch autosynth-datastoreadmin-370
nothing to commit, working tree clean
2021-04-28 03:06:50,896 synthtool [DEBUG] > Ensuring dependencies.
DEBUG:synthtool:Ensuring dependencies.
2021-04-28 03:06:50,909 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/synthtool
DEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/synthtool
2021-04-28 03:06:50,915 synthtool [DEBUG] > Cloning googleapis.
DEBUG:synthtool:Cloning googleapis.
2021-04-28 03:06:50,915 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/googleapis
DEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/googleapis
2021-04-28 03:06:50,919 synthtool [DEBUG] > Which version of bazel will I run?
DEBUG:synthtool:Which version of bazel will I run?
bazel 3.0.0
2021-04-28 03:06:50,924 synthtool [DEBUG] > Generating code for: //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php.
DEBUG:synthtool:Generating code for: //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php.
2021-04-28 03:06:51,309 synthtool [ERROR] > Failed executing bazel --max_idle_secs=240 build //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php:

Loading:
Loading: 0 packages loaded
DEBUG: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/rules_python/python/pip.bzl:61:5: DEPRECATED: the pip_repositories rule has been replaced with pip_install, please see rules_python 0.1 release notes
Analyzing: target //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php (1 packages loaded, 0 targets configured)
ERROR: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/upb/bazel/upb_proto_library.bzl:257:29: aspect() got unexpected keyword argument 'incompatible_use_toolchain_transition'
ERROR: /home/kbuilder/.cache/synthtool/googleapis/google/datastore/admin/v1/BUILD.bazel:182:1: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors and referenced by '//google/datastore/admin/v1:admin_php_grpc'
ERROR: Analysis of target '//google/datastore/admin/v1:google-cloud-datastore-admin-v1-php' failed; build aborted: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors
INFO: Elapsed time: 0.368s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (2 packages loaded, 0 targets configured)
FAILED: Build did NOT complete successfully (2 packages loaded, 0 targets configured)

ERROR:synthtool:Failed executing bazel --max_idle_secs=240 build //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php:

Loading:
Loading: 0 packages loaded
DEBUG: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/rules_python/python/pip.bzl:61:5: DEPRECATED: the pip_repositories rule has been replaced with pip_install, please see rules_python 0.1 release notes
Analyzing: target //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php (1 packages loaded, 0 targets configured)
ERROR: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/upb/bazel/upb_proto_library.bzl:257:29: aspect() got unexpected keyword argument 'incompatible_use_toolchain_transition'
ERROR: /home/kbuilder/.cache/synthtool/googleapis/google/datastore/admin/v1/BUILD.bazel:182:1: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors and referenced by '//google/datastore/admin/v1:admin_php_grpc'
ERROR: Analysis of target '//google/datastore/admin/v1:google-cloud-datastore-admin-v1-php' failed; build aborted: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors
INFO: Elapsed time: 0.368s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (2 packages loaded, 0 targets configured)
FAILED: Build did NOT complete successfully (2 packages loaded, 0 targets configured)

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/google-cloud-php/DatastoreAdmin/synth.py", line 30, in <module>
    bazel_target=f'//google/datastore/admin/v1:google-cloud-datastore-admin-v1-php',
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 66, in php_library
    return self._generate_code(service, version, "php", clean_build, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 204, 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/datastore/admin/v1:google-cloud-datastore-admin-v1-php']' returned non-zero exit status 1.
2021-04-28 03:06:51,367 autosynth [ERROR] > Synthesis failed
2021-04-28 03:06:51,367 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 7b571cd4 feat: Allow RequestWrapperTrait to use its auth cache when fetching ADC (#3959)
2021-04-28 03:06:51,412 autosynth [DEBUG] > Running: git checkout autosynth-datastoreadmin
Switched to branch 'autosynth-datastoreadmin'
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 356, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 191, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 336, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 68, 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 is still having trouble generating datastoreadmin. :sob:
Please investigate and fix this issue within 5 business days.  While it remains broken,
this library cannot be updated with changes to the datastoreadmin API, and the library grows
stale.
See https://github.com/googleapis/synthtool/blob/master/autosynth/TroubleShooting.md
for trouble shooting tips.
Here's the output from running synth.py:
a6645d278010dc384a8d5dd942dfebd
Note: checking out '5deb21826a6645d278010dc384a8d5dd942dfebd'.

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 5deb2182 feat: publish protos for Google Ads API v7
2021-04-29 03:06:50,235 autosynth [DEBUG] > Running: git branch -f autosynth-datastoreadmin-388
2021-04-29 03:06:50,239 autosynth [DEBUG] > Running: git checkout autosynth-datastoreadmin-388
Switched to branch 'autosynth-datastoreadmin-388'
2021-04-29 03:06:50,266 autosynth [INFO] > Running synthtool
2021-04-29 03:06:50,267 autosynth [INFO] > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']
2021-04-29 03:06:50,267 autosynth [DEBUG] > log_file_path: /tmpfs/src/logs/DatastoreAdmin/388/sponge_log.log
2021-04-29 03:06:50,269 autosynth [DEBUG] > Running: /tmpfs/src/github/synthtool/env/bin/python3 -m synthtool --metadata synth.metadata synth.py --
2021-04-29 03:06:50,493 synthtool [DEBUG] > Executing /home/kbuilder/.cache/synthtool/google-cloud-php/DatastoreAdmin/synth.py.
On branch autosynth-datastoreadmin-388
nothing to commit, working tree clean
2021-04-29 03:06:50,660 synthtool [DEBUG] > Ensuring dependencies.
DEBUG:synthtool:Ensuring dependencies.
2021-04-29 03:06:50,670 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/synthtool
DEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/synthtool
2021-04-29 03:06:50,675 synthtool [DEBUG] > Cloning googleapis.
DEBUG:synthtool:Cloning googleapis.
2021-04-29 03:06:50,675 synthtool [DEBUG] > Using precloned repo /home/kbuilder/.cache/synthtool/googleapis
DEBUG:synthtool:Using precloned repo /home/kbuilder/.cache/synthtool/googleapis
2021-04-29 03:06:50,678 synthtool [DEBUG] > Which version of bazel will I run?
DEBUG:synthtool:Which version of bazel will I run?
bazel 3.0.0
2021-04-29 03:06:50,681 synthtool [DEBUG] > Generating code for: //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php.
DEBUG:synthtool:Generating code for: //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php.
2021-04-29 03:06:50,918 synthtool [ERROR] > Failed executing bazel --max_idle_secs=240 build //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php:

Loading:
Loading: 0 packages loaded
DEBUG: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/rules_python/python/pip.bzl:61:5: DEPRECATED: the pip_repositories rule has been replaced with pip_install, please see rules_python 0.1 release notes
Analyzing: target //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php (1 packages loaded, 0 targets configured)
ERROR: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/upb/bazel/upb_proto_library.bzl:257:29: aspect() got unexpected keyword argument 'incompatible_use_toolchain_transition'
ERROR: /home/kbuilder/.cache/synthtool/googleapis/google/datastore/admin/v1/BUILD.bazel:182:1: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors and referenced by '//google/datastore/admin/v1:admin_php_grpc'
ERROR: Analysis of target '//google/datastore/admin/v1:google-cloud-datastore-admin-v1-php' failed; build aborted: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors
INFO: Elapsed time: 0.224s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (2 packages loaded, 0 targets configured)
FAILED: Build did NOT complete successfully (2 packages loaded, 0 targets configured)

ERROR:synthtool:Failed executing bazel --max_idle_secs=240 build //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php:

Loading:
Loading: 0 packages loaded
DEBUG: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/rules_python/python/pip.bzl:61:5: DEPRECATED: the pip_repositories rule has been replaced with pip_install, please see rules_python 0.1 release notes
Analyzing: target //google/datastore/admin/v1:google-cloud-datastore-admin-v1-php (1 packages loaded, 0 targets configured)
ERROR: /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/upb/bazel/upb_proto_library.bzl:257:29: aspect() got unexpected keyword argument 'incompatible_use_toolchain_transition'
ERROR: /home/kbuilder/.cache/synthtool/googleapis/google/datastore/admin/v1/BUILD.bazel:182:1: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors and referenced by '//google/datastore/admin/v1:admin_php_grpc'
ERROR: Analysis of target '//google/datastore/admin/v1:google-cloud-datastore-admin-v1-php' failed; build aborted: error loading package '@com_github_grpc_grpc//src/compiler': in /home/kbuilder/.cache/bazel/_bazel_kbuilder/a732f932c2cbeb7e37e1543f189a2a73/external/com_github_grpc_grpc/bazel/grpc_build_system.bzl: Extension file 'bazel/upb_proto_library.bzl' has errors
INFO: Elapsed time: 0.224s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (2 packages loaded, 0 targets configured)
FAILED: Build did NOT complete successfully (2 packages loaded, 0 targets configured)

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/google-cloud-php/DatastoreAdmin/synth.py", line 30, in <module>
    bazel_target=f'//google/datastore/admin/v1:google-cloud-datastore-admin-v1-php',
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 66, in php_library
    return self._generate_code(service, version, "php", clean_build, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/gcp/gapic_bazel.py", line 204, 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/datastore/admin/v1:google-cloud-datastore-admin-v1-php']' returned non-zero exit status 1.
2021-04-29 03:06:50,959 autosynth [ERROR] > Synthesis failed
2021-04-29 03:06:50,959 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 7b571cd4 feat: Allow RequestWrapperTrait to use its auth cache when fetching ADC (#3959)
2021-04-29 03:06:51,003 autosynth [DEBUG] > Running: git checkout autosynth-datastoreadmin
Switched to branch 'autosynth-datastoreadmin'
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 356, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 191, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 336, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 68, 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:


Github action cacheing

Utilize cacheing to speed up contract compiles for github runners (i.e. when only tests change).

/cib


Incorrect ingress yaml in sample code

(https://docs.microsoft.com/en-us/azure/aks/ingress-tls?tabs=azure-cli&source=docs#create-an-ingress-route)
In this section there is one path too many in the last ingress. It should be
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: hello-world-ingress-static
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /static/$2
    nginx.ingress.kubernetes.io/use-regex: "true"
    cert-manager.io/cluster-issuer: letsencrypt
spec:
  ingressClassName: nginx
  tls:
  - hosts:
    - hello-world-ingress.MY_CUSTOM_DOMAIN
    secretName: tls-secret
  rules:
  - host: hello-world-ingress.MY_CUSTOM_DOMAIN
    http:
      paths:
      - path: /static(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: aks-helloworld-one
            port:
              number: 80

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ada58160-dc50-b977-d3bc-65f92406e16d
Version Independent ID: 5c596e04-fddb-effe-3b72-575f4df42d4e
Content: Create ingress with automatic TLS - Azure Kubernetes Service
Content Source: articles/aks/ingress-tls.md
Service: container-service
GitHub Login: @zr-msft
Microsoft Alias: zarhoads

@sunefred Thank you for your feedback!  We've assigned this to the document author for further review.

Thank you for the feedback.
We've updated the article to address your feedback and the changes should be available soon.
#please-close


[Task]: Navigation issue in cypress runs for workflow

SubTasks
For cypress tests for workflow, on navigating to settings/data it fails blocking tests to run locally

Hey team! Please add your planning poker estimate with Zenhub @ayushpahwa @nsarupr @Parthvi12


energy site id failures

if you have tesla vehicle as well as a solar/powerwall product, and you try to run the code in your readme file for pulling energy information it fails. I am not a good python programmer but it appears it is not able to parse the return correctly. I "fixed" it adding something like this to the init  file.
async def list_energy_sites(self, _class=Energy):
d1, d2 = await self.get('products')
energy_id = d2['energy_site_id']
return [energy_id]
this will allow it to return an actual energy_site_id. I did the 2nd since it seems to always be the 2nd set of dictionary in my playing with it on postman. I converted the return to a list because a 2nd issue is then when the code from readme when to do len it couldnt. The convert addressed that.
now i am running into issue where i cant seem to pull any information about the site.
the line     reserve = await energy_sites[0].get_backup_reserve_percent()
returns an error:
AttributeError: 'int' object has no attribute 'get_backup_reserve_percent'
this then continues down the entire list of other commands you provide in the readme.

This should be fixed in #26. Once @mlowijs makes the rounds, I'm sure this will get merged and put into the next release.
You can probably just grab that branch, and use that for now. The fixed line is:
https://github.com/mlowijs/tesla_api/pull/26/files#diff-61775cbe8551d10b95eff4f6e9a6d4ccR120
As the current code tries to create an Energy object for every product, it breaks when one of those is a vehicle. The correct fix was just to add if 'energy_site_id' in product to check if it references an energy site, rather than a vehicle.
FYI, the latter errors are because you've changed the function to return the ID, which is just an int, instead of creating an Energy instance.

This should be fixed in #26. Once @mlowijs makes the rounds, I'm sure this will get merged and put into the next release.
You can probably just grab that branch, and use that for now. The fixed line is:
https://github.com/mlowijs/tesla_api/pull/26/files#diff-61775cbe8551d10b95eff4f6e9a6d4ccR120
As the current code tries to create an Energy object for every product, it breaks when one of those is a vehicle. The correct fix was just to add if 'energy_site_id' in product to check if it references an energy site, rather than a vehicle.
FYI, the latter errors are because you've changed the function to return the ID, which is just an int, instead of creating an Energy instance.

thanks. i opened up some peoples forks of this and saw one that I got to work. I am now setting up an aws lambda function to pull every 5 minutes the live-status call to basically mimic the tesla app. I then want to pull my meter data from texas smart meter since i get free energy between 12-3am so i have a smartthings app that changes reserve to 100% at 12 and back to 20% at 3am. but i might try something different since it didnt change it last night even though it was scheduled too. I want to compare the findings. I also want to pull data from the Sense smart home reader to show the heavy energy users within the house. A lot of work cut out for me. then need to see if amazon quicksight is a good visualization for this or if should put the data into a managed ES cluster within aws or standup a free splunk instance on an ec2 or something.

This is fixed in master now (but, still needs a new release for pip).


Look into stemming

Idea from this repository. A stemmer could further shift the burden to compute (for which we still have breathing room to use more), away from memory (which we're trying to save), as the word list could shrink further. The list currently contains a lot of word derivatives, which could all be removed in favor of a single stem.
The build.rs script could prune the original (which won't be touched, as having raw data available is always good) word list further, using the same approach as used with the compound words (ingest word list, and only write out entries that can neither be constructed as compound words from other entries, nor reproduced via stemming).
Ultimately, the more elaborate the compute/algorithm side, the lower quality a word list we can get away with.

Still a valid approach, but obsoleted for now; see also #16 . Stemming isn't needed anymore for file size or memory usage concerns.


Can set undefined subjects

In our main app, we are generating some permission docs w/invalid uids:
{
    "_id" : ObjectId("5730abc07103aab29b97f14d"),
    "resourceId" : "t015730abc058cc18340f7f3564",
    "subjectId" : "u00undefined",            // <-- Invalid uid
    "subjectType" : "user",
    "resourceType" : "someResourceType",
    "access" : {
        "own-someResourceType" : true
    }
}

I see that we have the following validation: https://github.com/CrossLead/tyranid-gracl/blob/abcbc67da00319c16a93d6047565af8c0ef27e20/lib/models/PermissionsModel.ts#L171
So seems like there is a validation bug somewhere, perhaps upstream.

added additional validation + tests here : https://github.com/CrossLead/tyranid-gracl/commit/400062c4ce2e42aa20cec954ec513b0ff50945e0


Rewrite ARTEventEmitter per the spec and adjust Connection.

Previously, ARTConnection managed state subscriptions and
ARTEventEmitter was just a shell. Now the heavy-lifting of
passing events around is done by ARTEventEmitter, which is
generic and can be reused by others, and ARTConnection just uses
it to emit events and expose its listening interface.
This also introduces ARTConnectionStateChange, used in connection
state events' callbacks, as the spec says.
Something that went away is that starting listening to events
dispatched the current event to the callback. Now it doesn't. It
starts listening to changes from that point on. I think this
makes more sense and is consistent with what you expect from an
event emitter.
Fixes #133.

I didn't run the Objective-C test suite. Sorry. Working on that now.

Passing:

starts listening to changes from that point on. I think this
makes more sense and is consistent with what you expect from an
event emitter.

@tcard yes, that is correct. FYI, we have an unspecified equivalent of how this used to work though, see https://github.com/ably/ably-js/blob/master/common/lib/util/eventemitter.js#L160-L176 and https://github.com/ably/ably-ruby/blob/master/lib/ably/modules/state_emitter.rb#L61-L103. Obviously this is out of spec so not needed

Rebased, plus two changes: 5cba6ca and 43f6833.
@ricardopereira @mattheworiordan PTAL

LGTM, only thing missing from what I can see is an off without any args to remove all listeners

LGTM :+1:


Allow creation of DataSource without requiring dependency on spring-cloud-connector

Since DataSource and its subclasses are in spring-service-connector, unless user adds the latter as a dependency, creating DataSource connector is not possible. Unlike other connector types (MongoDbFactory), DataSource doesn't have any inherent dependency on Spring. Thus, it should be possible to move its creation in the core iself.
The tricky part is allowing the use of connection pool (which currently uses Spring classes such as BeanWrapper).

+1
I hit this issue recently as well. Working on a Play sample app that doesn't use Spring other then this connector code. It's OK having the extra dependency for now but would be nice to scrap it in the future.


make source param work with newer sensu-puppet

This change makes us more compliant with newer sensu-puppet, which now has "source" parameter on sensu::check. As a result, we no longer have to pass "source" through "custom" param.
The dark side of this change is that it makes us not compatible with older versions of sensu-puppet.
@solarkennedy - my plan is to prepare an internal r10k change and merge this PR right before shipping it all in one. Looking for a shipit on this PR but please don't merge it yet.

shipit!


Fix static initialization order

As long as initialize_io() is not itself called at the static initialization step, then this is done! If we want to support that strainge use case, then we have a problem with the static util::OutputBuffers. These are changed in initialize_io(), at which point they may not be initialized yet.