ERR_OUT_OF_RANGE in W3Buffer/InfoTranslator

I wanted to convert a war3map.w3i (made in v1.26) to JSON to experiment with it. I have no idea how to use the library, so I came up with this by following the included tests:
const wc3 = require('wc3maptranslator')
const fs = require('fs')

const war3infoPath = "war3map.w3i"

function readWar3MapBuffer(filename) {
    return fs.readFileSync(filename);
}

function readJsonTestFile(filename) {
    return fs.readJsonSync(filename);
}

function writeJsonTestFile(filename, json) {
    return fs.writeJsonSync(filename, json);
}

const w3infoData = readWar3MapBuffer(war3infoPath)
const translatedJson = wc3.InfoTranslator.warToJson(w3infoData).json
writeJsonTestFile("war3info.json", translatedJson)

Looks like an off-by-one error? thats hopefully not related to my code:
$ node .
node:internal/buffer:86
  throw new ERR_OUT_OF_RANGE(type || 'offset',
  ^

RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 735. Received 736
    at new NodeError (node:internal/errors:377:5)
    at boundsError (node:internal/buffer:86:9)
    at Buffer.readInt32LE (node:internal/buffer:390:5)
    at W3Buffer.readInt (/home/user/node_modules/wc3maptranslator/lib/W3Buffer.js:14:34)
    at Function.warToJson (/home/user/node_modules/wc3maptranslator/lib/translators/InfoTranslator.js:346:29)
    at Object.<anonymous> (/home/user/war3-24p/w3i2json.js:32:43)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Module._load (node:internal/modules/cjs/loader:827:12) {
  code: 'ERR_OUT_OF_RANGE'
}

Node.js v18.2.0

I installed the library from npm: version 4.0.0. The .w3i file is attached within zip: war3info.zip

Hi @Luashine, thanks for the details and sorry that it's not working! I'll be able to take a look this upcoming weekend.

I am able to replicate this issue with the RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 735. Received 736 error.
It looks like from the .w3i file you provided, you're using a Pre-Reforged data format (version 25 instead of the latest version 31). WC3MapTranslator will be trying to translate this file as if it version 31. Because there were a number of fields added, this will mess up the parsing of older files.
You have a few options:

Open the map you extracted this .w3i file from in World Editor, and then save the map. World Editor will handle the data format upgrade for you, so the .w3i will be in the latest format. Then use that file.
Use an older version of WC3MapTranslator (before v4.0.0). For example, you could try downgrading to npm install --save<EMAIL_ADDRESS>which was the most recent version to translate Info 25 files.

V3 has different syntax for translators:
const wc3maptranslator = new wc3.Translator()
const translatedJson = wc3maptranslator.Info.warToJson(w3infoData).json

I think the first option is better, because WC3MapTranslator v4 saw some nice improvements to the organization of the translators and the code you'd use to import them and use them. As you can see in the code snippet above<EMAIL_ADDRESS>is a little uglier and more confusing to use.
However, I was able to translate the info file:
{
  map: {
    name: 'TRIGSTR_014',
    author: 'TRIGSTR_017',
    description: 'TRIGSTR_016',
    recommendedPlayers: 'TRIGSTR_015',
    playableArea: { width: 244, height: 244 },
    mainTileType: 'V',
    flags: {
      hideMinimapInPreview: false,
      modifyAllyPriorities: false,
      isMeleeMap: false,
      maskedPartiallyVisible: true,
      fixedPlayerSetting: false,
      useCustomForces: false,
      useCustomTechtree: false,
      useCustomAbilities: false,
      useCustomUpgrades: false,
      waterWavesOnCliffShores: true,
      waterWavesOnRollingShores: true
    }
  },
  loadingScreen: { background: -1, path: '', text: '', title: '', subtitle: '' },
  prologue: { path: '', text: '', title: '', subtitle: '' },
  fog: {
    type: 0,
    startHeight: 3000,
    endHeight: 5000,
    density: 0.5,
    color: [ 0, 0, 0, 255 ]
  },
  camera: {
    bounds: [
      -15104, -15616,
       15104,  15104,
      -15104,  15104,
       15104, -15616
    ],
    complements: [ 6, 6, 4, 8 ]
  },
  players: [
    {
      name: 'TRIGSTR_001',
      startingPos: [Object],
      playerNum: 0,
      type: 1,
      race: 1
    },
    {
      name: 'TRIGSTR_002',
      startingPos: [Object],
      playerNum: 1,
      type: 1,
      race: 1
    },
    {
      name: 'TRIGSTR_003',
      startingPos: [Object],
      playerNum: 2,
      type: 2,
      race: 1
    },
    {
      name: 'TRIGSTR_004',
      startingPos: [Object],
      playerNum: 3,
      type: 2,
      race: 1
    },
    {
      name: 'TRIGSTR_005',
      startingPos: [Object],
      playerNum: 4,
      type: 2,
      race: 1
    },
    {
      name: 'TRIGSTR_006',
      startingPos: [Object],
      playerNum: 5,
      type: 2,
      race: 1
    },
    {
      name: 'TRIGSTR_007',
      startingPos: [Object],
      playerNum: 6,
      type: 2,
      race: 1
    },
    {
      name: 'TRIGSTR_008',
      startingPos: [Object],
      playerNum: 7,
      type: 2,
      race: 1
    },
    {
      name: 'TRIGSTR_009',
      startingPos: [Object],
      playerNum: 8,
      type: 2,
      race: 1
    },
    {
      name: 'TRIGSTR_010',
      startingPos: [Object],
      playerNum: 9,
      type: 2,
      race: 1
    },
    {
      name: 'TRIGSTR_011',
      startingPos: [Object],
      playerNum: 10,
      type: 2,
      race: 1
    },
    {
      name: 'TRIGSTR_012',
      startingPos: [Object],
      playerNum: 11,
      type: 2,
      race: 1
    }
  ],
  forces: [ { flags: [Object], players: -1, name: 'TRIGSTR_013' } ],
  saves: 10,
  editorVersion: 6059,
  globalWeather: '0000',
  customSoundEnvironment: '',
  customLightEnv: '0',
  water: [ 255, 255, 255, 255 ]
}

Let me know how either of these options go and if you encounter any more issues.

Thanks for the explanation, I thought old versions to be supported. In this case I really want and need to tinker with the 1.26 file. I will find another way then or use the older version as you suggested. :+1:


Add the posibility to dynamically set the number of replicas in the Kubernetes Deployment file

Description
Let's suppose I have a Jenkins pipeline pipeline with two stages deploy-staging and deploy-pro. sh "./mvnw fabric8:resource" generates a kubernetes.yaml file with this number of replicas:
  spec:
    replicas: 1

Now, image in want one replica for staging but n for production. I can manually do kubectl scale deployment --replicas=2 but as soon as I do mvn fabric8:apply with for instance a new image to use, the replicas will be downscaled to 1 again.
It'd be great to have a fabric8.replicas property to allow us to override this value.
Info

f-m-p version : 3.5.41

Maven version (mvn -v) : Apache Maven 3.5.3

Kubernetes / OpenShift setup and version : Kubernetes 1.11

Depending how you generate you resource descriptors, you can already do this.
I.e. if you are relying on the enricher to generate a default Deployment, then just set the property fabric8.enricher.fmp-controller.replicaCount to the the number you want, or alternatively put this into the configuration:
<enricher>
  <config>
    <fmp-controller>
      <replicaCount>2</replicaCount>
    </fmp-controller>
  </config>
</enricher>

Of in the general case, you can also use a fragment by putting a file name-deployment.yml (with name the name of your app) into src/main/fabric8 with the fragment:
spec:
  replicas: 2

@rhuss thanks for your quick reply, I am using a generator so the enricher property fits perfectly. However I am having trouble making this all fit in a Jenkins pipeline, could you suggest how to do it, please?
This was my initial scenario:

First I build and push the docker image:

stage("Build and Push Docker Image"){
    sh "./mvnw fabric8:build"
    ...
    sh "./mvnw fabric8:push"
}

I build the staging resources and apply them

stage("Deploy Staging") {
            agent {
                label 'jenkins-slave'
            }
            steps {
                container('jenkins-slave') {
                    script {
                        sh "./mvnw fabric8:resource -Dfabric8.enricher.fmp-controller.replicaCount=1"
                        sh "./mvnw fabric8:apply -Dfabric8.namespace=staging"
                    }
                }
            }
        }

I build the pro resources and apply them

stage("Deploy Production") {
            agent {
                label 'jenkins-slave'
            }
            steps {
                container('jenkins-slave') {
                    script {
                        sh "./mvnw fabric8:resource -Dfabric8.enricher.fmp-controller.replicaCount=4"
                        sh "./mvnw fabric8:apply -Dfabric8.namespace=production"
                    }
                }
            }
        }

The problem here is: in the "Build and Push Docker Image" stage an image is pushed to my private registry with this tag: 0.0.1-SNAPSHOTsnapshot-180813-094821-0461 but in the "Deploy Staging" stage the generated kubernetes.yaml points at an unknown image 0.0.1-SNAPSHOTsnapshot-180813-095003-0795 and the startup of the application fails (ImagePullBackOff).
Thus, I am forced to execute in the same stage this so the tag used in the image push and the kubernetes.yml resource is the same:
sh "./mvnw fabric8:build"
sh "./mvnw fabric8:push"
sh "./mvnw fabric8:resource -Dfabric8.enricher.fmp-controller.replicaCount=1"

Now I cannot customize the replica count per environment since I cannot separate the fabric8:resource generation per environment.
Any suggestion?

Actually the time based tagging of snapshot images is flawed if build and resource are not called at the same time. While this could be potentially be fixed (a long the same lines as skaffold) with some temporary files, I highly recommend to change the naming strategy.
See also #1093  for further explanation.
You can change the strategy by setting the property fabric8.generator.name=%g/%a:%l (the possible placeholders are explained here)
Does this help ?

The downside I see is that relying on latest (%l) could lead to some uncertainty about what you have in Staging:
You build a dev image (1.0.0-SNAPSHOT) and apply it to the staging env.
Someone builds a pro image (1.0.0) and applies it to the prod env.
You don't know the new image exists and for some reason restart your pod. It's gonna pull latest again which is 1.0.0 not 1.0.0-SNAPSHOT anymore.

I have also come across a problem using %l for SNAPSHOT versions. Google Cloud Registry complaints about using the same tag (latest) since it already exists:
[ERROR] Failed to execute goal io.fabric8:fabric8-maven-plugin:3.5.41:push (default-cli) on project gke-springboot-sample: Cannot temporarily tag apps-internas-212606/prfl/gke-springboot-sample:latest with eu.gcr.io/mygcproject/gke-springboot-sample:latest because target image already exists. Please remove this and retry. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.fabric8:fabric8-maven-plugin:3.5.41:push (default-cli) on project gke-springboot-sample: Cannot temporarily tag mygcproject/gke-springboot-sample:latest with eu.gcr.io/mygcproject/gke-springboot-sample:latest because target image already exists. Please remove this and retry.

I have also come across a problem using %l for SNAPSHOT versions. Google Cloud Registry complaints about using the same tag (latest) since it already exists
[ERROR] Failed to execute goal io.fabric8:fabric8-maven-plugin:3.5.41:push (default-cli) on project gke-springboot-sample: Cannot temporarily tag apps-internas-212606/prfl/gke-springboot-sample:latest with eu.gcr.io/mygcproject/gke-springboot-sample:latest because target image already exists. Please remove this and retry. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.fabric8:fabric8-maven-plugin:3.5.41:push (default-cli) on project gke-springboot-sample: Cannot temporarily tag mygcproject/gke-springboot-sample:latest with eu.gcr.io/mygcproject/gke-springboot-sample:latest because target image already exists. Please remove this and retry.

Hello @rhuss, is the property fabric8.enricher.fmp-controller.replicaCount dropped with the plugin 4.x.x? I currently using the latest plugin 4.4.0 and setting the property has no effect on the generated deployment.yml as it had in 3.5.x. With 4.x.x I need to explicitly set replicas: ${fabric8.enricher.fmp-controller.replicaCount}

Seems like a regression, we split DefaultControllerEnricher to two enrichers in 4.x versions. Could you please provide a reproducible sample if possible? We'll try to fix it before next release(coming in 1-2 weeks)

Seems like a regression, we split DefaultControllerEnricher to two enrichers in 4.x versions. Could you please provide a reproducible sample if possible? We'll try to fix it before next release(coming in 1-2 weeks)

I created a minimal example and in this it is working for both versions 3.5.42 and 4.4.0. The benefit of having the property setting it implicitly over setting it explicitly is minimal. So feel free to close the ticket again.


Consider Debian LTS as supported

In the past we agreed on not supporting Debian LTS versions, only the standard versions (and I know that I was one of the people that pushed for not supported LTS back then). Debian 11 switched from standard to LTS on 2024-08-15. There are still requests from users to support Debian 11 and I think with the slow response from Puppet about new debian packages it makes sense to reconsider it.
Please respond with :+1: if you agree or with :-1: if you think we shouldn't support the LTS versions. When we've some feedback we can merge this PR or close it.

As I've said in private, I view Vox Pupuli as a collective of people who make sure they can do what they need. we're limited on the time we have and the reason I supported active removal of older code was to reduce maintenance burden. All in order to save time. If you actively want to support Debian 11 and put in the effort to make that happen, I'm all in favor of it.
The same goes for other cases. As long as it's reasonable (so don't ask for Puppet 3 support) and doesn't put a big burden on other maintainers then I'm open to it.

