Interactive example

Goal
Provide an example showcasing pathfinding interactivity.
Something as simple as possible, 2D, working on wasm should be the objective.
Existing work
Below showcases a 3d interactivity, which code might be relevant: https://github.com/Vrixyz/meshquisse)
https://user-images.githubusercontent.com/2290685/190685401-84994a79-e825-40f2-ba54-2ac12737fa6f.mp4

done at https://vleue.github.io/bevy_pathmesh/


Full .Net prereq validation on Windows

Multiple things require Full .Net on Windows:

Run as service
TFVC
Tasks that consume REST SDK or Extended Client SDK

More context: I checked the code, it looks like 4.5 is what the client SDKs target (search ClientObjectModelTargetFrameworkVersion).

https://github.com/Microsoft/vsts-agent/pull/370


scheduleProgressEvent updates progress on upload after handling response

Mirage version: 0.4.2
In pretender.js, the handleResponse method includes a call to scheduleProgressEvent that gets made if there is a non-zero timing delay on a route handler.  scheduleProgressEvent in turn updates progress on request.upload which has the unfortunate side effect of indicating to the client that data continues upload to the (faked) server even after the route handler has executed.  This causes particular problems when the faked route is a file-upload handler and progress monitoring is being performed on the upload in the client code.
function scheduleProgressEvent(request, startTime, totalTime) {
  setTimeout(function() {
    if (!request.aborted && !request.status) {
      var ellapsedTime = new Date().getTime() - startTime.getTime();

// === Calls a progress update on the upload side ===
      request.upload._progress(true, ellapsedTime, totalTime);

      request._progress(true, ellapsedTime, totalTime);
      scheduleProgressEvent(request, startTime, totalTime);
    }
  }, 50);
}

More info on the "particular problems": because scheduleProgressEvent uses the elapsed amount of time of the delay to report progress, client code suddenly sees the size of every file change from the file size to the number of milliseconds of delay on the progress event total property.
So in the situation where the route delay is 400ms, an uploaded file goes from, say, 65365 bytes out of 65365 (i.e. 100%) to 80 bytes out of 400, then 150, etc., until finally landing at 400/400, which results in the client progress (if numbers are displayed) on each file showing 400/400 bytes uploaded.
Across all files, overall progress cannot be calculated on the client side as the sum of all uploaded progress divided by the sum of all file sizes results in a skewed number (usually 0% since most files are >> 400 bytes).

Sorry for never responding to this!
I'm not really sure if this is a question or a bug report. Let me know if you're still having an issue.

Hi @samselikoff , it was a bug report - do you require more information?  I don't know if this has now been resolved.  Basically progress was being reported to the client after the handler had already processed the upload.

And the numbers being reported were numbers of milliseconds, not bytes - in the example above, a file of x bytes being uploaded to a handler with a timing delay of 400ms would receive progress values leading up to 400, not to x.  I think the proper execution would return numbers escalating to x over the course of 400ms, not numbers escalating to 400 over the course of 400ms.

So technically, it's a bug-report two-fer (do you have a label for that :) ).

I've read the original two comments several times and I don't understand them – is this a Pretender bug? scheduleProgressReport is not our function

Reproduction with desired / actual behavior always helps

Fair enough - I posted it during a rushed time so never had time to do up a proper sample.  Might be best to close it - I'm sure this will come up again and/or may have been solved on pretender itself.

No worries - happy to help but I'm just not familiar with this internal part of pretender! If it's affecting your Mirage usage I'm happy to move it forward but let's do it over in pretender. Just ping me there if it comes up again 🤙

👌


Stop autoscroll while selecting text.

Stop the autoscroll while text of the chat is selected. To prevent that people copy too much/the wrong thing like the timestamp and the username. Even tho it's a meme, but it can also be annoying.
so people only copy and paste what they want to.
So we get this:

dead meme nymnOkay

instead of

dead meme nymnOkay
13:29 pajlada:

**For meme value you can do it settable over a checkbox so the plebs still do it

The chat already gets paused when you select text in chatterino 2


Could Button variant use color defined in theme token?

The variant color of button is not from theme not allowed to use custom color.  Primary variant can use blue only.
How about use theme token to setup variant style by extending the color style? If that's reasonable for you, i can make a proposal.

Or like radio/check box use variantColor? it's simpler

Hi @JIM-CHEN
We're planning to introduce a new method for color customization and will be discontinuing the use of the variantColor prop as it creates an unnecessary dependency on theme tokens.
As a workaround, I recommend using the styled function to override existing styles, as shown in the example below:
import styled from '@emotion/styled'
import { Button } from '@tonic-ui/react';

const CustomButton = styled(Button)`
  &:hover {
    // pseudo styles
  }
  &:active {
    // pseudo styles
  }
  &:focus {
    // pseudo styles
  }
`;

export default CustomButton;

Reference: https://emotion.sh/docs/styled


[1.x] Remove unused capture groups

With this Pull Request some of the capture groups that are not needed will be turned into non-capture groups.
From my research, I can't see any major performance difference in the two methods, but I guess it can't hurt to add this.
FYI: I tested this with the existing test in this repository but not in any real word projects or scenarios

I can't understand what is the benefits of this changes?

In Regex, anything in brackets "()" is considered a capture group. This means that you can later reference the matched text using a backrefence like "<1>".  By using?: you can specify that the group should only be used as a group and not capture the match.
Source: https://www.regular-expressions.info/refcapture.html
According to some threads, there is a slight performance difference in the usage (which would make sense to me as well):
https://stackoverflow.com/questions/33243292/capturing-group-vs-non-capturing-group
In theory, this should simply improve Regex performance (although it is probably only noticeable in very extreme cases).

Is there any further way I can assist?
In some classes this was already added: https://github.com/milwad-dev/laravel-validate/blob/1.x/src/Rules/ValidCamelCase.php#L18
In some it can't be added, as it needs to be a capture group: https://github.com/milwad-dev/laravel-validate/blob/1.x/src/Rules/ValidHtmlTag.php#L18
And in some cases, the regex was quite complex so I didn't want to make it even more complex: https://github.com/milwad-dev/laravel-validate/blob/1.x/src/Rules/ValidIpAddressIPV6.php#L18

Thanks!


Added index for package dependencies table

Implemented an up and down for creating indexes and removing indexes in the package dependencies table

Progress on https://github.com/NuGet/Engineering/issues/3220

After this is merged, please talk to the current on-call person to make sure this gets deployed. We will need to add this to the current deployment tracking issue.


[Question]: RuntimeError: indices should be either on cpu or on the same device as the indexed tensor (cuda:1)

Describe the issue
The bug is produced when running in multi gpus, since I only can test benchmark_e2e.py with --context_window 512000. Then, I used dual card for Qwen2-7B for context 1M and this error is produced. How to fix?

Fixed in #30, please try to use pip install minference -U.


add metadata property to devices

This makes the update json object available, providing access to firmware state information.

I corrected the commit message since it's a property that was added and not a get_*() function.


Add Ruckig jerk-limited smoothing to the joint trajectory controller

Optionally smooth one outgoing command at a time.
Depends on the joint_limits PR in the ros2_control repo:  https://github.com/ros-controls/ros2_control/pull/462
To use this optional feature, you just need to add a parameter to the yaml file for the controller, e.g. ros2_controllers.yaml:
panda_arm_controller:
  ros__parameters:
    command_interfaces:
      - position
    state_interfaces:
      - position
      - velocity
    joints:
      - panda_joint1
...
      - panda_joint7

    ruckig_jerk_smoothing: true

TODO:

[x] Make this optional
[ ] Read velocity/accel/jerk limits, likely from joint_limits.yaml  (I'm aware of https://github.com/ros-controls/ros2_control/pull/462)

This work is sponsored by RE2 Robotics.

Closing this - I'm going to try another approach, which is to completely replace the quintic spline interpolation.

Closing this for now because deciding when to reset Ruckig is not trivial.
For example, should it reset after every new trajectory message? That won't work if commands are being streamed to the robot, as in teleoperation.

Ruckig works rather well as a joint_group_(position|velocity)_controller.


Twinny Extension won't load.    Lancedb module missing

Describe the bug
Started just tonight.   The Twinny extension won't finish loading.    I get a "progress" bar just below the icon toolbar and nothing else in the chat dialog for Twinny.   There's also a clock badge on the twinny icon in the left nav..   trying to execute any Twinny commands from the command palette returns a command not found.

I also tried to disable/reenable.   tried uninstall/reinstall.     everything just lands me with no Twinny extension loaded
To Reproduce
load VSCode..
Expected behavior
Usable Twinny UI
Screenshots

Logging
didn't know about the logging.  will enable and try to find the logs
API Provider
Ollama
Chat or Auto Complete?
Extension itself.
Model Name
Provide the model name you are using e.g codellama:7b-code or codellama:7b-instruct
Desktop (please complete the following information):

Osx 15.1
Chrome
VSCode 1.95.1
Twinny v3.17.31

Additional context
Add any other context about the problem here.

Looks like I'm missing a module.
2024-10-31 21:39:33.998 [error] Error: Cannot find module '@lancedb/lancedb-darwin-arm64'
Require stack:

/Users/gpinkham/.vscode/extensions/rjmacarthy.twinny-3.17.31-darwin-arm64/out/index.js
/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1232:15)
at Function.n._resolveFilename (node:electron/js2c/utility_init:2:16068)
at Function.t._resolveFilename (file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:166:22715)
at Module._load (node:internal/modules/cjs/loader:1058:27)
at Function.c._load (node:electron/js2c/node_init:2:16955)
at Function.e._load (file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:174:10879)
at Function.t._load (file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:166:22433)
at Function.i._load (file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:158:4651)
at Module.require (node:internal/modules/cjs/loader:1318:19)
at require (node:internal/modules/helpers:179:18)
at<EMAIL_ADDRESS>(/Users/gpinkham/.vscode/extensions/rjmacarthy.twinny-3.17.31-darwin-arm64/out/index.js:19695:33)
at __require (/Users/gpinkham/.vscode/extensions/rjmacarthy.twinny-3.17.31-darwin-arm64/out/index.js:12:50)
at<EMAIL_ADDRESS>(/Users/gpinkham/.vscode/extensions/rjmacarthy.twinny-3.17.31-darwin-arm64/out/index.js:34707:23)
at __require (/Users/gpinkham/.vscode/extensions/rjmacarthy.twinny-3.17.31-darwin-arm64/out/index.js:12:50)
at Object. (/Users/gpinkham/.vscode/extensions/rjmacarthy.twinny-3.17.31-darwin-arm64/out/index.js:71440:23)
at Module._compile (node:internal/modules/cjs/loader:1484:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1564:10)
at Module.load (node:internal/modules/cjs/loader:1295:32)
at Module._load (node:internal/modules/cjs/loader:1111:12)
at Function.c._load (node:electron/js2c/node_init:2:16955)
at Function.e._load (file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:174:10879)
at Function.t._load (file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:166:22433)
at Function.i.load (file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:158:4651)
at Module.require (node:internal/modules/cjs/loader:1318:19)
at require (node:internal/modules/helpers:179:18)
at z.xb (file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:166:23753)

