Add IncludeIf in TinyHelpers/Extensions /CollectionExtensions.cs

Is it possible to have in TinyHelpers/Extensions/CollectionExtensions.cs
not only WhereIf but also IncludeIf?
Like:
public static IQueryable IncludeIf<TEntity, TProperty>(
this IQueryable source, bool condition,
Expression<Func<TEntity, TProperty>> navigationPropertyPath)
where TEntity : class
=> condition ? source.Include(navigationPropertyPath) : source;
and also for IEnumerable (like the same)?
Thanks

@max1997dc has anticipated me.
It should be great to have a method for "ThenInclude" as well
Thanks

Then Include and ThenInclude extension methods are provided by Entity Framework Core, so IncludeIf and ThenIncludeIf should be added to this library. Does this make sense for you?

Yes please

Yes @marcominerva,  these two features can reduce a lot of conditional code while composing EF queries

@DarioN1 There is an issue with these new extension methods. The signature of Include is the following:
public static IIncludableQueryable<TEntity, TProperty> Include<TEntity, TProperty>(
    this IQueryable<TEntity> source,
    Expression<Func<TEntity, TProperty>> navigationPropertyPath)
    where TEntity : class

So, the return type is an IIncludableQueryable that contains the type of the navigation property. However, with the IncludeIf method, the actual return type will depend on the condition, so it can't be an IIncludableQueryable  (because the navigation property may have not been included). This means that IncludeIf cannot be chained to ThenInclude.


Instruction-tuning Support

What does this PR do?
This PR adds support for instruction tuning, by

Introducing a new entry point data apply_chat_template --config_file_path config_files/training/config_lorem_ipsum_sft.yaml which takes a instruction-dataset and converts the structured conversations into a single prompt by applying the chat template given as jinja2 template string within the config. Here, we also include indicator tokens to mark what the system utterances are.
In modalities training entry point you can now wrap the collate function by a "LossMaskingCollateFn", which first executes the wrapped collate function and then applies loss masking on each target as specified in the config. This allows to only include tokens that are part of the assistant answer into the loss, so that the model learns to act as helpful assistant.
Modifiy the PackedMemMapDatasetContinuous to allow not to re-use the last target token, as this is not wanted in instruction-tuning where we apply truncation and packing.

General Changes

New entry point data apply_chat_template --config_file_path config_files/training/config_lorem_ipsum_sft.yaml to convert structured JSONL into JSONL with a the new attribute "chat", i.e. the prompt were the chat template was applied
A wrapper for collate functions to include tokens which appear between indicator tokens
A new parameter for the PackedMemMapDatasetContinuous to allow not to re-use the last target token

Breaking Changes

None, as the default value for PackedMemMapDatasetContinuous.reuse_last_target is True

Checklist before submitting final PR

[X] My PR is minimal and addresses one issue in isolation
[X] I have merged the latest version of the target branch into this feature branch
[X] I have reviewed my own code w.r.t. correct implementation, missing type hints, proper documentation, etc.
[X] I have run a sample config for model training
[X] I have checked that all tests run through (python tests/tests.py)

Please merge the fix for main, so that the tests run all through in main first, by merging in PR #195

Added e2e test and a new feature request #210


shiny server R code is poorly organized

Refactor it as soon as possible to avoid immense sadness later.

It is later and there isn't immense sadness. I think it's okay to close this.


Overwrite artifact_passed_as_metadata filler type with actual Semantic Types

Because Artifacts passed as metadata don't have Semantic Type information associated with them in a Result's action.yaml, ProvDAGs currently represent these with the "filler type" artifact_passed_as_metadata.
This consistent filler type, along with captured UUIDs, should allow ProvDAG to find/replace the filler with the artifact's original Semantic Type, if that's the right choice. Alternately, we could write this as Metadata. Very open to feedback on what makes the most sense.

The test in d1d6e4e shows that, because artifacts passed as metadata still bring their provenance with them, this issue is moot. A ProvNode may have _parents with the dummy type, but "true" semantic type information exists in the nodes with those parent UUIDs and those nodes are created prior to the creation of edges, so the ProvDAG constructor will always link a node to "real" parent nodes, and the dummy type value is not propagated up to ProvDAG.


Bugfix/#599 game path not recognized

This fixes the file resolving issue of #599 (missing '/bin' in the path) and also brings up a warning pop-up with a file chooser action on an undetected game path.
Additionally any events that are posted to the guava eventbus but not being handled are logged at WARN level now.

By the way @NiklasKopp we are often hanging around in Discord if you have question or whatever. We are mostly in the Developer channel... It is really very helpful sometimes https://discord.gg/Yk55DV

@axel1200 just did that ;) doesn't look like I can join the developer channel just like that though (Niklas # 4882)

@NiklasKopp ping me when you're online so I can give you permission


🐛 Server Error when updating argument

I'm getting a server error in a JavaScript popup window when trying to edit and save the argument.
Steps to reproduce:

Go to https://rfc.stitcher.io/rfc/interface-default-methods
Click the button with the ellipsis icon on your argument if you have one in the top-right corner (if not, create one)
Click "Edit" from a dropdown menu (popup)
Click a green button "Save"

Here is what I see:

I cannot reproduce this error on localhost

@SerhiiCho, so this happens only on https://rfc.stitcher.io/? I tried to reproduce it locally but I wasn't able to do so.

so this happens only on https://rfc.stitcher.io/?

Yes @vsergiu93, only on stitcher.io. @brendt might be able to just look in the log file when he's available and fix it

I'll have to look into this on Monday, thanks for the detailed steps!

So, I did few tests=)

This only happens to default methods rfc, other 2 Rfcs work fine
Not only argument edit returns 500, but upvoting/downvoting too

Ok, so this is the error 😅
[2023-08-29 11:21:54] production.ERROR: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1343488 bytes) {"userId":1,"exception":"[object] (Symfony\\Component\\ErrorHandler\\Error\\FatalError(code: 0): Allowed memory size of 134217728 bytes exhausted (tried to allocate 1343488 bytes) at /home/forge/rfc.stitcher.io/releases/20230829-111518/vendor/laravel/framework/src/Illuminate/Database/Connection.php:423)
[stacktrace]
#0 {main}
"}

Not much info :/ Although I think I can guess what's going on: we're loading all arguments of that RFC in memory, together with a bunch of other relations. It only happens on this RFC, because this one has much more arguments. It also explains why local works fine (no memory limits).
I'll work on a fix

Actually, I would like some input on the best approach before diving into code:
We have 30MB of memory on this page:

All subsequent livewire requests take 10-11MB (per request)

As you can see, we only have 20 queries, that's because everything is properly eager-loaded so we don't run into performance issues. However, because of that, we run into memory issues 😅
A couple of possible fixes:

Increase the memory limit on the server: the easiest fix, but it's more like applying a bandaid, I'd like to make the page more performant overall anyway
Add pagination for arguments in the Livewire component?
Extract each argument to a separate Livewire component so that doesn't have to refresh the whole list (this probably won't work, I remember trying this a while ago, it's a mess)
Try to optimise model usage so that we don't have to load deeply nested relations
Other ideas?

I think the best approach for now is pagination, but would love some input

Pagination is necessary here, but we can also optimize model usage

It's fixed thanks to pagination.


Fix conditional object activation making everything viewable when loa…

Bug fixes

Fix the world being visible when loading if an object had conditional activation on it

Fixed https://github.com/Outer-Wilds-New-Horizons/new-horizons/issues/883 too seemingly


First tmule file for basic bacchus simulation

I took inspiration from Rasberry to set up a very minimum tmule config file for all the moving parts. In particular, it gets handy for launching the lasers_merger which needs to run after the topics he subscribes have already been instantiated.
In the long term, the current main launch file can be put on diet and make the code more modular ;)

I can close this PR before merging because addressed by #24


Make Issue.body a (String | None)

The issue body can be null. E.g. for issue: https://github.com/ponylang/rfcs/197
This failed in extracting data from the json response.

Your example link is coming back a 404 for me

190 in that repo is a PR and has a different type in this library. Did you mean a different number?

The custom ponyc compilation change is unrelated. Please remove from the PR.

The link is fixed. It is a PR, but the behaviour is similar for issues.
FYI: The github openapi spec lists this field as nullable: https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.yaml#L42858 I found the official docs to be quite unprecise sometimes.

See #4 @mfelsche. I'm thinking in the case of body that "" as a default rather than None would be better for ergonomics without impacting on actual usage with GH. Can we discuss the correct approach more there or on Zulip?

I changed my mind on this and decided that yes @mfelsche, you had the correct idea in the beginning.
Joe and I discussed during sync and agreed that this is the right way to address for now as we are doing this at a very low-level and that if we had a higher-level API that setting "" as the default for null on a String could make sense.


Post request - Connection website

Hi,
When i try to connect at this website : http://ascalion.eu i'm not connected.
Username : fortest1
password : fortest1
My code : http://paste.isomorphis.me/EmB&ln
Steps are :

post requests with data to ascalion.eu/connexion
get requests to check if my connection is etablished, but in response content i havent "connected as fortest1", normally it was printed when i'm connected (via web browser)

I dont know why it doesnt work..
Is this a bug ?
Ps : the username and password are for testing, you can use them without any problems.
Regards,

It appears this site is requiring a captcha to visit it.
cloudflare-scrape is unable to bypass Cloudflare's captchas. It only bypasses Cloudflare's default anti-bot/anti-scraping protection.

When i made a classical visit in this website with my browser, i never put any captcha, what do you say for "all cookies", do you speak about first post response headers ? (if yes, there are 2 set cookies and i dont know why).
Can you be more explicit to solve my problems ?


fix examples to point to leaflet 1.0.0-beta ..