I'd announce this a best effort exception for now, so nobody would expect the same in the future just in case

Indeed, all the operating systems we "support" are best effort.

I support this move but want to ask what this means for the puppet versions we support.  For instance the current LTS version, buster, is using puppet 5.5 support for which was removed from the voxpupuli modules long ago.  Or is the stance that we only support debian LTS with the perforce provided packages?

@b4ldr thanks for raising this. My understanding is that for distributions where Perforce offers AIO packages, we only support those. But I realize that we probably never explicitly wrote that down. I will try to come up with something in another PR.
At the moment, our beaker jobs all rely on AIO packages, where available. For Ubuntu 24.04 and Debian 12 we started with the distro packages bevause Perforce was a bit slow with packages. UT as soon as they were available, we switched to them.


Llama

Bringing the first official Llama implementation to Burn! With pre-trained weights in mpk format (hosted on HF hub).

[x] Llama decoder-only transformer architecture
[x] Llama 3

[x] Tiktoken tokenizer
[x] Pre-trained weights

[x] TinyLlama

[x] Sentencepiece tokenizer
[x] Pre-trained weights

Currently the top-p sampling is done on CPU before decoding since Burn is missing categorical distribution sampling. We could improve that once everything else is done.
Closes #20

Tested with wgpu and tch (gpu). I think this is ready for review!
TinyLlama results on my dev machine:
Wgpu
Loading record...
Loaded in 20s
Processing prompt: How many helicopters can a human eat in one sitting?
> It's impossible to know for certain how many helicopters a human can eat in one sitting. However, it's generally accepted that humans have a limited appetite and can only eat a small amount of food at a time.

50 tokens generated (3.5432 tokens/s)

Generation completed in 0m14s

LibTorch<f16>
Loading record...
Loaded in 18s
Processing prompt: How many helicopters can a human eat in one sitting?
> It's impossible to know for certain how many helicopters a human can eat in one sitting. However, it's generally accepted that humans have a limited appetite and can only eat a small amount of food at a time.

50 tokens generated (21.6305 tokens/s)

Generation completed in 0m2s

Pretty big difference 😅

Weights have been updated to use the named mpk format (much faster now that data is treated as bytes with serde). In follow-up PRs we will add quantization and support for Llama 3.1.


Add Hidden bars

Add Hidden bars to the API

@JRiad have started working on this

Which milestone should this belong to? Do you have a specific priority for this?

Which milestone should this belong to?

Dont know. But I think @JRiad already have an (uncommitted) implementation for C#


[BUG] Amethyst fails to display images if there is no space before "https://"

One common reason images fail to load is the syntax created by one client being interpreted incorrectly by another.
In this case, images uploaded by Primal are breaking on Amethyst because the client isn't adding an extra space or line break before the URL.
Most other clients can display these images normally, but Amethyst does not, only showing the image URL instead.
I'm asking for Amethyst to follow what other clients already do:  recognize the user intent to display an image, and parse these links correctly.
Examples:
https://nostrudel.ninja/#/n/nevent1qqs2j3p0lxyw7xnjhc2j55vl63ael0mfkdxdyqc479tuvdy4zfqf3uqpzfmhxue69uhhqatjwpkx2urpvuhx2ucpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3camnwvaz7tmwdaehgu3wvf5hgcm0d9hx2u3wwdhkx6tpdsqs6amnwvaz7tmwdaejumr0dsl7jwdl
https://iris.to/nevent1qqs2j3p0lxyw7xnjhc2j55vl63ael0mfkdxdyqc479tuvdy4zfqf3uqpzfmhxue69uhhqatjwpkx2urpvuhx2ucpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3camnwvaz7tmwdaehgu3wvf5hgcm0d9hx2u3wwdhkx6tpdsqs6amnwvaz7tmwdaejumr0dsl7jwdl
https://coracle.social/nevent1qqs2j3p0lxyw7xnjhc2j55vl63ael0mfkdxdyqc479tuvdy4zfqf3uqpzfmhxue69uhhqatjwpkx2urpvuhx2ucpz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3camnwvaz7tmwdaehgu3wvf5hgcm0d9hx2u3wwdhkx6tpdsqs6amnwvaz7tmwdaejumr0dsl7jwdl

We could do this. But I would love if the writing client fixed this instead.
I hope we all agree that these posts just make the parser much more difficult than what it could be and makes the job of new clients much harder.
URL schemes should have a space before them. This is not hard.

I completely agree with you and I've reported this to Primal as well. Hopefully they will fix that as it is definitely a bug. However, as an interim fix I'd like to see these posts not appear broken on the most popular Android client.

Also, Primal implementing a fix would still not solve the existing issue on the note I mentioned, only future ones.

Maybe it shouldn't be solved to force this fix at the writing side so that new clients don't need to worry about this.

That kind of punishes and confuses users who see malformed notes on Amethyst (since they look normal on all other major clients) and assume Amethyst is broken. But it's your call.

It also punishes the writer and the writer's app because the image will not show up, links won't work and it just won't attract users to the link, failing to make the point the writer wants.
The writer can always delete the post and write again with the fix. This seems like a better future than requiring every single client to code an advanced parser to figure out what's a link and what's not.

This is exactly how I anticipated this conversation would go.
Anyway, I'm an advocate for the user, and don't like the idea of punishing them or forcing them to (attempt to) delete their posts because two clients aren't cooperating.
BTW, I found the same issue on Coracle, submitted it, and it was fixed within a few hours.


[TC6.1-B13] Worldregen issue with amber

Hey. I found that in order to regen amber, i had to tick regenAmber, regenQuartz, regenCinnabar and regenTrees.
Didn't dig any deeper, but thought I'd leave the info.

I'll also tag on that if you change the regen key via mod options in the main menu, you will still have to restart mc for regen to happen. No biggie, but had me wondering why nothing was happening for a bit, since regen doesn't come with much of a manual. (which is fine. probably like 1% of people actually use this :D)


SVN enhancements

I am lazy, so I just c&p my commit messages here ;-) Thanks for your work...
[TASK] adds svn branch/ tag name to bash prompt as well
[BUGFIX] updates/ normalizes the "not a svn sandbox" test/ condition
[CLEANUP] remove read-only flag from BPVCS_VERSION variable as it outputs warnings
[TASK] updates readme and screenshot

Thanks for the mods!  After a quick glance, it looks like a strict improvement to the svn support.  I'll try to make time to really dig into it and merge it soon.  Thanks again.

I am curious about making the version non-readonly.  What warnings were you seeing?  I like the fact that it's read-only, but have had a few offline conversations with other people who find it annoying, so I'm considering changing it.

Sorry for the late reply. After sourcing the .bashrc I see the following output in the bash console.
-bash: declare: BPVCS_VERSION: Schreibgeschützte Variable. (sorry german bash ;-) )


Webstorm / Phpstorm / Intellij user who want to upgrade to rxjs@7

The variadic tupel type usage in the types of rxjs@7 makes intelli sense and code completion significantly worse in jetbrains IDEs when you upgrade from rxjs@6 to >= rxjs@7
To the users out there who didn't switch to vscode already 🙈 and want a good developer experience, please upvote my bug ticket that asks for tackling this issue https://youtrack.jetbrains.com/issue/WEB-54605/Variadic-tuple-type-support-for-typescript - so jetbrains sees there are still people out there using their IDE for typescript 😞
No response