I think this is a dupe of https://github.com/twinnydotdev/twinny/issues/364
I'll leave this here for now since I have the logs in this ticket      But feel free to close as dupe.

Thanks for reporting, let's close this as it's a duplicate of https://github.com/twinnydotdev/twinny/issues/364.
Many thanks!


Congratulations before rpms are built

It seems the congratulations comment is sometimes added before the copr build is completed. Happened just now in https://github.com/psss/tmt/pull/55. Fedora 31 build is still pending in copr but the comment has been already added. Also testing status says:
packit/testing-farm-fedora-31-x86_64 Pending — Tests are running ...

But there are no rpms to test with...

Attaching a screenshot showing the status:

related to #279
(as we discussed in the PR ^, the p-s code we're talking about here will receive a ton of changes (read, bugs) in coming days so the hope is that this would fix itself)
also I recall we discussed within the team, that we would have a mechanism in p-s which would babysit all the worker tasks and if things go bad (this case - the status is not updated after a certain period of time), the babysitter would act upon

So this is now deployed, closing.
Feel free to reopen if you run into it again or find anything suspicious.


Example Syntax Not Working

Using Asp Net Core 2.2 with NickStrupat.EntityFrameworkCore.Triggers.AspNetCore 1.0.2
I'm trying to follow the examples on the github main page, but they are not working for me.
I have a DbContext derived from DbContextWithTriggers.
services.AddTriggers(); is called in Startup.ConfigureServices.
If I have the following in the Configure method nothing happens:
            app.UseTriggers(builder =>
            {
                builder.Triggers().Inserted.Add(  entry => logger.LogWarning("Please Log")  );
            });

This almost exactly matches the documentation but does not work.
The follow does however work:
            app.UseTriggers(builder =>
            {
                Triggers<EventNote>.Inserted += e => logger.LogWarning("I work");
                Triggers.Inserted += e => logger.LogWarning("me too");
            });

What am I missing?  What I am really looking for is to use the dependency injection syntax to pass the modified entry to a service.  Something like this for a single entity:
            app.UseTriggers(builder =>
            {
                builder.Triggers<EventNote, EntityContext>().Inserted.Add<TransactionLog>(entry =>
                {
                    entry.Service.LogEventNote(entry.Entity as EventNote );
                });
            });

Or preferably this for all entities:
            app.UseTriggers(builder =>
            {
                builder.Triggers().Inserted.Add<TransactionLog>(entry =>
                {
                    entry.Service.LogEntity(entry.Entity);
                });
            });

Also, are async triggers supported?  Something like:
            app.UseTriggers(builder =>
            {
                builder.Triggers().Inserted.Add<TransactionLog>(async entry =>
                {
                    await entry.Service.LogEntity(entry.Entity);
                });
            });

By "not working", do you mean that the web app runs without errors, but the trigger handlers don't execute?

Yes.  Application runs fine, triggers are just not executed.  It doesn't appear that any exceptions are occurring or errors are getting logged.

Ok. If you clone this repo and then run test/EntityFrameworkCore.Triggers.AspNetCore.Test, do the trigger handlers run?
In case you haven't used Debug.WriteLine in ASP.NET, the messages go to the Output window.

That project doesn't build.  Only that one, the other 12 build fine.
Error messages include:
NETSDK1045	The current .NET SDK does not support targeting .NET Standard 2.1.  Either target .NET Standard 2.0 or lower, or use a version of the .NET SDK that supports .NET Standard 2.1.
and
CS8107	Feature 'default literal' is not available in C# 7.0. Please use language version 7.1 or greater.	EntityFramework.Triggers(netstandard2.1)

Ah yes. The latest version of this project requires .NET Core 3.0 (.NET Standard 2.1).

I'm locked at Core 2.2 at the moment and don't have a Core 3.0 build environment setup.

Hm... this actually doesn't make sense. I think one of these project dependencies is wrong. My EntityFrameworkCore.Triggers package should have a .NET Standard 2.0 dependency along with .NET Standard 2.1 and .NET Framework 4.6.1.

Could you try again with the latest packages? I believe I've fixed the issue.


Fix histogram_stddev and histogram_stdvar for negative values and infinities

The current behaviour of histogram_stddev and histogram_stdvar has 2 problems:

They don't handle buckets with negative values for both upper and lower bounds properly.
They don't handle empty buckets with an infinite bound properly.

For problem 1, the first commit adds unit tests addressing the issue with the values that make it pass. The second commit fixes this problem and updates the expected values in the unit tests to the new values to make it pass, and we can see the new standard variances for the histogram are much closer to the actual population standard variances for the raw numbers as stated in the comments.
As for problem 2, it's not really an issue with the current exponential histograms as we don't have such buckets. But with custom buckets such an issue will easily crop up, so we need this fix in the third commit, and we can see that there is no need to update any tests as they all still pass, meaning the behaviour for exponential histograms should still be the same. (Note that with the new custom buckets, if there are any counts in a bucket with infinite bounds, we won't be able to get a meaningful result, so those who want to use these functions must ensure they define enough custom bounds to cover all observations, e.g. if there are no negative observations they need to start with the 0 bound so the first bucket with counts will have a lower bound of 0 instead of negative infinity, and they need to define their expected max value as the last custom bound so they won't need to use the last bucket with an upper bound of infinity.)

@beorn7 since you reviewed the earlier https://github.com/prometheus/prometheus/pull/12614

Thanks, will have a look ASAP.
Note that exponential histograms can also have buckets with ±Inf as boundaries https://github.com/prometheus/client_golang/blob/7882668df7bf42d7a192ce77086eb20b5b0be27e/prometheus/histogram.go#L1484-L1513 provides a bit of background reading about it.

Oh I see, thanks for the info!

LGTM, thank you!

I didn't want to destroy your nice commit structure, but I also failed to push the rebased commits to your branch. So I created https://github.com/prometheus/prometheus/pull/13852 with those commits.


Feature request : Update Messages for bigger backups

I have a larger world so the backup took 8 minutes and I had no idea if the backup was still running or if it somehow bugged out.
A solution for this could be some sort of progress messages that we could enable in the configs, to show that the backup isn't stuck. That message would be send every 30 seconds or every minute so that we would know that it's working as intended
A progress bar (as bossbar in game) for admins to see that the backup is running could be a nice alternative.
I know this would only really be required for big worlds, since a newly created world instantly backups, but I have just preloaded the world with chunky on a 10000 blocks radius circle to not experience lag while players travel and the world files are rather big so it takes a lot of time to backup.

I'll have console progress updates, I'll likely aim for that at the same time as a 1.21 release (will of course be backported to all versions the mod supports)
Admins should already get a toast to show backup progress, provided they a) have the mod and b) are opped. (on 1.7.10 this toast is replaced with some text in the top left corner, with the same prerequesites)

In 1.21:

Console logging for backup progress will be added
Clients will now a bottleneck, rather than sending every time a file is backed up (which could get bad for networking in large worlds)
Frequencies for both of the above can be customised
You will be able to disable sending to clients outright, or send to all players rather than just ops (ops will be the default still)

Version 3.6 adds four new config options:

Config
Description
Default Value

config.advancedbackups.logging.clients
Which clients to send backup progress info to.
ops

config.advancedbackups.logging.clientfrequency
How often to send backup progress info to clients, in milliseconds.
500

config.advancedbackups.logging.console
Whether to log backup progress info to console. Start and end are always logged.
true

config.advancedbackups.logging.consolefrequency
How often to log backup progress info to console, in milliseconds.
5000

These can be achieve all of what you've asked for.

And just for completeness, I've attached a screenshot of my (client) log with the console frequency set to 750ms. Note that this is a relatively small backup, but will work as expected for all backups.

This is perfect, couldn't ask for anything better, thank you so much

https://github.com/MommyHeather/AdvancedBackups/actions/runs/9570305561
A release candidate build of 3.6 is available here, and will be on curseforge/modrinth once I've got 1.21 and a plugin build working.
Feel free to let me know if you have any issues!

I'm testing it right now, I'll send screenshots once it's done. It works well for now on 1.20.4. Oh and thanks for pointing out that we have a toast if the mod is installed on the client, that's gonna be useful as well. But I saw that the toast only checks if I am op, I'm using luckperms on fabric and there doesn't seem to be a permission for that. Is that by design or just something you didn't think of?

It's too difficult to integrate with, at least on the modded front, but the upcoming plugin may see some releases. Most modded servers have no concept of a proper permissions system, and those that do are inconsistent and unstable - so there's no reliable api for me to interact with.
There is of course now the all mode for client toasts, but I do understand why that often just isn't what a user wants.

