Potential enhancements to new user / developer onboarding

Use case
Nice project :)
Context
My entry point to Patrol was https://patrol.leancode.co/getting-started
I was initially using Flutter targetting Android. As part of an extension of scope to IOS, and a general improvement of testing, I started to explore Patrol.
Current Status
I have functioning Patrol e2e tests on Android & IOS
Considerations for improvement
I found getting Patrol working for IOS significantly more difficult than Android. The root of that issue appears to be specific to recent~ish xcode security evolution, and can be summarised as:
// https://github.com/flutter/flutter/issues/128739#issuecomment-1590619555
// 1.	Open the Xcode project.
// 2.	Click on the project name in the left sidebar to open the project settings.
// 3.	Select the target you want to check in the "Targets" section.
// 4.	Click on the "Build Settings" tab.
// 5.	In the search bar, type "ENABLE_USER_SCRIPT_SANDBOXING".
// 6.	If the value of ENABLE_USER_SCRIPT_SANDBOXING is set to "No", then it is disabled. If it is set to "Yes", then it is enabled.

In the case of getting working Patrol tests, having this set to No seems necessary.
Eventually I realised that in https://github.com/leancodepl/patrol/tree/master/packages/patrol/example there is a fully worked example (though looks like that has significantly changed in recent days - commit e14d37c60c67613dd13da7f3f865af99098fe7ec is the version that helped me) but that example doesn't seem referenced by https://patrol.leancode.co/getting-started
Proposal
Suggestion 1
Consider if it is sensible to mention / reference / point out the implication of this ENABLE_USER_SCRIPT_SANDBOXING setting in your existing docs. The way I found this leads to a second suggestion...
Suggestion 2
Make a (stronger?) call out from the getting started page to the example(s) - without the ability to inspect a working implementation, I may not have gotten this working
keep up the good work :)

Hi @thatdogmachine, we updated the instruction recently and included your feedback. Thank you for the suggestion


Make sure we run the filter function to update the layers

once feature is in state
SDK-551
closes https://github.com/boundlessgeo/qgis-webappbuilder-plugin/issues/407

Coverage decreased (-0.01%) to 75.123% when pulling e0dbd6514b0c38da64aea4c05e52bae50c03d08b on sdk-551 into b364f9ead6436615e449b3b6fb6d61a11fe6628a on master.


Example Usage - rets not defined.

From the example usage - dcc.spec(ugarch_objs=garch_specs, returns=rets).
I presume it should be referencing the returns object?

Good catch! I've updated the example usage.

Marking as closed.


[ACCESSIBILITY 11.4] Homepage - Cards title clamp

https://taskman.eionet.europa.eu/issues/254327

@eea-jenkins build storybook


Can this app disable charging while MacBook is turned off?

What is the issue? (required)
Hello. I'm new to Mac.
I'm using MacBook Air (2022)(M2), with the minimum spec.
I'm charging my MacBook with a USB-C charger.
I enabled "battery" to stop charging at 80%, but my MacBook is being charged while it is switched off.
May I know if it is how it is supposed to work?
Or is there a way that I can stop charging while my MacBook is off?
OS: macOS Ventura version 13.0
What exactly did you do to produce the issue? (required)
Steps to reproduce the behavior:

Go to "battery" GUI
Click on 'enable 80% battery limit'
Shut down PC
Battery is charged to 100% while PC is off

Expected behavior (required)
Battery charging stops at 80% even while PC is switched off

I'm using battery v1.0.9

I'm afraid when it is off, the program is unable to control anything :)


Support begin or and to allow more sophiscated match result?

I think it's better named as
Try matcher

All as keyword


Signing and verifying messages

I spent most of today trying to implement message signing in a portable manner so that bitcoind or Electron-Cash can be used to verify the message, without success.
I've made it as far as constructing the message in the same manner and double-hashing it so the exact same hash is sent to the underlying wallet._pk signing function (and passing hash=None since it's already been hashed manually) and verified this is the same hash generated by bitcoind before it calls secp256k1_ecdsa_sign_recoverable, but that's as far as I get. I am simply unable to produce the same signature or one that bitcoind can verify.
My hunch is that either BitCash does not generate a recoverable signature or the nonce functions are different. This is where things start to go over my head.
If this is not possible, I am wondering if we could at least support a recoverable signing mechanism so that the person verifying does not need the full public key, but simply the cash address (hashed key) like bitcoind and the wallets support. If that were possible then I don't necessarily need it to be verifiable outside of this library.
Anybody have any insight to this? As a last resort I'll keep searching for an alternative library that can do this and I'll have to use that for this purpose, but I would prefer to have it incorporated in here.

That would be really cool. Too much for me to look into now, but definitely like the idea of having that functionality.
The low level bits can get very tricky, or at least time consuming to debug.

I can't help you on this sorry. A part of me would like to try for the challenge but would be irresponsible wrt other commitments

I'm glad it's not just me having this issue. I've been able to verify generated messages within the library, but not with another (bitcoincashjs). I've spent a night trying to verify signed messages with https://bitcoincashjs.github.io/#Examples and not having any success. Unfortunately, I don't have anything to add other than additional insight would be very helpful.


lagrange: 1.13.7 -> 1.13.8

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for lagrange is: "A Beautiful Gemini Client"
meta.homepage for lagrange is: "https://gmi.skyjake.fi/lagrange/"
meta.changelog for lagrange is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.13.8 with grep in /nix/store/85wy6synjj6ncx4s6c5n70asn2i7s8nv-lagrange-1.13.8
found 1.13.8 in filename of file in /nix/store/85wy6synjj6ncx4s6c5n70asn2i7s8nv-lagrange-1.13.8

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
lagrange
lagrange-tui

Instructions to test this update (click to expand)

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

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/85wy6synjj6ncx4s6c5n70asn2i7s8nv-lagrange-1.13.8
ls -la /nix/store/85wy6synjj6ncx4s6c5n70asn2i7s8nv-lagrange-1.13.8/bin

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

2 packages built:

lagrange
lagrange-tui

Maintainer pings
cc @sikmir for testing.

Result of nixpkgs-review pr 199489 run on x86_64-darwin 1

2 packages built:

lagrange
lagrange-tui


In NextJS, passing options to getPayloadHMR doesn't affect the returned payload instance

Link to reproduction
No response
Payload Version
3.0.0-beta.90
Node Version
v20.11.1
Next.js Version
15.0.0-canary.104
Describe the Bug
When passing options to getPayloadHMR, for example in a server action, it returns a payload instance without those options set.
I think the issue here is because RootLayout is responsible initiating a payload instance, but we can only pass the config to the props (and thus RootLayout will use the default InitOptions to create a payload instance). So when calling getPayloadHMR, I think it returns a cached version of this instance.
I think there are some possible solutions here:

Introduce an initOptions prop to RootLayout, like <RootLayout importMap={importMap} config={configPromise} initOptions={{ loggerOptions: { level: process.env.LOG_LEVEL ?? 'debug' } }}>. Then perhaps add a warning when trying to call getPayloadHMR with options if a cached version is found?
Make sure that passing options to getPayloadHMR overrides the initOptions. Problem here is we still can't set the options initially...

Reproduction Steps

Create a server component with an action like so:

