AOT (Trimming) Exception.

The library doesn't seem to work when producing a self contained, trimmed, executable.
The code of the program is:
using YantraJS.Core;
using var ctx = new JSContext();

Console.WriteLine(ctx.Eval("'Hi'").ToString());

Running without trimming works, and prints Hi. When trimming is on, running said executable produces:
Unhandled exception. System.MissingMethodException: Cannot dynamically create an instance of type 'YantraJS.Core.JSJSON'. Reason: No parameterless constructor defined.
   at System.RuntimeType.ActivatorCache..ctor(RuntimeType)
   at System.RuntimeType.CreateInstanceOfT()
   at System.Activator.CreateInstance[T]()
   at YantraJS.Core.JSContext.<.ctor>g__CreateInternalObject|74_0[T](KeyString)
   at YantraJS.Core.JSContext..ctor(SynchronizationContext )
   at Program.<Main>$(String[]) in D:\Projects\GameEditor\GamePlayer.Desktop\Program.cs:line 2

@cyraid Trimming will not work as JavaScript is dynamic language and the all the runtime engine is loaded dynamically. For timebing you can simply disable trimming and see if it works, I tried looking at following issues, but looks like there isn't any easy way to do it. https://github.com/dotnet/runtime/issues/49040 , https://github.com/dotnet/runtime/issues/79003

@ackava With the help of a few hints (at https://learn.microsoft.com/en-ca/dotnet/core/deploying/trimming/prepare-libraries-for-trimming), you could avoid the trim warnings and allow the library to at least be partially trimmed, saving space. :)

@cyraid This will require every method to be decorated with these attributes, which isn't possible. And it is too much of unnecessary code. Since none of the JavaScript runtime features are statically referenced anywhere in the code.
In Xamarin, there was a way to completely disable trimming (linking) only for specific assemblies. And we were able to use YantraJS successfully in the Xamarin by disabling trimming.
I think if it is not possible to trim entire assemblies, the feature may come in future. In this case, you can supply assemblies (YantraJS.Core, and YantraJS.ExpressionCompiler) as a separate file and load them dynamically via Assembly.Load.
I will keep the issue open till I find some easy way to entirely ignore trimming/linking whole assemblies.

@cyraid This will require every method to be decorated with these attributes, which isn't possible. And it is too much of unnecessary code. Since none of the JavaScript runtime features are statically referenced anywhere in the code.
In Xamarin, there was a way to completely disable trimming (linking) only for specific assemblies. And we were able to use YantraJS successfully in the Xamarin by disabling trimming.
I think if it is not possible to trim entire assemblies, the feature may come in future. In this case, you can supply assemblies (YantraJS.Core, and YantraJS.ExpressionCompiler) as a separate file and load them dynamically via Assembly.Load.
I will keep the issue open till I find some easy way to entirely ignore trimming/linking whole assemblies.

With <TrimmerSingleWarn>false</TrimmerSingleWarn> you can get warnings of which methods specifically would need annotations (should help narrowing down the warnings). Shouldn't need annotations on every method, they're just hints for dynamic methods which the trimmer can't determine if it needs or not.

I think if it is not possible to trim entire assemblies, the feature may come in future. In this case, you can supply assemblies (YantraJS.Core, and YantraJS.ExpressionCompiler) as a separate file and load them dynamically via Assembly.Load.

@ackava You mentioned supplying assemblies to YantraJS.Core and YantraJS.ExpressionCompiler, I wonder.. Is it possible to currently save the JavaScript compiled Assembly to a .dll file?

@cyraid It would not work as every method would need to be present to execute the code. Also compile to assembly is actually used as caching as opposed to shipping assembly as alternative to JS. We haven't tried it yet.
We are working on a new feature to improve faster loading time by statically initializing Runtime features as opposed to using reflection. This will improve speed and might support trimming.
We will keep this issue open till then.

@cyraid It would not work as every method would need to be present to execute the code. Also compile to assembly is actually used as caching as opposed to shipping assembly as alternative to JS. We haven't tried it yet.
We are working on a new feature to improve faster loading time by statically initializing Runtime features as opposed to using reflection. This will improve speed and might support trimming.
We will keep this issue open till then.

Thank you! :)

@cyraid We have removed all Reflection code and we have replaced it with generated source, AOT trimming should work, you can try new release and let us know if you face any issues.


Observer or Change Event

Hi,
can you imagen of an easy way to subscribe to changes on the dictionary? Or of a way to extend the UltraDict to be able to subscribe for changes?
I have two processes sharing a configuration trough an UltraDict, but I would like to avoid polling the values every x seconds to ensure that both processes using the currently set configuration, if one of both changes some values. It would be nicer to have a callback function or something similar.
I am not a native python programmer, so maybe there are already other approaches for it in python, but I couldn't figure out something that I would assume could work in this scenario. What are your thoughts about that?
best regards,
ahorn

Hi,
I guess it depends a bit on your use case, but it's true, UltraDict is not an event library. With UltraDict, you could just use those configuration values where and when you need them and UltraDict would update them automatically in the background. You'd have to share more information on what kind of configuration, why and when it changes and what would kind of actions be in the callbacks.
Best, Ronny

Hi Ronny,
well, let's describe a little more what I want to archive. I have python tool (let's call it process 1) that is controlling a network interfaces link quality (package loss, delay, bandwidth etc.) - it has an inbuilt command line interface for controlling the parameters. On the other hand I have a REST interface based on a flask project (that is process 2), that should also allow to change the link quality parameters via http.
The link quality parameters are stored in the configuration which is shared via an UltraDict. So process 1 can read and change the values and will directly apply them, process 2 can only read and change the parameters.
Now it would be nice for process 1 to get notified, if a value in the configuration changes, so that it can apply the change. Therefore a call back would be sufficient, as I only need to call the "UpdateLinkQuality" method. As the REST interface is only reading/writing the values in an event driven way it would not be necessary to get notified of any changes, as it rereads the value every time it gets a request.
Due to design decisions the both interfaces should stay separated, so it is not an option to integrate the REST part directly into the tool.
For the later use case I assume the values might sometimes change every 1-5 seconds, but most time they would not change for minutes or hours.

Hey, I think in this case maybe look into using Pipes: https://docs.python.org/3/library/multiprocessing.html#multiprocessing.Pipe
They have a blocking get() method which you could use to trigger events. You would have a tread in process 1 trying to read from the pipe which is blocking until process 2 sends something to the pipe. This is your event to do something, e. g. call the UpdateLinkQuality method.


feature request/future bug: TheTVDB v2 API

TheTVDB XML API sometimes returns truncated responses which cause parse errors in the scraper. Example as of this posting:
WARN  o.tinymediamanager.core.tvshow.tasks.TvShowEpisodeScrapeTask - Error getting metadata ExceptionType=MAPPING_FAILED, ResponseCode=0, URL=http://thetvdb.com/api/<API_KEY>/series/278518/all/en.xml, cause=The element type "RatingCount" must be terminated by the matching end-tag "</RatingCount>".
happens when pulling a file that ends like this:
<Episode>   <id>6047301</id>   <Combined_episodenumber>14</Combined_episodenumber>   <Combined_season>4</Combined_season>   <DVD_chapter></DVD_chapter>   <DVD_discid></DVD_discid>   <DVD_episodenumber></DVD_episodenumber>   <DVD_season></DVD_season>   <Director></Director>   <EpImgFlag></EpImgFlag>   <EpisodeName>Episode 103</EpisodeName>   <EpisodeNumber>14</EpisodeNumber>   <FirstAired>2017-06-04</FirstAired>   <GuestStars></GuestStars>   <IMDB_ID></IMDB_ID>   <Language>en</Language>   <Overview></Overview>   <ProductionCode></ProductionCode>   <Rating></Rating>   <RatingCount>0</Rat
There are some posts about this happening on their forums. One thread below says that this is an XML generation issue that requires a manual refresh on their end; they also encourage migration to their v2 JSON API which bypasses this issue. The XML API will be EOLed on 2017-10-01
https://forums.thetvdb.com/viewtopic.php?f=17&t=36909 (thread with response from thetvdb moderator)
https://forums.thetvdb.com/viewtopic.php?f=17&t=37586 (another instance of this issue, no official response)
http://thetvdb.com/wiki/index.php?title=Programmers_API (note about EOL)
https://api.thetvdb.com/swagger (new API doc)
Failures seem to be sporadic depending on the data-source state, but the forums indicate that they are linked to use of their soon-to-be-defunct XML API. Just wanted to bring it to your attention. Great project!

I'm encountering this too when trying to scrape episode metadata.
2017-05-29 04:25:56,600 DEBUG [tmmpool-unnamed-task-T17-G1951] org.tinymediamanager.scraper.http.Url:241 - getting http://thetvdb.com/api/<API_KEY>/series/76703/all/en.xml
2017-05-29 04:25:56,792 WARN  [tmmpool-unnamed-task-T17-G1951] o.t.c.t.tasks.TvShowEpisodeScrapeTask:139 - Error getting metadata ExceptionType=MAPPING_FAILED, ResponseCode=0, URL=http://thetvdb.com/api/<API_KEY>/series/76703/all/en.xml, cause=Element type "thumb_" must be followed by either attribute specifications, ">" or "/>".

well tvdb has some issues with v1 at the moment
more infos at http://forum.kodi.tv/showthread.php?tid=142723&pid=2592935#pid2592935

I already worked on implementing apiv2 but encountered a problem. Reported it, but 2 months no response from their devs..
So this has to wait just a bit longer