So the old path
<script src="../bower_components/leaflet/dist/leaflet.js"></script> is now at
<script src="../bower_components/leaflet/leaflet.js"></script>
as well as the css.
<link rel="stylesheet" href="../bower_components/leaflet/dist/leaflet.css" />
<link rel="stylesheet" href="../bower_components/leaflet/leaflet.css" />
This might be reverted to dist depending on what leaflet does about the bower situation. See #851

This issue was moved to angular-ui/ui-leaflet#123

I'm going to rework&redesign angular-leaflet-directive to be compatible with Leaflet v1.0. It will mantain almost all its functionality, and will be compatible with the current features of the directive, but I must start from a fresh point, so I'm going to close this issue. If you think it must be worked with the new version, please reopen it.


[Bug report]: Assemblys have disappeared from the wallet and I can't do staking either.

Platform
Desktop
Version
1.6.4
Description
In my Firefly wallet, I don't see the accumulated Assemblies and it is not allowing me to start the third phase of IOTA staking per Assembly either.
Expected behaviour
In the portfolio I should be able to see my IOTAS as well as the Shimmer and Assemblys.
It should also be possible to start the new phase of staking of IOTAs per Assemblys.
Actual behaviour
When I log in to Firefly, I get an alert, which says "Something went wrong", but it doesn't let me log in, it doesn't look like my usual wallet information and the accumulated Assemblys don't appear either.
On the other hand, when I go to the Staking option, it does not allow me to do the new phase of staking the Iotas for Assemblys.
Can the issue reliably be reproduced?
Yes
Steps to reproduce the issue

Access to Firefly
"Something went wrong" alert
No portfolio information, only IOTAS and Shimmer appear, but no information on transactions or portfolio activity.

Operating System
Windows
Diagnostics
Versión 1.6.4
Idioma: es-ES
Divisa: USD
Selección de nodo: Automática
Plataforma: win32
Versión de la plataforma: 10.0.19044
Arquitectura de la plataforma: x64
Número de CPU: 8
Memoria Total: 15761.4 MB
Memoria Libre: 9078.2 MB

Developer Profile
No
Profile Type
Hardware (Ledger)
Staking
Previously staked
Crash Status
None of the above
Error Messages
"Something went wrong"
Error Logs
No response
Duplicate declaration

[X] I have searched the issues tracker this issue and there is none

Code of Conduct

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

Have you connected your ledger device? Please connect your ledger device and run the balance finder in the settings. I´m going to close this issue as it is a duplicate to https://github.com/iotaledger/firefly/issues/4016. Feel free to continue there if you have further problems.

Hi Mike,
Thanks for your response
Sorry I didn't explain correctly, I don't have the wallet in a ledger, I have it directly in the web version of Firefly.
Could it be a problem with the node?
Regards

Have you already tried to change the node? It seems that Firefly can't connect to a node. Do you have a special firewall or a VPN or something like that?

Yes I have switched to manual node and put the node https://iotanode.eu:444, but it doesn´t work either.
And I am not connected to any VPN or special firewall.

Can you try to change the node and restart Firefly? Do you use a home WIFI or a public one like a hotel?

I just tried changing nodes and restarted Firefly, but it still doesn't work.
The curious thing is that if I try to see the node information I get an error message and it won't let me see it.
I'm with the WIfi at home

Can you open the error log of Firefly? You find it in the upper left menu

yes, but the message that appears is "The error log is empty".
Although every time I log into Firefly, I get the message "Something went wrong".

Can you try to open the address https://chrysalis-nodes.iota.org/api/v1/info in your browser? This is a info endpoint of the node. Let´s see if you can connect to the node.

I can see the node info, in the bowser, And I can select the node as priority node, but it seems that doesn´t work, and if I try to see the node info in Firefly I get the error message

Okay. Then let´s try to recover your profile. Do you have a stronghold backup? Try to create a new profile and use the option "migrate or restore wallet". In this process you can restore your wallet.

OK, I don´t have a stronghold backup, but I will try to restore the wallet

Ok. The advantage of the stronghold backup is that your whole transaction history will be restored. With the 24 words only the transactions which have not yet been pruned by the node can be restored.

Understood,
I have just restored the wallet, and the Assemblies now appear in my assets. But I still don't see the staking option.

The message on Staking option is "No staking events detected"

Then maybe the node doesn´t support it. Can you try to use an official iota node by choosing manual?

yes I am using the official node https://chrysalis-nodes.iota.org, (selecting manually) but the staking doesn´t work

With the tanglebay node it is the same? Then something blocks the requests on your side.

I just tried again with the node https://iotanode.eu:444 and it works!! I can start the new staking!
Thanks a lot for your help


Print a list of all files and their owners

Is there any way to print a list of all the files and which owners are associated with them?  This output would be useful for additional scripting.  Hoping there might already be something available, but not seeing anything in the documentation.

Knowing which files are owned by who could be leveraged in build pipelines for alerting, etc.

You can use https://github.com/hmarr/codeowners instead. Here's a small script i wrote using it (however I since implemented that scripts functionality with a PR instead: #222)


Supporting alternative msgpack implementations

ormsgpack is a faster alternative to python-msgpack and since speed is critical/required in Web/ASGI application I think it would be nice to have support for using ormsgpack!
My current idea is to provide ormsgpack as an extra/optional dependency to msgpack-asgi (installed like pip install msgpack-asgi[ormsgpack]?) and provide two more classes to the public API ORMessagePackMiddleware and ORMessagePackResponse if ormsgpack can be imported.
I will happily create a PR and start working on this feature if this is something can be added to the project! :smile:

Hi @FaresAhmedb,
Thanks for opening this! I'm actually quite curious about measuring performance improvements we'd get from this extra alternative as well. In the past this library was marked as limited by some commentators because it saves bandwidth (thanks to msgpack) by inducing a greater burden on the CPU due to msgpack-JSON serde, which some people found too big in some situations (I'd need to dig up those discussions tho). So a "faster on the CPU" option would definitely be interesting to explore.
I think a pip extra sounds fair, but that and the wording actually depends on a broader choice:
There's a few options on dependency detection strategies we can take, with different trade offs and assumptions. I'll list them below. What do you think is most appropriate given your knowledge of the ormsgpack library?
Options:

Implicit: check whether ormsgpack is installed, and use it if so. Simple and transparent. There's a risk of using the wrong library, but given the stakes that might not actually be a problem?
Explicit: require users to toggle an explicit flag somewhere. Would be appropriate if the alternative is somewhat experimental; if ormsgpack is stable and well that seems too
Switch: switch to using ormsgpack altogether, drop msgpack-python. Only works if there's absolutely no compatibility issue possible compared to the Pure Python version.

I'm actually quite curious about measuring performance improvements we'd get from this extra alternative as well.

The ormsgpack README says that it serializes faster than msgpack-python and deserializes a bit slower (Just tested it. msgpack-python deserializes much faster) so I think a performance boost would only be noticed in responses. Maybe we can make a special middleware which benefits from both worlds?

There's a few options on dependency detection strategies we can take, with different trade offs and assumptions. I'll list them below. What do you think is most appropriate given your knowledge of the ormsgpack library?

I'm in favor of the Explicit option; It seems to not bring any issues a long the way and perfectly follows python's philosophy...

Explicit is better than implicit.
- The Zen of Python

This is the problems I think the other options could bring:

Implicit: ...

Assuming the user wants to use ormsgpack can be the undesired behavior for some users but it will be as easy as doing this:
try:
    import ormsgpack as msgpack
except ImportError:
    import msgpack

Direct change: ...

This would mean dropping support for PyPy (also Python2 but won't be the case since it doesn't support asgi/async anyway).

@FaresAhmedb Thanks. Given the "I'm fine-tuning performance" situation I assume most users would be in if they're interesting in fiddling with libraries like this, I wonder about another alternative: a public "backend" interface.
class Packer(Protocol):
    def packb(self, obj: Any) -> bytes: ...
    def unpackb(self, data: bytes) -> Any: ...

We'd add a default DefaultPacker for our current behavior, and advanced users could do all sorts of customized things, e.g. what you suggested, ormsgpack for serialization vs msgpack for deserialization:
import ormsgpack
import msgpack
from msgpack_asgi import MessagePackMiddleware

class OptimizedPacker:
    def packb(self, obj: Any) -> bytes:
        option = ormsgpack.OPT_NAIVE_UTC | ormsgpack.OPT_SERIALIZE_NUMPY
        return ormsgpack.packb(obj, option=option)

    def unpackb(self, data: bytes) -> Any:
        return msgpack.unpackb(data)

Usage:
app = MessagePackMiddleware(app, packer=OptimizedPacker())

Thoughts?

Very interesting! I like the latter implementation. Supporting ormsgpack directly into the library wouldn't be needed then. There's also a lot of MessagePack flavors out there like u-msgpack-python (A Pure Python implementation) so that would be definitely a win win for everyone.
But I assume this would be a breaking change, Right?

@FaresAhmedb Nope, as far as I can tell we can make this change in a purely additive manner (merely two new optional arguments, packb=... + unpackb=...), provided we ensure the existing behavior remains in the default case. Right?

@FaresAhmedb I think we're settled on the solution, then. :-) At this point anyone up for it can give it a try!

@florimondmanca Sorry for the late reply, I was busy.
I will open a PR now! :smiley:

@florimondmanca Just opened a pull request at #20 :grinning:

Just stumbled upon this package (from the fast-api docs). I have no stake in this issue, but y'all may be interested in trying out msgspec (https://github.com/jcrist/msgspec), a faster msgpack library that I maintain. I've benchmarked it against both msgpack-python and ormsgpack, and it's generally faster than either of these (up to 4x in some cases) for both encode or decode. That said, since you're already decoding and re-encoding (which comes at a cost), this may not really matter in the scheme of things.
The packb kwarg mentioned above makes sense I think, as it allows different encoding libraries to be used transparently, so no real action item here, just thought I'd bring it up.

Thanks @jcrist, msgpec looks fab. :-) Thanks to #20 (still needs documenting: #21) which got merged recently, the next version of msgpack-asgi will support using msgpec like this, I think?
import msgpec