export const UploadFormServer = () => {
  const onUploadForm = async (formData: FormData) => {
    'use server';
    const payload = await getPayloadHMR({
      config: payloadConfig,
      loggerOptions: {
        level: "debug",
      },
    });

    console.log(payload.logger.level);
   ....

Call the server action
Note that it prints "info" instead of the expected "debug".

Adapters and Plugins
db-postgres

Hey @chrisvanmook , the getPayloadHMR arg typing is a bit too wide here. It is not intended to change options other than the config and the importMap. We'll be trimming up this type to avoid any confusion here.

Hey @chrisvanmook , the getPayloadHMR arg typing is a bit too wide here. It is not intended to change options other than the config and the importMap. We'll be trimming up this type to avoid any confusion here.

Ah that makes sense! However, how should I be able to set these initial options with NextJS, since we only have the RootLayout component that initiates payload?

Ideally, most of these values should be able to be set in the config itself. I'll be investigating this, since it doesn't look like the logger options can be set in the config currently.

Hi @denolfe, do you perhaps have any updates on this?


WYSIWYG between Slate and PDF

Feature Request 🛍
markdown-pdf centers H1s when rendering to PDF, so it would be useful to do the same in Slate.
It would also be good to review the default font sizes to ensure that they are aligned between Slate and PDF so that they are roughly equivalent at common screen resolutions.
Question: do we want to sync the choice of serif/sans between Slate and PDF?
Styles for PDF are here:
https://github.com/accordproject/markdown-transform/blob/master/packages/markdown-pdf/src/PdfTransformer.js#L173
Use Case
Improve WYSIWYG between Slate editor and rendered PDF.

@dselman I would like to work on this issue. Is it still open?

@Udbhavbisarya23 Still open!

@dselman @jeromesimeon @irmerk I have opened a pr with the changes required. Let me know if i need to make any more changes


build(deps): bump typedoc version to 0.26.2

Closes #24

@simeonoff
Seems to blow up with flags.map is not a function

@simeonoff Seems to blow up with flags.map is not a function

What blows up?


Exception with Azure.Core (for release 6.0.0)

Upgraded to the current version (6.0.0).
Added a connection string successfully.
Cannot view any queues or topics due to a "Could not load file or assembly 'Azure.Core" exception.
A screenshot is included. Ignore the "specified argument was out of the range of valid values ... parameter name active does not exist" as that was from me trying a different configuration option to see if it would allow me to connect.
Downgrading to 5.0.18 allows a successful connection with no error.

<11:27:24> The file C:\Users\xxxx\AppData\Roaming\Service Bus Explorer\UserSettings.config is used for the configuration settings.
<11:27:29> The application is now connected to the sb://xxxxx.servicebus.windows.net/ service bus namespace.
<11:27:29> MessagingFactory successfully created.
<11:27:31> Exception: Could not load file or assembly 'Azure.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=92742159e12e44c8' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Did you keep the servicebusexplorer.exe.config from the previous release?

I am not sure how to best answer that. I ran the update using scoop: "scoop
update ServiceBusExplorer". When I opened Service Bus Explorer it was
version 6.0.0 and all prior saved connections were lost - so I re-added.
When I uninstalled version 6 and re-installed version 5.0.18 using scoop,
the same connection string worked with no error.
On Sat, Jun 29, 2024 at 3:54 PM Erik Mogensen @.***>
wrote:

Did you keep the servicebusexplorer.exe.config from the previous release?
—
Reply to this email directly, view it on GitHub
https://github.com/paolosalvatori/ServiceBusExplorer/issues/787#issuecomment-2198321565,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFPK6BGX4LHA3YXJD2MAEFTZJ4GHPAVCNFSM6AAAAABKDJJBHKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJYGMZDCNJWGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Ok, it seems that you are using the assembly configuration part for v6.0.0, but to make sure:
Please install v6.0.0 and look in servicebusexplorer.exe.config for Azure.Core. It should look like this.
<dependentAssembly>
        <assemblyIdentity name="Azure.Core" publicKeyToken="92742159e12e44c8" culture="neutral" />
        <bindingRedirect oldVersion="<IP_ADDRESS>-<IP_ADDRESS>" newVersion="<IP_ADDRESS>" /
</dependentAssembly>

Ok, it seems that you are using the assembly configuration part for v6.0.0, but to make sure:
Please install v6.0.0 and look in servicebusexplorer.exe.config for Azure.Core. It should look like this.
<dependentAssembly>
        <assemblyIdentity name="Azure.Core" publicKeyToken="92742159e12e44c8" culture="neutral" />
        <bindingRedirect oldVersion="<IP_ADDRESS>-<IP_ADDRESS>" newVersion="<IP_ADDRESS>" /
</dependentAssembly>

Thank you! This led me to the solution. I uninstalled 5.0.18 and installed 6.0.0. When I opened the servicebusexplorer.exe.config there was no reference for Azure.Core. When I checked the directory that config file was almost a year old. To resolve, I renamed the servicebusexplorer.exe.config to servicebusexplorer.exe.config.old and then renamed servicebusexplorer.exe.config.original to servicebusexplorer.exe.config.
A screenshot is below. It shows uninstalling, installing, and the old file name.
Feel free to close the issue. Thank you for the suggestion and helping me to resolve.

Good, that you got it resolved.
So, Scoop doesn't replace the servicebusexplorer.exe.config file?
In that case it is going to create problems.

So, Scoop doesn't replace the servicebusexplorer.exe.config file?

Correct, it seems to be re-deploying the prior version previously installed on the computer and renaming the correct one in the 6.0.0 nupkg file to "servicebusexplorer.exe.config.original".


Import modules/custom objects?

Is it possible to import modules, custom objects that can be accessed in the evaluate function?

Do you mean that use import in vDebugger.evaluate? No, because the vDebugger.evaluate is used for running expressions instead of statements. If you want to access so custom objects, I think the only way is to mount them at the global this like window.

Awesome! Will try these. Thank you @Siubaak


docs: fix wrong sample about menu

What is it?

[ ] Feature / enhancement
[ ] Bug
[x] Docs / tests

Description
I found a problem with the menu explanation.
Use cases and why

One use case

Another use case

Checklist:

[ ] My code follows the developer guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] Added new tests to cover the fix / functionality

thanks @SH5H !


Fix: Make Scrabble last test instantiate and call instance instead static

All other tests methods instantiate Scrabble and then call .score on the instance, but the last test called .score as a static method. This change makes the last test consistent with the rest.

Thank you @JadziaHax for the work on this.
I have the question posed for you, and am looking forward to hearing from you!


Cop idea: ActiveRecord bang methods

it  { expect { user.update(name: nil) }.to ... could fail silently, so it  { expect { user.update!(name: nil) }.to ... is preferred.
This would apply for most ActiveRecord bang methods, e.g.:

save!
update!
destroy!
create!
etc.

Note that there's already a cop in RuboCop itself for save!:
https://github.com/bbatsov/rubocop/blob/master/lib/rubocop/cop/rails/save_bang.rb

Yeah I think this is a better suited to rubocop itself. We don't really have a rails specific config for rubocop-rspec and these methods are also pretty generic so it seems like not a great fit for rubocop-rspec. Interesting idea though @Dorian.

Nice, thanks a lot @andyw8 !!! Detecting if the return value is used is so much smarter!


[WIP] Add File field

So just to be sure, this is a single file upload widget, not a multiple file upload, right?

There is an option to handle multiple file uploads, so I need to display all uploaded files (only the first one is displayed at the moment).

Please add a mention in the README, too.

Can anyone give the examples about this features..?
Both of single and multiple upload..
Thanks..

Can you open an issue please ?


cannot seem to run traefik on port 80??

Hi guys,
When i am running traefik on port 8000 everything seems fine. However, switching over to port 80 doesnt seem to resolve for me. This is what is in my docker-compose file.
  traefik:
    image: traefik
    command: -c /dev/null --web --docker --logLevel=INFO
    ports:
      - '80:80'
#      - '8080:8080' # Dashboard
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

any help?

log
traefik_1  | time="2017-10-24T22:36:50Z" level=info msg="Using TOML configuration file /dev/null"
traefik_1  | time="2017-10-24T22:36:50Z" level=info msg="Traefik version v1.4.1 built on 2017-10-24_05:25:28PM"
traefik_1  | time="2017-10-24T22:36:50Z" level=info msg="Preparing server http &{Network: Address::80 TLS:<nil> Redirect:<nil> Auth:<nil> WhitelistSourceRange:[] Compress:false ProxyProtocol:<nil> ForwardedHeaders:0xc420199920} with readTimeout=0s writeTimeout=0s idleTimeout=3m0s"
traefik_1  | time="2017-10-24T22:36:50Z" level=info msg="Starting provider *docker.Provider {"Watch":true,"Filename":"","Constraints":null,"Trace":false,"DebugLogGeneratedTemplate":false,"Endpoint":"unix:///var/run/docker.sock","Domain":"","TLS":null,"ExposedByDefault":true,"UseBindPortIP":false,"SwarmMode":false}"
traefik_1  | time="2017-10-24T22:36:50Z" level=info msg="Starting provider *web.Provider {"Address":":8080","CertFile":"","KeyFile":"","ReadOnly":false,"Statistics":null,"Metrics":null,"Path":"/","Auth":null,"Debug":false,"CurrentConfigurations":{},"Stats":{"Uptime":"2017-10-24T22:36:50.441807713Z","Pid":1,"ResponseCounts":{},"TotalResponseCounts":{},"TotalResponseTime":"0001-01-01T00:00:00Z"},"StatsRecorder":null}"
traefik_1  | time="2017-10-24T22:36:50Z" level=info msg="Starting server on :80"
traefik_1  | time="2017-10-24T22:36:50Z" level=info msg="Server configuration reloaded on :80"

According to the logs, requests just don't reach to your traefik. Could be that port 80 is already occupied on your host machine?

Hi Chingis.
Thanks for the quick reply. I don't have anything running on port 80. I do have Acquia Dev Desktop installed, but not running when I tested this.

Also see https://github.com/containous/traefik/issues/432#issuecomment-339214713..

As you can see, I have nothing actually running on port 80
sudo lsof -i :80
COMMAND     PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.avast 44187 root    3u  IPv4 0xad4ed403e8f126c9      0t0  TCP xx.xx.xx.xx:50735->lon25.ff.avast.com:http (ESTABLISHED)

Not entirely sure what the issue was, but I made a number of changes and now it seems to be working. Here is what I had to change.

Removed Avast AV
Removed Malwarebytes
Re-installed Acquia Dev Desktop (runs on port 8083 by default)
Reboot

And I am back in action on port 80 using traefik.


chore(main): release 0.5.4

:robot: I have created a release beep boop
0.5.4 (2023-11-09)
Bug Fixes

bump pydantic from 1.10.13 to 2.4.2 (#299) (8597fcc)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/Autodesk/pgbelt/releases/tag/v0.5.4 :sunflower:


required sdk version is so high

requires SDK version >=3.4.0 <4.0.0, version solving failed
Can you lower the minimum version requirement?

Lowered from v3.0.3


phpPackages: add prefix 'php-' to packages

Motivation for this change
Aadd prefix 'php-' to php packages
See - https://github.com/NixOS/nixpkgs/pull/59904#issuecomment-485390925
cc @etu @aanderse
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg build phpPackages.psysh phpPackages.phpstan

@Izorkin Thanks :-)
@aanderse Yeah, most packages use buildPecl which adds it, so the file is going to be a mixture... Maybe one could wrap mkDerivation for that file and not call it directly from stdenv all the time and just prepend the pname with "php-", that would make the file more consistent overall :-)

Right! that makes sense.

Yes, missed this packages.


Swashbuckle.AspNetCore.SwaggerGen.SwaggerGeneratorException: Conflicting method/path combination

Hi,
I have the following API controller with 2 GET actions
[Route("api/[controller]")]
[ApiController]
public class InvestorsController : ControllerBase
{
    [HttpGet("{id:guid}", Name = nameof(GetCrmInvestor))]
    public async Task<ActionResult<Dto.Crm.InvestorDto>> GetCrmInvestor(Guid id)
    {
    }

    [HttpGet("{id:int}", Name = nameof(GetCrowdInvestor))]
    public async Task<ActionResult<InvestorDto>> GetCrowdInvestor(int id)
    {
    }
}

I can successfully call both of these endpoints using Postman - 1 with an int, 1 with a guid - however, Swagger throws an exception:
Swashbuckle.AspNetCore.SwaggerGen.SwaggerGeneratorException: Conflicting method/path combination "GET api/Investors/{id}" for actions - {full path to method}.GetCrmInvestor, {full path to method}.GetCrowdInvestor. Actions require a unique method/path combination for Swagger/OpenAPI 3.0. Use ConflictingActionsResolver as a workaround
This API is written in ASP.NET Core 5 (net5.0). Using Nuget package Swashbuckle.AspNetCore Version 6.0.7
This seems different to #1713 as I have provided a route name.
Am I doing something wrong?

Swashbuckle is built on top of the OpenAPI Specification. That is, it generates an OpenAPI document that describes your API and then uses that document to power the swagger-ui.
In OpenAPI, each operation is uniquely identified by a combination a "path template" and a HTTP method. In this context, a "path template" is a relative path with curly braces (if applicable|) to mark a section of a URL path as replaceable using path parameter names. Similar to a "route template", which is a concept internal to ASP.NET Core, but curly braces would only include parameter names, and not route constraint syntax.
With this in mind, your two operations would have the same "path template" (/investors/{id}) and the same HTTP method, and so the generated OpenAPI document would not be valid, hence the exception. To workaround this, you need to have something in the "path template" to distinguish them from eachother, and in this case it seems the parameter name is your best option because it wouldn't change the API behavior in any way.
[Route("api/[controller]")]
[ApiController]
public class InvestorsController : ControllerBase
{
    [HttpGet("{guidId:guid}", Name = nameof(GetCrmInvestor))]
    public async Task<ActionResult<Dto.Crm.InvestorDto>> GetCrmInvestor(Guid guidId)
    {
    }

    [HttpGet("{intId:int}", Name = nameof(GetCrowdInvestor))]
    public async Task<ActionResult<InvestorDto>> GetCrowdInvestor(int intId)
    {
    }
}

@domaindrivendev Thank you for your quick response. Your suggestion to rename the path parameters has resolved this issue.
Many thanks

@abdollahkahne, I have the same problem.

https://stackoverflow.com/questions/73598068/adding-new-method-to-controller-makes-swagger-give-500-error


Wrong disk utilization

Description of problem [include screenshots and browser console logs]:
Wrong percentage for disk utilization

oVirt version number:
<IP_ADDRESS>
Actual results:
Disk2 looks OK but Mouse over Percent is wrong (see attached Screenshot)
Expected results:
Percentage should be correct
Additional info:
See https://bugzilla.redhat.com/show_bug.cgi?id=2036947

This is a duplicate issue for #1535 (handled by #1541) and therefore closing as DUPLICATE.


catch email links in full example

Because the goquery function will grab all the links nested on the page it will also bring back "mailto:" links. In this example it will throw a runtime error in the processChan function.
This is just a small boolean check so it a page has an email link it will just skip over it.

Hi Jordan,
Do you have an example mailto URL that causes this panic? A typical<EMAIL_ADDRESS>shouldn't be able to be enqueued as it has an invalid empty host. If it has a valid host, but is not an HTTP(s) scheme, it shouldn't panic either, it should pass the request error
to the handler.
Thanks,
Martin

Hey Martin,
Yeah I was running into that error on a small side project -- it was failing here. I had to add in the email checks for some reason when I was running it on my own site jt.codes.
It is my first attempt at building out a crawler/scraper so it must be something hacky I haven't been able to trace down quite yet in my code. Apologies on that. I really appreciate all the great work you have done. Definitely inspiring from a younger dev's point of view!
Thanks,
Jordan

Allright, no worries and thanks for the kind words!


Remove extractors for dead pages keezmovies, extremetube, mofosex, fix tube8

Before submitting a pull request make sure you have:

[x] Searched the bugtracker for similar pull requests
[x] Read adding new extractor tutorial
[x] Read youtube-dl coding conventions and adjusted the code to meet them
[x] Covered the code with tests (note that PRs without tests will be REJECTED)
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[x] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

keezmovies, extremetube, mofosex are dead and tube8 extended keezmovies and was broken.

_extract_info is a verbatim copy from KeezmoviesIE, the previous superclass.

OK, I understand, but I hope you won't mind if I apply those changes before merging anyway.

Not at all.


Support non-standard cross-browser manifest fields

There are cases when a feature is desired in a browser but not in the other browser, say using background.service_worker for Chrome and background.scripts for Firefox.
The easier route is having multiple manifest.json files specific for browsers (like manifest.edge.json). I'd like to avoid this for now.
The solution that comes to mind is having some sort of prefix to manifest fields, which would be handled by the CompatPlugin. Like:
{
  // Applies to Chrome only
  "chrome:side_panel": "...",
  "background": {
    // Applies to all Chromium-based browsers
    "chromium:service_worker": "sw.js",
    // Applies to Firefox
    "firefox:scripts": ["bg.js"]
  }
}

Chrome would understand the manifest.json as:
{
  // Applies to Chrome only
  "side_panel": "...",
  "background": {
    // Applies to all Chromium-based browsers
    "service_worker": "sw.js"
  }
}

Firefox:
{
  "background": {
    // Applies to Firefox
    "scripts": ["bg.js"]
  }
}

Lack of this feature prevent us from having templates using service workers from being compatible with Firefox in production mode.

closed by #128


I can't load the wizardlm 13b model nomore since V0.3.0

When I run my code that uses gptQ, I get this warning and it simply crushes when I load the WizardLM-13B model!
WARNING:accelerate.utils.modeling:The safetensors archive passed at C:\Users\aloui\Documents\lollms\models\gptq\WizardLM-13B-V1.1-GPTQ\wizardlm-13b-v1.1-GPTQ-4bit-128g.no-act.order.safetensors does not contain metadata. Make sure to save your model with the save_pretrained method. Defaulting to 'pt' metadata.
It used to work with previous version.

It turns out this was a memory problem. But I think if it fails, it is not a good thing that it completely crushes the entire program. This blocks my software completely and the user needs to go change the configuration manually to get it to work.
Is there a way to solve this?
Thanks in advance.
Also, if possible, is there a function or method that allows me to free up the model from memory if I want to change to another one? I need this as in Lollms The user can change the model any time and now it simply crushes whenever I try another mode.
Thanks

I will look into this late of this week, but to my knowledge there is no change of auto-gptq' s model loading mechanism in the new version, is it possible that this problem is caused by some dependencies' version change? It would be great if you can help to check this 🙏

I think I can reproduce the bug.
Write a program that loads gptQ model in gpu mode with all in gpu (no splitting).
Then run that two or three times (depends on the vram you have). The last one will crush and simply exit the application.
I also can produce this by loading stable diffusion model then run an application that uses auto-gptq.
Please try to make it just show an error but not exit the app. Maybe raise an exception or something.


Chapter 3 typo

Under 'Alternative implementations in scikit-learn' section, "The scikit-learn library's Perceptron and LogisticRegression classes ... make use of the LIBLINEAR libraray,..."
As you may know, Perceptron class use BaseSGDClassifier not liblinear. :)

Like a typo in p56, 'Chapter 5...' should be 'Chapter 6...' in last paragraph of p99.

In p86, "If we increase the value for \gamma, we increase the influence or ..." should be "If we increase the value for \gamma, we decrease the influence or ...".

On page 101, the paragraph below the graph reads "25 decision trees via the n_estimators parameter and used the entropy criterion". However, in the code, you use gini criterion

thanks @rickiepark

Under 'Alternative implementations in scikit-learn' section, "The scikit-learn library's Perceptron and LogisticRegression classes ... make use of the LIBLINEAR libraray,..."
As you may know, Perceptron class use BaseSGDClassifier not liblinear. :)