Closing, as this issue is not on rxjs. Just opened for visibility.


Can't expand right-handed column in Data Viewer

Feature: Notebook Editor, Interactive Window, Python Editor cells

Description
Right now I cannot figure out an artful way to expand columns on the right-hand side of the Variable Explorer window. The column is too narrow to read anything. Dragging the column header boundaries around on other columns resizes the columns. But trying to drag the right-hand side of the column header to the right on the far-right column is fruitless. Dragging the left hand side to the left to expand that right column just shrinks the other columns, and does nothing to expand the right-hand column.
I've loaded a sample dataset and attached a screenshot here that shows my squished column.

Is there some way to expand this that I"m missing? Double-clicking the column boundaries in the header (a la Excel) does nothing, and the dragging thing doesn't seem to work for me.
Pointers appreciated, or if there is no good way to do this, adding a way would be helpful.

Did this ever get solved? Or is there an "expand all" feature?

closing as the jupyter data-viewer was deprecated https://github.com/microsoft/vscode-jupyter/issues/15486


Feature/gramine post session to sps api

Well done for the removal of palaemonTemplateFilePath and the similar Gramine file. It's way cleaner now!
BTW, we should remove iexec-sms-library/bin/test/com/iexec/sms/api/SmsClientTest.class which has accidentally been added.

Those last commits looks great. As I have opened the PR I can't approve them but OK for merging :)


Remove deprecated apoc.convert functions

[bcIQ3oqd] Remove deprecated  apoc.convert functions

Please also look at https://github.com/neo4j/docs-apoc/pull/15 :)


Implemented for of loop, break, and continue

Hey, I hope this helps a little. Maybe the keyword that I chose can be changed later.
Preview
fomo semua foo dari bar
  kalo foo itu 3
    skip
  perhaps foo itu 5
    spill "Loop diakhiri"
    stop
  udahan
  spill foo
udahan

// transforms to
for (const foo of bar) {
  if (foo == 3) {
    continue;
  } else if (foo == 5) {
    console.log("Loop diakhiri");
    break;
  }
  console.log(foo);
}

Fix : Variable naming rules (commit )

Nice fix. I'll check it later

Nice fix. please add new command to Command.md

Nice fix. please add new command to Command.md

Done


fix flushEventQueue by using shift instead of unshift

Here should be shift() instead of unshift()

Yes. The interpreter is really helpful.
We are trying to use xstate as core state machine in our open source chatbot framework Bottender. And the launch of interpreter will save us a lot of time from implementing it ourself. Thanks a lot!

Awesome, there's still some things that will be added to it before V4 is finalized, so feel free to give feedback.
E.g., I'm going to add more specialized listeners for onAction(), onActivityStart(), etc. but that can be done after the V4 release.


Documentation: CompositionOperator is missing from the documentation

https://github.com/TomographicImaging/CIL/blob/be57697c96d3e66032bac5de5246d0d276e3ba1e/Wrappers/Python/cil/optimisation/operators/Operator.py#L494
does not exist in the documentation.

It is in the documentation but there is a missing doc string. Will add one


.NET Core Self Contained app. Won't work on machines does not have .net framework installed

Hello, Its very good lib. I have only one issue, that you could change your code instead of System.Management and use WmiLight.
Because using this existing libc.hwid. It works perfect if .net framework installed on machine on target machine.
So kindly change your library without depend on System. Management and use WmiLight. So we can use your lib on .net core 6 self-contained exe. on the machines that does not have .net framework installed.

Hi @haseakash
After reading the README of WmiLight, I did not see any mention of cross-platform functionality. WMI I think only belongs to Windows machines.
About System.Management package:
As you can see in the picture below, it supports various dotnet versions, so you do not have to have .net framework :)

@sfmohassel : Bro, you didn't understand what i mean. System. Management only works if machine installed the. Net framework on client machine. In Self contained. Net core 6.0 app with including all runtime files in single exe, it still system. Management required Wmiutil.dll updated on client machine. It says update your. Net framework on client machine. So i found a solution and also i changed a small code in your project removing system.Management and using WmiLight instead. Now it works perfect on. Net core self contained app.
If you dont mind i will share that code on your email or anywhere.
Just update your libc.hwid version
https://stackoverflow.com/questions/40567595/not-able-to-use-system-management-dll-in-dot-net-core
https://github.com/dotnet/runtime/issues/66386
So in simple, just change one part instead of system.management with WmiLight. And rebuild the dll.

@sfmohassel : update your code as following.. I tested it and work same without depend on wmiutil. Dll of client machine. Works perfect with both. Net core and . Net framework.

Remove your System.Management nuget completely from your project.

Install nuget WmiLight
add top using WmiLight.

replace existing part with following code.

Rebuild and update your project with latest nuget version. :)

`private static string Wmi(string wmiClass, string wmiProperty)
{
var result = "";
// Create a WmiConnection object to query WMI
using (var con = new WmiConnection())
{
    // Create the query for the WMI class and property
    string query = $"SELECT {wmiProperty} FROM {wmiClass}";

    // Execute the query and retrieve instances
    var moc = con.CreateQuery(query);

    foreach (var o in moc)
    {
        var mo = o;  // WmiObject is used directly

        // Only get the first one (same as the original code)
        if (!string.IsNullOrEmpty(result))
            continue;

        try
        {
            // Access the property value and set the result
            result = mo[wmiProperty]?.ToString();

            break; // Exit after the first result (matching the original code)
        }
        catch
        {
            // Ignored in case of an error retrieving the property
        }
    }
}

return result;

} `

Hi @haseakash After reading the README of WmiLight, I did not see any mention of cross-platform functionality. WMI I think only belongs to Windows machines.
About System.Management package: As you can see in the picture below, it supports various dotnet versions, so you do not have to have .net framework :)

I have same problem of System.Management the user mention as following:
I've ported an application to .NET 6 and added nuget package of System.Management. It shows .NET 6 as supported, it depends on System.Codedom which also shows .NET 6 support. Apart of that no other dependencies. I've published my app as self-contained and ran it on a Windows 8.1 machine. It crashed and the event viewer got an entry saying:
System.PlatformNotSupportedException: The native library 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319.
Means, I test it on frem clean installed Windows 8.1 official iso.
And run the libc.hwid
It throw same error. Which says wminet_utils.dll' does not have all required functions. Please, update the .NET Framework.
Means even if i publish. Net core app self contained including System.Management dll. It still depend on specific newer wminet_utils.dll of client machine.
The original iso of win8.1 comes with older wminet-utils version.
Thats why it throw this error.
I also searched for this dll behavior.
It needs. net framework 4.7.2 installed on client machine.
But for. Net core i ready dont want to depend on any dependencies of client machine to run my self contained app.
So yes,  System.Management still depend on.net framework of client os.
So please dont use System.Management and use WmiLight instead.
It comes with two dll
WmiLight.dll
And
WmiLight Native.dll
Means it doesn't depend on additional.
For my thing it works.
I will always use WmiLight instead of System.Management.
Also i chnaged only Wmi code.
So your cross platform work same.
I hope you understand the problem and its solution.
For real problem test you need to test your existing libc.hwid on fresh cleaned Win8.1 official iso.
You will see it thow that error.
And after changing code with WmiLight it doesn't then.


chore: remove examples/plugin-compat

examples/plugin-compat are being moved to https://github.com/web-infra-dev/rspack-compat, tracking: https://github.com/web-infra-dev/rspack-compat/issues/10

duplicate of #4886


Spent over 20 hours trying to get this to work

Both on windows, and linux, never works.
Will get to the point of opening the browser, and then never does, says an exception has occurred.
W for the idea, but couldn't figure out how to get it running for the life of me.

Thank you!

Hello @SimplySpirit, this took more than I anticipated. The project is pretty much done, I fixed all bugs, but I still have a problem because I had to change the source code of the library I am using on this project, so I now have to push a pull request to that project, and wait for it to get merged, then I can push changes into RedditDMBot, otherwise it's not practical to have a whole library pushed into RedditDMBot. Thanks for your patience.


Theatre of Blood features that Jagex probably wouldn't mind

I know we're not allowed to make Theatre of Blood plugins, but there are few features that we could add that wouldn't be the OP stuff that Jagex will be worrying about.

Loot chest value, like the Barrows chest. Could be only for the final (Monumental) chest, or for all of them.
Raid timer and/or boss timer, either on the Report button or as an infobox. I think the raid is timed by boss kill time only, so the code would be a little different.
Custom Health orbs to replace the vanilla ones, so that they could be moved, and could also show the full names of the party members (would help for parties running 2 or more user with the same first letter)

And something to screenshot your loot and or kc