Luckperms is active on all modloaders and as a plugin, so might want to look into that, I'm pretty sure it uses the same api on all loaders, but don't quote me on that
Also:

I didn't change the settings after updating from the old version, I'll just tweak it so that it doesn't flood my console but it works great, thank you!

Excellent to hear!
As for Luckperms, I am aware that it is supported on most modloaders, but that doesn't really affect most of what I say ultimately - it's far from the only modded option, and it looks like it'll be too much work to fully support sadly. It's always been something sat at the back of my mind, just low priority.

Alright, no problem, thx a lot for this feature, with it being logged in the console I don't really need to see it in game anyways. Setting it to log every minute with such a big world seems like the way to go so I'll use that. Settings are read correctly as I tested setting the logging to 5 minutes and it does work indeed. So overall really happy with this

And changing the logging interval mid backup and using /backup reload-config does change the logging interval correctly.


(Question) How to update deployed site/blog

I've been playing with ghost and found this repo awesome for getting ghost running on my azure.
I have now tweaked some of my css and want to  upload these amendments to azure.  However the deploy button tries to create a new site, if I specify my current site it errors that the site already exists.
Thanks Ash.

The deployment button is mainly to get started quickly.
You have to configure the web app to sync with your own repo. It's in your Azure Web App > Deployment center.


PyPI README example gif not visible

In the PyPI README, the example gif is not visible like in the GitHub readme. This will be fixed in the next release.

Already done


SVM using predict_proba gives wrong classification when number of samples per class is 1.

Hi @bamos ,
Context of the issue:
I tested openface using 1 sample per class and used the linear kernel SVM and get misclassifications.
Current Behaviour:
For example
Labels: A,B
Feature:[1,2,3],[7,20,30]
Prediction:B,A [using svm.predict_proba() logic]
Expected Behaviour:
Prediction:A,B [using svm.predict() logic]
Reason and how to duplicate:
This is because I get  classification probabilities from predict_proba which are inconsistent with the svm.predict() function .
On duplicating the sample per class, I get the right probabilities from predict_proba.
On further investigation, I found that this is a problem with sklearn's SVM predict_proba.
Please go through this  link.
The reason for this is in link
I have modified the code of the classifier.py to get the correct classification with 1 sample per class and its working on 1 sample per class which was not working earlier.
I can send a PR if you want.

@jaskaran1 do you think this https://github.com/cmusatyalab/openface/issues/234#issuecomment-294525287 is telated some way?

@RodrigoPetter
Yes. It is the exact same problem I faced.

Hi @jaskaran1 would you mind adding a PR or fork containing your fix pls? I'd like to see how you were able to get this working with one sample per class.


Add AnUitor link

Thank you for your contribution. But you need to add it maintaining the default sort order of the category i.e. alphabetical sort order. Please make the required changes and let me know.

@aritraroy done...

I have tried it. It doesn't seem to be mature enough. We are only adding mature and well-tested resources here. Please re-raise a PR later when the library gets more mature and tested.

@aritraroy can you be more specific ?

I am only including tools and libraries which have been battle-tested by several developers for a long time. Your tool is good, but it needs to be tried, tested and used by a lot of developers to make it to this list. Hope you will understand.


How to read and send recyclable memory stream parallel to multiple destinations

Hi,
I'm working in a document processing app, where we need to pass large documents (20MB). I read the document as a stream and populate it to recyclable memory stream and feed it to Aspose Word library. The library after processing the document returns another stream which I also can copy to recyclable stream. Now I need to send the output document stream to multiple destinations like email, database etc. How can I deliver the stream to multiple places in parallel? Do I need to clone it? Does cloning cause more memory issues?

Cloning the stream would likely annul the benefits of using this library. The point of RMS is to avoid allocating new bytes, and then ideally copying those bytes everywhere.
Other specifics would really depend on the libraries and application your using in. If they can take read-only spans, buffers with length, streams, or other equivalent interfaces to memory, then theoretically there's no limit to how many places you can use these bytes--as long as the access is read-only.


Retire old theme

I haven't been making changes to both consistently since @Esrin decided to kill it, so we should go ahead and remove it. this time around.

Done, will be released in 1.809.


Unify the format of container ID

This PR makes the container ID in kubecontainer.Container in the form of runtime://rawID, same as api.ContainerStatus.ContainerID. This is useful for further clean up docker codes in kubelet, e.g. Enable us to add a wrapper for cadvisor to check different types of containers according to the prefix.
Also types are changed from string to types.UID, tests are updated too.
This PR depends on https://github.com/GoogleCloudPlatform/kubernetes/pull/6169
Will remove the first 3 commits after that one is shipped.
Thanks!
@vmarmol @dchen1107 @yujuhong

@yifan-gu do we close this since we closed #6169?

Yes


Update app.py to download and place chromedriver

Ran into issues with ChromeDriver being in the proper PATH and this appears to pull the latest version and place it where it needs to be in order for python app.py to start up without throwing an error.

@Stoner19 Did you get it running?


test(minifier): fix minimize condition tests

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#7222  👈
#7178 : 1 other dependent PR (#7179 )
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @7086cmd and the rest of your teammates on  Graphite

Merge activity

Nov 11, 3:36 AM EST: The merge label '0-merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


feat: Update Vendor

这个 PR 实现什么功能/修复什么问题:
是否需要 backport 到之前的 release 分支:

release/3.0
release/3.1

Codecov Report

Merging #5464 into master will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #5464      +/-   ##
==========================================
- Coverage    6.94%    6.93%   -0.02%
==========================================
  Files         606      606
  Lines      102160   102160
==========================================
- Hits         7093     7082      -11
- Misses      94496    94508      +12
+ Partials      571      570       -1

Flag
Coverage Δ

#aFlag
6.93% <ø> (-0.02%)
:arrow_down:

Impacted Files
Coverage Δ

pkg/cloudcommon/cronman/cronman.go
49.51% <0%> (-5.34%)
:arrow_down:

Continue to review full report at Codecov.

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


Fix deadlock between HttpPageBufferClient and ExchangeClient

By design, HttpPageBufferClient must not delegate to clientCallback when  it's holding a lock to this. And checkNotHoldsLock is used to enforce this  requirement and help reason about this invariant locally.
checkNotHoldsLock is missing in handleFailure. And PagesResponse onSuccess  callback delegates to handleFailure while holding the lock to this.
As a result, handleFailure delegates to ExchangeClient.clientFailed, which  tries to acquires a lock on the parent ExchangeClient while still holding a  lock to HttpPageBufferClient.
This creates a deadlock because both ExchangeClient.getStatus and  HttpPageBufferClient.getStatus acquires a lock on their respective this.  And the former delegates to the latter.

looks good.


Javascript required to bypass certain Websites

Body
Because of security and privacy reasons, I disable javascript by default. I figured out that it's only possible to bypass websites like sub2unlock or linkvertise by giving them the permission to run javascript.I think it isn't on purpose but I don't know it.
Version
0.0.0
What browsers are you seeing the problem on?
Firefox
What OS are you seeing the problem on?
Linux
Anything else?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Link shorteners usually needs to run some background javascript code to get you to the final link. FastForward can take advantage of that and bypass websites. We can't really make websites to stop using javascript.