Sorry to hear that, I think I see your comments in the API discussion thread over there? About language ID and easier access to artwork? It does looks like their devs have gone dark in the API forum.
I think they have to manually add you (maybe PM someone?), but they also have an issue tracker on trello (https://trello.com/b/ZeC1OCZ4/api-v2-tracker)...it also seems kind of dead. I found that link here (https://forums.thetvdb.com/viewtopic.php?f=17&t=29984)


Update data-box-deploy-set-up.md

Correct typo of TWINMAX to TWINAX

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

@tedmanlee Looks good, thank you! #sign-off


UI: Add unit tests for Glossary

Feature
Glossary unit tests
Describe the task
Add unit tests to support functionality of Glossary page

[x] Glossary Page tests
[ ] Glossary Details tests
[ ] Glossary Term Details tests
[ ] Add Glossary tests
[ ] Add Glossary term tests

Current coverage in main branch just for status check:
=============================== Coverage summary ===============================
Statements   : 40.34% ( 7335/18183 )
Branches     : 18.3% ( 2790/15242 )
Functions    : 21.75% ( 814/3743 )
Lines        : 37.98% ( 5963/15700 )
================================================================================


wallet is not accessible and database Issue after upgrading from v2019-09-09 to v2019-09-29

Just checking...

[X] This is a cardano-wallet bug.
[X] I am using the latest cardano-wallet release.
[X] I am using the correct cardano-node version for that release of cardano-wallet.

Version
v2021-09-29 (git revision:<PHONE_NUMBER>ce442a8451fb46fb5339346e62b4ee)
Platform
Linux 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Installation method
Binary from GitHub release page
Network configuration
mainnet
Context
I was running cardano-wallet v2021-09-09 (git revision: 011a258c1b5ba57ca70f13346109ce3074820032) and upgraded to v2021-09-29 (git revision:<PHONE_NUMBER>ce442a8451fb46fb5339346e62b4ee) but one of my wallets was not accessible
When trying to get a transaction of a wallet I got this error:
{"code":"wallet_not_responding","message":"That's embarrassing. My associated worker for WALLET_ID is no longer responding. This is not something that is supposed to happen. The worker must have left a trace in the logs of severity 'Error' when it died which might explain the cause. Said differently, this wallet won't be accessible until the server is restarted but there are good chances it'll recover itself upon restart."}
in the logs I've found this:
cardano-wallet.wallet-engine:Error:85]#033[0m [2021-10-20 18:53:08.54 UTC] Worker has exited: Unhandled exception: user error (Couldn't parse field localTxSubmissionTxfrom tablelocal_tx_submission. DecoderErrorDeserialiseFailure "Shelley Tx" (DeserialiseFailure 0 "expected list len or indef"))
I've tried restarting the node and it didn't solve the issue.
after rolling back to the v2021-09-09 (git revision: 011a258c1b5ba57ca70f13346109ce3074820032) it started to work again
Description
Steps to Reproduce

create more than one shelley wallet using cardano-wallet v2021-09-09 and cardano-node 1.29.0
upgrade cardano-node and cardano-wallet
try to get a tx from the wallets

Expected behavior

get a tx from every wallet that has been created
Actual behavior

one of the wallets is not accessible

Thanks for reporting. Created Jira ticket to track the migration issue -> ADP-1224.
It seems that issue is happening only when there are pending transactions on the wallet. Another workaround then would be to make sure all transactions are in ledger before migrating from v2021-09-09 to v2021-09-29.

We've tried to upgrade again now making sure all recent transactions were in ledger, and it went smooth, thanks for the help

How did you solve it？delete the local_tx_submission table？

before upgrading, we've listed the recent transactions of every wallet we have and checked if all were "in ledger" that being true, we've stopped cardano-wallet and cardano-node, upgraded both, and started again

Thanks, i recover wallet from mnemonic

We've tried to upgrade again now making sure all recent transactions were in ledger, and it went smooth, thanks for the help

How did you solve it？delete the local_tx_submission table？

before upgrading, we've listed the recent transactions of every wallet we have and checked if all were "in ledger" that being true, we've stopped cardano-wallet and cardano-node, upgraded both, and started again

Thanks, i recover wallet from mnemonic

Hello user
PM and explain your wallet difficulties.


fix: merge conflicts

Merged Optimism's repo develop branch and:

Fixed import conflict on OptimismSuperchainERC20.t.sol
Fixed missing uinversal folder on interfaces import path's

Fixed on new branch: https://github.com/defi-wonderland/optimism/pull/48


can we use this in a captive portal webpages that opens in the default web viewer ?

Can you please provide more details on what you are trying to achieve?

I mean using dns rebinding attack against the captive portal page
here is what i have in my mind ..... evil twining a wifi using fluxion or whatever .... when the user opening the captive portal sign in network page (that has dns rebinding scripts in it )is detected we stop the ddos ... the user auto connects to his wifi then the page refreshes and execute the dns rebinding attack to get the wifi password from his router ....
i asked this question cause the android phones doesn't open the captive portal web pages in chrome or the default web handler automatically but manually
image
i think it opens it in (Android Browser) maybe this Android System WebView
https://play.google.com/store/apps/details?id=com.google.android.webview&hl=en
so i didn't think it will function well in this browser

@gdncc

@gdncc  hi can you answer me please?

Sounds like an interesting attack scenario but I don't believe that DNS rebinding is required based on your description.

@sanktjodel
"Sounds like an interesting attack scenario"
Thanks :)
.
"I don't believe that DNS rebinding is required based on your description. "
Why ?  And what do you think  the required  is ?

You want to use DNS Rebinding when you need to read the response of the web server.
A lot of vulns for routers can be exploited without reading the response. But for example if the router has CSRF you would need DNS Rebinding.

Why would i need to read  the response  ?
What are the alternatives  ?

Maybe in the response there is important information you are interested in.
Also you need to read the response to read the token if the page has anti-CSRF. More info:
https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.md

@0ca
In the Testing for Vulnerable Services part
I need to set the host first to test the server right ? curl --header 'Host: rebind.it' <IP_ADDRESS>:8080
.
And it looks i need to read more of these
"https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.md"
I would really like  to see a visualize  tutorial  of such attacks on routers . As i found non online :(

@0ca
@gdncc
@sanktjodel
i found it
https://sinister.ly/Thread-DNS-Rebinding-Attack
but i am stuck
https://superuser.com/questions/1424328/why-i-cant-login-to-my-router-using-curl-d-option

Thanks I found it anyway ;)


[7885] Modify Duration_t xml schema and parsing to match documented behaviour

Notice that this pull request must be merged after #1046.
We noticed that Duration_t was ignoring the DURATION_INFINITY, DURATION_INFINITE_SEC and DURATION_INFINITE_NSEC specifications given in the xml configuration files.
XSD schema was adapt to match, as much as possible, the documented behavior. XSD doesn't admit to restrict complex types with mixed test and subelements, thus, DURATION_INFINITY is only verified on parsing and ignored on validations against the schema.
Solving this problem another was detected on the performance test. The CTestFiles generated didn't include fastrtps dependencies on windows leading to systematic test failures. Because our continuos integration tests use colcon this behaviour wasn't noticed before (colcon populates the environment with all dependencies).

Build status:

Linux
Mac
Windows

Please rebase on top of bugfix/log_issue_on_debug

Build status:

Linux
Mac
Windows

Build status:

Linux
Mac
Windows


[SPARK-45587][INFRA] Skip UNIDOC and MIMA in build GitHub Action job

What changes were proposed in this pull request?
This PR aims to skip Unidoc and MIMA phases in many general test pipelines.
Why are the changes needed?
Since we have an independent document generation and mima checking GitHub Action job, we can skip it in the following many jobs.
https://github.com/apache/spark/blob/73f9f5296e36541db78ab10c4c01a56fbc17cca8/.github/workflows/build_and_test.yml#L142-L190
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Manually check the GitHub action logs.
Was this patch authored or co-authored using generative AI tooling?
No.

Thank you, @yaooqinn ! Yes, I believe so.

hmm... does lint perform a mima check? I didn't find it in the log. Are there any other tasks that perform a mima check?

Let me double-check. Maybe, I was confused there.

You're right. I added to lint job. Thank you, @LuciferYang .

AT the last commit, I verified that MIMA passed. Since the skipping UNIDOC and MIMA is verified at the previous commit, I'll merge this. Thank you again!

Recently, we added more test pipelines to master branch. Let me backport this to branch-3.5 and branch-3.4 to reduce the total GitHub Action resource usage.


Merge Request

Updates/fixes have been made and requesting merge

Version bump package.json and tag a release

Also add an actual Help file

Updated all changes! ready to pull


Write a CloudFormation Template using the AMI

Write a CloudFormation Template using this AMI built in #49
Aim
With the help of AMI from #49 , we need to create a CloudFormation Stack Template for spinning up a three nodes ShardingSphere cluster.
Instructions

Using the example Cloud Formation Template below
Setup UserData for starting the cluster
Setup NodeGroup AMI with AMI created in #49

Result
This work could be finished with a document under doc/ recorded the operating procedure.

Proposed a AWS CloudFormation Template #65


allow separate data-weighting by partition

Imported from redmine, Issue #83862
Opened by @iantaylor-NOAA on 2020-10-14
Status when imported: New
All the data-weighting options for composition data (Dirichlet-Multinomial parameters, sample size adjustments, and lambdas) apply equally to all partitions within a fleet. Many west coast groundfish stocks have much higher sample sizes of discards from the observer program than the shoreside sampling of retained fish. This likely leads to the discard data having a greater influence on model results than the retained fish which may not always be appropriate.
Providing a simple mechanism for separate weights by partition would be require some changes to the model input structure, such as

a new Partition column next to ParmSelect in the table of comp likelihood specifications in the data file to allow separate D-M parameters by partition
a new Partition column next to fleet in the "Input variance adjustments factors" in the control file for use in the McAllister-Ianelli or Francis methods
a new Partition column (or repurposing the sizefreq_method column) in the lambda inputs (facilitating the use of different lambdas by partition seems like a lower priority)

Alternatively, some code could be used with existing input structure to implement this, such as adding 1000 to the fleet number in the variance adjustments factors to have it apply to partition 1 and 2000 to apply to partition 2 (although this applying an adjustment to data only from partition 0 would perhaps require the confusing use of adding 3000).
The table in the data file where the Dirichlet-Multinomial parameters are input always has a single row for each fleet, so this would require some other trick to create separate parameters for each partition within the existing input structure.
The assessment team at NWFSC has a strong interest in exploring this possibility, but we could also adjust the input sample sizes as a less elegant approach to testing the impact of separate data-weighting by partition.

Need to do this without changing the i/o for all users

Thanks for the suggestions on the input options.
Good news is that the logL is already stored for each observation and each observation "knows" whether it is discard, retained, or combined.
So the only change is when the individual obs get combined into total logL:
if(header_l(f,i,3)>0) length_like_tot(f)+=length_like(f,i);
so length_like_tot(f) needs to get a partition dimension.
similar dimension addition for length_lambda(f,phase)
then the total will need to use some matrix notation, not the elegant vector sumproduct summing as current:
obj_fun += column(length_lambda,k_phase)*length_like_tot;

