Add logging 2.1 to 2.2/3.0 migration guide

Fixes: https://github.com/aspnet/Docs/issues/9841

cc @ajcvickers

@pakrym We usually use our in-topic versioning (in this case, in the Logging topic) to cover updates to the framework and then call out the migration steps in the migration topic (in this case, Migrate from ASP.NET Core 2.1 to 2.2). Idk what they'll suggest, but the pattern has been not to have migration topics in the Fundamentals node. Ping Sir @tdykstra for help.

That's right, this should go in https://github.com/aspnet/Docs/blob/master/aspnetcore/migration/21-to-22.md.  We don't have a place for the 3.0 instructions yet, but they will end up in a 3.0 migration doc located in the same folder.

Should I make two copies of this doc then?

There's an outstanding issue for writing logging docs that aren't ASP.NET Core-specific --
https://github.com/dotnet/docs/issues/4567
Until that is resolved I would put the 2.1 to 2.2 content in the 2.1 to 2.2 doc, and publish the non-ASP.NET-Core content and the 3.0 content in a blog for now.
Considering the dialog in https://github.com/aspnet/Logging/pull/932, I would also link from the logging doc to the new 2.1 to 2.2 logging section of the migration doc to make that more discoverable.
cc @Rick-Anderson in cases he has any other ideas about where to put non-ASP.NET Core and migrate-to-3.0 content.

@tdykstra 	can you help move the content around for @pakrym 	in exchange for him helping use on technical content?

What about blogging the 3.0 and non-ASP.NET parts?

What about blogging the 3.0 and non-ASP.NET parts?

