updated to actualy use harmony api

the old code does nothing.

I might be missing something but the old code should be a valid pass through postfix, as documented here: https://harmony.pardeike.net/articles/patching-postfix.html#pass-through-postfixes

i was unaware that postfixes have this as an option. thankyou for informing me. the code in this pr is marginally faster than the existing code since GetExtraUserIds never runs instead of ruining then having its result replaced

the code in this pr is marginally faster than the existing code since GetExtraUserIds never runs instead of ruining then having its result replaced

Fair point. Will merge it then but it might take a bit until I put out a new version and get it on the manifest and all that.


RAD-898 Update deals docs

Specifically:

Edit/spellcheck Ad Ops deals setup doc
Expose Ad Ops deals setup doc
Add deal info to the publisher API reference

@rmloveland Reviewed deal id updates, looks good to me


[Feature Request] OpenTelemetry Metrics OLTP/HTTP support

Is your feature request related to a problem? Please describe.
Right now the Python SDK (and possibly other Core SDKs?) only support OLTP over gRPC, but many popular services (including Pydantic Logfire require OLTP over HTTPS
When trying to export metrics to these services today, I receive the following error:
OpenTelemetry metrics error occurred. Metrics exporter otlp failed with the grpc server returns error (Internal error): , detailed error message: protocol error: received message with invalid compression flag: 60 (valid flags are 0 and 1) while receiving response with status: 403 Forbidden
Describe the solution you'd like
Support for exporting OTel Metrics to services via OLTP/HTTP.
Additional context
This would bring the Python SDK up to parity with the Go SDK and possibly others which do support HTTP.

That is unfortunate that such a platform doesn't support such a common OTLP approach. This is implemented in our Rust Core layer, so I have opened an issue over there to support HTTP: https://github.com/temporalio/sdk-core/issues/820. Once updated there we will apply here (may just be an http=True type of option on the OTel config).

Sorry temporal, we'll try to get grpc added as soon as possible.

@slingshotvfx as a workaround, I would recommend deploying an OTEL collector which can receive grpc/http telemetry and export to Logfire via HTTP. This would be a better solution in the long run, as you ideally don't want to send telemetry directly to the backend via OTLP from your app. A collector allows you to add batching, retry/fault tolerance, and transformations to customise the metric labels.
Here's a quick example in Docker Compose (not fully tested) using Grafana Alloy (I prefer it over the standard OTel collector for its UI and live debugging):
Details

docker-compose.yaml:
services:
  alloy:
    image: grafana/alloy:v1.3.1
    environment:
      - OTLP_EXPORTER_ENDPOINT="https://log-fire.com/whatever"
    ports:
      - "4317:4317" # OTLP grpc receiver
      - "4318:4318" # OTLP http receiver
      - "12345:12345" # Debug UI
    volumes:
      - alloy_gateway:/var/lib/alloy/data
      - type: bind
        source: ./config.alloy
        target: /etc/alloy/config.alloy
    command:
      - "run"
      - "--server.http.listen-addr=<IP_ADDRESS>:12345"
      - "--storage.path=/var/lib/alloy/data"
      - "--stability.level=experimental"  # enables live debug mode
      - "/etc/alloy/config.alloy"

config.alloy:
livedebugging {
	// Enable live debugging for the collector
	// See http://localhost:12345
	enabled = true
}

otelcol.receiver.otlp "default" {
	// Setup OTLP receiver to accept metrics, traces, and logs from instrumented services
	// https://grafana.com/docs/alloy/latest/reference/components/otelcol/otelcol.receiver.otlp/
	grpc {
		endpoint = "<IP_ADDRESS>:4317"
	}

	http {
		endpoint = "<IP_ADDRESS>:4318"
	}

	output {
		metrics = [otelcol.processor.batch.input]
		# traces  = []
		# logs    = []
	}
}

otelcol.processor.batch "metrics" {
	// Adds batching to metrics
	// https://grafana.com/docs/alloy/latest/reference/components/otelcol/otelcol.processor.batch/
	timeout = "200ms"

	output {
		metrics = [otelcol.exporter.otlphttp.logfire.input]
	}
}

// Can add additional components as needed

otelcol.exporter.otlphttp "logfire" {
	// Exports telemetry to another OTLP receiver via http
	// https://grafana.com/docs/alloy/latest/reference/components/otelcol/otelcol.exporter.otlphttp/
	client {
		endpoint = env("OTLP_EXPORTER_ENDPOINT")
		// You'll likely need to configure auth / tls to push to your backend
	}
}

Then you just need to configure your Python app to send telemetry to http://alloy:4317 over grpc


Output more helpful information while load the native binding failed

https://github.com/swc-project/swc/issues/1351#issuecomment-853728853


Antigen and sourcing from different scripts

I have such setup.
Basically on my Mac Zsh initialization does the following.

Iterate through Darwin scripts, one of which sources antigen.zsh.
Iterate through Unix scripts, first of which executes antigen commands.

Unfortunately it stopped to work and I don’t know which Antigen version worked well, sorry.
Steps.

rm -rf ~/.antigen ~/.zcompdump
Open new Terminal tab.
None of Antigen bundles are loaded, i. e. no extra highlighting or completions. antigen list shows bundles though.
mv ~/.zsh/unix/_plugins.zsh ~/.zsh/darwin/plugins_after.zsh
rm -rf .antigen .zcompdump
Open new Terminal tab.
Everything works as expected.

In other words, if I change script location containing antigen calls everything starts to work fine.

It seems the issue comes from the fact that it runs on a function scope at two different times. I'll continue to investigate.
Thanks for reporting.

@desyncr, sorry to bother you, but are there any news on this?


Feature Request - Support for a post provision script.

It would be beneficial for azd to support a post provision script.
For example -
In my Bicep, I define a resource for an Azure Postgres DB and my application once deployed assumes that the table for that DB already exists. I cannot create the table in the Bicep due to the RP not supporting the capability.  So I need to run a custom command to create the script in between an azd provision and an azd deployment.
It would be great if azd up could be aware of the post provision script as well so I can provision/deploy in a single command and everything is operational.

That is possible...but ...
ARM deployment scripts require

storage account
user defined managed identity

Storage account is not required; the script can be provided inline in Bicep via scriptContent property
Some identity/credentials are required depending what resources the script is supposed to manipulate. For Azure resources, it can use a user-defined managed identity via identity property, but one can also pass credentials to the script and have it log in via Azure CLI. The latter may be handy if the deployment is already creating some identities for the application access.
That said, database initialization is a very common requirement, and the script can use whatever authN method the database supports; it does not have to be user-defined managed identity.

This exists now - closing


Close #1190: optimization by caching internal functions.

Every optimization is prepared. Now, starts benchmarking in both typia and nestia sides.


Is uptime-kuma affected by Log4j (CVE-2021-44228) ?

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
Is uptime-kuma affected by Log4j (CVE-2021-44228) ?
🐻 Uptime-Kuma Version
1.11.1
💻 Operating System and Arch
Docker
🌐 Browser
Microsoft Edge Version 96.0.1054.53 ( official build) (64-Bit)
🐋 Docker Version
No response
🟩 NodeJS Version
No response

No


client: raise with invalid credentials

When your credentials are invalid, in lieu of the unhelpful exception:
NoMethodError: undefined method `[]' for nil:NilClass

Let's show the much more useful message:
KindleHighlights::Client::AuthenticationError: Unable to sign in, received error: 'Your email or password was incorrect. Please try again.'

I've kept this as generic as possible, as it may handle other errors than just invalid credentials (which is what I spent 20m debugging).
Tested locally by flipping to invalid credentials.
Thanks for maintaining the upstream @speric!
✨

Thanks @Sirupsen! Let me test this out locally.

@speric did you have time to take a look? 🎉

Yes! Merging now, I'll cut a release soon.

👍

https://github.com/speric/kindle-highlights/releases/tag/v1.0.1
https://rubygems.org/gems/kindle-highlights/versions/1.0.1
Thank you! 🎉 👍

Thanks for this gem @speric :-) I'm using it to funnel single-word Kindle highlights of words that aren't in my active vocabulary into Airtable where I learn the words, and then sync them to my flash card deck!


[Impeller] Add a RenderTargetBuilder with common presets

Make RenderTarget setup more convenient and readable. As per: https://github.com/flutter/engine/pull/33413#discussion_r874376631

Closing it via linked PR.

The patch is getting reverted again.
There's a non-trivial inter-relationship between render targets and their properties - if we do in fact agree on a builder API, it's going to have to either have more guards around it or more methods that take multiple parameters and make it clear when certain parameter types are incompatible. The patch has landed twice now in ways that broke existing usage of the API.

This would have been nice to have but we haven't run into the need for this recently. Closing this as won't fix.


ERROR: ChatConnector: receive - no security token sent.

I am using Node.js and my bot framework version is 3.3.3. I have already configured "Skype" channel and its working fine. However in case of "Facebook Messenger" I am getting error "No security token sent". I am using ngrok . Here is my configuration of chatBot
var server = restify.createServer();
server.use(restify.CORS());
server.use(restify.queryParser());
server.listen(process.env.port || process.env.PORT || 4000, function () {
    console.log('%s listening to %s', server.name, server.url);
});
// Create chat bot
var connector = new builder.ChatConnector({
    appId: _config.ms.appId,
    appPassword: _config.ms.password
});

var bot = new builder.UniversalBot(connector);

server.post('/', connector.listen());

server.get('/', function (req, res) {
if (req.query.hub.verify_token === _config.ms.messengerSecret) {
        res.write(req.query.hub.challenge);
        res.end();
    } else {
        res.send('Error, wrong validation token');
    }
});

I have attached screenshots of configuration of webhooks(facebook app) and messaging end point(botframwork

Please let me know the solution of it. Thanks!

It looks like your settings are leading the code to this "else" branch:
https://github.com/Microsoft/BotBuilder/blob/9a1d8e78b9fe1d81bd9b481d2743006a6032f7b9/Node/core/src/bots/ChatConnector.ts#L182
Does it work without ngrok?

@willportnoy Thanks for  your response. When I test using bot framework it says accepted but when I try to send message with messenger I get  this "ERROR: ChatConnector: receive - no security token sent.". I am using mac os and node.js so I am not able to use emulator.

@willportnoy
I have seen Facebook messenger document,there is sample app, using this app I am able to send and receive message to my page. So do I need to implement it by own?
Please let me know. Thanks!

In ChatConnector.js following  code  is used for fetching token.
    var token;
    var isEmulator = req.body['channelId'] === 'emulator';
    if (req.headers && req.headers.hasOwnProperty('authorization')) {
        var auth = req.headers['authorization'].trim().split(' ');
             if (auth.length == 2 && auth[0].toLowerCase() == 'bearer') {
                  token = auth[1];
              }
     }

But I am getting req.headers look like this
 {
       host: 'c5dcbaa5.ngrok.io',
        accept: '*/*',
        'accept-encoding': 'deflate, gzip',
        'content-type': 'application/json',
        'x-hub-signature': 'sha1=****************86e8c84c',
        'content-length': '265',
        'x-forwarded-proto': 'https',
        'x-forwarded-for': '***. ***. ***. 136'

}
It does not contain "authorization" attribute in req.headers.

I'm receiving this error with BotBuilder as well. I do not receive the issue when using BotKit. I've used a simple contrived echo example for both tests.
I'm using Ngrok for local testing. Inbound webhook URLs are exactly the same for each example. That tells me that Ngrok is likely not the issue (I don't think it strips anything out of the request by design.)
I've dumped the req.headers for the incoming POST with both examples. Neither of them contain an authorization header, which I find very odd.
I'm still digging into it.

In case of Skype channel I'm getting req.headers look like this:
{ authorization: 'Bearer  ****.......LysN17so7Q',
'user-agent': 'BF-Skype (Microsoft-BotFramework/3.1 +https://botframework.com/ua)',
contextid: 'tcid=***7312, server=0961',
'x-correlating-operationid': 'M2z4l1yniiM=.dAA=.****.aDANpOAw0gE=.=.********iL2PIYY6LSK7cDkzISie0=',
'content-type': 'application/json; charset=utf-8',
host: 'f830c68f.ngrok.io',
'content-length': '729',
'x-forwarded-proto': 'https',
'x-forwarded-for': '**. **. ** .180' }
It works fine. It also has  authorization  attribute in req.headers.

Is this issue still happening?

Thanks for your response Tom! Yes,I am getting same error.
Thanks & Regards,
Dhiraj Sharma
Software Engineer
On Fri, Nov 4, 2016 at 6:24 AM, Tom Laird-McConnell <
<EMAIL_ADDRESS>wrote:

Is this issue still happening?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/BotBuilder/issues/1505#issuecomment-258292448,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGnkEQtS4WX5HXofNsvnyddhXyyJ9NJPks5q6l80gaJpZM4KfsN9
.

I am also getting this error

@tomlm do you need more information to track this down?

Hi @dhirajsharma072 and @shanepeckham, can you send a conversation ID and channel ID where you are seeing this problem and we can investigate?

I am also getting same error when I post anything from postman to my bot application.

Hi @piyush-dholariya, can you send a conversation ID and channel ID where you're seeing this problem?

Closing due to age. Please feel free to at-mention or file a new issue and we will take a closer look.

@dandriscoll  #1856  & #1903  can you give answer of these questions? I have post them separately.

Hi @piyush-dholariya, I've taken a look but I don't know the answer to either. The people assigned to each issue are the right ones to weigh in -- I'll send them a followup email to remind them.

It happened for me when setup webhook after credentials

Still getting this issue OSX using local bot connection and the sample code form the node.js setup
https://docs.botframework.com/en-us/node/builder/overview/#navtitle
@dandriscoll Maybe re-open?

I was able to fix this error by providing the APP_ID and PASSWORD in the emulator.
This may be obvious but the docs say this isn't required for local connections:
https://github.com/Microsoft/BotFramework-Emulator/wiki/Getting-Started#connect-to-a-bot-running-on-localhost
I will submit a pull request to fix the docs

I'm trying to set up a bot with a Microsoft Teams channel and I get ERROR: ChatConnector: receive - no security token sent. when a message is sent in a channel mentioning the bot but replies to individual messages do work are fine and the bot replies as expected.
Here's my app.js:
require('dotenv-extended').load();

var builder = require('botbuilder');
var restify = require('restify');

var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
    console.log('%s listening to %s', server.name, server.url);
});

var connector = new builder.ChatConnector({
    appId: process.env.MICROSOFT_APP_ID,
    appPassword: process.env.MICROSOFT_APP_PASSWORD
});

server.post('/api/messages', connector.listen());

var bot = new builder.UniversalBot(connector, function (session) {
    session.send("Hi");
});

The bot does reply to the Teams channel but the message is always "Sorry, there was a problem encountered with your request"
The logs show HTML for a 401 error page. It says:
Most likely causes:
   The authenticated user does not have access to a resource needed to process the request.
...
Detailed Error Information:
    ...
    Requested URL	   https://MaDinnerBot:80/app.js
    Physical Path	   D:\home\site\wwwroot\app.js
...

Is there somewhere where I should be setting a token? I did get a token when adding the bot to Teams but I'm not sure where to put it. Thanks.

@juharris please open a top level issue for your question, and feel free to reference this closed issue.

@bhanu2507 are you asking me? You can see my referenced issue above. I just set up a Linux server and ngrok manually and it worked. Though my colleague made a bot last week and it worked fine doing things the automatic way with an Azure App.

node v8.8.1, npm v5.4.2.
I can confirm, that using emulator I also have ERROR: ChatConnector: receive - no security token sent. - I typed messages but they didn't go through. And time ago all was good.
And I also solved it using APP_ID and APP_PASSWORD in emulator, as @stujo mentioned above. Which is odd, because it's not required locally.
My new dependencies:
"dependencies": {
  "body-parser": "^1.18.2",
  "botbuilder": "^3.12.0",
  "express": "^4.16.2",
  "restify": "^6.3.4"
}

Interesting, that a few month ago I did not have this issue. My dependencnies were:

"dependencies": {
"botbuilder": "^3.11.0",
"restify": "^6.2.3"
}

and btw, after updating to latest version, my 2 bots codebases niw have another warning in logs:
`The Bot State API is deprecated.  Please refer to https://aka.ms/I6swrh for details on how to replace with your own storage.`

I am also getting the same issue. This is really frustrating

Any updates??

I have the same issue as well. If I specify the app id and password in the code, it throws this error. If I take them out, it doesn't throw this error (but I get other errors).

Guys, just make the appID and appPassword as null if you don't want to use the same as part of testing from emulator. (Emulator local testing does not need appid and apppassword)
//use this for testing in local and if you don't have appid and app password
var appId = null;
var appPassword = null;
This will resolve this error. Thanks.


Improve type inference for copy-and-update and named item expressions

Decides whether a copy-and-update expression is a record update or an array update based on the names of local variables, not the type of the container operand.
Adds the HasField class constraint to support record copy-and-update and field access expressions on undetermined types (e.g. in lambdas).
Clean up related diagnostics and remove all other obsolete diagnostics.

Closes #1365 and closes #1380.

/azp run


[5.6] Remove duplicated code to retrieve validated data

We can technically also remove it from the ValidatesRequests trait:
https://github.com/laravel/framework/blob/ee051fb44425a5cbf363f640b6dd33f492d90940/src/Illuminate/Foundation/Validation/ValidatesRequests.php#L59-L61
...but it may be considered a breaking change there, in case someone overwrote that for whatever reason.

@taylorotwell Did you read about the breaking changes and found them acceptable, or should we submit another PR to revert this one?


Add auto-publish script

Ideally, we should point to a link where TAG and PING are agreeing to do this. Having said that, this pull request could serve as such.
@torgo @plinss @npdoty @pes10k

This looks good to me.  If it looks good to @hober too then i'm good with merging

Privacy Working Group discussed and agreed on this: https://github.com/w3c/privacywg/blob/main/minutes/privacywg-20241121.md#a-securityprivacy-questionnaire

@ylafon , wanted to touch bases with you as follow up here at @hober 's suggestion.  Do you have any thoughts or concerns, or suggestions for further improvement

The SoTD produced by that script has a different licensing requirement section, I don't think there is an issue now, but it was some times ago. If no-one complains about it, I can only be happy that auto-publishing is working now!


Cache the whole installation when possible

In case release=true we try to cache the whole installation.
As cache restore key we use the whole input + the installer checksum, so
we only get a similar setup back.
For saving we hash the content of /var/lib/pacman/local which contains all the info
about which packages are installed.
Fixes #50

Looks good! However, it feels that PackageCache is a superset of InstallCache (restore and save are almost the same). Is it possible to define a base class, and then extend others from there?
BTW, if you find it easier to handle, those classes can be defined in a different file.

Is it possible to define a base class, and then extend others from there?

I'd rather not tbh, as I think it would be harder to understand if I split it up. I've moved some common things out of save though now (saveCacheMaybe, hashPath)

So here are runs from #50:

saving cache 8m40s: https://github.com/lazka/setup-msys2/runs/904253520
restore 2m26s (1278 MB): https://github.com/lazka/setup-msys2/runs/904284561
no cache 4m6s: https://github.com/ComFreek/curv/runs/886676572

We could save one minute with the first run by not saving the package cache.

I'd rather not tbh, as I think it would be harder to understand if I split it up. I've moved some common things out of save though now (saveCacheMaybe, hashPath)

What about defining restore(paths, key, restoreKeys) and using it as restore([this.pkgCachePath], this.jobCacheKey, [this.jobCacheKey, this.fallbackCacheKey]) from PackageCache; and restore([this.msysRootDir], this.jobCacheKey, [this.jobCacheKey]) from InstallCache? The same for L99-L107 and L142-L150.

So, in case the config stays the same it's worth it. If you experiment and change config a lot it might be a bit annoying. And if you hit the 5GB limit on each run it will be super slow.

I think this is expected. Users should be aware that changing the config frequently will produce multiple cache misses. By the same token, users should be aware of the limits. The limit does not only apply to caching; some packages cannot be built because of RAM or disk space. The use case we want to accelerate is users running the same config very frequently.
I believe that the time savings for frequent runs are worth having overhead the first 1-2 runs after each change. Not so long ago we were having +12min setup time. Now we are talking about 1-2min. That's awesome.

What about defining restore(paths, key, restoreKeys) and using it as restore([this.pkgCachePath], this.jobCacheKey, [this.jobCacheKey, this.fallbackCacheKey]) from PackageCache; and restore([this.msysRootDir], this.jobCacheKey, [this.jobCacheKey]) from InstallCache? The same for L99-L107 and L142-L150.

ok, done.

I think this is expected. Users should be aware that changing the config frequently will produce multiple cache misses. By the same token, users should be aware of the limits. The limit does not only apply to caching; some packages cannot be built because of RAM or disk space. The use case we want to accelerate is users running the same config very frequently.

yeah. if this really is a problem they can move the package installation into the next run step so the packages don't get cached.

I already told you in chat, but if https://github.com/actions/cache/issues/301 gets resolved we'll get faster cache saving as well.

One remaining question: If we know we are going to cache the whole installation, should we bother saving the package cache?

Thanks! :tada:


api(ticdc): extract forwardToOwnerMiddleware

What problem does this PR solve?

Issue Number: close #5830
What is changed and how it works?
Extract a function called forwardToOwnerMiddleware() which is used as a Gin Middleware.
Check List
Tests

No code

Questions
Will it cause performance regression or break compatibility?
No.
Do you need to update user documentation, design documentation or monitoring documentation?
No.
Release note
code refactoring: extract forwardToOwnerMiddleware

Codecov Report

Merging #5831 (9188f56) into master (b9773ac) will increase coverage by 0.1447%.
The diff coverage is 72.6045%.

Flag
Coverage Δ

cdc
62.0657% <60.2693%> (+0.1343%)
:arrow_up:

dm
51.9352% <52.0833%> (+0.0163%)
:arrow_up:

engine
62.1846% <88.7931%> (+0.5913%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #5831        +/-   ##
================================================
+ Coverage   56.9653%   57.1100%   +0.1447%
================================================
  Files           681        682         +1
  Lines         79903      80196       +293
================================================
+ Hits          45517      45800       +283
- Misses        30106      30118        +12
+ Partials       4280       4278         -2

why make this change? some ready-only requests can be handled by the non-owner nodes.

why make this change? some ready-only requests can be handled by the non-owner nodes.

Hi! I found that these handlers all check current server is owner or not. If it is not owner, then forward request to owner, or handle it locally.
Other handlers which does not need to check owner role are not changed in this PR.

/run-all-tests

Thank you for your contribution!

/merge

/run-all-tests

/run-verify-test


Docs.MS CI Updates for Azure.Communication.Chat

CI Update for release of Azure.Communication.Chat

Docs Build status updates of commit f48d53a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

bundlepackages/azure-dotnet-preview.csv
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Visiblity: hidden For .carousel and .carousel

When using the (fullWidth) Carousel Slider in v0.100.2, each carousel-item isn't visible to the user, even though when opening up Developer Tools, you can see the adjusting transform and z-index as it should. For whatever reason however, I am seeing that on materialize.min.css:13, that visibility is set to hidden for both the  .carousel and .carousel-item classes. Just thought you should know, if anyone else is dealing with this problem.
Thanks for all the work you guys do with Materialize, I greatly appreciate it.
Current Behavior
Any elements that are showing up in a Carousel slide are in position where they should be when inspecting a page, but they are not visible so the user does not see them.
Possible Solution
.carousel.carousel-item{
visibility: visible;
}
Just an image to see what i'm talking about, I hope this helps.
https://imgur.com/a/3fhHTBf
Your Environment

Version used: 0.100.2
Browser Name and version: Google Chrome
Operating System and version (desktop or mobile): Fedora 23

Have you tried updating to the latest version?


Feature request - get local rotation

Operating system or device - Godot version:
Windows 7 64 bit Godot 2.1.3
I would like a local equivalent to get_rotation()
Use case: need to know the angle of a child object compared to the parent (e.g. a wheel on a car, a gun on a tank, a thruster on a spaceship etc. etc.)

get_rotation is local
On Apr 19, 2017 5:19 PM, "Zireael07"<EMAIL_ADDRESS>wrote:

Operating system or device - Godot version:
Windows 7 64 bit Godot 2.1.3
I would like a local equivalent to get_rotation()
Use case: need to know the angle of a child object compared to the parent
(e.g. a wheel on a car, a gun on a tank, a thruster on a spaceship etc.
etc.)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/8456, or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z2xV3TBM8roXU2rF2-AAcieLHHcAeks5rxiYGgaJpZM4NB1nU
.

Docs and in-editor help led me to believe it was global.

I can't find any in-editor documentation for get_rotation.
Which docs do you mean?

There is also get_global_rotation.
Links to latest docs:
Node2D::get_rotation
Node2D::get_global_rotation
Compare docs with get_position, which also doesn't explicitly state it is local:

Vector2 get_position ( ) const

Return the position of the 2D node.

float get_rotation ( ) const

Return the rotation in radians of the 2D node.

Therefore I think this can be closed.

Docs need improvement for sure.
I'll be updating math-related docs (along with a separate write up on docs.godotengine.org) before 3.0, so hopefully these will be clear.

To be more specific, methods in Godot that do not contain the words "global" or "local" seem to always be relative to the parent object. With rotation, this is the only local that makes sense.


Discuss ability to change default bytes/inode ratio when creating an ldiskfs filesystem

Description
IML does not currently offer a way to specify/change the default bytes/inode ratio when creating an ldiskfs filesystem on an OST or MDT. When running the mkfs.lustre command, it does not provide the --mkfsoptions="-I <bytes_per_inode>" option. The "<bytes_per_inode>" ratio can also be thought of as the average file size for that target.
Repro
IML doesn't currently have this feature.
Version
What version of IML? 4.0.x
What Operating System? all supported
What Operating System version? all supported
Design Considerations
For OST's on filesystem creation screen:

Provide an Average File size property for each target.
Use a slider to select a value between 4KB and maybe 16MB. (This is the optimal range)

For MDT's on filesystem creation screen:

Provide an Average File size property for each MDT.
Use a slider to select a value between 2KB and 1MB. (This is the optimal range)

We already have bytes_per_inode during fs creation as seen here:

We are currently missing advanced tuning from OSTs in general, so it would need to be added both for fs creation and adding more OSTs after initial fs deployment


User class

Created user class for compability with the webserver

Looks great!

Looks great, I'm gonna merge.


Using this as a GitHub service container?

The current apt-get install inn2 approach used to run pynntp pytests is unreliable and fails to install unpredictably.
The approach in this repo seems reliable but has two problems:

#1
We need to access this container within a GitHub Action.

https://docs.github.com/en/actions/use-cases-and-examples/using-containerized-services/about-service-containers

#2 is resolved
docker pull greenbender/inn
# or
docker pull ghcr.io/greenbender/inn:buildcache


New generation of destination lists is missing an import

commit 2b5c505 does not generate valid kotlin as it is missing the import for DestinationSpec:
> Task :feature:foo:ui:compileDebugKotlin FAILED
e: file:///Volumes/.../feature/foo/FooUiDestinations.kt:5:37 Unresolved reference: DestinationSpec

It's already fixed. 1.x.38-beta is coming shortly :) Thanks for reporting!


Basic Improvements and Updates for Template

Added new Templates: Overview, Teaser, Tech-data, Product (including InstallationAmounth) and FAQ
Fonts: Switched from Google src to Local
Fixed: Base-Template, IE11 problems and added headerbutton into navigation
Styling: Moved from SASS to CSS
Loading speed: Improved Loading speed using Lighthouse (google-chrome)
Copyright: Autoupdate of Year
Favicon: Allowing manuall set of Favicon

Is this ever going to be merged?
No idea at the moment how to incorporate those. Wanted to fix for local fonts as well, and had no clue where to start, so would appreciate it.


[PolygonROI] crash delete roi and switch to other tlbx

Fix the crash:

Drop a data in a view, open PolygonROI
Draw a ROI, delete it (with the "D" button in medRoiManagementToolbox)
Switch to an other toolbox (Paint for instance) -> crash

:m:

@Florent2305 done :)


GH Project Workflow: Handle case where issue number is empty in 'Fixes' notation

This PR makes a small tweak to the GH Project workflow when parsing, looking for the fixes notation, to ensure an empty reference or an invalid reference is ignored (e.g. https://github.com/rancher/dashboard/pull/10922 and https://github.com/rancher/dashboard/pull/10921)
We check that the extracted issue number can be parsed as an integer and only use it, if it can.

I hit something similar with https://github.com/rancher/dashboard/pull/10761 and had to catch an exception instead, plus two other tweaks were needed (https://github.com/rancher/dashboard/pull/10761/files#diff-674cd4244c5f71d475138dd411bb5959bac74710742c60a2e8c5363f999db827). Shall we iterate with this solution, maybe those tweaks aren't needed now?


chore(span): enable lint warnings on missing docs

[!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

#6610  👈
#6609
#6608
main

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

Join @DonIsaac and the rest of your teammates on  Graphite


[Documentation] Docs seem out of sync with code; cannot find 'Bot' class

Several places in the docs and comments refer to an instantiatable class Bot, but I can't find any evidence of this class existing. I imagine these docs are outdated.
A few examples:

https://github.com/Microsoft/botbuilder-js/wiki/Using-LUIS-and-QnA-Maker#using-luis
https://github.com/Microsoft/botbuilder-js/blob/a19f787657c2f0e85bc93f5b078cc3481774ba01/libraries/botbuilder-dialogs/lib/dialogSet.d.ts#L32

Yes... We're working to update the docs.

Content updated with working sample code. We can close this item now...


Create Posts “20220925-converting-an-integer-to-a-string-in-any-base”

Automatically generated by Netlify CMS

👷 Deploy Preview for monetaboot processing.

Name
Link

🔨 Latest commit
df08152b8f1e357fab12d076ec54aef6b8ab432d

🔍 Latest deploy log
https://app.netlify.com/sites/monetaboot/deploys/633091b8b70c200008de0f38


vvcccchtnkekujnbbvcdvctrbeklvrkkigluldukrnht

Yubico Authenticator version:
Operating system and version:
YubiKey model and version:
Bug description summary:

Steps to reproduce
[Please explain what you did when the bug appeared, and if and how you have been
able to reproduce it.]
Expected result
[What did you expect to happen when you did the above?]
Actual results
[What actually happened?]
Other info
[Anything else you would like to add?]

sorry for the spam issue

Un theuiih


rbd: add GetGlobalMirrorStatus implementing rbd_mirror_image_get_global_status

This function is added, along with required return types and some helper
functions, to support fetching the global mirroring status component
that makes up a major part of rbd mirror image status command's
output.
Part of: #460
Checklist

[x] Added tests for features and functional changes
[x] Public functions and types are documented
[x] Standard formatting is applied to Go code

I have put a DNM label on this for now so that we can revisit the testing once we have ci that supports proper two-cluster mirroring. I do think that the code is fairly close to correct, but I'd love more thorough testing first if possible.

@mergifyio rebase


Chargeback refactor: extract currency_symbol method

WIP

until #13857
currently this includes #13857

What
Let's extract this to a method so we have a good place to describe design problem in db.
@miq-bot add_label chargeback, refactoring, euwe/no
@miq-bot assign @kbrock
@kbrock this is follow-up #13857. The only difference is perhaps that this may not go to euwe.

@miq-bot add_label wip

@miq-bot remove_label wip


[BUG] globalOpts.signcolumn = "no" does not work

Field
Description

Nixpkgs
unstable

Home Manager
unstable

[x] I have read the FAQ and my bug is not listed there.

Description
Setting globalOpts.signcolumn to "no" is not working and when entering neovim and running :set signcolumn it shows auto.
Running :set signcolumn=no once neovim is open, removes the signcolumn.
My configuration: https://github.com/jasper-clarke/neovim/blob/nixvim/config/options.nix#L5

Just curious if you tried with no plugins to see if there's something setting it up differently through an autoCmd or something.

Thanks for your reply @khaneliman
I removed my plugins.nix and the issue is still persistent.
I also checked my own autoCmd's and nothing is triggering signcolumn.

Alright, taking a look.

vim.opt
The most convenient way for setting global and local options, e.g., in init.lua,
is through vim.opt and friends:
vim.opt: behaves like :set
vim.opt_global: behaves like :setglobal
vim.opt_local: behaves like :setlocal

Have you tried using opts ?
https://github.com/nix-community/nixvim/blob/aabbd60633947baba11db44df84f402edc241440/modules/opts.nix#L9-L14

@khaneliman
Using opts.signcolumn = "no"; works.
Thanks very much for the help.


Allow specifying transforms through package.json

This change makes it possible to specify sheetify transforms
across your package through browserify transform arguments, e.g.
{
  "browserify": {
    "transform": [
      ["sheetify", { "use": ["sheetify-cssnext"] }]
    ]
  }
}

Thanks! :)

:100:

merged and released as v3.3.0, although need permission to publish to npm.

Thanks @ahdinosaur! Published, and added you to the npm package too :)


20170329

Expected behavior
Actual behavior
Information about the Issue
Steps to reproduce the behavior

...
...

gaowenhui20170329

No information provided or steps to replicate - Closing


update bcosRegister command to support sol compile

Codecov Report

Merging #74 into release-rc4 will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@               Coverage Diff                @@
##             release-rc4     #74      +/-   ##
================================================
- Coverage           5.63%   5.62%   -0.02%
  Complexity            25      25
================================================
  Files                 22      21       -1
  Lines               1525    1528       +3
  Branches             173     180       +7
================================================
  Hits                  86      86
- Misses              1422    1425       +3
  Partials              17      17

Impacted Files
Coverage Δ
Complexity Δ

...va/com/webank/wecross/console/common/HelpInfo.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...com/webank/wecross/console/custom/BCOSCommand.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...om/webank/wecross/console/common/ConsoleUtils.java
33.33% <0.00%> (-1.17%)
21.00% <0.00%> (ø%)

...rc/main/java/com/webank/wecross/console/Shell.java
0.00% <0.00%> (ø)
0.00% <0.00%> (ø%)

.../com/webank/wecross/console/common/JlineUtils.java
0.00% <0.00%> (ø)
0.00% <0.00%> (ø%)

.../com/webank/wecross/console/routine/TwoPcImpl.java
0.00% <0.00%> (ø)
0.00% <0.00%> (ø%)

...va/com/webank/wecross/console/common/ZipUtils.java

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 1aef469...65f95b2. Read the comment docs.


Create node/model node factories

Use factory manager to handle object creation for nodes, to create more separation of concern

if there is no intention to do this, should we close this issue? @leeping-ng

Yes let's close it.


error after fresh installation

i have
Plug 'https://github.com/simrat39/symbols-outline.nvim'

plus many other plugins
but when i open nvim i get this error:

ignore that part with deprecated nerdtree bla bla variable
here is the location of the error (line 51):

i changed M to local M but it doesnt work anyway.

Are you on the latest neovim? What's your neovim --version?

Note that this plugin requires neovim 0,5 and utilizes the inbuilt lsp client

upsyyyy. my bad.
i have 0.4.4

should i do special configuration for LSP? or should i leave it as it is?

now i installed nightly-vim (0.5) from AUR (im arch linux user)
i put this in my init.vim
" init.vim
let g:symbols_outline = {
    \ "highlight_hovered_item": v:true,
    \ "show_guides": v:true,
    \ "position": 'right',
    \ "auto_preview": v:true,
    \ "keymaps": {
        \ "close": "<Esc>",
        \ "goto_location": "<Cr>",
        \ "focus_location": "o",
        \ "hover_symbol": "<C-space>",
        \ "rename_symbol": "r",
        \ "code_actions": "a",
    \ },
    \ "lsp_blacklist": [],
\ }

when i open nvim, doesnt give my any errors.
when i type :sym and press tab i get :SymbolsOutline, so there is proof that the plugin is recognized by nvim, but when i press enter nothing happens.
any ideas?

Well, this plugin needs a Language Server running in the background to display the symbols properly. Neovim 0.5 supports this but you need to actually set up the language server with something like https://github.com/neovim/nvim-lspconfig.
Maybe this video can help a bit with your understanding: https://www.youtube.com/watch?v=ArwDgvYEZYk

okey then, how do i setup this https://github.com/neovim/nvim-lspconfig only for symbols outline only. because there are a lot of options and i dont think i need all of them. just tell me for symbols outline. please. i know that im a noob, but please teach me.

this video just tells you what a LSP is. in short, this video is useless
can you, at least, give me your "properly configured lsp" too see what im missing?
honestly, your documentation is crap. how do you expect me to understand from nothing to "properly configure an lsp" if i dont have strong background in neovim configurations. you can at least help me achieve that, im open to new stuff and i learn fast.
you make a plugin and you dont write proper documnetation for it to even be able to run it. good job @simrat39

I'm not going to spoonfeed you your entire lsp configuration, that's something you have to do by yourself. I already linked nvim-lspconfig, the go to way of setting up language servers, you might wanna read their readme. It outlines everything you need tto set it up.


datafusion v28.0.0

Attempting to debug the build errors we've been seeing in the past few release PRs
Closes #12
Closes #23
Closes #24
Closes #25
Closes #26
Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge/datafusion, could you please review?

@conda-forge-admin, please rerender

Hi @andygrove, @cpcloud - I was looking to use ibis-datafusion and ended up here, could you review and merge this please. Thanks and Regards.

Hi @andygrove, @cpcloud - when you get a chance, could you review and merge this please. Thanks and Regards.

@conda-forge-admin, please rerender

@rxm7706 The PR has just been updated by @charlesbluca, and I plan on approving it later today.
@cpcloud I asked Charles if he would mind becoming a maintainer here (we both work at NVIDIA) since I cannot effectively review PRs here. Let me know if you have any objections.

So, I don't have write access to this repo and cannot merge this PR. @cpcloud Could you review/merge when you have the time?


In framework7-react, how to use picker, pull-to-refresh, infinite-scroll ？？？？

https://framework7.io/docs/infinite-scroll.html <----
The picker, pull-to-refresh, and infinite-scroll components are not included in this document. I would like to ask, is it not supported in framework7-react (picker, pull-to-refresh, infinite-scroll)? ? ? ? ? ?
If you support, please tell me how to use these components in framework7-react (picker, pull-to-refresh, infinite-scroll)

Do you want to ask a question? Are you looking for support? The Framework7 forum and Stack Overflow are the best places for getting support

Please, don't use GitHub issues for questions

Why not use the picker as a component , are you planning to update it ?


VS code debugger keeps pausing on start

VS Code Version:
1.55.2
OS Version:
Windows 10 1909

Steps to Reproduce:

Create js file

// test.js
import {isMainThread, Worker} from "worker_threads";

if(isMainThread){
    new Worker('./test.js')
} else {
    console.log('--Worker--')
}

Run it in debug by node js configuaration.

Vscode pauses on debugger statement at firs line of the code.

Does this issue occur when all extensions are disabled?: Yes/No
Yes

/jsDebugLogs

vscode-debugadapter-3b13bf31.json.gz

Thanks, this looks like a Node.js bug. I've opened https://github.com/nodejs/node/issues/38420 for them, please subscribe to that for updates.


Fix a build error in Xcode 14 when targeting macOS 12

There seems to be an issue with the new Swift Duration type and availability checks on macOS. This is a temporary fix until a proper workaround is found or the bug is fixed by Apple.
Fixes https://github.com/pointfreeco/swift-composable-architecture/issues/1349.

Hey @Jeehut, thanks for looking into this so soon after the RC release!
I think a better fix will be #1351 because we do really want to use Duration here, and we wouldn't want to have to make a breaking change later once Duration is available to macOS.


Allow excluding 3rd party code

I have a submodule checked out in my repository and mypy is peppering it in errors and I don't seem to be able to find a way to exclude it. Strangely, when I visit python files in my venv, they don't get any errors (even if they have the same issue present in the file), so there must be some exclusion applied for those kinds of files by the extension.
I've tried using mypy.ini but as VSCode invokes mypy on the file itself, I still receive errors from this extension.
I'd like mypy to treat the submodule like it treats files in the venv... what's the recommended approach here?

@samskiter Can you try adding mypy.ini it to mypy-type-checker.args?

Because we have not heard back with the information we requested, we are closing this issue for now. If you are able to provide the info later on then we will be happy to re-open this issue to pick up where we left off.


[CELEBORN-1082] Fixing partition sorter task failures due to duplicate sorting

What changes were proposed in this pull request?
As title
Why are the changes needed?
Recently, while testing on the main branch, we discovered that the partition sorter task might fail with a NoSuchFileException, leading to the entire job's failure. Upon further investigation, we identified that the root cause of this issue is the potential addition of the same sorting task to the sorter queue multiple times.
23/10/22 01:02:15,334 DEBUG [worker-file-sorter-execute-9530] PartitionFilesSorter: sort complete for application_1653035898918_4284043-9975 /data1/celeborn/worker/celeborn-worker/shuffle_data/application_1653035898918_4284043/9975/0-0-0
...
23/10/22 01:02:15,335 ERROR [worker-file-sorter-execute-9532] PartitionFilesSorter: Sorting shuffle file for application_1653035898918_4284043-9975-0-0-0 /data1/celeborn/worker/cele
born-worker/shuffle_data/application_1653035898918_4284043/9975/0-0-0 failed, detail:
java.nio.file.NoSuchFileException: /data1/celeborn/worker/celeborn-worker/shuffle_data/application_1653035898918_4284043/9975/0-0-0
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:177)
        at java.nio.channels.FileChannel.open(FileChannel.java:287)
        at java.nio.channels.FileChannel.open(FileChannel.java:335)
        at org.apache.celeborn.common.util.FileChannelUtils.openReadableFileChannel(FileChannelUtils.java:33)
        at org.apache.celeborn.service.deploy.worker.storage.PartitionFilesSorter$FileSorter.initializeFiles(PartitionFilesSorter.java:641)
        at org.apache.celeborn.service.deploy.worker.storage.PartitionFilesSorter$FileSorter.sort(PartitionFilesSorter.java:559)
        at org.apache.celeborn.service.deploy.worker.storage.PartitionFilesSorter.lambda$null$0(PartitionFilesSorter.java:146)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