[KYUUBI #5556][AUTHZ] Support Alter table commands of set table properties

Why are the changes needed?
To close #5556.
Support Alter table commands of set table properties for Delta Lake in Authz.
https://docs.delta.io/latest/delta-batch.html#table-properties
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

Was this patch authored or co-authored using generative AI tooling?
No.

We're currently processing your upload.  This comment will be updated when the results are available.

Thanks, merged to master

Thanks. @yaooqinn


Missing "'React' is declared but its value is never read" error when using tsconfig.json jsx setting with react-jsx value

TypeScript Version:  4.2.0-dev.20201208

Search Terms:
React, JSX transform, noUnusedLocals, missing error.
Code
import React from "react";

function Bar() {
  return
;
}

export function Foo() {
  return <Bar />;
}

Expected behavior:
index.tsx:1:1 - error TS6133: 'React' is declared but its value is never read.

Actual behavior:
No error.
Additional info:
The compiler throws error correctly if JSX does not use custom components. For example:
import React from "react";

export function Foo() {
  return
;
}

Playground Link: N/A (Playground doesn't support "jsx": "react-jsx" tsconfig.json setting.
Related Issues: N/A
Minimal reproducible example: https://github.com/vkrol/typescript-missing-nounusedlocals-error-for-react-with-new-jsx-transform

Having the same problem in version 4.1.3.
error TS6133: 'React' is declared but its value is never read.

import React from "react"

export const TestComp = () => {
  return (

test

  )
}

In React 17 you no longer need to import react when writing JSX

In React 17 you no longer need to import react when writing JSX

In React 17 you no longer need to import react when writing JSX

If I remove it. another error will occur.
'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.ts(2686)

In React 17 you no longer need to import react when writing JSX

If I remove it. another error will occur.
'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.ts(2686)

You only don't need to import it for the tag factory; if you actually use it for other things (eg, types, base classes, hooks) you'll still need to explicitly import it, like anything else.

You only don't need to import it for the tag factory; if you actually use it for other things (eg, types, base classes, hooks) you'll still need to explicitly import it, like anything else.

For others that may stumble across this:
If you need to use react16 with react-scripts 4 and typescript 4.1+ you may need to enable this env variable:
DISABLE_NEW_JSX_TRANSFORM so that react-scripts doesn't keep overwriting the tsconfig with the incompatible value. More deets: https://create-react-app.dev/docs/advanced-configuration/

For others that may stumble across this:
If you need to use react16 with react-scripts 4 and typescript 4.1+ you may need to enable this env variable:
DISABLE_NEW_JSX_TRANSFORM so that react-scripts doesn't keep overwriting the tsconfig with the incompatible value. More deets: https://create-react-app.dev/docs/advanced-configuration/

In React 17 you no longer need to import react when writing JSX

If I remove it. another error will occur.
'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.ts(2686)

I'm still getting TS6133: 'React' is declared but its value is never read errors on TS 4.2.2, and if trying to remove the imports, getting the UMD global error as well.
The fix should have been merged by 4.2.0 https://github.com/microsoft/TypeScript/pull/41905#issuecomment-752204827.
Checking the git logs of v4.2.2, I can find the related commit 675cd4d7ce175dbd3875b7aaedacfc496435b816

In React 17 you no longer need to import react when writing JSX

We still use React 16. How can we get rid of this error?

Using React 17, if I take out the import I get this error instead: 'React' must be in scope when using JSX" So it doesn't seam optional.

Remove import React in React 17 cause this error:
ESLint: 'React' must be in scope when using JSX(react/react-in-jsx-scope)

@FOG5490 You need to disable this rule https://ru.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint.

For those of you that use setups that don't support the new JSX Transform, check your tsconfig.json. The jsx compiler option needs to be set to "react", not "react-jsx" as I had:
{
  "compilerOptions": {
    "jsx": "react",
  },
}

Here's the info on all the available settings for this option and what they mean: https://www.typescriptlang.org/docs/handbook/jsx.html

@FOG5490 You need to disable this rule https://ru.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint.

Thanks

For those of you that use setups that don't support the new JSX Transform, check your tsconfig.json. The jsx compiler option needs to be set to "react", not "react-jsx" as I had:
{
  "compilerOptions": {
    "jsx": "react",
  },
}

Here's the info on all the available settings for this option and what they mean: https://www.typescriptlang.org/docs/handbook/jsx.html

Thank you! That helped a lot!

In React 17 you no longer need to import react when writing JSX

If I remove it. another error will occur.
'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.ts(2686)

is it same for the v18?

@doylemark , I am on version 18 and I have this error, lol

@doylemark , I am on version 18 and I have this error, lol

Am also facing the same issue

eslint rule:


Add search endpoint

const url = ${biolink}/search/entity/${search};
const response = await request<_Results>(url, params);

One thing that will change for sure is putting the query string into a parameter rather than making it a part of the path


V2 folder removed

🗃 Github Issue Or Explanation for this PR. (What is it supposed to do and Why is needed)
No issue
✅ Checklist

[x] Github issue details are up to date for people to QA.
[x] I have tested all my changes.

🕵♂ Notes for Code Reviewer
Just moved to lib and removed v2 folder.
👯♀ Paired with
"nobody"

@gguijarro-c-chwy If you could check the renaming of these, I did not modify them because it can be so they are in the back-end.

@gguijarro-c-chwy BTW We already know the source code is a total of 24,882 lines, this PR would not be possible if you put the limit to the PR 😅

@gguijarro-c-chwy BTW We already know the source code is a total of 24,882 lines, this PR would not be possible if you put the limit to the PR 😅

Do a good review ;)

@gguijarro-c-chwy If you could check the renaming of these vars, I did not modify them because it can be so they are in the back-end.

Hey @RaulUrtecho these all concern the "v2" history API and need to stay as they are or the transactions calls will fail.
I mean no big deal if you missed any of them it will be pretty obvious since the wallet screen will break ;)
So leave the v2 API calls please ;)

v2 history is a EOSIO / Telos protocol, nothing to do with our folder names

@gguijarro-c-chwy BTW We already know the source code is a total of 24,882 lines, this PR would not be possible if you put the limit to the PR 😅

Please split it in 49 PRs ... so each can be < 500 lines
🤣
j/k

finally v2 folder is gone ...
:tears of joy:

@gguijarro-c-chwy If you could check the renaming of these vars, I did not modify them because it can be so they are in the back-end.

Hey @RaulUrtecho these all concern the "v2" history API and need to stay as they are or the transactions calls will fail.
I mean no big deal if you missed any of them it will be pretty obvious since the wallet screen will break ;)
So leave the v2 API calls please ;)

Yes that is exactly what I wanted to confirm and therefore do not change any of those variables.


Input iconRight bug

Bug report 🐞
Version & Environment
@zeit-ui/^1.5.0-rc.2
Expection
expecting icon to be inside of input when setting width, but it is not.
Actual results (or Errors)
default width;

width set to 200px;

Just looked to chrome, it works on there. don't works on firefox.

Thank you for your report, fixed in #214 .
Stable version(v1.4.4) and pre-release version(v1.5.0-rc.3) will be out later.


Audit Logs API support

Description
Does the client have access to Business APIs not available to Standard/Plus subscription plans?
Reproducible in:
N/A
The Slack SDK version
slackclient==2.5.0
slackeventsapi==2.1.0
Python runtime version
Python 3.6
OS info
ProductName:    Mac OS X
ProductVersion: 10.15.6
BuildVersion:   19G2021
Steps to reproduce:
N/A
Expected result:
N/A
Actual result:
N/A
Requirements (place an x in each of the [ ])
(For general questions/issues about Slack API platform or its server-side, could you submit questions at https://my.slack.com/help/requests/new instead. :bow:)

[x ] This is a question specific to this SDK project.
[x ] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x ] I've read and agree to the Code of Conduct.
[x ] I've searched for any related issues and avoided creating a duplicate issue here.

@senthilmk Thanks a lot for taking the time to write in here! As our Java SDK already supports Audit Logs API, we may be able to implement a client module for the API in the future (I cannot tell when to ship it though). https://slack.dev/java-slack-sdk/guides/audit-logs-api


Build system: cleaning Visual Studio solution does not erase .pdb, .ilk, .lib files

Godot version
master
System information
Windows 11, VS2022
Issue description
I use the following command to generate a Visual Studio 2022 solution.
scons vsproj=true dev_mode=true dev_build=true target=editor tests=true
All my compilation is done through VS2022. I semi-regularly clean out the solution and rebuild from scratch:

This process removes all the .obj files, but unfortunately does not remove the .pdb., .ilk, and .lib files. Particularly, this causes .pdb files to bloat. I've had them as large as 2.5gb.

By comparison, this is the same folder after manually deleting the files above and recompiling from scratch:

Arguably the files generated by having debug symbols should be cleaned out as well when cleaning/rebuilding solution. I'm sure this is platform and build-toolchain dependent, but each toolchain/platform combo can be addressed in separate PRs.
Steps to reproduce
See above.
Minimal reproduction project
N/A

Fixed by #85197.


mate.caja-extensions: init at 1.18.1

Motivation for this change
Add Caja Extensions, which is a set of extensions for Caja, the MATE file manager.
Also add cajWithExtensions, a wrapper to caja to give access to a list of extensions.
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Add engrampa (an archiver manager) too.


sort bug for number: 5.456623109086067e-13 in milvus 2.3.1

Describe the bug:

attu won't change data returned from milvus.
If you think the score is not reasonable, please file an issue on https://github.com/milvus-io/milvus


LIT-2841 - Remove ipfs-http-client and create encryption APIs for composition with any storage layer

Writing test now, but the code itself is ready for review.

Description
Overview
This PR removes a problematic dependency that also happened to be very large code and dependency-wise - ipfs-http-client.  We were using this in a single place in our SDK as part of a 'nice-to-have' function.  Unfortunately, the package has issues with bundling in multiple environments and brings a very large # of dependencies into our bundle that a lot of our users never actually needed.
The API for the method that used this dependency was also problematic; it was hard-coded to use Infura credentials and endpoints, and Infura has disabled the ability to create IPFS-enabled API keys since November of 2023.  Rather than re-work the API to allow arbitrary providers, authentication, etc, we decided that it would be more flexible for consumers, and better for the size of our bundles and compatibility in multiple environments, to remove the dependency and instead provide some functions that are un-opinionated about where the encrypted data is going or coming from.
Anyone who would like to encrypt to/from IPFS can simply call these new methods and then use the client of their choice to put the data in IPFS.
Even better, anyone who wants to encrypt/decrypt somewhere other than IPFS, but without compressing the data using our existing APIs that encrypt into ZIP files with metadata stored inside the ZIP archive can use these same methods to work with any other arbitrary data store they want to use.
Before this change, the only code that would wrap up the encrypted data with the metadata required to easily decrypt it later was the 'encryptToIpfs()' code which stored the encrypted data and metadata in the same JSON blob, always on IPFS, or encryptFileAndZipWithMetadata() code which stored the metadata as a separate file from the encrypted data in the ZIP archive and only worked with files (not bare strings).
Changes:

Removed encryptToIpfs() and decryptFromIpfs() methods in encryption, which were also exported from lit-node-client
Added encryptToJson() and decryptFromJson() in encryption, and export those methods from lit-node-client

These methods produce and consume JSON blobs in the same format as the previous encryptToIpfs() and decryptFromIpfs() methods produced and consumed.

Fixes:

Resolved an incorrectly applied polyfill for fetch, where we were mutating global fetch even if it was previously defined.

We now use cross-fetch to handle this polyfill, which is friendly to environments where it is already defined -- and was already part of our dependency tree due to other dependencies we already rely on.
Removed node-fetch direct dependency now that cross-fetch is being used to polyfill.

Removed ipfs-htttp-client dependency, which was causing bundling errors in mixed environments (NextJS)

Internal changes:

Removed build tooling hooks for post-build mutations that were we were not running and no longer used
Cleaned up some duplication in types touching access control conditions
Fixed a bunch of eslint/tslint errors in the files where changes were made

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