I think they might need to be referenced from EF logging doc (https://docs.microsoft.com/en-us/ef/core/miscellaneous/logging)

We could add the non-ASP.NET Core content there until we get a permanent home for it, that leaves 3.0.  Maybe just start a 2.2-to-3.0 migration doc that only has this logging content in it for now?

So if this plan makes sense, I'll

Move the 2.1 to 2.2 content to the appropriate migration doc
Move the 3.0 content to a new (very small) 2.2 to 3.0 migration doc
Move the non-ASP.NET Core content to the EF logging doc

Move the non-ASP.NET Core content to the EF logging doc

I'm not a fan of this part, while it's non-ASP.NET Core content it's even less EF specific. I would prefer having it in ASP.NET Core migration doc over EF.

@tdykstra Caught my :eye: looking at 3.0 issues ...

Move the 3.0 content to a new (very small) 2.2 to 3.0 migration doc

https://github.com/aspnet/Docs/issues/9490 ... content that might make a good basis for it ... and potentially helpful for very VERY early adopters playing with the bits.

@tdykstra 	can we S&M this? You can move this to a new (very small) 2.2 to 3.0 migration doc after.

Better to avoid that, it creates a new URL which we would then have to redirect and we wouldn't have a single logical target to redirect to.  I'll take care of it tomorrow.

But don't we eventually need a 2.2 to 3.0 migration doc?

Not in the fundamentals/logging folder

In the migrations folder.

Once I realized the only 3.0 content was for non-ASP.NET Core apps, it no longer made sense to put it in a new ASP.NET Core migration doc, so I ended up with this:

2.1 to 2.2 ASP.NET Core logging content --> ASP.NET Core 2.1 to 2.2 migration doc
2.1 to 2.2 or 3.0 non-ASP.NET Core logging content --> new doc in migration folder, a temporary location until we have a better place for non-ASP.NET Core logging docs.

I had already created the new 2.2 to 3.0 migration doc for #9490 before deciding the logging content didn't fit, so I'm including it as well.

@tdykstra Another commit coming ... there are still "C#" code language markers and here's the tab for the CLI if you want to do (or use an existing) INCLUDE ...
# [.NET Core CLI](#tab/netcore-cli)

VSC and Mac use the CLI

I hope you'll confer tho on that point. IMO, it would be better to always have all of the tabs. There are devs who like CLI things. It's not obvious to those devs what these IDEs are using. Anyway ... it's just a nit.

@guardrex I addressed some of the nits, though not quite exactly the way you had in mind. 😄

I hope you'll confer tho on that point.

Will do


ISPN-12149 Update tcp::MPING::bind_addr to SITE_LOCAL

https://issues.redhat.com/browse/ISPN-12149

#8350 removes the bind_addr from all the non-transport protocols, because it's not necessary


Avoid py38 test failure on Windows

Reduces test data size to 3 MB instead of 30 MB. This should not affect what the tests are trying to accomplish but makes them run faster, which apparently was an issue on Windows until now. Each test includes a large number of requests each of which include this data, and I could get all of them passing if I commented out some of the others, without reducing data size.
Reducing data size makes the tests run much faster and now they pass on my Windows virtual machine with all requests enabled.

This is merged to #1808 and maintaining two branches is too troublesome. Closing this in favour of the other one.


Provide a card view of stamps

Provide an equivalent card view for Stamps view.  Allow the user to toggle between it and the grid view using the toolbar actions
A card should show similiarly  to how it did in the previous generation:

Including the following information

Prominent scaled image display
Catalogue Number, followed by Country Name
Rate and Description
Defect/Deception/Note icon/glyph
Certification indicator if present

The view should wrap the cards based on horizontal width with a scroll vertical.  The size of the card should be 220x240 pixels
Each card should be:

Selectable - clicking the card sets the stamp repesented by it as selected (or can be unselected)
Action to delete/edit a stamp from the card should be considered but this is another story

Requires #19


[$250] IOU - one character descriptions are not saved

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.64-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Issue found when executing PR https://github.com/Expensify/App/pull/40176
Action Performed:

Navigate to staging.new.expensify.com
Click on FAB > Submit expense > Manual
Input an amount
Select a user
Click on "Description"
Insert one character letter without any spaces afterwards and should be any character except numbers (e.g "A" or "B")
Click on Save

Expected Result:
One character letter should be saved
Expected Result:
One character letter is not saved as a Description but works fine with one digit numbers and 2 character letters. In order to save the description user has to insert whitespace by tapping on space after the character and hit save
Actual Result:
Unknown
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/01e026d1-a804-40c0-948e-bdd163f798c0
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0160ab7a88d7f75bcd
Upwork Job ID:<PHONE_NUMBER>081673728
Last Price Increase: 2024-05-07

Issue OwnerCurrent Issue Owner: @sobitneupane

@sakluger  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #vip-vsp

I couldn't reproduce this issue either.
I think that issue is related to the encoding, so the one character wasn't recognized as finished.
I am not sure about it.

Same here, unable to reproduce locally, or on staging

It seems like some people are having trouble reproducing the issue. @charles-liang were you able to reproduce the behavior? If so, did you do anything that wasn't outlined in the reproduction steps above?

Thanks for the proposal and reproduction steps @charles-liang. I was able to reproduce the issue with single character.
Can you please add more details in your RCA? Why does the setValue function only receives part of the input?

"When the onBlur event triggers, the text value is 'g1', but the setValue function only receives 'g'."

If isMarkdownEnabled must be set to true, I found the root cause in react-native-live-markdown.

Great finding @charles-liang
In that case I am pretty sure, the issue lies on Composer as well. So, setting isMarkdownEnabled to false is not an option. What's your proposal for the solution?

@charles-liang Proposal is not updated. Also, please consider https://github.com/Expensify/App/issues/40799#issuecomment-2082129912 in your solution.

@sobitneupane thoughts on the updated proposals?

Thanks for the update @charles-liang
Your latest proposal looks good to me. @BartoszGrajdek Can you please give this proposal a look? The proposal is suggesting to make changes in react-native-live-markdown repo to solve this issue. Related to these changes

I tagged @BartoszGrajdek in Slack to request his review.

Issue not reproducible during KI retests. (First week)

Hi, sorry I was OOO I'll take a look at it today 👀

Thanks @BartoszGrajdek!

The proposed solution seems fine as long as it doesn't break how diacritics work.
We're planning to introduce a better long-term solution, but that's something we'll do later down the road once some of the bigger-size refactors are done.

Thanks @BartoszGrajdek
Proposal from @charles-liang looks good.
🎀 👀 🎀 C+ reviewed

PR is being worked on here: https://github.com/Expensify/react-native-live-markdown/pull/343

@twisterdotcom assigning you while I'm OOO through May 31. The latest is that the PR is being worked on here: https://github.com/Expensify/react-native-live-markdown/pull/343.

The PR is being reviewed.

@charles-liang what is the status of the PR? Still coming along?

@sobitneupane any update since your last comment? Have you had a chance to review the PR?

I'm back - thanks @twisterdotcom for watching, I'll unassign you now.
@sobitneupane what is the latest?

Hi! I have a question regarding this issue - is this only happening on mWeb?

@BartoszGrajdek I could reproduce it only in mWeb/Chrome

Good, I know that your problems are likely related to the composition event types. We're thinking about disabling the composition handling on mWeb due to multiple bugs that are related to it. Can you check if the bug is still appearing using this version of the library?

I am pretty sure it should solve the issue. I will let you know after testing it.
cc: @charles-liang

I tested https://github.com/Expensify/react-native-live-markdown/pull/366 PR and the issue will not be reproducible with the changes introduced by the PR.

Added the hold, but leaving as daily since that PR was merged and we just need to wait for the app version to be bumped.

are we good to retest yet? Or do we still need to wait for the version of RNLM to be bumped?

I am no longer reproduce the issue in staging.

Nice! I will go ahead and close. I don't think any payment is due here, but please bring up in Slack if you disagree.


[Enchancement] Simplify route creation

There are no way to create all routes then start instance - for each addRoute\addFilter  init() method is invoked.
SimpleRouteMatcher.parseValidateAddRoute  get some string concatenation httpMethod + " '" + route.getPath() + "'" as argument and internally parse it with validation. IMHO, we should pass spark.route.HttpMethod and url as separate arguments
Shouldn't spark.Routable be an interface with default method as comment states
spark.route.HttpMethod enum naming convention is confusing: enum names (GET\POST...) should be uppercased.
spark.routematch.RouteMatch#target is type of java.lang.Object it destroys typesafety and complicates the code.

What do you think about this changes? If you ok with changes I can prepare commit.

btw, what does mean acceptType in signature ``void get(String path, String acceptType, Route route)```? Is it response type?

Exception can be simplified, too
spark.SparkInstance#exception
    public synchronized void exception(Class<? extends Exception> exceptionClass, ExceptionHandler handler) {
        // wrap
        ExceptionHandlerImpl wrapper = new ExceptionHandlerImpl(exceptionClass) {
            @Override
            public void handle(Exception exception, Request request, Response response) {
                handler.handle(exception, request, response);
            }
        };

        ExceptionMapper.getInstance().map(exceptionClass, wrapper);
    }

In java8 it can be done in more elegant way, smth like
ExceptionMapper.getInstance().map(exceptionClass, () -> handler.handle(exception, request, response));

so ExceptionHandlerImpl can be safely removed, although it will be breaking change

Sounds reasonable to me. @perwendel ?

public class Routes implements ApplicationRoutes {

	@Override
	public void init(Router router) {

		router.BEFORE().with(BeforeLoggerFilter.class);

		router.GET("/").with(HomeRoute.class, JsonTransformer.class);
		router.GET("/test").with(EchoRoute.class, JsonTransformer.class);
		router.BEFORE("/api/users/*").with(UserAuthenticationFilter.class);
		router.BEFORE("/api/boards/*").with(UserAuthenticationFilter.class);

		/*
		 * Authentication section(not included under any filter)
		 */
		router.POST("/api/create/user").with(CreateUserRoute.class, JsonTransformer.class);
		router.POST("/api/authenticate/user").with(AuthenticateUserRoute.class, JsonTransformer.class);
	}

}

This is how I manage my routes in my current project.  Imho it isn't the best solution, imho.

Some of this has been addressed, will try to fix all of it (except 1.) in v3.


apiURL in castai-secret

As it is now possible to also use api.eu.cast.ai it would be nice to also be able to patch the api_url to the castai-secret so it can later be patched into the HR's

Flux helm-releases Out of scope for Crossplane Providers


Functions with arguments spanning multiple lines aren't picked up correctly

When writing library-type code it's common to end up with very long argument lines, which we might want to split.
An example from a library I was just working on:
func arc_normal(position: Vector3, normal: Vector3, angle_from: float, angle_to: float, radius: float = 1.0, draw_origin: bool = false, color: Color = current_color) -> void:

This should most definitely be split into two lines. Something like this:
func arc_normal(position: Vector3, normal: Vector3, angle_from: float, angle_to: float,
            radius: float = 1.0, draw_origin: bool = false, color: Color = current_color) -> void:

But when this is done, gdscriptify only picks up the first line and ignores the second.

I'll have a look. It should work on Arrays and Dictionaries, but functions could have escaped the parsing.


pachctl inspect job may decrease the number of processed datums reported as complete

What happened?:
I ran watch -n 0.1 pachctl inspect job <job_id> and saw that the number of processed datum can also decrease.
What you expected to happen?:
The reported number should be monotonically rising.
How to reproduce it (as minimally and precisely as possible)?:
This may be challenging to produce without my pipeline but the pipeline finished processing datums every 2 seconds or so (relatively rapidly)
Environment?:

Kubernetes version (use kubectl version): AKS 1.20.5
Pachyderm CLI and pachd server version (use pachctl version): 1.13.2
Cloud provider (e.g. aws, azure, gke) or local deployment (e.g. minikube vs dockerized k8s): azure

There are certain scenarios in which this can happen, @RaananHadar.    Here's an example to illustrate:
Let's say that you have the following for a particular job run:

500 datums to be processed;
1 worker to process them (to keep the example simple); and
chunk_spec configured in such a way that the worker gets 20 datums at a time.

First let's talk about list job. The list job command reports the number of datums processed based upon what's been committed by the workers.  The worker will commit its work at the conclusion of the chunk it is processing. So if you run list job repeatedly over the course of the job running, you'll see the number of datums processed incrementing by 20s.
inspect job on the other hand looks at what's been committed, but then also queries the workers to find out how far along each of them is in their current chunks. So let's say that 400 datums have been committed, and your single worker has processed 16 of the 20 datums in the current chunk.  inspect job would show 416 datums processed (versus the 400 that list job would show).
Now, that doesn't explain why the number processed would go down, but..... Let's say that after processing the 16th datum in the chunk, the worker crashes and restarts.  After restarting, the worker begins to re-process the chunk that it was on.  But the worker is actually smart enough to know that the first 16 datums were already processed, so it skips them and then moves on to process datums 17, 18, 19, and 20.  But let's say you run list job and inspect job just after the worker processes the 19th datum.  At that point list job will still show 400 (the total fully committed) whereas inspect job will now only show 403 datums processed, a decrease from the 416 it showed before. And that's because when the worker is queried it will respond that it has skipped 16 datums (1-16) and processed 3 datums (17, 18, and 19).
The bottom line is that list job will always give you an answer that is 100% correct - the number of datums processed and fully committed - whereas inspect job will give you a more granular answer of the number processed, but it may or may not be 100% accurate.

Thank  you for the very insightful and detailed answer @dgeorg42 , closing.


Conditional checks not working in href attribute of anchor tag in shortcodes

I'm using conditional checks inside the href attribute of anchor tags in shortcode. I have the content file as
---
country: "us"
---

Hello, world. Here is some text.

{{< redirection-url "somewebsitepageurl">}}

In the shortcode, I'm using

  Click here

The above code is not rendering the shortcode.
Whereas, I can use the condition as a block like this
{{if $.Page.Params.country}}
  Click here
{{else}}
  Click here
{{/if}}

Thanks for getting in touch, but it feels like this is a question  that would be better suited to the Hugo Discussion Forum.  We prefer to use GitHub issues only for bugs and enhancements. Feel free to update this issue with a link to the re-posted question (so that other people can find it) or add some more details if you feel this is a genuine bug. You may also find the answers you search for in Hugo Documentation.

The re-posted question: https://discourse.gohugo.io/t/conditional-checks-not-working-in-href-attribute-of-anchor-tag-in-shortcodes/17784


[Small] Added k3d image CD

Having a public k3d image is extremely useful for writing controller integration tests without having to go the e2e route.
Note that I don't use drone myself so I just copy pasted the build section from another step, please review!

I'll have to request another DockerHub repo first, but I also had this issue a few times already, so I think it's really useful to have a rancher/k3d image at hand without having to build it manually :+1:

Awesome, keep me posted!

Just as a clarification: What should this image contain for you?
a) k3d binary only (FROM scratch)
b) k3d binary + some tooling (FROM alpine:latest)
c) k3d binary with docker-in-docker and some tooling (FROM docker:19.03-dind, like currently the dind target in the root Dockerfile)

This is actually included in the latest release https://github.com/rancher/k3d/releases/tag/v3.1.5 !
I totally forgot about this PR though O.o
Since you already created a PR before that: @allcontributors please add @toonsevrin for code contribution.
Thanks a lot :)


RAPIDS xgboost jars for Spark 2.4/Scala 2.12

We should ensure the xgboost jars in the rapids init action support Spark 2.4 / Scala 2.12 with Dataproc 1.5. While the tests pass, there are no guarantees that all functionality is supported.

@mengdong per our conversation. Please LMK as you get updates here :)

Yes, I had let engineers know and they are going to release a jar soon.

Closing this. We can come back to this if the feature ends up requested down the road.


Templates: Different size for image and letter based profile thumbnails.

Easy fo notice when square thumbails (like in Groups, Channels, etc) are used.

Check it in all templates.

The issue cannot be reproduced on fresh installed Lucid template.


Create README.tm.md

Added Turkmen language. Please add "Türkmençe" in language box

[ ] Integration tests (if applicable)

Closes #

@murat-ti I'd be happy to accept this PR, but please add the link to this new file from the main README.

@murat-ti I'd be happy to accept this PR, but please add the link to this new file from the main README.

Feel free to tackle this^ and reopen 👍


Disable mod name tooltip when REI is installed (or provide config option)

REI provides the mod name too, so they get doubled up.

I'm actually not seeing where REI does this. Hm.

Ah, maybe it's hwyla, let me double check

Confirmed it's Hwyla, not REI

fixed, and a PR set into Hwyla to have support for the c: namespace.


[bug]: run unit tests (btcd unit-cover) failure due to build tag mismatch

Background
A test run for one of my PRs failed with:
Error: cannot read source of file "/home/runner/work/lnd/lnd/kvdb/postgres/db_conn_set.go": open /home/runner/work/lnd/lnd/kvdb/postgres/db_conn_set.go: no such file or directory
Error: Error: The process '/home/runner/work/_actions/shogo82148/actions-goveralls/v1/bin/goveralls_linux_amd64' failed with exit code 1

It looks like the postgres file it thinks should be there isn't (due to lack of a set build tag?), so even though the tests pass, it fails on sending out the coverage report.

Will be fixed by bumping the kvdb tag in the main go module (done by https://github.com/lightningnetwork/lnd/pull/7252). See https://github.com/lightningnetwork/lnd/pull/7251#issuecomment-1373285627.


MINOR: Upgrade jackson-databind to <IP_ADDRESS>

<IP_ADDRESS> and <IP_ADDRESS> include security fixes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

retest this please

retest this please

@omkreddy Let me know if the updated version looks good.

retest this please

@ijuma upgrade to jackson-databind <IP_ADDRESS> LGTM. thanks.

Both JDK 11 builds passed, JDK 8 had an unrelated timeout. Merging to master and cherry-picking to 2.3 and 2.2 branches.


Hard link support

Title.
A quick google landed me on this:
10. sftp: Extension request<EMAIL_ADDRESS>
This request is for creating a hard link to a regular file. This
request is implemented as a SSH_FXP_EXTENDED request with the
following format:

	uint32		id
	string<EMAIL_ADDRESS>	string		oldpath
	string		newpath

On receiving this request the server will perform the operation
link(oldpath, newpath) and will respond with a SSH_FXP_STATUS message.
This extension is advertised in the SSH_FXP_VERSION hello with version
"1".

So, theoretically, this wouldn't be difficult

Published as 2.0.2 🚀

Thanks @AspectUnk !


Add pipeline schedules script

Adding PipelineStage and pipeline schedules to source control under PiPPy for the OSS use. File can be run as-is with torchrun PipelineScheule.py or with torchrun
Currently it is a standalone file but will be split out into different components

Quick comment regarding breaking up components:
the main function can go into the test dir, the pipeline components can go into the pippy dir.

Do you mind doing the break-up in this PR if it isn't too much work?

For code quality checks:
You can first run ./format.sh
Then run ./check.sh to address non-format issue.

Do you mind doing the break-up in this PR if it isn't too much work?

Thanks @kwen2501, will do!


[gui error report]

Please describe what you were doing when this error happened.
Specifications

OS: win32
IPFS Desktop Version: 0.16.2
Electron Version: 13.1.7
Chrome Version: 91.0.4472.124

Error
Error: Command failed with UNKNOWN: C:\Users\optio\AppData\Local\Programs\IPFS Desktop\resources\app.asar.unpacked\node_modules\go-ipfs\go-ipfs\ipfs.exe daemon --migrate --enable-gc --routing dhtclient
spawn UNKNOWN
    at ChildProcess.spawn (internal/child_process.js:403:11)
    at Object.spawn (child_process.js:562:9)
    at execa (C:\Users\optio\AppData\Local\Programs\IPFS Desktop\resources\app.asar\node_modules\ipfsd-ctl\node_modules\execa\index.js:80:26)
    at C:\Users\optio\AppData\Local\Programs\IPFS Desktop\resources\app.asar\node_modules\ipfsd-ctl\src\ipfsd-daemon.js:196:27
    at new Promise (<anonymous>)
    at Daemon.start (C:\Users\optio\AppData\Local\Programs\IPFS Desktop\resources\app.asar\node_modules\ipfsd-ctl\src\ipfsd-daemon.js:195:21)
    at module.exports (C:\Users\optio\AppData\Local\Programs\IPFS Desktop\resources\app.asar\src\daemon\daemon.js:77:17)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async startIpfs (C:\Users\optio\AppData\Local\Programs\IPFS Desktop\resources\app.asar\src\daemon\index.js:54:15)
    at async module.exports (C:\Users\optio\AppData\Local\Programs\IPFS Desktop\resources\app.asar\src\daemon\index.js:116:3)

It looks like you don't have access rights  for some reason, or there is a disk corruption.
Things to try:

Try running as an administrator or change permissions to C:\Users\optio\AppData\Local\Programs\IPFS Desktop
Uninstall IPFS Desktop, remove C:\Users\optio\AppData\Local\Programs\IPFS Desktop   and install it again

lmk if any of the above helped

Hi Lidel, for now i have try to run as administrator - same issue. Anyway no permissions has been changed since previous (working) version, and issue faced directly after ipfs desktop upgrade.  I'm going to try reinstall with folder remove....

Well full reinstall helps. if this is one-time-issue i think we can close it


[FLINK-13184][yarn] Support launching task executors with multi-thread on YARN.

What is the purpose of the change
This pull request support starting new TaskExecutors with multi-thread in YarnResourceManager, so when starting a large amount of TaskExecutors it won't the block main thread on RM from responding to other RPC messages (TE registration, heartbeats, etc.).
Brief change log

b2ed97d0e6dd506602888aacf6146238fbcdfd48: Introduce a config option for the max number of threads on RM used for starting new TaskExecutors.
06c7209af04f49ca69a263f57fc713f3b9c55c87: Introduce a thread pool in YarnResourceManager and start new TaskExecutors with multi-thread.
25fc95f30720209e19bd010cdd517ff5e3c685d8: Update relevant test cases to wait for threads starting new TaskExecutors to finish.

Verifying this change

Updated YarnResourceManagerTest to verify that YarnResourceManager starts new TaskExecutors properly.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

@wangyang0918 @guoweiM
Thanks for the review. I've updated the PR. Also rebased to the latest master for conflict resolving.

Is this the only blocking call we execute from the YarnResourceManager or could there be others as well. If yes, then it might make sense to have a plan how to fix the other call-sites as well.

Thanks for the review, @tillrohrmann.
I've left feedbacks on some of your comments. Will update the PR addressing the other comments. I'll ping you when I finish.

Thanks for the review, @walterddr.
Till has suggested that instead of maintaining a thread pool in Flink, we may simply leverage Yarn NMClientAsync (currently we are using NMClient) for starting new task executors. And I tend to agree with him. I'll try do some investigation along this direction (and maybe some POC).
WDYT?

Closing this PR since it needs a major overhaul.


Chat Panel: Fix chat history view

This PR closes #1699
Test plan
https://github.com/sourcegraph/cody/assets/44617923/7f358472-955f-408e-9097-49616d477b5b

@abeatrix Can I have a review please?


check_approval       tuple index out of range

Describe the bug
A clear and concise description of what the bug is.
I used make_trade, but it returns    tuple index out of range
To Reproduce
Steps to reproduce the behavior. Ideally, you can provide a code example demonstrating the issue (including the Uniswap version, tokens/route, and network used).
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here, such as a transaction ID demonstrating the problem.

There are no steps to reproduce the bug.

Maybe this happens when tokenIn is passed as a kwarg instead of as a positional arg (thus args being empty). The decorator probably needs fixing.

Maybe this happens when tokenIn is passed as a kwarg instead of as a positional arg (thus args being empty). The decorator probably needs fixing.

I was receiving the original error when passing tokens in as (input_token= send_addr, output_token=rec_addr)  It went away when I just passed the variables in.


litestream: 0.3.8 -> 0.3.9

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/benbjohnson/litestream/releases.
meta.description for litestream is: "Streaming replication for SQLite"
meta.homepage for litestream is: "https://litestream.io/"
meta.changelog for litestream is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.3.9 with grep in /nix/store/9dlpqslfqq622ffcwjfgq58jwlcwxymn-litestream-0.3.9
found 0.3.9 in filename of file in /nix/store/9dlpqslfqq622ffcwjfgq58jwlcwxymn-litestream-0.3.9

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
litestream

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/9dlpqslfqq622ffcwjfgq58jwlcwxymn-litestream-0.3.9 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A litestream https://github.com/r-ryantm/nixpkgs/archive/bdeaedd9949a11db9b23c11c5c28736053d9c7c3.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/9dlpqslfqq622ffcwjfgq58jwlcwxymn-litestream-0.3.9
ls -la /nix/store/9dlpqslfqq622ffcwjfgq58jwlcwxymn-litestream-0.3.9/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

litestream

Maintainer pings
cc @cideM for testing.

Result of nixpkgs-review pr 183524 run on x86_64-linux 1

1 package built:

litestream


Support parsing User-Agent fields

Is your feature request related to a problem? Please describe.
Many use-cases seek to parse out User-Agent headers to get useful metadata before saving to OpenSearch. This can include the type of browser, version information of the browser, the operation system, version information for the operating system, and even device information.
Describe the solution you'd like
Provide a processor for parsing User-Agent headers.
useragent:
  source_key: /headers/user_agent
  target_key: /user_agent
  exclude_original: false

Following along with https://github.com/opensearch-project/observability/issues/1398, this should support ECS-compatibility.
In the example above, I might have output which looks like the following:
user_agent : {
  name: "Safari",
  version: "16.4",
  device: {
    name: "iPhone"
  },
  original: "..."
}

Fields:

source_key - The key path to use for the User-Agent string. required
target_key - The key path which will be the object containing the User-Agent metadata. Optional: if not specified, defaults to user_agent to match the ECS schema.
exclude_original - By default, the source_key will be copied. Set this to true to not copy it. Optional; defaults to false.

Additional context
ECS reference for User-Agent: https://www.elastic.co/guide/en/ecs/current/ecs-user_agent.html#field-user-agent-device-name

@oeyh Is it not possible to achieve this using grok processor?

@kkondaka In theory it can, but that will be too complicated. This is the regexes that uap-java uses to parse user agent string. You can see how many pattern variants there can be for a user agent string.


setup.py won't work

log:
All folders available!
Some modules are not installed
do you want to download and install them? (Y/N): Y
Installing modules...
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.
ffgac/ffedit not found inside ffglitch folder, you cannot run the ffglitch modes without these programs
Do you want to download ffglitch now? (Y/N): Y
Downloading FFglitch...(size: approx 17MB)
Unable to download ffglitch from site! Check your connection or download it manually from https://github.com/Akascape/FFglitch-0.9.3-executables
and paste the files (ffgac and ffedit) inside FFglitch folder.
Something went wrong!
Setup Complete!

@imadeagithubaccountforthis Please follow the manual setup:
https://github.com/Akascape/Datamosher-Pro/wiki/1.How-to-Install#manual-setup

@imadeagithubaccountforthis
Install python properly by clicking the "add to path" option, here is a tutorial video: https://user-images.githubusercontent.com/89206401/187713564-fe75c20c-d457-431a-9332-511be7411218.mp4
After this, run setup.py.
if problem remains, then follow the manual setup:
https://github.com/Akascape/Datamosher-Pro/wiki/1.How-to-Install#manual-setup


Doesn't work in a React Native app

I tried using it, but the overlay/blur will apply for a second and then it will return to the original content.

Hi! Have you seen the readme? There's a big warning saying that this behaviour is only working in API 26 devices. Also, there are a lot of manufacturers that have different behaviours and tweaks that alter this functionalitiy.
I would be glad to see if anybody comes with an improvement for this library, so if you're interested, you can make your own research and open a PR! That's the open source magic :)

Got it, thanks :)


Switch to ansible_hostname in calico

For consistancy with kubernetes services we should use the same hostname for nodes, which is 'ansible_hostname'.
Also fixing missed 'kube-node' in templates, Calico is installed on 'k8s-cluster' roles, not only 'kube-node'.

ci check this


I am facing this issue when i am running #Rocket Chat in Studio Carney 3.3

Description
" Cannot access class 'Lkotlinx.coroutines.experimental.android.HandlerContext;'. Check your module classpath for missing or conflicting dependencies"
When i am trying to run the application, i am getting this issue every time. I need the quick solution. Can anybody give me the proper solution.  I have cloned the project from github, do you have any suggestion to setup and working this project without any warning and errors
Devices and Versions
Kotlin Version 1.2.61
Gradle Version 4.9
Android Studio

Steps to reproduce
Logs
Thanks in advance

If you're using Android Studio 3.3 Canary 6, please downgrade it to 5.
It seems to be a bug on this new release that could be causing this.

The issue is gone with a temporary workaround @raviLogicalwings. You can build the app now with any Canary version.

can you please provide more logs on the error?


Improvements for User Agent recognition

Here are some improvements I would recommend to apply. Please, also deploy the changes to the Django package.
These type of User Agents are not being recognized as "tablet":
Mozilla/5.0 (iPad; CPU OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E304 [FBAN/FBIOS;FBAV/<IP_ADDRESS>.71;FBBV/55613772;FBDV/iPad5,4;FBMD/iPad;FBSN/iOS;FBSV/10.3.1;FBSS/2;FBCR/movistar;FBID/tablet;FBLC/es_ES;FBOP/5;FBRV/0]
These type of User Agents are not being recognized as "PC":
Mozilla/5.0 (X11; CrOS x86_64 9202.66.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.148 Safari/537.36
These types of User Agents are not being recognized as "mobile":
Mozilla/5.0 (iPod touch; CPU iPhone OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Mobile/14D27 [FBAN/FBIOS;FBAV/<IP_ADDRESS>.71;FBBV/55613772;FBDV/iPod7,1;FBMD/iPod touch;FBSN/iOS;FBSV/10.2.1;FBSS/2;FBCR/;FBID/phone;FBLC/es_LA;FBOP/5;FBRV/56133369]
Mozilla/5.0 (Mobile; ALCATELOneTouch4019A; rv:28.0) Gecko/28.0 Firefox/28.0
It should be great to add the "is_smart_tv" feature for these type of User Agents:
Mozilla/5.0 (SMART-TV; Linux; Tizen 2.4.0) AppleWebkit/538.1 (KHTML, like Gecko) SamsungBrowser/1.1 TV Safari/538.1

>>> ua = 'Mozilla/5.0 (iPad; CPU OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E304 [FBAN/FBIOS;FBAV/<IP_ADDRESS>.71;FBBV/55613772;FBDV/iPad5,4;FBMD/iPad;FBSN/iOS;FBSV/10.3.1;FBSS/2;FBCR/movistar;FBID/tablet;FBLC/es_ES;FBOP/5;FBRV/0]'
>>> user_agent = parse(ua)
>>> user_agent.is_tablet
True

>>> ua = 'Mozilla/5.0 (X11; CrOS x86_64 9202.66.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.148 Safari/537.36'
>>> user_agent = parse(ua)
>>> user_agent.is_pc
True

>>> ua = 'Mozilla/5.0 (iPod touch; CPU iPhone OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Mobile/14D27 [FBAN/FBIOS;FBAV/<IP_ADDRESS>.71;FBBV/55613772;FBDV/iPod7,1;FBMD/iPod touch;FBSN/iOS;FBSV/10.2.1;FBSS/2;FBCR/;FBID/phone;FBLC/es_LA;FBOP/5;FBRV/56133369]'
>>> user_agent = parse(ua)
>>> user_agent.is_mobile
True

>>> ua = 'Mozilla/5.0 (Mobile; ALCATELOneTouch4019A; rv:28.0) Gecko/28.0 Firefox/28.0'
>>> user_agent = parse(ua)
>>> user_agent.is_mobile
True

for is_smart_v
you can use
>>> ua = 'Mozilla/5.0 (SMART-TV; Linux; Tizen 2.4.0) AppleWebkit/538.1 (KHTML, like Gecko) SamsungBrowser/1.1 TV Safari/538.1'
>>> user_agent = parse(ua)
>>> user_agent.device.model
'SMART-TV'

for your case, there is no clear standard for smart tv, so it is not easy to implement a is_smart_tv for now


Profile picture should slide from right and center in navbar when selected, and slide back to its previous position

All set!
See my commit here (develop has been updated with this enhancement): https://github.com/tennitech/juke/commit/c70019bee38c8572f697366e33fe19e13e9fc2f6


Keras: How to use another model as a layer in current model which input is ragged tensor and  output is also ragged tensor with same shape

Suppose I have a base model take two inputs and output single value:
# define two input
input1 = keras.Input(shape=(100,), dtype=tf.int8)
input2 = keras.Input(shape=(20,), dtype=tf.int8)
# DNN for onehot feature
dense1 = Dense(32, activation='relu')(input1)
dense2 = Dense(4, activation='relu')(input2 )
# output
output = Dense(1, activation='sigmoid')(Concatenate(axis=1)([dense1 , dense2 ]))
# define base model
item_base_model = keras.Model(inputs=[input1, input2], outputs=output, name="base_model")

Then I have a model take (None,100) and (None, 20) array as two inputs:
# define input list
input1_list = keras.Input(shape=(None, 100],), dtype=tf.int8)
input2_list = keras.Input(shape=(None, 20,), dtype=tf.int16)

I want to ask that how I can call the based model for each input in the inpu1_list and input2_list and get their output as a tensor with shape (None,).  Finally, I will train the entire model

@zwh14 ,
In order to expedite the trouble-shooting process, could you please provide a complete code and the TensorFlow version you are using.

Also can you please take a look at link 1 and 2 with the similar issue.It helps.Thanks!

@tilakrayal
I am using the tf 2.5.2.
In fact that is almost all code. I first define the base model. Its inputs is with shape(100,) and (20,) and it output a value.
Than I want to define another model, its inputs is with shape(None,100,) and (None, 20). I just want to iterate the ragged tensor with the base model to get a (None,) shape output. I think the output is also ragged tensor? I do not know how to implement

This is the base model
# define item-base model
input_aspects_onehot = keras.Input(shape=(100,), dtype=tf.int8)
input_aspects_ordinal = keras.Input(shape=(20,), dtype=tf.int16)

# DNN for onehot feature
dense1_onehot_output = Dense(256, activation='relu')(input_aspects_onehot)
dense2_onehot_output = Dense(64, activation='relu')(dense1_onehot_output)

# Embedding and Max Pool Layer for ordinal feature
aspects_embedding = Embedding(input_dim=2000,
                              output_dim=64,
                              mask_zero=True)(input_aspects_ordinal)

aspects_embedding_maxpool = GlobalMaxPooling1D()(aspects_embedding)

# stacking the two dense2_onehot_output and aspects_embedding_maxpool
dense_stack_output = Dense(64, activation='relu')(Concatenate(axis=1)([dense2_onehot_output, aspects_embedding_maxpool]))

# output for one item
output = Dense(1)(dense_stack_output)

item_base_model = keras.Model(inputs=[input_aspects_onehot,input_aspects_ordinal], outputs=output, name="item_base_model")
item_base_model.summary()

This is another model which will call the base model
# define list model
input_aspects_onehot_list = keras.Input(shape=(None, 100,), dtype=tf.int8)
input_aspects_ordinal_list = keras.Input(shape=(None, 20,), dtype=tf.int16)

base_model_output_list = []
for i in range(len(input_aspects_onehot_list)):
    base_model_output_list.append(item_base_model(input_aspects_onehot_list[i], input_aspects_ordinal_list[i]))
output = tf.stack(base_model_output_list)

item_base_model = keras.Model(inputs=[input_aspects_onehot_list,input_aspects_ordinal_list], outputs=output, name="model")

Obviously I can't do a for loop for keras Input.I'm just trying to express that logic

@zwh14 ,
Please post this issue on keras-team/keras repo.
To know more refer to:
https://discuss.tensorflow.org/t/keras-project-moved-to-new-repository-in-https-github-com-keras-team-keras/1999


Added repr for Node and Edges (#353)

Fixes #353 .
Please review and let me know if there are any changes required.

Sure! I may have to test the whole string I guess then? Will I be using double_node_edge and single_node_edge from the test script?


Admin UI security

Readiness checklist

[ ] I added/updated unit tests.
[ ] I added/updated integration tests.
[x] I ensured that the PR title is good enough for the changelog.
[x] I labeled the PR.

Also: did you check pages like https://www.tripwire.com/state-of-security/most-common-website-security-attacks-and-how-to-protect-yourself or https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks?

Does this mean that other HTTP methods are annotated by default? Because afaik those are vulnerable as well.

Other methods -- those not considered safe by RFC 7231 (POST, PUT & DELETE) -- are subject to the default annotation. These should be the only vulnerable methods.

Regarding SQL Injection: did you check all our raw SQL queries for vulnerabilities?

I have updated the task page with this and other information, but yes I have. We're good as long as we keep using parameters properly instead of adding them to the query manually.

Other methods -- those not considered safe by RFC 7231 (POST, PUT & DELETE) -- are subject to the default annotation. These should be the only vulnerable methods anyway.

"default annotation" means they are annotated with the AutoValidateAntiforgeryTokenAttribute?

They aren't explicitly but it's as if they were due to the Filter added when registering the Controllers.

They aren't explicitly but it's as if they were due to the Filter added when registering the Controllers.

And that's definitely the case? Did you test that? I'm just asking because it would be really bad if something didn't work. :)


[Bug] Windows path in project.json

Hello,
When generating a project with nx console + @ng-rspack/nx generator, it generates the project with the following build options:
...
      "options": {
        "outputPath": "../../dist/apps/toto",
        "index": "./src\\index.html",
        "polyfills": [],
        "tsConfig": "./tsconfig.app.json",
        "inlineStyleLanguage": "scss",
        "assets": ["./public"],
        "styles": ["./src\\styles.scss"],
        "main": "./src\\main.ts"
      },
...

Notice the \\, it's probably because I'm on Windows.
It should probably be regular path with only / as on other generated projects.
Reproduction
https://github.com/Yberion/nx-rspack-angular/blob/feat/rspack-app/apps/rspack-angular/project.json#L12
Env
Angular CLI: 18.2.6
Node: 20.17.0
Package Manager: pnpm 9.11.0
OS: win32 x64

Angular: 18.2.6
... animations, build, cdk, cli, common, compiler, compiler-cli
... core, forms, language-service, material, platform-browser
... platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1802.6
@angular-devkit/build-angular   18.2.6
@angular-devkit/core            18.2.6
@angular-devkit/schematics      18.2.6
@schematics/angular             18.2.6
ng-packagr                      18.2.1
rxjs                            7.8.1
typescript                      5.5.4

Ah 🤦♂ I thought I was already normalising paths.
good catch!

Hello,
Thanks, https://github.com/Coly010/ng-rspack-build/pull/12 fixed the issue!


when position is bottom extraInsets not working

I'm trying to get an extra inset working with a bottom position and that doesn't seem to be implemented:
<Toasts extraInsets={{bottom: 32}}/>

I think this can be solved by passing extraInsets to <Toast/> and use it in the startingY calculation.

Same issue here

Thank you! Fixed in next version


Add optional global client cache

@ymost Thanks for the very fast response to my need.
I really appreciate it.
The implementation is really elegant and will aid with the authentication issue.
Indeed, now, if I am working from the Python Shell, I'll need to authenticate once.
However, I think we should consider for the long term saving the cache: cluster-path ->  KustoClient in the disk.
This will allow running "main" functions directly from PyCharm without a need for a Python Shell at all. While it might be 'risky', we can do it with limited time (TTL) or a limited-number-of-executions (e.g. 50)
WDYT?

@netanz
I feel your pain, but your suggested solution is problematic. Every Kusto cluster has its own policies as to when to require re-authentication, and what you are proposing will in effect subvert these policies.
I think we need to look for a solution in a different direction. So far we have been using the "device authentication" method, but the azure-kusto package has other auth methods which might be more suitable for the use case you describe (for example, take a look at the KustoConnectionStringBuilder.with_az_cli_authentication method). If you can, go ahead and experiment with these other methods and let me know how it goes.


Fix update dates DEVEX-58

Result of Integration 6
Duration: 12 minutes and 25 seconds
Result: Build failed 1 test out of 220

Result of Integration 9
Duration: 14 minutes and 22 seconds
Result: Build failed 3 tests out of 220

Result of Integration 10
Duration: 12 minutes and 16 seconds
Result: Build failed 1 test out of 220

LGTM 👍


can i read devices data from health connect.

i wanna read steps from device.

https://matinzd.github.io/react-native-health-connect/docs/intro


fixed #12926 uglyurls parse to map[string]bool

fix https://github.com/gohugoio/hugo/issues/12926

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


GELF::Logger#add is not compatible to Ruby's Logger#add

It seems like GELF::Logger#add offers a slightly different interface than Ruby’s standard Logger. This can lead to the wrong messages being sent to server.
With a small puts statement in GELF::LoggerCompatability#add, just before the call to notify_with_level, we can see that if we use GELF::Logger.add like a Ruby Logger the message gets lost and used as facility instead, which will send an error silently in the background.
>> logger = Logger.new(STDOUT)
#=> #<Logger:0x007fc28ab06900 @progname=nil, @level=0, @default_formatter=#<Logger::Formatter:0x007fc28ab068d8 @datetime_format=nil>, @formatter=nil, @logdev=#<Logger::LogDevice:0x007fc28ab06720 @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<IO:<STDOUT>>, @mutex=#<Logger::LogDevice::LogDeviceMutex:0x007fc28ab066a8 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x007fc28ab06608>>>>
>> logger.add(1, nil, 'foobar')
I, [2014-12-16T15:38:14.130554 #11601]  INFO -- : foobar
#=> true
>> Graylog.logger.add(1, nil, 'foobar')
DEBUG PUTS notify_with_level. level=1, hash={"short_message"=>nil, "facility"=>"foobar"}
#=> [<VERBOSE OUTPUT>]

Using GELF::Logger#info, #debug and so on works of course, as does GELF::Logger#add if we use “its” interface.
The problems arise if we try to use GELF::Logger like a standard Ruby logger with a standard #add method. Rails 4 for example, offers to extend the standard file logger with another logger by doing this:
my_logger = GELF::Logger.new("localhost", 12201, "WAN", { :facility => "appname" })
Rails.logger.extend(ActiveSupport::Logger.broadcast(my_logger))

(this seems to be the canonical way of having multiple loggers now — Rails uses this internally and in its scripts)
What Rails does here is it extends Rails.logger so whenever Rails.logger.add is called, it also calls #add on my_logger. It does not use the #info, #debug and other helper methods of my_logger. It uses #add and this leads to the problem from above:
>> Rails.logger.info("foobar")
DEBUG PUTS notify_with_level. level=1, hash={"short_message"=>nil, "facility"=>"foobar"}
=> true
>> Rails.logger.add(1, nil, 'foobar')
DEBUG PUTS notify_with_level. level=1, hash={"short_message"=>nil, "facility"=>"foobar"}
=> true

As you can see, the message foobar gets lost again. The GELF::Logger on the other hand still works (if used directly):
>> my_logger.info('foobar')
DEBUG PUTS notify_with_level. level=1, hash={"short_message"=>"foobar", "facility"=>"appname"}

But besides Rails’ this is also the way Ruby’s Logger uses the add method:
https://github.com/ruby/ruby/blob/4c1666875f431105a63daf37f28734f9d1960ec2/lib/logger.rb#L433-L435
The GELF::Logger on the other hand just passes on *args, which is going to result in different outcomes.
My proposal would be to change the signature of GELF::Logger#add from this one
def add(level, *args)

to this one:
def add(level, message = nil, progname = nil, &block)

I’d also change the helper methods (#info, #warn, #error, …) to work just like Ruby’s Logger methods (see GitHub link above).
In itself GELF::Logger works fine. That’s also why it’s hard to write a failing test for this: the assertions are consistent throughout. But they are not compatibel to Ruby’s Logger.
This test for example (test/test_logger.rb:18):
      should "implement add method with level and message from parameters, facility from defaults" do
        @logger.expects(:notify_with_level!).with do |level, hash|
          level == GELF::INFO &&
          hash['short_message'] == 'Message' &&
          hash['facility'] == 'gelf-rb'
        end
        @logger.add(GELF::INFO, 'Message')
      end

It works and is fine. But: Ruby’s Logger never calls #add like this. In this case it would call #add like this:
@logger.add(GELF::INFO, nil, “Message”)

If I change the call to #add in the test to look like this it breaks.
I thought I’d open an issue here before hacking around the code and then get told that you’d want to keep the interface. So, what do you think about this?

I think this issue can be closed now that #27 has been merged.


Pound sign/hashtag in text throwing off highlighting

Hi all, long-time user of Markdown Extended with Sublime Text here; thanks so much! It's been a life-saver.
I noticed something odd today on my macOS systems running ST3 build 3126. A pound sign/hashtag in the middle of a line is completely throwing off the syntax highlighting for Markdown documents. The odd thing is that this doesn't happen on my Linux box running ST3 build 3126. I tried updating to the latest version of Markdown Extended, but the behavior persists. This is not something I've ever seen before. I'm using Markdown Extended with the Monokai Extended color scheme. Any suggestions?

Same syntax highlighting problem here with 3126 in El Capitan.
File with #:

File without #:

I can confirm that this bug also appears in ST3 build 3176 (3.1.1) on Linux.


Broken test: org.apache.accumulo.test.functional.SplitRecoveryIT

Test name(s)

org.apache.accumulo.test.functional.SplitRecoveryIT.test

Describe the failure observed
java.lang.AssertionError: expected:<0> but was:<1>
	at org.junit.Assert.fail(Assert.java:89)
	at org.junit.Assert.failNotEquals(Assert.java:835)
	at org.junit.Assert.assertEquals(Assert.java:647)
	at org.junit.Assert.assertEquals(Assert.java:633)
	at org.apache.accumulo.test.functional.SplitRecoveryIT.test(SplitRecoveryIT.java:341)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
	at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.lang.Thread.run(Thread.java:829)

Testing Environment:

Version of this project: 2.1.0-SNAPSHOT
First commit known to fail (or current commit): 548b037c5917dc1e693733dc3d89599369d79103
Other environment details:

Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.8.1
Java version: 11.0.11, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-11-openjdk-<IP_ADDRESS>.9-5.fc34.x86_64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.12.15-300.fc34.x86_64", arch: "amd64", family: "unix"

What have you tried already?
Re-ran test to verify failure
Additional context
This is likely caused by #2189, since it only started occurring with that change.

Finding this IT hard to work with but have tracked down the failure to
https://github.com/apache/accumulo/blob/8a636a3ba91f5dae1d8b09b095178889a7d79c1d/test/src/main/java/org/apache/accumulo/test/functional/SplitRecoveryIT.java#L192-L193
Other than that, no indication yet on what might be causing this.

More specifically it looks like the error is coming from https://github.com/apache/accumulo/blob/cd58dbb0198601ffda5e1162a757648861c8ea14/core/src/main/java/org/apache/accumulo/core/metadata/schema/TabletMetadata.java#L203-L206
Which checks that fetchedCols.contains(ColumnType.LOADED)

From my testing, I got this IT to pass by reverting the changes made here https://github.com/DomGarguilo/accumulo/blob/0b82f085073a3d5d3de5ebb22244887b345ea860/core/src/main/java/org/apache/accumulo/core/metadata/schema/TabletsMetadata.java#L193-L199. Which is just removing the Iterators.filter portion. I am not sure why that piece of the code caused things to error though. ConvertRow is what alters LoadedFiles which ties into @DomGarguilo findings mentioned above.

Looking closer at this test it looks like it is failing from a NullPointerException thrown from calling getLoaded() on a null TabletMetadata object. It is null because the TabletsMetadata object returned from the builder in AmpleImpl.readTablet() is empty, triggering the NoSuchElementException, returning null. Still looking into why this is happening.

Tracked down the problem and fixed it in f503f1f.  After MetadataTableUtil.splitTablet was called extent no longer existed in the metadata table.  Needed to use high instead.  The extents extent and high share the same end row in the test, but have different prev end rows. The changes in #2189 to check the prev end row made this difference matter.

Awesome. LGTM


Fix frame average filter

This adds a test for frame filtering that was failing before any other changes and now passes due to the fixed implementation of the frame iterator.

Thanks for the review!


Fix directional movement during startup

Summary of the Pull Request
During startup we do not have real dimensions, so we have to guess what our dimensions should be based off of the splits.

References
https://github.com/microsoft/terminal/pull/10978

PR Checklist

[ ] Closes #xxx ❓
[ ] CLA signed. If not, go over here and sign the CLA
[ ] Tests added/passed
[ ] Documentation updated. If checked, please file a pull request on our docs repo and link it here: #xxx
[ ] Schema updated.
[x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #10978

Detailed Description of the Pull Request / Additional comments
Augment the state of the pane search to also have a size in each dimension that gets incrementally upgraded as we recurse through the tree.

Validation Steps Performed

Seriously, on every branch the feature tests fail? Is there a problem with the CI and running from forks or something?

Seriously, on every branch the feature tests fail? Is there a problem with the CI and running from forks or something?

We recently moved to new build agents, and unfortunately some of our tests are timing-sensitive. I'll book some work for us to shore them up. Sorry about that 😄

I apologize, rereading my comment my wording could have been better. I meant to express surprise that this kept happening, not any sense of anger.

Don't worry, none taken. We submit PRs more than anyone else, so yea this has been a major pain 🙃


Gamification

Identity (sign up, sign in flow) was launched on Arcade recently. In our second version of this feature, we want to enhance the user flow that already exists, and add in new features of rewards, experience points, etc that tie into tutorial and skillmap progress.

For this release, we're going to have a badge system, where users are rewarded badges and can see them on their dashboard.

https://www.figma.com/file/TkrzFIm0h6OUl7l1BMcKmU/MakeCode-Arcade-Gameification?node-id=2353%3A10185

https://github.com/microsoft/pxt/pull/8573

Here are all the badges (the zip file has the locked versions as well)
Badges-Updated Locked.zip


Configuration Change based on Pause/Resume Barrier

Re-Introduce Configuration Change based on Pause Barrier
TODO:

[ ] #768
[ ] Support Resume and Step barrier in Actor
[ ] Implement the Suspended state in Stream Manager
[ ] (optinally) Migrate MV-on-MV to it.

replaced by https://github.com/singularity-data/risingwave/issues/3750


Compute split words derivations of terms that don't accept typos

Allows looking for the split-word derivation for short words in the user's query (like the -> "t he" or door -> do or) as well as for 3grams.

Hello @loiclec
Is it a bug introduced by the search refactoring or a bug that was already present in v1.1?

Hello @curquiza, this bug has been introduced with the refactor, and should be fix before the final release


Installation deprecation warnings

Hey,
I just installed this and I can report that it works -- thank you soooooo much for this :D
I did find the following warnings were reported during install:

npm -v
5.0.3

node -v
6.10.3

npm i https://github.com/myfreeweb/exiv2node.git -S

><EMAIL_ADDRESS>install /Users/andy/Development/image-browser/node_modules/exiv2
> node-gyp rebuild

  CXX(target) Release/obj.target/exiv2/exiv2node.o
In file included from ../exiv2node.cc:4:
In file included from ../node_modules/nan/nan.h:194:
../node_modules/nan/nan_maybe_43_inl.h:220:17: warning: 'CloneElementAt' is deprecated
      [-Wdeprecated-declarations]
  return array->CloneElementAt(GetCurrentContext(), index);
                ^
/Users/andy/.node-gyp/6.10.3/include/node/v8.h:3032:36: note: 'CloneElementAt' has been explicitly marked
      deprecated here
                MaybeLocal<Object> CloneElementAt(Local<Context> context,
                                   ^
In file included from ../exiv2node.cc:4:
In file included from ../node_modules/nan/nan.h:200:
In file included from ../node_modules/nan/nan_new.h:189:
../node_modules/nan/nan_implementation_12_inl.h:40:29: warning: 'New' is deprecated
      [-Wdeprecated-declarations]
  return v8::BooleanObject::New(value).As<v8::BooleanObject>();
                            ^
/Users/andy/.node-gyp/6.10.3/include/node/v8.h:4008:56: note: 'New' has been explicitly marked deprecated
      here
  V8_DEPRECATED("Pass an isolate", static Local<Value> New(bool value));
                                                       ^
In file included from ../exiv2node.cc:4:
../node_modules/nan/nan.h:1955:15: warning: 'SetAccessor' is deprecated [-Wdeprecated-declarations]
  return obj->SetAccessor(
              ^
/Users/andy/.node-gyp/6.10.3/include/node/v8.h:2751:22: note: 'SetAccessor' has been explicitly marked
      deprecated here
                bool SetAccessor(Local<Name> name,
                     ^
3 warnings generated.
  SOLINK_MODULE(target) Release/exiv2.node
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]
+<EMAIL_ADDRESS>added 2 packages in 20.819s

Just thought you should know. Like I said, it does work successfully.

The warnings are in nan and node itself, not this package :)


Hide contribute section if not contributions were found for member

Describe the bug
When going to member profile you will see the contribution section even if there were no contributions done. It shouldn't display them

Fixed in PR #55


[AIRFLOW-3245] fix list processing in resolve_template_files

Make sure you have checked all steps below.
Jira

[X] My PR addresses the following Airflow Jira issues and references them in the PR title.

https://issues.apache.org/jira/browse/AIRFLOW-3245

Description

[X] resolve_template_files does not process template field value if it is a list

Tests

[ ] Looks like currently the function isn't directly tested. If needed, please advise where should I add a test case

Commits

[X] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Code Quality

[X] Passes flake8

Codecov Report

Merging #4086 into master will decrease coverage by 0.03%.
The diff coverage is 36.36%.

@@            Coverage Diff             @@
##           master    #4086      +/-   ##
==========================================
- Coverage    77.9%   77.87%   -0.03%
==========================================
  Files         199      199
  Lines       15957    15967      +10
==========================================
+ Hits        12431    12434       +3
- Misses       3526     3533       +7

Impacted Files
Coverage Δ

airflow/models.py
91.86% <36.36%> (-0.3%)
:arrow_down:

airflow/configuration.py
88.84% <0%> (+0.35%)
:arrow_up:

Continue to review full report at Codecov.

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

Can you please add tests for this?

@kaxil, can you direct me where, cause I couldn't find any tests related to generating templates from files

@kaxil tests added and build is passing. Please merge


Prevent candidate applying to closed course

Context
We are moving away from managing course application availablility from the vacancies of the CourseOptions and toward managing the course availability through the course open/closed.
We need to stop candidates applying to courses that are closed.
We have begin syncing application_status on the Course. Here we enforce the Candidat application submission based on the courses application_status
Changes proposed in this pull request

Prevent candidate from adding a closed course to their application choice
Prevent candidate from submitting an application with a closed course

Guidance to review
Other test scenarios to propose?
Screenshots

Adding closed course to application
Submitting application with closed course

Link to Trello card
Trello Ticket
Things to check

[ ] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[ ] This code does not rely on migrations in the same Pull Request
[ ] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[ ] If this code adds a column to the DB, decide whether it needs to be in analytics yml file or analytics blocklist
[ ] API release notes have been updated if necessary
[ ] If it adds a significant user-facing change, is it documented in the CHANGELOG?
[ ] Required environment variables have been updated added to the Azure KeyVault

 Prevent candidate applying to closed course


Added a way to change the logger colorscheme

Hi, I added a way to change the logger colorscheme for terminal with a light background because the current colorscheme is unreadable on these kind of terminal.
While editing the files I noticed that the colorBright value does not actually make the color brighter but make the text bold, maybe I am mistaken, would it be alright to change the name to textBold or something of the same test? I'm asking this here because it is really a small thing to change.

👍

It is really pleasant to have my feature being merrged! Thank you!


Feature/dont handle errors

Ideally this should just exit instead of moaning about errors (so k8s can restart it at least)
Observed issue example:
time="2022-08-18T05:37:33Z" level=info msg="Getting secret; try #1 of 4"
time="2022-08-18T05:37:33Z" level=info msg="Successfully got secret for provider awsecr-cred after trying 1 time(s)"
time="2022-08-18T05:37:33Z" level=info msg="Got 1 refreshed credentials for namespace cert-manager"
time="2022-08-18T05:37:33Z" level=info msg="Processing secret for namespace cert-manager, secret awsecr-cred"
time="2022-08-18T05:37:34Z" level=info msg="Updated secret awsecr-cred in namespace cert-manager" function=processNamespace
time="2022-08-18T05:37:34Z" level=info msg="Updating ServiceAccount default in namespace cert-manager" function=processNamespace
time="2022-08-18T05:37:34Z" level=info msg="Finished processing secret for namespace cert-manager, secret awsecr-cred"
time="2022-08-18T05:37:34Z" level=info msg="Finished refreshing credentials for namespace cert-manager"
time="2022-08-18T05:37:34Z" level=info msg="Refreshing credentials for namespace default"
time="2022-08-18T05:37:34Z" level=info msg="------------------ [awsecr-cred] ------------------
"
time="2022-08-18T05:37:34Z" level=info msg="Getting secret; try #1 of 4"
time="2022-08-18T05:37:34Z" level=info msg="Successfully got secret for provider awsecr-cred after trying 1 time(s)"
time="2022-08-18T05:37:34Z" level=info msg="Got 1 refreshed credentials for namespace default"
time="2022-08-18T05:37:34Z" level=info msg="Processing secret for namespace default, secret awsecr-cred"
time="2022-08-18T05:37:35Z" level=error msg="Error updating secret: admission webhook "validation.gatekeeper.sh" denied the request: [deny-default-namespace] Nothing should be deployed to the default namespace."
time="2022-08-18T05:37:35Z" level=error msg="error processing secret for namespace default, secret awsecr-cred: could not update Secret: admission webhook "validation.gatekeeper.sh" denied the request: [deny-default-namespace] Nothing should be deployed to the default namespace."
2022/08/18 05:37:35 could not update Secret: admission webhook "validation.gatekeeper.sh" denied the request: [deny-default-namespace] Nothing should be deployed to the default namespace.
time="2022-08-18T05:37:35Z" level=info msg="Refreshing credentials for namespace flux"
time="2022-08-18T05:37:35Z" level=info msg="------------------ [awsecr-cred] ------------------
"
time="2022-08-18T05:37:35Z" level=info msg="Getting secret; try #1 of 4"
time="2022-08-18T05:37:35Z" level=info msg="Successfully got secret for provider awsecr-cred after trying 1 time(s)"
time="2022-08-18T05:37:35Z" level=info msg="Got 1 refreshed credentials for namespace flux"
time="2022-08-18T05:37:35Z" level=info msg="Processing secret for namespace flux, secret awsecr-cred"
time="2022-08-18T05:37:35Z" level=info msg="Updated secret awsecr-cred in namespace flux" function=processNamespace
time="2022-08-18T05:37:35Z" level=info msg="Updating ServiceAccount default in namespace flux" function=processNamespace
time="2022-08-18T05:37:35Z" level=info msg="Finished processing secret for namespace flux, secret awsecr-cred"
time="2022-08-18T05:37:35Z" level=info msg="Finished refreshing credentials for namespace flux"
ERROR: logging before flag.Parse: E0818 06:15:21.441051       1 streamwatcher.go:109] Unable to decode an event from the watch stream: http2: server sent GOAWAY and closed the connection; LastStreamID=20189, ErrCode=NO_ERROR, debug=""
ERROR: logging before flag.Parse: E0818 06:15:21.441374       1 reflector.go:300] /build/vendor/k8s.io/client-go/tools/cache/reflector.go:94: Failed to watch *v1.Namespace: Get "https://<IP_ADDRESS>:443/api/v1/watch/namespaces?resourceVersion=8644700&timeoutSeconds=562": http2: no cached connection was available
ERROR: logging before flag.Parse: E0818 06:15:22.441833       1 reflector.go:199] /build/vendor/k8s.io/client-go/tools/cache/reflector.go:94: Failed to list *v1.Namespace: Get "https://<IP_ADDRESS>:443/api/v1/namespaces?resourceVersion=0": http2: no cached connection was available

please ignore


let support for ES3/ES5

Any plan for ES3/ES5 support similar to this
let x = 123;
let _x = 123;
let _x2 = 123;
{
  let x = 56
  console.log(x);
}

var x = 123;
var _x = 123;
var _x2 = 123;
{
  var _x3 = 56;
  console.log(_x3);
}

We're not planning on it at the moment. There are some cases like loop variables where the rewriting necessary is very invasive in terms of performance overhead, e.g. in a loop you need to wrap the loop body in a function, which could easily be a 10x perf hit:
for(let i = 0; i < 10; i++) {
  window.setTimeout(() => {
      console.log(i)
    }, 10);
}

The proper emit for this would be:
for (var i = 0; i < 10; i++) {
  (function (i) {
    window.setTimeout(function () {
      console.log(i);
    }, 10);
  })(i);
}

There are some cases like loop variables where the rewriting necessary is very invasive in terms of performance overhead, e.g. in a loop you need to wrap the loop body in a function, which could easily be a 10x perf hit

Probably just me but I don't see it:
var count = 1000;

console.time('var');
for (var i = 1; i <= count; i++) {
  var varCallCount = 1;
  window.setTimeout(function () {
    if(varCallCount++ == count) console.timeEnd('var');
  }, 10);
}

console.time('let');
for (var i = 1; i <= count; i++) {
  var letCallCount = 1;
  (function (i) {
    window.setTimeout(function () {
    if(letCallCount++ == count) console.timeEnd('let');
    }, 10);
  })(i);
}

My results:
var: 230.205ms
let: 123.337ms

@basarat The code you posted doesn't use let so I think you measured a different code? Also I was suspicious of a benchmark involving setTimeout as that could seriously skew what you really want to measure.
I came up with the following code, that creates a closure on the loop variable in 3 different way: using ES6 let, using an immediate function (what 6to5 does), using try-catch (what Traceur does):
'use strict';

var count = 10000;
var callback;

console.time('let');
for (let i = 0; i < count; i++) {
    callback = function() { return i; };
}
console.timeEnd('let');

console.time('function');
for (var j = 0; j < count; j++) {
    (function (_j) {
        callback = function() { return _j; };
    })(j);
}
console.timeEnd('function');

console.time('try-catch');
for (var k = 0; k < count; k++) {
    try { throw k; }
    catch (_k) {
        callback = function() { return _k; };
    }
}
console.timeEnd('try-catch');

Results on my machine, IE11:
let: 2.284ms
function: 3.855ms (+68%)
try-catch: 249.484ms (+109%)
Note: IE11 doesn't handle the latest let spec correctly and the code above is not actually correct in this browser.
The immediate function might be OK, especially if you only inject it wherever code analysis shows that it's required. The traceur approach (try-catch) is really much slower.

Wrapping loop body in IIFE can become a reason of interesting memory issues because of closure creation. An example for V8 can be found here. If runtime supports let then bigObject will definitely be reclaimed after createWithLet is finished. However if let is transformed into IIFE (like it is done in createWithVar) - then BigObject will be hold in memory even after function is completed.

I modified your tests so that your array isn't sparse. Basically I used new Array(x).join("*") to create a huge string instead.
In the latest Chrome release I couldn't see any memory leak?
I see what you tried to do. Because bigObject is referenced inside the IIFE closure it should be included inside createWithVar context, which is held alive by callbacks closure.
I don't know why I can't see the leak, maybe the V8 optimized further since 2012? The optimizer could notice that IIFE doesn't escape the function scope and hence doesn't need any closure at all. Or they may notice that the result only needs the IIFE context, not createWithVar's context. In any case I don't see the leak.
 Anyway if I am required to code this, I will use the IIFE technique by hand or use 6to5, which will do the same...
On the other hand, looking forward, I think that the IIFE transform may have complicated interactions with other features, such as async and generators? For instance, playing with 6to5 REPL, the following code doesn't generate correct ES5 code:
async function test(y) {
  var result = [];
  for (let i = 0; i < 4; i++) {
    await y;
    result.push(() => i);
  }
  return result;
}

Just tried Chrome 42.0.2279.2 (Official Build) canary (64-bit), V8 4.2.10
If you open the page, click on test var and take a memory shapshot - snapshot will contain instance of BigObject being hold by the context.
What I'm trying to say is that I'd prefer to avoid transformations that can introduce subtle issues like this one.

Yes, I don't know what I missed before.
I'm on another computer now with Chrome 39 (stable) 32 bits and I see it, too.
Out of curiosity I checked IE11 and it retains bigObject as well.

Reopening based on feedback

Babel actually handles cases with loops fairly well at this time. It has some quirks where perf could probably be better (though the ones I found a while back has all been fixed).
The following for instance, does not produce any IIFE:
// original
for(let i = 0; i < 10; i++) {
  console.log(`1: ${i}`);
  for (let i = 0; i < 10; i++) {
    console.log(`2: ${i}`);
  }
}

// transpiled
for (var i = 0; i < 10; i++) {
  console.log("1: " + i);
  for (var _i = 0; _i < 10; _i++) {
    console.log("2: " + _i);
  }
}

However, if I do things that requires i to be bound, like creating a function it does:
// original
let arr = [];
for(let i = 0; i < 10; i++) {
  arr.push(() => i);
}

// transpiled
var arr = [];
for (var i = 0; i < 10; i++) {
  (function (i) {
    arr.push(function () {
      return i;
    });
  })(i);
}

I've seen that in most of the cases where I use let, it does not indeed result in IIFEs, but that's obviously not a broad test. It does however have some slight quirks (as far as I can understand it) if you technically only need an IIFE in the inner loop:
// original
let arr = [];
for(let i = 0; i < 10; i++) {
  for (let i = 0; i < 10; i++) {
    arr.push(() => i);
  }
}

// transpiled
var arr = [];
for (var i = 0; i < 10; i++) {
  (function (i) {
    for (var _i = 0; _i < 10; _i++) {
      (function (_i) {
        arr.push(function () {
          return _i;
        });
      })(_i);
    }
  })(i);
}

As far as I can tell, it shouldn't need to create an IIFE on the outer loop here, but that might just be me thinking about things wrong.

Pretty sure #2161 should close this issue out.

Babel was improved recently and is quite good at transpiling let. The thing that impresses me most is that it handles async/await and yield. Try this:
async function test() {
  for (let i in [0,1,2]) {
    await y(() => i);
  }
}

It is also relatively clever when it decides to create the IIFE. For instance, in this case it needs a function to capture the scope of b:
// This code:
for (var a = 0; a++; a < 10) {
  let b = a + 1;
  y(() => a * b);
}
// Generates:
for (var a = 0; a++; a < 10) {
  (function () {
    var b = a + 1;
    y(function () {
      return a * b;
    });
  })();
}

But if I change a to be declared with let instead of var, it only generates a capture for a. b does not need its own:
// This code:
for (let a = 0; a++; a < 10) {
  let b = a + 1;
  y(() => a * b);
}
// Generates:
for (var a = 0; a++; a < 10) {
  (function (a) {
    var b = a + 1;
    y(function () {
      return a * b;
    });
  })(a);
}

Multiple let in the for get passed as multiple parameters to one function:
// This code:
for (let a = 0, b = 2; a++, b--; b > 0) {
  y(() => a * b);
}
// Generates:
for (var a = 0, b = 2; a++, b--; b > 0) {
  (function (a, b) {
    y(function () {
      return a * b;
    });
  })(a, b);
}

There is a lot of work and special cases in this feature... It makes me wonder: can't you reuse babel code? Babel transformers use the de-facto standard AST that was created by Mozilla. I don't know which one TypeScript uses...

@jods TypeScript does not use Mozilla's syntax tree model.  It uses one more suitable for use in the IDE scenarios that TS cares a lot about.  The AST we use is deisgned to work extremely well in the presence of broken code (the normal case in an IDE).  It is also designed to support extremely fast incremental updates.  Allowing edits to be incorporated orders of magnitude faster than normal parsing. Finally, it is designed to have a very small memory footprint, eschewing large values for ints, and storing redundant data on the prototype instead of on the instance.

@CyrusNajmabadi To be honest, I was expecting that!
Well, maybe you can take inspiration from the babeljs logic anyway, or even just their test cases.
I was looking at those (their tests) and they support lots of other nasty cases that haven't been mentionned in this thread yet.
E.g. goto labels
var stack = [];

loop1:
for (let j = 0; j < 10; j++) {
  loop2:
  for (let i = 0; i < 10; i++) {
    for (let x = 0; x < 10; x++) {
      stack.push(() => [j, i, x]);
      if (stack.length > 5) continue loop2;
      stack.push(() => [j, i , x]);
    }
  }
}

Or return statements
(function () {
  for (let i in nums) {
    fns.push(function () { return i; });
    return;
  }
})();

@Alxandr Allowing "let" to always define a self calling function hurts performance too much. See your sample here: http://jsperf.com/let-by-function-in-loop

@jlennox Yes. But let shouldn't always create IIFEs. It just has to do that in special cases. And mostly special cases that (at least in my case) aren't used. I never said it should always create IIFEs. Also, the two pieces of code you created in that jsperf result in vastly different results, so compering them is generally meaningless, as it's completely different code.

There's also the option for the compiler to just error out or warn if it fears performance will suffer. Just like jslint's "don't create functions in loops" - it's generally not something you should do when you care about performance.
It'd be great if we had this in ts1.5! let and const are among the biggest es wins, it'd be kinda amazing if we could finally start using them.

@hdachev jshint actually tells you to create IIFEs though ^^
http://jshint.com/docs/options/#loopfunc
It's not about perf, it's about the fact that the variables aren't bound to the value, but the function scoped variable, so you get unexpected behavior. let and const fixes this.

Ha! Dunno why I never thought about that, it's kinda obvious.
In any case, my point was that the compiler could output a warning when it has performance concerns about the code it's emitting (not saying I think the occasional IIFE in a loop can realistically become a bottleneck in anyone's application). Much better than not having es5 emit at all.

Assuming that IIFE are only emitted when really required, which is inside loop closures. Forget perf for a second: what would you replace them with anyway?
for (let i in [0,1,2])
  y(() => i);

Assume you need to create a piece of code that performs exactly what the piece of code above does. What will you do in ES5? In those cases I use a IIFE anyway, do you have a better solution?
If you have no better solution, then perf doesn't matter at all. IIFE is what will be used to achieve this functionnality in a ES5 browser. Transpiled or coded by hand (I prefer transpiled).

@jods4 "If you have no better solution, then perf doesn't matter at all"  The goal with downlevel emit isn't to support 100% of all use cases people may want to use ES6 for.  We want to hit a sweet spot where we support the majority of use cases that people care about most of the time, while also not introducing a large amount of complexity into our compiler.
For example, if doing this helped out a handful of customers, in scenarios where they could just workaround the issue themselves, but it added 50k lines of code, then it probably would not be worth it.
Now, if it turns out this is a really popular feature that many customers are requesting, then that will change our evaluation of how worthwhile it is to do.

@alxandr You'll note that TS handles this case as well.  The current TS compiler will produce:
for (var i = 0; i < 10; i++) {
    console.log("1: " + i);
    for (var _i = 0; _i < 10; _i++) {
        console.log("2: " + _i);
    }
}

@CyrusNajmabadi I don't see this problem as a "ES6 feature". I think of it as a coding requirement.
Sometimes you have to create a lambda for each element of a loop iteration (maybe an array). And I don't know any better way to achieve that in ES5 than using an IIFE in a loop. That's what I've always done, even before ES6 was "available".
But this practice is ugly, not as performant as it could be and may unwillingly capture huge amounts of memory.
ES6 finally brings a perfect fix to this issue, by introducing a way to scope a variable to the loop body. That's a huge win for anyone who has to write such code.
Now I understand your argument about complexity. We can always do TS -> Babel -> ES5 anyway.

@Alxandr You must of misunderstood the purpose of the test. The top case was to demonstrate the expected performance, the second to demonstrate what the actual compiled code performance would of been. They both result in arr == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].
The compiler may be able to work around using an inline function sometimes, and you could make it give a warning when there would be performance degradation, but this is an unsolvable problem.

I can not predict performance degradation. I would need to learn when and where the compiler would compile to an inline function and when it would not, and then, it would be a best guess and be dependent on compiler versions. I can not have indeterminate results.

It can not predict performance degradation. What if a function is called inside a loop, which returns an non function, that's execute by the loop, and now that anon function now contains a multitude of inline functions from the let compile?

And more importantly, I would never expect over 80% performance loss to result in just a warning, or to even be possible. This is broken mode by default. 80% is a very very large number.

It's possible to get a huge increase in performance by using a temporary function declared after the loop, like this:
for (var i = 0; i < 100; i++) _a(i);
function _a(i) {
     // for body
}

See http://jsperf.com/downlevel-let-in-loop

@jlennox yeah, with the suggestion of @ivogabe you're down to a 33% perf reduction (http://jsperf.com/let-by-function-in-loop/2).
Also, the thing to note though, is that the only other way to achieve the same result, is by writing that code by hand. Which would in turn make perf worse when we get to a point where browsers understand it, because then you'd have hand-written code that calls functions instead of simply looping.

This is now checked in.


[pkgconf] Build error on x64-windows

Package<EMAIL_ADDRESS>Host Environment

Host: x64-windows
Compiler: MSVC 19.40.33808.0
vcpkg-tool version: 2024-03-14-7d353e869753e5609a1f1a057df3db8fd356e49d
vcpkg-readonly: true
vcpkg-scripts version: 7f9f0e44db287e8e67c0e888141bfa200ab45121

To Reproduce
vcpkg install
Failure logs
-- Using cached pkgconf-pkgconf-pkgconf-2.1.0.tar.gz.
-- Extracting source C:/Users/marco/AppData/Local/vcpkg/downloads/pkgconf-pkgconf-pkgconf-2.1.0.tar.gz
-- Using source at D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/vcpkg/blds/pkgconf/src/conf-2.1.0-7b1cf1fe7f.clean
-- Found external ninja('1.11.0').
-- Getting CMake variables for x64-windows
-- Configuring x64-windows-dbg
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: C:/Users/marco/AppData/Local/vcpkg/downloads/tools/python/python-3.11.8-x64/python.exe -I "D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/x64-windows/tools/meson/meson.py" -Dtests=disabled --backend ninja --wrap-mode nodownload -Dbuildtype=plain -Doptimization=plain --libdir lib --native "D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/vcpkg/blds/pkgconf/meson-x64-windows-dbg.log" -Ddebug=true --prefix "D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/vcpkg/pkgs/pkgconf_x64-windows/debug" --includedir ../include "-Dcmake_prefix_path=['D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/x64-windows/debug','D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/x64-windows','D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/x64-windows/share']" "D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/vcpkg/blds/pkgconf/src/conf-2.1.0-7b1cf1fe7f.clean"
    Working Directory: D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/vcpkg/blds/pkgconf/x64-windows-dbg
    Error code: 1
    See logs for more information:
      D:\Repositorios GitHub\baiak-yurots\build\windows-release\vcpkg_installed\vcpkg\blds\pkgconf\config-x64-windows-dbg-meson-log.txt.log
      D:\Repositorios GitHub\baiak-yurots\build\windows-release\vcpkg_installed\vcpkg\blds\pkgconf\config-x64-windows-dbg-out.log

Call Stack (most recent call first):
  scripts/cmake/vcpkg_configure_meson.cmake:436 (vcpkg_execute_required_process)
  C:/Users/marco/AppData/Local/vcpkg/registries/git-trees/ea46d2e90c7d74f952d99b6640a88cb9bef6438f/portfile.cmake:9 (vcpkg_configure_meson)
  scripts/ports.cmake:175 (include)

D:\Repositorios GitHub\baiak-yurots\build\windows-release\vcpkg_installed\vcpkg\blds\pkgconf\config-x64-windows-dbg-out.log
WARNING: Recommend using either -Dbuildtype or -Doptimization + -Ddebug. Using both is redundant since they override each other. See: https://mesonbuild.com/Builtin-options.html#build-type-options
The Meson build system
Version: 0.62.1
Source dir: D:\Repositorios GitHub\baiak-yurots\build\windows-release\vcpkg_installed\vcpkg\blds\pkgconf\src\conf-2.1.0-7b1cf1fe7f.clean
Build dir: D:\Repositorios GitHub\baiak-yurots\build\windows-release\vcpkg_installed\vcpkg\blds\pkgconf\x64-windows-dbg
Build type: native build

..\src\conf-2.1.0-7b1cf1fe7f.clean\meson.build:1:0: ERROR: Value "plain" (of type "string") for combo option "Optimization level" is not one of the choices. Possible choices are (as string): "0", "g", "1", "2", "3", "s".

A full log can be found at D:\Repositorios GitHub\baiak-yurots\build\windows-release\vcpkg_installed\vcpkg\blds\pkgconf\x64-windows-dbg\meson-logs\meson-log.txt

D:\Repositorios GitHub\baiak-yurots\build\windows-release\vcpkg_installed\vcpkg\blds\pkgconf\config-x64-windows-dbg-meson-log.txt.log
Build started at 2024-05-23T12:59:04.306823
Main binary: C:\Users\marco\AppData\Local\vcpkg\downloads\tools\python\python-3.11.8-x64\python.exe
Build Options: -Dtests=disabled -Dbuildtype=plain -Doptimization=plain -Ddebug=true '-Dcmake_prefix_path=['"'"'D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/x64-windows/debug'"'"','"'"'D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/x64-windows'"'"','"'"'D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/x64-windows/share'"'"']' '-Dprefix=D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/vcpkg/pkgs/pkgconf_x64-windows/debug' -Dincludedir=../include -Dlibdir=lib -Dbackend=ninja -Dwrap_mode=nodownload '--native-file D:/Repositorios GitHub/baiak-yurots/build/windows-release/vcpkg_installed/vcpkg/blds/pkgconf/meson-x64-windows-dbg.log'
Python system: Windows
The Meson build system
Version: 0.62.1
Source dir: D:\Repositorios GitHub\baiak-yurots\build\windows-release\vcpkg_installed\vcpkg\blds\pkgconf\src\conf-2.1.0-7b1cf1fe7f.clean
Build dir: D:\Repositorios GitHub\baiak-yurots\build\windows-release\vcpkg_installed\vcpkg\blds\pkgconf\x64-windows-dbg
Build type: native build

..\src\conf-2.1.0-7b1cf1fe7f.clean\meson.build:1:0: ERROR: Value "plain" (of type "string") for combo option "Optimization level" is not one of the choices. Possible choices are (as string): "0", "g", "1", "2", "3", "s".

Additional context
vcpkg.json
{
  "name": "canary",
  "version-string": "1.0.0",
  "dependencies": [
    "abseil",
    "argon2",
    "asio",
    "bext-di",
    "bext-ut",
    "curl",
    "eventpp",
    "luajit",
    "magic-enum",
    "mio",
    "parallel-hashmap",
    "protobuf",
    "pugixml",
    "spdlog",
    "zlib",
    {
      "name": "libmariadb",
      "features": [
        "mariadbclient"
      ]
    },
    {
      "name": "gmp",
      "platform": "linux"
    },
    {
      "name": "mpir",
      "platform": "windows"
    }
  ],
  "builtin-baseline": "095ee06e7f60dceef7d713e3f8b1c2eb10d650d7"
}

#38901 Should fix your issue.

#38901 Should fix your issue.

Thanks, I'll wait for the merge and give you feedback!

#38901 Should fix your issue.

I don't think so.

Package<EMAIL_ADDRESS>
Outdated.

The Meson build system
Version: 0.62.1

Outdated.
Don't wait for future merges. Get today's versions.

Same error here with latest versions:
vcpkg package management program version 2024-04-23-d6945642ee5c3076addd1a42c331bbf4cfc97457
<EMAIL_ADDRESS>vcpkg-tool-meson 1.3.2#3
Python version 3.11.8
install.log
package-x64-windows-dbg-err.log
package-x64-windows-dbg-out.log

I haven't reproduced this issue locally.

Same error here with latest versions:

Not really the same error. The meson setup seems to have completed, but the build fails now.
  File "socket.py", line 51, in <module>

    ^
ImportError: DLL load failed while importing _socket: The specified module could not be found.

Hmm system installed python messing with internal python? Would not be the first time.
Or some external python with extensions disabled ?

Hmm system installed python messing with internal python? Would not be the first time. Or some external python with extensions disabled ?

No, I'm trying to compile the project https://github.com/opentibiabr/canary

hi , I have met this issue too.
package-x64-windows-dbg-err.log
package-x64-windows-dbg-out.log

https://english-for-chinese.blogspot.com/2008/06/and-meet-problem.html

the problem was related to visual studio's vcpkg, I needed to uninstall the individual component, then removed all the cache and it worked as it should.


Compute intersecting lanes for Waymo maps

When loading a Waymo map, we now compute a set of intersecting lanes for each lane in the map. This is to be used for identifying junctions and foes for traffic simulation.
We now cache TFRecord file data to speed up Waymo map loading for cases where multiple scenarios are being loaded consecutively from the same TFRecord file.

@sah-huawei Sorry, I reviewed this and forgot to actually hit the button.


Dockerfile.ubi: get rid of --link flags for COPY operations

not supported by openshift CI (buildah)
See https://github.com/containers/buildah/issues/4325

/ok-to-test


Enable MemberImportVisibility check on all targets

Enable MemberImportVisibility check on all targets. Use a standard string header and footer to bracket the new block for ease of updating in the future with scripts.

It appears this broke building with Swift 6.1 and 6.2 for linux and Android. It looks like choosing to import FoundationEssentials or Foundation in this pull was not the right approach, as replacingOccurrences(of:with:options:range:) is only available from the latter.

Interesting, seems like it must have moved?

See #185.


minor bug in parsing orca elapsed time

Fixed the bug. Added a test.

Nice!  Any clue what's going on with Amanda's charge-parsing bug?

Merging for now.  Please open a new pull request for additional features.