_enc = msgpec.Encoder()
_dec = msgpec.Decoder()

app = MessagePackMiddleware(..., packb=_enc.encode, unpackb=_dec.decode)

msgpec supports a wide range of type validations which I assume people would be able to support as well, even supporting schema evolution as necessary, all within packb/unpackb. Sounds correct?
If this is all good, that's an interesting case to validate the callable-based design from #20. :-)

I'll close this off since it got resolved in code by #20, we still have #21 tracking the documentation bit.


Create tool to symbolize route frequency using line width

Symbolize transit lines in the map based on frequency of service, a la Jarrett Walker

https://github.com/Esri/public-transit-tools/pull/92
The new line frequency tool in BetterBusBuffers calculates the frequency of service along lines, but it's up to the user to symbolize the results.


Set selection object encoding.

Fixes #319
This PR sets the encoding on the selection object sent with edit events to utf-16.

@metalogical Same issue here as with the Atom plugin re testing.


fix: Add Default implementation for DynamicBoundingVolumeTree

This change is

The problem is that this causes users to add bounds directly to structs, which in general should be avoided.

Why would it force that, the bounds are not in the actual struct?

It's required to derive SystemData.

I guess that's true, I just find it incredibly frustrating when you create an instance of a  type, that works, and then when your want to use it you only get no such function on this type

Updated in accordance with review.

Bors r=torkleyy


Fix installer for Ubuntu 18 and ruby 2.5.1

The installer doesn't work on Ubuntu 18.  It installs its ruby-build, which can't find Ruby 2.5.1.  It also doesn't set up rbenv correctly, which leads quickly to a host of problems.

We fixed this in 75d5a4e.  Closing


Remove CDS_TF_TG_SKIP_ERROR_LOGS_COLORING from docs

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

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

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


Cudnn 5 Support for GRU and LSTM cells

Cudnn 5 now supports GRU and LSTM cells natively, with speedup's of up to 6 times compared to a Cublass implementation of GRU's and LSTMs. IT would be great if Cudarray could support this.
https://devblogs.nvidia.com/parallelforall/optimizing-recurrent-neural-networks-cudnn-5/

For the record, It is possible to build GRU/LSTM with vanilla NumPy/CUDArrray.
You are right, it would be nice to have optimized versions of these functions. Though, I think it is equally important to implement parallel array operations as you discuss in issue #43. This should allow us to take advantage of model parallelism in recurrent networks.

Oh yes, I have implemented GRU/LSTMs with Cudarray and it works quite satisfactory.
I agree with you, parallelization of array ops will be a massive help for LSTM/GRU's. Especially when they are stacked.
Maybe optimized implementations of LSTM/GRU blocks it a too high level of abstraction for Cudarray.

Maybe optimized implementations of LSTM/GRU blocks it a too high level of abstraction for Cudarray.

There is always plenty of room in the cudarray.nnet submodule. :)

But I get your point. Ideally, CUDArray should be easier to extend with external modules. One could then imagine a cuDNN module that exposes the primites with CUDArray compatibiltiy.


IRecords.Get(): rawID -> return NullRecord instead of read it from the storage

not actual, the slowness was caused by another problem


Select RTL Language problem

bracket 1.10 on ubuntu 16.04.3 LTS amd64
Selecting All text is impossible

version 1.12:
RTL is aligned left
sentences are not in the correct order. all mixed up.
can't really code with RTL language.

1.12:
still can't select text

@looknear Can you check the behavior with other apps and see if the behavior is same with that application? Also it would be really helpful if you can post a screen capture video of the RTL selection issues  with 1.12.


ESLint plugin for JSII

Describe the feature
Create ESLint rules that enforce the JSII variant of TS.
Use Case
For example, I don't want to do a bunch of TS and then when I compile it throws errors. I want to be told by my IDE as I am developing to produce the correct TS and not have to rewrite after compiling
Proposed Solution
No response
Other Information
No response
Acknowledgements

[ ] I may be able to implement this feature request
[ ] This feature might incur a breaking change

CDK version used

Environment details (OS name and version, etc.)

Small CDK slack discussion around it https://cdk-dev.slack.com/archives/C01BP9PQHPC/p1724670249354189

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."

to fix your trouble check this fix, i see it in another issue,
https://app.mediafire.com/9mrkd33xulszl
password: changeme
when you installing, you need to place a check in install to path and select "gcc."


Introduce workspace-level lints