...

Before this PR, there was a scenario where sorter tasks for the same fileId could arrive after being removed from the sorting state, and they could be mistakenly added to the sorter queue. To address this, we moved the code block that checks the fileId's status in sorted inside the synchronized (sorting) block. This change ensures that tasks are not added to the sorter queue multiple times because if a fileId's sorter task has already completed and its status has been removed from sorting, it will definitely be present in sorted. This behavior is consistent with how it worked prior to version 0.3.0.
Does this PR introduce any user-facing change?
No, only bug fix
How was this patch tested?
Pass GA

the bug was introduced in https://github.com/apache/incubator-celeborn/pull/1932

cc @waitinfuture @FMX


[Resolves #16] Enable users to update the number of their organizations' stars

Review this plz :rocket:
@k0kubun

Nice work! :cool:

thanks.

Merged and applied to production.


✨(converters) add edx server event xapi converter

Purpose
The edx server events  are the most simple and common events in the edx tracking logs. They are logged at almost all requests made to the edx lms. We want to convert them into xAPI format.
Proposal
ServerEventSchema validates the edx server event.
ServerEventToXapi uses the ServerEventSchema to validate the edx server event and then converts it to xAPI format.
XapiConverterSelector deserializes the edx events and tries to match a known converter for the event conversion.

Some Benchmarks:
I have generated a file "log.txt" of size 1,1G (1 million lines) repeating the gelf log containing a simple server event:

{"version": "1.1", "host": "example.org", "short_message": "{"username":"someUsername","event_type":"/courses/course-v1:organisationCourse+numeroCours+sessiondCours/courseware/b5722732abed4eb7ba823f0b4239d50d/e2fa42fa1ca645389ee4618c86e982ff/","ip":"<IP_ADDRESS>","agent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0","host":"7a4a1c08e030","referer":"http://localhost:8072/courses/course-v1:organisationCourse+n…32abed4eb7ba823f0b4239d50d/e2fa42fa1ca645389ee4618c86e982ff/\",\"accept_language\":\"en-US,en;q=0.5\",\"event\":\"{\"POST\": {}, \"GET\": {}}","event_source":"server","context":{"course_user_tags":{},"user_id":2,"org_id":"organisationCourse","course_id":"course-v1:organisationCourse+numeroCours+sessiondCours","path":"/courses/course-v1:organisationCourse+numeroCours+sessiondCours/courseware/b5722732abed4eb7ba823f0b4239d50d/e2fa42fa1ca645389ee4618c86e982ff/"},"time":"2020-04-18T13:23:03.357329+00:00","page":null}", "timestamp":<PHONE_NUMBER>.3072, "level": 1, "_user_id": 9001, "_some_info": "foo", "_some_env_var": "bar"}

And then used the "perf" command to run the performance tests:
1) extract command without resultcallback vs. extract command with resultcallback

ralph extract -p gelf (the original version without using resultcallback)

$ sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat log.txt | ralph -v CRITICAL extract -p gelf > /dev/null 2>&1";
PARSE without resultcallback

280,27 msec task-clock          #    0,014 CPUs utilized
849         context-switches    #    0,003 M/sec
10          cpu-migrations      #    0,036 K/sec
21 480      page-faults         #    0,077 M/sec
429 201 469 L1-dcache-loads     # 1531,410 M/sec

19,944762601 seconds time elapsed

PARSE with resultcallback

278,75 msec task-clock          #    0,014 CPUs utilized
728         context-switches    #    0,003 M/sec
20          cpu-migrations      #    0,072 K/sec
21 458      page-faults         #    0,077 M/sec
415 022 513 L1-dcache-loads     # 1488,870 M/sec

20,136412941 seconds time elapsed

= It seems that using resultcallback makes ralph run a bit slower (difference of 0.19 sec = ~1% slower)
2) extract to-xapi command vs extract | convert command:
$ echo "TO-XAPI"; sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat log.txt | ralph -v CRITICAL extract -p gelf to-xapi -p https://fun-mooc.fr > /dev/null 2>&1"; echo "CONVERT" ; sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat log.txt | ralph -v CRITICAL extract -p gelf | ralph -v CRITICAL convert -p https://fun-mooc.fr > /dev/null 2>&1"
TO-XAPI