@joshLong145 I went ahead and made the connect() logging in the contracts SDK less spammy like we talked about -- the contents of abi were just arrays of numbers, so I create a map of contract name->address that looks like this:
resolved contract addresses for:  cayenne {
  StakingBalances: '0x095251de2aD2A78aDe96F2a11F7feAA7CF93e6B5',
  Staking: '0x5bFa704aF947b3b0f966e4248DED7bfa6edeF952',
  Multisender: '0xD4e3D27d21D6D6d596b6524610C486F8A9c70958',
  LITToken: '0x53695556f8a1a064EdFf91767f15652BbfaFaD04',
  PubkeyRouter: '0x4B5E97F2D811520e031A8F924e698B329ad83E29',
  PKPNFT: '0x58582b93d978F30b4c4E812A16a7b31C035A69f7',
  RateLimitNFT: '0x19593CbBC56Ddd339Fde26278A544a25166C2388',
  PKPHelper: '0xF02b6D6b0970DB3810963300a6Ad38D8429c4cdb',
  PKPPermissions: '0xD01c9C30f8F6fa443721629775e1CC7DD9c9e209',
  PKPNFTMetadata: '0xeD46dDcbFF662ad89b0987E0DFE2949901498Da6',
  Allowlist: '0xfc7Bebd150b36921549595A776D7723fBC4Bb2D9'
}


Vienna crash from incorrectly escaped URLs

As reported on the forums: https://forums.cocoaforge.com/viewtopic.php?f=18&t=26924
I've been able to reproduce with this example xml file when selecting the post titled: "The Giant Beastcast - Episode 86".
The issue appears to be https://github.com/ViennaRSS/vienna-rss/blob/master/src/StringExtensions.m#L717 and last night Vienna ended up using 48.5 GB of memory due to this issue 😱

Last chance for me to get this in v3.1.9 😁

Fixed in stable branch

Closed at version 3.1.12


Please add a license file and a readme

I'd like to add this to awesome-zsh-plugins, but I prefer to add plugins with a readme so that users can tell what features they provide.
Also, please add a license file, some people won't use any code that doesn't have an open source license. If you don't have one in mind, https://choosealicense.com is a good resource to help you select an appropriate one.
Thanks!

I am very excited to have my work on the Awesome ZSH list. I hope you will take a second look at the project. Thank you!


Make exotic sat management easier

It should be easier to deal with rare and exotic sats.
We should add a locked or special or whatever field to the config file, so that users can mark special UTXOs and sats as not to be used for any transaction.
Users should be able to:

Prevent a UTXO from being automatically selected
Prevent a sat from being automatically selected (if you have locked sats but the index doesn't have a sat index, complain and refuse to run, because we don't know where that sat is)
Prevent a range of sats from being automatically selected

We could also call this tracked, or something. Or maybe that should be a separate setting, for things you want to keep track of, but don't want to lock.

I think that should probably be done through labels in the Bitcoin Core wallet

I was thinking about it, and I think there might be some drawbacks to using labels:

ord wallet restore accepts a mnemonic or descriptor, which doesn't include any information about special sats. So if a user restores from a mnemonic, they'll lose information about special sats. Of course, a config wouldn't be restored along with the wallet, but at least the config file is user-created, user-managed data, so it's more obvious that they need to back up their config file if they want to keep tracking special sats.
Bitcoin core labels UTXOs, so if a user does a transaction in sparrow which transfers a special sat to another UTXO controlled by the wallet, the new UTXO won't be labeled, whereas if it's in a config file, the wallet will continue to track it.
A user might want to mark a sat as special before they've received it, so that when they do receive it, they don't accidentally transfer it. Since you can only label UTXOs that exist, they couldn't do this with bitcoin core wallet labels.
A user might want to track a range of sats, which exist in more than one UTXO in the wallet. They could label multiple UTXOs, but this would mean multiple labels, when what they're really interested in is a single range of sats, which could be covered by a single config file entry.

looking forward to support for locking specific sat numbers and pre-built lock lists for rare, exotic and historic sat numbers 😁

maybe instead adding a fee wallet arg? as sat management involves much 🤔

Thank you very much @raphjaph 😁 Looking forward to this! 🧡


Update sonar4fe.yml

What type of PR is this：

[ ] bug
[ ] feature
[x] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes # add soft link for thrift
Problem Summary(Required) ：

run starrocks_admit_test

run starrocks_admit_test

https://github.com/Mergifyio backport branch-2.3

https://github.com/Mergifyio backport branch-2.2

https://github.com/Mergifyio backport branch-2.1

https://github.com/Mergifyio backport branch-2.0


C++17 Fix

See issue https://github.com/openexr/openexr/issues/235
Forgive my mistakes if any. This is my first time trying making a pull request.

Much of this is basically repeated again in #243. (My bad for not scanning the existing PRs before doing that work.) As for this PR:

Basically looks good to me.

I think we should come up with a better strategy for 'clamp' -- if it's truly the same as Imath's clamp, then maybe Imath should detect C++17 and if found, just using alias to the standard one, and only define its own for earlier C++ releases.

It's unfortunate that this PR is a combination of of actual fixes and unrelated random whitespace changes. That makes reviews and merges a lot more troublesome.

Addressed by https://github.com/openexr/openexr/pull/280


#286 - removed MCrypt TripleDES calls from the SecurityUtils class and replaced with OpenSSL AES 265

Coverage increased (+0.02%) to 70.165% when pulling bb957c3aadedd2fe337e7ce6dc22e9b5e6ccc308 on feature/286-Remove-MCrypt-calls-from-Alpha into 85440cb0fe30adc0aff0e01b4e7d18723f94247f on develop.


IoT is missing support for public key infrastructure features

list_things, register_ca_certificate, register_certificate, describe_ca_certificate, list_certificates_by_ca, delete_ca_certificate, update_ca_certificate, get_registration_code
Without this APIs, it's hard to mock a service via moto when someone gets device certificate signed by their own certificate authority vs relying in AWS IoT default CA.
Implemented above APIs.
Resolving #2079

Coverage decreased (-0.3%) to 92.581% when pulling 0f3a26b5112e464a8e2778897139856590a541d3 on sahilkoladiya:iot_ca_support_7 into b4fcbd79d8bdd3bd834c83cbb1d8782ddd50760e on spulec:master.

Coverage decreased (-0.3%) to 92.581% when pulling 0f3a26b5112e464a8e2778897139856590a541d3 on sahilkoladiya:iot_ca_support_7 into b4fcbd79d8bdd3bd834c83cbb1d8782ddd50760e on spulec:master.


global_deny_target_service_details potentially missing consumer customizations

https://github.com/terraform-ibm-modules/terraform-ibm-cbr/blob/e6e1e54d7c12a6354a844c35f9ec7774bb527afa/modules/fscloud/main.tf#L288
var.target_service_details should likely be replaced with local.target_service_details which contains the merge / override from the consumer customizations.

PR merged hence closing the issue.

Available in release https://github.com/terraform-ibm-modules/terraform-ibm-cbr/releases/tag/v1.23.3.


Skip checking GitHub on non-GitHub projects

This is a minor optimization and cleanup.
If a user tries to edit a badge entry and is logged in via GitHub,
but is NOT editing a project whose repo is on GitHub, then there's
no need to ask GitHub if the user can edit the project... so don't.
This refactors some code into a new can_current_user_edit_on_github?
method, which should make can_edit? shorter and easier to understand.
Signed-off-by: David A. Wheeler<EMAIL_ADDRESS>

Note: This will only be different if the user isn't already the owner of the badge entry and isn't on the additional_rights list.  So it's unusual to trigger this.  But we're trying to avoid calling on GitHub when we don't need to, and this was an "obvious" optimization.


Debug flag affects agent input and behavior

Specifying the debug flag changes not just the visualization, but also the camera input from the agent; see attached screen capture. This substantially changes the behavior of agents that depend on RGB input.

This should at the least be documented, but ideally there would be a way to fix this as it makes the debugging flags much less useful.
In branch carla_challenge, I executed the imitation learning baseline test three times with and without the debug flag:
CHALLENGE_PHASE_CODENAME=dev_track_2 python3 ${ROOT_SCENARIO_RUNNER}/srunner/challenge/challenge_evaluator_routes.py --scenarios=${ROOT_SCENARIO_RUNNER}/srunner/challenge/all_towns_traffic_scenarios1_3_4.json --routes=${ROOT_SCENARIO_RUNNER}/srunner/challenge/routes_debug.xml --agent=../coiltraine/drive/CoILBaseline.py --config=../coiltraine/drive/sample_agent.json --debug=0 --filename=debug0-rep2.json
With debug=0, I got average route points / infraction points of 12.73 / 17.5 (rep 0), 12.82 / 15.0 (rep 1) and 6.23 / 15.0 (rep 2). With debug=1, I got 4.02 / 17.5 (rep 0), 15.95 / 30.0 (rep 1) and 14.79 / 25.0 (rep 2).
Raw results below.
debug0-rep0.log
debug0-rep1.log
debug0-rep2.log
debug1-rep0.log
debug1-rep1.log
debug1-rep2.log

Same problem. The agent does not move at all with the debug flag. Please kindly help. Thanks in advance.


webhooks: Fix small bug in the fixture_to_headers method of bitbucket3.

We should return an empty dictionary instead of None.
With this the storing headers with fixtures system is complete.

Awesome, thanks for doing the audit @Hypro999!


Remove read counts

ForumReaders.readCount was a way of remembering the number of posts a user has viewed in a thread, used when we calculate the number of unread posts in the thread and when we determine the default page to start on when viewing a (long) thread. We stored the value in this way because it made calculations easy. The big drawback of readCount is that it interacts poorly with changes to the visible posts in a thread. Blocking, muting, and deleted posts all change the number of visible posts in a thread, and may change the number of viewed posts.
However, now that we have childCountsPerModel() we can query the count of read posts in each thread by storing the postID of the last post the user viewed and querying the # of posts with an id <= the last viewed post. And, for routes that return an array of forum threads, it's one SQL call per request.
Also fixed a dumb bug I found in siteController where we'd divide by zero if you set limit=0 in a pagination query.
This has a new migration that modifies the ForumReaders pivot.

Just tried out the change locally, I like it. 🙂
👍


GitHub Pages: Activate

Select Source
Copy Website URL

Follow the steps here:
Configure publishing source