You are right, Perceptron doesn't use LIBLINEAR. Will added this to the errata.

In p86, "If we increase the value for \gamma, we increase the influence or ..." should be "If we increase the value for \gamma, we decrease the influence or ...".

Hm, I think that increasing gamma will lead to an increase of the influence of training points, so the original should be correct (C, the inverse regularization parameter behaves the other way around though, i.e., increasing C will lead to a smoother boundary)

Like a typo in p56, 'Chapter 5...' should be 'Chapter 6...' in last paragraph of p99.

Good point. in my version, it appears correct on pg 56 but on pg 99 it should be Chapter 6 instead of chapter 5 indeed! Will add that to the errata

thanks @sameervk

On page 101, the paragraph below the graph reads "25 decision trees via the n_estimators parameter and used the entropy criterion". However, in the code, you use gini criterion.

I think this is already in the errata list at https://github.com/rasbt/python-machine-learning-book-2nd-edition/tree/master/docs/errata! Thanks anyway though :) I think this error came up because I used entropy in the first edition and then when I changed the code I forgot to fix it in this paragraph as well.

Thanks for reply @rasbt ,
Please check again gamma parameter, low gamma value has more influence than high gamma value.(https://scikit-learn.org/stable/auto_examples/svm/plot_rbf_parameters.html)
Because \gamma is the inverse of \sigma. ie, \gamma=\frac{1}{2 \sigma^2}

Thanks for the feedback. I think the passage is still correct though, because I was not referring to the support vectors but more the training examples in general. I.e,. I just see on that page that you link it also says:

When gamma is very small, the model is too constrained and cannot capture the complexity or “shape” of the data. The region of influence of any selected support vector would include the whole training set.

Thanks a lot. I understand it. :)

oops! should have checked that, my bad.


fix(udf): increase external udf message limit to 20MB

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
The previous default 4MB limit by tonic seems too small. This PR increases it to 20MB in a quick manner. We need to introduce config items for this later.
Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

#18591  👈
main

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

Join @stdrc and the rest of your teammates on  Graphite

Shall we add a warning trace or metric for udf message with large size? Can be in a separate PR.

It seems not easy to add such log/metric because messages are decoded in tonic and we don't have access to the raw messages. Currently I think we already have UDF Throughput (bytes).


forward slash in link has been escaped to /