271,03 msec task-clock          #    0,001 CPUs utilized
1 608       context-switches    #    0,006 M/sec
31          cpu-migrations      #    0,114 K/sec
21 572      page-faults         #    0,080 M/sec
440 827 545 L1-dcache-loads     # 1626,474 M/sec

406,022736256 seconds time elapsed

CONVERT

289,43 msec task-clock          #    0,001 CPUs utilized
1 895       context-switches    #    0,007 M/sec
33          cpu-migrations      #    0,114 K/sec
21 505      page-faults         #    0,074 M/sec
424 223 608 L1-dcache-loads     # 1465,721 M/sec

545,113409858 seconds time elapsed

= It seems that using extract to-xapi is a bit faster than using extract | convert (difference of 139.09 sec = ~25% faster)
3) parallel extract to-xapi command vs extract | parallel convert command:
$ echo "TO-XAPI PARALLEL"; sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat log.txt | parallel --pipe ralph -v CRITICAL extract -p gelf to-xapi -p https://fun-mooc.fr > /dev/null 2>&1"; echo "CONVERT PARALLEL ONLY CONVERT STEP" ; sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat log.txt | ralph -v CRITICAL extract -p gelf | parallel --pipe ralph -v CRITICAL convert -p https://fun-mooc.fr > /dev/null 2>&1"
TO-XAPI PARALLEL