Completed.


Issue from website page 基础 Widgets  Why is it 404 every time I click

From URL: https://www.flutterchina.club/widgets/basics.md
Why is every widget document I click on a 404? That doesn't make sense.

这是中文站
https://flutter.cn/docs/ui/widgets

ok thank you

ok thank you~


Can support an aliyun docker image？

Currently, we do not support dockers because we do not have resources for dockers now. We plan to support it in the future and PRs are welcomed.
Since it duplicates https://github.com/open-mmlab/mmdetection3d/issues/22, this issue is closed.


fix: use google clang-format style

After this pull request, I think we should land ada/idna changes to main @lemire, what do you think?


Can't create lmdb

Sorry i'm new for this. I have this error.
Read images... [                                                  ] 0/2653, elapsed: 0s, ETA: Start... Traceback (most recent call last):   File "create_lmdb.py", line 22, in <module>     pbar.update('Read {}'.format(v))   File "C:\ESRGAN-master\BasicSR-master\codes\utils\progress_bar.py", line 40, in update     fps = self.completed / elapsed ZeroDivisionError: float division by zero

The error means the elapsed time is zero. May check the configurations.
You can also comment on the progress_bar lines, which only for printing some info.


Auto-starting measurement and IPv6

During one test, one Pis used an IPv6 address to register on the server and that same PI didn't start measuring once connected to the power meter. Starting measurements from the GUI worked fine though...
Not sure if that's related, but there may be something missing in the IPv6 branch of the code. I'll take note of this and investigate later (or not...)

I don’t think it’s related to IPv6. More likely it’s a concurrency bug or the pi could not start the measurement due to some error with the power meter. There is a timeout in startMeasurement()


upgrade ejs package | CVE-2022-29078

There is a critical vulnerability in the ejs package < 3.1.7 CVE-2022-29078.
I would be happy to make a pull request, but I see that many pull requests are still open.

This is also flagging a critical in our security scans. Is this library still being maintained? Looks like the pull request to update to an older version of ejs is still out there from three years ago: https://github.com/NekR/offline-plugin/pull/490


Large Memory Allocation?

While debugging memory leak in my program, I noticied the HttpServerLite using 3gb of RAM, take a look:

I'm suspecting the GC are being lazy to clean the byte[] that the HttpServerLite discard each loop in the stream copy.
Maybe should be better keep the same buffer variable to the entire stream copy?
Maybe call GC.Collect()?

Hi @marcussacana thanks for the detailed information.  Let me take a look right now.  Thanks!

Could you give it a try with v1.2.3 and let me know if it works?
NuGet: https://www.nuget.org/packages/HttpServerLite/1.2.3
Commit: https://github.com/jchristn/HttpServerLite/commit/5853f68b11905a56502b0739b70575f2aec432d2

Not yet...

I tried change the code by only creating a new byte[] in the final loop like this:
byte[] buffer = new byte[_StreamBufferSize];
while (bytesRemaining > 0)
{
    if (bytesRemaining < _StreamBufferSize)
        buffer = new byte[bytesRemaining];

    int bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length, token).ConfigureAwait(false);
    if (bytesRead > 0)
    {
        await _Stream.WriteAsync(buffer, 0, bytesRead, token).ConfigureAwait(false);
        bytesRemaining -= bytesRead;
    }
}

And the final allocation in the same usage that I did before has only 400mb

Hi @marcussacana I made some additional changes to reduce the memory consumption due to re-initialization.  I'm very sorry for the delay on this, just been overwhelmed lately :)  Could you give it a run and re-open if this doesn't resolve the issue?
NuGet: https://www.nuget.org/packages/HttpServerLite/1.2.9
Commit: https://github.com/jchristn/HttpServerLite/commit/1b832353b295e61117cfa174ce3b226ca7630460

Fine, I will test when possible, thanks!


Include more info in .zenodo.json and use as master file

The Zenodo configuration file .zenodo.json can hold a lot of metadata about funding and authorship http://developers.zenodo.org/?python#representation.
We should use this as a master file and generate docs/source/acknowledgments.rst from it.

Should be fixed by #314


Q: get chan types?

Is there a get_chan_types somewhere? I'm trying to create_info and could use such thing.
Else here's a snippet if someone wants to implement it:
def get_ch_types(info):
    types = {1: 'mag', 301: 'ref_meg', 502:'misc', 3:'stim'}  # to be finised
    ch_types = list()
    for ch in info['chs']:
        ch_types.append(types[ch['kind']])
    return ch_types

We have something related in the picks module; but also check contains
mixin: "eeg" in raw
On Tue, 6 Dec 2016 at 23:55, Jean-Rémi KING<EMAIL_ADDRESS>wrote:

Is there a get_chan_types somewhere? I'm trying to create_info and could
use such thing.
Else here's a snippet if someone wants to implement it:
def get_ch_types(info):
types = {1: 'mag', 301: 'ref_meg', 502:'misc', 3:'stim'}  # to be finised
ch_types = list()
for ch in info['chs']:
ch_types.append(types[ch['kind']])
return ch_types
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mne-tools/mne-python/issues/3819, or mute the thread
https://github.com/notifications/unsubscribe-auth/AB0fimJtXnFUxi_cw2HXsmVFXccSIGt2ks5rFefTgaJpZM4LF_QC
.

You can use channel_type from mne.io.pick for this:
from mne.io.pick import channel_type
ch_types = [channel_type(info, idx) for idx in range(len(info['chs']))]

Also channel_indices_by_type may be helpful.
BTW - having these functions in mne.io.pick is not super-intuitive

@kingjr reopen if it does not do the job for you


Required parameters

After looking through the documentation, source code, and spending a fair amount of time trying to find anything useful on Google, I'm still unsure how to bring required arguments from the command-line along with optional flags/values.
I'm using os.Args. The flags/values seem to be ignored if they're provided last but obviously used as the initial arguments if provided first. How are we supposed to do this?

This package does not have reasonable builtin support for required parameters or subcommands.   You need to remove the parameter from the Args slice and then call Parse or GetOpt again to continue parsing the cli arguments.   I have not tried myself yet, but I believe you can look at the State and make some decisions off of that.   It needs this enhancement given that it deviated from the original BSD getopt design on interface usage.   As best as I can tell,  the documentation for this package is https://godoc.org/code.google.com/p/getopt.   Some more real world examples in the documentation would really help here.


Update README.md

Thank you for helping my assignment !
I made a pull request to add "Sprite" to your list.


0003: ADD RFD for centralized logging in tinkerbell

Description
Centralized logging for Tinkerbell

@Cbkhare great start! I added a few comments and I am working on a way to render the proposals repo as a website, but in order to make this to work you have to include everything (other than the images that are already linked) as part of the README.md otherwise it won't get rendered

@Cbkhare great start! I added a few comments and I am working on a way to render the proposals repo as a website, but in order to make this to work you have to include everything (other than the images that are already linked) as part of the README.md otherwise it won't get rendered

@gianarb , I didn't get this one. Are you talking about referencing other md files inside the README.md

@gianarb , I didn't get this one. Are you talking about referencing other md files inside the README.md

yes. The docker-compose.yaml and the other markdown files won't be rendered in the static site generated version of this repository. You have to find a way to move that content as part of the main README.md.
Thanks

Just been through this, on the face of it and from all of the discussions that we've had Im happy with this proposal.

Merging the PR. Development will be taken forward with https://github.com/tinkerbell/osie/issues/58


Numerically Stable gamma_lcdf Gradients

Summary
This PR adapts the improved gamma_p gradients from #780 for use with gamma_lcdf, to improve stability of estimation with large inputs.
Tests
New mix/prob tests added for a range of inputs
Side Effects
N/A
Release notes
Improved numerical stability of gamma_lcdf gradients
Checklist

[x] Math issue #2763

[x] Copyright holder: Andrew Johnson
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

[x] the basic tests are passing

unit tests pass (to run, use: ./runTests.py test/unit)
header checks pass, (make test-headers)
dependencies checks pass, (make test-math-dependencies)
docs build, (make doxygen)
code passes the built in C++ standards checks (make cpplint)

[x] the code is written in idiomatic C++ and changes are documented in the doxygen

[x] the new changes are tested

Thanks Andrew!

Would it work to just call gamma_p like in the below? Seems easier to understand.
Like
namespace stan {
namespace math {

template <typename T_y, typename T_shape, typename T_inv_scale>
return_type_t<T_y, T_shape, T_inv_scale> gamma_lcdf(const T_y& y,
                                                    const T_shape& alpha,
                                                    const T_inv_scale& beta) {
  using T_y_ref = ref_type_t<T_y>;
  using T_alpha_ref = ref_type_t<T_shape>;
  using T_beta_ref = ref_type_t<T_inv_scale>;
  static const char* function = "gamma_lcdf";
  check_consistent_sizes(function, "Random variable", y, "Shape parameter",
                         alpha, "Inverse scale parameter", beta);
  T_y_ref y_ref = y;
  T_alpha_ref alpha_ref = alpha;
  T_beta_ref beta_ref = beta;
  check_positive_finite(function, "Shape parameter", alpha_ref);
  check_positive_finite(function, "Inverse scale parameter", beta_ref);
  check_nonnegative(function, "Random variable", y_ref);

  if (size_zero(y, alpha, beta)) {
    return 0;
  }

  auto const y_ = as_column_vector_or_scalar(y_ref);
  auto const beta_ = as_column_vector_or_scalar(beta);

  return log(gamma_p(alpha, beta_ * y_));
}

}  // namespace math
}  // namespace stan
#endif

Yep, but then the gradients for the outer log() and the b * y get auto-diffed through, so the sampling won't be as efficient

Good catch, thanks!


Refs #24227 -- Partially reverted replaced M2M isinstance checks by field.many_to_many.

Partially reverts 983c158da to fix taggit

Do we need a test now for that ?