Just in case it got lost in the thread, this is needed for the next assessment cycle for west coast groundfish (work starts fall 2022)

Yes.  This and DM for size comp are competing for next big change.

@iantaylor-NOAA @kellijohnson-NOAA @chantelwetzel-noaa
I'm looking to start this change, which will be very tricky regarding the internal indexing.
Question:  I am thinking of implementing this option for the D-M method first and perhaps only.  Would that be OK?

Applying first to D-M makes lots of sense in terms of a pilot application to see how much difference we're seeing in the estimated weights. The question of only D-M being satisfactory in the long term could depend on how well we can get by with just D-M for those stocks where the weighting is estimated to be quite different.
In the most recent two cycles, the PFMC groundfish assessments have had a mix of D-M and Francis weighting, where the choice between them is typically driven by subject choices related to the plausibility of the results (e.g. for Big Skate the D-M seemed to work fine, but for Longnose Skate it put too much weight on the indices relative to the comps causing bad residual patterns and less realistic estimates of growth). However, it would be great if D-M worked for every stock because of the automated aspect and having separate weighting for discards and retained comps may cause it to perform better and allow us to move more fully in that direction.
I could see it being frustrating to not be able to compare D-M vs Francis with separate weights for discards and retained, but I supposed a hack to facilitate that comparison if someone thinks it's necessary would be to use the estimated D-M weights for discards vs retained to adjust the input sample size for the discards and then apply the Francis weighting with that fixed ratio embedded into the inputs. Also, if we're stuck with a single weighting option, that's one fewer challenge for the assessors to deal with. Comparisons of multiple methods are encouraged but not required by PFMC SSC: "STATs are encouraged to provide a rationale for the method they select and are encouraged to conduct sensitivity runs with the other methods." (accepted practices guide link)

I think that just for D-M is fine Rick. I think that it will be a good proof of concept and force us to really figure out why there are differences between D-M and Francis rather than just defaulting back to what use to be used. I wonder if a little bit of research needs to be done on input sample sizes such that the composition data do not overwhelm the index data?

Looked at the code and realize that the current indexing scheme that allows D-M parameters to be shared by multiple fleets is already complex.  Elaborating it to do partition also is going to be challenging.  May need a major overhaul of the I/O.
Currently, the code expects this input line for each fleet:
#_mintailcomp addtocomp combM+F CompressBins CompError ParmSelect minsamplesize
an alternative would be to read list of:
fleet, partition, mintailcomp addtocomp combM+F CompressBins CompError ParmSelect minsamplesize
-9999 to end reading
code could invoke this alternative approach by imbedding a flag in this current input:
3 # length bin method: 1=use databins; 2=generate from binwidth,min,max below; 3=read vector;   with values > 10 indicating to use alternative input

[ ] change all vectors like:  Comp_Err_A(f)   to matrix:  Comp_Err_A(f,partition)
[ ] create the alternative Input, including option to fill for all higher number fleets

Thought about that, but it did not lend itself to obvious internal storage solution.  Will consider further before proceeding.

That makes sense. I haven't thought about internal storage at all. We can adapt to whatever design is easiest to implement.

not ready to do a pull request yet, but the I/O for new format is working:
2 # use length composition data (0/1/2) where 2 invokes new comp_comtrol format
.........
#_Using new list format for composition controls
#_fleet partition mintailcomp addtocomp combM+F CompressBins CompError ParmSelect minsamplesize
0 0 0.0001 4e-07 0 0 0 0 1
1 1 0.0001 2e-07 0 0 0 0 1
1 2 0.0001 3e-07 0 0 0 0 1
-9999 1 0.0001 1e-07 0 0 0 0 1


DynamicTool throws an error if there is a curly bracket in the tool description

If you create a DynamicTool with a curly bracket character, it will crash. The error hints at the tool description being parsed in some special way, but I didn't find documentation on this. This is all I found: https://js.langchain.com/docs/modules/agents/tools/
Here is some code demonstrating the issue:
import * as dotenv from 'dotenv';
dotenv.config();

import { ChatOpenAI } from 'langchain/chat_models/openai';
import { initializeAgentExecutorWithOptions } from 'langchain/agents';
import { DynamicTool } from 'langchain/tools';

let iteration = 0;

async function jobSearch(query) {
    console.log('jobSearch input:', query);
    return 'Search results: job1, job2, job3';
}

const callbacks = [
    {
        handleLLMStart: async (llm, prompts) => {
            iteration++;
            console.log(`${iteration} LLMStart, llm`, llm);
            console.log(`${iteration} LLMStart, prompts`, prompts);
        },
        handleLLMEnd: async (output) => {
            console.log(`${iteration} LLMEnd, output`, output);
        },
        handleLLMError: async (err) => {
            log.error(`${iteration} LLMError, err`, err);
        },
    },
];

export const run = async () => {
    const model = new ChatOpenAI({ temperature: 0, verbose: false, callbacks, modelName: 'gpt-4' });
    const tools = [
        new DynamicTool({
            name: 'jobSearch',
            description: `Useful for finding jobs. The input to this tool is JSON containing { location, jobTitle, salary } and the the output will be a list of jobs that match the query.`,
            func: async (query) => {
                return await jobSearch(query);
            },
        }),
    ];

    const executor = await initializeAgentExecutorWithOptions(tools, model, {
        agentType: 'chat-zero-shot-react-description',
    });

    const input = `Search me test engineer jobs in London`;

    console.log(`Executing with input "${input}"...`);

    const result = await executor.call({ input });

    console.log(`Final answer after ${iteration} iterations:\n`);
    console.log(result.output);
};

run();

Gives output
Executing with input "Search me test engineer jobs in London"...
file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/prompts/chat.js:178
                    throw new Error(`Missing value for input variable \`${inputVariable}\``);
                          ^

Error: Missing value for input variable ` location, jobTitle, salary `
    at file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/prompts/chat.js:178:27
    at Array.reduce (<anonymous>)
    at ChatPromptTemplate.formatMessages (file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/prompts/chat.js:176:62)
    at async ChatPromptTemplate.formatPromptValue (file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/prompts/chat.js:74:32)
    at async LLMChain._call (file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/chains/llm_chain.js:79:29)
    at async LLMChain.call (file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/chains/base.js:65:28)
    at async LLMChain.predict (file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/chains/llm_chain.js:98:24)
    at async ChatAgent._plan (file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/agents/agent.js:197:24)
    at async AgentExecutor._call (file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/agents/executor.js:82:28)
    at async AgentExecutor.call (file:///Users/tim.buckland/git/scrapbook/node/langchain/node_modules/langchain/dist/chains/base.js:65:28)

Node.js v18.16.0

Using langchain 0.0.68
If you remove the curly brackets from the description, the code will run, but still not work correctly. Will raise a separate issue for that.

This is similar to this issue: #1082
We need to be able to escape curly braces.

Hi @dosu-beta I looked at the code and worked out you can escape a curly brace by adding another curly brace like this {{ so you can close the issue. Best regards!


WIP

Overview
What I've done
What I haven't done
How I tested
Screenshot
Which point I want you to review particularly
Memo

@dongri
Commented on.
Please check it.


Add support for Laravel 9

PHP 8.1
Laravel 9
OSX 12.1
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires laracasts/cypress ^1.4 -> satisfiable by laracasts/cypress[1.4.0, 1.4.1].
- laracasts/cypress[1.4.0, ..., 1.4.1] require illuminate/support ^6.0|^7.0|^8.0 -> found illuminate/support[v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.

You can also try re-running composer require with an explicit version constraint, e.g. "composer require laracasts/cypress:*" to figure out if any version is installable, or "composer require laracasts/cypress:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

That's done now as part of v1.5.0

Thank you


Add Bitbucket notifications

Seems like, Bitbucket behaves similar to Gitlab and Github about webhooks. It shouldn't be hard to add it.
See https://confluence.atlassian.com/bitbucket/manage-webhooks-735643732.html

testing notifications


It's not setting the viewing history

I can see that the history is being saved when I export but not being imported

@persocon currently, the import function is only able to import the rating history, but that will hopefully change soon. However, you now already have your data and once the functionality is added you will be able to import your old viewing history too, even if you don't have any access to the old account anymore.

Anything we can do to speed things along? Do you have a Patreon we can contribute to or something?

Thank you for your interest in this project and for offering your help! Sadly, what is holding up the progress is not a lack of money but rather my lack of time. However, I do have a plan for moving things along, that I am slowly but seadily working on:

Refactor node-netflix2. netflix-migrate just provides a CLI interface for node-netflix2, which then actually performs all the necessary requests. IMO, the code is kind of a mess and I would like to move it to ES6 etc. Thas is what I'm currently working on.
Find a "quick and dirty" way to implement this feature. My first idea would be to visit the netflix page and pretend to watch a video without actually downloading the video (in order to not look like a DOS attack). A good way to help would be to figure out, if and how exactly that would be possible.
Figure out how to send just the API calls. Last time I checked, they were encrypted and I pretty much gave up there because I had more important things to do. The plan would be to figure out where on netflix' website the encryption for this request happens, and hopefully figure out what the data looks like before encryption and how exactly it's encrypted.

If you (or anyone else, for that matter) would like to contribute to any of those steps, please feel free to do so! I'm also welcome to new ideas on how to tackle this matter.

Any update on this feature or has it been abandoned?

Nope, I'm sorry to say there has been no update so far. There has been some more research into the API calls but I wasn't able to figure out anything important. Currently, it looks like the quick and dirty version is the way to go, but I won't have the time to implement it until at least february.
I'm really sorry that this project is making such little progress. If anybody really needs this feature urgently, please feel free to create a pull request!

Nope, I'm sorry to say there has been no update so far. There has been some more research into the API calls but I wasn't able to figure out anything important. Currently, it looks like the quick and dirty version is the way to go, but I won't have the time to implement it until at least february.
I'm really sorry that this project is making such little progress. If anybody really needs this feature urgently, please feel free to create a pull request!

No worries, thanks for the update!

@LBBO have you seen any evidence of an undocumented way to set the watched status without actually streaming the video?  I know you haven't figured out how to send the encrypted calls, but was just curious if you had found anything that led you to believe this might be possible without actually streaming the video.

No, I haven't seen any explicit evidence, but I strongly assume it is possible.
When I record my network traffic while manipulating the video progress (seeking, play, pause) there are generally a few different kinds of requests that are fired:

The video is buffered. Those requests could be responsible for updating the viewing history, but since Netflix preloads a portion of the video, I don't think that's the case.
Requests to [...]/personalization/cl2: these requests contain a ton of information in a JSON object. However, that object has a property type: 'CompactConsolidatedLoggingEnvelope', so this information might just be logged and that's it. Manipulating those requests might be my next attempt at figuring this out, though.
Requests to [...]/router. Those are the encrypted requests I already talked about.
Requests to [...]/pathEvaluator. I really don't think they are relevant to this feature because I don't see them transporting any relevant information.

Those last two types aren't sent after I seek to a specific video position, so I assume they at least aren't the only way of manipulating the viewing history (if they even do that at all). The only requests that are fired while watching a video (that has previously been buffered enough to not have to load any portion of the video while playing) are those to [...]/cl2, so that might be the solution.
If anyone wants to look into this some more: feel free! Otherwise, it might take me a while.

here's a simple browser-based example for e.g. Chrome:
import.html

Netflix Importer

export your file as netflixData.js in the same folder as import.html
add let _netflixData = to the front of netflixData.js
ensure you have the right profile selected
open import.html in Chrome or other browsers that might work

here's a simple browser-based example for e.g. Chrome:
import.html

Netflix Importer

export your file as netflixData.js in the same folder as import.html
add let _netflixData = to the front of netflixData.js
ensure you have the right profile selected
open import.html in Chrome or other browsers that might work

here's a simple browser-based example for e.g. Chrome:
import.html

export your file as netflixData.js in the same folder as import.html
add let _netflixData = to the front of netflixData.js
ensure you have the right profile selected
open import.html in Chrome or other browsers that might work

Can you explain a little better? I don't understand the let xxx to the front of

It should work from the old series to the new series, not from the most recent ones. That is, from below upwards.

- const movies = _netflixData.viewingHistory
+ const movies = _netflixData.viewingHistory.reverse()

The solution from allysanx above works beautifully as of writing this. Make sure to also follow the tips from danypacf and redsandro above (adjusting generated json file to make it a valid and usable js file AND add the reverse() to the import.html)
But I have some tips for future users/visitors:
a) make sure that ur browser isnt blocking the opening of new tabs (press allow or something on the popup from ur browser)
b) make sure to allow autoplay of audio AND video (in firefox -> settings -> search for autoplay -> adjust to allow for audio AND video
c) based on the amount of entries in ur exported json (visible as the tab title of the opened import.html, e.g. 0112/1614) maybe adjust the watchseconds variable in import.html before starting the session. In my case there were 1614 entries, each 20 seconds = ~9 hours. I reduced the watchseconds to 10, and it still worked perfectly fine, and i reduced the needed time from 9 to 4.5hours.
d) open the view history of the new profile you are importing to and make sure that the watched stuff is getting added, to see if everything is working as intended

The solution from allysanx above works beautifully as of writing this. Make sure to also follow the tips from danypacf and redsandro above (adjusting generated json file to make it a valid and usable js file AND add the reverse() to the import.html)
But I have some tips for future users/visitors:
a) make sure that ur browser isnt blocking the opening of new tabs (press allow or something on the popup from ur browser) b) make sure to allow autoplay of audio AND video (in firefox -> settings -> search for autoplay -> adjust to allow for audio AND video c) based on the amount of entries in ur exported json (visible as the tab title of the opened import.html, e.g. 0112/1614) maybe adjust the watchseconds variable in import.html before starting the session. In my case there were 1614 entries, each 20 seconds = ~9 hours. I reduced the watchseconds to 10, and it still worked perfectly fine, and i reduced the needed time from 9 to 4.5hours. (If your pc is fast enough to open the new tab and start the netflix video in an appropiate amount of time to actually get it playing a bit before the next video is started. So if ur pc is slow, stick to higher watchseconds.) d) open the view history of the new profile you are importing to and make sure that the watched stuff is getting added, to see if everything is working as intended