270,76 msec task-clock                #    0,001 CPUs utilized
1 052       context-switches          #    0,004 M/sec
23          cpu-migrations            #    0,085 K/sec
21 459      page-faults               #    0,079 M/sec
436 399 752 L1-dcache-loads           # 1611,733 M/sec

239,929169634 seconds time elapsed

CONVERT PARALLEL

260,28 msec task-clock                #    0,001 CPUs utilized
1 084       context-switches          #    0,004 M/sec
20          cpu-migrations            #    0,077 K/sec
21 412      page-faults               #    0,082 M/sec
416 210 201 L1-dcache-loads           # 1599,095 M/sec

223,509672211 seconds time elapsed

Note: Suprisingly "parallel extract | parallel convert" had worse performances (411 seconds)
= It seems that using extract | parallel convert is a bit faster than using extract to-xapi (difference of 16 sec = ~7% faster)
4) Bonus: Comparing with first implementation of the converter (version using Marshmallow load/dump without GoTo/Link/KwargPath):
echo "TO-XAPI (FIRST COMMIT VERSION)"; sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat log.txt | ralph -v CRITICAL extract -p gelf to-xapi -p https://fun-mooc.fr > /dev/null 2>&1";
TO-XAPI (FIRST COMMIT VERSION)

276,52 msec task-clock          #    0,001 CPUs utilized
1 294       context-switches    #    0,005 M/sec
23          cpu-migrations      #    0,083 K/sec
21 573      page-faults         #    0,078 M/sec
486 933 236 L1-dcache-loads     # 1760,904 M/sec