@jpic yeah, a test would probably be go to be sure it doesn't break again. (we may need a ticket too for good record keeping) I have a fairly busy week and probably wont get around to pushing this patch through. Feel free to make your own pull request, if you want, I can help review it.

Ok, so would you like a PR on your branch ?
I've been working on such a test case, it's not trivial, perhaps it'd be
easier with a mock object for the Field, what do you think ?

@jpic feel free to make it directly on django. I personally am not an expert as far as writing tests goes, so I can't comment there.

I'm happy to merge this without a test. As I said on the ticket, unless we have a use case for duck-typing, I don't see much benefit of the original patch. @claudep, any thoughts here?

Feel free to go ahead, but I'm not convinced it's the best final solution. Duck-typing might be desirable in other use cases. In the short term, reverting might be the safer solution.

Merging without a test is fine with me too :)

My response to duct-typing is a lot of these code paths are hacks that are pretty specific to the making the current ManyToMany widgets work in the admin. Custom fields may not necessarily want their value split by comma, etc.

Removing the special case in model_to_dict() seems feasible: https://github.com/django/django/pull/6585.

merged in 38c43b2a5c9e47f2fabb60521c1224825ebcc833, thanks!

Still breaking on the test_taggit project:
Traceback (most recent call last):
  File "/home/jpic/env/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/jpic/env/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/jpic/env/lib/python2.7/site-packages/django/contrib/admin/options.py", line 541, in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File "/home/jpic/env/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/home/jpic/env/lib/python2.7/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/home/jpic/env/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 244, in inner
    return view(request, *args, **kwargs)
  File "/home/jpic/env/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1437, in add_view
    return self.changeform_view(request, None, form_url, extra_context)
  File "/home/jpic/env/lib/python2.7/site-packages/django/utils/decorators.py", line 67, in _wrapper
    return bound_func(*args, **kwargs)
  File "/home/jpic/env/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/home/jpic/env/lib/python2.7/site-packages/django/utils/decorators.py", line 63, in bound_func
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File "/home/jpic/env/lib/python2.7/site-packages/django/utils/decorators.py", line 184, in inner
    return func(*args, **kwargs)
  File "/home/jpic/env/lib/python2.7/site-packages/django/contrib/admin/options.py", line 1370, in changeform_view
    if form.is_valid():
  File "/home/jpic/env/lib/python2.7/site-packages/django/forms/forms.py", line 161, in is_valid
    return self.is_bound and not self.errors
  File "/home/jpic/env/lib/python2.7/site-packages/django/forms/forms.py", line 153, in errors
    self.full_clean()
  File "/home/jpic/env/lib/python2.7/site-packages/django/forms/forms.py", line 364, in full_clean
    self._post_clean()
  File "/home/jpic/env/lib/python2.7/site-packages/django/forms/models.py", line 380, in _post_clean
    self.instance = construct_instance(self, self.instance, opts.fields, exclude)
  File "/home/jpic/env/lib/python2.7/site-packages/django/forms/models.py", line 60, in construct_instance
    f.save_form_data(instance, cleaned_data[f.name])
  File "/home/jpic/env/src/taggit/taggit/managers.py", line 438, in save_form_data
    getattr(instance, self.name).set(*value)
AttributeError: 'NoneType' object has no attribute 'set'

Apparently that's fixed in taggit master !
Keep up the great work :guitar:


Support authentication in HttpApi

Do you want to request a feature or report a bug?
feature
What is the current behavior?
The HttpApi generates an API Gateway (v2), all API methods are accessible without authentication.
What is the expected behavior?
If enabled, API methods can be defined as protected. Access is only possible for users defined in the Cognito User Pool.
Suggested implementation
It's necessary to create an App Client in the Cognito User Pool.

For existing authentication, I would add a new property in IAuthentication to pass an existing App Client.
If the User Pool is generated in HttpApi, I would add the necessary configuration to AuthenticationProps.

Using the User Pool and the App Client, I would create an HttpUserPoolAuthorizer and attach it to each apiGw.HttpRoute which is created in method addCustomRoute().
How to configure which API methods should be protected? In the OpenAPI definition, a protected API method can be defined using keyword security. If this keyword is set, I would propose to add the HttpUserPoolAuthorizer to the API method. This approach provides the advantage, that no additional configuration is necessary to specify which API methods should be protected.
Please let me know if I can implement the feature and create a pull request. If you have some optimizations, please let me know, too.

Hi, thanks for this finding.
When I started using APi GW v2 Authorizer support was very limited so I fell back to doing auth inside the Lambda function. This is what happens in the Lambda toolbox right now. But if we can add authorizers in API GW v2 directly for Cognito this would improve security I think.
I would love to see a PR with this change.


mini update 8: describe content discovery workflow

Builds upon pr #167
The relevant diff can be found here:
https://github.com/bloodorangeio/distribution-spec/compare/mini-update-7...bloodorangeio:mini-update-8?expand=1

Closing this in favor of https://github.com/opencontainers/distribution-spec/pull/178


Versioned documentation