Hey! If you got time could you please make a video guide on this?

Got this working after taking in all the tidbit notes people mentioned here, except of my 3,700 shows, Netflix only shows continue watching for about 9 of them, most which seem to be series. So seems 20 seconds is not longer enough any more to trigger it's been watched. I did a couple quick tests and when I got to 1 minute and 35 seconds it counted it. I'll have to try more to find the exact amount, and perhaps it various based on the length of the movie/show, or varies based on the length of intro credits for the show? Setting a much longer time will resolve that but if you have a large number like mine it would take weeks. Or perhaps could update it to have it open new tabs every few seconds have lots of tabs open and I could manually just close them after a couple of minutes, unless if multiple videos are playing it doesn't work. Need to do more testing.

have it open new tabs every few seconds have lots of tabs open

It probably won't work; you can only have 2 (or 4 with Netflix Premium) tabs open at the same time.
I'm not subscribed to Netflix anymore, but someone should try to use their legal right under GDPR Article 16: Right to rectification [which is] the right to have incomplete personal data completed, including by means of providing a supplementary statement.
Just email them your watch list and demand they supplement the watch list in your account. I'm curious what would happen.

Hey everyone! Sorry for not helping out with this issue for so long, I was just really busy and, quite frankly, fed up with playing catchup with changes to Netflix's API or DOM structure or whatever every couple of months.
However, there's some good news! In case anyone hasn't heard, Netflix now officially supports account migration, including viewing history! For more details, see their official documentation. Since that feature implements exactly what this project was aiming to do, I will officially archive this repository now (see #73). Feel free to reach out if you have any further questions!


Allow form to be initialised with specified data

Modify reset function so that it accepts argument with data model that the form should be initialised with. This comes handy when you want to edit an object to have the form prefilled with object data by just passing the object to reset function instead of filling the fields manualy.

Hi @tomaash and thanks for the pull!
I agree this should be in there, but I have a suggestion for you. Since the goal here is to set some initial values, maybe we should put:
<Formsy.Form values={{
  foo: 'bar',
  bar: 'foo'
}}>
  <MyInput name="foo"/>
  <MyInput name="bar"/>
</Formsy.Form>

That way it is very specific to what you want to achieve. We could of course also merge in your change, as you still might need to reset the values easily :-)

Yes, exactly. Having the values in markup is not sufficient, I need to set them during runtime. Of course, api can be different. For example, there could be a new method called "setValues" or something. But passing argument to reset felt natural enough to me.

@christianalfoni can we merge this please? I already had to pull upstream to have some other bugs fixed in my brach. I'd really prefer to have this change there. Thanks..

Hi @tomaash , so sorry for late reply, but I have been completely in loss of time the last week. I will release a new version tomorrow morning including your fix!

Cool, thanks!

I tried this.refs.form.reset(model). Value passed in the model does attach to textfields but it does not reflect in the ui.

It works for me, but I did not try in the latest version. Also, check if your formsy inputs are sane, and if render method gets called properly.

I am using formsy-react 0.14.1 & formsy-material-ui 0.2.2
componentDidMount: function(nextProps) {
        this.resetForm({
            'name': 'asd',
            'email'<EMAIL_ADDRESS>        });
    },
resetForm: function (model) {
        this.refs.form.reset(model);
    },
submitForm: function (model) {
        console.log(model);
    }

When I submit I could see asd and<EMAIL_ADDRESS>but I can not see the value in the form itself.

I'd try to debug formsy-material-ui, their inputs might rely on some other mechanism to re-render.

@tomaash Thanks :+1:

By the way, is there any other hackish way of prefilling the values? I am kind of on a strict timeline.

@vijayrawatsan How about executing resetForm earlier, for example in componentWillReceiveProps or componentWillMount ? If this does not help try another formsy inputs. If this does not help, try it with https://github.com/twisty/formsy-react-components or with the sample input from initial documentation - if those works, you can track down the difference or make your own component from it and restyle it.

@tomaash I solved it in formsy-material-ui. https://github.com/mbrookes/formsy-material-ui/pull/10/files
Thanks a lot for the help. :santa:

That was quite an omission there. Good job! :+1:

@tomaash I am having a very similar issue to @vijayrawatsan. I added getValue() and setValue(), but event the simplest custom input component of mine is doing this.
If I reset a form, all boxes in the ui gets emptied. Then when I type on any one of the inputs, all other fields get set to correct reset values.
If I reset the form in setTimeout, fields blink for a moment but they get the correct values in.
The problem is
If I want to reset to an empty form (create forms) resetting in timeout will not work.
If I want to reset to initial values (update forms) resetting outside timeout will not work.
Having both of them makes the form very unstable.
Either way I don't want to have timeout as a workaround.


Click handler for non-touch devices

Added click handler for non-touch devices compatibility.
To the issue: https://github.com/twbs/ratchet/issues/569
Reduced test case: http://goratchet.com/components/#modals
If using  tag without a "btn" class, then modal will not be opened on non-touch devices.

@shmidt-i: please rebase and replace $(window) with vanilla JS. Also, make sure you don't add trailing spaces.

Closing for lack of reply.


The rules method does not allow an array of rules

The rules method in a collectionRequest only accepts the string syntax of rules.

Are you sure? Because it should also work with the array rules syntax.


HDDS-11303. Bump up hdds.container.ratis configurations

What changes were proposed in this pull request?
Bump up the following configuration defaults:

hdds.container.ratis.num.write.chunk.threads.per.volume to 20 (default: 10)
hdds.container.ratis.leader.pending.bytes.limit to 4 GB (default: 1 GB)
hdds.container.ratis.num.container.op.executors to 20 (default: 10)

What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-11303
How was this patch tested?
Existing unit and integration tests should cover the changes (no functional change).

Do they improve performance? How much?

/pending numbers


Update tags support for RouteTable resource

Description of changes:

Implemented updateTags support for RouteTable resource.
Added e2e tests for update tags.

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

/retest

/retest