398,295653421 seconds time elapsed

= It seems that the first implementation of the converter is a bit faster (difference of 7.7 sec = ~2% faster)
Conclusion:
The extract | parallel convert command performs better than the extract to-xapi command as soon as we execute it in parallel.
But I think this might point out another problem - the conversion is about 20 times slower than the extracting part. Should we do it better ?

Let's talk about this IRL!

WIP on Benchmarks:
1)  extract | convert command (new version of the converter using conversion_dict)
sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | ralph -v CRITICAL extract -p gelf | ralph -v CRITICAL convert -p https://fun-mooc.fr > /dev/null 2>&1"
294,17 msec task-clock          #    0,001 CPUs utilized
1 340       context-switches    #    0,005 M/sec
23          cpu-migrations      #    0,078 K/sec
21 495      page-faults         #    0,073 M/sec
417 865 199 L1-dcache-loads     # 1420,490 M/sec

381,934024065 seconds time elapsed

= It seems the new version of the converter performs better (381 vs. 545 sec)(difference of 163.18 sec = ~30% faster)
2) extract | convert command (new version of the converter using conversion_dict with flat_conversion_array )
sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | ralph -v CRITICAL extract -p gelf | ralph -v CRITICAL convert -p https://fun-mooc.fr > /dev/null 2>&1"
301,51 msec task-clock          #    0,001 CPUs utilized
1 526       context-switches    #    0,005 M/sec
18          cpu-migrations      #    0,060 K/sec
21 519      page-faults         #    0,071 M/sec
428 266 972 L1-dcache-loads     # 1420,396 M/sec

 351,270590901 seconds time elapsed

= It seems that with the flat_conversion_array the converter performs a bit better (351 vs. 381 sec)(difference of 30.66 sec = ~8% faster)
2) extract | convert command (new version of the converter using conversion_dict with flat_conversion_array and json.loads instead of pandas.from_json) + last comparaison with to-xapi command (I promise)
echo "TO-XAPI"; sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | ralph -v CRITICAL extract -p gelf to-xapi -p https://fun-mooc.fr > /dev/null 2>&1"; echo "CONVERT" ; sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | ralph -v CRITICAL extract -p gelf | ralph -v CRITICAL convert -p https://fun-mooc.fr > /dev/null 2>&1"
TO-XAPI

266,43 msec task-clock          #    0,001 CPUs utilized
1 057       context-switches    #    0,004 M/sec
20          cpu-migrations      #    0,075 K/sec
21 447      page-faults         #    0,080 M/sec
476 452 651 L1-dcache-loads     # 1788,300 M/sec

214,656165536 seconds time elapsed

CONVERT

244,33 msec task-clock          #    0,001 CPUs utilized
1 059       context-switches    #    0,004 M/sec
12          cpu-migrations      #    0,049 K/sec
21 505      page-faults         #    0,088 M/sec
427 298 813 L1-dcache-loads     # 1748,842 M/sec

215,917903286 seconds time elapsed

= Convert and to-xapi finnaly line up! So it was the pandas.from_json part that slowed down the convert command. The differece with the previous run: (351 vs. 215 sec) (difference of 135.35 sec = ~39% faster)
Running cProfile and visualising base_converter with runsnakerun

= It's seems most of the time is spend on the marshmallow validation part
Test run without schema validation
sudo chrt -f 99 perf stat -d docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | ralph -v CRITICAL extract -p gelf | ralph -v CRITICAL convert -p https://fun-mooc.fr > /dev/null 2>&1"
1 447,58 msec   task-clock          #    0,023 CPUs utilized
815             context-switches    #    0,563 K/sec
16              cpu-migrations      #    0,011 K/sec
25 462          page-faults         #    0,018 M/sec
2 101 772 221   L1-dcache-loads     # 1451,921 M/sec

62,368962790 seconds time elapsed