Any chance you could build back-level versions of your docs on RTD? I'm not bothered if the default build stays as "latest" but it'd be really handy if older versions of the docs could be easily retrieved.
Some background: we recently had some interesting times with the teachers at picademy trying to use Twython in their projects, specifically for tweeting images. The version packaged in Raspbian is 3.1 (not the latest, but then that's pretty par for the course on stable distros) and unfortunately the example given in the docs won't work with 3.1 (as it relies on upload_media which was introduced after 3.1).

I can probably check the project out at that version release and build the docs for that version? I'm not sure how great that would work. But I could def. give it a try. Or at the very least, link you to the example in 3.1?
--
Sent with Airmail
On Mar 19, 2016, 4:09 PM -0400, Dave<EMAIL_ADDRESS>wrote:

Any chance you could build back-level versions of your docs on RTD? I'm not bothered if the default build stays as "latest" but it'd be really handy if older versions of the docs could be easily retrieved.
Some background: we recently had some interesting times with the teachers at picademy trying to use Twython in their projects, specifically for tweeting images. The version packaged in Raspbian is 3.1 (not the latest, but then that's pretty par for the course on stable distros) and unfortunately theexample given in the docs(http://twython.readthedocs.org/en/latest/usage/advanced_usage.html#updating-status-with-image)won't work with 3.1 (as it relies onupload_mediawhich was introduced after 3.1).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly orview it on GitHub(https://github.com/ryanmcgrath/twython/issues/410)

No need for you to check out stuff or do manual builds: it's pretty easy under RTD, but it does assume you're tagging your releases (and I've just noticed, looking at the Twython github repo that only 3.3.0 has a tag). So: tag your releases, then under RTD's admin page for your project you should find those tags start showing up under the "Versions" section (you might have to do git push --tags for that to happen).
Once they've shown up there, just set the tags you want to "Active" and they'll become available as versions of your docs (on my projects I usually set the last release as the "Default Version" rather than "latest" so that I can continue hacking on stuff without confusing people using the released version - but plenty of projects stick with "latest" as the default version, presumably under the assumption that many of their users are bleeding edge pip installs).

Alright, I think I got it. I started tagging actually with the 3.3.0 release. So we'll be tagging releases and making them available on RTD in the future.
Hope this helps! http://twython.readthedocs.org/en/3.1.2/usage/advanced_usage.html


module 'matplotlib.cbook' has no attribute 'MatplotlibDeprecationWarning'

Hi all,
I'm gettting a Matplot depreciation warning when running the following (note I'm running this within a streamlit application, not sure if this may have an influence)
    # Show calendar
    dates = date_range("2020-01-01", "2020-12-31")
    data = np.random.randint(0, 100, len(dates))

    ## Create a figure with a single axes
    fig, ax = plt.subplots()

    ## Tell july to make a plot in a specific axes
    july.month_plot(dates, data, month=2, date_label=True, ax=ax, colorbar=True)

pip list gives the following
pip list
Package                   Version
------------------------- -----------
altair                    5.3.0
anyio                     4.4.0
attrs                     23.2.0
blinker                   1.8.2
cachetools                5.3.3
certifi                   2024.7.4
charset-normalizer        3.3.2
click                     8.1.7
contourpy                 1.2.1
cycler                    0.12.1
fonttools                 4.53.1
gitdb                     4.0.11
GitPython                 3.1.43
greenlet                  3.0.3
h11                       0.14.0
httpcore                  1.0.5
httpx                     0.27.0
idna                      3.7
Jinja2                    3.1.4
jsonschema                4.23.0
jsonschema-specifications 2023.12.1
july                      0.1.3
kiwisolver                1.4.5
markdown-it-py            3.0.0
MarkupSafe                2.1.5
matplotlib                3.9.1
mdurl                     0.1.2
numpy                     2.0.0
packaging                 24.1
pandas                    2.2.2
pillow                    10.4.0
pip                       24.1.2
protobuf                  5.27.2
psycopg2-binary           2.9.9
pyarrow                   16.1.0
pydeck                    0.9.1
Pygments                  2.18.0
pyparsing                 3.1.2
python-dateutil           2.9.0.post0
python-dotenv             1.0.1
pytz                      2024.1
referencing               0.35.1
requests                  2.32.3
rich                      13.7.1
rpds-py                   0.19.0
setuptools                70.3.0
six                       1.16.0
smmap                     5.0.1
sniffio                   1.3.1
SQLAlchemy                2.0.31
streamlit                 1.36.0
tenacity                  8.5.0
toml                      0.10.2
toolz                     0.12.1
tornado                   6.4.1
typing_extensions         4.12.2
tzdata                    2024.1
urllib3                   2.2.2
watchdog                  4.0.1
wheel                     0.43.0

Any tips what the issue may be? Looking forward to your ideas, and thanks in advance!

I tried and verified that this branch by @thoellrich solves the issue

@e-hulten , can you merge the pull request, please!

ran into this issue as well. would greatly appreciate it if the PR was merged.


Crash

We have written the needed data into your clipboard because it was too large to send. Please paste.
Issue Type: Bug
While I'm using vscode for a while the autocomplete is note working and packaes that I installed become slower please fix it
VS Code version: Code 1.27.2 (f46c4c469d6e6d8c46f268d1553c5dc4b475840f, 2018-09-12T16:17:45.060Z)
OS version: Windows_NT x64 10.0.17134

I wonder if this issue is being caused by an installed extension. Can you try to run VS Code without extensions? From the command line (NOT the integrated terminal in Code), execute: code --disable-extensions and try your steps again to see if it reproduces. If you see it is an issue with the extension, please file it against the extension repository itself.


docs: General documentation updates

Fix for issue #19

Hi @HenryWelborn just FYI: the titles of the PRs should follow the conventional commit style, in this case staring with docs:
This is relevant for the build and release process.


Path planning

You have to plot a path for parallel parking and represent as a mathematical function .
It would be preferred to represent other paths such as perpendicular parking .

general interface with the motion planning part is done with the implementation for a simple two circles Parallel Backwards parking algorithm

TODO:

[ ] calculate parameter values based on current location and environment.
[ ] implement more algorithms for PeB and PeF


add pushgateway related operations

Add pushgateway related operations. User can choose to push metrics to the pushgateway endpoint provided by config file as well as to delete metrics from it.
Added attributes of config.yml
Global section:
pushgateway_addr: pushgateway address, only support : pattern.
Metric section:
pushgateway: specify if this metric needs to be pushed to pushgateway, default is false.
job_name:         specify job name when pushing metric to pushgateway, default is grok_exporter.
delete_match: similar to match attribute, logs which match this pattern will trigger a delete() operation from pushgateway.
grouping_key: specify the grouping key when pushing metric to pushgateway, default is nil.
All of the added attributes are not required, thus the original config.yml still works.

@fstab The CI test for file tailer has failed because of timeout, but I did it locally and there was no such failure. Also I think this has no effect for the pushgateway functions.  Please take a look at this PR, thanks in advance.

Thanks for the PR! I am currently on holidays with very limited access to the Internet, but I will get back to it next week.

@fstab Sorry for the late reply. I appreciate your response.

I reviewed the changes and have a couple of questions to understand the code better:

Could you provide a few example log lines and a config file where all pushgateway-related options are used? Having a real live example would be helpful to me.
What would you say is the intended usage scenario? I can imagine the pushgateway is useful if grok_exporter runs behind a NAT firewall. Is this the intended use?
As the pushgateway support is optional, I would like to move the code out of the core implementation into its own package. It would be easy to move the new functions in grok_exporter.go to a new package, but I am not sure what to do with the extensions to metrics.go. Maybe a few of the new fields in metrics.go are not really needed:

The pushgateway flag was introduced to push only specific metrics to the pushgateway. I don't see a usage scenario where it makes sense to collect metrics in grok_exporter, but not push them to the pushgateway. What do you think of removing the pushgateway flag and pushing all metrics to the gateway as soon as the pushgateway is configured?
The metricsVec was introduced to call m.MetricVec().DeleteLabelValues(labelValues...) in pushMetrics() in grok_exporter.go. What do you think of skipping this and keeping the labels? If the metric is a Summary or Histogram, it might be useful to collect more than one value with the same labels.
What is the difference between the grouping key and other labels? Can we use the existing labels for grouping instead of the grouping key?
I guess the delete_regex would be useful to delete metrics if some kind of shutdown message is found in a log file indicating that a service has stopped. This is an interesting idea, but maybe it is unrelated to the pushgateway and would be useful to the regular grok_ exporter as well. Is there any reason that metrics are deleted from the pushgateway but not from the regular grok_exporeter?

Thanks a lot!
Fabian

@fstab Thanks for the response.

Here is the example log file and config file.
log file:
test.log
config file:
config.yml

The usage scenario for us is to monitor task waiting time cross node in large scale cluster. Sometimes a task can be created in one node and arranged to be executed in another node. The time interval between its creation time and start-execution time is an important metric to monitor. We can use time() - creation time in Prometheus to get the actual waiting time.
Since we have to monitor every task and use a some kind "ID" label to specify it, and this will overload the storage of Prometheus in a long time. so we have to delete the metric as soon as the task is no longer in a "waiting" state. Pushgateway provides delete() API to do so.

For the new fields:

pushgateway: The push() and delete() operations provided by pushgateway are somehow HTTP requests. It may cause a huge overhead if we push all of the metrics defined in grok_exporter to pushgateway. In fact, we just want to focus some special metrics and this flag can provide an option to users to determine whether to push the metric or not.

m.MetricVec().DeleteLabelValues(labelValues...) is actually not deleting labels but deleting metrics with the given label-value sets. This is actually the main found for me in metrics_test.go. If we can implement some delete() function in grok_exporter, the pushgateway is no longer needed I think.

grouping key is used when pushing metric to pushgateway. By default, only job_name is required when doing push() operation. In package client_golang provided by Prometheus, grouping key can not be a subset of metric labels and it can be some user-defined values for separating the pushed metrics into different groups. I re-implement the push() API, and put the code in doRequest() ingrok_exporter.go. Here grouping key is also a subset of labels. The value or template it used is determined when regular match attribute has been matched.

delete_regex is  doing exactly  what you mentioned. For deleting metrics in pushgateway but not in grok_exporter, as I mentioned before, if we can implement some kind delete() function in grok_exporter, the pushgateway is no longer needed.

I am not so good at Go and I apologize for making the code difficult to understand. Hopefully the comment above can explain the code clearly.
Thanks.

Thanks a lot for your response. I understand your usage scenario much better now.
I really like the idea to be able to delete metrics. This should be a general feature in grok_exporter, not only for the pushgateway. As a general feature, it might be more straightforward to rename the grouping_key to something like delete_labels, because the term "grouping" does not occur outside of the pushgatwasy world:
delete_match: 'DELETE %{USERNAME:user}'
delete_labels:
    user: '{{.user}}'

As you said, there is no simple delete() function in the client_golang for deleting all metrics matching the delete_labels. However, it should be straightforward to implement this. There should be a relatively small amount of different labels. In the worst case, we could simply keep a map of all label values and call DeleteLabelValues() individually for each value.
I think the best way to proceed is to implement the generic delete functionality first, and then migrate your pushgateway code to the new version of grok_exporter. I will try to provide a delete implementation within the next few days.
Thanks four your contribution, it is always good to see different usage scenarios and get some fresh ideas. I'll get back to this issue when the delete functionality is done.

Glad to know this idea is accepted by the author @fstab . I really appreciate your response. Thanks a lot!.

I pushed a delete_match and delete_labels implementation. The new function metric.ProcessDelete(line) returns a map with the matching delete_labels and their values. I hope the return value of metric.ProcessDelete(line) is useful for calling delete on the pushgateway. Let me know if this makes sense for you.

@fstab Thanks, I'll check it out and give you a response later.

@fstab Sorry for late response, I was engaged in some other projects in our company in the last a few weeks, I will try to use this new functions in my pushgateway branch and give you a detailed reply in the next weeks. Thanks.


Prepping for ES8 Changes

Async functions are a finished proposal and will be in the ES2017 spec. There are a couple of other interesting items I'd like to work on (though they probably won't make it to ES2017).
My team is allowed to use any feature at Stage 3 of the proposal process or higher: https://github.com/tc39/proposals
Is there a plan for handling this?
I was considering adding an ECMASCRIPT8 and ECMASCRIPT8_STRICT language level. But for features which weren't yet in any formalized spec, I was considering adding ECMASCRIPT_NEXT which is consistent with Babel.

At some point we'll probably need to switch from ES6 to ES2015 in the code and flags and such :(
@brad4d is making progress on async/await already; I don't think we've looked much at other features just yet.

ES2015 is still the 6th edition of the spec - it's right at the top: http://www.ecma-international.org/ecma-262/6.0/
In addition to async/await, my team is pushing to get transpilation for the object rest/spread parameters.

I am, in fact, very close to having the async functions transpilation working.
They're working in not-yet-submitted code now.
What are these object rest/spread parameters you mention?
I thought we were already transpiling all of the rest/spread stuff.
Could you give me an example?

Here's the spec (as it exists today - it's still stage 2 but with an indication it's ready to move to stage 3): https://github.com/sebmarkbage/ecmascript-rest-spread
The link to the proposals I posed above is worth keeping handy. It gives a good guidance on what's being suggested an how those proposals are progressing. We use stage 3 as an indicator because there hasn't yet been a proposal withdrawn once it gets to stage 3.

ECMASCRIPT_NEXT was added.


delete check incompatible with optional chaining

Flow version:
Expected behavior
Flow should not complain about deleting optional chained props
Actual behavior
Flow complains about deleting optional chained props
Following code:
const ob1: {a?: number} = { a: 1 };
delete ob1?.a;

causes following error:
2: delete ob1?.a;
   ^ Cannot delete `ob1?.a` [1] because only member expressions and variables can be deleted.
References:
2: delete ob1?.a;
          ^ [1]

However, such delete expression is totally legal, and we even have an unit test validating that it works

Link to Try-Flow or Github repo:
https://flow.org/try/#0MYewdgzgLgBCBGBGAXDA3gQwPyrAVwFt4BTAJwF8YBedGDVRGcgbgCgATYgG2KmLiRYAdBmZA

@mvitousek it looks like you introduced this in https://github.com/facebook/flow/commit/c1cd46caec6f02eee15b0616b3c7a3610ed5a5f9
Is there a plan to fix this or at least bailout and not type-check when optional chaining?
It means I have to put a load of $FlowExpectError and it confuses developers into thinking delete and optional chaining don't work together

@lukeapage Thanks for tagging me, I'm actually working on improving Flow's optional chaining support right now, and I'll work on getting out a fix for this in the process.

This issue appears fixed in 0.112.0