Modified RouteTable and Instance tags support tests as the tests are failing on checking whether tags are deleted or not. When the resource is created, along with the tags that we specify, two service tags are also getting added. When we delete the tags from resource, only the specified tags are removed but not the service tags, modified the test to check if the specified tags are removed or not from the tag list.


Do not allow empty feature name

What does this PR try to resolve?
Found it when I was working on https://github.com/rust-lang/crates.io/pull/7379
How should we test and review this PR?
See the unit tests and integration tests.
Additional information
Do we have any special reasons to allow empty names? I am not sure. It seems there is no way to use an empty feature.

Do we know how many of them are in crates.io index and do we want to make them unbuildable?

Crates.io doesn't allow empty feature names.
https://github.com/hi-rustin/crates.io/blob/7b34715de4d7e16903f02d70bc9cfd869e266bae/src/models/krate.rs#L227

There was an unintentional regression in 1.60 for this due to the switch to toml_edit which followed the spec more closely.

Oh, did toml 0.5 disallow empty keys?
Should we disallow any other empty keys, like dependency names (only relevant when using package)

:pushpin: Commit d61816465f25b918acf8800afd8cbbd1c6d73c89 has been approved by epage
It is now in the queue for this repository.

:hourglass: Testing commit d61816465f25b918acf8800afd8cbbd1c6d73c89 with merge fed84e0e1e17de16ba8b3ed09eb42ab44e0ef6fc...

:sunny: Test successful - checks-actions
Approved by: epage
Pushing fed84e0e1e17de16ba8b3ed09eb42ab44e0ef6fc to master...


High Severity - Remote Code Execution Bug found in "kramdown" GEM

High Severity Found - Code Execution found in "kramdown" GEM,
Details available at :

This was closed by https://github.com/fastai/fastpages/pull/381


Minify_HTML breaks DOM interpretation with attributes.

Minify_HTML::process

Putting attribute list on new line breaks the DOM interpretation, as the tag
and attribute name are seen together.

To fix it, I tried adding a space next-to newline.

(file: lib/Minify/HTML.php line: ~139)
$this->_html = preg_replace('/(<[a-z\\-]+)\\s+([^>]+>)/i', "$1\n $2",
$this->_html);

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 17 Jun 2011 at 11:24

Can you give an example of markup it breaks?

Original comment by<EMAIL_ADDRESS>on 17 Jun 2011 at 4:26

It's perfectly valid to use "\n" rather than " " as whitespace in a tag, and
browsers should have no problem parsing it. FF5/XP and FF4/OSX both do fine for
me rendering these pages, which are processed by Minify_HTML:

http://mrclay.org/min/builder/
http://fawn.ifas.ufl.edu/mobile/260

Can you create a public demo page so others can verify this is indeed a FF4
parsing bug and not some kind of authoring error?

Original comment by<EMAIL_ADDRESS>on 24 Jun 2011 at 9:54

Changed state: NeedInfo
Added labels: Priority-Low
Removed labels: Priority-Medium

I had following snippet in a template file and was trying to minify and merge
it on the html page.

 View:

The output was:
<divclass="toolbar"> View:

Hope it helps.

Original comment by<EMAIL_ADDRESS>on 21 Jun 2011 at 5:07

I can't reproduce this bug. The output I get has a newline between "<div" and
"class=". Can you give me another example?

Original comment by<EMAIL_ADDRESS>on 23 Jun 2011 at 7:28

Try the following:

<?php

set_include_path(dirname(__FILE__). '/libs/min/lib' . PATH_SEPARATOR .
get_include_path());
include_once 'Minify/HTML.php';

$input = '
aContent
';

echo Minify_HTML::minify($input);
?>

Output was:

aContent

which firefox 4.x interpreted as <divclass="aClass"... and missed applying the
style.

Original comment by<EMAIL_ADDRESS>on 24 Jun 2011 at 4:57

Original comment by<EMAIL_ADDRESS>on 3 Sep 2011 at 11:11

Changed state: Invalid


Deployment on testnet fails with latest sdk development

Deploying on testnet nodes failes due to failed to decrypt secret env var 'POSTGRES_PASSWORD': decryption error
example wid: https://explorer.testnet.grid.tf/api/v1/reservations/workloads/490518
how to reproduce:

Deploy any container on testnet with secret env
JS-SDK version: Latest development

can you give the full code that is used to deploy please. I did updated all the places I know of where we do encryption, but maybe they are some I do not now about.

can you give the full code that is used to deploy please. I did updated all the places I know of where we do encryption, but maybe they are some I do not now about.

It's now on development_testnet. I got this error msg once, and then for the other workloads the node refused to accept the reservation

Can your give the code anyhow please

here's the encryption code https://github.com/threefoldtech/js-sdk/commit/c8588e546e09f942934a45dad7a111286eb977db
and used that chatflow: https://github.com/threefoldtech/js-sdk/blob/development_testnet/jumpscale/packages/marketplace/chats/gitea.py
explorer client and zos sal from the same branch here: https://github.com/threefoldtech/js-sdk/tree/development_testnet

@waleedhammam where does the encryption of the data you pass to the secret_enviroment field happens ?

@waleedhammam where does the encryption of the data you pass to the secret_enviroment field happens ?

In this part: https://github.com/threefoldtech/js-sdk/blob/development_testnet/jumpscale/sals/reservation_chatflow/deployer.py#L842


Limit and Skip in .populate break the query

Hello,
there seems to be a small bug with the standard sails populate blueprint which calls the populate method on a model. The skip and limit parameters seem to break the query. When I comment them out, the query is successful. I've ensured that the default values for skip and limit are set (0,30). So I think this is not a sails but a waterline issue.
  Model
    .findOne(parentPk)
    .populate(relation, {
      where: where,
      skip: actionUtil.parseSkip(req),
      limit: actionUtil.parseLimit(req),
      sort: actionUtil.parseSort(req)
    })
    .exec(function found(err, matchingRecord) {
      if (err) return res.serverError(err);
      if (!matchingRecord) return res.notFound('No record found with the specified id.');
      if (!matchingRecord[relation]) return res.notFound(util.format('Specified record (%s) is missing relation `%s`', parentId, alias));
      return res.ok(matchingRecord[relation]);
    });

Thank you :)

+1 Bump.  The limit, sort and skip are ignored when used within populate.

+1

Same thing here, on otherwise the same query:
populate({ where: { idStatuts: 1, deleted: 0 }, sort: 'published_at DESC', limit: 10 }) gives me only 5 results
whereas populate({ where: { idStatuts: 1, deleted: 0 }, sort: 'published_at DESC'}) gives me 15 results.
We are using sails 0.11.0 with the mySQL adapter.

Facing same issue as @barroudjo  When adding a limit (in my case 15) to a populate statement only 2 records are returned. Without the limit all 278 are returned.

@barroudjo, @KeKs0r those are most likely adapter issues and should be addressed in the adapter's github project. Also, if you could write a failing test in waterline-adapter-tests / associations that would help identify broken adapters and also to fix the issue. Thanks

This seems to be fixed with the latest release of sails-mysql. I'll let you know when we have time to test it.

Unfortunately I am using sails-postgres. And I have not seen an approach to fix this in there yet.

@KeKs0r, for mysql this was fixed in balderdashy/waterline-sequel#54 which should also have fixed postgres (waterline-sequel is shared by both). Are you using sails-postgres v0.10.16? If yes and if the issue persists would you mind raising an issue in https://github.com/balderdashy/sails-postgresql? Thanks

I can confirm this is fixed for mysql.

Yes indeed, I just needed to update.
On 27 July 2015 at 16:03, Jonathan<EMAIL_ADDRESS>wrote:

I can confirm this is fixed for mysql.
—
Reply to this email directly or view it on GitHub
https://github.com/balderdashy/waterline/issues/394#issuecomment-125217565
.


(ci) building antora docs as part of the PR fails when PR comes from a fork

Currently the CI calls out to the docs/site repo to build the antora docs and verify that changes to documentation are valid.
Unfortunately the call out to the docs/site repo requires a token to be passes. GitHub uses secrets from the PRs context and in a PR that was created from a fork the context is the forked repo. This means the token is missing which fails action.
It would probably be easier to change the CI action so that we build the antora docs under this repo rather than calling out to an action on docs/site repo.

Check out the code from docs/site here
alter the playbook file to point to the PRs changes
build antora in the action on this repo

Have we explored triggering the PR on pull_request_target instead? If I read the docs right, this would run in this repo.
On the other hand, I'm sure there are security concerns there we should consider.


docs: adds second snippet to Multiple Docroots in nginx

Added notes from Andy Blum on issue #4854

Still some textlint trouble, see https://github.com/ddev/ddev/pull/5761/files/606796bfec681a469df552b9b83c7d65a352e1fd..d12d5c6b11ba7a722c6fb4119d736ba6cea9d3a6

Sure, where do examples like this could go? Any preference?

The underlying problem is that there isn't good distinction in that docs page between snippets (.ddev/nginx) and full config (.ddev/nginx_full).
At one time I tried to remove the snippet feature and people screamed :)  Maybe the docs got confused.
If you wouldn't mind trying to add the difference into your PR it would be appreciated.

"Multiple Docroots" is an example of nginx_full (where the whole nginx config is replaced)
The HTTP redirect is an example of a snippet
Yours is an example of nginx_full, so the very least would be to turn multiple docroots and yours into nginx_full examples.
the idea of "snippet" is never explained, needs to be explained (where the snippet is placed into the config)

Sorry to have you stumble on this weakness, would love it if you could sort it out.

Sorry to have you discovering that problem. I'll be happy to take it up if you don't want to. Seems some docs must have been lost somewhere along the way.

I think I got most everything but explaining the snippets. That I'm not so sure.