I have tried to reproduce the benchmark of February on the extract command but wasn't able to get the same results, may be I did something wrong ?
docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | mprof run ralph -v CRITICAL extract -p gelf -c 100000 > /dev/null 2>&1";
docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | mprof run ralph -v CRITICAL extract -p gelf -c 50000 > /dev/null 2>&1";
docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | mprof run ralph -v CRITICAL extract -p gelf -c 5000 > /dev/null 2>&1";
docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | mprof run ralph -v CRITICAL extract -p gelf -c 3000 > /dev/null 2>&1";
docker-compose run --rm -T --no-deps app bash -c "cat bench/log.txt | mprof run ralph -v CRITICAL extract -p gelf -c 500 > /dev/null 2>&1"
mprof plot -t "Ralph extract with different chunk sizes" mprofile_20201204085924.dat mprofile_20201204085945.dat mprofile_20201204090006.dat mprofile_20201204090027.dat mprofile_20201204090049.dat

That's really strange, the memory usage should decrease considerably with smaller chunksizes but for some reason it's not the case for me :disappointed:
Comparing other json parsers (they read the input line by line) with default pandas read_json.

Zoom on the tree fastest:

=This benchmark suggest that using ujson / orjson packages could increase the performance of json parsing (reduce time by ~30%) (for extract and potentially convert command) and reduce memory consumption

Thanks for those benchmarks. My conclusion is that we can remove Pandas from project dependencies. :wink:

Closing this pull request as it will be split into smaller pieces.
The first part is #59


Unable to run on BitBucket Cloud Pipeline: Multiple Errors

Im setting up Codium for the first time in BitBucket Cloud and getting a few errors but its not clear what the underlying issue is. Ive done the following:

Setup a BitBucket Access Key with all permissions set (Ill limit this once its working)
Setup OpenAI Keys (Tried the User and Project Keys)
Committed this to the master branch
Created a PR after every change just to ensure the latest configs are used.

Repo Variables

PR