maybe we could also add your party members live hp (don't know if we have the API to support it but im sure we could figure it out somehow)

Wow, it's been a while. Turns out all of these now exist in some form

The Loot Tracker now shows the value of the rewards (the mechanics of the normal chests were changed after release, so the second half of the sentence doesn't make sense)
There is now a hub plugin to show time splits for the raid (Theatre of Blood Stats)
There is a hub plugin to use health bars instead of the vanilla health orbs (Tob Health Bars)


remove temporary dir

The temporary directory had better to be removed after test case
finished.
Signed-off-by: xiekeyang<EMAIL_ADDRESS>

Codecov Report

Merging #742 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #742   +/-   ##
=======================================
  Coverage   62.46%   62.46%
=======================================
  Files           5        5
  Lines         682      682
=======================================
  Hits          426      426
  Misses        160      160
  Partials       96       96

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 d41f146...e78e921. Read the comment docs.

LGTM
@dmcgowan PTAL

LGTM


DBZ - 4558 Create trigger job for connector jobs

@jcechace, @MartinMedek, is this one good to go now?

https://issues.redhat.com/browse/DBZ-4558


[YUNIKORN-1929] fix update group configs

What is this PR for?
Keep a group tracker if it's from a specific limit to wildcard limit.
What type of PR is it?

[X] - Bug Fix

What is the Jira issue?
https://issues.apache.org/jira/browse/YUNIKORN-1929
How should this be tested?
Covered by unit tests.

Close the PR since we only track a group which is defined in queue limit config.


PyFerret scalability: dynamic management of main memory

Reported by steven c hankin on 17 Feb 2016 19:17 UTC
This ticket is a cut-and-paste of email from 1/27/2016
The attached two files that constitute a "proof of concept" for an alternative, higher performance and more forgiving memory management scheme.  Here is cut-and-paste of documentation from the first of the files:
**** Ferret dynamic memory storage ***

In Ferret the only true dynamic memory allocation occurs at initialization

(or when reallocated with SET MEMORY).  At that time a giant area of storage

named "memory" is allocated and conceptually divided into large blocks.

When a routine needs to get some memory it calls the GET_MEMORY subroutine

with the number of blocks of storage that it needs. GET_MEMORY returns a

block number (an index -- mblk) that points to a contiguous group of

available blocks of "memory".

Memory-resident variables inside Ferret (so called "mr" variables) consist

of an mr index value that points into a table of memory-resident variables.

In xvariables.cmn all arrays dimensioned with max_mrs constitute this table.

The memory resident table includes the starting block number of each

memory resident variabls, mr_blk1(max_mrs).  Subroutines that need to act

upon a memory resident variable are passed "memory(1,mr_blk1(mr))"

Under the strategy proposed herein there will no longer be an initial

large allocation of of memory.  In fact, the entire "memory" variable and

the associated block structure disappear.

In the memory table the variables mr_blk1 and mr_nblks will be replaced by

an mr_ptr (F90 dynamic memory pointer) and mr_size (size in words, rather

than blocks)

Replacing the subroutine GET_MEMORY will be the

new routine GET_MEMORY_F90 (or its equivalent GET_MEMORY_C). These routines

will allocate true dynamic memory, rather than a group of contiguous blocks.

Instead of passing "memory(1,mr_blk1(mr))", we will simply pass the pointer

to the dynamic memory.

**** Ferret dynamic memory management ***

Currently memory management occurs in GET_MEMORY, which has the task of
finding a contiguous region of blocks. If it cannot find a contiguous region
of sufficient size, it deletes memory-resident variable until it can find
a big enough region.  If it fails it bails out with ferr_insufficient_mem.
Under the new scheme GET_MEMORY_F90 (or GET_MEMORY_C) must keep a running
tally of the amount of memory used (see total_mem in the demo).  If the
new allocation requested will drive this tally abover the SET MEMORY limit
it similarly has the task of deleting memory resident variables.  However
if it cannot get below the SET MEMORY limit, it need not bail out.  It can
simply issue a warning about exceeding the limit, allocate the needed memory
and reset the SET MEMORY limit to a new, higher value.
(There could potentially be a new SET MODE added to control this behavior,
but I do not foresee that there will be a call for it.)

Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2369

Modified by steven.c.hankin on 16 May 2016 16:32 UTC

Comment by steven.c.hankin on 9 Dec 2016 19:05 UTC
Will be starting on this right after Christmas.  A few notes:
o modify split/gather to use 1/2 chunk size threshold for uvars
o deprecate "desperate" in favor of MODE CHUNKSIZE
o recompute chunk size automatically when memory size is altered.  Issue informative output.  (in not already in the code)

Attachment from steven.c.hankin on 17 Feb 2016 19:22 UTC
main demo file
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2369_GIT_1641/dynamic_Ferret_memory_demo.F

Attachment from steven.c.hankin on 17 Feb 2016 19:22 UTC
supporting c code
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2369_GIT_1641/get_mem_c.c

Attachment from steven.c.hankin on 17 Nov 2016 19:36 UTC
the updated FORTRAN test routine. (c routines to follow)
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2369_GIT_1641/dynamic_Ferret_memory_using_malloc.F

Attachment from steven.c.hankin on 17 Nov 2016 19:37 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2369_GIT_1641/free_mvar_mem_sub.c

Attachment from steven.c.hankin on 17 Nov 2016 19:37 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2369_GIT_1641/get_mvar_mem.c

Attachment from steven.c.hankin on 17 Nov 2016 19:38 UTC
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2369_GIT_1641/init_mvar_mem.c

Attachment from steven.c.hankin on 17 Nov 2016 19:38 UTC
the COMMON declaration that will replace "memory", its blocks, and its linked lists
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2369_GIT_1641/xmem.cmn

Attachment from steven.c.hankin on 22 Feb 2017 17:41 UTC
Script to demonstrate current limitations of memory management
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_2369_GIT_1641/test_auto_cache_delete.jnl

Adding @AndrewWittenberg


Content Library: many searches causing 500s

i.e.
https://content-library.adhoc.pizza/search?q=accessibility&types=
triggers a 500 :(

Not sure hoe helpful this is for debugging, but in testing this a little further and there are some substrings in "accessibility" that throw the 500 error as well:
Fail (500 error):

a
acce
acces
access
accessib
accessibility

Pass (returns):

ac
acc
accessi
accessibi
accessibil
accessibili
accessibilit

Single letters that throw a 500 error:

a
i
t

Error from the log:
    error: {
      errors: [
        {
          domain: 'global',
          reason: 'invalid',
          message: 'Invalid Value',
          locationType: 'parameter',
          location: 'pageToken'
        }
      ],
      code: 400,
      message: 'Invalid Value'
    }

So far it seems like what's used in a deployment doesn't match code that's used when running things locally. I removed this entire chunk from the handlePage function which handles when the /search page is hit:
https://github.com/adhocteam/nytimes-library/blob/b4cb37120482ca26e1a785a2429bcfb6c362bfcb/custom/routes/pages.js#L33-L62
Locally I end up with something like this (notice the "hello" in the query params):

But when I deploy the code to a dev environment using gcloud, nothing changes. I still get the 500 error on search terms that I would get it on previously, and I still get search results on terms that worked previously.

@bkjohnson maybe some heavy caching that needs to be cleared out?


Added error handling for I/O operations

This commit adds comprehensive error handling mechanisms to the code to handle potential errors during file I/O operations. Previously, the code lacked explicit error handling for file-related operations, which could lead to unexpected crashes if the specified directory did not exist.
With these changes, the code now checks if the output directory exists before attempting to save the DataFrame to a CSV file. If the directory doesn't exist, it creates the directory using the os.makedirs() function. This ensures robustness and prevents the program from crashing due to file-related errors.
Tested the modified code locally to ensure it functions as expected and successfully saves the DataFrame to the specified directory.

Given that this is a notebook, I don't think we need to be too precious about error handling. So I think we can close this.
Thanks for putting it out there though! Feel free to open an issue in the future before implementing, to check that it's something we'd want.


Bug 2064387: UI when trying to delete an infraenv during installation there is no alert saying we can't

Related to: https://bugzilla.redhat.com/show_bug.cgi?id=2064387

/lgtm

/ok-to-test

Looks like a prettier problems in [prettier] [warn] src/routes/Infrastructure/InfraEnvironments/InfraEnvironmentsPage.tsx


why was support for 10.x dropped?

Comment:
unclear to me how this makes sense --- are we supposed to drop support for downstream packages as well? Most popular packages that actually use cudnn are x86_64 anyway, so I am not sure how this reasoning came to be. Could the maintainers elaborate?
https://github.com/conda-forge/cudnn-feedstock/blob/2ab019f80eb7bc023e7fa4bdea98777373185edc/recipe/meta.yaml#L3-L8

# cuDNN v8.3.x supports CUDA versions 10.2 - 11.5
# For CUDA 11.x there is one cuDNN distribution that works with all CUDA 11 versions
# (We don't support CUDA 10.2 anymore as it's x86-64 only.)
{% if cuda_compiler_version[:2] == "11" %}
{% set cudnn_cuda_version = "11.5" %}
{% endif %}

xref: https://github.com/conda-forge/cudnn-feedstock/pull/46
xref: https://github.com/conda-forge/conda-forge-repodata-patches-feedstock/pull/284

There is clearly a cudnn 8.4.1.x for 10.x, here' the link: https://developer.download.nvidia.com/compute/redist/cudnn/v8.4.1/local_installers/10.2/

(Note: I am personally 100% strongly in support of completely dropping everything below cuda 11.2 --- I just want us to do this logically and consistently in the conda-forge ecosystem and I don't want us to have ad-hoc policies and/or implementations since that's pretty bad)

conda-forge has moved on and dropped 10.2 support, I think there're some threads/PRs in the global pinning feedstock. Now the remaining CUDA 10.2 support you see in individual feedstocks are mostly just leftover and done before the drop of 10.2.

Could you please link to these discussions? I am not really sure that is the case. At least in the tensorflow and pytorch feedstock, we wish we could just drop 10.x, but we don't because we want to keep the ecosystem intact and support as many users possible. We also want to follow upstreams implementations.

Hasn't happened yet. See https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/1708

OK thanks for clarifying Isuru. I suppose if CUDA 10.2 users/feedstock maintainers need the new version they are welcome to help maintain CUDA 10.2 support, but let me note that cudnn 8.x + cudatoolkit 10.2 is already solvable so technically it's not a blocker:
$ conda create -n ppppp cudatoolkit=10.2 cudnn=8
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.10.3
  latest version: 4.13.0

Please update conda by running

    $ conda update -n base conda

## Package Plan ##

  environment location: /home/leof/miniforge3/envs/ppppp

  added / updated specs:
    - cudatoolkit=10.2
    - cudnn=8

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    cudatoolkit-10.2.89        |      h713d32c_10       449.7 MB  conda-forge
    cudnn-<IP_ADDRESS>             |       h2c0ae14_0       361.5 MB  conda-forge
    ------------------------------------------------------------
                                           Total:       811.2 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-2_gnu
  cudatoolkit        conda-forge/linux-64::cudatoolkit-10.2.89-h713d32c_10
  cudnn              conda-forge/linux-64::cudnn-<IP_ADDRESS>-h2c0ae14_0
  libgcc-ng          conda-forge/linux-64::libgcc-ng-12.1.0-h8d9b700_16
  libgomp            conda-forge/linux-64::libgomp-12.1.0-h8d9b700_16
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-12.1.0-ha89aaad_16

Proceed ([y]/n)?

I suppose if CUDA 10.2 users/feedstock maintainers need the new version they are welcome to help maintain CUDA 10.2 support

I cannot take you seriously anymore.
You blocked cudnn 8.3.x for more than six months because you wanted to make Windows users happy but now you say, users are welcome to contribute this! You are not explaining the decision --- was it just a mistake on your part thinking that the ecosystem has moved on? Or was it agreed upon in the private channels/communication that you people have?
Since you were the one who contributed the commit in question, would you be willing to reinstate 10.2 support in cudnn <IP_ADDRESS> when that PR comes or in cudnn <IP_ADDRESS> in PR #45?
Also, I thought you wanted out of this feedstock or are you reconsidering that? Since you're still pretty heavily involved in driving decisions it seems...

I know I sound adversarial here: I really want us to hold each other accountable. I want us to have all the nvidia packages in good standing and in logical and consistent manner. We spend a lot of time working on packages that benefit from cudnn (e.g. tensorflow and pytorch) and they do make a difference in the quality of packages we publish on conda-forge (e.g. our conda-forge's tensorflow>=2.8.1 has the highest performance that I am aware of).

Let me be clear.

You blocked cudnn 8.3.x for more than six months

I didn't block it, it's blocked by having to get https://github.com/conda-forge/zlib-feedstock/pull/54 merged first, which admittedly was involved and people were short on bandwidth, but it's not my decision alone. I cannot accept you making up the fact.

would you be willing to reinstate 10.2 support

Following the same hostile manner that you did, I kindly refuse your request.  You could have asked nicely.

I cannot accept you making up the fact.

Not making up anything, you have indeed blocked cudnn without windows: https://github.com/conda-forge/cudnn-feedstock/pull/41#pullrequestreview-988209413

You could have asked nicely

Lol what? I am not asking you, I could do this and frankly could do a better job than you :)  I am just saying, you should have acted better before recklessly dropping 10.2 without further consultation.

Following the same hostile manner that you did

For the record, my actions in #43 weren't hostile at all. I just thought your request was nonsensical (and irrelevant) and so I didn't want do it; a maintainer with push access could have if they wanted to (and have in fact actually done so in 01e55c8)

I will work with the new maintainer(s) to reinstate 10.2 support. Thanks for all your hard work!

I will close this now so to avoid unnecessary traffic and conversation. I will bring this up in a PR after all current PRs are done, unless there are new developments in https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/1708

@leofang, I deleted some comments that may come across hostile again, so please don't take this and stuff in PR #43 personally. I really appreciate all your work and efforts and insights. You're very generous and kind with your time, and I genuinely mean this. I promise a PR to reinstate 10.2 that will be less hostile and maybe that way you can help me with it? 🕊❤ (It won't include the azure artifacts 😉)


ObjectUpdated not used?

Sorry for a dummy question, but looking at controller.go I only see ObjectDeleted and ObjectCreated invoked, but it seems that ObjectUpdate  only exists on handlers, or am I missing something obvious?

ok, nevermind it seems that the master is probably in some sort of WIP status, cause it looks there are too many broken things

@gytisgreitai Was wondering the same thing. Trying to understand how to determine update vs creation in the controller.


Add bool type

This PR:

first extracts Model::Fields to the file of its own
adds missing #inspect for Null types
finally adds support for Bool type

@sdogruyol Can you take a look at the code of this PR?

@sdogruyol Can you take another look?

@waterlink Looks great :+1:

@sdogruyol Can you take another look, with last commit I have added, now fields.cr is looks much better to me.

Documentation sounds good to me. I will write it a bit later (maybe today, or tomorrow).

@sdogruyol I have added documentation to Model::Fields. Can you take another look?

LGTM :+1:


API: support /users/:username/repos

Fix for half of: #494. I'm not 100% sure about the movement of functions and files and defer to you but I thought this grouping made sense.

One small tweak, otherwise LGTM

LGTM

LGTM


Indent overlapping in preview mode

This is pretty much it 🤷

I see two issues in the preview

The folding arrows are not aligned the same horizontally
The checkboxes are rendered wrongly when they have no text to the right

This breaks the checkboxes (2) like in your preview:
### Foo
- Watch this
	- [ ]
- Watch that
	- [ ]

While this works:
### Foo
- Watch this
	- [ ]  f
- Watch that
	- [ ]


First commit for the text classification notebook

This notebook is a simplified version of this one, where only one task is performed.

Looks good but some suggestions that might make it even clearer:

use pip install -q openai to reduce the amount of amount
can we remove the use of JSON entirely for this version? It will simplify the prompt and results, reduce code, and keep the focus on the higher level steps.
do we need a task_type given there is only one task?
can we replace "predictions" with "inference"?
"Welcome to the text classification notebook with kluster.ai Batch API!" -> "with the kluster.ai"
I am not sure inputting the API key should be considered a task.
"Run the Classification Process" -> "perform a classification task using a state-of-the-art LLM".
"(make sure it has no blank spaces)" is repeated
can you double check all the imports are required?
after the JSONL file is created, it would be good to print it out and show what it looks like to help the user understand.

I addressed all of what you suggested in this PR and in our chat (rename "task" to "request" everywhere)

Here are some more requests from Ryan:

"From a few entries to thousands.": Why thousands?

"create_request" & "save_request": Should these be "job" instead of "request"? Same with the filename.

"request_list[0]": Instead of this, can we do !head -n 20 filename.csv and show the actual file?

"Upload batch file to kluster.ai": Should this be broken out into two steps: the first uploads the file, and the next cell starts the batch job?

"Get the results":

Can you write a few lines here that explain what is going on?
I would also suggest making this part more simple, maybe just showing the output of:
result = client.files.content(result_file_id).content

my comments
0/ This notebook showcases how to use the kluster.ai batch API to classify movies into predefined categories based on their descriptions. With a user-friendly approach, you can effortlessly process datasets of any scale, from small collections to extensive datasets, and obtain categorized results powered by a state-of-the-art language model.
-> This notebook showcases how to use the kluster.ai batch API to classify a data set based on a predefined set of categories. In our example, we use an extract from the IMDB top 1000 movies dataset and categorize them into one of “Action”, “Adventure”, “Comedy”, “Crime”, “Documentary”, “Drama”, “Fantasy”, “Horror”, “Romance”, or “Sci-Fi”. We are using a movies dataset but you can adapt this example by using your data and categories relevant for your use case. With this approach, you can effortlessly process datasets of any scale, from small collections to extensive datasets, and obtain categorized results powered by a state-of-the-art language model.
1/ we need to align with Anjin on the launch of the new terminology Adaptive Inference  i.e are we ok to publish this as Batch API or do we have to update all notebooks with Adaptive Inference? My preference is to publish what we have an update the copy but let's get Anjin's feedback.
2/ Note: you may need to restart the kernel to use updated packages. -> Note: you may need to restart the runtime to use updated packages.
3/ Sentence case Create a Batch File (and same for steps 2 and 3)-> Create a batch file (or maybe Create an adaptive inference file TBD)
4/ With the file successfully uploaded, we’re ready to start the batch job. -> Once the file has been successfully uploaded, we’re ready to start the batch job.
5/ The batch job has been created, and the request is now being processed! In the following section, we’ll monitor the status of the job to see how it's progressing. Let’s take a look and keep track of it's completion. -> Now that the batch job has been created, your request is now being processed! In the following section, we’ll monitor the status of the job to see how it's progressing. Let’s take a look and keep track of it's status.
6/ REMEMBER: The time to complete a batch inference job can take up to 24 hours. Although, it typically completes in much less time. -> I think we should say this in the previous "Start the job" section.
7/ In the "Get the results" section there is a spurious "results" parameter on the last line.
8/ The output object is hard to read. Suggest you show this in a human readable format.

I’ve addressed your comments, Eric.

I also changed every instance of ‘BATCH’ to ‘Adaptive Inference’ or ‘inference’ (depending on the case).
2/ This is the direct output of the pip code.
8/ Ryan suggested this, so I left it as he asked.

I suggest to merge it.
I then suggest in  the next version we can take Erics feedback into account and pretty print / extract the label as the final step.

We agreed today to not update the terminology to Adaptive Inference until the website goes live for the reason that we are treating the website as a test - we may change Adaptive Inference if we do not receive a string signal from the market. So in the interest of staying agile, we should decouple the Adaptive inference changes until we get an "ok" from Anjin


Delete existing shortened URL Handler

Description
Adds a handler to delete an existing shortened URL.
Fixes #18
Resolution/What did you add?

New Handler to handle deletion of existing shortened urls
Additional Tests
Split up URL Repository into Read & Write interfaces

Additional Release Steps
None
How can we test this?

Run tests with make test
Run application with docker compose up first & then with make run-dev or make run
Shorten as many URLs
Delete a few or all of the already created URLs
Fetching deleted URLs should return a 404 response code

Please also note any relevant details for your test configuration.
Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new errors
[x] Is my code backwards compatible
[x] Have I written unit tests

Warnings

:warning:
:exclamation: Big PR

: Pull Request size seems relatively large. If Pull Request contains multiple changes, split each into separate PR will helps faster, easier review.

  Generated by :no_entry_sign: dangerJS against bc1f1c7eb9da05ba663ba2f411d1ce32214f5cbe

:tada: This PR is included in version 1.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


machine readable output

refs #148
TODO

~write some tests~
~documentation~
possibly SARIF, but maybe do it in another PR

Codecov Report

Merging #212 (4760ee6) into main (f4dcb0d) will decrease coverage by 1.93%.
The diff coverage is 84.86%.

@@            Coverage Diff             @@
##             main     #212      +/-   ##
==========================================
- Coverage   95.12%   93.19%   -1.94%
==========================================
  Files          10       10
  Lines         657      720      +63
  Branches      149      157       +8
==========================================
+ Hits          625      671      +46
- Misses         32       47      +15
- Partials        0        2       +2

Impacted Files
Coverage Δ

src/glob.js
76.19% <50.00%> (ø)

src/cli.js
85.62% <66.03%> (-10.50%)
:arrow_down:

src/logger.js
93.75% <93.75%> (ø)

src/ajv.js
100.00% <100.00%> (ø)

src/cache.js
97.43% <100.00%> (ø)

src/catalogs.js
95.79% <100.00%> (+0.22%)
:arrow_up:

src/config.js
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 f4dcb0d...4760ee6. Read the comment docs.

Assuming I punt SARIF format to another issue, I think the one remaining thing to deal with here is array vs object. i.e:

JSON.stringify({ results }, null, 2) or
JSON.stringify({ results: Object.values(results) }, null, 2)

I think for parsing in programming languages it doesn't make a huge amount of difference. The other likely way to parse this will be piping to jq. I think I will do a quick spike on parsing the output with jq to see if the ergonomics of that obviously point to one approach or the other.

Doesn't make a huge difference for parsing it with jq. If its an array the query to get all schemaLocations will be like

jq .results[].schemaLocation

If its an object, the equivalent is:

jq '.results | to_entries[] | .value.schemaLocation'

To get schemaLocation for a specific result, if its an array:

jq '.results[] | select(.fileLocation == "./testfiles/files/invalid.json").schemaLocation'

For an object it would be:

jq '.results["./testfiles/files/invalid.json"].schemaLocation'

So.. little from column A. Little from column B/
Another consideration is that something like ./testfiles/files/invalid.json is quite a cumbersome property name.
I probably don't need to paginate this (its not an API), but making it an array works better for that.
There's not much to choose here but I think I'm going to go with the object. At least then the internal data structure and output file are the same.

Well it seemed like a good idea at the time :roll_eyes:
https://github.com/chris48s/v8r/blob/e3f23b4d9364c4a9cd6e240d35e279e48a258016/CHANGELOG.md?plain=1#L5-L6


Static map

Hey,
I just tested  creation of static map
=> https://tileserver.readthedocs.io/en/latest/endpoints.html
But I always have the same result an empty image.
When I try with an mbTiles file I don't have the problem

Do you have any idea where the problem come from ?
Thank you

I push the update of Makina Maps and OpenMapTiles fork.Please test with this new version.

I have been trying to do a new installation from the start.
I got an error when I try to run script 20 "prepare"
Getting content length for https://download.geofabrik.de/europe/andorra-latest.osm.pbf
Getting md5 checksum from https://download.geofabrik.de/europe/andorra-latest.osm.pbf.md5
Downloading https://download.geofabrik.de/europe/andorra-latest.osm.pbf (size=1.6 MB (1,665,170), md5=85a84f0dff17b80eb75eaca4653ba16b)
aria2c --checksum=md5=85a84f0dff17b80eb75eaca4653ba16b --http-accept-gzip "--user-agent=OpenMapTiles download-osm 4.2.0 (https://github.com/openmaptiles/openmaptiles-tools)" --on-download-complete /usr/src/app/download-osm /import/last.state.txt -- -d /import https://download.geofabrik.de/europe/andorra-latest.osm.pbf
Setting environment vars: DOWNLOAD_OSM_DC_FILE=/import/docker-compose-config.yml, OSM_AREA_NAME=europe/andorra, MIN_ZOOM=0, MAX_ZOOM=7, MAKE_DC_VERSION=2.3
capturing stdout/stderr to wait for subprocess exit
Exception caught
Exception: [download_helper.cc:451] errorCode=1 Unrecognized URI or unsupported protocol: /import/last.state.txt
Creating Imposm config file /tileset/--state:

replication_url       https://download.geofabrik.de/europe/andorra-updates
replication_interval  24h

Same issue I have reported here https://github.com/openmaptiles/openmaptiles-tools/issues/246

On my side it does not get last.state.txt, but without error.

I make a PR to solve my issue, but it will not match your
https://github.com/openmaptiles/openmaptiles-tools/pull/251

Tyr to call the tool directly, play with params
docker-compose run openmaptiles-tools bash -c \
    "download-osm geofabrik ${AREA} \\
        --verbose \\
        --state /import/last.state.txt \\
        -- -d /import"

Thx :)
But i think i'll wait for a  stable version of openmaptiles


Add to docs for creating specific numerical color control points

A user emailed me asking about how to create the following color table...

I figured out how to do it and then added documentation using it as an example.

@markcmiller86 let me know when you are done with changes and I can review again.

Oh dear...I literally just hit the merge button as I saw this 😔
I figured nobody wanted to be bothered re-reviewing but in working with this user, we wound up having an additional case I wanted to capture here and that is what I just added before merging.

No problem!


Update codemirror (editor) and enable some features

Go tour already uses http://codemirror.net/. It could benefit from an update as the version used is out of date.
It would also be nice to enable features like bracket (paran) matching.
Autocomplete support would be a very nice to have as would linting. codemirror supports both but not sure how hard the integration would be with go-code.

I've created CL https://golang.org/cl/41207 that updates CodeMirror editor to latest version, which helps this issue. (It seems @gopherbot doesn't do mentions for this repo.)

The "update to latest version of CodeMirror" part of this issue has been done in the aforementioned CL. That leaves the "would also be nice to enable features" part.
I want to ask for more information about that. What exactly do we want to enable, and how do we know it's going to be an improvement to the tour editor?
My concern is that different people have opposing desires for the editor. Some prefer to have fewer features, with minimal or no syntax highlighting, etc. Others prefer as many features as possible. How can we decide what features to enable without making the experience worse for some people?
Another factor is that I've seen in the history that features like paren matching were previously in the codebase, but later removed. E.g., see CL 114480043 titled "go-tour: remove brace matching addon and unused trailing space addon" (created by @campoy, reviewed by @adg). It's a CL from 2014 and there's not much context in the commit message or the review, but any information on that would be helpful to make progress here. Thanks!

This was discussed long time ago, and many found the autocomplete and bracket match too distracting, that's why it was removed.

I see, thanks. That makes sense to me.
To keep the open issues here more actionable, I'll consider this issue resolved by CL 41207 (since the bracket matching/autocomplete were optional parts).
If there's more concrete information about additional features we want to turn on, with a good plan for how to ensure it doesn't detract from the Go tour experience, a new specific issue can be opened for that (or feel free to re-open this one).


Slash Commands

Add support for slash commands

Hi, you can use @discord-message-components/react which includes components for slash commands and more.

Hi, you can use @discord-message-components/react which includes components for slash commands and more.

Hiya, had a few questions regarding @discord-message-components/react :

Does @discord-message-components/react lack any feature that react-discord-message has? I've been using it for a while, because of Interactions support.
Where can I open issues/contribute for that package?

@abhigyantrips

@discord-message-components/react can be considered as a better version of react-discord-message; it was completely rewritten with many fixes and additions.
The repo can be found here: https://github.com/Danktuary/discord-message-components

And thanks! 😄


Please add support for requery library

Now  SQLdelight is not compatible with requery library.
All that is needed to do is just add generating methods with io.requery.android.database.sqlite.SQLiteDatabase as arguments instead of android.database.sqlite.SQLiteDatabase.
Could you please add this?

No, but please vote (not comment) on http://b.android.com/202658. We're going to try to push this instead.

@humblehacker Would you happen to know if this also works for iOS builds in a multiplatform project

Did you find how to do this? I'm interested in this matter as well.
Thanks!

@humblehacker Would you happen to know if this also works for iOS builds in a multiplatform project

Did you find how to do this? I'm interested in this matter as well. Thanks!

AFAIK, iOS strictly uses the system SQLite. Requery can't help here. But I haven't actually tried. The only thing I needed Requery for was to make sure SQLite on Android was at a version that supported UPSERT, which all iOS versions we supported already did.


video addon for Kodi

I would love to see an addon for Kodi. Is anyone working on something like this?

A Kodi addon would be great. As far am I'm aware no one is working on one, if someone wants to, go ahead!

I found this: https://github.com/dularion/streama/blob/master/grails-app/assets/javascripts/streama/services/api-service.js
So I can get all the information I need via http and it shouldn't be hard to write a plugin for Kodi. @joen and me will work on it in a separate repo: https://github.com/HackerspaceBielefeld/plugin.video.streama
We don't know how long it would take to work, but i already can login into streama and print the json generated from streama with a python script.

Awesome! Can't wait to see it in action.

Would it be ok, to use the official logo and background image from the promotional website?

I actually have a reworked version of both, check here: https://github.com/dularion/streama/tree/master/design

but youre welcome to use either

We now use the new logo and background (https://github.com/HackerspaceBielefeld/plugin.video.streama/tree/master/resources), thanks a lot.
The plugin itself is still very experimental, but we are getting there ...

So far almost all import features work somehow. We are able to play movies and generic videos, display and play series, display and play new releases and also implemented a search!
Genres are not implemented yet and also error handling has to be improved. For example, if your login is incorrect, the plugin just crash.
Thanks for this great software!

That's awesome! Nice work. :)

updates ?


Change Text Inside an Element Using jQuery-"Italicize the text in your target4 button by adding HTML tags."

Challenge Change Text Inside an Element Using jQuery
User Agent is: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36.
My code:

jQuery Playground

#left-well

        <button class="btn btn-default target" id="target1">#target1</button>
        <button class="btn btn-default target" id="target2">#target2</button>
        <button class="btn btn-default target" id="target3">#target3</button>

#right-well

        <button class="btn btn-default target" id="target4">#target4</button>
        <button class="btn btn-default target" id="target5">#target5</button>
        <button class="btn btn-default target" id="target6">#target6</button>

Even though the code is correct ,the solution has not been accepted as correct.

+1

Should you use  instead of ?

yes it works with  in place of  @PhilipWoulfe

@chandramaniadil thanks for the issue. We recently changed this from accepting  to accepting  (#5425 and #7939). One reason is that we eventually agreed the i tags are outdated to truly emphasize a text. HTML should be about content, while CSS should be used to style the text. Thus, the i tag, which just styles the text is against what HTML and CSS are about. I hope you can understand. Closing as this change was on purpose. Happy coding!

I agree with you ! @erictleung
role of '' has now changed ,so use of '' is preferable..

Correct answer:
$("#target4").html("#target4")

@shakirul15-311
Please do not post your solution on here. You could help people at FreeCodeCamp Chat Room or Forum. GitHub Issues are for reporting bugs on the website only.
Happy Coding!

use  instead of

change  $("#target4").html("#target4") to  $("#target4").html("#target4")

try
  $("#target4").html("#target4");


ignore exercise frames before Headers

Thank you for the PR!
May I ask you what is the context of this? I am curious if you got this from a real scenarios (e.g., some browser) sending exercise frame in the request


DAT-65828: pop an error when typing something from omit-suggestions list

@fadiDL this is

When writing a value which is part of the omit-suggestions, the smartsearch should show invalid.

part - lot of linter diff, real one basically starts at line 489

@fadiDL there is a demo at the bottom already

With placeholder and [OR, true] suggestions omitted

no test though

@fadiDL added the tests


Add 'component' prop to DOM 'Link'

The native router'sLink component has a different props interface to the DOM package Link. It would be good to align them a little closer, for example, supporting the component prop for the DOM variant. This would a allow people to more easily use the router with something like react-native-web

Can you not use react-router-native's Link on react-native-web?

You still need a DOM-based router. We'd use this on mobile.twitter.com too

We get this request often but I'm not sure anything will ever convince me to support it.
On the web an  means something. When you command/control click it, you get a new window, or right click and choose "open in new tab". Screen readers treat them differently, etc. H
If we supported <Link component="div"/> not only would we be spitting out invalid markup (
) we'd also be completely breaking accessibility. To properly turn a non-anchor into a link for a screenreaders you need to

add the role="link" attribute
add the tabindex="0" attribute
register keydown event

check in keydown if its the Enter key, if so, navigate

register a keyup event

check if the keyup is the Space key, if so, navigate

The point of Link in the dom package is to create accessible links that work the way links are supposed to work, not give people a footgun and break how browsers work for all users, not just screen readers. Also, we'd be generating invalid HTML while we were at it.
Now ... that said, your use-case is the first one where I'm like "oh, that's interesting." Any ideas on how to support your goals w/o giving people a footgun?

oh hey ... check this out:
componentDidMount() {
  warning(findDOMNode(this).tagName !== 'A', 'YOU BLEW IT!')
}

s/YOU BLEW IT!/[some actual message about needing to render an anchor]/

I'm not familiar with React Native so I'm curious if this is different -- on web if you want your a to have something other than text inside it that's fine, and ends up working exactly the same in React with react-router's Link:
<Link to="kittens.com">

</Link>

or:
<Link to="/about">
  <FancyFlexLayoutMenuItemWithDancingIcons>About</...>
</Link>

I've never run into a situation where my ability to style or use a Link depended on bypassing the a wrapper.

Link has a few limitations in the DOM package and they are exaggerated when you're using a library with richer primitives than the DOM provides. For React Native: The default layout doesn't match View or Text; the style interface is incompatible in multiple ways; it's missing propTypes like accessibilityLabel; it doesn't support callbacks like onLayout or onPress*. You can't really work around that in your app either, so you end up copy pasting the internals and making your own Link component/package. Doing so also has the benefit of allowing you to publish components that contain links and work with a certain router context, but don't depend explicitly on RR.
I figured there would be less interest in creating a router-agnostic Link package (haven't looked fully into how Next.js avoids needing a link component, but that's interesting too).
It's certainly a set of complicated trade offs. Warning if the base tag is not an anchor sounds like a reasonable approach. I can get back to you with some specific examples of what we do or want to do

@ryanflorence +1 for warning about using something other than a . I'd like to figure out a way to do it w/out using findDOMNode thought.
@necolas I'd be grateful if you could take a look at our native <Link> and fill in the missing pieces. Our current implementation is pretty basic, but enough to demonstrate that it works.

@mjackson you have refs and you have findDOMNode. I don't know how to use refs to get to the dom node when the component passed in can be several levels of components before getting to the a.
On another note, we don't even know if our props (href, onClick) will make it all the way down.
const Thing = () => <Stuff/>
const Stuff = () => <Other/>
const Other = () =>

How do we:

Get a handle on that final tag to check if it's an a?
How do we make sure out click handler makes it down there?

I'd be grateful if you could take a look at our native  and fill in the missing pieces.

It's not the native Link he wants changed. The native Link already supports the component prop because there is no platform equivalent to . There are TouchableHighlight, TouchableOpacity, and TouchableWithoutFeedback. TouchableHighlight is the default, but you can pass in the one you want.
What he's asking for is for the dom Link to support it so that he can run the same "native code" codebase on the web. But since the platform semantics around Link vary, I struggle to see how we can accommodate it w/o breaking the platform expectations.
Can't this be solved in react-native-web?

@ryanflorence When @necolas said:

For React Native: The default layout doesn't match View or Text; the style interface is incompatible in multiple ways; it's missing propTypes like accessibilityLabel; it doesn't support callbacks like onLayout or onPress*.

I thought he was critiquing our current native <Link> impl. Maybe I was wrong?

Oh, sorry, I was reading to hastily :(
Yeah, we need major help on the Link component there in react native!

To clarify: I meant React Native for Web. If you wanted to run your RN components (that use RR) on the web, you can't because the Link API currently exported is different depending on platform. Coming from the other direction: if you want to write your web app itself using RNW, you have a bad time because of the problems I mentioned.

I found this issue while searching for a solution to another valid use case. We use glamorous for theming/styling. With glamorous, to get an anchor tag with appropriate styles we do something like:
const Anchor = glamorous.a(/* ...style code */)

to get a styled component that will still render  in the DOM. Since there is currently no way to pass this Anchor component to Link we lose all of this styling.
I understand the push for verifying that what gets rendered is in fact an anchor tag, but it would be great to allow some type of customization here.

@lamflam You can do that with glamorous's composition:
const Anchor = glamorous(Link)({ /* ...styles */ })

Closing due to inactivity. I still think the Link component API could be more platform-independent. But you can make your own Link and use that instead of what is in RR

@timdorr Can't believe I missed that, but thank you for pointing it out, works great!

Just following up here: I think making the react-router-dom API consistent with the react-router-native API would actually be really nice. The same issue was brought up in #5437, which I've re-opened. Let's follow up with this discussion there, @necolas.


DaprStateStore Manual test fails for updated resource names

Bug information
Dapr test file used in functional tests runs successfully with original resource names but not with changed resource names.
currently investigating this issue ADO task
Steps to reproduce (required)

Install latest version of rad. (same behaviour seen in edge & latest released version)

run 'rad deploy ' for daprstate.bicep.txt
this runs successfully.

run 'rad deploy ' for daprstate-old.bicep.txt
this run fails with error
"code": "Internal",
"message": "exceeded max retry count to process async operation message: 3"

Same behaviour seen when user deletes all resources between runs/ deletes & recreates cluster etc.

Observed behavior (required)

There is no difference in first and second bicep file except for names of resources. Hence curious why consistently one runs repeatedly while the other fails.
In the failed run:
redis pod is created and running successfully. container pod is not created.
application-rp logs indicate deque count increasing for the /CONTAINERS|PUT.. operation type and we see in the queue, the message exists but is not dequeued and is the last remaining message in queue. (attaching sample message)

Attachments:

Including module used in bicep files: redis-selfhost.bicep.txt

Comparing Input Files:

Application-rp log: daprissue-applications-rp-c9485d944-sjncw.log.txt

Failed op user sees:

Message seen in Queue: queuemessagecntr.txt

Desired behavior (required)
daprstate-old.bicep is deployed successfully, same as daprstate.bicep
Workaround (optional)
System information
rad Version (required)
same behaviour observed on v0.23 and edge
Operating system (required)
macOS Ventura, M1 chip  -->
Additional context
currently investigating this issue ADO task
AB#8853
AB#9512

@lakshmimsft - please close the issue if there is nothing pending on this work item.

This has to be tested first to check if the issue still exists since it's been a while since this was filed. I'll pick it up next sprint.


close_automatic = unsupported causes invalid buffer id errors

Describe the bug
close_automatic = { 'unsupported' } causes invalid buffer id errors
Error executing vim.schedule lua callback: ...m/site/pack/packer/start/aerial.nvim/lua/aerial/util.lua:66: Invalid buffer id: 18
stack traceback:
        [C]: in function 'nvim_buf_get_option'
        ...m/site/pack/packer/start/aerial.nvim/lua/aerial/util.lua:66: in function 'is_aerial_buffer'
        ...m/site/pack/packer/start/aerial.nvim/lua/aerial/util.lua:145: in function 'get_buffers'
        ...site/pack/packer/start/aerial.nvim/lua/aerial/render.lua:72: in function 'update_aerial_buffer'
        ...site/pack/packer/start/aerial.nvim/lua/aerial/window.lua:51: in function ''
        vim/_editor.lua: in function ''
        vim/_editor.lua: in function <vim/_editor.lua:0>
Aerial could find no supported backend

System information

OS: linux
Neovim version: 0.8
AerialInfo:

Aerial Info
-----------
Filetype:
Configured backends:
  lsp (not supported) [No LSP client found]
  treesitter (not supported) [No treesitter parser for ]
  markdown (not supported) [Filetype is not markdown]
  man (not supported) [Filetype is not man]

Aerial config:

  backends = { 'lsp', 'treesitter', 'markdown', 'man' },
  layout = {
    min_width = 30,
  },
  attach_mode = 'global',
  lazy_load = false,
  open_automatic = true,
  close_automatic_events = { 'unsupported' },
  show_guides = true,

To Reproduce
Steps to reproduce the behavior:

Enable close_automatic = { 'unsupported' }
Go into a supported buffer
Go into an unsupported buffer and it should give the error when trying to close it

If possible, provide a minimal file that will trigger the issue:
minimal code here

Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Should be fixed and covered by tests now. Thanks for the report!


Factor out client and request abstraction to external crate

Hey there,
I love your really nice and clean work on the client abstraction with possible multiple clients to use and traits for Request, RequestGet etc.
I'm writing a backend that makes requests to multiple different APIs and I'm planning to use your client and request abstractions for this while only implementing the request traits for these APIs.
What came to my mind was, if it wouldn't be nice, to publish the client and request traits in an external crate as api-client, so people would just need to implement the request traits for the corresponding API and could use any client they want to pull the data.
 I think this could be really valuable for the community, as that would make implementing crates for all kinds of APIs much easier. I could also imagine (long-term) porting the outdated kraken Twitch API crate to this foundation (and PR it here), while we could publish the whole thing then under https://crates.io/crates/twitch_api where I would like to add you as an owner as well. Would be lovely to have a wholesome crate of the Twitch API (as you are making your way to it).

As an addition: I think what could be done as well then is to create a macro which is generating the request implementations for different endpoints or other tooling to generate the request implementation from an OpenAPI file.

I'd be willing to do it, but I'm not sure I should. My inspiration for the abstraction came from the oauth2 crate, watching museun code multiple client abstractions for twitchchat, and the implementation in http-client. Currently there is to my knowledge one attempt at doing client abstractions for http, and that's http-client, but, that one doesn't exactly do what I'm doing. There is also a stale api crate which could be promising with some more attention.
http-client is nice, but it does not use http (for some good reasons), you could use that for client abstraction, but you'd need to use http-types.
There is one problem also. If I define these implementations in another crate for usage by other crates, making a default impl on create_request and others would be impossible for those crates. I guess I could make it work, not sure how.
Instead, I think it'd be better to expose the framework by usage of proc macros. I'm not sure I like the idea though.
So, I think, best course of action is a crate that enables you to do basically the following
use api_client::ApiClient;

#[derive(ApiClient)] /// Adds relevant methods
#[api(mod = "helix_request", client = "'a")]
struct<'client> HelixClient<'client, C> where C: api_client::ApiClient {
    client: C,
    pub custom_field: (),
}

pub mod helix_request {
    pub trait RequestGet: api_client::Request {
        type Body: serde::Serialize;
        fn create_request(fields...) -> Result<String, MyCreationError> {...}
        fn parse_response<'a>(response: api_client::Response<'a>) -> Result<<Self as Request>::Response<'a>, MyResponseError<'a>> {...}
    }
    //... etc etc
}

pub mod foo_api_thing {
    pub struct FooRequest {
        pub foo: String,
    }
    impl api_client::Request for Foo {
        // something here
    }
    impl crate::helix_request::RequestGet for FooRequest {
        // something here
    }
}

I'm not sure it's possible, but it'd be neat I think.

Good idea, yeah that looks nice. I already ported my code for the backend to yours and it works out nicely. Only thing I had to change is the parse_response part as I have a pretty unstable API and need to parse directly into serde_json::Value and not InnerResponse or alike. But yes, absolute lovely stuff, great work. :)

Awesome! Could I perhaps see the source for that? No worries if its not publicly available

Awesome! Could I perhaps see the source for that? No worries if its not publicly available

Sure, but beware of the code quality, I'm not a professional Rust programmer :D
https://github.com/transparencies/transparencies-backend-rs/tree/dev/crates

Small cross-reference
Someone posted this article on reddit that reminded me of this issue:
https://plume.benboeckel.net/~/JustAnotherBlog/designing-rust-bindings-for-rest-ap-is
The corresponding reddit thread with discussions is this one:
https://www.reddit.com/r/rust/comments/r3txac/questions_on_ergonomically_wrapping_a_rest_api/
The corresponding discussion about factoring out the needed part of rust-gitlab crate is here:
https://gitlab.kitware.com/utils/rust-gitlab/-/issues/56

Yeah i saw that! Still havent given it a proper look yet. This issue is still on my todo list though 😅

Yeah i saw that! Still havent given it a proper look yet. This issue is still on my todo list though 😅

No stress, but I do like your design really much, so I recommend it. (: rust-gitlab has a slightly different design that is also nice. I haven't looked so deep into it, that I could say much more about it. But I would love to bring this effort forward, that there might be some kind of well-designed api-agnostic REST-API crate for the community. And I think it's always good to work together. :)

@Emilgardis I created a temporary private repository from the effort to outsource the implementation into an external crate and invited you to collaborate. Would you take a look?


Added Chart options, plus some QOL improvements.

Charts severely lacked styling options that the Chart.JS library provides. I've added a number of options that I needed for my charts for my employer's code. This includes new options for:

axes -> border
axes -> grid
axes -> title
axes -> ticks (-> major)
plugins -> legend
plugins -> legend -> label
plugins -> legend -> title

In Blazorbootstrap user data input is often demanded to be in the form of List<T>; this is wrong, because the code can work with any collapsed stack since the data is only read, not modified. This puts IEnumerable<T> out of the question (because of multiple iteration issues that can go haywire), but IReadOnlyCollection<T> gives the programmer more options to work with, e.g. providing an array, List<T>, ImmutableList<T>, ArraySegment<T>, FrozenSet<T>, HashSet<T>, SortedSet<T>, Stack<T>, etc etc etc. So at the very least, this prevents the user from applying a redundant ToList() that only steals performance/memory anyways. Blazor Bootstrap doesn't modify the list anyways, only reads it. And whereas IEnumerable<T> is easily out of control, this happens far less with IReadOnlyCollection<T> and would require dedication on the part of the programmer to get that to happen.
Documentation uses <see cref="https..." />, but it must use href=
Nullable properties that will not be serialized if null, should not be auto-initialized.
<see langword="..." /> helps provide proper markup for code. As an example, I've replaced "if true, then" with the langword on property summaries.
One must not throw NullArgumentExceptions if the null issue is within a parameter,
Generate a nuget package on build in debug/release folder. Very useful for testing purposes.
Bugfix: if a chart is larger than 300px/150px, then the width/height settings are ignored and instead the chart sizes itself to 300px/150px regardless of wrapper size. By setting the width/height in the properties, this resolves that issue. I have tested this for responsive charts and seen no issues (so far)

(These QOL improvements in the summary documentations are very useful for AI coding tools like Copilot, since that gives the AI better directions when generating code for the user)
Notes about Blazorboostrap I want to tackle later

Blazor Bootstrap ChartJS still lacks a lot of the features of ChartJS, I might add those later, this is just a first iteration.
ChartJS: background color/image plugin
Figuring out a way to generate JS methods for certain ChartJS function callbacks (e.g. what color to give to a gridline based on a value)
Settings classes should use a parameterless constructor and a constructor (with default values/nulls) that set all the properties up, to prevent the need for verbose coding on implementation. Perhaps making them Records is better? They're readonly anyways.
Many classes and properties in the library still lack in-code documentation and code examples. This isn't just for the human reader, but like mentioned the AI tools.
Loads of redundant null checks for items that we know are in a valid state, or properties/parameters lacking a nullability operator in their contract.
Many methods aren't marked static despite not altering the object, causing needless objects to be created/consumed.
Tons of improper Capitalisation on properties and methods. And no, JS Invoked methods do not need to start with a lowercase.
Checking for item existence in collections prior to removal/adding/updating isn't required anymore, we're not on Framework.
Enable .NET 7
Number/currency input for .NET7/8 can use INumber<TSelf> using macros in code to separate it from .NET 6 usage. Also allows one to use C#11 for .NET 7/8.
Certain properties cause a StateHasChanged invocation, which is fine for .NET 6 but not for 7/8. Macros will fix this.
See https://github.com/vikramlearning/blazorbootstrap/issues/711

@Lucasharskamp Thank you for the PR and for your time. I'll review this tomorrow.

@Lucasharskamp Thank you for the PR and for your time. I'll review this tomorrow.

Alright, I'll look forward to hear from you

@Lucasharskamp Thank you very much for your detailed feedback, PR (including XML comments) and future contributions details.

Bugfix: if a chart is larger than 300px/150px, then the width/height settings are ignored and instead the chart sizes itself to 300px/150px regardless of wrapper size. By setting the width/height in the properties, this resolves that issue. I have tested this for responsive charts and seen no issues (so far) - Can you provide a code sample, screenshot, or recording for better understanding?
Please add a few examples to the following directory: https://github.com/vikramlearning/blazorbootstrap/tree/main/BlazorBootstrap.Demo.RCL/Components/Pages/Charts.
These examples will be helpful to others.

Can you provide a code sample, screenshot, or recording for better understanding?

In the original, the following code:

creates this:

instead of this:

These examples will be helpful to others.

I've got another PR ready to go after this one which overhauls a lot of coding issues (methods that should be static, tasks not passed properly through the callstack, nullability issues, loads of added XML commenting, requested datatypes always going to IReadOnlyCollection if it's read-only anyways, etc, but we're not changing the functionality), which includes the examples being updated appropriately. If you'll allow me I'll update the documentation for those changes as well.

@gvreddy04 can you please handle my 2 PR's? I got more coming up, namely a Bootstrap css generator (so we don't have to suffer the indignities of node.js anymore with scss or creating manual overrides for colors and styling)


Merge color chart svg into phylotree.

Hello,
Currently, the color chart feature is in a separate svg. Please merge both of these items into the same svg, or find a convenient method to export both svgs into one png.
Kind Regards,
Steven

Marking this issue as invalid. The color legend will be included in a new component utilized by HyPhy-Vision.


Check objects when installing into main package

AG will now show an error for objects that are not allowed in a main package.

Closes https://github.com/abapGit/abapGit/issues/2273

looked a bit at the standard method, performance looks okay, one package is cached, reading from buffered tables


Should handle vertical and horizontal overflow

Current behaviour
Editor didn't handle vertical and  horizontal overflow
Expected behaviour
Editor should handle vertical and horizontal overflow (may be wrap content for handle horizontal)
Code sample
https://codesandbox.io/s/py38vl9nn0
Screenshots (if applicable)

What have you tried
I already tried using style={{overflow-y: 'auto', overflow-x:'auto'}} to set scroll if there an overflow content, it's show scroll for both vertical and horizontal overflow, but there is some strange bug.
If i click cursor on overflow line, and put it on the end, it's show on the max width, instead of the end of the line.
And also when i'm going to the bottom line, the cursor show on the max height, instead of the bottom of the line.
Your Environment

software
version

react-simple-code-editor
^0.8.0

react
^16.7.0

npm or yarn
6.2.0

node
10.8.0

browser
Google Chrome Version 72.0.3626.109

Don't set max height and overflow values on the editor directly. Wrap it in a div and set the overflow and height on that.

Owh thanks, for height it works, but for width it's not work, please re-check again and re-open this issue for horizontal wrap

@devenovil have the same problem。do you have solve it?

@satya164 horizontal scrollBar still need to be sloved。

@devenovil have the same problem。do you have solve it?

nope, i didn't find any solution for fix this bug, yet @satya164 still not re-open this issue

@devenovil have you solved the issue?

I found a solution, you have to change textarea width and height dynamically. I'm using styled-components that's why I have variable inside CSS.
Add class to Editor to have the possibility to querySelector (tried with useRef hook but couldn't get scrollHeight from ref)
className="simple-editor"

Make two states (in my case initial width is multiplied by 0.55 because I want to cover 55% screen width by editor).
const [textareaHeight, setTextareaHeight] = useState(window.innerHeight);
const [textareaWidth, setTextareaWidth] = useState(window.innerWidth*0.55);

Each time you change the content, change the width and height of the textarea to the same as the editor itself (you can add deboucing)
    useEffect(() => {
        const editorHeight = document.querySelector('.simple-editor').scrollHeight;
        const editorWidth = document.querySelector('.simple-editor').scrollWidth;
        setTextareaHeight(editorHeight);
        setTextareaWidth(editorWidth);
    },[content])

You have to add following styles to the editor:
overflow: auto !important;
white-space: pre;
height: 100vh;

To the "pre" element inside Editor:
height: 100vh;
white-space: pre !important;

To the textarea inside Editor:
white-space: pre !important;
height: ${({ textareaHeight }) => textareaHeight}px!important;
width: ${({ textareaWidth }) => textareaWidth}px!important;


Missing documentation for WebPush using the new config

The Wiki page for the new Config does not include details for WebPush and makes it seem like it is not an option. From the page:

The value is a dictionary that must contain the key PLATFORM. PLATFORM must be one of APNS, FCM, GCM, or WNS.

#674 comes with better documentation for webpush