Snippets (that go in .ddev/nginx) are included in the last line of the nginx-site.conf:
    include /mnt/ddev_config/nginx/*.conf;

https://github.com/ddev/ddev/blob/c9d8f544333e7d8f4692280279169df5f228fdcc/pkg/ddevapp/webserver_config_assets/nginx-site-php.conf#L70
That means that they can do anything they want in the server stanza, but can't do anything outside the server context.
nginx_full, of course, is the complete contents of nginx-site.conf, which can actually contain more than server

I rephrased it a little, but I will between that and the full example right below it it provides a clear picture.
I could have done the nginx custom config for ddev.com ddev config after looking and Andy example.
Without it there are too many unknowns.

I just realized that this probably actually belongs in https://ddev.readthedocs.io/en/latest/users/extend/customization-extendibility/#using-nodejs-with-ddev instead of in the nginx section (but the nginx section to refer to it)

I'm spending a little time with this.

I know tremendously little about the node.js ecosystem. But I assume there are websites entirely implemented in node.js, which could then be used with an nginx front-end and node.js back-end. That's essentially what you're doing here, but you're putting multiple back-ends in there and leaving the php-fpm back-end in use.

I think this ends up being too complex for the regular docs. Would you consider doing this as an article in ddev.com, or Stack Overflow?
I do think we can improve what we have currently, and I also agree that we should capture @andy-blum 's work, but I think this PR is going to be too much.

Sounds good

@bmartinez287 I started a blog post for my own site based on that same comment. Feel free to use it/modify it/etc
https://github.com/andy-blum/andy-blum/pull/8/files


Update angular and typescript dependencies

https://github.com/bougarfaoui/ng2-socket-io/issues/5

thanks for the PR.


Document how helm chart are supported in Okteto's built-in registry

We had a discussion in our community forum about the helm chart support in Okteto's built-in registry. After some testing, we support that scenario and it would be nice to include some documentation explaining how to use it. I'll include some information on how it works but feel free to ping me directly if you have any question about how it works
The use case is to use Okteto's registry to store helm chart artifacts in the same way we store images.  To do so, you can follow the next intructions.

Login with helm in the Okteto registry using your Okteto credentials:

helm registry login -u <user> <okteto-registry-url>
Password:
Login Succeeded

If your helm chart wasn't packaged yet, you can do it executing:

helm package <folder-with-chart-definition>
Successfully packaged chart and saved it to: <path-to-helm-artifacts-tgz>

Once you have your helm chart packaged, you can push it to the Okteto registry using the following command. Important note, you need to specify the Okteto namespace (at the end of the registry url) where the artifacts will be pushed in the same way it is done when pushing an image:

helm push <path-to-helm-artifacts-tgz> oci://<okteto-registry-url>/<okteto-namespace>
Pushed: <okteto-registry-url>/<okteto-namespace>/<helm-chart-name>:<version>
Digest: sha256:07805....

Now, you (or any other Okteto user with access to the Okteto namespace) should be able to pull the chart with the following command:

helm pull oci://<okteto-registry-url>/<okteto-namespace>/<helm-chart-name> --version <version>
Pulled: <okteto-registry-url>/<okteto-namespace>/<helm-chart-name>:<version>
Digest: sha256:0780569....

In the community forum I added an example on how to do it with Cloud and one of the helm charts defined in the movies example. I'll include it also here to illustrate how to apply the steps defined above. For this example, I will assume the movies repo is cloned locally.

First thing, we should login into the Okteto Cloud registry using our Okteto Cloud credentials:

helm registry login -u <user> registry.cloud.okteto.net
Password:
Login Succeeded

Lets go to the root folder of the cloned movies app and lets package the helm chart

helm package api/chart
Successfully packaged chart and saved it to: /Users/xxxx/xxxxx/xxxxx/xxxx/movies-api-0.1.0.tgz

Once the chart is packaged, lets push it to Cloud's registry

helm push /Users/xxxx/xxxxx/xxxxx/xxxxxx/movies-api-0.1.0.tgz oci://registry.cloud.okteto.net/<okteto-namespace>
Pushed: registry.cloud.okteto.net/<okteto-namespace>/movies-api:0.1.0
Digest: sha256:07805....

Now, you can verify everything was pushed correctly trying to pull the chart:

helm pull oci://registry.cloud.okteto.net/<okteto-namespace>/movies-api --version 0.1.0
Pulled: registry.cloud.okteto.net/<okteto-namespace>/movies-api:0.1.0
Digest: sha256:0780569....

We should also bear in mind the scenario of the global okteto namespace in the registry to make these artifacts accessible by all the Okteto users: https://github.com/okteto/docs/issues/111


Memory Leak. 2,000 Observers

Bug
I have a function on iOS and android that. pulls information every seconds adds location and sends it to react native.
React Native maps will get updated once per second to display a new coordinate.
After 10 seconds the programs stops responding. After looking through instruments via Xcode I see
 4 Foundation -[NSObject(NSKeyValueObserverRegistration) _addObserver:forProperty:options:context:]

Called 2,079 times in 35 seconds.
The stack trace shows
0 libsystem_malloc.dylib calloc
  1 libobjc.A.dylib class_createInstance
  2 libobjc.A.dylib +[NSObject allocWithZone:]
  3 Foundation _NSKeyValueObservationInfoCreateByAdding
  4 Foundation -[NSObject(NSKeyValueObserverRegistration) _addObserver:forProperty:options:context:]
  5 Foundation -[NSObject(NSKeyValueObserverRegistration) addObserver:forKeyPath:options:context:]
  6 PingifyV2 -[AIRMapMarker initWithFrame:] /Users/_kane7161/Xcode/Connectify/pingifyV2/node_modules/react-native-maps/lib/ios/AirMaps/AIRMapMarker.m:34
  7 PingifyV2 -[AIRMapMarkerManager view] /Users/_kane7161/Xcode/Connectify/pingifyV2/node_modules/react-native-maps/lib/ios/AirMaps/AIRMapMarkerManager.m:27
  8 PingifyV2 -[RCTComponentData createViewWithTag:] /Users/_kane7161/Xcode/Connectify/pingifyV2/node_modules/react-native/React/Views/RCTComponentData.m:71
  9 PingifyV2 __50-[RCTUIManager createView:viewName:rootTag:props:]_block_invoke /Users/_kane7161/Xcode/Connectify/pingifyV2/node_modules/react-native/React/Modules/RCTUIManager.m:951
 10 PingifyV2 __RCTExecuteOnMainQueue_block_invoke /Users/_kane7161/Xcode/Connectify/pingifyV2/node_modules/react-native/React/Base/RCTUtils.m:247
 11 libdispatch.dylib 0x102f476ef
 12 libdispatch.dylib 0x102f48c73
 13 libdispatch.dylib 0x102f566fb
 14 CoreFoundation __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
 15 CoreFoundation __CFRunLoopRun
 16 CoreFoundation CFRunLoopRunSpecific
 17 GraphicsServices GSEventRunModal
 18 UIKitCore UIApplicationMain

Is React Native creating and storing a new instance for every update?
The Map is the home screen on a stack navigator. So its front and center of the app.
Environment info
info
  React Native Environment Info:
    System:
      OS: macOS 10.14.6
      CPU: (4) x64 Intel(R) Core(TM) i5-7267U CPU @ 3.10GHz
      Memory: 96.53 MB / 16.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 10.15.3 - /usr/local/bin/node
      Yarn: 1.13.0 - /usr/local/bin/yarn
      npm: 6.4.1 - /usr/local/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2
    IDEs:
      Android Studio: 3.4 AI-183.54<IP_ADDRESS>52501
      Xcode: 10.2.1/10E1001 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.8.3 => 16.8.3
      react-native: 0.59.4 => 0.59.4
    npmGlobalPackages:
      create-react-native-app: 2.0.2
      react-native-cli: 2.0.1

Can you give more details and what exactly happens when you get the reply from the web service?
Are you adding new markers, are you re-rendering the map, etc?
Also do you really need a once per second refresh? (just asking)

Thanks for replying.
I am doing a ping test. So the map updates with each ping so a user can see information. I have the UI retrieving data once per second instead of when each ping receives a reply.
I have modified it to only update every 5 seconds. 1 second was way to much I just never expected to see the memory climb up to 300MBs in a matter of seconds and get killed.
I am adding new markers every 5 seconds, I would expect the markers with the same keys not to get redrawn every time but that seems to happen.
I would like to not re-render the map and just add more markers as information comes in.
Is this possible?

How many markers do you have? Also are they custom markers?

It gets bogged down around the 10th Marker.
Here is the actual Marker code
marker(marker, index) {
    var title = "Network: " + marker.ping.network.name;
    var description =
      "Adapter: " + marker.ping.adapter + " RTT: " + marker.ping.rtt + "ms";
    return (
      <MapView.Marker
        coordinate={{
          latitude: marker.location.latitude,
          longitude: marker.location.longitude
        }}
        key={marker.ping.network.name + marker.id}
        pinColor={marker.color}
        title={title}
        description={description}
      />
    );
  }

Here is my map code
 <MapView
          // provider={PROVIDER_GOOGLE}
          initialRegion={this.props.coordinate}
          style={styles.map}
          key="mapView"
          showsUserLocation={markers.length > 0 ? false : true}
          followsUserLocation={true}
          ref={ref => (this.map = ref)}
        >
          {screenProps.pings[0] != null &&
            screenProps.pings.map((marker, index) =>
              this.getMarkers(index, marker).map((pingMarker, pingIndex) =>
                this.marker(pingMarker, pingIndex)
              )
            )}
        </MapView>

this.getMarkers is the network call ?

No by the time it hits the map view the JSON object is already populated. The network calls are all done via iOS/android specific. Each platform then sends the data down to React Native.
Get Markers filters data
 getMarkers(index, marker) {
    var isLessThan = this.state.filterOption == "is Less Than" ? true : false;
    var speed = parseInt(this.state.speedOption, 10);

    if (isNaN(speed)) {
      console.log("Marker speed is NaN");
      return markers;
    }

    var operators = {
      ">": function(a, b) {
        return a > b;
      },
      "<": function(a, b) {
        return a < b;
      }
    };

not sure why is doing this 😔

It's very strange. What happens when a map is re rendered? Does that memory get re allocated?
Also when does it add these observers? Is there a way to flush the memory is use or check if there's really 10 instances of the map still alive?

There shouldn't be 10 instances of the map, unless you generate the map somehow in a function on every ping.
My approach in your case would be the next (please bear in mind I don't know anything about your project or how you do things so I might be totally off  🤣 )

build the map
initialize an empty state for markers
use this state to render the markers (this.state.markers.map....)
every ping that receives new markers modifies the state pushing/updating the new markers

makes any sense?

Yes, that makes sense. I do render them from props.
I will try assigning them to the state and see if there's a difference.
thank you for your suggestions

@mikeKane, I'm having a similar problem, did you manage to fix this? Can you show how you add the markers to the map?

I have managed to stop this behavior. I was passing screen props into the render function and assigning state through a filter function.
After I filter the props when the component mounts and listening to component will update that got rid of those leaks and it is fast now.
<MapView
          // provider={PROVIDER_GOOGLE}
          initialRegion={newRegion}
          style={styles.map}
          key="mapView"
          showsUserLocation={markers.length > 0 ? false : true}
          followsUserLocation={true}
          ref={ref => (this.map = ref)}
        >
          {markers.map((pingMarker, pingIndex) =>
            this.marker(pingMarker, pingIndex)
          )}
        </MapView>


Allow commandCharacters to work for messages sent to Discord

Fixes #217.
Alter the custom formatting code somewhat (to make it easier for the next change to be implemented):

Reorganize the comments describing how to format the custom formatting options
Make 'author' and 'nickname' synonyms in the custom formatting
Add a 'side' parameter for commandPrelude (takes 'Discord' or 'IRC', depending on whether the message was from Discord or IRC)

Add commandCharacters support for messages sent to Discord:

Add functionality for command messages sent in IRC to Discord, as from Discord to IRC
Add debug messages upon sending command messages
Add tests for the above and custom formatting of it

Coverage increased (+0.08%) to 98.298% when pulling 4120c5961ba1fc5534296509f8b8e99a2b435c03 on Throne3d:add/discord-commands into 884f0cafa048e4379f9290268ee59e92a8b2151a on reactiflux:master.


Update ashlar stone recipes to produce AshlarStone tag

Instead of specific stones like Ashlar Basalt
This is reverting a change made in the recipes update for 9.5
Difference can be seen here:

Love it


add "Compile and link statically to a bundled C library" example

Use cc-rs crate to compile and link statically to a bundled C library inside of a build.rs file.
Please note that it will be important to mention that this is a build time crate.
Most likely we will dedicate a separate (last) chapter like "build_time.md"
cc https://github.com/rust-lang-nursery/rust-cookbook/issues/236

Note: The trust repo is itself a basic example that could be copied and simplified.

Right! @jaemk Would you be interested in taking lead on this example?
I see this as the first example that would have the longest explanation followed by the next 4 examples listed in https://github.com/rust-lang-nursery/rust-cookbook/issues/236 showing the possible minor differences (with much shorter descriptions)

Sure! I can take a look at this tomorrow and setup a new build_tools file

merged


Fix auto mtls for PASSTHROUGH load balancer mode

Fixes https://github.com/istio/istio/issues/23494
Note: this is stacked on https://github.com/istio/istio/pull/31285. I will rebase it once that merges

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

/test all

@howardjohn: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
16c00e7247fbd532daae6223532e389695961bd7
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
16c00e7247fbd532daae6223532e389695961bd7
link
/test lint_istio

integ-security-k8s-tests_istio
16c00e7247fbd532daae6223532e389695961bd7
link
/test integ-security-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
16c00e7247fbd532daae6223532e389695961bd7
link
/test lint_istio

integ-security-k8s-tests_istio
16c00e7247fbd532daae6223532e389695961bd7
link
/test integ-security-k8s-tests_istio

integ-security-multicluster-tests_istio
16c00e7247fbd532daae6223532e389695961bd7
link
/test integ-security-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/cc @JimmyCYJ

/retest

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-security-multicluster-tests_istio
1ccd88933ffc4d2517a46243f1b1bf0b4c7dc61c
link
/test integ-security-multicluster-tests_istio

lint_istio
1ccd88933ffc4d2517a46243f1b1bf0b4c7dc61c
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
1ccd88933ffc4d2517a46243f1b1bf0b4c7dc61c
link
/test lint_istio

integ-security-multicluster-tests_istio
1ccd88933ffc4d2517a46243f1b1bf0b4c7dc61c
link
/test integ-security-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Changing the project title

After a straw poll at #flashcon, we’ve decided that we believe that the project name doesn’t reflect the ability of the project
Therefore, we need to track a motion to rename

Dotnet Extensible Reverse Proxy sounds good

I wish I booked a flight 😂

PS not renaming this: https://github.com/thefringeninja/Derp.Inventory

I agonized over this... I mean, who doesn't want to do dotnet add package Derp?? In fact, isn't that what we do every day.
However, in order to not jeopardize my future MVP award for open source contributions to a healthy dotnet OSS community and general all round Corporate / Enterprise / OSS Sponsor acceptance I must decline your valuable suggestions (except for your @jchannon, that one sucked).
I know that one day we will look back at this as an 'opportunity lost' or 'the package that got away'; I will have to live with the consequence of my decision.
With a heavy :heart:, Damian


wapiti: 3.1.6 -> 3.1.7

Diff: https://github.com/wapiti-scanner/wapiti/compare/refs/tags/3.1.6...3.1.7
Changelog: https://github.com/wapiti-scanner/wapiti/blob/3.1.7/doc/ChangeLog_Wapiti
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 223800 run on x86_64-linux 1

1 package built:

wapiti


Bad state: Stream has already been listened to.

I open camera in dialog box and first time this plugin scan QR but second time it's giving this error and even if i open camera and just close dialog box also that time it  gives me this error.
It's mean only first time plugin working fine but second time not working properly
Bad state: Stream has already been listened to.
MissingPluginException(No implementation found for method listen on channel dev.steenbakker.mobile_scanner/scanner/event)

On which device are you having this problem, android, ios, macos or web?

On which device are you having this problem, android, ios, macos or web?

Web

Duplicate of #64, but thanks for reporting

Duplicate of #64, but thanks for reporting

Do you have any solution?

No not yet


Added nuspec file

Source file for nuget package (http://nuget.org/packages/leaflet)

Hi there, will Leaflet get an update on the package?

In #4341, you'll see that Leaflet maintainers do not maintain the NuGet package...


Add 'on_training_end' to loggers

We would like to be flexible on what we do post-training - e.g. Just logging the metric, or saving the pipe to disk.
One option could be to add a required 'on_training_end' function to the loggers that would be called after training and could be configured based on the individual loggers and the needs of the user.
Could also add a PostTraining class that handles this, or something completely different. Very open for ideas

This is interesting! Given the broad range of possible use-cases (which would need different inputs), we probably want different protocols here.
I think a good start is to enumerate some of the use-cases we want:

Saving the pipe (ArtifactSaver?)
Logging the metric (Logger)

Anything else here?

Yeah, I think that's all I ended up with as well. Unless someone would want to save some other artifacts (e.g. plots) to MLFlow or something -- but pipe and metric seem like the major ones

Okay to close this as "not needed"?

Yep, covered by other issues


Connect Spring boot app to App config store using service principal.

I want to connect Spring boot application to Application config store using service principal. I have this URL for the sample of the same but it shows 404 Not found.
https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/spring/azure-spring-boot-samples/azure-spring-cloud-appconfiguration-sample
Could you please where this sample code have been moved to? Can I get the URL for the sample code to connect Spring boot application to Application config store using service principal?

Hi, sorry for the confusion. We are in the middle of renaming the package so the current link should be https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/spring/azure-spring-boot-samples/azure-appconfiguration-sample.


Compatibility with apbsummit2017 docker organization

 Create a new dockerhub for summit2017 and populate with older APBs. Update catasb to use this dockerhub by default.

ACK


Ambushed zone

First time ever doing a PR. Hopefully I didn't botch anything.
Known points of concern for the zone:

Sentry + Lagavulin may be too difficult for act 1, especially if the map layout forces the player into it
Occasionally, the shop may disrespect traditional shop rules. Instead of attack, attack, skill, skill, (power which my zone replaces with attack/skill) in the top row, it may become attack, skill, skill, skill, (other card) or skill, attack, skill, skill, (other card)
If the player has The Courier, newly generated cards come from the player's class as normal and not card draw cards as you would expect from my zone. Similar issue with potions

So for the reward modification, here's how I see it.
The player is really looking for those high roll card draw cards that will help them throughout the rest of the game. We're talking Master of Strategy, Scrawl, Reboot, Acrobatics even. Therefore, I believe having 3 options per fight vastly improves how "good" the zone feels, as the odds of getting a high roll draw card are fairly reasonable.
If my zone only had 1 card draw choice per fight, you could see something like Prepared, then Impatience, then Escape Plan, then oops, you're out of the zone and you took all those hard combats for basically nothing. I think the current configuration is reasonable. As the zone only appears in acts 1 and 2, the zone gives you the chance to pick cards that will help your deck throughout the rest of the run, as card draw is always nice to have.
Also to answer all of your "why did you code it like this" questions, I do not know Java myself so I had ChatGPT program this whole thing. I will do my best to address some of your concerns and then update the PR.

I see your point in regards to trying to get the highroll draw cards, however I believe that there's an issue with it. The thing you may be discounting here is that drawing cards is only good if you have things worth drawing. This zone can spawn in both act 1 and 2 where players are likely to be still building their deck and pick up value cards that help them win. You would not want to pick up an acrobatics when you have few high value cards or syngeristic effects.
While I agree that it's likely fine in act 2, in act 1 I find it hard to justify going into a hard zone to get draw cards when you don't even have a real deck to draw yet. That's a lot more risk than reward for a payoff that might require another act to payoff because you "skipped" ~3 combat prowess increasing card rewards.
Also, your code quality is fine, that locator just struck me as very weird. The others are just small fixes, I'm sure we'll get there.

I made the following changes:

Sentry + Lagavulin is now Fungi Beast + Lagavulin. I still feel like this is slightly too difficult. I don't want to add a Louse because it would it's insignificant in the fight as a whole and the Nob encounter already has a Louse. I don't want to add a Slime either because 3 of my 5 normal act 1 encounters include a Slime which is already too much probably.
Red + Blue Slavers is now Byrd + Book of Stabbing. Again, I feel like this is slightly too difficult.
String literals nuked
Smoke Bombs removed from the zone entirely. I had them there for thematic purposes but losing them isn't that big of a deal
Shops will now always offer a Swift Potion, Gambler's Brew, and Snecko Oil. Though notably, the base price of these is ALWAYS the same and isn't picked within a range like regular shop potions are. Not sure how to fix that.


feat: Add Document Upload & A field like Promo Code for gamification opportunities

Add new popup button next to "find voting locations" button

Closing this for now, will reopen when we are ready to think about "gamification"


Custom action example setting slot based on entity

Create a separate documentation example where a custom action is used to set a slot based on an entity.

Can I work on this?


service registry support in Basic Tier

The doc shows service registry requires Enterprise Tier but the pricing page shows that Basic Tier supports service registry , the 2 sites should be updated accordingly

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

ID: f37fbae9-7fc5-20e0-64de-95761b9ea7f8
Version Independent ID: 361b075d-f93c-96e0-8d35-f6f020e6a04d
Content: How to Use Tanzu Service Registry with Azure Spring Cloud Enterprise Tier - Azure Spring Cloud Enterprise Tier
Content Source: articles/spring-cloud/how-to-enterprise-service-registry.md
Service: spring-cloud
GitHub Login: @KarlErickson
Microsoft Alias: xiading

Hi @KarlErickson , could you please review this and add your comments.

@leonard520 can you comment? Thanks!

#assign:karlerickson

#assign:@leonard520

The Service Registry supported in Basic Tier is the open-source version.
And what you see in Enterprise Tier is the commercial version.
Tanzu Service Registry is one of the commercial VMware Tanzu components. It provides your apps with an implementation of the Service Discovery pattern, one of the key tenets of a Spring-based architecture. It can be difficult, and brittle in production, to hand-configure each client of a service or adopt some form of access convention. Instead, your apps can use Tanzu Service Registry to dynamically discover and call registered services.

@ezYakaEagle442 both pages indicate that Enterprise tier uses Tanzu components, so I don't think any change is needed. If you have a specific suggestion that would make this distinction clearer, we will consider making that update. Thanks!
#please-close


@breakpoint f(x, y)

Similar to the Base @which/@code_typedmethods, @breakpoint f(x) would just desugar to breakpoint(f, (typeof(x),))

That does already exist. Did it not work for you?

   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.0-dev+4877 (2016-06-20 22:32 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit 02ac2b1* (1 day old master)
|__/                   |  x86_64-apple-darwin15.4.0

julia> using Gallium
WARNING: bytestring(p::Union{Ptr{Int8},Ptr{UInt8}}) is deprecated, use unsafe_string(p) instead.
 in depwarn(::String, ::Symbol) at ./deprecated.jl:64
 in bytestring(::Ptr{UInt8}) at ./deprecated.jl:50
 in update_shlibs!(::Gallium.LazyJITModules) at /Users/jacobquinn/.julia/v0.5/Gallium/src/modules.jl:178
 in __init__() at /Users/jacobquinn/.julia/v0.5/Gallium/src/Gallium.jl:816
 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:174
 in _require_from_serialized(::Int64, ::Symbol, ::Bool) at ./loading.jl:202
 in require(::Symbol) at ./loading.jl:332
 in eval(::Module, ::Any) at ./boot.jl:231
 in macro expansion at ./REPL.jl:92 [inlined]
 in (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at ./event.jl:46
while loading no file, in expression starting on line 0

julia> @breakpoint
ERROR: MethodError: no method matching @breakpoint()
 in eval(::Module, ::Any) at ./boot.jl:231
 in macro expansion at ./REPL.jl:92 [inlined]
 in (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at ./event.jl:46

Maybe I'm behind on stuff?

What did you expect it to do without a call?

Hmmm.....I guess I didn't realize that error message meant that there's actually defined, as opposed to
ulia> @gibberish
ERROR: UndefVarError: @gibberish not defined
 in eval(::Module, ::Any) at ./boot.jl:231
 in macro expansion at ./REPL.jl:92 [inlined]
 in (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at ./event.jl:46


[BUG] Dependency problems with recent releases of Flowise, including critical vulnerabilities

Describe the bug
Installing Flowise via npm result in dependency conflicts and use of deprecated package with significant security issues. Problem occurs with 2.0.4 and 2.0.5 releases
To Reproduce

Clean install of node.js version 20.16.0
Installed flowise via npm as follows:

% npm i flowise
npm warn ERESOLVE overriding peer dependency
npm warn While resolving<EMAIL_ADDRESS>npm warn Found<EMAIL_ADDRESS>npm warn node_modules/react
npm warn peerOptional<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm warn node_modules/flowise-components/node_modules/lunary
npm warn<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm warn node_modules/flowise-components
npm warn 30 more (flowise-ui, lunary, @emotion/react, @emotion/styled, ...)
npm warn
npm warn Could not resolve dependency:
npm warn peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm warn node_modules/@mui/icons-material
npm warn<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm warn node_modules/flowise-ui
npm warn
npm warn Conflicting peer dependency<EMAIL_ADDRESS>npm warn node_modules/react
npm warn peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm warn node_modules/@mui/icons-material
npm warn<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm warn node_modules/flowise-ui
npm warn ERESOLVE overriding peer dependency
npm warn deprecated<EMAIL_ADDRESS>cross-spawn no longer requires a build toolchain, use it instead
npm warn deprecated<EMAIL_ADDRESS>This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm warn deprecated<EMAIL_ADDRESS>Package is no longer maintained
npm warn deprecated<EMAIL_ADDRESS>This functionality has been moved to @npmcli/fs
npm warn deprecated<EMAIL_ADDRESS>Glob versions prior to v9 are no longer supported
npm warn deprecated<EMAIL_ADDRESS>This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated<EMAIL_ADDRESS>Use mz or fs-extra^3.0 with Promise Support
npm warn deprecated<EMAIL_ADDRESS>This package is no longer supported.
npm warn deprecated<EMAIL_ADDRESS>This package is no longer supported.
npm warn deprecated<EMAIL_ADDRESS>Use your platform's native DOMException instead
npm warn deprecated<EMAIL_ADDRESS>Use your platform's native atob() and btoa() methods instead
npm warn deprecated<EMAIL_ADDRESS>This package is no longer supported.
npm warn deprecated<EMAIL_ADDRESS>Rimraf versions prior to v4 are no longer supported
npm warn deprecated<EMAIL_ADDRESS>This package has moved to @smithy/protocol-http
npm warn deprecated<EMAIL_ADDRESS>This package has moved to @smithy/signature-v4
npm warn deprecated<EMAIL_ADDRESS>The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm.
npm warn deprecated<EMAIL_ADDRESS>< 22.8.2 is no longer supported
npm warn deprecated<EMAIL_ADDRESS>Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm warn deprecated<EMAIL_ADDRESS>Glob versions prior to v9 are no longer supported
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Critical bug fixed in v3.0.1, please upgrade to the latest version.
npm warn deprecated<EMAIL_ADDRESS>Rimraf versions prior to v4 are no longer supported
npm warn deprecated<EMAIL_ADDRESS>This package is no longer supported.
npm warn deprecated<EMAIL_ADDRESS>This package is no longer supported.
npm warn deprecated<EMAIL_ADDRESS>This package is no longer supported.
npm warn deprecated<EMAIL_ADDRESS>Version no longer supported. Upgrade to @latest
Expected behavior
Flowise should install without dependency issues and should not make use of deprecated packages and packages with serious security vulnerabilities
Screenshots
See install log above.
Flow
N/A - installation issue.
Setup

Installation: npm i flows
Flowise Version 2.0.4 and 2.0.5
OS: macOS Sonoma 14.6.1
Browser N/A

Additional context
node.js version 20.16.0

Were you able to fix this im having the same problem

critical vulnerabilities dependencies should be now resolved in v2.1.1 release


Support for multiple Octoprint printers

Description:
The current Octoprint platform supports only one device. I've removed this limitation by making some minimal yet breaking changes.
The platform has currently 3 parts: main platform, sensor and binary-sensor. I aim to simplify this into a single sensor platform.
The API class OctoPrintAPI has been moved from components/octoprint.py to components/sensors/octoprint.py and is otherwise untouched. components/octoprint.py has been removed.
Instead of having a single root level octoprint: config block, each device gets their own host/API configuration. That's the breaking part.
Other changes: icons have been added to the non-temperature sensors.
And the big one: I've removed the binary sensor component. It provided two sensors: Printing and Printing Error. To me, this seemed redundant with the state provided by the Current State sensor and could be replaced with a template binary sensor.
@w1ll1am23 what do you think about this?
Related post: https://community.home-assistant.io/t/octoprint-support-for-multiple-printers/29959
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#6232
Example entry for configuration.yaml:
Previous syntax:
octoprint:
  host:
  api_key:

sensor:
  - platform: octoprint

New syntax:
sensor:
  - platform: octoprint
    host:
    api_key:

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

You are right, I went overboard with the simplification. Having the possibility of having switches to pause/stop a print for example would be cool.
I do also agree that migrating the API client to a async one would be an improvement., as would be tests.
I'm closing this PR and making another, less breaking, one.


Add integration test for verbosity example

cc #63

@CAD97, want to give this a quick review?
In https://github.com/killercup/quicli/pull/45#issuecomment-364581544 I said I'd get back to you on how to test the example. Let me know what you think of this (and the other parts of #63)!

Thanks!
bors r+


Can't change to night mode for Rose theme

Hi George, I've tried extensively to change the default mode from light to dark for Hugo Academic Rose theme.
As per your instructions here https://github.com/gcushen/hugo-academic/issues/1262, I've tried coping the rose theme into a data/themes in the root directory (e.g. as my_theme.toml). Correspondingly, I changed the theme in parms.toml to my_theme.
When I do this, I am able to change some aspects of the appearance. However there is no way to change the default font color (black). And changing the mode statement at the top to light = false doesn't have the desired effect.
I'm out of solutions at this point so any help would be appreciated. Thanks very much,
Tim

The 'light' option in the theme defines whether it is a light or dark theme. Hugo may cache previous views, so try restarting Hugo if you see no changes. Also, you can delete your browser data for your local/live sites to reset your own day/night preferences for the sites, or enable the day/night mode in Params.toml.
Please use the forums or chat for questions, these issues are for bug reports and feature requests. Thanks.


[azure-cli-ml] update version to 1.28.0

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

azure-cli-ml


Update Set-SPOTenant.md

Deleted UserVoiceForFeedbackEnabled references in public documentation.

Pinged Trent Green on Teams for review and sign off on these changes. (@ mention wasn't working here for some reason)