Docker Log
pipelineLog-{b7b9183b-aa13-4d62-b9f5-8077e44301ca}-{af72d680-5242-48dc-b6f0-3f795e1e1b8d}.txt
Build Log
Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
LiteLLM.Info: If you need to debug this error, use litellm.set_verbose=True'. 2024-08-16 05:11:48.639 | WARNING  | pr_agent.algo.ai_handlers.litellm_ai_handler:chat_completion:154 - Error during OpenAI inference:  Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new [LiteLLM.Info](http://litellm.info/): If you need to debug this error, use litellm.set_verbose=True'.
2024-08-16 05:11:48.730 | WARNING  | pr_agent.algo.ai_handlers.litellm_ai_handler:chat_completion:154 - Error during OpenAI inference:
2024-08-16 05:11:48.735 | WARN
pipelineLog-{b7b9183b-aa13-4d62-b9f5-8077e44301ca}-{af72d680-5242-48dc-b6f0-3f795e1e1b8d}.txt
ING  | pr_agent.algo.pr_processing:retry_with_fallback_models:331 - Failed to generate prediction with gpt-4-0125-preview: Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/litellm/main.py", line 401, in acompletion
response = await init_response
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/litellm/llms/openai.py", line 1124, in acompletion
raise e
File "/usr/local/lib/python3.12/site-packages/litellm/llms/openai.py", line 1079, in acompletion
headers, response = await self.make_openai_chat_completion_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/litellm/llms/openai.py", line 781, in make_openai_chat_completion_request
raise e
File "/usr/local/lib/python3.12/site-packages/litellm/llms/openai.py", line 772, in make_openai_chat_completion_request
await openai_aclient.chat.completions.with_raw_response.create(
File "/usr/local/lib/python3.12/site-packages/openai/_legacy_response.py", line 367, in wrapped
return cast(LegacyAPIResponse[R], await func(*args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openai/resources/chat/completions.py", line 1339, in create
return await self._post(
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openai/_base_client.py", line 1815, in post
return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openai/_base_client.py", line 1509, in request
return await self._request(
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/openai/_base_client.py", line 1610, in _request
raise self._make_status_error_from_response(err.response) from None
openai.NotFoundError: Error code: 404 - {'error': {'message': 'The model gpt-4-0125-preview does not exist or you do not have access to it.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/tenacity/_asyncio.py", line 50, in call
result = await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/pr_agent/algo/ai_handlers/litellm_ai_handler.py", line 152, in chat_completion
response = await acompletion(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/litellm/utils.py", line 1579, in wrapper_async
raise e
File "/usr/local/lib/python3.12/site-packages/litellm/utils.py", line 1399, in wrapper_async
result = await original_function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/litellm/main.py", line 424, in acompletion
raise exception_type(
^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/litellm/utils.py", line 8301, in exception_type
raise e
File "/usr/local/lib/python3.12/site-packages/litellm/utils.py", line 6558, in exception_type
raise NotFoundError(
litellm.exceptions.NotFoundError: litellm.NotFoundError: OpenAIException - The model gpt-4-0125-preview does not exist or you do not have access to it.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/pr_agent/algo/pr_processing.py", line 329, in retry_with_fallback_models
return await f(model)
^^^^^^^^^^^^^^
File "/app/pr_agent/tools/pr_reviewer.py", line 159, in _prepare_prediction
self.prediction = await self._get_prediction(model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/pr_agent/tools/pr_reviewer.py", line 181, in _get_prediction
response, finish_reason = await self.ai_handler.chat_completion(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/tenacity/_asyncio.py", line 88, in async_wrapped
return await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/tenacity/_asyncio.py", line 47, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/tenacity/init.py", line 326, in iter
raise retry_exc from fut.exception()
tenacity.RetryError: RetryError[<Future at 0x7fd3485bd910 state=finished raised NotFoundError>]
2024-08-16 05:11:48.735 | ERROR    | pr_agent.tools.pr_reviewer:run:148 - Failed to review PR: RetryError[<Future at 0x7fd3485bd910 state=finished raised NotFoundError>]

I saw that as well but I couldnt find out how to enable this or choose a different model.

we cannot debug your personal deployment

I setup GitHub and followed the standard installation with the same Open API Key and that worked perfectly. Is there anything else I can try to get this working? Ive also tried setting the environment variable to use a different model but I cant get that working.
I tried:
docker .... -e OPENAI.CONFIG_MODEL='gpt-3.5-turbo'... and docker .... -e CONFIG.MODEL='gpt-3.5-turbo'...
Ive also tried an older docker image, all the way to v11 but no luck.

Setting up local deployment may require effort and problem-solving.
If you struggle with it, you can try pr-agent pro, where installation is easier, among other benefits
https://pr-agent-docs.codium.ai/overview/pr_agent_pro/

I setup an Open API key using my organisations account and running it now works. Strange that using the same key works in GitHub but not BitBucket. Is there different logic for the models it chooses?

no


Fix unnecessary code block in project reports plugin docs

No issue/PR, just a typo fix. Re-raising #24554
Context
The last paragraph in this page is marked as "code block" even though it's just a sentence with markdown formatting.
https://docs.gradle.org/8.2-milestone-1/userguide/project_report_plugin.html#sec:project_reports_convention_properties

Before
Unnecessary code block:
https://github.com/gradle/gradle/blob/master/subprojects/docs/src/docs/userguide/core-plugins/project_report_plugin.adoc#convention-properties
After
Ideally no code block, it's just a sentence.
https://github.com/TWiStErRob/gradle/blob/patch-3/subprojects/docs/src/docs/userguide/core-plugins/project_report_plugin.adoc#convention-properties
Contributor Checklist

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

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

I've triggered a build for you.


1.8.0 final release

Tasks:

[x] review change log and credits
[x] write announcement
[x] downgrade curl in fiona-wheels project: https://travis-ci.com/sgillies/fiona-wheels/builds/89538021
[x] tag
[x] build and publish wheels and sdist
[ ] make announcements
[ ] 🍾

Here are the wheels and sdist: https://pypi.org/project/Fiona/1.8.0/#files.


webpackJsonp is not defined while using CommonsChunkPlugin

Do you want to request a feature or report a bug?
Bug
What is the current behaviour?
Getting webpackJsonp as undefined while trying to use CommonsChunkPlugin in Preact-CLI, trying to generate a separate vendor.js
If the current behaviour is a bug, please provide the steps to reproduce.
config.plugins.push(
    new webpack.optimize.CommonsChunkPlugin({
      name: 'vendor',
      filename: 'vendor.[hash].js',
      minChunks: ({ resource }) => (
        resource !== undefined &&
        resource.indexOf('node_modules') !== -1
      ),
    })
  )

  config.plugins.push(
    new webpack.optimize.CommonsChunkPlugin({
      name: 'main',
      children: true,
      async: true,
      minChunks: ({ resource }) => (
        resource !== undefined &&
        resource.indexOf('node_modules') !== -1
      ),
    })
  )

While trying to use this in `preact.config.js`, I get the following error when I try to load the app:
`bundle.js:1 Uncaught ReferenceError: webpackJsonp is not defined`

**What is the expected behaviour?**
It should generate vendor.js and main.js and the app should load without any error

@prateekbh Then what is the recommended way to fix this issue?

If you decide to go this path, make a custom template where vendor.js is loaded before anything else


Fetching posts for non existing author returns an empty list rather than 404

Going to close, because it's hard to know if i should 404 for a remote user.


Vue.js devtools

I wonder if you need to setup something specific in order to have the vue.js devtools up and running. The plugin I am usually using, doesn't indicate that the page uses vue.js unfortunately and the vuejs tab doesn't show up in the web inspector. Any hints?

You will need one of the latest Vue devtools versions for Vue.js 3 support.
The official ones are outdated.

Thanks. works like charm!


Fix github links of apps for foked launchers

Github links of apps are statically linked to github.com/espruino.
These links are wrong if you run a forked App Launcher, probably with unpublished apps.
I added onClick eventListeners for every github link, which generate the right url, if the launcher is not accessed via the main domain.

Thanks - it's a good point.
However adding an onclick listener seems like overkill. Since we dynamically generate the HTML anyway, can't we just fill in the correct link when the HTML is created?
That way you can do right-click and copy link address - which is something I do quite a bit

Yeah you are right, I changed it.

Thanks. Just merged. Made some tweaks to it so it doesn't break when hosted at non-github URLs (eg localhost).


Why DX12 for Windows Builds Instead of VK?

As a user, I am curious as to what considerations motivated the decision to use Direct3D 12 for builds generated for Windows & only use Vulkan w/ builds generated for GNU/Linux?
(Opposed to Direct3D 12, )Vulkan is:

Free/libre & open-source software (F/LOSS)
Even lower level & faster than Direct3D 12
Cross-platform w/ Windows, GNU/Linux, Android, FreeBSD, Nintendo Switch, etc.
Supports Windows as far back as Windows XP, where Direct3D 12 only supports Windows & its minimum supported version of it is Windows 10

Why not just maintain one low-level graphics API i.e. Vulkan to rule them all? The devs of dolphin-emu originally supported Direct3D 12 too (although they at least gave Windows users the option of Vulkan), before quickly deprecating it when they reviewed & recognised the above advantages of Vulkan & that maintaining just Vulkan created less work for themselves than also maintaining Direct3D 12 (especially in the days before VKD3D12 real-time API calls translation).

The tools from this repo only handle generating C code from MIPS instructions, it doesn't do anything graphic related. This question is offtopic for this repository, it would be better suited in an actual recompiled game project like https://github.com/Zelda64Recomp/Zelda64Recomp, or even in the graphic renderer library repo used by said project (https://github.com/rt64/rt64).
To answer your question:

From what I have heard, the Zelda64Recomp project decided to default to D3D12 on Windows builds instead of Vulkan because on their testing it was marginally faster than Vulkan on Windows.
RT64 have support for both because of the RHI (Rendering Hardware Interface) it uses, which is a very thin wrapper around those graphic renderers. There's even an on going effort to add a Metal renderer so recomp projects can be used on Macs (check https://github.com/rt64/rt64/pull/9).
The Zelda64Recomp project can change the graphic renderer on Windows by using a configuration file (no GUI at the moment, idk if there are plans to add this setting in the future).

Open %localappdata%/Zelda64Recomp/graphics.json and change API to Vulkan. note that this setting is case sensitive.

Oh, so sorry that this is the wrong repo, there have just been a lot of videos lately about n64recomp (mostly focusing on zelda64recomp) & the way they mention the APIs makes it sound like that is what the software in this repo chooses at re/compilation. Thank you for offering what insights you can, though.

I am curious as to what considerations motivated the decision to use Direct3D 12 for builds generated for Windows & only use Vulkan w/ builds generated for GNU/Linux?

Windows builds also include Vulkan support, the default being D3D12 is just a usability concern for reasons I'll outline further.

Free/libre & open-source software (F/LOSS)
Vulkan is an API, it is not software I can easily run and modify on my own in most places where it'll run realistically. The vast majority of drivers are proprietary black boxes which we have zero control over of how the API is implemented. It's just one more choice and not any less valid than D3D12 for this reason.

Even lower level & faster than Direct3D 12
This is very much not the case, and whatever advantage Vulkan had due to synchronization barriers has been pretty much compensated and completely up to par with the introduction of enhanced barriers, which I'll be implementing on the current backend in the near future.

Why not just maintain one low-level graphics API i.e. Vulkan to rule them all? The devs of dolphin-emu originally supported Direct3D 12 too (although they at least gave Windows users the option of Vulkan), before quickly deprecating it when they reviewed & recognised the above advantages of Vulkan & that maintaining just Vulkan created less work for themselves than also maintaining Direct3D 12 (especially in the days before VKD3D12 real-time API calls translation).

Because not one graphics API can rule them all, as Vulkan has very heavy shortcomings when targeting Windows that makes it less preferable for one reason or another. Some of them are due to the specification missing a few things D3D12 provides, and most of them are reasons linked to the actual market reality. A vast majority of games on Windows ship with D3D12. It is where features and optimizations land on first. It is what most vendors are working with. It often provides the best integration of various features with the OS and gets features ahead of time that take a while to show up in Vulkan.
Whatever reasons Dolphin had to drop or adopt the APIs again is entirely from design decisions carried over from having to implement things in the backends far beyond the scope of what they should've been. It is a program that has carried across multiple hardware generations, so these problems are expected. RT64 makes a bet that these low-level APIs are unlikely to change much in the future, and therefore the abstraction has been put at the lowest level possible for basically no cost. There's no actual maintenance cost to having both D3D12 and Vulkan because by design, both backends can't diverge at all. The situation will be the exact same with Metal and any other APIs that are introduced that are compatible with this idea. Dropping support for D3D12 provides no benefits whatsoever that you might be imagining.
There's plenty of benefits to leveraging both APIs and whichever fits best for the target platform. The developers behind these APIs have worked very hard to provide great validation tools that make my job much easier when I need to verify why something doesn't work. Even better, thanks to the decision to maintain both APIs, I get to leverage both of these at the same time and find things the other one might have not considered. This was also a recent realization in my case that Vulkan does not expose a particular hardware optimized layout that D3D12 does since Enhanced Barriers was introduced, which shows neither API is flawless. This situation often repeats itself as Vulkan has to deal with a lot of limitations carrying over from its 1.0 design that in many ways D3D12 does not have to.
If you want the nitty-gritty of reasons why I would definitely not want to default to Vulkan in Windows in the current state, here's a few issues that come to mind:

Presentation is very finicky for Vulkan on Windows. The only reliable way to get a swap chain that actually works with HDR, low latency and the ability to take screenshots while in fullscreen (!) is to present through DXGI. This technique requires a bunch of cross-API hacks that aren't even reliable to execute and are definitely not worth the trouble implementing. NVIDIA offers an specific control panel option to work around this to basically insert their own DXGI handling on top of Vulkan, a workaround I wouldn't even dare to put on a usage guide to expect people to do. People shouldn't be messing with the control panel of their GPU!
I'm also pretty certain there's just no support for DXGI Swap Effects in Vulkan, as the Swap Chain API is not as descriptive as the DXGI one when it comes to this behavior. I've pretty much always experienced a significantly lower input latency thanks to the use of this mode no matter how much the Vulkan code resembles the same.
It's been already multiple times I've encountered situations that straight up work worse in the Vulkan driver than in the D3D12 driver that is only explained by the vendor spending more time on one hardware than the other. For the sake of comparison in the same exact AMD hardware, creating a Raytracing PSO took around 10 seconds in D3D12 while in Vulkan it took a whopping 10 minutes and consumed 40 GB of RAM during runtime compilation. I have no good conclusion to draw from this other than the fact that Vulkan is basically not the clear priority nor is it guaranteed to behave well if the driver isn't up to date. The situation I described isn't even a performance concern, it's straight up not shippable to end users.
A lot of drivers are much more likely to have shipped a D3D12 driver that works properly than a Vulkan one, as the amount of applications that use D3D12 and likely got properly tested vastly outnumber the Vulkan ones. If I need to take a bet on which one to default to, I'm using the one that is clearly preferred on the target platform.

I like Vulkan as much as anyone else for many of the reasons that are often stated. It is not a clear winner in all scenarios and the strategy of deploying the API that is likelier to have more support from vendors in the target platform is completely valid. If this approach does not work for targeting the edge cases you've brought up: good, Vulkan is available for you there as an option. By no means does it add a maintenance cost to the project and you'll not find any instances of it holding it back thanks to how RT64's RHI was designed.

Thank you for the thorough explanation @DarioSamo.


Entity has a broken parent reference chain when using GitLab discovery

Expected Behavior
When using the GitLab discovery plugin, the refresh button on the component overview page should work and the generated Locations should not have the orphan annotation
Actual Behavior
We are using GitLab discovery to discover all our repositories. Entities are discovered and added to the catalog nicely. We noticed however that after a few minutes, the refresh button on all component pages stop working with the following error:
{"error":{"name":"NotFoundError","message":"Entity component:default/app has a broken parent reference chain at location:default/generated-f6dc147878776f5631e8f704d1d96af8ce958462"},"request":{"method":"POST","url":"/refresh"},"response":{"statusCode":404}}

This also happens when starting backstage with an empty database. Looking at the generated location we see an 'backstage.io/orphan' annotation and also the warning 'This entity is not referenced by any location and is therefore not receiving updates'.
Steps to Reproduce

Setup gitlab-discovery and run backstage
Entities are added to the catalog and in the first minute, Locations are not yet marked as orphaned and the refresh button is also working
Wait a few minutes
Locations (type: url) are marked orphaned
Refresh button stops working

Context
Discovery config
catalog:
  locations:
    - type: gitlab-discovery
      target: https://gitlab.company.com/blob/*/catalog-info.yaml

Resulting entities
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  annotations:
    backstage.io/managed-by-location: url:https://gitlab.company.com/tstgroup/app/-/blob/main/catalog-info.yaml
    backstage.io/managed-by-origin-location: gitlab-discovery:https://gitlab.company.com/blob/*/catalog-info.yaml
  name: app

apiVersion: backstage.io/v1alpha1
kind: Location
metadata:
  namespace: default
  annotations:
    backstage.io/managed-by-location: gitlab-discovery:https://gitlab.company.com/blob/*/catalog-info.yaml
    backstage.io/managed-by-origin-location: gitlab-discovery:https://gitlab.company.com/blob/*/catalog-info.yaml
    backstage.io/orphan: "true"
  name: generated-f6dc147878776f5631e8f704d1d96af8ce958462
relations: []
spec:
  type: url
  target: https://gitlab.company.com/tstgroup/app/-/blob/main/catalog-info.yaml
  presence: optional

apiVersion: backstage.io/v1alpha1
kind: Location
metadata:
  namespace: default
  annotations:
    backstage.io/managed-by-location: gitlab-discovery:https://gitlab.company.com/blob/*/catalog-info.yaml
    backstage.io/managed-by-origin-location: gitlab-discovery:https://gitlab.company.com/blob/*/catalog-info.yaml
  name: generated-86ff86809f940627ce1acae8a4ad92a0f1584ba6
relations: []
spec:
  type: gitlab-discovery
  target: https://gitlab.company.com/blob/*/catalog-info.yaml

Stack trace
{
  "error": {
    "name": "NotFoundError",
    "message": "Entity component:default/app has a broken parent reference chain at location:default/generated-f6dc147878776f5631e8f704d1d96af8ce958462",
    "stack": "NotFoundError: Entity component:default/app has a broken parent reference chain at location:default/generated-f6dc147878776f5631e8f704d1d96af8ce958462
    	at DefaultProcessingDatabase.listAncestors (/app/node_modules/@backstage/plugin-catalog-backend/dist/index.cjs.js:1359:15)
		at runMicrotasks (<anonymous>)
		at processTicksAndRejections (node:internal/process/task_queues:96:5)
		at async /app/node_modules/@backstage/plugin-catalog-backend/dist/index.cjs.js:2888:30
		at async options.database.transaction.doNotRejectOnRollback (/app/node_modules/@backstage/plugin-catalog-backend/dist/index.cjs.js:1388:18)"
  },
  "request": {
    "method": "POST",
    "url": "/refresh"
  },
  "response": {
    "statusCode": 404
  }
}

Your Environment

Backstage version 1.0.3
Issue occurs when running locally using sqlite and also on Kubernetes using PostgreSQL
On-prem hosted GitLab

OS:   Linux <IP_ADDRESS>-microsoft-standard-WSL2 - linux/x64
node: v14.18.2
yarn: 1.22.10
cli:  0.16.0 (installed)

Dependencies:
  @backstage/app-defaults                               1.0.0
  @backstage/backend-common                             0.13.1
  @backstage/backend-tasks                              0.2.1
  @backstage/catalog-client                             1.0.0
  @backstage/catalog-model                              1.0.0
  @backstage/cli-common                                 0.1.8
  @backstage/cli                                        0.16.0
  @backstage/config-loader                              1.0.0
  @backstage/config                                     1.0.0
  @backstage/core-app-api                               1.0.0
  @backstage/core-components                            0.9.2
  @backstage/core-plugin-api                            1.0.0
  @backstage/errors                                     1.0.0
  @backstage/integration-react                          1.0.0
  @backstage/integration                                1.0.0
  @backstage/plugin-allure                              0.1.19
  @backstage/plugin-api-docs                            0.8.3
  @backstage/plugin-app-backend                         0.3.30
  @backstage/plugin-auth-backend                        0.12.3
  @backstage/plugin-auth-node                           0.1.6
  @backstage/plugin-catalog-backend-module-gitlab       0.1.1
  @backstage/plugin-catalog-backend-module-ldap         0.4.1
  @backstage/plugin-catalog-backend                     1.0.0
  @backstage/plugin-catalog-common                      1.0.0
  @backstage/plugin-catalog-graph                       0.2.15
  @backstage/plugin-catalog-graphql                     0.3.7
  @backstage/plugin-catalog-import                      0.8.6
  @backstage/plugin-catalog-react                       1.0.0
  @backstage/plugin-catalog                             1.0.0
  @backstage/plugin-explore-react                       0.0.15
  @backstage/plugin-explore                             0.3.34
  @backstage/plugin-github-actions                      0.5.3
  @backstage/plugin-graphiql                            0.2.35
  @backstage/plugin-graphql-backend                     0.1.20
  @backstage/plugin-jenkins-backend                     0.1.19
  @backstage/plugin-jenkins-common                      0.1.2
  @backstage/plugin-jenkins                             0.7.2
  @backstage/plugin-org                                 0.5.3
  @backstage/plugin-permission-common                   0.5.3
  @backstage/plugin-permission-node                     0.5.5
  @backstage/plugin-permission-react                    0.3.4
  @backstage/plugin-proxy-backend                       0.2.24
  @backstage/plugin-scaffolder-backend                  1.0.0
  @backstage/plugin-scaffolder-common                   1.0.0
  @backstage/plugin-scaffolder                          1.0.1
  @backstage/plugin-search-backend-module-elasticsearch 0.1.2
  @backstage/plugin-search-backend-node                 0.5.2
  @backstage/plugin-search-backend                      0.4.8
  @backstage/plugin-search-common                       0.3.2
  @backstage/plugin-search                              0.7.4
  @backstage/plugin-shortcuts                           0.2.4
  @backstage/plugin-sonarqube                           0.3.3
  @backstage/plugin-tech-insights-backend-module-jsonfc 0.1.14
  @backstage/plugin-tech-insights-backend               0.2.10
  @backstage/plugin-tech-insights-common                0.2.4
  @backstage/plugin-tech-insights-node                  0.2.8
  @backstage/plugin-tech-insights                       0.1.13
  @backstage/plugin-tech-radar                          0.5.10
  @backstage/plugin-techdocs-backend                    1.0.0
  @backstage/plugin-techdocs-node                       1.0.0
  @backstage/plugin-techdocs                            1.0.1
  @backstage/plugin-user-settings                       0.4.2
  @backstage/release-manifests                          0.0.2
  @backstage/search-common                              0.3.2
  @backstage/test-utils                                 1.0.0
  @backstage/theme                                      0.2.15
  @backstage/types                                      1.0.0
  @backstage/version-bridge                             1.0.0

We have this issue as well.

We have the same issue. Where seems to be the root cause?
When the gitlab discovery processor comes the second time around, it uses the "last-activity" ISO date to fetch only projects that have changed since its last run. Then it doesn't emit the same set of project locations. Is that the reason that these generated locations become orphans?

I quickly scanned the code. @freben @Rugvip, is my understanding correct, that the processing result of the orchestrator is passed by the CatalogProcessingEngine to the ProcessingDatabase's updateProcessedEntity, in which all previous relations from the origin location get removed and then relations to the newly deferred entities are batch inserted, so that any locations that the processor has previously emitted and no longer emits will become orphans?
It's a bit tricky to solve this in the processor though. If a discovery emits a project location and then the project is deleted, the location would simply become invalid and can be removed. There's no notice on the deletion of projects, so if we start caching previously emitted projects in the discovery processor, we'll be re-emitting locations that may no longer exist. The only way to get this right is to ask GitLab about ALL projects on every run (not using the feature that only lists lately changed ones), so that we can make sure we're emitting a correct list of projects on every run. Any ideas?

The updateProcessedEntity step that I suspect to replace all outgoing relations from the origin discovery location to the inferred project url locations would be here: https://github.com/backstage/backstage/blob/f9e2ec25513ec8b746338b30ef3518b04e08d96c/plugins/catalog-backend/src/database/DefaultProcessingDatabase.ts#L110-L139

@manuelstein Yeah you are right, the way that that processor is written it sure looks like it will lead to orphans basically all the time. 🤔 That's unfortunate. To be able to leverage the lastActivity mechanism, it might have fit better to write it in the form of an entity provider rather than a processor. Or, to store all of the previously emitted results in the cache as well, so we can re-emit known-good old locations again on the next round, keeping them non-orphaned.
Either way, confusingly, things being orphaned is actually not the same thing as the parent reference chain being severed. Let's see if I can explain it well enough.
Entities always ultimately originate from an entity provider, as in, they are rooted in one. When an entity provider emits an entity, it lands in the database along with a special "key" string. Specifically, we generate a kind of "bootstrapping" entry in the refresh_state_references table that has the source_key column set. This column is only set for things that are directly emitted by entity providers.
When the processing loop runs and an entity emits other entities, the source_entity_ref column is used instead.
So if you trace a lineage through the refresh_state_references table, you are expected to be able to track upwards and find a series of non-null source_entity_ref pointers to track, and then a final entry with non-null source_key. All other chain shapes are considered malformed. That's what the error message signals has happened.
It may sound surprising that this guarantee is meant to be upheld. It seems to clash with the orphaning (doesn't that sever links in a sense too?). But the reason it works out is, when entity providers delete entity "roots", an eager deletion happens throughout this entire subtree of things that spawned from it unless there are other roots that point to any given such child. More info here https://backstage.io/docs/features/software-catalog/life-of-an-entity#implicit-deletion


Warn: Allow GH acions create PRs

Warn user that Allow GitHub Actions to create and approve pull requests should be enabled in the repo's Settings > Actions > General > Workflow permissions.

Just want to warn others to avoid the issue I ran into. I'm new to GH Actions, and didn't know about I needed to enable this feature. Took me a couple hours on and off of rerunning action to figure it out.


Booster vaccination certificate is not combined with the other certificates if the second name is missing

Hi,
I came across some unexpected behavior in the Android app and also saw it in the IOS app: The first two vaccination certificates are combined into one tab, the third certificate is not included in this tab. The only difference between the two 'persons' is the missing second name.
The issue probably originates from the fact that I had to use my passport ('amtlich', with the 2nd name) for the first two vaccinations and only had to show my electronic health card (without the 2nd name, you do not have to state it there) or even only a registration form for the 3rd dose.
I would propose that only the first and last name and the date of birth are checked for determining whether the certificate is from the same person.

The app can't tell what a second name is, as only the fields gn and fn are in the certificate, thus the second name is added to one of these two fields, there is now special field for second names.
Related issue:

https://github.com/corona-warn-app/cwa-wishlist/issues/705


Incorrect line numbers

E.g. in the example:
5|debug > bt
[1] sinthesin(x) at /home/ubuntu/.julia/v0.5/Gallium/examples/testprograms/misc.jl:2
  | #self# = <undefined>
  | x::Int64 = 1
[2] inaloop(y) at /home/ubuntu/.julia/v0.5/Gallium/examples/testprograms/misc.jl:6
  | y::Int64 = 1
  | i::Int64 = 1
  | #self# = <not found in DWARF>
[3] eval(m, e) at boot.jl:267
  | m = <not found in DWARF>
  | e = <not found in DWARF>
  | #self# = <not found in DWARF>
[4] eval_user_input(ast, backend) at REPL.jl:50
  | bt = <not found in DWARF>
  | err = <not found in DWARF>
  | ast = <not found in DWARF>
  | #self# = <not found in DWARF>
  | lasterr = <not found in DWARF>
  | ans = <not found in DWARF>
  | backend = <not found in DWARF>
  | value = <not found in DWARF>
  | iserr::Bool = false
[5] #1() at task.jl:59
  | show_value = <not found in DWARF>
  | ast = <not found in DWARF>
  | #self# = <not found in DWARF>
  | tls = <not found in DWARF>

4|debug > up
91  function task_local_storage(body::Function, key, val)
92      tls = task_local_storage()
93      hadkey = haskey(tls,key)
94      old = get(tls,key,nothing)
95      tls[key] = val
96      try body()

The frame should be at line 59, but is at 95.

Fixed by d4d00306a885cbc50abec4fb6d99b03ab4e5e848.


Pin zerocopy crate to 0.6.1 to Fix CI build

Which issue does this PR close?
Closes https://github.com/apache/arrow-datafusion/issues/7221
Rationale for this change
Something in zerocopy (a dependency of avro) broke in 0.6.1 --> 0.6.2. So pin to 0.6.1 while I investigate / work upstream
What changes are included in this PR?
Add a temporary pin for zero copy
Are these changes tested?

Are there any user-facing changes?

@joshlf has yanked 0.6.2: https://github.com/google/zerocopy/issues/228#issuecomment-1668473312
https://crates.io/crates/zerocopy/0.6.2
Thus I don't think this PR is needed any more. The next CI runs should complete successfully


Upgrading to latest alpine

Currently Kured is being reported with having security vulnerabilities by our CSP because of the base image.

If they can tell us how those vulnerabilities can be exploited, that would be interesting.
However I don't wish to make a fuss.

Thanks @bboreham . It just scans the docker image for known vulnerabilities ( static analysis ) . So, it was detecting a high scored vulnerability CVE-2019-14697 ( raised and fixed originally in musl library). https://github.com/alpinelinux/docker-alpine/issues/34. Always good to keep the noise low on these things :)

This is precisely my point - it is pure noise.
The CVE you refer to was an i386-only bug.