Newest dependency not loading

If we try to use dependency SomeLibrary.dll with version <IP_ADDRESS> for plugin
Rocket.Core will throw FileNotFound exception for SomeLibrary.dll with version <IP_ADDRESS> in the Libraries folder.
Fixes in Rocket.Core/Plugins/RocketPluginManager.cs:
private Dictionary<AssemblyName, string> _libraries => libraries.ToDictionary(x => new AssemblyName(x.Key), x => x.Value);
private Assembly LoadLibrary(string fullname)
{
    try
    {
        var name = new AssemblyName(fullname);
        var libs = _libraries.Where(x => x.Key.Name == name.Name);
        var lib = libs.FirstOrDefault(x => x.Key.Version >= name.Version);
        return Assembly.Load(File.ReadAllBytes(lib.Value));
    }
    catch { }
    Logging.Logger.LogError("Could not find dependency: " + fullname);
    return null;
}
//update this method
private void Awake() {
  AppDomain.CurrentDomain.AssemblyResolve += delegate (object sender, ResolveEventArgs args)
  {
      return LoadLibrary(args.Name);
  };
}

Better optimization:
private Dictionary<AssemblyName, string> _libraries = new Dictionary<AssemblyName, string>();
//update this method
private void loadPlugins()
{
    libraries = GetAssembliesFromDirectory(Environment.LibrariesDirectory);
    foreach (var pair in GetAssembliesFromDirectory(Environment.PluginsDirectory))
    {
        if (!libraries.ContainsKey(pair.Key))
            libraries.Add(pair.Key, pair.Value);
    }
    _libraries = libraries.ToDictionary(x => new AssemblyName(x.Key), x => x.Value);

OpenMod handles this in a much cleaner way, consider switching to it

OpenMod handles this in a much cleaner way, consider switching to it

Servers with OpenMod is loading twice longer cause of NuGet packages.
RocketMod still most used module for Unturned game server.
OpenMod not associated with this repository, please do not force OpenMod as a solution of any issue.

@SDGNelson

I am hesitant to muck around in fundamental Rocket features like this. How important is it? i.e., what stops you from using the expected version?

I am hesitant to muck around in fundamental Rocket features like this. How important is it? i.e., what stops you from using the expected version?

Some plugins can use different versions of same library, they will conflict.
We can rename libraries to use different versions of them, but if we using library that got deprecated versions ?
Example with System.Threading.Tasks.Extensions and Microsoft.EntityFramework(EF)
EF need to use some version of System.Threading.Tasks.Extensions, but if we want to use MySql with Pomelo.EntityFramework(it uses deprecated version of System.Threading.Tasks.Extensions)?
Plugin will not load correctly, we need to put libraries in the Unturned_Data/Managed folder(I think it's not a correct solution).
Sorry for my bad problem describing, but it is what it is.

This update should not cause problems, but will fix dependencies loading bug.

@SDGNelson

I am hesitant to muck around in fundamental Rocket features like this. How important is it? i.e., what stops you from using the expected version?

Some plugins can use different versions of same library, they will conflict. We can rename libraries to use different versions of them, but if we using library that got deprecated versions ? Example with System.Threading.Tasks.Extensions and Microsoft.EntityFramework(EF) EF need to use some version of System.Threading.Tasks.Extensions, but if we want to use MySql with Pomelo.EntityFramework(it uses deprecated version of System.Threading.Tasks.Extensions)? Plugin will not load correctly, we need to put libraries in the Unturned_Data/Managed folder(I think it's not a correct solution).
Sorry for my bad problem describing, but it is what it is.

You should move to openmod or patch how rm resolves the dependencies

It's on the back of my mind to do. I had been intending for this most recent update to happen next Friday, but the sort by group request was high priority. This will probably happen in one of the next updates.

This has been merged for Friday's update. If you would like to double-check it is pre-compiled in the Extras folder on the preview branch, or in this commit on the dev branch: https://github.com/SmartlyDressedGames/Legally-Distinct-Missile/commit/512a08c75779ec81d5c61238791792f077c5adcd
As far as I can tell it seems to be working fine, but my Rocket setup is very vanilla so it would be much appreciated if you could give it a try as well.

@SDGNelson Looks fine, but you forgot about sorting by version to get most close one.

Glad that it seems to work okay. Thanks for checking. If the libraries are backwards compatible hopefully >= should be fine for now?

If the libraries are backwards compatible hopefully >= should be fine for now?

I don't think so, some versions of assemblies may be deprecated, so better to use closest version to dependency if it's exists.

I made the initial change because it seems important for maintaining compatibility, but all these subsequent requests #51 #52 are outside the scope of this repository. For example I do not want to cause a kerfuffle if any plugins need to be recompiled for a .NET upgrade. The best option is probably to fork this repository to make any changes you want, and maybe there will be some other developers who want an actively updated/upgraded version of Rocket.

This update broke alot of plugins.

@educatalan02 are the plugins depending on a newer version than what is in the libraries folder? Or what seems to be the issue? I suppose perhaps if there is no >= version maybe it should fallback to an older version - but that might introduce its own problems?

@SDGNelson Everything works fine for me, but how rocketmod handles/resolves the dependencies can be done in a much cleaner and better way. I know that its outside of the scope of this repo but i think it would have been better to rewrite how the plugin manager loads the plugins and handles the libraries

@01-Feli agreed that both Rocket and the vanilla built-in loading is far from perfect. I suppose OpenMod is probably the best option in this regard.

I think it is time to stop mataining rocketmod and start forcing people to rm progressively. There are a lot of good devs that might port a lot of rm plugins if people need them

This update broke some plugin loaders, but the fix is easy. If you reference the "libraries" field, make sure its a Dictionary<AssemblyName, string> now. Shouldn't take more than 5 minutes to fix.

@SDGNelson orderby version is important.

This update broke some plugin loaders, but the fix is easy. If you reference the "libraries" field, make sure its a Dictionary<AssemblyName, string> now. Shouldn't take more than 5 minutes to fix.

Nelson's fault. My code was better solution to not touch other assemblies.

Yeah your code is the best especially this try catch block

Depends on the developer, everybody has own ways how to do certain things, so why roast somebody?
(Im not gonna talk about the laugh emoji from Nelson and Trojaner, because.... uh.. okay i'll do it...)
This is how somebody shouldn't act to somebody especially when one is the main game developer and second is his best friend who does tell him what to do only because he's controlling OpenMod with support of the game dev... (Do you think Troj writed on Unturned discord in 8 past months?)
Oh also its good to force people to OpenMod when Trojaner based it for advertising himself and imperial (You don't think that? I don't see anything than only use this LOL).
What about the OpenMod advertising?
People will come somewhere to ask help with server problems [OM & Imperial Discord (its wierd when only Trojaner have the most toxic communities on the Unturned)] tell somebody what's the problem
and the only what they will hear...
"LMAO Don't use RocketMod its old OpenMod is better in someway!"
Bruh nobody gives..... you know what.
If RocketMod was that bad... people wouldn't use him.
Trojaner, you are good developer, but sometimes you don't think twice.
Basically this can be taken like my opinions, but a lot of people will se the thing here., that's like Rocket community sees things.

@kulkaGM

This is how somebody shouldn't act to somebody especially when one is the main game developer and second is his best friend who does tell him what to do only because he's controlling OpenMod with support of the game dev... (Do you think Troj writed on Unturned discord in 8 past months?)

Have you actually read what Sl4v wrote here? He is just rude at this point.
Nelson supports OpenMod because its the biggest community supported plugin framework for Unturned. Any other mature framework would have gotten the same support.

Oh also its good to force people to OpenMod when Trojaner based it for advertising himself and imperial

From the OpenMod Discord #faq channel:

Neither OpenMod nor the OpenMod Discord references ImperialPlugins anywhere. OpenMod does not advertise ImperialPlugins. They are completely separate projects. However ImperialPlugins advertises OpenMod a lot.
Also OpenMod is maintained by a collective, not just me. There are currently 22 contributors to it.

(You don't think that? I don't see anything than only use this LOL).

This can be disproven easily. There are currently more OpenMod plugins than RocketMod plugins (excluding broken ones):
https://openmod.github.io/openmod-plugins/
vs.
https://ldmcommunity.net/pluginlist/

People will come somewhere to ask help with server prolems [OM & Imperial Discord (its wierd when only Trojaner have the most toxic communities on the Unturned)] tell somebody what's the problem
and the only what they will hear...
"LMAO Don't use RocketMod its old OpenMod is better in someway!"
Bruh nobody gives..... you know what.

I don't know what you experienced, but especially the OpenMod Discord server is one of the friendliest places around there.

If RocketMod was that bad... people wouldn't use him.

RocketMod is only popular because there are 10 years old plugins that somehow still work.
@Sl4vP0weR

Nelson's fault. My code was better solution to not touch other assemblies.

No, your code would have broken it in the same way. In fact your code would also cause silent errors due the empty try-catch.

Its not about direct advertising, its about that everything is connected with your name. When people hear that they will imagine two things..
You are also arguing with amount of plugins when ldm community site, listed only couple of the fixed ones or new ones.
But theres more than 80 plugins on RocketMod Community Plugins organization for example and also much more on whole github where creators didn't mentioned rocketmod or it hasn't been forked. And also in future there will be more plugins in OM because its maintained.

Yeah your code is the best especially this try catch block

This code was an example btw.
Yeah, you are the best, showing your selfimportance and "cleverness" is the best way to introduce yourself as a good person.

This fix made people go crazy for many reasons, please, be more friendly to each other and remember that all changes for the future of this game.
I think I should close this issue cause of discords, peace to all.

This fix made people go crazy for many reasons, please, be more friendly to each other and remember that all changes for the future of this game. I think I should close this issue cause of discords, peace to all.

It's not needed to be friendly against a plugin loader cracker.

😂

Perhaps I should not have reacted with the laugh emoji. I was a bit annoyed with Sl4vP0weR's demeanour. It is easy to provide better support to people who are polite, and vice versa.
Trojaner is correct that any widely-adopted plugin framework will receive support. This thread might be interesting to look back on: https://github.com/SmartlyDressedGames/U3-Docs/issues/32

Depends on the developer, everybody has own ways how to do certain things, so why roast somebody? (Im not gonna talk about the laugh emoji from Nelson and Trojaner, because.... uh.. okay i'll do it...)
This is how somebody shouldn't act to somebody especially when one is the main game developer and second is his best friend who does tell him what to do only because he's controlling OpenMod with support of the game dev... (Do you think Troj writed on Unturned discord in 8 past months?) Oh also its good to force people to OpenMod when Trojaner based it for advertising himself and imperial (You don't think that? I don't see anything than only use this LOL). What about the OpenMod advertising? People will come somewhere to ask help with server problems [OM & Imperial Discord (its wierd when only Trojaner have the most toxic communities on the Unturned)] tell somebody what's the problem and the only what they will hear... "LMAO Don't use RocketMod its old OpenMod is better in someway!" Bruh nobody gives..... you know what. If RocketMod was that bad... people wouldn't use him.
Trojaner, you are good developer, but sometimes you don't think twice.
Basically this can be taken like my opinions, but a lot of people will se the thing here., that's like Rocket community sees things.

Don't know what you're on about, saying that people force you to use OpenMod in the discord, nobody does that. Saying stuff that doesn't make sense 🙄


ts: idl enum vields with snake_case have wrong type

Names of enum variants fields are being converted to camelCase during idl parse while typescript types use name as-is.
So when we do program.account.fetch of account with enum struct typescript don't allow us to use correct someField property and forces to use some_field (which will be undefined during runtime)
        kind: "enum",
        variants: [
          {
            name: "X",
            fields: [
              {
                name: "some_field",
                type: "publicKey",
              },
            ],
          },
        ]
}

Possible solution is to use some typescript camelCase converter in DecodeEnumField type

Another solution is to not convert enum variants fields names to camelCase

Is this problem only with enum types or does it also happen with structs?

Is this problem only with enum types or does it also happen with structs?

Haven't tested yet, I'll check it

Looks like Structs are unaffected


Is it possible to JSON file's relative URL for endpoint?

:question: Question
For example:

But both do not work.
Update
I had to use PHP to manipulate and used like:

But:

Hi @gusbemacbe, could you please explain your use case/what you are trying to do?


Allow for overlapping tasks with tweak to cycleBucket

We have a window period that causes tasks to overlap.  This is a small change to the algorithm which calculates the bucket to allow for such cases.
Feel free to close this PR if you don't want to allow for this, or have already solved it with other enhancements.

Thanks for the patch @boneill42. I tweaked it a bit (added tests, changed the modulus to 3, removed an extraneous shell script) and submitted it as #171. You should still get author credit though.
FWIW the real fix for this issue is setting druidBeam.taskLocator = overlord, which will work starting in Druid 0.9.1. At that point this cycleBucket stuff won't be needed.

Do you mind trying that out and seeing if it works for you?

@boneill42 This fix should be a part of Tranquility 0.8.0. Feel free to close this issue if you verify that it works correctly.

Verified.

thanks!


added some of the params undisclosed in the API. still missing more i…

…nfo for missing and searchString
Description
issue-3368 - adds missing query parameters for the GET Alerts endpoint api documentation.
Issues Resolved
issue 3368 - adds missing query parameters for the GET Alerts endpoint.
Checklist

[X ] By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Fixes https://github.com/opensearch-project/documentation-website/issues/3368

Thanks, @natebower, back to you.

First of all, thanks for forwarding this issue through!
This was my first issue in the open-source community and Im glad that it got attention.
Hoever, Upon looking for the page in the offical opensearch documentation I noticed this:

it seems like all of the parameters were cutted to one long line, and it is not much readable.
Is this on purpose/convention or was this a mistake between my initial commit and all of the other fixes?
If someone could fix this, that would be great.

Hi @brookatlas - thanks for checking! Sending a fix through now: https://github.com/opensearch-project/documentation-website/pull/5399


Inline review comment is broken

Demo: https://try.gitea.io/wxiaoguang/test/pulls/4/files
Click the + to do a comment:

This was fixed in the bidi PR but I guess some of the changes that happened to that or changes that happened as it was merged broke things.
The comment box will be in the wrong column - should be a very simple fix.

yup I think it's an unrecognised conflict
The problem is here:
https://github.com/go-gitea/gitea/blob/089b4e6a4585a3d9d185abd9350e7c5d537cfa86/web_src/js/features/repo-issue.js#L503
This should be:


Child transaction creation not working with the JS SDK

Description
Documentation on parent/child transactions shows the method .setNonce() for TransactionId
https://docs.hedera.com/guides/docs/sdks/transactions/transaction-id
That method is not working as expected in the JS SDK. A user reported the issue and I'm also running into the same issue.
Here's the error" TypeError: Cannot assign to read only property 'nonce' of object '[object Object]'
Steps to reproduce
The following code is a starting point for debugging:
const txId1 = TransactionId.generate(new AccountId(operatorId)).setNonce(0);
// const txId2 = txId1.setNonce(1);
const txId2 = TransactionId.fromString(txId1.toString()).setNonce(1);

console.log(`${txId1} and ${txId2}`);

Additional context
No response
Hedera network
testnet
Version
2.17 and 2.14
Operating system
No response

very urgent to be fixed, let us know if we can be of any help.

@ed-marquez I could be mistaking, but I don't think users are allowed to submit child transactions. The purpose of child transactions is strictly for services to create N transactions from one user transaction depending on what that submitted transaction is attempting to do.
cc @tinker-michaelj

we are a service, that's why we need it, it shall be available on the hashgraph JS-SDK.
So any update on this?


Can O' Spam: Watch darkmodeanyapp.com

Can O' Spam requests the watch of the watch_keyword darkmodeanyapp\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by Jeff Schaller in Charcoal HQ


ORA-03135: connection lost contact (intermittent)

Environment
Knex version: 0.20.8
Database + version: Oracle Database 11g EE Extreme Perf Release <IP_ADDRESS>.0
OS: ANy
@atiertant
ORA-03135: connection lost contact when querying after a while.
Note: I use Objection.js as an ORM.

Cannot reproduce

@elhigu It's an intermittent issue, not sure when exactly happens. I'm trying to get more info, but I got this when my queries were approximately 30 mins apart.
This is my code.
const { Model } = require('objection');
const Knex = require('knex');

const knex = Knex({
    client: 'oracledb',
    connection: {
      host: config.db.host,
      user: config.db.user,
      password: config.db.password,
      database: config.db.database,
      connectString: `${config.db.host}/${config.db.serviceName}`,
    },
    fetchAsString: ['number', 'clob'],
  })

  Model.knex(knexInstance);

But is that error thrown when you query:
await knex('table');
// ... wait 15 mins ...
await knex('table'); // throws an error

or is it just happening somewhere on the background?

This should be pretty easy to check with knex's integration testsuite, which has dockerized oracle setup ready. So if you or someone else can reproduce it with that, this can be reopened. In CONTRIBUTING.md is reasoning why reproduction is really mandatory.

I'll try to reproduce it with the integration test suite, thanks! And I totally understand why it needs to be reproduced :)

But is that error thrown when you query:
await knex('table');
// ... wait 15 mins ...
await knex('table'); // throws an error

or is it just happening somewhere on the background?

It's not like this. Basically I have an API that makes a query to the database. If my last API call was before 5 minutes (I just tried a couple of times and realized it's 5 minutes) and the server was idle for the time being, my next API call will give me this error. But this is not limited to just one API/Query.

Sorry, I was overlooking the code. Actually what you said is correct, this is throwing the error with 6 minutes.

But is that error thrown when you query:
await knex('table');
// ... wait 15 mins ...
await knex('table'); // throws an error

or is it just happening somewhere on the background?

here is what I tried,

  const response1 = await knex('WEBSCAN_USERS').select('USERNAME').limit(5);
  console.table(response1);
  console.log("QUERY ONE FINISHED AT", new Date());

  await new Promise((resolve) => {
    setTimeout(resolve, 6 * 60 * 1000)
  })

  const response2 = await knex('WEBSCAN_USERS').select('USERNAME').limit(5);
  console.table(response2);
  console.log("QUERY TWO FINISHED AT", new Date());

Console:

I'll reproduce with an integration test and re-open the issue.

@elhigu Can you please try the above code once? Actually, I'm in a remote area and the docker images are taking a lot of time & bandwidth.
Thanks!

Sorry, I don't have time to do that either.

No worries, I'll do that in a couple of weeks. Thanks!

Desculpe, eu estava ignorando o código. Na verdade o que você disse está correto, isso está jogando o erro com 6 minutos.

Mas esse erro é lançado quando você consulta:
await knex('table');
// ... wait 15 mins ...
await knex('table'); // throws an error

ou está apenas acontecendo em algum lugar no fundo?

aqui está o que eu tentei,

  const response1 = await knex('users').select('username').limit(5);
  console.table(response1);
  console.log("QUERY ONE FINISHED AT", new Date());

  await new Promise((resolve) => {
    setTimeout(resolve, 6 * 60 * 1000)
  })

  const response2 = await knex('users').select('username').limit(5);
  console.table(response2);
  console.log("QUERY TWO FINISHED AT", new Date());

Console:

Vou reproduzir com um teste de integração e reabrir o problema.

I'm facing the same problem here, after the error it returns to normal but when a certain time passes the error returns
Process ID: 361126
Session ID: 1470 Serial number: 19103```

same problem，Is there a solution?

same problem，Is there a solution?

Same problem, happening when using knex 0.21.16 / 0.95.10 & oracledb 5.1 / 5.2 in a containerized environment.
I am facing these issues with the docker for windows 10 pro and also with the redhat openshift.
I tried to make a regular ping query (4 mins) to keep the connection alive.
It seems work for the trigger to disconnect was extended, however, when it was idling for a day longer the case still exist

Next step would be to get some verified testcase to  reproduce this, so that someone motivated can write the fix.

Noticing same problem randomly on one of our API which do not receive much traffic.
Using
    "knex": "^0.21.15",
    "oracledb": "^5.1.0"

pool config:
  const knexInstance = knex({
    client: 'oracledb',
    connection: xxxxxx,
    pool: {
      min: 1,
      max: 5
    },
    acquireConnectionTimeout: 10000
  })

Error Message:
  ORA-03113: end-of-file on communication channel
  Process ID: 15761
  Session ID: 2707 Serial number: 11553

@FelixChow  Can you please share how are you achieving "regular ping query (4 mins) to keep the connection alive"?

Oracle supports a EXPIRE_TIME flag that tells the client to explicitly adjust the keep-alive timeout. On Oracle 19c you can set this flag in the connection string itself:
mydbmachine.example.com/orclpdb1?expire_time=2

In my case, connections would throw ORA-3135 errors after about 5 minutes. After setting the timeout to 2 minutes, the error stopped occurring.
I think it would be better if Knex would internally create a new connection (or get a new connection from the pool) whenever this error happens, but until then this is a reasonable workaround.


docs(i18n): copy edits to internationalization cookbook

Shannon's copy edits to Internationalization.

@wardbell can we get this ASAP? I would like to work on the chapter for new features, soon.


[QUESTION] Creating a proof with multiple credentials with same schema/credential definition

Hi,
We are trying to request multiple credentials of the same credential definition/schema with Aries/Indy. Say we try to get a university degree. If a user has more than one credential, because s/he has multiple degrees, how can that be done? Is there a way of creating a proof request for it?

Here also a relevant thread in PEX: https://github.com/decentralized-identity/presentation-exchange/issues/406
We're working on supporting PEX with AnonCreds represented as W3C credential. Maybe once that has landed you can use some of the workaround/hacks as listed in the above issue

Thanks @TimoGlastra !
BTW Awesome work! 👍 much appreciated!

Thanks @TimoGlastra !
BTW Awesome work! 👍 much appreciated!


FAQ

Updated FAQ

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

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6690ae9f45e0f1b9054f22fa--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66a1c7290417919af0150151--harness-developer.netlify.app


[SuperTextField] - create a public package file for SuperTextField

Currently, everything in super_editor is exported in super_editor/super_editor.dart. Add a top-level file called super_text_field.dart, which then exports everything related to SuperTextField.

I've created this. For now, I've left the SuperTextField export in lib/super_editor.dart, too, to avoid the breaking change. We can remove it from the super_editor export when it's convenient.


"Debugger.resume" hangs V8Inspector

So I have been messing around with V8Inspector to check if I can implement a debugger with it.
I was able to set breakpoints and I can see that V8 stops execution on them, but when I send "Debugger.resume" to continue execution, app just hangs on the native method: v8Native.v8InspectorSend(v8Runtime.getHandle(), message);
I've attached a very basic sample that reproduces this.
TestV8_2.zip
Am I missing something obvious or is this some sort of bug?

This is a known issue reported by some other uses. The current locking mechanism is not ready for breakpoints. I'll visit it later with relatively low priority.

I'm interested on fixing this. I've tried downloading the docker image, but it doesn't work?
C:\JavetTest\Javet>docker build -f docker/android/build.Dockerfile .
[+] Building 2.3s (4/4) FINISHED
=> [internal] load build definition from build.Dockerfile                                                         0.1s
=> => transferring dockerfile: 38B                                                                                0.0s
=> [internal] load .dockerignore                                                                                0.1s
=> => transferring context: 35B                                                                                0.0s
=> ERROR [internal] load metadata for docker.io/sjtucaocao/javet-android:2.0.1                                    2.1s
=> [auth] sjtucaocao/javet-android:pull token for registry-1.docker.io                                            0.0s

[internal] load metadata for docker.io/sjtucaocao/javet-android:2.0.1:

failed to solve with frontend dockerfile.v0: failed to create LLB definition: docker.io/sjtucaocao/javet-android:2.0.1: not found

I'm interested on fixing this.

That's great. The Android image has been broken for a few months because the V8 fetch command is not friendly to docker's layered cache. For now, setting up a Linux box or VM may work.

I can't get a proper build environment to work...
Do you think this could be patched from the java side somehow?

I can't get a proper build environment to work...
Do you think this could be patched from the java side somehow?

We are working on the fix for the Android docker image.
No, it has to be fixed at the C++ level.

Thank you for bringing it up. I'm sorry that it's on my list, but at quite low priority.
Before touching it, I planned to complete a usable version of JavetShell (both Console and Android) with debug port open, then review this once I have time. JavetShell recently reached the state I planned.
Also, as there have been not many users asking for it, it's still in the backlog. For now, I'm busy working on other things with some users who made considerable donations. May I know how urgent it is?

I'm pretty much ready to discard the ancient javascript engine I have in production (Rhino).
However, no debugguing support is a deal breaker for me. Everything else runs 10x times better in javet.

That makes sense. Could you join discord to discuss with me in detail? As the snapshot build needs some real world test.

Sure.
But the demo app I've attached on the first post demonstrates the issue. I've tested it today with the latest javet. If you run it as is, the app hangs, not updating the TextView.
It works if you comment the line 166: inspector.sendRequest(getMessage("Debugger.resume").toString());

Sure, I'll visit it sometime later. Better grab me at discord.

It's been so long. I just submitted a fix to the dev branch. Do you mind taking a try? The snapshot build is at Actions.

I've never implemented v8 debugger JSON protocol before, it may be the case that I'm doing something wrong, but I don't think so.
Here's an improved demo app with stop/resume buttons if you need it.
TestV8_2.zip

I reviewed your code. I saw there are roughly 3 threads: UI, script execution, debugger. I wonder if the root cause is: callback from V8 inspector falls into the UI thread so that it is the UI thread executing resume instead of the debugger thread. Could you try to enforce the debugger thread to do all things talking to the V8 inspector?

Like this?
inspector = debuggerExecutor.submit(() -> {     V8Inspector inspector = v8Runtime.getV8Inspector();     inspector.addListeners(this);     return inspector; }).get();
debuggerExecutor.submit(() -> {     try {         inspector.sendRequest(sMessage);     } catch (Exception ex) {         ex.printStackTrace();     } });
Tried this, still no luck.

The project you uploaded has some local dependencies so that I didn't fix them, but reviewed the code only. Could you upload a revised one for me to debug?

Do you mean the implementation files('libs/javet-android-release.aar') line? It's the AAR file from github actions. I didn't include in the zip because of file attach size limitations.

Here is the full app, should be just import & compile:
https://www.cgsoft.es/XN/jc/TestV8_2.rar


Update vis.py

Error modifying path

We place demo-related model weights in demo/lib/checkpoint/ while placing PoseFormerV2 weights in checkpoint/.


translated warnings/invalid-aria-prop

done translating warnings/invalid-aria-prop.*

Hi @Fcmam5, please review this PR and merge it after approving it.
make sure you checked out this note from #1

Warnings
These are the pages that you get when you click the links in the console (e.g. https://reactjs.org/warnings/dont-call-proptypes.html). People tend to search these, so please don't translate the error message itself.

Thanks.

@Fcmam5 I think it's done now 😄


Suggestions on measuring python <=> rust overhead if any

Hi. I've been working on some extensions of crowbar that put a focus on apigateway and recently started putting together some notes to advertise performance expectations. My tests are somewhat limited to what happens after crowbar translates python objects to serde Json values.
Do you have any suggests on how I could measure the cost more completely or if you've already down this your self the approach you took? I'm thinking I could take my .so file and create my own python handler that dynamically loads it in it's event handler and just delegate the handling while timing what happens in between. Thoughts?

Would it make sense for the python <=> rust overhead to be benchmarked in cpython-json, since that seems to be where all the magic is happening?
That crate doesn't have any benchmarks I believe and could probably use some.


Please add tumblr share button

It looks like this.

@yaasita
Hi!
Thanks for adding the feature.
It looks good to me!


Supporting an EMR connection in the schedule and invoke Python API

When comparing the CLI version of run-notebook vs the Python API of invoke and schedule functions, I noticed a discrepancy that is important for the use case that I am currently working on.
You aren't able to specify the EMR connection within the Python API Notebook commands, where is in the CLI you can. Is there a specific reason for the difference? Is there a suggested way to connect to an EMR cluster via invoke or schedule?

Sorry this isn't really documented but it's pretty easy:
import sagemaker_run_notebook as run
import sagemaker_run_notebook.emr as emr

run.invoke(..., extra_fns=[emr.add_emr_cluster("mycluster")])

or similarly:
run.schedule(..., extra_fns=[emr.add_emr_cluster("mycluster")])

replace "mycluster" with the name of your EMR cluster.
I'll leave this open to add to the python API docs.


feat: delete entry from targets collection

:tada: This PR is included in version 0.11.0-beta.12 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Issues when div goes over 20

There seems to be a problem with the labelling over div20

I'm gonna go ahead and close this out because if you're overlaying divs this much you should just write the code by hand at that point, and apply multiple classes to the same value. This tool isn't really for this use case.


Follow Docker's image nameing convention in k3d image import

What
Once upon a time, all Docker images were stored either locally or on Docker Hub. They were called repoName/imageName:versionName and all was well.
Then people started to build other registries. Eventually it was decided that the registry will just be prefixed to the image name: registry-name.example/repoName/imageName:versionName. But to maintain compatibility, images without a registry prefix were still fetched from Docker Hub, the default registry.
The Docker Hub registry eventually was named docker.io and images that were tagged docker.io/repoName/imageName:versionName were equivalent to images tagged as repoName/imageName:versionName.
Probably on a different occasion and for different reaons, latest would be assumed by Docker if no versionName part was given.
These two conventions are what this PR adds to k3d for the image import command.

That images tagged as docker.io/repoName/imageName:versionName can be imported to a cluster, i.e. that k3d image import  'docker.io/repoName/imageName:versionName' just works. Because currently it fails, whereas k3d image import 'repoName/imageName:versionName' does not. And neither does k3d image import 'any-other.registry/repoName/imageName:versionName'.
That images without a :versionName have :latest added automatically.

(Side Note: The story about how docker.io came to be the default registry prefix is most probably not historically accurate. If it were, it would be so by pure luck.)
Why
It is not immediately obvious for the user – and neither is it documented – that k3d is more strict regarding to how it treats image tags than Docker is.
It's especially confusing if an image was previously built locally with docker build -t 'docker.io/repoName/imageName:tagName', but the same image can later not be imported by that same name.
Implications
I'm not aware of any obvious implications. It allows behaviour that IMO could be expected but that is currently resulting in an error.
I would not consider this change to be a breaking change.

Hi @cimnine , thanks for opening this PR!
Beautiful story :wink:

It is not immediately obvious for the user – and neither is it documented – that k3d is more strict regarding to how it treats image tags than Docker is.

That's because there is absolutely no effort in being anything more strict about this than docker.
In fact, k3d is even doing the exact same thing as the official docker CLI.
Compare https://github.com/docker/cli/blob/master/cli/command/image/save.go#L39-L61 with https://github.com/rancher/k3d/blob/main/tools/cmd/image.go#L15-L26 .
The issue is actually within how k3d checks from where to get the image (local tar or runtime), where we check the available lists of images and do a comparison.
The reason for this on the other hand is, that we try not to have to do any kind of error handling or log feedback in the tools container (i.e. we have to make sure beforehand, that the image saving will work).
The logic that you're adding makes total sense regarding this unintentional "strictness" :+1:
Thanks for the contribution already! :)
(just two small change requests)

@cimnine

I almost suspected this. I've now re-written this part and took the liberty to extract some of the code I've touched into it's own functions. I believe this also makes the code easier to read.

Please always feel free to simplify the code :)
I think that removing "cruft" output by the runtime when listing images, as you were doing it before, is easier than trying to make the user input match with what's given back from the runtime? :thinking:

I think that removing "cruft" output by the runtime when listing images, as you were doing it before, is easier than trying to make the user input match with what's given back from the runtime?

Given all the edge cases you've mentioned, I see this now. How do you like my current attemp?


fixed length elements

please consider supporting fixed-length elements
I have to read some messages that reserve 256bytes for a null terminated string

Could you explain further? I'm not exactly sure what you need.

I want to use this library to read already written binary files, porting in c/c++ structs
So far it's working very well -- but then I hit a case where these files have 256 byte fixed length, null-terminated strings... And your strings are variable length.
I think this could be done by adding a char type, and then adding the concept of a fixed length array (varuint length prefix) -- which I could convert to a string after reading...
Except, now I'm starting to think about these varuint length prefix's and the sorted schema properties -- and I'm wondering how much this is going to break your package and it's original intent...
Maybe we could use this project as the seed for another for reading and writing binary files?

Ah, I see. I actually toyed with the idea of making strings null terminated, but ended up deciding against it since I envisioned the library to mostly be used with WebSockets and it could be an attack vector via buffer overflow. Also, there wouldn't really be any space savings since the length prefix is usually one byte via varuint.
I suppose you could just add another datatype, "nstring" or something (null terminated string). Shouldn't be too hard. Just instead of writing a length prefix you end the writeString with a 0 byte. I don't think there's support for reading null terminated strings with the node Buffer though, so you'd have to write a small function to iterate the bytes until it encountered a 0, and then call toString on that block of bytes.
Here's some code that does that: https://github.com/JoshGlazebrook/smart-buffer/blob/master/lib/smart-buffer.js#L152

But the problems' essence isn't reading and writing null-terminated strings
It's reading binary data that other programs created.
I really like how easily it goes when I'm copying struct defs over from the c/c++ code -- but then when I read data I'm running into the problem that your code didn't write that data, so there there issues (like ordered properties and fixed length structures without prefixed size indicators.
I can do a lot of the work, building off your project -- but I'm going to fall down on the bit-twiddling code.
Do I have your permission to use your code as a starting point for a binary-file processing library?  And would you collaborate?

Sure, you have my permission. I'll try to help as well. I'm not the greatest at bit twiddling but I'll try my best.


is it possible to show download link to release binary file that being uploaded?

is it possible to show download link to release binary file that being uploaded?

You can customize the download URL with:
github:
  zip_url: URL


⚠ Fetchers has degraded performance

In ae89ec0, Fetchers ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 286 ms

Resolved: Fetchers performance has improved in 36697f1.


Rewrite ACE1pack to make use of ACEbase file IO

This will replace read_params.jl.
Since read_dict converts loaded dictionaries into the appropriate composite type, I think, the code will need to be rewritten so that what are currently *_params() functions  are turned into structs. Does that sound correct? What was the reason to use dictionaries and not structures in the first place?

nono - there is read_dict and load_dict. read, write converts, while save, load does the disk thing.

We can discuss the naming of those functions if you have views on that but I want to keep the logic.

I don't mind the names, I think I misunderstood what you meant. Did you suggest replacing just the JSON file -> unconverted Julia Dict part (so  load_dict, but not read_dict) or pretty much all that is in read_params.jl (so use both load_dict and read_dict)?

read_dict, write_dict should not get too much use in ACE1pack. What I meant was to use

JuLIP.FIO.save_dict for writing to JSON
JuLIP.FIO.load_dict for reading from JSON
And if you don't like those names, then I'm happy to change them. And tbh, this isn't really so crucial, I just like having a thin layer around something like that so we can swap out the backend if we ever need to, and to keep everything compatible between ACE1pack, ACE1, JuLIP, etc.

okay! That's a small change, I'll update the PR.
In my mind "write to disk" & "save to disk" and "read from disk" & "load from disk" are synonyms, so I need(ed) some slight getting used to the distinction. But I'm not sure if that's worth changing, especially if you mean beyond ACE1pack, which I guess a lot of people are using already? Also because can't think of good alternatives. Maybe parse instead of read (feels like a slightly more virtual transformation one would do to data/string/information after loading from disk) and assemble (a dictionary has to be "assembled" from a structure ahead of saving to disk) or prepare instead of write, but these are still ambiguous, I think.
I find YAML files more friendly than JSON, do you think that's worth adding and where if so? In ACEbase.FIO alongside load_json and save_json?

What about looking at the FileIO.jl conventions?

Yes adding YAML in ACEbase and JuLIP would be great!


Manage Static DNS Entries - front end CRUD implementation

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/2209/
Test PASSed.

👍 Go side looks good

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/2224/
Test PASSed.

@rivasj - CRUD functionality verified in TP. nice job!


Use a list of specific users - Error in script

The command used to loop through each user throws an error related to Identity:
"Cannot bind argument to parameter 'Identity' because it is null."
Listed above:
$NPS | foreach {Set-User -Identity $_.MicrosoftOnlineServicesID -RemotePowerShellEnabled $false}
I believe it should be:
$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}

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

ID: 3d193a89-ffbc-90ab-990e-0e36b7845496
Version Independent ID: 12a028e5-d1ce-12ab-2da8-c46d4815754c
Content: Enable or disable access to Exchange Online PowerShell
Content Source: exchange/docs-conceptual/exchange-online/disable-access-to-exchange-online-powershell.md
Service: exchange-online
GitHub Login: @chrisda
Microsoft Alias: chrisda

@ToughItOut, OK, I'll change it, but I tested it based on this Issue and using -Identity $_.MicrosoftOnlineServicesID worked for me then.

Thanks! I think it only applies to the "Use a list of specific users" section because we are loading a list of account names (email addresses) as the identity from the text file, so it is specifically set, versus the other scenarios where we are capturing the account in a variable in a previous step via the get-user command.


build: remove review workflows DEVOPS-563

Description :sparkles:
Remove KuVa review workflows. Test workflows are triggered on commit to main branch.
DEVOPS-563
Issues :bug:
Testing :alembic:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #2240 (cf92c2d) into main (f403d04) will increase coverage by 5.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #2240      +/-   ##
==========================================
+ Coverage   30.03%   35.08%   +5.05%
==========================================
  Files         823       84     -739
  Lines       16199     1217   -14982
  Branches     3203      246    -2957
==========================================
- Hits         4865      427    -4438
+ Misses      10808      768   -10040
+ Partials      526       22     -504

see 739 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


chore: ignore .DS_Store

Also removes the .DS_Store file on main that's landed by mistake.

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


fix typo

rolls -> roles

@fsimonazzi : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Verified the update.
@fsimonazzi Thanks for submitting this fix.


CONTRIBUTE.md updated

Updated CONTRIBUTE.md as per the instructions given in this PR

@Apurv428 Thanks for your work on this! Just like with https://github.com/openmainframeproject/software-discovery-tool/pull/187 , since @rachejazz did the initial work on this commit, we'll need to preserve her work with her commits included in your PR, rather than just copied over.


Update to last stylus 0.50

Update peerDependencies pls.

How about I just set them to:
"peerDependencies": {
  "nib": ">=1.0.4",
  "stylus": ">=0.49.3"
},

then people can just install whichever version they want. What do you think?
Tests are currently broken with the latest though. It'd be nice if someone helped fix that.

I would remove them. It seems peerDependencies are going to be removed https://github.com/npm/npm/issues/6565

Ok, I just realised that I don't have to require stylus, just stylus-loader. Sorry.

@shama Could you update the version now?
Also peerDependecies aren't going to be removed, they are going to stop being automatically installed, so it's the consumer's responsibility to provide one. So if you'd like, putting stylus as a peerDep would allow us to update independently from this plugin (or just make the version you require be *, if that's feasible)

@shama ping :smile:


docimports for flutter_goldens, flutter_localizations, flutter_web_plugins, fuchsia_remote_debug_protocol, integration_test

Part of https://github.com/flutter/flutter/issues/150800

google testing is failing on:
Target of URI doesn't exist. #uri_does_not_exist

/// @docImport 'package:flutter_driver/flutter_driver.dart';

So, submitting this has to wait on getting that warning ignored in google3.

This required cl/651472856.


x/tools/gopls: support http:// scheme (insecure)

gopls version
0.15.2-1 (on arch linux)
go env
(not relevant, I believe)
GO111MODULE=''
GOARCH='amd64'
GOPRIVATE=''
GOVERSION='go1.22.1'

What did you do?
I have been developing vanitydoc to be able to generate simple HTML documentation at the import path of my go libraries.
This library is also able to generate those files "on-the-fly", for instance running the following command serves the documentation of the standard library, as well as the documentation of the packages in my gomodcache locally:
vanitydoc -gomodcache=$(go env GOMODCACHE) /usr/lib/go/src

I have setup a service file to start this automatically under localhost: http://localhost:8080 (actually I am using http://pkg/) and I ajusted the gopls settings inside vscode to:  "ui.documentation.linkTarget": "http://pkg"
What did you see happen?
When clicking on a doc link, the https:// gets prepended<EMAIL_ADDRESS>What did you expect to see?
I would expect to be able to visit the http version<EMAIL_ADDRESS>Editor and settings
settings.json of vscode:
"gopls": {
    "ui.documentation.linkTarget": "http://pkg"
  }

Possible fix
Currently the s of https is hard-coded msg := fmt.Sprintf("https://%s/%s", options.LinkTarget, link.ImportPath)
https://github.com/golang/tools/blob/c21ae4cabc44594caf9cbfa867a678ad4a2df387/gopls/internal/golang/comment.go#L29
I would propose to move the logic to settings.go:
https://github.com/golang/tools/blob/2d517d51b81102672a95b40c9fea60a65ba3620a/gopls/internal/settings/settings.go#L985

if the variable is empty, don't do anything
If no scheme is set, set it to https
if a scheme is set, use it as-is

@hyangah looking through the gopls issues about this setting, I read https://github.com/golang/go/issues/51848#issuecomment-1074184344

vscode-go (&gopls) plans to do it eventually - we prefer more simplified documentation (either a plain html or markdown without special styling/javascript) than what pkg.go.dev shows and want ability to get the documentation part only so the editor can choose the right style (e.g. dark theme, ... )

Feel free to give a try to https://code.pfad.fr/vanitydoc/  (it is quite new and maybe bit rough). Its original goal is to generate static HTML for hosting at a vanity-URL, however it serves quite well as a local server of documentation. To serve the module in the current folder, run:
go run code.pfad.fr/vanitydoc@latest .

CC @adonovan, who has recently integrated a simple documentation viewer into gopls, and may find this interesting.
The behavior of linktarget seems like a bug. It should be possible to use a local http server. Perhaps we can avoid prepending a scheme if the linktarget already has a scheme.
Tentatively putting this in the<EMAIL_ADDRESS>milestone, and marking as help wanted.
The fix would be to look for uses of settings.Options.LinkTarget, and fix places (such as gopls/internal/cache.BuildLink) where we prepend https. We should only prepend https if the linktarget does not already have a scheme.
See gopls/internal/test/marker/testdata/hover for example tests.

Looking at the codebase, there are 2 conditions if strings.ToLower(options.LinkTarget) == "pkg.go.dev" {, to append the version info to the URL.
I think it would be nice to fix those as well (vanitydoc supports URLs with version info). For instance by adding 2 fields LinkTargetScheme and LinkTargetWithModuleVersion to DocumentationOptions:
type DocumentationOptions struct {
	// HoverKind controls the information that appears in the hover text.
	// SingleLine and Structured are intended for use only by authors of editor plugins.
	HoverKind HoverKind

	// LinkTarget controls where documentation links go.
	// It might be one of:
	//
	// * `"godoc.org"`
	// * `"pkg.go.dev"`
	//
	// If company chooses to use its own `godoc.org`, its address can be used as well.
	//
	// Modules matching the GOPRIVATE environment variable will not have
	// documentation links in hover.
	LinkTarget string

	// LinkTargetScheme controls the documentation link scheme.
	// "https://" by default
	LinkTargetScheme string

	// LinkTargetWithModuleVersion controls addition of the module version to the documentation URL.
	// If set to "true" (by default when LinkTarget is "pkg.go.dev", false otherwise),
	// the version will be appended to the module URL,
	// e.g<EMAIL_ADDRESS>instead of godoc.org/example.com/module/package
	LinkTargetWithModuleVersion bool

	// LinksInHover toggles the presence of links to documentation in hover.
	LinksInHover bool
}

Hi Oliver, thanks for your interest in improving gopls' documentation rendering. Please build gopls at master and try out the new "Source Action > View package documentation" feature in VS Code (or your editor's equivalent); I think we'll find we're working towards a common purpose. I haven't looked at vanitydoc yet, but perhaps its features can be incorporated directly into gopls, making it easier for users to discover and use.
I agree the LinkTarget field should be able to select insecure HTTP.  We may need to permit an optional http: or https: prefix on it. (See also https://go.dev/cl/572037/1, in which the special  value "gopls" enables use of gopls' new internal web server.)

try out the new "Source Action > View package documentation" feature

This look neat! Especially the "click to open back in vscode"!
I got a panic when trying to view the documentation of example/nested/chan.go from the https://codeberg.org/pfad.fr/vanitydoc codebase (this is a submodule with an import missing from go.mod).
Do you have any document indicating the state of this viewer and its goal? Or is it only scattered as TODO(...) through the codebase?
From a quick glance, I noticed the following:

subpackages are not listed
parent package is not easily accessible
not dark theme (sorry for the :trollface: )
links to unexported symbols (http://<IP_ADDRESS>:44973/gopls/UR7rfeVxIhQ/pkg/io?view=5#Writer discard{} as a link)
no anchor on var (http://<IP_ADDRESS>:44973/gopls/UR7rfeVxIhQ/pkg/io?view=5#Discard does not jump to the Discard var)

I haven't looked at vanitydoc yet

The pages under https://code.pfad.fr/vanitydoc/ have been rendered with vanitydoc. The original goal was to generate static websites, and then I realized that I could that locally on the fly from the gomodcache.
For vanitydoc it would be greatly beneficial to have an importable package able to produce HTML documentation for chunks of ast (with control regarding the generated links), because escaping HTML and navigating the ast is quite cumbersome: https://codeberg.org/pfad.fr/vanitydoc/src/branch/main/template/ast.go (might not be accessible due to scheduled maintenance)

And what to you think of the proposition to add the LinkTargetScheme and LinkTargetWithModuleVersion fields to DocumentationOptions? (or should this be dropped in favor of the integrated viewer?)

This look neat! Especially the "click to open back in vscode"!

Thanks!

I got a panic when trying to view the documentation of example/nested/chan.go from the https://codeberg.org/pfad.fr/vanitydoc codebase (this is a submodule with an import missing from go.mod).

Thanks, I can reproduce it. I have filed it as https://github.com/golang/go/issues/66449.

Do you have any document indicating the state of this viewer and its goal? Or is it only scattered as TODO(...) through the codebase? From a quick glance, I noticed the following:

No, sorry; the scattered TODOs are the only record.

subpackages are not listed
parent package is not easily accessible
not dark theme (sorry for the :trollface: )
links to unexported symbols (http://<IP_ADDRESS>:44973/gopls/UR7rfeVxIhQ/pkg/io?view=5#Writer discard{} as a link)
no anchor on var (http://<IP_ADDRESS>:44973/gopls/UR7rfeVxIhQ/pkg/io?view=5#Discard does not jump to the Discard var)

All of these are indeed missing features, and we would welcome CLs to address any of them.

For vanitydoc it would be greatly beneficial to have an importable package able to produce HTML documentation for chunks of ast (with control regarding the generated links), because escaping HTML and navigating the ast is quite cumbersome: https://codeberg.org/pfad.fr/vanitydoc/src/branch/main/template/ast.go (might not be accessible due to scheduled maintenance)

In earlier discussions about this new feature, I too thought it would have been greatly beneficial to have an importable package able to produce HTML documentation for chunks of ast (it is indeed cumbersome), and was hoping to extract parts of pkgsite to achieve that. But eventually I realized that the representation of the package is so different (and richer) in gopls that it would be counterproductive to try to factor most of the rendering. But I do think we should try to share (or steal) the tricky syntax-to-HTML logic. (The old cmd/godoc contains one or two similar algorithms too.)

There are 2 distinct issues.
Ability to specify the scheme
Instead of having an additional parameter, the scheme could be automatically added if missing:

pkg.go.dev => https://pkg.go.dev
http://pkg => http://pkg

This one can be "easily" managed without adding a parameter
Does the documentation support @version suffix
pkg.go.dev support both

<EMAIL_ADDRESS>https://pkg.go.dev/golang.org/x/tools

However gddo supports only URLs without a version (as far as I know).
Godocs.io and vanitydoc (local server) both supports the version suffix:

<EMAIL_ADDRESS>https://godocs.io/golang.org/x/tools

This could be hacked into the url-setting by using an anchor:

http://godoc.internal#no-version <= no @version suffix should be added to documentation links
http://pkg <= by default, the @version suffix should be added to documentation links

Having a setting for the symbol anchor #Println is not really important since it will not trigger any error for the user (the page will just not jump to the definition).

Ability to specify the schema

I agree that adding an https:// prefix only if no scheme is already present seems reasonable.

Does the documentation support @ version suffix

Perhaps a more general approach is needed, supporting template strings such as the following:
"https://pkg.go.dev/{package}@{version}"
"https://godocs.io/{package}@{version}"
"http://localhost:8080/{package}"
"gopls"  // carve-out for internal server

For compatibility, existing strings that don't contain "/{package}" would behave as if they had that added as a suffix.
(Perhaps the @ should be part of the expansion of version, since the version is not always known, and we don't want a trailing @ in that case.)

I have setup a service file to start this automatically under localhost: http://localhost:8080 (actually I am using http://pkg/)

Just curious: how did you arrange for the local host name pkg to specify a non-default port?

Sounds good!
I would suggest {@version}, to make it clear that the @ will be automatically prepended to the version (and if needed a {version} could be added later if some system expect no leading @):
https://pkg.go.dev/{package}{@version}

how did you arrange for the local host name pkg to specify a non-default port?

I stripped a lot of information with my parenthesis :see_no_evil:, here is my actual setup:

I added a <IP_ADDRESS>	pkg entry to my hosts file
I created a systemd vanitydoc.socket file with ListenStream = <IP_ADDRESS>:80 (needs elevated permissions)
The vanitydoc.service file then forward the connection via a file descriptor vanitydoc -addr fd:3 -gomodcache=... (does not need permission)

I documented this today on my blog https://log.pfad.fr/2024/vanitydoc-offloaded/

I would love to make some CLs, however I am currently spending way too much time on unpaid (open-source) work and need some freelance-contract first :laughing:

Actually https://pkg.go.dev/{package}{@version} is wrong. It is more like https://pkg.go.dev/{module}{@version}{package} and https://godoc.org/{module}{/package} (the version appears between the module name and the package - if any)


Database error

error says My database class name is missing in table... but when I cross checked... class name was were there... don't what's the problem  can you just recheck this repo... or Update with new one it would be helpful

Please share the logs at https://t.me/hydraXsupport. We are currently working on releasing a full stable version of this repository soon, where all the bugs will be fixed.

error says My database class name is missing in table... but when I cross checked... class name was were there... don't what's the problem can you just recheck this repo... or Update with new one it would be helpful

Please share the logs at https://t.me/hydraXsupport. We are currently working on releasing a full stable version of this repository soon, where all the bugs will be fixed.

@Infamous-Hydra Database error

@hasnainkkk07 Lol

I will be waiting for that... I hope You will release soon.


On Worpdress, some iframed post content does not get correct height

On my Wordpress website i have an archive page with many iframes, each showing the post content associated with it. It works nicely with almost every post but i have found some cases where the iframe height is not calculated correctly and the iframe shows shorter than it should be. The CSS is the same for every post and no problematic CSS (like vh units or % heights) is used as far as i know
For example, this one is calculated nicely:

But for this one, iframe is cut down:

If i try to force an extra resize 100ms after the initial resize then it works nicely (with 0ms it does not work):
window.iFrameResizer = {
    onReady: function() {
        window.setTimeout(() => {
            window.parentIFrame.size();
        }, 100);
    }
}

and the result is the expected:

Why could this be happening? Is there a way so i don't need to force that extra resize?
Thanks in advance.

That is strange, does the fix still work if you set the timeout to 1 or
even 0?

I expect their is sometimes a race condition in the browser, where the
browser is telling JavaScript that an update has finished, before CSS has
fully reflowed.
If that is the case, not sure what other fix to suggest, other than to
really look into the CSS.
I am assuming you have tried different height calculation methods. Do you
see the same issue in all browsers?

--
Sent from my iPhone.

If i set the timeout to 0 or 1 and it does not work. It "needs" some more time (the minimum time i've tried (that works) being 100ms). I have tried all height calculation methods also and the results are the same. I have tested with Chrome, Firefox and Edge and results are the same on each browser.

It’s a long time since I last saw an issue anything like this. It must be something on your page in the iframe, but I have no idea what it might be. Over the last 8 years I’ve had PRs for all sorts of weird edge cases and if you work out what’s going on then I’d be happy to consider a PR that fixes it.

A long shot, but post the log output here and I see if I spot anything odd in it.


Feature/get vault enhancenment

Resolves #57.
Exposed getVault method to return a single vault by provided ID or title.

Should be merged after #68

Codecov Report

Merging #69 (d7681a6) into main (128ac37) will increase coverage by 0.26%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #69      +/-   ##
==========================================
+ Coverage   95.86%   96.13%   +0.26%
==========================================
  Files          21       23       +2
  Lines         460      491      +31
  Branches       55       59       +4
==========================================
+ Hits          441      472      +31
  Misses         19       19

Impacted Files
Coverage Δ

src/lib/constants.ts
100.00% <100.00%> (ø)

src/lib/op-connect.ts
97.56% <100.00%> (+0.50%)
:arrow_up:

src/lib/resources.ts
98.33% <100.00%> (+0.37%)
:arrow_up:

src/lib/utils/http-error-factory.ts
100.00% <100.00%> (ø)

src/lib/utils/index.ts
100.00% <100.00%> (ø)

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 128ac37...d7681a6. Read the comment docs.


Translate X,Y setting higher during drag when scale extent below 1

It Works perfectly on scale 1 and above.But below 1 is setting some 10000th time on original x and y transform!!!

Please use Stack Overflow tag d3.js to ask for help. Although I make an effort to assist everyone that asks, I am not always available to provide help promptly or directly. Stack Overflow provides a better collaborative forum for self-help: tens of thousands of D3-related questions have already been asked there, and some answered questions may be relevant to you.
When asking for help, please include a link to a live example that demonstrates the issue, preferably on bl.ocks.org. It is often impossible to debug from code snippets alone. Isolate the issue and reduce your code as much as possible before asking for help. The less code you post, the easier it is for someone to debug, and the more likely you are to get a helpful response.
If you have a question about D3’s behavior and want to discuss it with other users, also consider the d3-js Google Group or joining the d3-js Slack.
Thank you! 🤗


Replacing requirement files and setup.py with pyproject.toml

Summary
This pull request aims to resolve issue 61. The requirement files and setup.py have been replaced with pyproject.toml.
Details and comments
The pyproject.toml in this repo is a template and contains the required fields. In addition, optional fields can be added according to the documentation found here.
To install pyproject.toml use the command python -m pip install path/to/pyproject.toml

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

Hello @caleb-johnson, would you kindly have a look at my solution?
If there are any problem I will fix them.
Thank you

Ahh the CI was passing earlier, sorry I'm getting caught up now :)

@garrison  should I re-add requirments.txt and setup.py to the repo just so the checks pass? The idea was to replace them so I removed them, but I can see without them the checks will not be successful.

I think it makes more sense just to remove the dev and min version test workflows for now.
With regards to setup.py, I think it makes sense to have a minimal one for other reasons.  Something identical to https://github.com/Qiskit-Extensions/circuit-knitting-toolbox/blob/contributing.md/setup.py would suffice.

@garrison ok, that is done for you. Thank you.

tox.ini is going to need some changes, too.  Where you see
https://github.com/qiskit-community/quantum-prototype-template/blob/fac25b307ba8977fbdd59b6171c21e7b57181733/tox.ini#L15-L16
replace with extras = dev
might be worth grepping the repository (e.g., git grep) to see if the requirements files are mentioned in any other places.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
14

Relevant Lines:
14

💛  - Coveralls

@garrison should I modify theecosystem.json dependencies_files entry? If so what should I replaced that part with?

I just ran tox -elint on the root folder and  I have obtained this
$ tox -elint
lint: commands[0]> black --check .
lint: failed with black is not allowed, use allowlist_externals to allow it
  lint: FAIL code 1 (0.28 seconds)
  evaluation failed :( (1.58 seconds)

You will need extras = dev in the lint and black environments, too.

Hello @garrison we already have extrs = dev  on line 15 in tox.ini . I guess when you refer to lint and black environments you are referring to the block [testenv:black] and [testenv:lint]? I have tried to add extras = dev to these blocks and I still get the same error.

What version of tox are you using?  If below version 4, you might have to pass the -r flag to tox for it to re-create the environment.

@garrison, I am currently on version 4.6.0.

perhaps there is a problem with my system. I ran all the commands manually and it seems to me the checks all passed

Just one note for the future (don't worry about this here): typically it is customary to make pull requests from a new branch in your fork, rather than using main in your fork.  Using main can sometimes make things confusing, particularly if you open up multiple PRs to the same repository.

Just one note for the future (don't worry about this here): typically it is customary to make pull requests from a new branch in your fork, rather than using main in your fork. Using main can sometimes make things confusing, particularly if you open up multiple PRs to the same repository.

noted!


Bumping bambou version

Only changes the version, not the requirements yet? (btw, i think there are now two packages in our requirements with security vulnerabilities :))


Unhandled exception with Multiverse Core

Describe the bug
I'm using Multiverse Core 4.3.12, Advanced Seasons 1.3.2, server is Paper 1.20.4
If you enable seasons in any non default world and then restart server - plugin throws errors and stops working on player login.
How to reproduce

Have Multiverse Installed
Have Advanced Seasons installed
Import new world and enable seasons in it
(Everything works fine, unless...)
Server restarts
Now, anytime somebody connects to server, Advanced Seasons throws many errors in console and stops working completely.

If you have Multiverse installed and you enable seasons only in your default world, mentioned in server.properties - everything seems to work fine.

Screenshots / Videos
https://prnt.sc/ckGuOHxyvsQg
https://prnt.sc/j9oHNlk0LTX_
Server Log
https://mcpaste.io/f30715f16451e339

Should be working now


Language server configuration management

Removes default-enabled configurations
Adds commands to enable/disable globally or in project (solve issue #69)
Adds setup command to help the user configure the language server (for issue #4)

Onboarding flow
Notification when a supported syntax is detected:

Documentation shown when running "Setup Language Server":

Clicking one of the Enable options in the bottom will copy the default config to clients in your user settings and set the enabled flags at the user/project level if needed. LSP starts up immediately.
Copying global config vs. merging from default
The "clients" setting in the User LSP.sublime-settings fully replaced the defaults, causing #76 and #117.
Moving the default clients to their own setting key fixes #76 (as there are no default-enabled clients, you don't lose any by defining "clients" in user settings)
As we copy the entire config of a client into user settings, #117 will still not be solved: There will be no way to "use the default config, and only override the command field"
Is this feature worth dedicating even more lines of config-wrangling code to?
TO DO

[ ] Determine if merging config up from default_clients is worthwhile (#117)
[ ] Better naming and handling of unparsed settings and parsed configs
[ ] Remove duplication around project_data handling
[ ] Evaluate impact to users with existing settings
[ ] Find a better way to show documentation - the popup looks terrible, just opening the MD is likely better.
[ ] Update documentation structure so we can open/link to individual language setups

As we copy the entire config of a client into user settings, #117 will still not be solved: There will be no way to "use the default config, and only override the command field"

There is a way to do so, I think. You could try loading the settings by the following two lines:
clients = settings.get("default_clients")
clients.update(settings.get("user_clients"))

clients.update() merges the two configurations basing on the default_clients.

@deathaxe I looked into this today, this should work if we update each client config. Thanks for the tip!

The user benefit of merging up from defaults instead of copying defaults is that if LSP improves the defaults (eg. extra syntaxes or scopes) the user will immediately get those updates.
The downside is that every such update is potentially a breaking update (esp. when it comes to command). But this will probably not happen too often.
supported_client_configs use the settings in default_clients
global_client_configs inherit the settings from default_clients
In order to enable eg. pyls globally,  the User LSP.sublime-settings should have:
"clients": {
  "pyls": {
    "enabled": true
  }
}

project_client_configs inherit the settings from clients and default_clients
In order to enable pyls, a sublime-project should have:
"settings": {
  "LSP": {
    "clients": {
      "pyls": {
        "enabled": true
      }
    }
  }
}

The downside is that every such update is potentially a breaking update (esp. when it comes to command). But this will probably not happen too often.

If a user overrides a setting, he must ensure his changes work. You could probably do some format/type checks against the user configuration before merging. If a key is present, it must match the desired type. On the other hand, if things are merged and something goes wrong, because of invalid settings, you can be quite sure its the user settings issue and output a descriptive error.
I find the idea of merging things together better than ask the user to copy the whole structure. Can be compared with patching a color scheme vs. a theme. Later one is much easier to adjust as you just need to create a file with few lines to patch the original one.


chore: Upgrade xcode version used in macos builds from 11.2.1 to 13.2.1

Description of changes
Upgrade xcode version used in macos builds from 11.2.1 to 13.2.1, since 11.2.1 is now deprecated https://circleci.com/docs/2.0/testing-ios/?#supported-xcode-versions
Issue #, if available
N/A - Contact from Circle
Description of how you validated changes
Will validate via CI testing, this only impacts CircleCI configuration.
Checklist

[x] PR description included
[x] yarn test passes
[x] Tests are changed or added

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #341 (81c9303) into master (64b3057) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #341   +/-   ##
=======================================
  Coverage   84.76%   84.76%
=======================================
  Files         142      142
  Lines        6549     6549
  Branches     1683     1683
=======================================
  Hits         5551     5551
  Misses        907      907
  Partials       91       91

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 64b3057...81c9303. Read the comment docs.


Cannot run installed python binary in subsequent buildpack

I want to run a python script when deploying my build, I'm not clear on how to do this. Is there a way to run a script when an app is deployed? Either by pushing and doing a release, or by promoting a build to production?
I have a staging environment and a production environment, and I want to run database migrations on both environments. Currently I deploy to stage by pushing to a branch, and then if that's cool I promote it to master. The migration script needs to be run in both environments. I'm trying to do it with: https://github.com/revmischa/heroku-buildpack-alembic-migrate

I am having trouble with executing a python script in a subsequent buildpack.
=== myapp-stage Buildpack URLs
1. heroku/python
2. https://github.com/revmischa/heroku-buildpack-nodejs-gulp.git
3. https://github.com/revmischa/heroku-buildpack-alembic-migrate.git

When it runs the final step, it gets an error saying it cannot import modules that were previously installed with pip in buildpack step 1.
-----> Running Alembic migration
+ /tmp/build_175e64ac842e30d225b8c12c6858c869/myapp-myapp-437327e430e2e06629779302239ffcebe2641513/.heroku/python/bin/python /tmp/build_175e64ac842e30d225b8c12c6858c869/myapp-myapp-437327e430e2e06629779302239ffcebe2641513/migrate.py db upgrade head
Traceback (most recent call last):
  File "/tmp/build_175e64ac842e30d225b8c12c6858c869/myapp-myapp-437327e430e2e06629779302239ffcebe2641513/migrate.py", line 8, in <module>
    from myapp.app import setup_app
  File "/tmp/build_175e64ac842e30d225b8c12c6858c869/myapp-myapp-437327e430e2e06629779302239ffcebe2641513/myapp/app.py", line 21, in <module>
    from flask_session import Session
ImportError: No module named flask_session
 !     Push rejected, failed to compile Alembic app.

flask_session was definitely installed earlier:
       Successfully installed Flask-SQLAlchemy Flask-Session


fix test of write buffering

fixes the test failure noticed in https://github.com/grpc/grpc/pull/8008#issuecomment-253599428.
making this against v1.0.x since I'm thinking is more of a fix

moved to https://github.com/ctiller/grpc/pull/38


Fix java demo code

The demo code in doc missed one parenthesis.
Just one line small change.

There are quite a few more instances in this particular file (I counted 7 in total), and it would be nice if you could also update the checkpointing.zh.md file in the same way.

There are quite a few more instances in this particular file (I counted 7 in total), and it would be nice if you could also update the checkpointing.zh.md file in the same way.

@zentol

The other 6 are wrote in scala, looks fine I suppose.
Done in the checkpointing.zh.md, appended the synonymous line of code.


Update python bindings to python3

Closes https://github.com/libsixel/libsixel/issues/33
I switched as many things as I could find to ensure python3 was explicitly used. Very little changes needed to actually get it running. If the build or CI are broke by one of the changes  for python, the commits are one file each so it's easy to fix up if needed. Let me know if what if anything needs changing. Also feel free to make edits as I'm no build expert if there is a problem.
VSCode was giving linter warnings about things needing explicit imports but didn't mess with those to keep the changes minimal.
Also: I'd like to get a pyproject.toml running for the python bindings as I'd rather we switched from pip to poetry. I'd appreciate anybody who could help get that set up.

nice work, thanks! i'll take a close look later today.

So I've noticed that building this is more difficult than I thought. I'm having an issue just getting meson setup build working. It's pointing to my python line as the culprit but it needs to detect python3 and thought it would detect it. It actually tries doing something if I switch the last python name but still fails. I'm not sure what Meson wants from me to detect python correctly. Were the python bindings even working before? Seems switching to Meson broke the python install.

.nodnod, i didn't mean to make demands that would greatly complicate this work. i can probably handle adding anything i requested once we merge this.

My only issue running setup.py directly is it's asking for libsixel, which I believe is generated by meson and gets imported to create a pythonc file. I can accept it being pythonc if the c compiler is actually improving the perf but if it isn't, I'd really prefer it to be a pure python implementation. I think the only part making it pythonc is the fact it's importing the libsixel C library, at least that's been my impression.

I've got some promise, I added python as a libsixel dep and got meson.build:91:0: ERROR: Tried to access unknown option "python3". I think the "import python(3)" option is off. Fix that and we'll probably have a working build again.

So I almost have it working but it sets python as a dependency but doesn't install it by default. I have a rogue line somewhere to track down getting called by message. I'm committing what I have in case I don't figure out today.

And it's now working. Now comes the scrutinizing if this is the approach we want for building it. If not, somebody else will need to update the meson. I got it working and that's enough for me. As far as I can tell, it's not installing the python bindings by default, just ensuring you have python3 installed. Only caveat is if a system doesn't have python3 installed. That magic trickery can be handled by somebody else though.

Spoke too soon. I removed errors from meson setup build but I'm unable to use the --enable-python option. This is where it might be going beyond me.

If you need to make a change, edits are permitted

i like it!

Also: I'd like to get a pyproject.toml running for the python bindings as I'd rather we switched from pip to poetry. I'd appreciate anybody who could help get that set up.

Why poetry specifically? (Disclaimer: I love setuptools -- particularly if you use setup.cfg instead of setup.py -- and hate poetry.)
Since libsixel is using meson already, it would make sense IMHO to use mesonpep517. That creates a PyPI-uploadable package that builds using meson. It may be possible to have it bundle the libsixel shared library rather than requiring it to be installed by hand without pip install integration... That would be easier if it were a C binding rather than pure python ctypes. In that case you'd just configure mesonpep517 to build this module using -Ddefault_library=static and the resulting python module would be fully standalone.

Poetry handles dependency management far superior to other solutions like pip. Python packages built with poetry can still be uploaded to PyPi and users can still use pip if they wish to install. I would prefer python bindings remain pure python.


add padding for mpd module in default style

In the default style.css many modules (clock, battery, cpu, ...) get horizontal padding, but mpd module does not. This commit adds mpd to the list of modules that get the padding.
Before:

After:

Thanks!


Error: Invoke-customs are only supported starting with Android O (--min-api 26)

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Thank you Felipe!
I was about to make the same question and the response was already here.
It solved the issue, thank you again.
I'm a complete newbie trying to play with Android and Arduino and this library is gold

@ElPercha Glad you liked it! 😀


--as-path  option skips empty string

Hello wonderful people,
at first, I'm so grateful for this great project. :3
Just a minor thing.
I noticed, that using the '--as-path' cli-option (when creating a backup) doesn't recognize an empty path, while the configuration-option does.
It would be nice, if both had this ability.
Thank you for your time. (:

Thanks @F3-L1x for opening this issue!
Can you please write how you did run the CLI command?
Did you try to use --as-path ""?

Wow, what a fast reply.^^
You're welcome. (:
I tried it different ways:

With minimal configuration (only specifying host, no-cache, password-file and repository-name) rustic backup --as-path "" ./ I get:

error: no backup source given.

Same minimal config as in 1. and command rustic backup --as-path="" ./ gives:

error: a value is required for '--as-path ' but none was supplied

With a little more extensive configuration (additionally containing: backup.sources/source = "." and some other stuff) rustic -P local backup --as-path "" ./ returns no errors, but rustic -P local snapshot shows an absolute path, rather than a relative.
When additionally added backup/as-path to the config-file rustic -P local backup ./ gives me the result, i wished for.
(no errors and a relative path when using snapshot-cmd)

First, am I right that your original intend is to run 'rustic backup ./and have it saved as a relative path? I think this should not be addressed using--as-path, but instead the path sanitizing should be enhanced such that it keeps a leading .`. I'll look after that.
Moreover, I think that in fact there shouldn't be a use-case where you need to use an empty --as-path, but use --as-path=. (with a fixed path sanitizing, see above) or -as-path=/ (which already works).
Still, digging a bit into details:
About 1. and 2.: I think that this is an issue of clap parsing the CLI arguments. It seems that clap treats an path "" like a not-given path. This explains why this behaves differently than specifying as-path in the config profile. However, I cannot reproduce the behavior described in 1.
About 3: This is treated by clap like no --as-path would be given which explains this current behavior.

Correct handling of paths starting with . (including the paths . or ./) should be fixed by https://github.com/rustic-rs/rustic_core/pull/213

[...] your original intend is to run rustic backup ./ and have it saved as a relative path?

Yes that's what I was trying to do.

I think this should not be addressed using --as-path, but instead the path sanitizing should be enhanced fixed such that it handles a leading .. I'll look after that.

You mean, it should be automatically saved as a relative-path, when using ./ as backup source-path?
I thought of it beeing two separate things. 1. Selecting the working dir with ./ and after it choosing to back it up either as the absolute path or relative by using the --as-path - option.
I actually like, that the user can decide, whether it will be saved relative or absolute (even, when using a relative path as a source).
But maybe, I didn't understand you correctly here.
Thanks for you tip with the:

-as-path=/

That did the trick. (:
And as you've mentioned, -as-path='.' / -as-path='./' didn't work properly,
I ended up using an empty string, rather than -as-path=/, as this looked like an absolute path to me (even if I was on Windows).
Thank you for your super quick help and I'll try your fix soon. :) 👍

You mean, it should be automatically saved as a relative-path, when using ./ as backup source-path?

Exactly. This is also the current behavior if you backup a relative path without leading .. So it should be consistently the identical thing with a leading . - and that's what's implemented in the mentioned PR.
If you want to backup an absolute path, you can simply specify the full path.


Support monitoring mariadb

[ ] If this is non-trivial feature, paste the links/URLs to the design doc.

[ ] Update the documentation to include this new feature.

[x ] Tests(including UT, IT, E2E) are added to verify the new feature.

[ ] If it's UI related, attach the screenshots below.

[ ] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #.

[ ] Update the CHANGES log.

Add this test into e2e testing control file like this
https://github.com/apache/skywalking/blob/6efaa6f9bcca524b4b256ff1128cae87d76b6739/.github/workflows/skywalking.yaml#L600-L601
Docs should be updated to add MariaDB supported words, https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-mysql-monitoring.md
Changelog should be updated as well, https://github.com/apache/skywalking/blob/master/docs/en/changes/changes.md

@wu-sheng Please notice that I didn't create dashboard for MariaDB database and I am using MySQL database dashboard to receive the data from MariaDB.
In other words, I am receiving aborted connections data of MariaDB at metric called meter_mysql_connects_aborted
I think I have to create a dashboard for MariaDB with its metrics before updating docs to be able to rename metrics correctly to be like this meter_mariadb_connects_aborted.

In other words, I am receiving aborted connections data of MariaDB at metric called meter_mysql_connects_aborted
I think I have to create a dashboard for MariaDB with its metrics before updating docs to be able to rename metrics correctly to be like this meter_mariadb_connects_aborted.

This metric exists in MySQL MAL script and dashboard AFAIK. So besides testing, what is really changed? New fluent-bit, new otel configuration, or both?

@yswdqz Could you confirm what is the difference?

I'm not quite sure if mysqld_exporter export mariadb metrics is the same as mysql (I think it should be the same, I will test it tomorrow)
If they are the same, then only the mysql and fluent-bit configuration files need to be changed

If they are the same, then only the mysql and fluent-bit configuration files need to be changed(docker-compose.yaml 's mysql image also need to change to mariadb)

What do you mean mysql? The MySQL server in e2e deployment?

If there is only a little changed, we should consider updating UI menu to MySQL / MariaDB, and also update the documents and words to show how to set up MySQL and MariaDB at the same time.
This should be not hard.

Sorry, I accidentally edited  answer.
for mysql, it refer MySQL server, just my.cnf

If they are the same, then only the mysql and fluent-bit configuration files need to be changed(docker-compose.yaml 's mysql image also need to change to mariadb)

I have tested them, they are the same.

Then, let's start to update menu name on UI, then upgrade docs to guide users to set up for MySQL and MariaDB with different configuration(fluentbit and any others)

MariaDB e2e doesn't pass. Please recheck.

@mahmoud-anwer It seems that meter_mysql_connects_aborted  is always 0, maybe you can fix it with a bad password login.

@yswdqz Could you guide to remove MySQL server in the docker dependencies? I think h2 is enough for this testing, including MySQL monitoring.

Yes, but I think we can wait for E2E to pass first.

The commit above is about :
I have found that the fluent-bit.lua code I wrote previously is not elegant (I was not familiar with the Lua syntax at that time), so I would like to take this opportunity to optimize these two codes.

The commit above is about :
I have found that the fluent-bit.lua code I wrote previously is not elegant (I was not familiar with the Lua syntax at that time), so I would like to take this opportunity to optimize these two codes.

@yswdqz it's better you change your codes through your own PR and sync to here.

@yswdqz it's better you change your codes through your own PR and sync to here.

Because the fluent-bit.lua of this PR is based on mine, so I changed these two codes together.

@yswdqz it's better you change your codes through your own PR and sync to here.

Because the fluent-bit.lua of this PR is based on mine, so I changed these two codes together.

Yes, I have just edited it to work with MariaDB :smile: in addition to the fluentbit parser.

Could you merge the doc into backend-mysql-monitoring.md as there should be little different?
Because

They are similar, so, one doc is easier to maintain.
We only have one link from dashboard. We don't have chosen one, and confused the other group of ppl.

Notice, menu.yam should be updated according, to (MySQL/MariaDB server).

Notice, MySQL menu on the UI should be updated to MySQL / MariaDB, as well as i18n files.
https://github.com/apache/skywalking-booster-ui/search?q=mysql

@wankai123 @kezhenxu94 The TTL tests suddenly fail. This PR seems didn't change anything relative.

Okay, I have forked skywalking-ui repo and created new branch called mariadb-ui and edited the required files but I think I am missing something about connecting it with mariadb branch on skywalking repo.

Or, sync sub module could be done by us. Just make sure you submitted that PR, and this PR is ready(doc fixed is enough).
Please revert recent commits.

Revert these three commits, then this PR should be good. You should submit a pull request to https://github.com/apache/skywalking-booster-ui from your UI fork repository

Somehow, e2e fails.

@mahmoud-anwer The instance name of mariadb-case.yaml should change because of the change in otel-collector-config.yaml.

@mahmoud-anwer The instance name of mariadb-case.yaml should change because of the change in otel-collector-config.yaml.

I got it, I am going to edit it now.

In final review, one more place should be updated
https://github.com/apache/skywalking/blob/6ec721e9331c99d5e351b37fa3de33a2107aaf11/oap-server/server-starter/src/main/resources/ui-initialized-templates/mysql/mysql-root.json#L49
Should be Provide MySQL and MariaDB Server monitoring through OpenTelemetry's Prometheus Receiver

This would show at here

We could leave MySQL dashboards without any change.

Merged. @mahmoud-anwer Thank you for your patience.


C# build fails due to missing setMaxDistance

I attempted to compile the C# wrapper on Linux (Fedora 24) and it failed with the following issue:
/home/bjr/rpmbuild/SOURCES/cAudio-patched/cAudioCSharpWrapper/src/cAudioWrapped_wrap.cxx: In function ‘void CSharp_IAudioSource_setMaxDistance(void*, float)’:
/home/bjr/rpmbuild/SOURCES/cAudio-patched/cAudioCSharpWrapper/src/cAudioWrapped_wrap.cxx:4896:11: error: ‘class cAudio::IAudioSource’ has no member named ‘setMaxDistance’; did you mean ‘getMaxDistance’?
   (arg1)->setMaxDistance((float const &)*arg2);
           ^~~~~~~~~~~~~~
cAudioCSharpWrapper/CMakeFiles/cAudioCSharpWrapper.dir/build.make:62: recipe for target 'cAudioCSharpWrapper/CMakeFiles/cAudioCSharpWrapper.dir/src/cAudioWrapped_wrap.cxx.o' failed
make[2]: *** [cAudioCSharpWrapper/CMakeFiles/cAudioCSharpWrapper.dir/src/cAudioWrapped_wrap.cxx.o] Error 1
CMakeFiles/Makefile2:253: recipe for target 'cAudioCSharpWrapper/CMakeFiles/cAudioCSharpWrapper.dir/all' failed
make[1]: *** [cAudioCSharpWrapper/CMakeFiles/cAudioCSharpWrapper.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Is this expected to work currently?

Never tested the c# wrapper inside of linux. For that we are at the mercy of what SWIG can do.

Oh, alright. Good to know-- I won't expect this to work then. :)


Error starting the toolbox

I get the error below when I try to start the toolbox,
All the activation show black image, not sure why, any suggestions?
(I use Ubuntu 12.04, I had a separate master branch of caffe and it works fine)

Used the master branch of caffe and it worked.


diff: filter dracut's tmp folder name

Dracut's temporaty folder under /var/tmp is changing each time. Filter this out to avoid getting differences while running the tests and the update process.
osbuild-image-tests gets a diff utility function to help diff out image-infos. The program can load either a DB entry or a raw json file.

As a follow up I think I'd like to make a python lib for manifest-db as the code that is duplicated is growing up.


[QUESTION] - How I can change the test title from a decorator?

Question
How I can change the test title from a decorator?
In Mocha execution, we have grep feature which helps to execute the matched test cases. [https://mochajs.org/api/mocha#grep]
I am looking for a similar solution that helps me to exclude the test on compile time using a decorator.
Example: Let say, I have a set of tests, and all tests may not be applicable to all different types of users. I want to exclude a few tests based on the type of users. I like to build a decorator which help me to achieve this.
It will help to apply the same logic for a setting-driven application where we have tons of customization and settings.
import { suite, test } from "@testdeck/mocha";
import { expect } from 'chai';

const UserType = {
  'customer': 1,
  'admin': 2
}
@suite
class UserTests {

  // Execute the test by mocha using grep if user type is 'admin'
  // or exclude this test for user type 'customer'
  @runForUserType('admin') // custom decorator
  @test "should able to view reports" (){
    // some assertions....
    expect(true).to.equal(true);
  }
}

/*
Set mocha grep as
1. grep: /admin/i
2. grep: /admin|supervisor/i
*/

or Is there a way to skip the current test from my custom decorator? if yes then a sample will be helpful. Thanks.

@Amitesh thanks for your question.
I fear that it is not possible to change the test name (aka title) based on some condition.
Perhaps you should rethink your testing strategy, e.g. add a test for an admin user and one for a customer user.
The latter (customer) should be expected to fail as the user does not have the permission to view the reports.

@Amitesh There is a skip by condition option, see https://testdeck.org/pages/guide/advanced_tests#skipping-tests---

Thank you @silkentrance for answering it.
Here is what I have tried which is able to mark the test as skipped in allure report but it also executes the test body.
// spec file

store.set('skipSettingKey', 'admin-user');

@mySkip('admin-user')
  @test
  public MyTest1() {
    getReporter().addStep('Step: running test- MyTest1');
    getReporter().startStep('start of step');
    getReporter().addStep('step body');
    getReporter().endStep('passed');
    expect(5).toBeGreaterThan(4);
  }

// file decorator.ts
export function mySkip(value: string) {
  return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
      const original = descriptor.value;

      if (typeof original === 'function') {
          descriptor.value = function(...args) {
              try {
                AllureReporter.addStep(value);
              } catch (e) {
                  console.error(`[ERROR] Failed to decorate ${target.constructor.name}.${propertyKey}: ${e}`);
              }
              const tagToSkip = store.get('skipSettingKey'); // here store is a service which give the key at runtime

              if(tagToSkip === value){
                this[context].skip();
              }
              return original.apply(this, args);
          };

          for (let prop of Object.keys(original)) {
              if(original.hasOwnProperty(prop) && prop.startsWith('__testdeck_')) {
                  descriptor.value[prop] = original[prop]
              }
          }
      }
      return descriptor;
  };
}

You are always calling the original function.

Thanks @silkentrance