examples:
[https://docker.nju.edu.cn/](https://link.zhihu.com/?target=https%3A//docker.nju.edu.cn/)

Hey @Baoyx007, sorry for the delay in reply.
All variables in the template are HTML-escaped by default. If you want to render unescaped HTML, use the triple mustache: {{{name}}}. You can also use & to unescape a variable.
So for your example, you could use[{{{originalUrl}}}] in your template to unescape the URL when rendering


masih python added

I'm sorry, we don't want you to delete other peoples' files.  Only submit your own...

@masihUBC are you submitting your design?
thank you

Closing. Please try again.


Add a checkbox in the settings page to enable or disable Resin upgrades

Closing, see #2374 for details


Improvements

This pull request adds the features of broadcasting for issue #1 .
The broadcasting is of two types:

ALL_BROADCASTING: In each iteration of the search loop, the results are fused into one graph and passed to all the processes. Once each process finishes, it compares its results with the fusion graph, taking the best of the two graphs.
PAIR_BROADCASTING: In this case, the fusion process of each cges process is modified. The fusion is now a paircombination fusion, where in each cges process, each result of the previous iteration is fused with the current dag of the cges process. Then, the best graph is selected and simplified by a BES thread.

Broadcasting does not work:


Multi-project operators, slot optimizations, dependency management, etc

the MEGA PR
some work remains to be done, but most things should still work quite nicely as far as i can tell

This has been merged into the main branch with CLI tools.


Update version for developer builds only once a day

In order to improve incrementalness for developer builds
(i.e. more tasks should be up-to-date) we only update the version
once a day.

Why update it at all? I don't ever care about the timestamp of a locally built version.

@oehme Not updating it at all has some side effects e.g. if we change the repository format on disk. When this happens, then a developer needs to manually clean up intTestHomeDir. Using an only sometimes changing version prevents this. I a still not completely opposed to using something as -SNAPSHOT as we did before. Do you have more thoughts on this?

Thanks for clarifying. I guess in that case doing it once a day is okay.


Station announcements actively say the wrong direction?

Description
If you look at the screenshot, it says southeast, while in reality it was northwest. Pretty sure it happens with tracking implants too and stuff. Seems to happen consistently with the nuke though, saying the complete opposite direction.
Screenshots

same with evac

Huh, sounds like someone subtracted the final position from the initial position instead of the other way around.


API request: allow ignoring ts-(expect-error|ignore) in getPreEmitDiagnostics

Suggestion
🔍 Search Terms
ignore comment directives ts-expect-error ts-ignore
✅ Viability Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
API consumers such as typescript-eslint would benefit from being able to get the diagnostics in a file that would be emitted were it not for a // @ts-expect-error or // @ts-ignore. Can we add in an options parameter to program.getPreEmitDiagnostics to allow consumers to stop those comment directives from suppressing errors?
I threw together a rough draft of how this could look in the TypeScript source here: https://github.com/JoshuaKGoldberg/TypeScript/compare/a7c07ff...JoshuaKGoldberg:TypeScript:get-diagnostics-options. Just in case it's helpful.
📃 Motivating Example
https://github.com/JoshuaKGoldberg/eslint-plugin-expect-type/issues/65: we'd like to make lint rules that assert on the error message matching what's expected, as a userland solution to #19139 not being accepted.
💻 Use Cases
Here's how we could change what eslint-plugin-expect-type does today:
- const diagnostics = ts.getPreEmitDiagnostics(program, sourceFile);
+ const diagnostics = ts.getPreEmitDiagnostics(program, sourceFile, { skipCommentDirectiveErrorSuppressions: true });

Without this API, users either:

Can't both suppress type errors and lint that the suppressions match up with TypeScript
Need to have lint rules & similar rewrite files to remove the comments - essentially parsing & type checking them twice

We try to keep our API surface pretty minimal. Since it's an API call, you can transform the source text (replace ts-ignore with ts-zzzzzz) before handing it over to get equivalent results. Thoughts?

No juice 😞. We need to be able to get the original text in case of anything that transforms text. For example, ESLint rule complaints can have fixers that move entire functions / other chunks of code. Fixers have no way of knowing that the user has configured @typescript-eslint/parser -> @typescript-eslint/estree with some setting like { rewriteDirectives: true }.

Rewriting the comments also has the concerns about duplicated parsing work mentioned in the OP (unless it's just a dumb text-based find/replace but that feels problematic).


updateServiceWorker does nothing

I'm using injectManifest mode and this is my config
VitePWA({
    strategies: 'injectManifest',
    manifest,
    srcDir: './src/service-worker',
    filename: 'index.js',
    outDir: './dist',
    injectRegister: 'auto'
}),

And later on to implement the ReloadPrompt component,
<button v-if="newVersionAvailable" @click="updateServiceWorker">
    Update to the latest version
</button>
const {
    needRefresh
    updateServiceWorker
} = useRegisterSW();

But updateServiceWorker practically does nothing.
It just returns a promise that resolves to nothing.
I looked into the source code and saw if (!auto) { in updateServiceWorker function.
Then saw this const autoUpdateMode = '__SW_AUTO_UPDATE__' which updateServiceWorker is depend on.  Then, found out that __SW_AUTO_UPDATE__ is getting replaced by ${options.registerType === 'autoUpdate'}. But I don't want an autoUpdate when I'm using a reload prompt. I lost.

@Mehdi-Hp docs included on PR #75


Fixes #31050 -- Remove empty strings from recipients in email message headers.

Ticket #31050
If we can't filter values inside init for some reason (eg. msg.to = ['']), let me know, I'll change _set_list_header_if_not_empty function then.

Closing per ticket.


Scrum 4

Scrum Report Steps
Post a comment in this issue with:

Your Name
Answer these 3 questions

What did you work on this past iteration (2 weeks)?
What were any major issues/challenges you ran into?
What do you plan to work on for this coming iteration (2 weeks)?

Ensure answers are 5 sentences MAX

Grading Rubric:
2:
Includes all 3 points. Demonstrates a bit of meaningful reflection on at least one item in the report.
1:
Simplistic, or no meaningful, specific information.
0:
Missing or Late.

Scrum Report for Kenny Cheng：
What did you work on this past iteration (2 weeks)?

Updated and enhanced User signup to match profile needs, required information, and customizable profile information. Adding some validation, and integrated with backend.
Create home-page tabbed fitness + meal schedule view according to figma designs. Created mock router to integrate and test with backend without calling openAI API too many times.

What were any major issues/challenges you ran into?

Integration required a lot of refactoring in existing frontend code

What do you plan to work on for this coming iteration (3 weeks)?

Integrate profile picture uploading E2E
Add additional form validation for email, password length, and other necessary fields
Google account login
Supporting other standard requirements.

Scrum Report for Jack Ji：
What did you work on this past iteration (2 weeks)?

Complete backend implementation for profile creation and image upload to MongoDB
Design and testing updated GPT prompt
Initial implementation of backend  for schedule history

What were any major issues/challenges you ran into?

balance between result accuracy and cost for GPT prompt, I think a lot can still be shortened to reduce token usage

What do you plan to work on for this coming iteration (3 weeks)?

Complete implementation of backend  for schedule history
GPT API verification in backend
Supporting other members

Scrum Report for Kevin Chung
What did you work on this past iteration (2 weeks)?

Implemented collapse card for fitness plan on the home page to improve styling, figured out which nutritional macros to be fetched from the OpenAI API calls, created Figma designs for the home page prior to the implementation of the meal schedule view.

What were any major issues/challenges you ran into?

Nothing relevant to project / course.

What do you plan to work on for this coming iteration (2 weeks)?

Frontend implementation for user metrics and statistics according to the customized fitness / meal plan

Scrum Report for Kevin Wu (v4b3b)
What did you work on this past iteration (2 weeks)?

Integrating the OpenAI API requests into our workout generation service
Creating a chatbot for making custom schedules and editing a user profile

What were any major issues/challenges you ran into?

Chatbot implementation is a bit finicky, getting solid feedback from the team regarding the functionality

What do you plan to work on for this coming iteration (2 weeks)?

Finish the chatbot by this Weds
Implement the frontend for the schedule history

Scrum Report for Davis Song (j5aeb)
What did you work on this past iteration (2 weeks)?

Integrate controller connection with OpenAI and database + reliability testing
Landing page, theming, and styling
Brand design (logo and assets)

What were any major issues/challenges you ran into?

Deciding on a theme is hard to do in practice without all components ready
OpenAI key rate limiting at 3 requets per minute; need a solution for the graders

What do you plan to work on for this coming iteration (2 weeks)?

Guided workouts feature (next Friday)
Homepage styling (next Friday, depends on speed of other members)


Setup frontend codebase

Tasks

[ ] Setup the frontend codebase

Please assign this to me

This issue is closed for frontend, left with mobile

I would love to work on this
Mobile


Update error, cannot access any books

Tried update from 0.13.1 to 0.14.1, and i get this error when i click on a site link or book link:
"Whoops, looks like something went wrong."
Install Log:
http://pastebin.com/URCu2Cb7
Tried it twice.. had to restore my backups an now 0.13.1 is running again.

Can you supply some more info from laravels log file which can be found in storage/logs/laravel.log

After update i can login, go to settings etc. without a problem.
But if i try to click on a book or site link i get the error.
storage/logs/laravel.log shows this for every click on a link
http://pastebin.com/S4gMaz3m

Hi @m4ntic0r, I could not replicate this issue but I have deployed a new release, v0.14.2, with a hopeful fix. If that does not fix the issue just let me know and I'll re-open this.

Hi @ssddanbrown, i can confirm that 0.14.2 works. I updated and everything seems to work. Thanks for fixing this issue.


[Question]: What I wanted to say/ask

Describe your problem
Hi there,
this is for all the contributors, community members, etc. out there.
I hope it's alright, to compose a little longer Feature Request / Buglist.
First of all, I would like to thank you for all your hard work.
You are appreciated and hope/wish you all the best for your private lifes as well!
We know you are busy and have many things to do/answer/read/etc.
This is really hard work.
I love that Ragflow brings many nationalities, languages and characters together
because it works with so many languages which was a surprise to me.
As a German it is difficult to get good German language output from LLMs.
Suprisngly, not the west but the east (Asia?), offers better German output than llama, etc.
I came across glm4 which is fantastic for German output.
Anyway, I came across Ragflow and was astounded, by how easy it was to deploy and set this up.
But I was even more astounded about the backend mechanisms and I haven't even looked at Graph, tbh.
In short: This framework has strong potential and is exactly what I (and others) wanted/needed and it's easy to use.
So thank you and keep it up!
The project has a few hiccups here and there but it surely works fantastic and is also well documented.
There might be some duplicates in my list and I apologize, that I haven't looked for already other existing open requests/issues.
My feature requests:

OpenAI compatible server API
Many would instantly embedd Ragflow in their systems which would spread across businesses
and gains more recognition. It would be also nice to pack everything into a "virtual" simple LLM.
E.g. I would like to easily embeed a Ragflow Agent or Assistant (without the conditions like upload/options, etc.)
and just use it as a simple model which has the power of a configured Ragflow in the back.

OCRing with visual models
Some visual models are doing fantastic in OCRing images and extracting content in tabular data style etc.
This can help developers, to experiment easier with visual models and also use the generated content for searching.

Agent (deploying)
I had a brief look into the Graph and AI agent framework. It's awesome.
It would be awesome to get like shareable links to the agents.
The conditions for input(s) make it great for workflow distribution to contribute to the datasets.
So others can login with credentials and pick a dataset, upload a file or files, etc.

More language support
Ragflow works/supports suprisingly well with German documents and many other languages and charts!
When I use question/answer additionally, it sometimes creates "english" questions.
Also, the OCR results misses "Sonderzeichen/Umlaute" like "ä", "ü".
Sometimes you can edit prompts like in RAPTOR and stuff, which is good.
But prompts for question/answer is missing or OCR language settings (e.g. if tesseract/tika is used)
So I think there is room, to make this of worldwide/global interest.

Add function calling, etc.
I am not sure about the agents and GRAPH but it would be awesome to sort of function calling.
There could be actions like HTTP Requests or even shell commands.
Synchronous and asynchronous, etc.

Add another upload API to file management (not just datasets)

Edit:

Add Conversation/Memory functionality
It would be nice to somehow use conversations workflows to store memories, etc.

These are my main features, I'd like to see in the future. So thanks in advance for considering :)
I have a few bugs/suggestions as well:

Dark Mode is not working/applying

Docker and documentation
I have looked for ragflow and automatically got to the DEV documentation/images.
This is why I might had some issues. I used the v0.14.1 image but in settings it still shows v0.14.0
I also thought, that the dev image is always populated with the latest commit changes but somehow it isnt?!
Maybe I got stuff got mixed up but I am not sure which image to use and how to update.
So the docker documentations can be improved, I think.

I am also trying to setup infinity but I had no luck. (won't apply chunks to infinity somehow)
In the docs, it is mentioned that its not supported in Linux_X64?!

Chunk edit window
Something weird is going on with the chunk edit window not retrieving the chunks.
I can't tell for sure whats going on but this might also be an issue with version migration stuff.

Otherwise guys, this is the real deal you made here and I am thankful for your
hard work and dedication to bring the world closer (by multi language support)!
Thank you for reading and considering any idea/suggestion.

Thank you very much for your attention and suggestions, support from the community is our greatest motivation to move forward!
Regarding to your proposals:

OpenAI compatible server API
That's a very good offer. We'll consider it.

OCRing with visual models

We'll be adding more similar models, some trained by us and others from the community.

Agent

Agent is still in the process of improvement, it will not only have a shared connection, but also an Agent Store, so that different people can contribute Agents, each Agent is like an App, and RAGFlow is like an App Store.

More language support

Globalization is the goal of RAGFlow. We are indeed understaffed, but we will continue to make improvements to make RAGFlow truly global!

Function calling

There is an Invoke in the Agent, somewhat similar to function calling, fill in the URL, then you can call other services in the Agent. Any further requests for this feature are welcome!

API

There is still a lot of room for improvement in the API, and the file management API will be provided.

Memory management

Memory management is very important and we intend to use ES/Infinity to manage memory and provide real-time search (not just vectors, but full text, etc., which are indexed in real-time). Providing powerful multi-agents based on RAGFlow is one of the goals for next year.

Thank you very much. This sounds promisable :)
I have another thing:
Parsing control is a little too limited. I'd like to autparse upon dataset entry or so and an option, how many maximum parsing threads (actually documents) can be processed at a time. The bulk option is ok, but I'd like to do this automatically with a configurable maximum on how many documents are processed.
Thank you.
Let me know, if you want me to do seperate issues for the suggestions/bugs.

Such control could be provided through API in future.


New tag

Hey just a heads up, this repo needs a new tag for the changes to work with vapor/mysql!

https://github.com/vapor/cmysql/releases/tag/0.3.0


Updates for Tower 3.7.0

Update version number in vars examples, comment out rabbitmq variables in inventory examples (not required in 3.7+), switch rabbitmq in architecture image to redis, begin tracking tested versions

tower3.8 branch added which includes most of the above changes.  Closing pull request.


Fix 806 regression

Fixes #806 and #826 and #829.
I don't know how to add specs for the mouse movements but they are fixed too. @maxbrunsfeld please advise if you would like those specs and know how to do them.

@jacekkopecky Could you explain why we need specific code for handling mouse dragging, rather than treating it like any other means of updating selections?
I thought the problem was just that we prevent cursors from moving to the end of the line, even if they have non-empty selections.

Here's what I think happens on mouse dragging in normal mode:

mouseDown after the end of the line, cursor moves to the end of the line and there's no selection
mouseMove, cursor moves and selection is started and grows
The issue is that without watching the mouse, we don't know in step 1 that we shouldn't move the cursor - hence the behaviour shown in the very helpful animated gif in #806.

@jacekkopecky Can you verify that this fixes the insert-newline-above and join-lines commands in normal mode? I would think that there would still be problems, because other commands outside of vim-mode might need to move the cursor to the end of the line, but won't be able to set the @processing flag. I could be wrong though; let me know.

@maxbrunsfeld yes, I've just verified it.
The @processing flag is there so that vim-mode can put the cursor immediately where it belongs after vim-mode commands, but it doesn't reposition the cursor while those commands are working.
For non-vim-mode commands, we notice something has happened with the onDidChangeCursorPosition handler, but we only do something about the cursor position after the current tick (that's the _.debounce(..., 0) so the foreign commands are done by then.

it means, though, that a command like cmd-<right> puts the cursor at the end of the line, then drawing happens, and only then the cursor is put where it belongs and redrawn. $ doesn't suffer this issue, and vim-mode could very easily have cmd-<right> mapped to the same command as $.

@maxbrunsfeld the last comment removes the short cursor flicker on native commands such as cmd-<right>. Still uncertain?

Hooking into the TextEditorComponent's rendering cycle is an interesting solution, but it's reaching pretty far into private code, and it creates a coupling between the VimState and the rendering layer that I'd like to avoid.
I think that instead, we should hook into the lifecycle of Atom's commands. Basically, we'll only need to adjust the cursor position at two times: after mouse dragging ends (exactly the way you have it now), and after each command runs. Then I don't think we'll need to use onDidChangeSelectionRange, onDidChangeCursorPosition, or onDidAddCursor to adjust the cursor position, and I don't think we'll need the @processing variable on VimState.
In the above atom/atom pull request, I've added a method atom.commands.onDidDispatch that we can use for this. This will be available in Atom v1.0.8.

Because we don't have a good currentTarget in the did-dispatch event (see https://github.com/atom/atom/pull/8496/files#diff-22aaebf7af3d31bbf37d33248ec7af1cR253) we won't know that the event was for our editor. We might run the cursor position and selection check for every editor on every command, but that doesn't feel right.

I did a little work on this, and it seemed like checking event.target is @editor was sufficient.

got it, that should work, thanks

I now got rid of all the cursor/selection change listeners (which required a few spec changes), but it works now (with my recent enough clone of Atom, anyway).

:heart: This is looking really good. Really excited to get this :ship:ed once Atom 1.0.8 is out.

@maxbrunsfeld @jacekkopecky I've been following this thread for a while. Thank you for your hard work!

Thank you for your kind words!
Oops, just remembered that I have a check for existence of onDidDispatch
that shouldn't be there; can remove it in an hour.

Actually @jacekkopecky I would say leave that in there. That way, users w/ old versions of Atom won't get exceptions when they upgrade vim-mode; they just won't have the cursor adjusted when they run non-vim-mode commands.

Hmmm, I'll have to check the amount of breakage that causes in 1.0.7. If
it's usable, you're right.

Yup, seems usable all right

:sparkles:

Yay! Thank you!


Add Tor to Appveyor, too

https://github.com/nopara73/MagicalCryptoWallet/pull/9
https://github.com/nopara73/MagicalCryptoWallet/pull/7


Workaround Quarkus Maven plugin issue with resolving local deps

Summary
See https://github.com/quarkusio/quarkus/issues/34787#issuecomment-1638153494.
Please check the relevant options

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Dependency update
[ ] Refactoring
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] This change requires a documentation update
[ ] This change requires execution against OCP (use run tests phrase in comment)

Checklist:

[ ] Example scenarios has been updated / added
[ ] Methods and classes used in PR scenarios are meaningful
[x] Commits are well encapsulated and follow the best practices

Do other CIs affected?  The daily one, for example?

Daily build is green, so I guess they does not. I won't pretend I understand this..

I don't think I can easily try release locally, tried mvn -B release:prepare -Prelease,framework,extensions,examples -DautoVersionSubmodules -s .github/mvn-settings.xml and it failed when building parent. Probably I need to know more about it, but TBH I'd rather spent time on it when I know there is an issue (e.g. release failed).


Improve connector debugging support and refactor code

Purpose
Improve connector debugging support. Furthermore, enabled support for handling HTTP temporary redirects. Refactored code and simplified the configuration object.
Goals
Improve connector debugging support
Approach
N/A
User stories
N/A
Release note
N/A
Documentation
N/A
Training
N/A
Certification
N/A
Marketing
N/A
Automation tests
N/A
Security checks

Followed secure coding standards in http://wso2.com/technical-reports/wso2-secure-engineering-guidelines? yes
Ran FindSecurityBugs plugin and verified report? no
Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? yes

Samples
N/A
Related PRs
N/A
Migrations (if applicable)
N/A
Test environment
JDK 1.8, Ubuntu 18.04
Learning
N/A

We have created a github issue on the bad sad error thrown when calling anonymous functions within log:printDebug(). Once this issue has been fixed we should reapply the changes in the following commit.


Add support for asymmetric keys to the transit client

Currently the read and export functions for the transit client do not support asymmetric keypairs.
The read response fails to deserialize, as the response differs for symmetric vs asymmetric keys.
Asymmetric read response:
// vault@926ee8c21172:/$ curl -XGET --insecure --silent -H "X-Vault-Token: $VAULT_TOKEN" $VAULT_ADDR/v1/transit/keys/my-new-key
{
    "request_id": "b59d5612-b16f-8742-641c-32e29943433f",
    "lease_id": "",
    "renewable": false,
    "lease_duration": 0,
    "data": {
        "allow_plaintext_backup": false,
        "auto_rotate_period": 0,
        "deletion_allowed": false,
        "derived": false,
        "exportable": false,
        "imported_key": false,
        "keys": {
            "1": {
                "creation_time": "2024-05-10T13:36:49.809157592Z",
                "name": "rsa-2048",
                "public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA01QgwZl/tD7cWZl1NPQ2\nG8+cvI6KkF+wB94xfatdKJ07Ga0bsqYaeE98ZUZU7amRH9Kmdz/4Cu9xXdwlosSS\ntedXfRT8zcWpqEUpV4c4/lT/ox6W67KW2l44liiVt2f9PmviRoYclNWUJa6X+ZCU\n68p/Rd9RSb/xBsywTb8uJN1Q1cZM2JbKhWnaLa7jPsXG9hvnxJ2QFuN3+iZ2OCff\nCjhl0Anumc7lL6wEU/Yd1WuX+5afcHaGttHkWAasrhq3KFHhXlwf4+jrJ5C+aOfb\nevJgGUYjXgf4buV3sPFVmnhvyiyyEV/CysNbXx3KrI/OGgf7HQ+f3+hnpomo8lhd\nwwIDAQAB\n-----END PUBLIC KEY-----\n"
            },
            "2": {
                "creation_time": "2024-05-10T13:36:49.878041842Z",
                "name": "rsa-2048",
                "public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7Ttq3kD0Tev7uWnupVGS\neGl4IURKqiUpoPKdevpnYTfuKt/MVP9Ej1Qz7XOP3q6mC3Vb0mSK+6FNjWNakd7D\nQecJwVFuZXp4lF8uzTF5xXFiPiiw5WMS7v7oNmzTE15Msse1yLHcxQGveeRmrl1L\nTYzcLHb705AzgeXoHqLNNWfTC72fqlPhMvOIcWyWOatz/Dp9ukfcR7HAmxhlpluY\n8e+lift8xah4uQFFDuIwXBQ7f5G8+j9RKMyWjA8pv/pY12jDl/vOi6V2b5YJvJie\nVV9gNa1+9JjamG1bsmHYhRIK0rBTewdvD3Tyg+T8Yl5HQNqkIvdwaBZ/RIc+PVeI\ndwIDAQAB\n-----END PUBLIC KEY-----\n"
            },
            "3": {
                "creation_time": "2024-05-10T13:36:49.958724342Z",
                "name": "rsa-2048",
                "public_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5FQYHEs8U1QsnkTMDrB\n6MfpGK1eVdS84FepYyvpA//suDbJGS9l6XP333wuebwoTL42B5qiZ1tudbIeOWaK\nBDQ5dfjbjRB87k/h4nuQ2DNEUwhgVPjxS3XEocefVWxCfmwQqTjSvhVX2l3DmWiE\n1b/vgikBcYxkqTDTUytuN+IbvZmkFzcM+20UaemRQ5VeNP2MEjZsX4cBATFMkC6k\nYoXb3r+SeKd5JDp/qCSUeabkaxBoV1MprXCy8sEgxSEn/1SGOlVQvB9COQQ/Y/bq\nHQUNGKgrQWGXh4W+Uz4C/GIsKosVuTcGV/o/eONg5uft958NTa1vf93XaKpLOlbw\nOQIDAQAB\n-----END PUBLIC KEY-----\n"
            }
        },
        "latest_version": 3,
        "min_available_version": 0,
        "min_decryption_version": 1,
        "min_encryption_version": 0,
        "name": "my-new-key",
        "supports_decryption": true,
        "supports_derivation": false,
        "supports_encryption": true,
        "supports_signing": true,
        "type": "rsa-2048"
    },
    "wrap_info": null,
    "warnings": null,
    "auth": null
}

This does not follow the "{key_id}": {unix_timestamp} format that symmetric keys use, and hence does not deserialize.
A similar issue for the export route exists, where the only supported key types are:
pub enum ExportKeyType {
    EncryptionKey,
    SigningKey,
    HmacKey,
}

Where PublicKey is omitted.
It would be nice to support asymmetric keys; I will probably start working on some basic support in a fork, and see how I get along.

This commit fixes my initial problem of not being able to deserialize the public key data from the response:
https://github.com/MattDavis00/vaultrs/commit/253523b888636fe4674c591988eb46cfc9def7fc

Can you please add a pull request with the commit?


Investigate using connection handlers instead of SignalR hubs for interactive Razor Components

I've written up some notes here: https://gist.github.com/rynowak/c78a24a1ccf1f92369a548a15fc32f2f

Investigation done. No action for now.


How to get uptime robot ID?

I see that the URI for the uptime of badgen-service is

https://badgen.net/uptime-robot/day/m780731617-a9e038618dc1aee36a44c4af

How to find the ID at the end of the URI ? I cannot find it from the stats page, which is https://stats.uptimerobot.com/z6nqBfYGB
Thanks for your help

It's not so intuitive, you can go to "My Settings -> Monitor-Specific API Keys", search for a monitor, then create an api key for that monitor.

Thanks a lot. :+1:
I think it would be nice to have a question mark icon with a tooltip on the examples page

Yup, may need a doc page like https://badgen.net/docs/packagephobia

All right, I'll write one 📖


Play dialogues BEFORE AND AFTER cutscene

Describe your problem here.
I want to play 2 different dialogues, the first one before the cinematic and the second one once the cutscene is done, but I can't find a way to do it
Can someone help me with this?
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

This is all I can think of
local allowCountdown = false;
function onStartCountdown()
    if isStoryMode and not allowCountdown and not seenCutscene then
        startVideo('name');
        runTimer('dialogue' videoLength+0.8);
        allowCountdown = true;
        return Function_Stop
    end
end
function onTimerCompleted(t)
    if t == 'dialogue' then
        runDialogue('dialogue' 'music')
    end
end


ValueError: could not convert string to float: Long

Tried to open the menu, received this error:
configuration: QGIS 2.16.2
windows 7, 64bit
just one layer:

Layer called cities (attributes: ID, name)

Project was in CRS 4326
Traceback (most recent call last):
File "C:/Users/rikl/.qgis2/python/plugins\OSMtools\osm_tools.py", line 233, in run
self.route_anal.route()
File "C:/Users/rikl/.qgis2/python/plugins\OSMtools\osm_tools_routing.py", line 228, in route
point_list = [float(x) for x in start_features[0].split(",")]
ValueError: could not convert string to float: Long
But I was not able te replicate the error.

If it´s not reproducible, I guess I can close this issue?!


Remove audit logging from POST /serverchecks endpoint

What does this PR (Pull Request) do?
Since this endpoint gets called once a minute per server, this can
seriously spam the audit log.

[x] This PR is not related to any issue

Which Traffic Control components are affected by this PR?

Traffic Ops

What is the best way to verify this PR?
Run the TO API tests, verify they pass, check to make sure no "Server Check was successfully updated" audit logs were created.
If this is a bug fix, what versions of Traffic Control are affected?

master
4.1.0-RC0
4.0.0

The following criteria are ALL met by this PR

[x] Minor audit log removal, no tests necessary
[x] Minor audit log removal, no docs necessary
[x] This PR includes an update to CHANGELOG.md
[x] This PR includes any and all required license headers
[x] This PR does not include a database migration
[x] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

Looks good! API tests pass, unit tests pass, and audit logs were not created


STORM-1890: looks like too many calls were moved to getStatic

Reverting some of the changes I made in: https://github.com/apache/storm/pull/1536
What is on master shouldn't break requests, but it is sloppy, so this should clean up. I didn't create a new JIRA but can if appropriate. Will PR for 1.x and 1.0.x

+1


Broken handling of renamed images

Describe the bug
The ArgoCD Image Updater seems to not correctly handle images that have been renamed via newName in the kustomization.yaml.
To Reproduce
ArgoCD application:
# ...
metadata:
  annotations:
    argocd-image-updater.argoproj.io/image-list: example.azurecr.io/example
# ...

deployment.yaml:
# ...
spec:
  template:
    spec:
      containers:
        - name: backend
          image: example.azurecr.io/example-test
# ...

kustomization.yaml:
# ...
images:
  - name: example.azurecr.io/example-test
    newName: example.azurecr.io/example
    newTag: v1.0.0

When pushing a new tag named v1.1.0, I get this:
# ...
images:
  - name: example.azurecr.io/example-test
    newName: example.azurecr.io/example
    newTag: v1.0.0                    # <-- wrong
  - name: example.azurecr.io/example  # <-- wrong
    newTag: v1.1.0                    # <-- wrong

Expected behavior
The image updater should check for the "final" image name that is used. So either name or, if available, newName.
# ...
images:
  - name: example.azurecr.io/example-test
    newName: example.azurecr.io/example
    newTag: v1.1.0

Having example.azurecr.io/example in the ArgoCD application, but example.azurecr.io/example-test as the "final" image name in the kustomization.yaml should not be a match.
# ...
images:
  - name: example.azurecr.io/example
    newName: example.azurecr.io/example-test
    newTag: v1.1.0

Additional context
None
Version
v0.11.0
Logs
None

Seems like this can be used as a workaround for the moment 🤔
# ...
images:
  # change `example-test:v1.0.0` to `example:v1.0.0`
  - name: example.azurecr.io/example-test
    newName: example.azurecr.io/example
  # change `example:v1.0.0` to `example:v1.1.0`
  - name: example.azurecr.io/example
    newTag: v1.1.0

You can set a renamed Kustomize image using the annotation argocd-image-updater.argoproj.io/<alias>.kustomize.image_name (refer to https://argocd-image-updater.readthedocs.io/en/stable/configuration/images/#custom-images-with-kustomize).
This works fine with the app source method, and should also work when writing Kustomization files.

Okay, thanks for your answer. Will have a look 😉

Wouldn't it be better to use [...].image-name instead of [...].image_name? 🤔 Using - everywhere, but _ for the image name feels inconsistent.

Why can't we just lookup the image in the list of images by checking name and newName to find out what image needs to be updated? 🤔 Or does the image updater fully replace the list of images when it detects a new version of an image? If so, i would be interested in what happens with image definitions that are NOT managed by the ArgoCD application. For example when I have one image that is managed by me (e.g. for my application) and one generic nginx from Docker hub I don't want to update automatically?

Example:
# ...
  metadata:
    annotations:
      argocd-image-updater.argoproj.io/image-list: example.azurecr.io/example
# ...

# ...
images:
  - name: example.azurecr.io/example
    newTag: v1.0.0
  - name: nginx
    newTag: 1.21

Wouldn't it be better to use [...].image-name instead of [...].image_name? thinking Using - everywhere, but _ for the image name feels inconsistent.

I think it actually is image-name, and that's a typo in the docs (which I c&p'ed into my reply).

Why can't we just lookup the image in the list of images by checking name and newName to find out what image needs to be updated?

If this is possible without side-effects, it would be fine of course. But I wonder, if you have more than one image in your application, how should Image Updater decide which of the entries to update with which new image? E.g. if you have more than one image that is updated to a custom image.


Implement spark run-operations

I've implemented two run-operations which can optimize all delta tables, or compute the column statistics of all tables. Similar to the vacuum operations of redshift.

@jtcohen6 this PR requires the fix I made to get_columns_in_relation:
{% macro spark__get_columns_in_relation(relation) -%}
  {% call statement('get_columns_in_relation', fetch_result=True) %}
      describe {{ relation }}
  {% endcall %}

  {% set columns = [] %}
  {% set vars = {'before_partition_info': True} %}
  {% for row in load_result('get_columns_in_relation').table if vars.before_partition_info %}
    {% if row[0].startswith('#') %}
      {{ vars.update({'before_partition_info': False}) }}
    {% else %}
      {{ columns.append(row) }}
    {% endif %}
  {% endfor %}
  {{ return(sql_convert_columns_in_relation(columns)) }}

{% endmacro %}

But you had another idea to implement this logic right? Without pushing so much logic into jinja.

@NielsZeilemaker This is a great idea, and it has prompted some interesting conversation on our side. I think these macros should live in a Spark-dedicated dbt package, rather than in the dbt-spark plugin itself.
What I'm going to do is create a repository called spark-utils that can be installed as a dbt package, similar to current packages (dbt-utils, redshift). It should contain helpful, reusable macros that are relevant to folks using dbt + Spark. This is exactly how we support Redshift-specific maintenance operations (vacuum + analyze) today.
There are a couple of reasons for preferring this approach:

We can cut releases of spark-utils separate from, and more frequently than, the dbt-spark plugin
Contributors who are comfortable with SQL + Jinja can open PRs in spark-utils without needing to worry about running unit + integration tests for the entire adapter

@jtcohen6 great idea, let me know when I can open a PR in that repo.


Xpath sanitizer

Added XPath Sanitizer + simple test case

@SyrasX Sorry for the long wait, I have been quite busy finishing up some larger refactorings and feature additions. I will have to brush up my knowledge of XPath and XML in general for a proper review. I hope to get to that by next week.

@fmeum No worries take as much time as you need. Maybe some additional info:
The current approch will not detect an injection if quotation marks in input are sanitized but the programm allows the input to directly build a querry instead of using somethin like this "//input[@id='firstName']". I personnaly would rate it rather unlikely.
The original plan was to use the Xpath.compile() function to check  for correct syntax in a similar way to the SQL Injection Sanitizer. I just fear that since the XPathExpressionException  is thrown because of reason not strictly releted to syntax, that we would report all the normally catched  and handled exceptions without them being an injection.

You probably have to rebase on the latest main version and resolve the conflict to trigger a new pipeline run.

You probably have to rebase on the latest main version and resolve the conflict to trigger a new pipeline run.

I don't think I can even trigger a pipeline run myself. Also getting to run the format.sh correctly last time took some time, so I just hope it's fine. If not please just run it yourself.

@SyrasX Pipeline runs now :).

Done. Does it work now @bertschneider ?

Merged. Thx again for the PR and your patience.


[bn] Localize container-image.md

Signed-off-by: Md. Mahadi Hassan Riyadh<EMAIL_ADDRESS>Localizes content/bn/container-image.md to Bengali
This is an initial PR as may need some improvements!
Tracking issue: https://github.com/cncf/glossary/issues/410

@mitul3737 I have checked and tried to update all the issues, kindly please check.


deps: bump NRT dependencies to v0.1.2.

Bump NRT api to the latest release v0.1.2

LGTM.
Is there any new data wrt. previous versions we should consider providing ?

LGTM.
Is there any new data wrt. previous versions we should consider providing ?

I believe (according to the PRs that went in) no.


Items extracted from a run-through raid are tagged Found in Raid

Should not be FiR

Originally written by chomp

Fixed with: https://github.com/sp-tarkov/server/commit/171fdfd6dde90dd33612e912f83ae074db9e9c5a

Originally written by chomp


snphost ok mistakenly report RMP as UNINIT with newest firmware

AMD has rolled out new firmware in light of the BadRAM attack going public. (AMD Security Bulletin). The new firmware (Milan 1.55.22, Genoa 1.55.38) changes the STRUCT_PLATFORM_STATUS struct, namely using bit 1 to set the ALIAS_CHECK_COMPLETE flag in the same byte (offset 03h) as the IS_RMP_INIT flag on bit 0.
Currently, snphost ok (/src/ok.rs) checks the entire byte by comparing it to 1 on line 818. With the firmware changes this now needs to either be handled on a bit by bit basis or the comparison value needs to be adjusted to e.g. 3, which would result in folding the alias check into the RMP init check from the perspective of snphost ok.

Thanks, we're discussing this in the sev library now. We'll push a fix.

@salzg I don't have access to this updated firmware. Can you test with #109?

Thanks, I will test tomorrow!

snphost ok now successfully reports "RMP INIT: RMP IS INIT". Checked on fw version 24 (Milan).
As a sidenote: The alias check remains unqueried. I do not know whether the AMD FW would report INIT also as failed if the alias check was not successful and unfortunately, I am currently not in a position to force a situation with aliasing. If INIT is not reported as failed, if the aliasing check is not successful, this would require separate handling by snphost ok as well.

snphost ok now successfully reports "RMP INIT: RMP IS INIT". Checked on fw version 24 (Milan).
As a sidenote: The alias check remains unqueried. I do not know whether the AMD FW would report INIT also as failed if the alias check was not successful and unfortunately, I am currently not in a position to force a situation with aliasing. If INIT is not reported as failed, if the aliasing check is not successful, this would require separate handling by snphost ok as well.

I've added a query for the alias check. Would you mind rebasing that branch and testing again?

The alias check exists and it passes. Again, I am not in a position to force an aliasing problem like demonstrated in BadRAM as I am running a BMS on a CSP (and therefore have no hardware access), so I can't test the opposite case.
You have also added the Trusted I/O check as well and it returns a FAIL. This is more or less to be expected as it was also handled by the same byte and snphost ok previously passed (when it was comparing the entire byte). To my understanding, TIO is still in development and should be therefore considered experimental (the latest TIO firmware preview documentation is v0.70 and was published in March '23). Further, TIO must be set to be enabled in the configuration CMDBUF_SNP_INIT_EX for SNP_INIT_EX. As this is handled by the hypervisor, this either needs to be done manually or (I imagine) needs to happen upstream. Both my BMSs (Ubuntu 24.04 with 6.12-sev-snp-amd64 and RHEL 9 with 6.11.0-rc3-snp-host-85ef1ac03941) do not come with TIO enabled out-of-the-box.


Fix incorrect handling of consumer creation errors

The current handling of exceptions during creation of a consumer is incorrect, since the ExternalView for the segment remains in ERROR state while we specify the IdealState to be OFFLINE. This happens for one replica, while other replicas may consume fine and reach ONLINE state eventually. At that time, however, the particular segment that had problem consuming is not able to transition to ONLINE since a transition from ERROR to ONLINE is not suppored by Helix.
A partition state of ERROR is a special state in Helix. Helix does not work the same way moving from ERROR to other states. Instead, Helix provides an admin API to reset the state of a partition from ERROR to its starting state (which in our case is OFFLINE). When this reset API is invoked, a state transition message of ERROR to StartingState is sent to the specific instance that hosts the partition in question. If the participant's currentstate is not ERROR, then this message is discarded automatically (and Pinot will never see it). Otherwise, it is passed on to Pinot and we have a transition from ERROR to OFFLINE.
Tested by manually inserting an exception in the consumer creation code ad observing that externalview changes to ERROR, and then later onto OFFLINE.

Fixes problem in PR #11166

I'm good with the change, and want to start a discussion on how we want to handle consumption error at high level.
Error can occur when:

Consuming segment is created (with state transition)
During consumption, including segment commit (no state transition)
Post segment commit, switching from CONSUMING to ONLINE (with state transition)

Currently:

Server notifies controller when 1 or 2 happens, and controller changes IS to OFFLINE
When 1 or 3 happens, segment moves to ERROR state in EV

The current behavior can leave segment in 3 conditions, and IMO quite hard to manage:

IS: OFFLINE, EV: ERROR
IS: OFFLINE, EV: CONSUMING -> OFFLINE
IS: ONLINE, EV: ERROR

What this PR is trying to fix is when 1 happens: IS: OFFLINE, EV: ERROR -> OFFLINE (by segment reset). A easier way to fix this might be to not throw exception after notifying the controller, and handle 1 & 2 using the same mechanism: IS: OFFLINE, EV: CONSUMING -> OFFLINE. This way we do not need to wait for 30 seconds before issuing the segment reset.
I also want to discuss if we want to mark IS as OFFLINE so that we can auto-recover. If we can make 2 changing EV to ERROR, then we may use segment reset to fix the consumption error (this can also apply to OFFLINE table). This approach has 2 benefits:

More general, and can fix both CONSUMING and ONLINE segments
IS only contains ONLINE/CONSUMING state, which makes other code much error-prune. Contributors usually miss the handling of OFFLINE state in IS because they won't know it can exist

I'm good with the change, and want to start a discussion on how we want to handle consumption error at high level.
Error can occur when:
1. Consuming segment is created (with state transition)

2. During consumption, including segment commit (no state transition)

3. Post segment commit, switching from CONSUMING to ONLINE (with state transition)

Currently:
* Server notifies controller when 1 or 2 happens, and controller changes IS to OFFLINE

* When 1 or 3 happens, segment moves to ERROR state in EV

The current behavior can leave segment in 3 conditions, and IMO quite hard to manage:
1. IS: OFFLINE, EV: ERROR

2. IS: OFFLINE, EV: CONSUMING -> OFFLINE

3. IS: ONLINE, EV: ERROR

What this PR is trying to fix is when 1 happens: IS: OFFLINE, EV: ERROR -> OFFLINE (by segment reset). A easier way to fix this might be to not throw exception after notifying the controller, and handle 1 & 2 using the same mechanism: IS: OFFLINE, EV: CONSUMING -> OFFLINE. This way we do not need to wait for 30 seconds before issuing the segment reset.

Sure, but that could result in queries going to the server when the segment does not exist. The earlier fix did not change the EV to OFFLINE all the time. We found instances when EV was in ERROR state, and the IS was in OFFLINE state.  Anyways, I have added integration tests so that any other fix we adopt can still be tested locally at least.

I also want to discuss if we want to mark IS as OFFLINE so that we can auto-recover. If we can make 2 changing EV to ERROR, then we may use segment reset to fix the consumption error (this can also apply to OFFLINE table). This approach has 2 benefits:
* More general, and can fix both CONSUMING and ONLINE segments

* IS only contains ONLINE/CONSUMING state, which makes other code much error-prune. Contributors usually miss the handling of OFFLINE state in IS because they won't know it can exist

Open to discussions.

Also, @Jackie-Jiang , it used to be the case originally that the consumer was created in the new thread that is spawned. I think @sajjad-moradi  (or, maybe @navina ) moved it to be created in the constructor, which is causing us to handle a new case (I don't remember the reason, but either of them may know). We can also think of moving it back to be created in the consuming thread.


lamp-php8 always restart when defined vhost with SSLEngine on [BUG]

Describe the bug
lamp-php8 always restart when defined vhost with SSLEngine on
which Branch / PHP Version are you using ?
php8
To Reproduce
Steps to reproduce the behavior:
[current directory is in ./docker-compose-lamp]

Go to './config/vhosts'

edit the default.conf with the following:
[note: Replaced all '<VirtualHost ... >' with '[VirtualHost ... ]' respectively as it cannot be displayed correctly in github]
[VirtualHost :80]
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.) https://%{SERVER_NAME}/$1 [R=301,L]
[/VirtualHost]
[VirtualHost *:443]
ServerAdmin webmaster@localhost
DocumentRoot ${APACHE_DOCUMENT_ROOT}
ServerName localhost
SSLEngine on
SSLCertificateFile /var/www/html/localhost.csr
SSLCertificateKeyFile /var/www/html/localhost.key
[/VirtualHost]

go to the directory ./www and generate the csr and key file as below
openssl req -new -newkey rsa:2048 -nodes -out localhost.csr -keyout localhost.key -subj "/C=HK/ST=HongKong/L=HK/O=ASTRI/OU=IT/CN=localhost"

then go back to the docker-compose-lamp directory and issue the command
docker-compose up -d

observe the container status by
docker-compose ps

Expected behavior
https://localhost should be connected without error
Screenshots
browser response :
Unable to connect
Firefox can’t establish a connection to the server at localhost.
The site could be temporarily unavailable or too busy. Try again in a few moments.
If you are unable to load any pages, check your computer’s network connection.
If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.

Desktop (please complete the following information):

OS: Ubuntu 20.04
Browser: firefox
Docker Version:
docker-compose version 1.25.0, build unknown
docker-py version: 4.1.0
CPython version: 3.8.10
OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020

Additional context
Add any other context about the problem here.

It is ok to run in ubuntu and WSL2 environment.
(1) For the cert issue, I have mapped the cert files from host to docker in the docker-compose.yml
(2) For the WSL2 environment, it is related to the directory access right issue. As a quick fix, don't use the file under /mnt/c/Users/.... but move all your files to /home/<user_name>/.... Most of the time that the docker instance "always restarting" is due to the files cannot be read/write by the corresponding docker instance.

Missed a point:
For SSL to be enabled in php, one need to go to the corresponding ./bin/<php_version>/Dockerfile to add the "ssl" module during the startup process. For details, pls check the apache2/php manual or google.


Ingest code samples into JavaDoc from compilable source code

Use the following tool to ingest code samples directly from the samples directory in our client library directories into the generated JavaDoc. Use the -snippetpath flag to specify the location of the sample code. Work with the existing client libraries (key vault and application config) to integrate this.

PR https://github.com/Azure/azure-sdk-for-java/pull/3840 resolves this issue.


langchain:Fix streaming error of TongYi model

Description:
Fix streaming error of TongYi model (make merge_dicts to replace int value)
Issue:
When using Tongyi or ChatTongyi with streaming in the use case,the following error occured:
TypeError: Additional kwargs key output_tokens already exists in left dict and value has unsupported type <class 'int'>

These are values need to be merged when the error occurred:
k = 'output_tokens'
left = {'input_tokens': 530, 'output_tokens': 2, 'total_tokens': 532}
merged = {'input_tokens': 530, 'output_tokens': 2, 'total_tokens': 532}
right = {'input_tokens': 530, 'output_tokens': 13, 'total_tokens': 543}
v = 13

The first out put has 2 tokens, the second has eleven. Seems the int should be replaced with new value?
{'answer': 'Task decomposition'}
{'answer': ' is the process of breaking down a complex task into smaller'}

Original PR:
#16580

Dependencies:
libs/core/langchain_core/utils/_merge.py

this doesn't generalize to all ints in all dicts. the solution shoudl be specific to the TongYi model (either turn tokens into a list or drop it after the first chunk)

closing per ^

This fix would also work: modify the _generation_from_qwen_resp method in langchain_community.llms.tongyi:
    @staticmethod
    def _generation_from_qwen_resp(resp: Any) -> Dict[str, Any]:
        # 将token_usage的值转换为描述性字符串
        token_usage_str = ", ".join(f"{k}: {v}" for k, v in resp["usage"].items())
        return dict(
            text=resp["output"]["text"],
            generation_info=dict(
                finish_reason=resp["output"]["finish_reason"],
                request_id=resp["request_id"],
                # token_usage=dict(resp["usage"]),
                # 使用字符串代替原先的字典，以避免合并时的类型冲突
                token_usage=token_usage_str,
            ),
        )


winshow() not implemented

http://www.byond.com/docs/ref/#/proc/winshow

Implemented by https://github.com/OpenDreamProject/OpenDream/pull/1114


Protobuf Java and Kotlin code generation

As requested in https://github.com/chirpstack/chirpstack/issues/3, here are two commits that adds java and kotlin code generation for the protobuf api.
IMPORTANT! Please note that the code generation for Kotlin will not work unless this line in integration.proto is modified:
option java_package = "io.chirpstack.api.as.integration";
The reason for this is that the generated code will contain lines like package io.chirpstack.api.as.integration;, which does not compile in Kotlin since as is a Kotlin keyword.
To make this work as will need to be replaced with something else.

Do we need to include all the gradle scripts and binaries (.jar files)? I believe what is still missing is a Dockerfile-... for Java. I would propose that everything that is not related to generating the ChirpStack API is moved into this container. E.g. in the end anybody with a Docker (Compose) environment, should be able to run cd api && make.

Oh, right. I didn't realize each client api was integrated in a larger environment. I thought each api client directory lived separately in the repository. I will make the necessary modifications to integrate it with docker.

And to answer your question about the gradle scripts and .jar file: Using the gradle wrapper is the recommended way to do gradle builds, as mentioned here https://docs.gradle.org/current/userguide/gradle_wrapper.html

The recommended way to execute any Gradle build is with the help of the Gradle Wrapper (in short just “Wrapper”). The Wrapper is a script that invokes a declared version of Gradle, downloading it beforehand if necessary. As a result, developers can get up and running with a Gradle project quickly without having to follow manual installation processes saving your company time and money.

I have added the required Docker files and config to be able to build the java and kotlin clients using Docker (Compose).

And to answer your question about the gradle scripts and .jar file: Using the gradle wrapper is the recommended way to do gradle builds, as mentioned here https://docs.gradle.org/current/userguide/gradle_wrapper.html

This I understand. But to me these are like dependencies I would rather exclude from git, as far as I know, these files can be obtained using wget or curl and do not require any modifications. For example the Python Makefile has this to install dependencies https://github.com/chirpstack/chirpstack/blob/master/api/python/Makefile#L9.
Could we do the same? Either add them to the Makefiles or include these in the Dockerfile-...? That would make it also very explicit where these files are coming from, and it makes it also easier to update these in the future.

@brocaar
I certainly understand your reluctance to add binaries to the version control system, but in the case of gradle that is the expected thing to do, as mentioned here:

To make the Wrapper files available to other developers and execution environments you’ll need to check them into version control. All Wrapper files including the JAR file are very small in size. Adding the JAR file to version control is expected. Some organizations do not allow projects to submit binary files to version control. At the moment there are no alternative options to the approach.

This is like the chicken and the egg problem. If we want the users to be able to bootstrap the build without having to use docker then we could include the gradle wrapper. If not I guess we can use a gradle docker image to do the build. Of course, as you mention, it would also be possible to wget the gradle wrapper or something, but since that is not the expected thing to do there is no official (trusted) channel from which to download the gradle wrapper.
Since you are the maintainer I defer to your decision. Just let me know what you want.

I certainly understand your reluctance to add binaries to the version control system, but in the case of gradle that is the expected thing to do, as mentioned here:

Ah okay, I didn't know that. I thought you obtained it using wget ..... I understand better now and I agree that it is better to leave it like this.

IMPORTANT! Please note that the code generation for Kotlin will not work unless this line in integration.proto is modified:
option java_package = "io.chirpstack.api.as.integration";

The reason for this is that the generated code will contain lines like package io.chirpstack.api.as.integration;, which does not compile in Kotlin since as is a Kotlin keyword.

To make this work as will need to be replaced with something else.

@sbra Would you like to replace this with io.chirpstack.api.integration. I the .as. is a leftover from the v3 to v4 migration and it should have been removed :-)

@brocaar: Certainly. I have added a commit with the requested change.

@brocaar: Just a heads up. After the changes to the master branch the Java and Kotlin clients no longer generate correctly due to api/request_log.proto having a java_outer_classname RequestLog which is the same as the message.
This causes the following error message:
java_out: api/request_log.proto: api/request_log.proto: Cannot generate Java output because the file's outer class name, "RequestLog", matches the name of one of the types declared inside it.  Please either rename the type or use the java_outer_classname option to specify a different outer class name for the .proto file.
The java_outer_classname will have to be changed.

Thanks @sbra, I have just merged your changes :-)


Update monix dependency to 3.0.0-RC3

FYI, its not binary compatible. Can we get a release after its merged?

Released in 1.6.0: https://github.com/softwaremill/sttp/releases/tag/v1.6.0


Add a READMEmd

We need a README which introduces new users to our project, and tells them everything they should know before using it. Database version requirements, database configuration requirements (vector memory space setting?), what schema objects we create and leave behind in their database,

Readme added


This was autogenerated\n\nContact @sodre if it does not automerge

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Upgrade pulumi-terraform-bridge to v3.83.0

This PR was generated via $ upgrade-provider pulumiverse/pulumi-unifi --kind=bridge --target-bridge-version=latest.

Updating Java Gen version from 0.0.0 to 0.12.0.
Upgrading pulumi-terraform-bridge from v3.82.0 to v3.83.0.

@aharter the upgrade-provider tool doesn't update the Go workspace checksum file (go.work.sum). It was advised by my engineering colleagues to remove this from the Git setup, which is implemented by some additional manual Git commits in this PR.


Documenting a Node.js REST API using swagger

Proposed title of article
Documenting a Node.js REST API using swagger
Introduction paragraph (2-3 paragraphs):
API (Application Programming Interface) documentation has vast advantages including improving the experience for developers consuming it. Swagger is a software tool used in designing, building, documenting, and using REST (Representational State Transfer) API's. In this article we will walk through the steps of documenting a Node.js REST API.
Key takeaways:

How to set up a REST API in Node.js
How to configure swagger in a Node.js REST API
How to document a Node.js REST API using swagger

References:

https://medium.com/swlh/automatic-api-documentation-in-node-js-using-swagger-dd1ab3c78284
https://medium.com/wolox/documenting-a-nodejs-rest-api-with-openapi-3-swagger-5deee9f50420

@mwangiKibui  seems like a very helpful article.
I can't find any overlap (but if we could do a double check with any incoming articles and/or published articles) for potential overlap - or to see where we could build upon.
If there is a specific type of app you will create for the tutorial - please place that somehow in the title as well. 👍
approved

@mwangiKibui  Please speak with @marienjus to see how your two articles will not overlap much 👍

@hectorkambow @Qodestackr is working with GraphQl API am working with REST API. Also we are using two different JavaScript frameworks.  To avoid the overlap I will include the framework in the title just like @Qodestackr had done.