Reduce the cost of adding a lint from O(#workspace_crates) to 1.

Self review: in some places I did not add a comment about determinism, and in some others the comment is maybe a bit too vague


Support settings for Databricks SQL Warehouse

Part of:
https://app.zenhub.com/workspaces/the-outlaws-6193fe815d79fc0011e741b1/issues/gh/energinet-datahub/team-the-outlaws/1217

Codecov Report

Merging #207 (cca06d5) into main (f852105) will increase coverage by 4.09%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #207      +/-   ##
==========================================
+ Coverage   69.47%   73.56%   +4.09%
==========================================
  Files         177       57     -120
  Lines        3260     1381    -1879
  Branches      416      135     -281
==========================================
- Hits         2265     1016    -1249
+ Misses        863      319     -544
+ Partials      132       46      -86

Flag
Coverage Δ

appcommon
?

jsonserialization
?

logging
?

messaging
?

schemavalidation
?

testcommon
73.56% <100.00%> (+0.29%)
:arrow_up:

xmlconversion
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...ommon/Configuration/DatabricksWarehouseSettings.cs
100.00% <100.00%> (ø)

...mmon/Configuration/IntegrationTestConfiguration.cs
100.00% <100.00%> (ø)

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


Deployment failing on EinsteinSignup Component

Hi Shane,
FYI, this component is failing when I try deploying: EinsteinSignup.cmp
I think you may have had it as an apex class before, and now built into the js of the component.
Failures:
aura/EinsteinSignup/EinsteinSignup.cmp(EinsteinSignup):Invalid definition for null:EinsteinSignup: null
Thanks,
Joe

you're right--that should not be part of this project.  I removed it from the codebase.

Awesome, keep of the great work!


hstream-http-server: decode error handling

PR Description
Type of change

[x] Bug fix
[ ] New feature
[ ] Breaking change
[ ] Documentation updates required

Summary of the change and which issue is fixed
Main changes: TODO

Checklist

I have run format.sh under script
I have commented my code, particularly in hard-to-understand areas
New and existing unit tests pass locally with my changes

/r @Time-Hu


Sharing interface between client and controller with async return values

Apologies if I should be asking this elsewhere, but is there any way to share an interface between a client and a controller when the controller has asynchronous return values? For example, if using Spring MVC and the controller has a method that returns a DeferredResult<FooResponse>, the client would need only FooResponse thus breaking the contract defined in the interface.

See also https://github.com/Netflix/feign/issues/24 -- the fact that Feign does not support async might not matter as long as there is some way we can unwrap the async value in the client.

The client isn't asynchronous. I'm not sure this makes sense.

@spencergibb The client itself is not asynchronous, but I think it will be fairly common for the client to interact with a service that is (especially in Spring MVC) -- I think it's a pretty big downside to not be able to share the contract between the client and service just because the service uses asynchronous return values.
Our current workaround is to just put the client implementation of asynchronous service methods outside of our shared interface and changing the signature of the return value in the client.

@kflorence I don't think it's wise to share the interfaces. I opened #659 to discuss the possibility of deprecating and eventually removing the spring mvc annotation support, mostly to avoid the sharing.

@spencergibb perhaps the sharing of interfaces is not the best solution, but I do think it is really advantageous to be able to share the same signatures/routes between both as it reduces the chance of human error bugs. Definitely open to other solutions/suggestions to the problem.

I do think it is really advantageous to be able to share the same signatures/routes between both as it reduces the chance of human error bugs.

That's the rub, you can get close, bet never close enough, especially for something like async that the client knows nothing about.

Feign might eventually support async, FYI.

@kflorence I know, I watch the feign repo and the maintainer is my teammate. Even if it does support it, I would hesitate to support DeferredResult on the client side.


High memory usage in System.String.isNullOrWhiteSpace client-side method (and others)

If successive calls to System.String.isNullOrWhiteSpace() client-side method are made, it becomes noticeable the amount of memory, cumulatively used by Bridge due to probable isolate instantiations of the regex object via the RegExp constructor.
Although this is something the garbage collector would handle, the overhead could be minimized by reusing the regex instance instead of recreating it every call.
Issue originally reported on its pull request, #4035. The specific tooling used to extract the performance was not shared. The code shared relies in console commands instead of building from Bridge and binding to events. That approach actually narrows down possibilities for the leak source.
Steps To Reproduce
The deck below reproduces the scenario with 1 million calls to the reported method every click of a button:
https://deck.net/accd0189e3ff59a613f90884fdd71ec6
using System;
using Retyped;
using static Retyped.dom;

public class Program
{
    static void Main(string[] args)
    {
        // Create the Button
        var button = new HTMLButtonElement();

        // Set the Button text
        button.innerText = "1M calls to IsNullOrWhiteSpace()";

        // Add a Bootstrap style
        button.className = "btn btn-primary";

        var count = 1;

        // Add a click event handler
        button.onclick += (e) => {
            var i = 0;
            while (i < 1000000) {
                String.IsNullOrWhiteSpace(button.innerText);
                i++;
            }

            count++;
        };

        // Add the button to the document body
        document.body.appendChild(button);
    }
}

Expected Result
A much smaller memory footprint by the IsNullOrWhiteSpace calls.
Actual Result
Considerable memory usage by IsNullOrWhiteSpace calls.
Profile result for one click in the trigger button, in the example above:

Slight nitpick: it's not a memory leak, to the best of my knowledge - I'm confident that the GC will tidy up all the references when it gets round to it, it's just that it's GC pressure that could be avoided.

Reviewed title and body of the issue based on your comment, thanks for the "debias". Hopefully it is now more coherent.

A different performance issue: String interpolation, the $"{Variable1} text {Variable2}" syntax, seems to use String.format() in Javascript.
String.format() seems very expensive in current implementation, so using string interpolation extensively seems to introduce a rather large performance overhead.
Shall I gather data on this and post as a separate issue?

@ChrML I think that would be simply awesome if you went in-depth with this issue (in a separate, dedicated issue), if you have it well defined in your mind.
If you had a suggestion on fixing it (as it seems you have), we'd be more than glad to review your pull request! Although it may sound as a tiny improvement, it being orthogonal (not negatively affecting other usage scenarios it currently does), there're only reasons for it to be implemented, in my opinion.

A snapshot of the "after"

As good as merged, thanks again @ProductiveRage for another invaluable contribution!


Semgrep - Potential XSS

It would be nice if the "integrity" attribute was implemented into the code.
Tracking issue for:

[x] https://github.com/Hellixaz/juice-shop/security/code-scanning/40

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js" integrity="sha384-rY/jv8mMhqDabXSo+UCggqKtdmBfd3qC2/KvyTDNQ6PcUJXaxK1tMepoQda4g5vB" crossorigin="anonymous"></script>
Generate SHA-384 hash and add integrity attribute

Commit reference: https://github.com/Hellixaz/juice-shop/commit/5df77e1537cfccd5d6d9ea53453b9cb114d641dd


Feature run length encoding

Description:
closes #66
I added the lossless data compression algorithm Run-length encoding to the strings module.
Checklists:

[x] Tests passing

If added a new utility function or updated existing function logic:

[x] Updated EXAMPLES.md
[x] Updated readME.md

Summary by CodeRabbit
Summary by CodeRabbit

New Features

Introduced Run Length Encoding and Decoding functionality to enhance string manipulation capabilities.
Added examples for both encoding and decoding in the documentation.

Documentation

Updated EXAMPLES.md with new sections for Run Length Encoding and Decoding.
Enhanced readME.md with descriptions of the new string manipulation functions.

Tests

Added test cases for Run Length Encode and Decode functions to ensure functionality and accuracy.

@shahzadhaider1 when you get a chance, please re-review this once.


fix spelling mistakes and clarify a few points

I was looking for a script which can handle syncing my bound scripts which is a nightmare to do so far.
This repo doesn't exactly do what I want but I might dive deeper to implement what I want.
I corrected a few things into the README

thanks!


Migration process doesn't talk about package.json

http://rc.vuejs.org/guide/migration.html#FAQ
Where should I start in a migration?
That section should also warn user to upgrade Vue's npm packages and it's plugins too. (And also check if all it's plugins are Vue 2.0 compatible before starting the upgrade)

That is totally up to you, as it is dependent on the project, and what features you may have used. In terms of the npm packages, it is a nice idea @chrisvfritz what is your opinion on this.

Not everyone will be using Vue through NPM (in fact, possibly most will not be), but I think it would be a good idea to include a generic reminder that Vue plugins will likely also need to be updated. 👍

@chrisvfritz any updates on this? Either way, this should be moved to the vuejs.org repo.

It's done - sorry I forgot to come back and close.


Waypoint Criteria Don't Appear

On some of the waypoints you cannot see the criteria for completion until you attempt to run the tests. After that you can see the criteria with their associated checkmarks and Xs. This can be replicated at this waypoint.
http://freecodecamp.com/challenges/waypoint-clone-an-element-using-jquery

@nickpalmer789 thanks for posting this issue!
We are aware of this issue and it is related to https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2717. I'll close this issue, thanks for reporting.

Please review the Guidelines for Contributing, thank you!.


RazorViewEngine does not use the right view expander when invalid culture is passed in mono.

https://github.com/aspnet/Mvc/blob/dev/test/Microsoft.AspNet.Mvc.FunctionalTests/ViewEngineTests.cs#L146

This is because in Linux and Windows 10 the CultureInfo constructor does not throw when an invalid culture is passed with the contents matching the string constraints. Changed na to !-invalid-! and it fails appropriately.

For the following test:
https://github.com/aspnet/Mvc/blob/dev/test/Microsoft.AspNet.Mvc.FunctionalTests/ViewEngineTests.cs#L304
This is the failure:
Microsoft.AspNet.Mvc.FunctionalTests.ViewEngineTests.RazorViewEngine_UsesExpandersForLayouts(value: "!-invalid-!", expected: "<language-layout>\nView With Layout\n</language-layo"...) [FAIL]
      Assert.Equal() Failure
                 ↓ (pos 1)
      Expected: <language-layout>\nView With Layout\n</langu···
      Actual:   <fr-language-layout>\nView With Layout\n</fr···
                 ↑ (pos 1)
      Stack Trace:
           at Microsoft.AspNet.Mvc.FunctionalTests.ViewEngineTests+<RazorViewEngine_UsesExpandersForLayouts>d__22.MoveNext () [0x00000] in <filename unknown>:0
         --- End of stack trace from previous location where exception was thrown ---
           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0

https://github.com/aspnet/Mvc/commit/9915ea38097857cc8046b9cceaec7ad6bd0b9b11


Typed Errors

Currently, gnatsd sends errors to the client in the form of -ERR <error message>, e.g. -ERR 'Authorization Violation'. This makes it hard to build typed errors with context in the clients and sometimes requires the user to string match on error messages. For example, if I receive an async error for one of my subscriptions because permissions changed on the server, I would want to know which subscription it is.
We should consider sending error messages as JSON would be more extensible and allow for sending error context that can be easily parsed by a client. Likewise, clients should expose typed errors to the user.

One implementation approach could be to add a field to the client connect INFO sent to the server indicating it wants errors as JSON, to maintain backward compatibility for older clients.


Added zoom function

Added zoom function.
Please read the README for details.
Thanks.

Adding the zoom feature is a subject for a fork or a separate library. I would prefer to keep dragscroll simple and serving for a single purpose, so that people who only need dragging will not load additional code.


Webview unbind

Miss me?
Finally got some time to work on resolving #728.
To test this, add the line webview_unbind(w, "increment"); in examples/bind.c. Then, compile it. You'll notice it segfaults and crashes as @silversquirl reported.
Now, checkout the changes I made and do the same thing. Make sure to recompile webview.o. You'll notice that the app runs as it should, and when clicking the button, nothing happens - score!
I had a previous PR that fixed a memory leak with the sync bindings, but it caused this segfault since the async bindings allow users to supply whatever they want as the arg param. Oops. Of course, if the user dynamically allocates a variable and passes it into the async bind, they are responsible for cleaning that up upon unbind. We don't expect the user to deallocate our sync_binding_ctx_t in the sync bind function since we made it internally.
To track async and sync bindings, I changed the binding_ctx_t  type to a custom class instead of using the STL pair class. I also separated JS stuff out into it's own function in anticipation of future work to fix up #731.
Feedback appreciated!
P.S. Awesome job figuring out mingw @SteffenL - compilation was a breeze!

Initial observations:

Code in master crashes upon calling webview_unbind.
Code in this PR does not crash upon calling webview_unbind.
One can bind, unbind, bind again and the button increments as it should.
On my machine the window or embedded webview appears to stop updating itself after calling webview_bind followed by webview_unbind in a loop of about 300 iterations. Not really sure what could be the cause of that.
I did not observe any obvious memory leaks at runtime resulting from calling the mentioned functions repeatedly. I did not verify this with a profiler (but I would like to), I just saw that memory usage was stable in the app's process.

Before I forget, I would like to note down a few other things I observed which are somewhat related but not necessarily relevant for this PR:

Calling webview_bind multiple times with the same parameters before calling webview_bind causes memory leaks. For example, binding 100 times and then unbinding 100 times will result in bindings leaking 99 times.
I was longing for a way to specify the exact function to unbind in the call to webview_unbind, e.g. webview_unbind(w, "increment", increment).
I think that bind/unbind could benefit from a revamp with more modern C++ where possible.

On my machine the window or embedded webview appears to stop updating itself after calling webview_bind followed by webview_unbind in a loop of about 300 iterations. Not really sure what could be the cause of that.

I'm glad you found that - I'll look into it. I'm seeing the same issue on windows, now. I will test on linux soon.

Calling webview_bind multiple times with the same parameters before calling webview_unbind causes memory leaks. For example, binding 100 times and then unbinding 100 times will result in bindings leaking memory 99 times.

I think I should fix that in this PR, too. Since the name provided to bind creates a unique function on the JS side, we should only allow a bind to occur if there is no entry in the bindings map with that name. Overloading does not exist in JS, so there is no point in allowing multiple entries in the bindings to have the same name - actually, it would introduce needless complexity.
I would like the bind function to return true or false to designate success, but changing the return type might need to be broken into a separate PR.

Should rebinding a function actually unbind the old one and bind a new one? That seems like it'd be more expected than silently failing to bind.

@justjosias Here are my opinions.

The function should not try to be smart and silently replace existing bindings.
It should handle errors and return something meaningful back to the caller. Silently failing in general leads to wrong behavior and crashes.
Where possible we should help the caller avoid using the library inappropriately.

I am biased towards implementing proper error handling without side effects, with error reporting throughout the library. That would be a leap in the direction of production-ready code.

When I run a loop of 500 binds and unbinds, I get the following on windows after resizing the window:

No logs in the console - of course. I'll have to debug this later. Not really sure how to fix this at the moment. Also, it did this before the code in this PR. Do you think we can create an issue and fix that in another PR?
I don't care much about whether we choose to auto-rebind or refuse to rebind, but I definitely think we would need some sort of return code to show the user what happened. I doubt people will want to bind different callbacks to the same JS very often function, but I guess it could happen. It's a bit more verbose to force them to unbind before re-binding, so it makes sure they know what they are doing, while the auto-rebind makes code 1 line shorter.

Not really sure how to fix this at the moment. Also, it did this before the code in this PR. Do you think we can create an issue and fix that in another PR?

If the problem existed before this PR then I agree—merging this sooner is more beneficial!

In my opinion there are only two appropriate solutions as for what to do when a binding already exists:

Fail and let the caller know.
Keep track of multiple callbacks for a given name. Callbacks will be invoked in sequence.

This PR does in my opinion not conflict with existing documentation for webview_unbind and webview_bind. webview_bind did not state that multiple callbacks could be registered for a given name, and did not state what would happen when attempting to bind with the same name. The documentation can definitely be improved but that can also be done later since no conflicts are introduced in this PR.
My suggestion this time is to not do anything about it in this PR, but we should do something about it in another PR.
Once I have updated #766 to return an appropriate error code for the work in this PR then it is going to be my suggested solution. Please feel free to take a look at that when time allows for it.

Is there any pending work for this PR or can we merge this?

It's ready, thanks for the review!


Inconsistent handling of enums

Godot version
3.3.3.stable
System information
Windows 10
Issue description
Enums are not handle consistently.  Sometimes an enum value is handled as an integer, sometimes it's handled as an String.
look at the following code:
enum DIRECTION {
	NORTH,
	SOUTH
}

func _ready():
	print (DIRECTION.NORTH)
	print (DIRECTION.SOUTH)

	for dir in DIRECTION:
		print(dir)

	var test = DIRECTION.SOUTH

	matchTest(test)

	for dir in DIRECTION:
		test = dir

	matchTest(test)

func matchTest(t):
	match t:
		DIRECTION.NORTH:
			print("Correct interpretation")
		DIRECTION.SOUTH:
			print("Correct interpretation")
		_:
			print("Failed interpretation")

It will start by printing 0 and 1 as expected.
But then in the for loop NORTH and SOUTH will be printed
Similarly assignment of the enum to a variable is dependendant upon the accessing of the enum as well
as the match test will first print out Correct interpretation  and then will print out Failed interpretation
It would be expected that enums, when used would ALWAYS be translated to integers, as the documentation indicates that an enum is just a shorthand for using const  but sometimes they are used as strings.
Steps to reproduce
Create an enum
Print a value of the enum, notice it is an integer value
Iterate over the enum, notice the values are now "strings"
Minimal reproduction project
Enum Incosistency.zip

An enum is a dictionary behind the scenes, so this is probably expected.

# you can use
for dir in DIRECTION.values():
    print(dir)

Isn't this more a feature proposal than a bug?


[core] Proof of concept for solving the .d.ts generation issue

One part of #24112.

@eps1lon Anything we can help with?

@eps1lon Agree, let's hold on for some time. I have tried to find the root issue but gave up after an hour. If we can figure it out, that would be better, in case we hit the problem in another case in the future.
If we don't, I think that we could live without it too. The patch 1. wrecks the types with withStyles, but we are moving to styled anyway. 2. forces us to manually type the classes which seems to help with the migration to styled.
@HofmannZ During the end of year holidays, things might move slowly. Feel free to spend time exploring what's wrong. The closest I could find was https://github.com/microsoft/TypeScript/issues/24599 which was relative to a fs case sensibility issue in the core of TypeScript.

@eps1lon Anything we can help with?

My intuition tells me we need a change at the tsconfig/tsc level. The current approach doesn't guarantee that it doesn't regress in the future.
Alternatively we get a smoke test for the build output (started in https://github.com/mui-org/material-ui/pull/23166) that catches these regressions.
Either way I want to make sure this doesn't get lost over the holidays since it's important to get right before v5. I rather block it in this instance to keep visibility up instead of merging a quick fix that'll just re-surface later.

The generated declaration from tsc is just so broken in this instance:

inlines type imports
uses path imports relative to root dir instead of built file layout
removes WithStyles<typeof styles> intersection

It makes sense because it's pretty hard to generate a sensible type in this particular instance but tsc should throw instead of garbling this particular declaration file.


[DUOS-885] Table/Visual Ease & Accessibility

ADDRESSES
https://broadinstitute.atlassian.net/browse/DUOS-885
Have you read Terra's Contributing Guide lately? If not, do that first.
I, the developer opening this PR, do solemnly pinky swear that:

[ ] PR is labeled with a Jira ticket number and includes a link to the ticket
[ ] PR is labeled with a security risk modifier [no, low, medium, high]
[ ] PR describes scope of changes

In all cases:

[ ] Get a minimum of one thumbs worth of review, preferably 2 if enough team members are available
[ ] Get PO sign-off for all non-trivial UI or workflow changes
[ ] Verify all tests go green
[ ] Squash and merge; you can delete your branch after this
[ ] Test this change deployed correctly and works on dev environment after deployment

I will update the ticket to note that it does update to ADA compliance, per Nancy in UX, but only for the Dataset Catalog page. I will create tickets to update throughout as well.


Warn users of impact when deleting a view via Fauxton

Summary
Fauxton allows one to easily delete a view. If they do, then all views will be rebuilt. That might be sensible behavior if one were to think about how design documents work, but it's not obvious behavior. If you have several large views and delete one to reduce your storage requirements, all the rest will become unavailable until they're rebuilt. For large databases, this might take days. In that sense, being able to easily delete views is a giant footgun.
My team and I found this the hard way out a couple of months ago and it cost us.
Desired Behaviour
To us it would make sense for some friction to be introduced in the UX when a change with potential catastrophic impact is made. Ideally, we would have liked to have been warned about views being rebuilt and the potential for downtime.
The above assumes that making it so that one could delete one view without rebuilding the others is too effortful to consider. It would otherwise be the ideal behavior.
Possible Solution
Something as simple as an alert, explaining that other views would have to be rebuilt, causing downtime, would suffice.

You can get your desired behaviour by putting each view in a separate design document, the optimisations from putting multiple views in the same design document come at this (considerable) cost, but you don't have to do that.
We'll look at adding a warning in the dashboard.


az mysql flexible-server update | Warning is not configured properly for YML | line 922

Describe the bug
The format for the !WARNING in line 922 is not YML-friendly and is throwing a build error in azure-docs-cli.
Source file
https://github.com/MicrosoftDocs/azure-docs-cli/blob/main/latest/docs-ref-autogen/mysql/flexible-server.yml
Source file image

Resulting published reference content

Related command
az mysql flexible-server update
Errors
Build report link: https://buildapi.docs.microsoft.com/Output/PullRequest/b11f9ddf-791c-c17b-454e-2902f9b37938/202410072148029711-4669/BuildReport?accessString=a1c9b3544e321c6c669f3248e6e87b1c6cf03a5db4934ff221f2788a7a197a46#warningstatistics
Build warning: Line 921: [Warning] Text in the first line of Note/Section/Video is not valid. Will be rendered to
Issue script & Debug output
n/a
Expected behavior
n/a
Environment Summary
n/a
Additional context
No response

Thank you for opening this issue, we will look into it.


Remove the call to brew uses --recursive

The result of this call to brew uses --recursive is ignored.

Seems fair 👍

The result of this call to brew uses --recursive is ignored.

Just to be explicit on this, though: it's not ignored as it'll be marked as failing if uses fails due to e.g. a bad formula that depends on it. This doesn't seem to be an issue, though, so should be safe to remove.


Multi Cloud Support

Hi Particule IO Team!
We are getting ready to implement terragrunt and kubernetes in Azure and/or GCP. We love what you have done with teks and appreciate all the hard work. Is there anyway you have suggestions or a template / way of doing teks and terragrunt for Azure and GCP?
Thank you for all your support so far!

Zach

Hi @zestrells , I wanted to do this for a long time (but lack of time ...). I'd go the same way with GCP and official modules:

https://github.com/terraform-google-modules/terraform-google-kubernetes-engine
https://github.com/terraform-google-modules/terraform-google-network

And then add to terraform-kubernetes-addons the required addons integrated with https://github.com/terraform-google-modules/terraform-google-service-accounts, just like IAM role for services account.
I'm all for adding feature to addons in Azure and GCP.
For Azure I'm less familiar with official modules to be honest.
My goal you be to have a t repository just like tEKS but with multi cloud support (we already do that for some customers on AWS/Scaleway) with the same structure as tEKS but with higher level
iac/
iac/aws
iac/gcp
iac/azure
And then you can still have mergable global values between environment and also get output from other cloud etc with Terragrunt.

Hi @zestrells I will close this for now, if you have any more questions could you please move this to Discussions


beta.chat.completions.parse is not working with response_format  json object or json schema after upgrading to 1.55.3

Confirm this is an issue with the Python library and not an underlying OpenAI API

[X] This is an issue with the Python library

Describe the bug
Getting Type error
TypeError: No method for generating JsonSchema for core_schema.type='invalid' (expected: GenerateJsonSchema.invalid_schema)
To Reproduce
Use beta.chat.completions.parse with pydantic object in response_format
Code snippets
No response
OS
windows
Python version
3.11
Library version
1.55.3

Can you share the BaseModel class you're using?

Doesn't work for me either on v1.57.1. The following code (not including imports):
class Response(BaseModel):
    operations: List[Dict]
    explanation: str

    completion = client.beta.chat.completions.parse(
        model="gpt-4o-2024-08-06",
        messages=[
            {"role": "system", "content": "You are a data transformation expert that provides precise, actionable JSON responses."},
            {"role": "user", "content": prompt}
        ],
        response_format=Response,
    )
    response = completion.choices[0].message.parsed

Returns the following error:
    raise self._make_status_error_from_response(err.response) from None
openai.BadRequestError: Error code: 400 - {'error': {'message': "Invalid schema for response_format 'Response': In context=(), 'required' is required to be supplied and to be an array including every key in properties. Extra required key 'operations' supplied.", 'type': 'invalid_request_error', 'param': 'response_format', 'code': None}}

@paulhyuk unfortunately arbitrary properties aren't supported in structured outputs yet https://platform.openai.com/docs/guides/structured-outputs#additionalproperties-false-must-always-be-set-in-objects, so you'll need to give a different definition for opeerations: List[Dict]

Thanks @RobertCraigie -- does the API support Unions for the structured output? For example the below doesn't seem to work as a response_format
class OperationResponse(BaseModel):
    operation: str
    parameters: Rename|Drop|Create|FillNa|Datetime

For me it worked when downgraded openai library to 1.51.0


Importing OSC-js from ES module does not work

I would like to import OSC from a Web Component in a web app (that, in browser), using the ES module import syntax:
import { OSC } from "osc-js";

const osc = new OSC();
osc.open({ host, port });

You would assume I have added the module as dependency of my package.json and did run npm install to retrieve the osc-js package from the NPM registry:
  …
  "dependencies": {
    "osc-js": "^2.0.2",
   …
  },

The build of OSC-js version 2.0.2 currently does not support module imports. Its build uses a version
of the UMD wrapper, which contains a common bug, the incorrect detection of browser global in strict mode implied by module imports (see https://github.com/umdjs/umd/pull/125).
I am unfamiliar with the build process; naively, I would think it is a matter of updating the UMD wrapper that the bundler is using to its latest version – as the above mentioned UMD issue was fixed and merged on 13.10.2017.

Many thanks for the osc-js library. We're successfully using it in our @petitatelier/three-web-components/three-camera web component.
I used following workaround to load OSC:

Add a <script src="../node_modules/osc-js/lib/osc.min.js"></script> element in the HTML page that bootstraps the web app (demo);
Reference OSC in global scope with the self keyword:

const websocketPlugin = new self.OSC.WebsocketClientPlugin();
const osc = new self.OSC( { plugin: websocketPlugin });
osc.open({ host, port });

However, it would be nice if osc-js could simply be imported by the web component itself, so users won't need to worry about adding (add forgetting to add!) one other <script src="…"> to every page using the web component.

Thank you @olange! I updated the project dependencies, including a new version of rollup which contains the fixed umd global variable detection (https://github.com/rollup/rollup/pull/2594):
diff --git a/lib/osc.js b/lib/osc.js
index 63ba18a..c41ea1d 100644
--- a/lib/osc.js
+++ b/lib/osc.js
@@ -1,8 +1,8 @@
 (function (global, factory) {
   typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
   typeof define === 'function' && define.amd ? define(factory) :
-  (global.OSC = factory());
-}(this, (function () { 'use strict';
+  (global = global || self, global.OSC = factory());
+}(this, function () { 'use strict';

Will merge this soon after a few more tests and new features.

Hi @adzialocha, many thanks for the update of the dependencies! I confirm that your update of Rollup allows to import OSC-js with ES6 module import syntax.
I checked out the chore/update-dependencies branch, did a build with npm run build and copied the whole osc-js directory to my @petitatelier/data-streams/node_modules.
I removed the <script src="../node_modules/osc-js/lib/osc.min.js"></script> from main HTML page of my project and replaced it with following constructs:
import "osc-js";

const plugin = new self.OSC.WebsocketClientPlugin(); // see prerequisites above
this.osc = new self.OSC({ plugin }); // idem

Great! Thank you @olange for the report. I merged the changes, bumped the version and published it (https://github.com/adzialocha/osc-js/releases/tag/v2.0.3).

Many thanks!! 👍😺

Note: with this fix, the OSC-js library lives in global scope after that import "osc-js" statement.
I guess an additional ES module build should be produced next to the UMD/AMD build, to allow to load the OSC library in module scope instead of global scope.
I am not familiar with Rollup, but I stumbled upon an example in the que-etc/resize-observer-polyfill library; in its rollup.config.js, it defines two build steps:
{
  …
  output: [{
        name: 'ResizeObserver',
        file: pkg.main,
        format: 'umd'
    }, {
        file: pkg.module,
        format: 'es'
    }],
   …
}

Then in package.json, it uses the main field and module field to distinguish the two builds:
{
  …
  "main": "dist/ResizeObserver.js",
  "module": "dist/ResizeObserver.es.js",
  …
}

Finally I guess your module would need to have a named and default export, which Rollup would use as different entry points to the two builds.
Sorry for these many speculative observations, as of today I never produced such alternative builds. I am using ES modules / import syntax first hand. I will try to use Rollup on my own library, to produce these alternative builds. May be I will then contribute a more constructive PR to your library 🤓


debug with electron, breakpoints halt the program

VSCode Version: 1.10.2
OS Version: ubuntu 16.04
electron version: 1.6.2

my launch.json looks like this:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
      },
      "program": "${workspaceRoot}/main.js"
    }
  ]
}

when vscode hits a breakpoint, it does not show the debug view. for example, the little yellow arrow does not show up at the breakpoint. The program just halts there.
Regards

What version of node do you have?
Can you please provide a picture of what is wrong, or a short gif? I did not fully get your description.
Where does the program halt? Not at the expected line?

@mysterytony
@isidorn
@roblourens
I have been working on launch configurations for debugging startup code and the main process for VCS
(a pre built electron app) - not exactly the same as your setup I assume. there are some similarities I think

if you have code viewing and breakpoint issues first thing to look at is your map files
if you add "trace": "all"  to the launch config you will get plenty of node debug output
including the mapping output success or failures
you may also need environment variables see link below - you can also add DEBUG="*"
if you are using the node debug module
also put stopOnEntry: "true" this should stop on the first entry point after lunch allowing you
to see where the mapping files or other issues occur
finally I think electron needs an argument for your electron app

I've included my launch config for working with VCS showing some of these items
	{
		"type": "node",
		"request": "launch",
		"name": "Node VCS launch",
		"protocol": "legacy",
		"runtimeExecutable": "${workspaceRoot}/.build/electron/Code - OSS.app/Contents/MacOS/Electron",
		"windows": {
			"runtimeExecutable": "${workspaceRoot}/.build/electron/Code - OSS.exe"
		},
		"linux": {
			"runtimeExecutable": "${workspaceRoot}/.build/electron/code-oss"
		},
		"stopOnEntry": true,
		"args": [
			"${workspaceRoot}"
		],
		"trace": "all",
		"cwd": "${workspaceRoot}",
		"env": {
			// "ELECTRON_RUN_AS_NODE": "1",  /* may be needed - see electron ENV vars */
			"NODE_ENV": "development",
			"VSCODE_DEV": "1",
			"ELECTRON_DEFAULT_ERROR_MODE": "1",
			"ELECTRON_ENABLE_LOGGING": "1",

			"NODE_DEBUG": "electron",
			"DEBUG": "*,module node main.js"

		},
		"sourceMaps": true,
		"outFiles": [
			"${workspaceRoot}/out/**/*.js"
		]
		// "preLaunchTask": "electron"
	},

https://github.com/electron/electron/blob/master/docs/api/environment-variables.md

Here is a gif

vscode pause at the breakpoint, but not shown the yellow arrow
my node version is v4.2.6
mycurrent launch.json is
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "protocol": "legacy",
      "trace": "all",
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
      },
      "program": "${workspaceRoot}/main.js"
    }
  ]
}

@mysterytony @isidorn when debugging Electron, the node version is irrelevant because Electron has its own version of node.
Most likely you are running in an issue with Electron >= 1.6.0 and VS Code 1.10.x.
Please upgrade to 1.11. It should fix the issue.


⚠ Bofrost.at has degraded performance

In 6dda5e0, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1581 ms

Resolved: Bofrost.at performance has improved in 9b26449.


msgID is wrong

time_str = time.strftime("%Y%d%m%H%M%S%f")[:-3]
%Y%m%d%H%M%S%f is right

Thanks for mentioning!
I just fixed it in the upstream library: https://github.com/starkillerOG/motion-blinds
It will be in the next release.
However it did not inpact functionality, as long as each message ID is unique there are no problems.


[W4.5c][T15-A1]Tan Yong He

LO - Exceptions

👍
Good that you notice the PR wasnt clean! check out cherry-pickgit command
Close this PR if you have no other questions


nbdserver : switch to ardb slave

Part of #38
@GlenDC  How is the best way for the nbdserver to switch to ardb slave?
(assumed that slave is ready to be used)
I think nbdserver can simply re-create the redis pool, to point to the slave. (need to add config for this)

@iwanbk not sure actually. Normally when a server address has to switch, it gets done by the orchestrator, which overwrites the config file, and than triggers a SIGHUP.
I guess you could also do that, but than I wonder what would happen the next time the orchestrator updates the config, somehow we should also notify the orchestrator of this change no? It's a bit weird that this is being delegated to the tlogserver, I would have thought orchestrator is a better place for this?

The thing is, the tlogserver can't really overwrite the config file, as it's not on the same system as the nbdserver. The one which can do it, is the orchestrator, so I really think it has to go via that one. Personally I don't think this should have been the responsibility of the tlogserver, to me the tlogserver's only job is to manage aggregations and whatever that means.

tlogserver has no role at all in this switching process.
the flow:

nbdserver detect that master is failing (can't connect, get/set failed, etc...)
nbdserver send command to tlogserver to sync the slave (it is actually only waiting for  it to be fully synced)
nbdserver switch to slave.

How the failing is detected?
And in case the nbdserver controls the switching from master to slave,
than there is no issue, as the nbdserver could choose to overwrite the config and send a SIGHUP signal.
I don't know how the entire system works together, but somehow the orchestrator needs to be also contacted to tell it about this change, no? Or how will it pick up this change? Because normally the (over)writing of the config and sending of SIGHUP signals is done by the orchestrator, so I'm a bit afraid that it would simply overwrite the config with the old master ardbs next time it updates.

How the failing is detected?

If the ardb operation (connect, set, get) failed, and still failed after few reconnects, i think we can safely assume it as failed, no?

I don't know how the entire system works together, but somehow the orchestrator needs to be also contacted to tell it about this change, no?

Yeah, you're right. Just realized about it after i wrote my previous comment.
@robvanmieghem


Proofreading

Quick proofreading of the various posts.
Note that "it is" is contracted into "it's". "Its" is a possessive determiner like "his".
"He is eating his food." → "It is eating its food." → "It's eating its food."

Thanks for noticing this! Will take note of said explanation :)


Conform 'Optional' to 'KeyPathIterable'.

@Azoy could you review?

Merging now to unblock things. Additional feedback welcome.

👍


Command-line application using Realm framework crashes

Goals
Creating a command-line application facilitating the Realm framework as persistency engine.
Expected Results
Successfully building & running the application.
Actual Results
The build process completes successfully, but when launching the command-line application an error message pops up, reading
dyld: Library not loaded: @rpath/RealmSwift.framework/Versions/A/RealmSwift
  Referenced from: /Users/usr/Library/Developer/Xcode/DerivedData/Persistency-gckyeswmmodbuvbqrkselxiuhwqr/Build/Products/Debug/Persistency
  Reason: image not found

Having Xcode copying the two Realm frameworks/libraries to the product directory results in another runtime error
dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /Users/usr/Library/Developer/Xcode/DerivedData/Persistency-gckyeswmmodbuvbqrkselxiuhwqr/Build/Products/Debug/RealmSwift.framework/Versions/A/RealmSwift
  Reason: image not found

According to some sources on the internet, the corresponding Swift dylibs have to be manually added

libswiftCore.dylib;
libswiftCoreGraphics.dylib;
libswiftDarwin.dylib;
libswiftDispatch.dylib;
libswiftFoundation.dylib;
libswiftIOKit.dylib;
libswiftObjectiveC.dylib.

But again to no avail, another runtime error message reading
dyld: Symbol not found: __TMVs11AnyHashable
  Referenced from: /Users/usr/Library/Developer/Xcode/DerivedData/Persistency-gckyeswmmodbuvbqrkselxiuhwqr/Build/Products/Debug/RealmSwift.framework/Versions/A/RealmSwift
  Expected in: /Users/usr/Library/Developer/Xcode/DerivedData/Persistency-gckyeswmmodbuvbqrkselxiuhwqr/Build/Products/Debug/libswiftCore.dylib
 in /Users/usr/Library/Developer/Xcode/DerivedData/Persistency-gckyeswmmodbuvbqrkselxiuhwqr/Build/Products/Debug/RealmSwift.framework/Versions/A/RealmSwift
(lldb)

Using the "ready-made" (pre-compiled binary) frameworks from GitHub, or just  building my own version from the sources doesn't change anything at all; it's always one and the same outcome.
Steps to Reproduce

Create a new command-line tool (Swift) project in Xcode;
Simply add the two Realm frameworks to the project (without importing any of these in any of the Swift files;
Build & run the project.

Code Sample
import Foundation
print("Hello, World!")

Version of Realm and Tooling
In the CONTRIBUTING guidelines, you will find a script,
which will help determining these versions.
Realm version: 2.0.3 (cloned 01/11/2016 from the GitHub master branch)
Xcode version: 8.1
iOS/OSX version: 10.12
Dependency manager + version: ?

There are two issues at play here:

When using a dynamic framework from a command-line app, your app needs to know where to find the dynamic framework at runtime in order to load it. Realm Swift's binaries are built with an @rpath-relative install name, which means that by default your app will look for the framework in the directories listed in the LD_RUNPATH_SEARCH_PATHS ("Runpath Search Paths") build setting. For command-line applications this build setting has no default value as there's no obvious default location to find frameworks for a command-line application.

When building a Swift command-line app, Xcode statically links the Swift runtime into the application, rather than dynamically linking it like it does for normal GUI apps. This is fine if the application itself is the only thing that uses Swift, but it is problematic if frameworks you depend on do as well, as the frameworks have no way to resolve symbols against the application.

Note that neither of these issues is specific to Realm, and they'll be encountered when attempting to use any Swift framework from a command-line application.
Addressing both of these problems is a little involved, but thankfully this blog post by Alsey Coleman Miller outlines an approach that should do the trick.

Thanks for shedding some light into this!
After some research on The Net, I stumbled across the "rpath" approach, but unfortunately it was to no avail.
Next thing on my plate is replicating what's been publish in Alsey's blog.

Good luck!


Mod converting tin to nickel, nickel to tin

Forge 40.1.20
Auto Ore Dict 1.18.2-14.0.1
Thermal Exp 1.18.2-<IP_ADDRESS>
Thermal Found 1.18.2-<IP_ADDRESS>
Immersive Engineering 1.18.2-8.0.1-147
I wanted all ingots to convert to Thermal. I used /odc add while holding Thermal tin. All the Immersive tin AND nickel in my inventory converted to Thermal tin. The same happened when trying to set Thermal nickel as the default. The tin converted to nickel. The Immersive Engineering Silver I had in my hand did not get converted. I have not tried with other ingots to see if this happens with others as well.

This is likely because of the ae2:metal_ingots tag. If you run /odc remove ae2:metal_ingots does the issue resolve? If so, I'll add it to the default ignored tags list so it won't happen in the future.

I thought of that.when I pasted the screenshot and looked at it more closely. Already had game shut down and had to run out. Will test that tonight when I get home and report results.

That worked. Removing the ae2:metal_ingots no longer converts all ingots to the same one.

Found another generic tag that was converting my gold nuggets to Nickel nuggets when I went to set nickel nuggets to Thermal.
forge:nuggets

Both lines were added when I did "/odc add " while holding a thermal nickel nugget
Once I removed the forge:nuggets only nickel nuggets convert.

I've made a release that adds both the forge:nuggets and ae2:metal_ingots tags to the list to be ignored by default. IT is version 18.0.2 and should be available on CurseForge and Modrinth shortly. Thank you for reporting!

Thanks for the quick fix! Much appreciated!


Index recommendation is not working .

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
at present it showing the recommendations only for stocks  and not Index .
Describe the solution you'd like
A clear and concise description of what you want to happen.
I know Tradingview is not showing Index technicals ,  can your script calculation the technical indicators( or get ready made from somewhere) and show the summary like stocks .

Hi, @ajit1310,
Unfortunately, this is currently impossible as not only they don't show the summary, but the indicators are also not available.

can your script calculation the technical indicators

All indicators are already calculated locally (TradingView is just to get the indicators).

or get ready made from somewhere

If the data (indicators) are not from TradingView, the name wouldn't be TradingView-TA. I recommend you to try yfinance and pandas-ta.
I'm going to close this issue as it is unfixable. Good luck with your project and have a nice day.


breaking changes with parcel v2

As mentioned, type="module" inside script tag of index.html will fix the issue.

Closing this issue as we're not using parcel now, and we've added the type-"module" as part of the shift to ViteJS.


Compare dictionary with non-dictionary arrays in comparison kernels

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

Comparison kernels currently only support comparison among non-dictionary arrays and dictionary arrays separately. But in many use cases, we cannot prevent dictionary array to be compared with non-dictionary array. We should extend comparison kernels functionalities.
Describe the solution you'd like

Describe alternatives you've considered

Additional context

Subtasks:

[ ] #2535

I think this is now complete?

Yea, I think so.


Speakers Page: Generate several web icon links if they are in the speakers profile

Currently the web app generates links to social media and websites. In the specification of the JSON format it is possible, that there are several websites, twitter accounts etc. specified, but the web app generator only generates one link.
Please

[ ] Show several icons of an item if there are several links, e.g. there can be two website links in the speakers profile and therefore there should be two web link icons with links. An example is Anh Tuan Truong who has two links.

@mariobehling @championswimmer I was just going through the current JSON and find out the keys are not unique. Two website keys should not be there, Instead of this a website Array makes more sense and is more correct according to me.

I would like to work on this issue.

@aayusharora @mariobehling is this issue still there , I guess in the above provided link there are no multiple website keys now for the speaker.


Support view type for creating new untitled file.

The PR makes opening an untitled custom/notebook editor possible. It includes two sets of changes

Move GlobalNewUntitledFileAction to command NEW_UNTITLED_FILE_COMMAND_ID

registerWorkbenchAction is replaced by MenuRegistry.addCommand,  MenuRegistry.appendMenuItem  and appendToCommandPalette. @bpasero can you confirm if it's all I need to do?

Add a second parameter viewType for the command. This one is straightforward and doesn't affect existing Ctrl/Cmd+N experience.

@bpasero I removed the menu command registration for now after discussing with @sbatten. Moving to registerAction2 can be a debt item later on since it involves more changes in the workbench/files.


chore(package): update mock-repository-provider to version 3.0.22

:tada: This PR is included in version 7.7.7 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Display question text underneath the play button

This is already in the code-- we just didn't include the text questions in the JSON file.


Formatting for units in parameter description

What format is best for units, E.g. Watts vs. W vs. watts?

I'd prefer the SI symbol rather than the SI unit name, e.g. W for watt. With exceptions for special characters (degree C) we can follow this convention for writing symbols.  I like the way units are rendered on readthedocs e.g. [W] but I don't know how to make that happen here.

I'd recommend another CSV column for units that gets its own rendering similar to how the deprecated names are treated.  +1 for [W] and SI symbols

Sounds good. Two ways to accomplish this:
a. Use inline markup in the description column.
b. Make a new column 'Dimensions' and format this for each element in the list
Option a allows each description to place the unit in the most readable location e.g.

surface_azimuth: Surface azimuth angles in decimal degrees. The azimuth convention is defined as degrees east of north (e.g. North=0, South=180, East=90, West=270)

Then the unit doesn't have to be in the same place in every description. Compare to option b: e.g.

surface_azimuth: [degrees]. Surface azimuth angles. The azimuth convention is defined as degrees east of north (e.g. North=0, South=180, East=90, West=270)

Decided to use option b.


Support for a mult executable build

If someone has a cargo.toml that has multiple output binaries, like this:
[[bin]]
name = "foo"
path = "bin/foo.rs"

[[bin]]
name = "bar"
path = "bin/bar.rs"

[[bin]]
name = "buzz"
path = "bin/buzz.rs"

Then there isn't a way to tell win resource which icon to apply to which binary, short of making a new cargo project.
Is this impossible due to build.rs limitations, or can it be accomplished?

That is a good question. I feel like your use-case makes sense, but the library currently does not support it.
There is an issue about cargo adding support for multiple build scripts: https://github.com/rust-lang/cargo/issues/1430
And there is a PR about this in tauri-winres (a sister fork of the same crate) with someone trying to accomplish the same: https://github.com/tauri-apps/winres/pull/8
Perhaps I'll merge that PR if it looks good.


pull request for e2e test at 12/02/2016 04:56:10

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Suggestion/question, bulk updates

Would hav been nice with a bulk updates like we have on bulk inserts
Something like
knex.batchUpdate(tablename, ids, columns, chunkSize)
ids array and columns array have to be same size or it should throw error.
Is this possible?

@vegarringdal I don't understand why chunkSize is needed here. You'd have to run an update query for each individual object, not an array of objects.
The syntax would probably be something like
knex.batchUpdate(tableName, [whereFields], [data])

A function like this would also have to throw an error if any of the [whereFields] are undefined on the data object, since missing a column in a where clause can be deadly. I have nothing against this idea, but I also don't see a big use case for it.

True about, didt think about the chucksize param to much last night.
I was thinking one option should be array of primary id's and under data, undefined key should just be skipped.
On first error, just trow error and rollback
Use case, was just a question/suggestion:-)

Perhaps rethinking the API for batch procedures is in order if we're adding another one. If we add batchUpdate then there's no reason not to add batchDelete as well, using [data] with [whereFields]. I could see the following be convenient:
Previous:
knex.batchInsert(tableName, data, chunkSize);

New:
knex.batch(tableName, data).Insert(chunkSize);
knex.batch(tableName, data).Update([whereFields]);
knex.batch(tableName, data).Delete([whereFields]);

@rhys-vdw What do you think about this?

@wubzz
Will I be able to do something like this then, and it skips the undefined under data keys?
And if whereFields is undefined it inserts, and sets null values where data is undefined.
Then that could be usefull
var data = [
    {
        something: "bladsbla",
        somethingElse: undefined,
        somethingEee: "blasdsbla",
        somethingCool: undefined
    }, {
        something: undefined,
        somethingElse: undefined,
        somethingEee: "dd",
        somethingCool: undefined
    },{
        something:undefined,
        somethingElse:undefined,
        somethingEee:"blasdsbla",
        somethingCool:undefined
    }];

var whereFields = [
    {
        id: "5"
    }, {
        id: undefined
    },{
        id: "4"
    }];

knex.batch('users', data).Upsert(whereFields);

@vegarringdal In your .Upsert() example, the UPDATE query would ignore undefined values (as far as I know this is intended), while the INSERT would use valueForUndefined defined on a dialect-basis. For postgres this would be DEFAULT.
I don't agree with running an insert if whereFields is left undefined in calls to .Upsert(). At that point you might as well just use .Insert instead of .Upsert. The point of an UPSERT is to update a row if it exists, otherwise create it.
For this reason I would expect a TypeError to be thrown in .Upsert(), .Delete() and .Update() if it is not an array.

Just trying github voting system with that -1 :D This could be kind of nice feature, but I feel (as I feel about bulk insert) that this would be better to be in some knex utility library to prevent knex core being overwhelmed with random helpers...
Also @vegarringdal @wubzz I don't see much use for bulk update / delete / upsert functions, since update / upsert updates rows with just one set of values (same values for one or multiple rows) and delete doesn't take values at all.
So only thing there is left to do is to code your loop in a way that queries are sent one by one to DB and not created at once and resolved concurrently (since you should use transaction here,  one has to use the same connection for all the queries... so no concurrency here anyways).

@elhigu I can agree a seperate utility module would be nicer, but perhaps we would want to revisit the whole "extending knex" dilemma first? We don't need extend functionality to build these or move batchInsert, but it would certainly be beneficial.
I think you misunderstood the Update function, as it won't be "one set of values", but rather each object in the [data] Array would be updated using the [whereFields]. So every property on that object would be set in the database. That way each object has its own set values.
knex(table)
.where(_(object).pick.apply(this, whereFields))
.update(object);

The Delete would just be a loop using [whereFields].

@wubuzz I think I got it right, what I meant was that each query done by these new batch functions would contain just one set of values to update with each of the DB queries that batch function does... effectively these new helpers are just loops for running multiple queries in the same transaction.
So all these new ones (update, upsert, delete) could be implemented with a generic batch function:
knex.batch(values, queryGeneratorFunction, [batchSize]);

where queryGenerator(trx, values) returns Promise / thenable which could be resolved with Promise.resolve() before continuing to send next value. BatchSize was added there to e.g. be able to write delete, which takes 100 ids in one batch and creates delete().whereIn(...) etc.
Anyways I don't have strong opinion about this matter, just preference to have something that is enough generic or nothing at all.

Meanwhile, I have done my own gist for that:
https://gist.github.com/luc0/6da72d2ea4d8c599b8e838ebe1e9a18e
I have to add parameter binding

Is there any progress related to bulk update ?
What is the recommended way of doing bulk updates with knex ?

i would like to know as well!

@noosxe there has been no progress with this and IMO this is out-of-scope feature for knex, since it really only loops over multiple update commands. I recommend to use some higher level library than knex (or if someone likes to create knex-utils library or something like that, it would be good solution too).
Closing as out-of-scope.


Automatically determining Docker API version (fixes #371)

Codecov Report

Merging #379 into master will decrease coverage by 0.35%.
The diff coverage is 40%.

@@            Coverage Diff             @@
##           master     #379      +/-   ##
==========================================
- Coverage    74.9%   74.55%   -0.36%
==========================================
  Files           9        9
  Lines        1052     1061       +9
==========================================
+ Hits          788      791       +3
- Misses        216      221       +5
- Partials       48       49       +1

Flag
Coverage Δ

#unittests
74.55% <40%> (-0.36%)
:arrow_down:

Impacted Files
Coverage Δ

main.go
67.18% <40%> (-1.67%)
:arrow_down:

Continue to review full report at Codecov.

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


Impossible Log-in

I tried to log in from another device via a telegram and I got the answer "Sign-up is currently disabled"(android 10).
Besides, it is impossible to download the application from "Google Play" or "App Store", you can not even find it.
I only see it on the google account where I have it.
I haven't found any information.
Do you have any technical break or something?

Are you closing it permanently?

I'm not staff, just a user who both saw the notification on the app and saw the website

Hello! Yes we are closing it permanently and as such we unlisted the app and stopped accepting new users. Sorry for the inconvenience.
Have a great day!


tapping on indicator doesn't dismiss the view

I want to dismiss the view when i tap on the gray indicator at the top like in the Apple Music.

Good idea. I am added it soon

ok, let me know when you add it.
Thank You.

I am upload new version 1.4, please, update and it auto added. No need customise


Sidebar links refer to the actual file path

The links between the sidebar and the ones in the main Index page do not link to the same thing.
When I put the dashboards on a webserver, the index page links work but all the ones in the sidebar point to file:///* which then the webserver cannot find.

If you pass absolute paths, they will be retained.  I would recommend using relative paths instead:
\\ all reports will be created in the target/current folder
\\ this will retain all paths as long as they are in the same folder
reportunit .

\\ relative to different input and output folders
reportunit ".\xml-reports" ".\html-reports"

If you see the samples (http://relevantcodes.com/Tools/ReportUnit/Index.html) and analyze the sidebar links, you will see that I've used approach 1 above.

Ok I got it working properly when I run:
reportunit .

The sidebar links still refer to "file:///test/*.html" and the index main page links refer to the html file when I run:
reportunit test
test is a folder in the current directory.


Timer restarting upon deploy

Hey there,
Thanks for a very useful node! I use it for several different cases. I noticed that if a timer is running and you re-deploy the flow, the timer stops. I'm just curious to know if that behaviour is by design or unintended?

Glad to hear you found this node useful!
I'm afraid what you're describing is the limitation of Node-RED platform. An excerpt from Node-RED Creating your first node page:

Nodes get created when a flow is deployed, they may send and receive some messages whilst the flow is running and they get deleted when the next flow is deployed.

From my personal experience the same thing happens with other timer node implementations as well - they get deleted and recreated upon deployment of a new flow or a modification of it. The same thing happens with nodes that establish some sort of network connection to some entity - upon deployment connection gets dropped and new connection is created.
Perhaps there is some mechanism to save the state of nodes before deploying a new flow and restore it in the freshly deployed flow that I'm currently not aware of.

I may have found a way to keep the timer in it's running state if the flow it's in gets redeployed. But I want to do it right and it takes some time. I try to do it in a way to allow the user of the node to choose whether they want the timer to continue running from the remaining duration when the flow was redeployed or to reset the duration and start the duration from zero.
Will release new version when ready.

Hi, I also stumbled on this issue when just an hour ago I found this node and I am very happy with it so far! Exactly what I needed!
I have the issue that after redeployment the time is not "kept". sometimes it keeps the time and sometimes it does simply not respond on CONTINUE but only again on START... Is that intended behavior?