Why are we using rollup-plugin-ts instead of the significantly more popular rollup-plugin-typescript2?

I just noticed that we're using rollup-plugin-ts in the blueprint but that's not a very popular rollup plugin. Is there a particular reason we're not using the more popular one?
https://npmtrends.com/@rollup/plugin-typescript-vs-rollup-plugin-ts-vs-rollup-plugin-typescript2

During initial exploration, rollup-plugin-ts was the simplest to get working -- I don't remember where the the exploration of the different TS plugins was -- but we're always up for improvements to the default setup.

I think we can close this now, because we have a setup that uses just babel, and have documented (throughout the flurry of PRs, bugfixes, etc (around changes to the rollup config)) why / why not certain plugins. :tada:


ByAddressRoute cluster routing times out

Describe the bug
When running the example apps (all clients, though I mostly tested with Java), using ByAddressRoute to specify a node does not work and a timeout error is raised.
Expected Behavior
ByAddressRoute should return the command result
Current Behavior
Timeout
Java error:
2024-12-04T19:26:18.431598Z ERROR logger_core: glide - Timeout encountered: glide.api.models.exceptions.TimeoutException: timed out
Exception in thread "main" java.util.concurrent.ExecutionException: glide.api.models.exceptions.TimeoutException: timed out
        at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
        at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999)
        at glide.examples.ClusterExample.appLogic(ClusterExample.java:85)
        at glide.examples.ClusterExample.execAppLogic(ClusterExample.java:109)
        at glide.examples.ClusterExample.main(ClusterExample.java:158)
Caused by: glide.api.models.exceptions.TimeoutException: timed out
        at glide.connectors.handlers.CallbackDispatcher.completeRequest(CallbackDispatcher.java:112)
        at glide.connectors.handlers.ReadHandler.channelRead(ReadHandler.java:25)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
        at io.netty.channel.kqueue.AbstractKQueueStreamChannel$KQueueStreamUnsafe.readReady(AbstractKQueueStreamChannel.java:544)
        at io.netty.channel.kqueue.KQueueDomainSocketChannel$KQueueDomainUnsafe.readReady(KQueueDomainSocketChannel.java:133)
        at io.netty.channel.kqueue.AbstractKQueueChannel$AbstractKQueueUnsafe.readReady(AbstractKQueueChannel.java:387)
        at io.netty.channel.kqueue.KQueueEventLoop.processReady(KQueueEventLoop.java:218)
        at io.netty.channel.kqueue.KQueueEventLoop.run(KQueueEventLoop.java:296)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Thread.java:834)

Reproduction Steps
When the INFO command is issued in the example app (for any client), change the routing from ALL_NODES to ByAddressRoute and point at the node that you connected to or any other node in the cluster.
Possible Solution
No response
Additional Information/Context
No response
Client version used
1.1, 1.2
Engine type and version
Valkey 7.0
OS
Mac OS, Ubuntu
Language
Java
Language Version
Java 11
Cluster information
6 nodes, 3 primaries, 3 replicas
Logs
No response
Other information
No response

This issue is blocking large cluster testing (there may be a workaround, need to think of one first though).

I confirm the same with node client:
$ npx ts-node --project tsconfig.json
> import { GlideClient, GlideClusterClient, RouteByAddress } from ".";
undefined
> let client = await GlideClusterClient.createClient({ addresses: [{host:"localhost", port: 7000}] });
undefined
> await client.info({sections: ["server"], route: { type: "routeByAddress", host: "localhost", port: 7000}});
2024-12-04T19:20:41.391175Z  WARN logger_core: received error - timed out
Uncaught TimeoutError: timed out
    at GlideClusterClient.processResponse (/mnt/c/GitHub/babushka_2/node/build-ts/src/BaseClient.js:337:20)
    at GlideClusterClient.handleReadData (/mnt/c/GitHub/babushka_2/node/build-ts/src/BaseClient.js:322:22)

@jonathanl-bq why is it blocking large cluster testing?

@jonathanl-bq why is it blocking large cluster testing?

The original idea was to just send each node an INFO command and if we got an error, we know the node is down, which gives us an easy way to measure which nodes are down vs. which are not. If the routing to a particular node doesn't work, then we can't really do this, but it doesn't preclude us from trying some other way of figuring out how many nodes are available. Sending the command to ALL_NODES when some nodes are down seems to always succeed, it just doesn't return results for the nodes that aren't up. There may be a way to work with this, but will require processing the output a bit more. I'm still considering alternatives at this point, so ideas are welcome.

@jonathanl-bq @Yury-Fridlyand It does work for me, please note that it is explained which address should be provided when using the ByAddressRoute option:

Args:
host (str): The endpoint of the node. If port is not provided, should be in the f"{address}:{port}" format, where address is the preferred endpoint as shown in the output of the CLUSTER SLOTS command.
port (Optional[int]): The port to access on the node. If port is not provided, host is assumed to be in the format f"{address}:{port}".

... "where address is the preferred endpoint as shown in the output of the CLUSTER SLOTS command."
You should take the address as shown in CLUSTER SLOTS output. @Yury-Fridlyand, your request doesn't work because you passed "localhost" instead of "<IP_ADDRESS>" which you'll find it's the shown address in CLUSTER SLOTS.
However I do think that we should return an appropriate error when passing a node address that doesn't match any of our existing nodes. We can also have an API to retrieve all existing node addresses, but it can be now used by simply running CLUSTER SLOTS and parsing the response. I'll take these action items.


bugsnag-osx.bundle is not signed

We're getting an error when trying to use the library in a signed OSX build. Would it be possible for you to release a signed version of the native plugin?
Plugins: Couldn't open /Users/x/Desktop/1215842/Y.app/Contents/Plugins/bugsnag-osx.bundle/Contents/MacOS/bugsnag-osx, error: dlopen(/Users/x/Desktop/1215842/Y.app/Contents/Plugins/bugsnag-osx.bundle/Contents/MacOS/bugsnag-osx, 2): no suitable image found.  Did find:
	/Users/x/Desktop/1215842/Y.app/Contents/Plugins/bugsnag-osx.bundle/Contents/MacOS/bugsnag-osx: code signature in (/Users/x/Desktop/1215842/Y.app/Contents/Plugins/bugsnag-osx.bundle/Contents/MacOS/bugsnag-osx) not valid for use in process using Library Validation: mapped file has no Team ID and is not a platform binary (signed with custom identity or adhoc?)

Yeah - thanks for the heads up. The builds should be signed by default, I'll need to check if something has gone awry in the release system. Was this on the latest version of the plugin or 4.6.1 like the newer issue?

Sorry, didn't see the template when reporting this bug yesterday. This is 4.6.1, and it's an il2cpp OSX build.

Thanks, that helps.

Looks like this one was on our side. Our signing failed because we had extra folders in the plugin. (Perforce makes it nearly impossible to delete folders in Unity.)


CSoundEventPathCornerEntity failed to parse

Research

[X] I've already searched and I could not find an existing issue or discussion about this issue.

Description
System.Exception: Attempted to create unknown entity: CSoundEventPathCornerEntity
at DemoFile.DemoParser.<>c__DisplayClass115_0.b__1(EntityContext context)
at DemoFile.DemoParser.OnPacketEntities(CSVCMsg_PacketEntities msg)
at DemoFile.PacketEvents.ParseNetMessage(Int32 msgType, ReadOnlySpan1 buf)    at DemoFile.DemoParser.OnDemoPacket(CDemoPacket msg)    at DemoFile.DemoEvents.ReadDemoCommand(EDemoCommands msgType, ReadOnlySpan1 buffer, Boolean isCompressed)
at DemoFile.DemoParser.MoveNextCoreAsync(EDemoCommands msgType, Boolean isCompressed, Int32 size, CancellationToken cancellationToken)
at DemoFile.DemoParser.ReadAllAsync(Stream stream, CancellationToken cancellationToken)****
Code to reproduce
No response
Affected demos
http://replay186.valve.net/730/003688111663585689781_1784675935.dem.bz2

A fix was released as v0.15.1 - please update and try again


Selection indication disapears in MudTable with Search and MultiSelection

I may have found a bug when combining Search and MultiSelection in a MudTable. If you select an item (I was using Helium, Hydrogen does not seem to do it), then search for it, it will deselect the item, even though it is still in the selected items list. I created a sample here: https://try.mudblazor.com/snippet/muGPkgRYgpjNxaMj

I am also having the same issue. When we filter the data the through search function the selection is not retained anymore. It was working fine until 5.0.13.

Good to hear I am not the only one. I will try it pre v.13 and see if I can replicate your results. Thanks for the info.

Good to hear I am not the only one. I will try it pre v.13 and see if I can replicate your results. Thanks for the info.

No worries.. Let me know if you found any workaround for it.

Still the same in 5.1.0. Any workarounds for this please?

Not sure if you have found a work around for this yet, it is still an issue in latest versions.
What I have started doing is extending my class with a bool and exposing that as a checkbox in the first column. It works really well, if you need a try.mudblazor I can put one together. This has the advantage that there is a situation I needed multiple check boxes.

I wrapped the table inside a boolean varaible if block and on selection change I will set the boolean variable to false and then back to true. like the below one
boolean = false;
await Task.Delay(100);
boolean = true;
This workaround is working for me.

Seems to be fixed in v6.1.4


svelte-query + jsdoc type inference broken for createQuery, but not for createMutation

Describe the bug
When typing createQuery and createMutation with jsdoc comments, the return data type gets inferred correctly for the mutationFn, but not for queryFn. If i mistype the data in a query, i will not get a warning. For mutations, that works.
Your minimal, reproducible example
https://stackblitz.com/edit/tanstack-query-jsdoc?file=src%2Flib%2Ftest.js
Steps to reproduce
Have a look at the stackblitz demo, in the comments it is described how to see that type inference behaves inconsistently.
Expected behavior
queryFn should infer from the attached jsdoc type at createQuery just like createMutation does. Other types of create... could be affected as well.
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform

macOS latest
VSCode 1.91
Node 20.15.0

Tanstack Query adapter
svelte-query
TanStack Query version
5.49.0
TypeScript version

Additional context
No response

Hi @PhilippMolitor , I've tried this with @tanstack/react-query and it has the same limitation. Both share the underlying QueryObserverResult and MutationObserverResult types.


implement monotonic KSUID

Implement Monotonic KSUID inspired on Monotonic ULID.

Released version v2.3.0.


Clear asset files in error view

Q
A

Is bugfix?
yes

New feature?
no

Breaks BC?
no

Tests pass?
yes

Fixed issues
https://github.com/yiisoft/yii2/issues/16101

Currently test views for this package are taken from yii-core/tests/data. I believe package specific views should be moved here but since I don't know the plans for it I'll prepare separate PR for yii-core with missing view.

Files used in this repository and not used in the core must be moved here. Together with history, which is a bit time and labour intensive. That's why I haven't finished it yet.
It would be easier to collect list of files to move and then do them altogether.

Closing since errors are now handled differently.


hermitize

hermit init .
hermit install openjdk@11
hermit install<EMAIL_ADDRESS># current version per running ./gradlew --version

replaced gradlew wrapper validator action with init hermit step to publish ci and docs yaml

Ah yes, one thing: I would suggest not using channels. I'd pin the versions exactly then either manually upgrade them, or use Renovate to manage them - it has Hermit support.

Also, you'll need to add this to your build.gradle.kts file:
tasks.findByName("wrapper")?.enabled = false

That will prevent Gradle from trying to download the wrapper automatically.

oh this would be nice - then I don't have to mess around with JVM versions by hand?


Extend is_numeric to support negative values and scientific notation

Aside from the commagate, :shipit:

Reroll to remove support for , as asked by @R4PaSs, fix a bug on strings prefixed with -e and reword the synopsis.

+1


Initialise sysl.io website

Fixes #125.
Changes proposed in this pull request:

Update sysl --help to hide deps command
Move gradle docs into environment guide
Create a seed for the sysl.io website :

current version
old website.

Outstanding work:

Write Command line docs
Write Sysl syntax docs
Write Output formats docs

@anz-bank/sysl-developers

@sahejsingh , @anzdaddy / @marcelocantos - can you please review this?


Add isExplore, isSponsors, isTopics, isCollections, isExploreNewsletter, and isEvents

Examples
isExplore('https://github.com/explore')                      // true
isSponsors('https://github.com/sponsors')                    // true
isSponsors('https://github.com/sponsors/accounts')           // true
isSponsors('https://github.com/sponsors/{profile}/waitlist') // true
isSponsors('https://github.com/sponsors/community')          // true
isTopics('https://github.com/topics')                        // true
isTopics('https://github.com/topics/{topic}')                // true
isCollections('https://github.com/collections')              // true
isCollections('https://github.com/collections/{collection}') // true
isEvents('https://github.com/events')                        // true
isEvents('https://github.com/events/{event}')                // true
isExploreNewsletter('https://github.com/explore/email')      // true

Are you willing to submit a pull request?
Yes

What are your use cases?

I don't have any use cases, I am just adding a feature request so this package can support more.

Thanks but I only add detections if they're useful to someone right now.


Size Limit Exceeded - doesn't go to callback

when i run search with a lot of results (more then 1000).
i get an Size Limit Exceeded error, but this error are not go to the callback but just thrown.
because of asyn issues, even if i wrap my call to find users with try, catch when this error thrown it's not get to my catch so my server crash.
this is the full error:
events.js:72
        throw er; // Unhandled 'error' event

SizeLimitExceededError: Size Limit Exceeded
    at messageCallback (myProject\node_modules\ldapjs\lib\client\client.js:867:40)
    at Parser.onMessage (myProject\node_modules\ldapjs\lib\client\client.js:199:12)
    at Parser.EventEmitter.emit (events.js:95:17)
    at Parser.write (myProject\node_modules\ldapjs\lib\messages\parser.js:105:8)
    at end (myProject\node_modules\ldapjs\lib\messages\parser.js:71:19)
    at Parser.write (myProject\node_modules\ldapjs\lib\messages\parser.js:107:10)
    at end (myProject\node_modules\ldapjs\lib\messages\parser.js:71:19)
    at Parser.write (myProject\node_modules\ldapjs\lib\messages\parser.js:107:10)
    at end (myProject\node_modules\ldapjs\lib\messages\parser.js:71:19)
    at Parser.write (myProject\node_modules\ldapjs\lib\messages\parser.js:107:10)

So what would be best approach to retrieve a huge set of records? Please advice .

Don't set a size limit and the library will automatically page through the requests. If I recall, by default Active Directory is set to a limit of 1000 results per request by default, although that can be configured on the AD server.


SMS Notification for booking confirmation

solution #66
Using Twilio library to send a SMS notification to the user. Currently it send notification to verified number due to trial account to send SMS to any number will have to use paid plans.
file added
server/modules/notifications/sendMail.js

Please comment out the twilo api, we're not using it for now...

Please comment out the twilo api, we're not using it for now... And merge conflicts

Any other api that we specifically  looking for ?

For now I think email will do..

Shall remove whole file or just comment code inside server/modules/notifications/sendSMS.js

Keel this file, comment out all the api call being made to this feature

Update


Fix https connections

The Elasticsearch implementation uses AgentKeepAlive. However, this module does only support http. When configuring export DATABASE_URL=https://elasticsearch the following error occurs:
uncaughtException: Protocol "https:" not supported. Expected "http:"
To fix this HttpsAgent of AgentKeepAlive is used when the connection detects SSL.

Thanks Björn!


cmd/scollector: disk_linux filter pseudo filesystems

There's a function https://github.com/bosun-monitor/bosun/blob/master/cmd/scollector/collectors/disk_linux.go#L175 that calls df -lP --block-size 1. Is anyone interested in reporting e.g. /run or /dev/shm space stats? I have a problem with Kubernetes mounting
tmpfs           498M  8.0K  497M   1% /var/lib/kubelet/pods/dfcc215d-4d7d-11e5-9396-04016828c001/volumes/kubernetes.io~secret/default-token-zmjhm

that will  eventually pollute OpenTSDB tags. I can compile a comprehensive list of pseudo FSes or make that filter list configurable.

Ya, it is annoying and makes the cardinality worse on something that already has a lot of tags. I'd be happy to see a PR that filters those out.


Add Mirror Zone

Mirror zone is a zone with a combat modifier and one event.
In combat, you get a Mirror Move(a card containing enemy move) each turn and draw 1 less. It's simple to explain the premise, but the exact mechanic is complex:

Mirror Move selects a random enemy move in the previous turn. If no enemy moved, you don't get Mirror Move and your draw for that turn is not reduced.
Mirror Move always have Ethereal and Exhaust. Unless Mirror Move ends up being a Power card, then it doesn't have Exhaust.
The cost of Mirror Move is determined proportional to card's power level.

There's some randomness here. For example, in act 1, a card that deals 13-15 damage can either cost 1 or 2.
Cost becomes slightly lower in later acts, since your deck is more complete and drawing 1 less can be huge.

Some enemy actions are changed.

Incompatible buffs -> Reflective (x2)

Reflective: Increases the damage and Block amount of Mirror Move card.

Incompatible debuffs -> Shattered

Shattered: After you play a Mirror Move, Shattered creatures lose 10% of their current HP per stack, rounded up.

Status creating -> Draw X cards (for Dazed or VoidCard), or Exhaust a card (for others)
Summon -> Channel random orbs
Heal -> Temporary HP (VampireDamageAction is still healing)

The image of the card contains the enemy who used the move.

The zone adds one event, Weird Mirrors. It gives you the option to duplication a card from your deck, and if you have either Prismatic Shard or Dolly's Mirror, you get another option to get an Echo Form.

Wow, that's a lot of work. is this a scrapped character mechanic or something? I haven't looked too closely at the entire mirror move code since I believe you've tested it.

Yes, it's from the Copycat. I scrapped it because using enemy move didn't work as a character mod mechanic, but I think it works nicely as a zone. The code for Mirror Move is mostly copied, but I needed to make some changes.
I did some full runs, and then tested a few specific combats to ensure everything works as intended. I did a little balance tweaks but it's inevitable that some fights are easier and some are harder. I'm mostly concerned about memory leak (it saves enemy texture), though I didn't noticed it while playtesting.


"Build" button builds wrong target when using tasks.json

Brief Issue Summary
When using a build task, the "Build" buttons in the CMake Project Outline (both the one in-line with the target, and the one in the target's context menu) do not build the correct target. It seems to build the target that was marked as the "Build Target" when the window was reloaded.
Note, some form of this issue also occurred before the new tasks integration, but the buttons used to at least track the current Build Target. Now, it seems completely broken.
Expected:
Build buttons associated with each target build the target they are associated with
Apparent Behavior:

CMake Tools Log

> Executing task: /usr/bin/cmake --build /path/cmake-tools-issue-repros/build --config Debug --target Program1 -- -j 14 <

ninja: no work to do.

Terminal will be reused by tasks, press any key to close it.

Developer Tools Log

[main] Building folder: cmake-tools-issue-repros Program2
[main] Saving open files before configure/build
[build] Starting build
[driver] Start build Program2
[driver] Runnnig pre-configure checks and steps
[proc] Executing command: /usr/bin/cmake --build /path/cmake-tools-issue-repros/build --config Debug --target Program2 -- -j 14
[cmakefileapi-parser] Read reply folder: /path/cmake-tools-issue-repros/build/.cmake/api/v1/reply
[cmakefileapi-parser] Found index files: ["cache-v2-6a5795a39105ba64c2b9.json","codemodel-v2-735653c4ee88b71fb057.json","index-2020-11-27T19-01-15-0378.json","target-Program1-Debug-0ba81c5d52bd99a4c4fe.json","target-Program2-Debug-4b3c411d0f9a00614b05.json"]
[driver] Run _refreshExpansions
[driver] Run _refreshExpansions cb
[build] Build finished with exit code 0
[extension] [2402] cmake.build finished (returned 0)
[cache] Reading CMake cache file /path/cmake-tools-issue-repros/build/CMakeCache.txt
[cache] Parsing CMake cache string

Platform and Versions

Operating System: Linux, Pop!_OS
CMake Version: 3.16.3
VSCode Version: 1.51.1
CMake Tools Extension Version: 1.5.3
Compiler/Toolchain: GCC 9.3.0

Thank you for opening this issue. We will investigate and fix it.

We almost have CMake Tools 1.6.0 release out the door. Until then, if you want, you can also verify if this problem has been fixed correctly by installing the vsix built here: https://github.com/microsoft/vscode-cmake-tools/actions/runs/557242002#artifacts.


Most sensible upgrade path from MUI 4 to 6

Hello!
I'm very, very excited for Pigment CSS!
However, it's a little unclear to me what the best path forward is, for a MUI 4 app. My employer made me maintainer for this React 16 + MUI 4. So right now I'm upgrading React, Routers, Store etc, and of course, MUI.
The entire app uses "makeStyles", and there are no styled components at all (no imports of styled). Having soon upgraded this to MUI 5, what can I expect of challenges going to MUI 6?
I read that:

The processor looks through the source code for styled(), css(), and other function calls and extracts the arguments to be evaluated. These values are then handed back to Pigment CSS for additional parsing and evaluation.

Does it look through makeStyles ? I've read through https://mui.com/blog/introducing-pigment-css/ and it doesn't mention makeStyles at all.
Thanks for any input on this matter 😊
Search keywords:

Friendly nudge 😎


Send single Accept header with comma-separated values

(migrated from https://openrdf.atlassian.net/browse/SES-2383 )
RDF4J's SPARQL client currently sends multiple Accept headers with its query requests, to indicate which response formats it can process. For example:

 Accept: text/csv;q=0.8
 Accept: application/sparql-results+xml

While this is technically correct (see section 4 in RFC2616 for details), it appears many SPARQL endpoint implementations have trouble processing request headers in this form. E.g. in the above example, they will choose to use text/csv (even if they do support application/sparql-results+xml).
To facilate better interoperability, we should instead compose a single accept header, with the supported formats as comma-separated values:
Accept: text/csv;q=0.8, application/sparql-results+xml

+1 on this one. We are using wiremock and it also had problems with multiple accept headers - it only takes into account the first instance.
Although this is not a problem with sesame but with naive implementations out there it will also make the request more compact.
https://github.com/tomakehurst/wiremock/issues/334


Does not work if over 100 notebooks or orphan notebooks exist.

In the following situations, the note-overview plugin does not process any notes.

Over 100 notebooks exist.
Orphan notebooks (notebooks whose parent_id point no existing notebooks) exist.

Observed environment: note-overview 1.5.1 and Joplin 2.1.9 on Windows10
The reason of this bug is obvious from its fix. I'll send a pull request soon.

Yes the pageQuery is incremented multiple times.
You have notebooks whose parent_id points to non-existent notebooks?

You have notebooks whose parent_id points to non-existent notebooks?

Yes.
Today is the first day I'm going to use this plugin. But it didn't work for me at first. The reasons are both of the above.
Now. It works with my fix, and I'm enjoying it.
Thanks for your great plugin!


Roll Flutter Engine from 241ca5c1d6be to 4e49b9deb72d (1 revision)

https://github.com/flutter/engine/compare/241ca5c1d6be...4e49b9deb72d
2023-06-28<EMAIL_ADDRESS>[Impeller] remove redundant highp modifiers in vertex shaders. (flutter/engine#43305)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jimgraham@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Not sure why this is stuck so I'm just going to merge it.


Incorrect display of fractional in Windows app

The fractional 1/(12/5)/0.9 is displayed incorrect in the Windows app (Calcpad VM 7.1.4)

The Online IDE shows a better output

Hi! Thank you for your feedback.  I will look closely on this.


JCache 1.1 compliance

This PR won't pass CI because it relies on manually building JCache 1.1 artifacts locally. The spec leads do not release any artifacts until the spec is released :\
It includes:

https://issues.jboss.org/browse/ISPN-8571
https://issues.jboss.org/browse/ISPN-8579
https://issues.jboss.org/browse/ISPN-8585

Maybe there is a way for us to build jcache SNAPSHOTS and push them to JBoss' Nexus

Seems fine to me, but maybe you want to squash some of those commits?

Squashed and comments addressed. Note that we can't yet integrate this.

@galderz If you need an unpublished dependency, does it mean that you can't git clone && mvn install anymore? Or is this isolated in a non-default profile?

@galderz If you need an unpublished dependency, does it mean that you can't git clone && mvn install anymore? That would be a no-go for me. Could this be isolated into a non-default profile?

It's marked as PREVIEW.
Can't be integrated till the powers-to-be allow us to publish snapshots or they publish artifacts.

@rvansa I've added a DO NOT INTEGRATE label to it ;)

JCache 1.1.0 has been approved and the artifacts for the API are available... However, TCK artifacts do not appear to be there yet.

The TCK is now there: http://repo1.maven.org/maven2/javax/cache/cache-tests/1.1.0/


Add emulator option to BrowserStack capabilities.

Hi,
I would like to add the emulator option to BrowserStack capabilities.
This option allows you to run iOS devices via. an Emulator instead of real devices which is sometimes necessary as they are using Appium to run tests on real devices, which fails for example if you try to delete cookies.
This option is currently not documented on BrowserStack but I got the hint of their support to use this option.
thank you

Thank you @gries.

Thanks for the quick merge :+1:  @stof


BSD support?

Hi @Nyr ,
Just curious if there is scope to add OpenBSD and FreeBSD support to this script? or even a new repo for BSDs?

I will only support mayor server distros and operating systems.
I would love to have BSD support, but to be honest with you, I do not have the time to do that, and do not use BSD myself.


workbench.explorer.fileView.focus became invalid in v1.44.0

VSCode Version: 1.44.0
OS Version: Windows 10

I think the title says all. A workaround is really appreciated.

@wdscxsj can you explain what you mean by invalid? this command is still working for me?

@sbatten Sorry if I missed something, but this was the first weird thing for me after the update (same with --disable-extensions):
keybindings.json:

Ctrl+k a pressed:

@wdscxsj ah, I see the problem now. The command is not valid without an open folder. When you open a folder, this will work. The files view is not present until a folder is opened.
/cc @joaomoreno @isidorn

@sbatten Thanks for the confirmation!
I suppose the focus on folder/project/workspace is too strong in recent releases. By definition VSCode is a text (source code) editor. It may feel like an IDE but still an Editor above all. Support for folder is insanely great, but that should not come at the cost of inferior UX of plain text editing. I remember how Visual Studio struggled to load a solution 15 years ago. Please don't turn VSCode from a lovely utility into a batteries excluded Visual Studio.

assigning to @isidorn as he owns the explorer

@wdscxsj please use workbench.files.action.focusFilesExplorer instead
@sbatten I believe the command the user is missing is a general view command. And I would suspect that due to your refactoring the command is no longer available before the view has been opened. So it seems like a general view issue imho

I tested this on 1.38.1 from September which is well before my refactor work. It has been this way for quite some time, but I believe the general explorer focus command is the right command to use if you don't have folders open.

Then closing as desinged since there is a workaround command. Thanks

@sbatten Thanks for your suggestion of workbench.files.action.focusFilesExplorer, but don't we have Ctrl+Shift+E already? I used to call workbench.explorer.fileView.focus with a shortcut to show the "No folder opened" viewlet or the file tree, and call outline.focus with another shortcut to show Outline. Is there a better workaround for v1.44 and later?

When I do fresh reload and Explorer viewlet is not shown, F1 > focus outline view still works just fine. And you can assign any keybinding to it.
Also Ctrl+Shift+E also works for the No Folder Opened case, so I do not really understand what is missing.

@isidorn With this layout and configuration, may I still use ctrl+k a to directly expand the "No folder opened" viewlet?

No I do not think you can. Since the Explorer is missing a command which expands the Explorer view.
I have added the command using the ID which you seemed to have used.
Try it out with vscode insiders tomorrow.
@sbatten fyi

That's great. Thank you!

I am not sure the new command is necessary. With no folder opened, the view has a different command that is already present.
    {
        "key": "ctrl+k a",
        "command": "workbench.explorer.fileView.focus",
        "when": "workbenchState != 'empty'"
    },
    {
        "key": "ctrl+k a",
        "command": "workbench.explorer.emptyView.focus",
        "when": "workbenchState == 'empty'"
    }

@sbatten where are those commands registered? I could not find them when I did my change.

https://github.com/microsoft/vscode/blob/4aba29719297ef9745357be50e4315ede58bbec9/src/vs/workbench/browser/parts/views/views.ts#L613-L632

Aha, so my change simply forces the emptyView.focus to not have a special command, but to use the same one. I think that makes sense, since it is the same view for the user at the end.

To Verify:

Open an empty window.
Attempt to set a keybinding with the keybinding editor for workbench.explorer.fileView.focus
Verify the keybinding works to focus the no folder opened view.
Open a workspace.
Verify the same keybinding works to focus the files explorer.

That's better indeed. Thanks for your investigation!


fix: rebuild main.css on .less change in make dev

This PR bring make dev back to working order. Changes to the less files cause the css to be rebuild and the styles to hot-reload in your browser ~1s later.

have nodemon watch for changes in less files rather than css.
avoid triggering hugo when a less file changes
fix the make command so it installs and builds all the things.

License: MIT
Signed-off-by: Oli Evans<EMAIL_ADDRESS>

It is a thing of beauty. Thank you @olizilla !


 doesn't close on click outside, throws an error instead

Current Behavior
Modal doesn't close on the click outside, instead it throws this console error

Context (Environment)
orbit 0.19.0

@Radek-Palisa is this problem fixed with updating styled-components to v4?

Yes, it's fixed.
Thanks, closing the issue now.


Nadeko Comands help

How do you keep Nadeko online and u can use the commands for Nadeko without always opening the Nadeko Command Launch Application?

How do you expect the bot to run without the program open?

Host on vps

Let's make it easier to understand this: if you want to play a game on your pc you would expect that you will need to open the game first, and keep it opened to continue playing it; same for Nadeko, you open the console and keep it running to respond to commands. You have multiple choices how to keep Nadeko running, one of them is to host on your own computer, other ways include payed hosting services that will host the bot for you. Most common ones I know are DigitalOcean, OVH, Heroku, and many more.


opae.io: fix pci_id for older Python versions

Older versions of Python 3 don't comprehend default named parameter.
This wraps creating a pci_id object with a make_id function that
defaults subsystem_vendor/subsystem_device to 0.
Signed-off-by: Rodrigo Rojo<EMAIL_ADDRESS>

Coverage remained the same at 64.938% when pulling 26570b237feeb5be08e4bbc51fde7c0d2ccf09d6 on rrojo/opae.io-fix-pci_id into 5fdb142df0425b7d452cde460cea2d507b6d2a46 on master.


Fluentd logs don't name which container is logging

All the container outputs are mixed together which makes it hard to use the log files.

I think logs on disk do distinguish which service is logging.


Longhorn Backup Target not changed when upgraded

Upgrading to a different Backup Target, the UI still shows the old Target

Can you share the reproduce steps? Make sure you click the Save in the bottom of settings.

Can you share the reproduce steps? Make sure you click the Save in the bottom of settings.

Sure!

Deploy Longhorn
Upgrade Longhorn from Rancher UI
Longhorn UI doesn't reflect changes to replica count

The Longhorn settings in the Rancher UI are only for the new Longhorn and don't work for the existing Longhorn (during the upgrade).
If you want to update the settings, you can modify them in Longhorn UI.

The Longhorn settings in the Rancher UI are only for the new Longhorn and don't work for the existing Longhorn (during the upgrade).
If you want to update the settings, you can modify them in Longhorn UI.

Is there a reason for the disconnect between the two? Or will that be fixed before the GA release?


:bug: Support renamed gradle verification action and callers which pin to hash

What kind of change does this PR introduce?
bug fix

[X] PR title follows the guidelines defined in our pull request documentation

What is the current behavior?
gradle/wrapper-validation-action must be present and pinned to a hash
What is the new behavior (if this is a feature change)?**

detects gradle/actions/wrapper-validation

From gradle/wrapper-validation-action's readme: "As of v3 this action has been superceded by gradle/actions/wrapper-validation"

Also support actions pinned to a hash.

[X] Tests for the changes have been added (for bug fixes/features)

Which issue(s) this PR fixes
Fixes #2477
Fixes #2357
Related to https://github.com/ossf/scorecard-action/issues/782#issuecomment-2101915990, but requires a release (which was going to be cut today anyway)

Special notes for your reviewer
Does this PR introduce a user-facing change?
For user-facing changes, please add a concise, human-readable release note to
the release-note
(In particular, describe what changes users might need to make in their
application as a result of this pull request.)

Binary-Artifacts check now supports the new gradle wrapper validation action, and can be pinned to a hash.

/scdiff generate Binary-Artifacts

nice

This fix does not seem to work for us.
We merged the CI workflow for gradle/actions/wrapper-validation back on August 29: https://github.com/mullvad/mullvadvpn-app/blob/2b0bd13088a1417ac6510746051043bf81dfc8c7/.github/workflows/android-validate-gradle-wrapper.yml. But the scorecard still warns us about Warn: binary detected: android/gradle/wrapper/gradle-wrapper.jar:1, which can be seen here: https://securityscorecards.dev/viewer/?uri=github.com/mullvad/mullvadvpn-app
Are we using the gradle/actions/wrapper-validation workflow wrong, or is this check faulty in some way?

Thanks for the quick response! Maybe our trigger rules are not optimal. I realize someone could potentially commit a malicious gradle-wrapper.jar without our CI noticing if they commit it to another path, or push it without a PR (branch protection rules would not allow that, but anyway).
But I also don't want to run it on every single commit (since gradle-wrapper.jar virtually never changes, it's a waste of CI minutes).
I'm thinking to change the trigger rule to something like:
on:
  push:
    paths:
      - .github/workflows/android-validate-gradle-wrapper.yml
      - '**/gradle-wrapper.jar'

This seems like it would be secure. I think scorecard should allow this at least. But maybe it should indeed deny our current setup, since it has flaws?

This seems like it would be secure. I think scorecard should be made to allow this at least. But maybe it should indeed deny our current setup, since it has flaws. I can create a separate issue for this. But I have not yet verified if scorecard would warn on my new on:-setup.

Your new trigger sounds good, and following the intention of the Binary-Artifact check, even if Scorecard has trouble giving credit for this due to some implementation limitations.
We do our analysis on the tarball produced from git archive, so we don't have the gradle-wrapper revision easily accessible to check against.


Remove version: Google.Chrome.Canary version 131.0.6744.0

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://dl.google.com/release2/chrome/o4lcgekdoe4n4xna4ofdepbmwa_131.0.6744.0/131.0.6744.0_chrome_installer.exe
Response status code does not indicate success: 404 (Not Found).
(Automated message - build 896)


[core services] added core services that will be used all over the ap…

…p, including, dialogs, notifications, loaders and generic error handlers
Description
This PR includes changes pertaining to core services to be used in the application.
Services include:

Modal Service
Notification Service
Loader Service
Http Error handler

Fixes #(issue number 1) #(issue number 2 if applicable)
How Has This Been Tested?
I have integrated storybook which can be used as a sandbox to test new UIs and functionalities. To test this please run yarn install and then yarn run storybook
Then go the the tab for services and see the various services that have been created. These are generic services, so almost everything can be customized by the person using them
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added necessary inline code documentation
[x] I have added tests that prove my fix is effective and that this feature works
[x] New and existing unit tests pass locally with my changes

Really great work there @gastonche. I have gone through the code added on this commit and I must say it was much effort put in there. But I have something I will like to highlight.
These are services to be used throughout the app by other developer(s), yet it doesn't have any commenting explicitly detailing how to use the services you created. Lots of functions with arguments and it's difficult to know how the argument could be used by the caller of the function or how the function uses the argument. Since these are services that are going to be generally used, I see it necessary for a properly commented code or have a separate page where each of these services are used so that one can see example usage with code. As an example,
export default function Loader({
  hide, cancel, fn, message
}) {
  fn().then(hide).catch(cancel);
  return (

    { message }

);
}

You might tell us in a comment what hide, cancel and fn functions should do or create a usage page (for local test purpose) where the loader has been called and used
Also as a suggestion, rather than creating services or components from scratch which have been developed in very good libraries out there (bootstrap, prime react, bulma and many others) with good documentation, why not install these libraries and make use of their components to speed up development.
Lastly I think installing prettier js will help us to have nicely formatted and clean code that can be easily readable

In the description of the pull request added I added commands to be able to test these services in storybook. But thanks for pointing out the commenting issue.

As for writing the services from scratch, my issue comes with the way these libraries have implemented their components, for example, you need to display a dialog in a page and keep a flag in order to show it or not show it, you need to mix the dialog logic and the page logix to get it to work properly, but in my experience that is harder and more error prone, that Is why all these services are implemented with a more promise based approach, fire the service, wait for it to resolve(hide) or reject(cancel) and know what to do in either case.

But Thanks @sonegillis I'll try to comment each service more. You can checkout the storybooks for usage tho.


Active link : highlight which link is active in navbar

Describe the bug
A clear and concise description of what the bug is.
in the navbar which page is active is not visible now, I want to add active link feature
To Reproduce
Steps to reproduce the behavior:
1.
2.
3.
4.
Expected behavior
A clear and concise description of what you expected to happen.
Logs
If applicable, add logs to help explain your problem (e.g. the error message and/or exception traceback).
Environment (please complete the following information):

OS:
Browser:

Additional context
Add any other context about the problem here.

can I work on this as I am a participant of LGM-SOC.

@sheetalj2205 any updates ?

Can I work on this issue under LGMSOC?

@Amrutha1101 go for it .


feat: add :line-numbers=number supports

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Provide a description in this PR that addresses what the PR is solving. If this PR is going to solve an existing issue, please reference the issue (e.g. close #123).

What is the purpose of this pull request?

[ ] Bug fix
[x] New feature
[ ] Other

Description

add :line-numbers=number supports
move additional attributes of <pre> to preWrapper

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

12 of 12 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 56.593%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
998

Relevant Lines:
1578

💛  - Coveralls

can we split these 2 changes?

can we split these 2 changes?

I moved the attribute migration to another PR.


[Question] vindrc map insert mode keybinds in gui normal mode.

Question
Hello, first and foremost, thank you so much for you project. I haved tried multiplayer alternatives and nothing works the same as win-vind. Excelent program.
The question as the title says it, is that if there is a way to map a key in normal gui mode to a insert mode action. I asked this because i use another authotkey script to cycle through the virtual desktop, and more specific, to change windows to an specific desktop. Right know, in win-vind I've only found that I have to open the virtual desktop manager and then enter gui visual and drag the window to the virtual desktop.
So, is there a way I can access the insert mode, autohotkey script, within gui normal mode? Thank you so much again!

Thanks for using it! And thanks for the very clear questions.
The keymaps defined in each mode are just defaults, and all the functions on this page can be set to any keymap you like, regardless of the mode.  Virtual desktop related is here.
Therefore, you can map some favorite functions in GUI-Normal mode into the Insert mode like this.
imap <capslock> <f20>
inoremap <f20-t> taskview
inoremap <f20-q> close_current_vdesktop
inoremap <f20-n> create_new_vdesktop
inoremap <f20-h> switch_to_left_vdesktop
inoremap <f20-l> switch_to_right_vdesktop
inoremap <f20-v> to_gui_visual

Mapping from Insert to GUI-Normal is also possible, of course.
In the future, I plan to support command line shortcuts and low-level cmd2cmd like following.
inoremap <ctrl-h> <ctrl-win><left>
inoremap <ctrl-l> <ctrl-win><right>
inoremap <ctrl-t> <win-tab>
gnnoremap <f1> :!vim ~/.vimrc

If you want new feature to move the currently selected window to a specified virtual desktop, I will try to implement it in the next version.
Thanks.

I didn't know about that script, but I think it can be easily implemented since Windows provides an API to control virtual desktops.
Currently, only key2key is supported, so there are alternatives such as switch_to_left_vdesktop which just works the same as <ctrl-win><left>.
The plan is to implementation of two features.

something like :movewv 3 or :movewv 6 to move the selected window to the specified number. If no desktops create needed ones.
moves the selected window to the previous or next virtual desktops and switches the desktop to one.

If you have any other ideas, please let me know.
Thanks.


Logic App Standard and Consumption templates

Please fill out this template! There are three different types of contributions, feel free to delete the checklists that are not applicable to your contribution type.
If you are submitting a new azd template to the gallery
Fill this out if you want your template to be added to the awesome-azd gallery!
Your template repository
Place your template repository link here:
https://github.com/marnixcox/integration-hub
https://github.com/marnixcox/logicapp-standard-func
https://github.com/marnixcox/logicapp-consumption

[ ] Added an entry to https://github.com/Azure/awesome-azd/blob/main/website/src/data/users.tsx that includes:

[ ] Template title - A short title that reflects the local application stack that someone could use to get their application on Azure (e.g. "Containerized React Web App with Java API and MongoDB")

[ ] Description - 1-2 sentence description of the architecture (e.g. Azure services) or solution that is defined by the template.

[ ] Architecture Diagram or Application Screenshot - The image should include all services and their connections (example). You should add the image to the website/src/data/images/.

[ ] Link to Author's GitHub or other relevant website - Used for attribution

[ ] Author's Name -  Name to credit on the gallery card

[ ] Link to template source - Link to the template GitHub repo

[ ] Tags - Specify tags to represent the template. If you don't see a relevant tag for your template? Feel free to add one!
Required tags:

[ ] Tag your template as Micrsoft-authored ("msft") or Community-authored ("community")
[ ] Tag the IaC provider ("bicep" or "terraform")
[ ] At least 1 tag for programming language used
[ ] At least 1 tag for Azure services integrated
[ ] Add the "new" tag for any newly authored templates

[ ] In the PR comment, if you can also add a link to the PR where you made your repo azd compatible this will allow us to provide feedback on your template and speed up the review process.

[ ] If the template is Microsoft-authored, we encourage you to also publish it to learn.microsoft.com/samples.

If you are submitting a resource to be added to the awesome-azd README:

[ ] Name of resource
[ ] Resource author - who created this resource? (so we can credit them!)
[ ] What section should this resource be included in? -Is the resource an article? A video? Something else?

I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

@v-xuto Could you test these templates?

@hemarina, @marnixcox  We have finished this template test, and we filed three issues. Please review.

https://github.com/marnixcox/integration-hub/issues/2
https://github.com/marnixcox/logicapp-standard-func/issues/2
https://github.com/marnixcox/logicapp-consumption/issues/2

@v-xuto Many thanks for your assistance. Think I have updated/corrected them all now.

@v-xuto Many thanks for your assistance. Think I have updated/corrected them all now.

@marnixcox  We have retested these issues, the following are their latest status:

logicapp-standard-func~issues#2: This issue has not been fixed, and we have added new comments.
integration-hub~issues#2, logicapp-consumption~issues#2: Retested, fixed.

In addition, during the retesting process, a new issue was found due to the update of the readme, please review.

https://github.com/marnixcox/integration-hub/issues/3

@hemarina All issues have been fixed. There are currently no issues with this template. Please review.


Allow adding arbitrary attributes

Summary
It would be nice if we can provide arbitrary attributes to the TestRun objects to help with filtering and dashboarding.
Desired Behavior
      - name: Post JUnit test results to New Relic
        uses<EMAIL_ADDRESS>        with:
          accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
          ingestLicenseKey: ${{ secrets.NEW_RELIC_INGEST_LICENSE_KEY }}
          testOutputPath: test-output/integration.xml
          attributes: |-
               ref=${{ github.ref }}
               sha=${{ github.sha }}

Additional context
If you have a mono repo and multiple test runners inside of a single repo, or multiple repos going into a single New Relic app, it is not really possible to tell which TestRun objects are for which runner.

Hi @AngellusMortis, thanks for the feature request. Out of curiosity, can you provide some examples of the queries you're already attempting to run for your events? I'm assuming you're building dashboards around the test results, but just trying to get better context overall.
Are you wanting to execute your subsequent NRQL queries to read something as follows?
SELECT * FROM TestRun WHERE sha = 'abc123'

The reason I ask is that there are already a handful of useful fields you can access, although I'm assuming you've already attempted that, thus the feature request. But just for the sake of clarity, you can also get more granular queries by test suite and even by test name - e.g. SELECT * FROM TestRun WHERE suite = 'youTestSuiteName' or ``SELECT * FROM TestRun WHERE name = 'TheNameOfTheTest'`.
Let me know if I'm on the right track. Thanks 🙂

We do not have any dashboards yet, but yeah, that is essentially the idea. And the point is to be able to filter on multiple different levels. All of our python projects, or all of the tests for a specific branch or all of the tests for a specific repo, etc. etc. Only having a single field to filter on makes it very limiting.

Sounds good. While I can't provide an exact time table, we'll see add this enhancement request to our upcoming roadmap.

@AngellusMortis We added a --customAttributes parameter to the latest version of the GH Action. You can send in a JSON formatted object of any custom attributes to attach to the TestRun.


Fix layout of list delete-buttons

Over-eager added CSS in 78ec9cc styled every button in the application as a submit-button. This is inappropriate for delete buttons. By using a explicit btn-submit class we stop inadvertent styling.
Before

After

If you add a class of btn btn-danger you'll get nice big red buttons instead.

Yes, even better.

@fofr ?

:+1:


Cache - Page is not being cached at refresh or when changing pages more than once

Hello,
After reading this: http://docs.django-cms.org/en/release-3.3.x/how_to/caching.html
I thought that I could cache my pages (including placeholders) but as is written in the docs cache is enabled by default and I'm not on edit mode or have another plugins that contain "cache = false"
Everytime I refresh the page or change pages  mutiple database connections are being made. So my question is: Is it possible to cache my website so it wouldn't make mutiple db connections to every single user?
The problem is that it would be very expensive especially for big webistes, I saw the section "use cases" and I thought "They must being caching their pages, otherwise they wouldn't their traffic effectively"
Sorry if it's a dumb question but I can't figure out a way to serve my pages as static files after editing them.

If so then page level cache is disabled for authenticated users.

Hello @czpython thanks for your help,
I'm not logged in and I also passed "?edit_off=true"  in the url just in case.
I pushed my app to the cloud and everytime I turn my MySQL db off  I get an error as soon as I change pages or refresh a page:
(2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")
So it is definitely accesing my database in each page request.
Am I doing something wrong or that's how django cms works?
Again, thanks for helping me.

It's currently not possible for caching to completely avoid the database.
There will be queries from Django which djangoCMS has no control over, as well as query to fetch a page from the requested url path.
That said, caching should avoid most queries from the cms because it caches the entire page content for a url.
Is the mysql connection working? Try running ./manage.py dbshell and see if it connects correctly.

Yes @czpython the mysql is working, I was just trying to understand if I could make a single connection to mysql per user.
I understood what you said, I'm just gonna try to figure out some numbers on how much traffic a website could handle using django cms, I'm just kind worried to know what will happen if my website gets a lot of traffic.
Thanks a lot for your help I'll try to do some research to see what people do to make their django websites faster.
I'm closing this issue now.


style(icons): added svg icons

Thanks so much for the pr @Shasikhan <3
The reason we didn't add svg icons in the first place is because we don't want this lib to depend on RNSVG, and we strive to not have many dependencies (we even have an issue to reduce #67)
So unfortunately I need to close this.


Opposed roll does not disply the right opponent when using chat buttons

All latests releases (Foundry+WFRP), no module except CoreC7.
To reproduce :
1 - Setup a fight between 2 characters
2 - Do not target, let char1 attack with its weapon
3 - Lets char2 do a defense roll (Dodge for example)
4 - In the chat, click on "Opposed Test" button to rely the 2 rolls
5 -> The Opposed Test message is wrong, it displays twice the name of the attacker, which is very confusing.
See capture ( in the green box, it should be "gg is targeting gg2") :

Try this:

Do not target, let char1 attack with its weapon

Select char2 token, Cilck right mouse button to choose a target

Cilck right mouse button to char1 attack test and click oppose with targets

Lets char2 do a defense roll (Dodge for example)


Ensure regexp correctly matches relative root path and move caching flag

Previously if there was a tag with href='/' followed by another tag with a relative URL, the contents of the second tag would not be replaced with an absolute URL. Added a test for this edge case and tweaked the regexp to fix.
The second commit moves the caching flag into the initialize method so it's only set once. It was being deleted from the conditions instance var on the first run, then set to false for all subsequent runs.

Hi Jo,
Thank you for the PR -- I appreciate the tests too! This looks great.
There's a Rubular link in the comment right above your regex change. We'll want to update that. Here's what I think that should look like now: http://rubular.com/r/hiAxBNX7KE.
Let me know if that looks good to you.
Thanks!
Amy


How to call individual tests and how to pass runtime data to test?

I'm trying to use Doctest to test a 3D renderer. I would like to set it up such that each renderer frame runs 1 test-case. The renderer would write frame data to memory, including image data, and the test assertions would then compare that frame data with known good values.
How can I setup Doctest to run one test at a time, and how can I pass runtime data to the test?
Thanks
Extra information

doctest version: v2.4.4
Operating System: Window's 10
Compiler+version: MSVC 2019, Latest

I guess you need to initialize the renderer once and then you want to check that a sequence of rendered frames (based on some pre-determined animated scene) match pre-rendered images?
In that case why not simply have 1 test case for each scene and just loop over the frames and assert on each frame that the result matches the pre-rendered images?

I guess you need to initialize the renderer once and then you want to check that a sequence of rendered frames (based on some pre-determined animated scene) match pre-rendered images?
In that case why not simply have 1 test case for each scene and just loop over the frames and assert on each frame that the result matches the pre-rendered images?

I don't understand exactly what you mean by one test at a time and why you would want that. Can't you just have separate test cases for the separate scenes where you assert that the results match, and in the case of animated scenes (with multiple frames) simply use a loop in the test case to assert for each frame?
You can also invoke the doctest binary with command line filters and you can explicitly make doctest execute 1 specific test case by specifying its name with --test-case=<exact_name_of_test_case>.
Regarding runtime data - you can implement your own main() and perhaps do some custom command-line parsing of your own so that you set some global variable for the test cases to access.

I don't understand exactly what you mean by one test at a time and why you would want that. Can't you just have separate test cases for the separate scenes where you assert that the results match, and in the case of animated scenes (with multiple frames) simply use a loop in the test case to assert for each frame?
You can also invoke the doctest binary with command line filters and you can explicitly make doctest execute 1 specific test case by specifying its name with --test-case=<exact_name_of_test_case>.
Regarding runtime data - you can implement your own main() and perhaps do some custom command-line parsing of your own so that you set some global variable for the test cases to access.

By one test-case at a time, I mean that the Renderer would render one frame, then that frame would be tested against some known value(s), and then the Renderer would render the next frame. In other words, the renderer wouldn't render all frames at once, then then compare all the results at one. The reason for wanting one frame at a time is that I can put the frame creation and frame testing data into different test-cases, and this will then serve as a type of documentation for the various features.
So far, I started working on a solution like what you mentioned: use --test-case= to filter tests, and using globals to pass data.  I'm calling Context::run() once per test, during program execution. The test-cases are executed(optionally) as part of normal program run; that is, the test-cases are embedded within the renderer program, it's not a separate test binary.
One function that would help is to be able to enumerate the test-case names, before calling Context::run(). That way, I don't have to keep a manual test names in a list.
This other function is minor: Calling Context::run() multiple times creates multiple stats output. If possible, it would be nice if Context:run() would take an argument to tell it to display some abbreviated output for non-last tests, and then output the full stats for the final test. This is just a nice to have, though.

By one test-case at a time, I mean that the Renderer would render one frame, then that frame would be tested against some known value(s), and then the Renderer would render the next frame. In other words, the renderer wouldn't render all frames at once, then then compare all the results at one. The reason for wanting one frame at a time is that I can put the frame creation and frame testing data into different test-cases, and this will then serve as a type of documentation for the various features.
So far, I started working on a solution like what you mentioned: use --test-case= to filter tests, and using globals to pass data.  I'm calling Context::run() once per test, during program execution. The test-cases are executed(optionally) as part of normal program run; that is, the test-cases are embedded within the renderer program, it's not a separate test binary.
One function that would help is to be able to enumerate the test-case names, before calling Context::run(). That way, I don't have to keep a manual test names in a list.
This other function is minor: Calling Context::run() multiple times creates multiple stats output. If possible, it would be nice if Context:run() would take an argument to tell it to display some abbreviated output for non-last tests, and then output the full stats for the final test. This is just a nice to have, though.

In order to enumerate the test case names, you could call the test binary once with --list-test-cases and then use the outputted list (after trimming the first 2 and last 2 rows). Others have also requested to enumerate the list of test cases in C++ before but I haven't exposed that functionality yet - have a look at this issue and where I mention getRegisteredTests: https://github.com/onqtam/doctest/issues/184
Combining the results from multiple calls to Context::run() isn't very straightforward... (well... you could theoretically do it with quite a bit of code and writing your own reporter)
Have you looked at subcases? https://github.com/onqtam/doctest/blob/master/doc/markdown/tutorial.md
You could have 1 test case with multiple subcases where the first subcases generate the frame data and the other subcases test the frame data. Perhaps you don't need to execute the binary many times but could implement everything in test cases & subcases inside of the C++?

In order to enumerate the test case names, you could call the test binary once with --list-test-cases and then use the outputted list (after trimming the first 2 and last 2 rows). Others have also requested to enumerate the list of test cases in C++ before but I haven't exposed that functionality yet - have a look at this issue and where I mention getRegisteredTests: https://github.com/onqtam/doctest/issues/184
Combining the results from multiple calls to Context::run() isn't very straightforward... (well... you could theoretically do it with quite a bit of code and writing your own reporter)
Have you looked at subcases? https://github.com/onqtam/doctest/blob/master/doc/markdown/tutorial.md
You could have 1 test case with multiple subcases where the first subcases generate the frame data and the other subcases test the frame data. Perhaps you don't need to execute the binary many times but could implement everything in test cases & subcases inside of the C++?

Thanks for the pointers to other issue tickets.
The Renderer is hardware based. I have to issue commands to the GPU to draw the frame, and then get the result in the next iteration, because it takes some time for the GPU to complete the frame. Thus, I have to call the TestCase once to setup the frame to be rendered; then the Renderer issues the commands to the GPU and renders the frame; finally, I call the TestCase, again, to verify the created frame data. So, something like Subcases wouldn't work for my usecase.

Thanks for the pointers to other issue tickets.
The Renderer is hardware based. I have to issue commands to the GPU to draw the frame, and then get the result in the next iteration, because it takes some time for the GPU to complete the frame. Thus, I have to call the TestCase once to setup the frame to be rendered; then the Renderer issues the commands to the GPU and renders the frame; finally, I call the TestCase, again, to verify the created frame data. So, something like Subcases wouldn't work for my usecase.

Normally graphics API supports glFlush command analog that allows to wait for all GPU commands to be executed. So you can do something straightforward like:
TEST_CASE("TestRenderer")
{
     MyRenderer r;
     while( !r.done() )
     {
          r.drawFrame();
          r.flush();
          CHECK(/*something*/);
     }
}

Anyway, passing runtime data and executing specific tests in a specific order with some user code between, sounds like the wrong way to do things. Maybe it's better to write your own testing loop and use doctest just as an assertion library.

I don't need this anymore. Closing this issue.


Implementing DEEP Protocol marked as NotImplementedError

I made this alteration to the library for my use back in May 2020 and thought I might as well share the change to expand this.

Hey @CelebrateVC thanks for contributing, due to my current employer's policies on open source code I need to get their approval before reviewing or merging this code.


SimpleProducer with a HashingPartitioner fails under python3

When using a HashingPartitioner for a SimpleProducer on a topic with multiple partitions, running under python3 fails with the following stack trace:
Traceback (most recent call last):
  File "/vagrant/test.py", line 17, in <module>
    producer.produce(message, key)
  File "/usr/local/lib/python3.4/dist-packages/pykafka-2.0.3-py3.4.egg/pykafka/producer.py", line 244, in produce
    partition_id = self._partitioner(partitions, partition_key).id
  File "/usr/local/lib/python3.4/dist-packages/pykafka-2.0.3-py3.4.egg/pykafka/partitioners.py", line 77, in __call__
    partitions = sorted(partitions)  # sorting is VERY important
TypeError: unorderable types: Partition() < Partition()

Passing the list of partition objects to sorted() is not an issue in python2.  I assume that this is related to this issue.

Just FYI, I was able to get past the stack trace by adding a very basic __lt__ implementation to the Partition class:
    def __lt__(self, other):
        return hash(self) < hash(other)


add a simple test runner?

An important target group for this app (imo) are beginners and prototype builders. From my experience, both these groups would benefit greatly from having simple test infrastructure bundled with this starter.
From my own experience, I usually have a script.js that I'd include into the main module, but that's pretty hacky until I finally setup (whatever flavor of test infra is popular). The value I get is from being able to write code that'll run on every edit-save separately from my app, but that later morphs into a unit test suite or so on. For beginners, they'd build their app, but write tests for smaller parts of the app they're building, while learning to write tests for their code.
To be clear, I'm not advocating any specific framework/suite/assert libs; I'd just like to be able to run even a if(true) throw new Error script on every change.
Thoughts?
Thanks for the great tool!

I agree we should ship a test runner (Jest, ava, mocha, whatever) as long as we can stick with “no configuration” as the guiding design principle.
Other thoughts:

We’re probably not going to include anything for running tests in browser because of the complexity it involves.
We’re probably not going to include jsdom either.
Testing app logic with a simple Node runner using Jasmine (or what do people use these days?) seems like a good idea.

How about tape? It's super simple and it already almost works -- if you restrict yourself to the subset of ES6 that your version of node supports you can use it now; all one would need to get it working is running it in babel-node.

With you on zero config; running src/tests.js in a 'watch' mode on npm start (and once on npm run build?) would be good. You sure about not running it in a 'browser' though? Phantomjs works pretty nicely, and wouldn't need any config/ explicit invocation/require iirc.

Huge vote for Mocha + Enzyme. This probably requires JSdom, at least according to Enzyme docs.

I'm agree with Threepointone. Maybe PhantomJS with Mocha.

@ffxsam Enzyme would keep things nice and simple.
Thanks adding it to the conversation!

also headless chrome is round the corner, so that'll be a great solution with no 'dependencies'

I'd be happy to help and/or answer any questions about using Enzyme here!

Is PhantomJS really needed though? It seems a bit overkill, when Enzyme can easily simulate events on components. If I'm not mistaken, PhantomJS & Selenium are more for E2E testing, not unit testing.

@ffxsam Agree on Enzyme (it's great), and we wouldn't need jsdom if we do shallow rendering.

jsdom is only required for mount and render, correct?

Another vote for Enzyme, simplifies testing considerably, also the official React docs kind of recommend it now 😄

To make it clear, the tool currently only abstracts build dependencies so it shouldn’t matter too much what library you use to make assertions / mount tree / etc. Choosing the runner and conventions is what we need to do.

I'd vote Mocha then

Personally I think a "no config" setup would make sense with Jasmine, as it has all the things you need (assertions, mocking, etc..) with no configs. Where as Mocha might require chai and other things.

That's a good point, but based on what @gaearon said above, I don't think we're as concerned with the assertion library because it's not a build dependency. I'd favor Mocha just because I think it's more commonly used, but I have no problem with Jasmine if that's the way we want to go.

If many people will be using Enzyme, Mocha is much easier to set up. Enzyme was designed to be used with Mocha, though of course it can be used with any test-runner.
Enzyme+Jasmine is a separate repo, FYI.

A few questions about conventions:
Can we put the tests in a test folder on the same level as src?
Should we include a template test, since there's a template component?
Do people prefer explicit extensions on the test files (i.e. '.spec.js') or just run everything in the test folder?
I'm thinking something like:
my-app/
  src/
    App.js
    ...
  test/
    App[.spec?].js

I'd err on the side of having tests folders anywhere in the tree. It's very painful to write imports that go many folders up and then many folders down. Also colocating relates code helps comprehension.

Hi all,
I have no qualifications whatsoever, so feel free to completely ignore this comment.
I personally would advocate for considering anything ending with .test.js or .spec.js as a test, because it allows you to either put your tests next to your code (as I prefer to do), or throughout the tree in __tests__. It would also be really easy to look for tests in a tests directory on the same level as src as well.

I'd err on the side of having tests folders anywhere in the tree. It's very painful to write imports that go many folders up and then many folders down. Also colocating related code helps comprehension.

I agree that imports begin to look ugly. In past projects i've usually used webpack's resolve.root feature to resolve imports from the src/ folder as well. This could be a solution

Is there any chance at using Karma as the test runner? It is fairly agnostic to assertion libraries, has a rich plugin ecosystem for everything, supports console (via PhantomJS, SlimerJS, jsdom) and browser testing. The major downside is not way for test splitting/parallelism/concurrency.
My concern would be that providing no support for browser testing would make this less useful for the majority of application (but perhaps less so for library authors). Not everything can, or should, be shallowlyy rendered or run in jsdom.

I am not sure that we should ship a test runner. We need to avoid "boilerplate disease" where we add more dependencies because a feature is useful, but many people don't like those dependencies and would prefer to customize it, so in the end most people dislike that boilerplate. Maybe it would be possible to have some addon system like npm run add karma or npm run add tape and so on. It does need to be possible to run tests without ejecting though, somehow.

Ava is as simple as tape, with an unopinionated design that could accommodate any kind of project. In combination with nyc, code coverage could also be measured without hassle.

This ends up being a really large decision, considering that whatever test framework is chosen, we end up essentially anointing it as official and as a result encourage its use in the community. While there are certainly cases of framework tooling that was eventually dropped in favor of something better(minitest => rspec), that is the exception, and not the rule.
So in my eyes, a testing framework that is forward looking and encourages the kinds of design principles that the core team sees as the way forward for React should be respected.
I make no claims as to knowing their intent, but in many ways this seems to point towards something like Ava, because of how it encourages a more functional style(which in turn is easier to keep concurrent), much like how Redux is encouraging such a paradigm.

This ends up being a really large decision, considering that whatever test framework is chosen, we end up essentially anointing it as official and as a result encourage its use in the community. While there are certainly cases of framework tooling that was eventually dropped in favor of something better(minitest => rspec), that is the exception, and not the rule.
So in my eyes, a testing framework that is forward looking and encourages the kinds of design principles that the core team sees as the way forward for React should be respected.
I believe this points towards something like Ava, because of how it encourages a more functional style(which in turn is easier to keep concurrent), much like how Redux is encouraging such a paradigm.

We need to avoid "boilerplate disease" where we add more dependencies because a feature is useful, but many people don't like those dependencies and would prefer to customize it, so in the end most people dislike that boilerplate.

Agreed. I think as long as it’s unobtrusive it could work though. I’m really interested in how well new snapshot testing works in Jest btw. It could plausibly be a good default for React apps.

I am not sure that we should ship a test runner. We need to avoid "boilerplate disease" where we add more dependencies because a feature is useful, but many people don't like those dependencies and would prefer to customize it, so in the end most people dislike that boilerplate. Maybe it would be possible to have some addon system like npm run add karma or npm run add tape and so on. It does need to be possible to run tests without ejecting though, somehow.

Perhaps extending the npm start command with custom flags like so:
$ npm start --with-tests
```.

This allows the tool to still retain its simplicity. Some beginners may not be writing any tests yet so it may be best to avoid having them learning a testing framework as well.

I'd like to make an argument against including any test framework in this. Everyone has an opinion on which test framework works best and most of them are valid. I feel like the scope of this package is perfect at the moment. Yes it is opinionated to some extend but not in a too invasive fashion.

react Most obvious one. If you don't want to use React you probably don't need this package
babel It works in the background and doesn't dictate how I write my code. Also configuration is done for me.
webpack Same as Babel

If we include a test framework we dictate how the user should write their tests. We might then go ahead and let the user choose which test framework they want to use buy adding a selection dialog in the CLI but at that point the user might as well use a Yeoman generator.
I think we should focus on optimizing what is currently there so we can guarantee highest possible quality and best user experience.
In short: Let's leave this package un-opinionated around testing and let the user decide.

I'm kinda :+1: for what @timjacobi said, adding Mocha to a generated app is a single command and an entry in a JSON file:
npm install mocha

{
  "scripts": "mocha *.js"
}

It's not so simple, you'd have to configure it to be compatible with our set of Babel plugins.

Originally I was excited to include testing support but @timjacobi makes a very compelling argument that has changed my opinion. I think it's almost impossible to include testing without forcing the user into a specific set of tools/config which they may not want. Additionally I agree that the primary use case for this is for new users who aren't likely to be experimenting with testing (as much as we all wish they would! :P) simply because the react learning curve is the first thing people are looking to solve.
I think the 'eject' feature is where this project really shines for users who want to do things like set up automated testing.

If we include a test framework we dictate how the user should write their tests.
Actually, most popular testing framworks are following the describe/it convention. There are some differences in implementation (Jasmine, for example has built-in assertions), but the code structure will be the same and it will be possible to mirgate from one to another easily.

The difficulty with expecting users to do this themselves is that it requires running babel and (to some extent) webpack.  We make that even harder by hiding the babel and webpack configs from the user.
I think the least opinionated thing we can do here is provide a way to run a JavaScript file (or set of JavaScript files) in node.js with webpack + babel done for the user.  This would mean providing something like react-scripts run *.test.js.  It would leave the user free to choose a library for structuring tests and assertions.

That sounds very sensible @ForbesLindesay!

@timjacobi I disagree with your reasoning about how opinionated this project already is. Despite you saying that it shouldn't tell you how to write your code, it already includes ESLint, a tool whose only purpose is to tell you how to write your code. And babel also dictates how you can write your code, based on the specific plugins that have been chosen. Similar to the Mocha/Ava/Karma/Jest debate we're having here, there are bundlers besides Webpack that are commonly used by JS developers, like Browserify and Rollup, and yet @gaearon chose to use one of those over all the others. (For the record, I love Webpack and think it was the right choice.) So I don't really see how choosing a test runner to include would go beyond the bounds of what has already been established by this project.
I think the least opinionated thing we can do here is provide a way to run a JavaScript file (or set of JavaScript files) in node.js with webpack + babel done for the user. This would mean providing something like react-scripts run *.test.js. It would leave the user free to choose a library for structuring tests and assertions.

@ForbesLindesay This might be a good idea, but it doesn't really solve the problem for anybody who wants to use a test runner. For example, mocha runs with its own CLI, so even if you had this set up to handle the webpack + babel stuff, you wouldn't be able to do react-scripts run mocha *.test.js. I think the same is true of karma and ava.

@wdhorton I never said it doesn't dictate you how to write your code. I said it wasn't too invasive doing so. That's two different things. Perhaps I should have been more clear about the framework aspect. If you introduce a test framework you dictate the user to use it. Babel doesn't dictate you to use it since you can still write ES5 code an it will happily transpile it for you even though this arguably turns into a no-op. Same for Webpack. No one forces you to run npm build at anytime. I actually think that it would be great to have tooling like enzyme be part of this but we should try to find a more generic way to do so.

Despite you saying that it shouldn't tell you how to write your code, it already includes ESLint, a tool whose only purpose is to tell you how to write your code. And babel also dictates how you can write your code, based on the specific plugins that have been chosen.

Having webpack, and eslint is fine in my opinion. The user is not really forced to learning anything extra on that end. There's no additional API/frameworks they need to learn. It's just JavaScript in the end and the only framework they require to learn is React.
I'm going to have to agree with @timjacobi on not including any testing framework. Adding these testing framework can be beneficial but that requires a new user to learn those frameworks on top of learning React itself. We should be asking who the target audience is? Should we assume users to already know a testing framework? If so, should we assume they know x framework or y framework?

Adding these testing framework can be beneficial but that requires a new user to learn those frameworks on top of learning React itself.

Doesn’t “require”, you can keep writing your app without any tests. However most apps need at least some tests pretty soon.

Should we assume users to already know a testing framework? If so, should we assume they know x framework or y framework?

Knowledge of testing frameworks is super portable because most just use describe / it for declaring tests. So in many cases it’s possible to use e.g. Mocha, and then easily move to Jest, or vice versa.

I personally vote for a test runner (probably mocha) to be included, but, at least as an interim step, we should make sure that the webpack config is enzyme compatible.

I think what's important here is that we decrease the friction for creating tests as much as possible.
Elixir does this with all new projects and having that passing test ready to go makes me write 10x more tests than in JS because it's chore to get everything setup.

at least as an interim step, we should make sure that the webpack config is enzyme compatible.

Please file an issue if there’s something about that config that breaks enzyme.

I added a PR (#216) to show a basic test setup. I used Mocha, but the most important parts are framework-agnostic, and we should be able to easily swap in another framework if one pulls ahead significantly.

I think what's important here is that we decrease the friction for creating tests as much as possible.

I've gotten a lot of feedback from new React developers that setting up a test environment is a PITA.  A production ready test environment that properly deals with CSS/images, mocking/stubbing/spys, shallow rendering, etc. is not a trivial thing to set up and would probably be very beneficial to abstract away.

Elixir does this with all new projects and having that passing test ready to go makes me write 10x more tests compared to JS projects because frankly it's chore to get everything setup.

rails new does this as well.  I think an important aspect is to allow users to disable the 'default' test config so they can use their own if they're opinionated.
For example, often in rails projects I pass the -T flag to NOT use minitest and then set up RSpec myself b/c that is the framework I prefer.
Maybe a good compromise is to include the simplest testing setup possible that will be compatible with this project and then allow users to disable instead of enable the testing setup if they decide they want to use a different framework or something more complex.  That way people are automatically opted-in to doing something they should be doing (think pit of success) and have to make an active choice to opt out of having a testing environment setup included in their new projects.

@gaearon: @wdhorton already fixed the bug in #216 here.

Jest almost works out of the box with create-react-app if you install babel-jest, the only problem is that create-react-app doesn't put a .babelrc file in the root.

@mpj Does babel-jest handle non-js imports like import "foo.css" and import "foo.png"?
I am working on the react-scripts run as described by @ForbesLindesay & discussed in https://github.com/facebookincubator/create-react-app/issues/218 . That should be useful for some quick-and-dirty testing and maybe some lighter-weight test frameworks can actually just be invoked through it.

A few people asked me to contribute a pull request with an initial Jest integration: https://github.com/facebookincubator/create-react-app/pull/250
If you'd like to find out more about snapshot testing, please read our new blog post and documentation.

I'm a big fan of TDD and testing which means I always want it to be easy for people to include tests or to learn more about writing tests.
If a BDD framework such as Mocha or Jasmine were included, it would be nice, however, it is kind of an extra.
I'm thinking back to the first React app I wrote at a Railsbridge (yes, it was Railsbridge, they do js, front-end workshops too).  I was wrapping my head around building components and using a store instead of using templates and models. I didn't write any tests.  Maybe it's not as important if this is a setup for an initial Hello Components! react app.
Also, there are a lot of opinions that come with testing.  The one I see in this thread is folder structure.  If I'm encouraging someone to do more testing, they need to be able to arrange their tests in a way that suits them.
My team downloaded create-react-app and found it pretty easy to add tests in a separate test folder.  We had to include babel but it was nbd.
I'm with @timjacobi that it seems early to add in testing, but it's not too early for a pointer to anyone who wants to do a test setup. Also I hope people are encouraged to set up tests with this project and it makes me so happy to see this thread!

I'll add my two cents. Contrary to what I expected, it took me just a few minutes to setup mocha, enzyme, expect.js (mostly spent googling, as I had never used any of them).
The inconvenience is that I have two terminal tabs, one for create-react-app, the other for mocha watch. right now, for me this is already good enough; I'm willing to trade a little inconvenience for the ability to ditch, say, mocha for Jasmine whenever I see fit, or to use a single test dir instead of many __tests__ dirs—tastes, as they say.
I'm no beginner, though, and a beginner cannot be expected to know how to hack a testing solution on an existing project, or whether to use Mocha or Jasmine or Karma or whatnot.
So, my proposal:

have exactly one full testing solution nicely integrated (opt out) in create-react-app, with sample tests, pointers to docs, etc.—I have personally no real preferences here, I'm used to Jasmine but I'll use whatever works, they are all very similar after all.
leave room for the integration of alternative solutions—No idea how hard it would be!
have pointers to a few how to docs for other solutions.

This should help beginners to start using React with proper tests without hassle, and should also allow everyone to opt for a different testing setup with reasonable effort.

#250 was merged and should fulfill most of the wishes people expressed in this thread. If you'd like additional features, please feel free to create new issues and cc me on them :)

0.3.0 is out with support for testing.
Read the usage guide and the migration instructions.
💜


new mods lists from frey

Can we make the capitalization of all of the mod files consistent (Pascal case)?


Retrying langchain.embeddings.openai.embed_with_retry

System Info
Here is my code:
from langchain.embeddings.openai import OpenAIEmbeddings
persist_directory = 'docs/chroma/'
embedding = OpenAIEmbeddings(request_timeout=60)
vectordb = Chroma(persist_directory=persist_directory, embedding_function=embedding)
question = "What are major topics for this class?"
docs = vectordb.similarity_search(question,k=3)
len(docs)

Here is the issue:
Retrying langchain.embeddings.openai.embed_with_retry.<locals>._embed_with_retry in 4.0 seconds as it raised APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/engines/text-embedding-ada-002/embeddings (Caused by ProxyError('Unable to connect to proxy', SSLError(SSLZeroReturnError(6, 'TLS/SSL connection has been closed (EOF) (_ssl.c:1131)')))).
I have tried my apikey with other code and it works just fine. First time it happens when I use embedding = OpenAIEmbeddings() with another group of codes and then I change it to embedding = OpenAIEmbeddings(request_timeout=60) and it works. But this time, even if I increase the request_timeout to 120 and it still doesn't work. Any thought on this?
Who can help?
No response
Information

[ ] The official example notebooks/scripts
[ ] My own modified scripts

Related Components

[X] LLMs/Chat Models
[X] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
import os
import openai
import sys
sys.path.append('../..')

import panel as pn  # GUI
pn.extension()

from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # read local .env file

openai.api_key  = os.environ['OPENAI_API_KEY']
import datetime
current_date = datetime.datetime.now().date()
if current_date < datetime.date(2023, 9, 2):
    llm_name = "gpt-3.5-turbo-0301"
else:
    llm_name = "gpt-3.5-turbo"
print(llm_name)
from langchain.vectorstores import Chroma
from langchain.embeddings.openai import OpenAIEmbeddings
persist_directory = 'docs/chroma/'
embedding = OpenAIEmbeddings(request_timeout=60)
vectordb = Chroma(persist_directory=persist_directory, embedding_function=embedding)
question = "What are major topics for this class?"
docs = vectordb.similarity_search(question,k=3)
len(docs)

Expected behavior
How can I make it work stably instead of having this occasionally?

@betterMax I run into this issue sporadically. I have always assumed the root cause is on OpenAI's side because retrying it over some period of time typically solves it for me

Same here - I definitely set proxy in my code. I think there's timeout due to rate limit from time to time.

@betterMax I run into this issue sporadically. I have always assumed the root cause is on OpenAI's side because retrying it over some period of time typically solves it for me

Yes. I thought the same. But I tried another code that also uses the openai API, and it works fine. So that's not related to API.


standalone-datacatalog doesn't have Kedro metadata

Description
As per title. pyproject.toml with the Kedro metadata is missing, which leads to some subcommands not being available, for example kedro jupyter:
https://github.com/kedro-org/kedro/blob/116ddd015e81d2a6930a0dfbe83e630e526634f4/kedro/framework/cli/cli.py#L172-L173
Context
I was trying to use the standalone-datacatalog from Jupyter to have a minimal Kedro setup from a notebook, but found that the kedro.ipython extension was not loading.
Steps to Reproduce

kedro new -s standalone-datacatalog
Try kedro jupyter notebook
See it fail because it's not found

Expected Result
kedro jupyter works for all starters.
Actual Result
juan_cano@M-PH9T4K3P3C /t/test-kedro-ipython-mini> kedro jupyter notebook                                          (kpolars310)
Usage: kedro [OPTIONS] COMMAND [ARGS]...
Try 'kedro -h' for help.

Error: No such command 'jupyter'.
juan_cano@M-PH9T4K3P3C /t/test-kedro-ipython-mini [2]> kedro                                                       (kpolars310)
Usage: kedro [OPTIONS] COMMAND [ARGS]...

  Kedro is a CLI for creating and using Kedro projects. For more information,
  type ``kedro info``.

Options:
  -V, --version  Show version and exit
  -h, --help     Show this message and exit.

Global commands from Kedro
Commands:
  docs     See the kedro API docs and introductory tutorial.
  info     Get more information about kedro.
  new      Create a new kedro project.
  starter  Commands for working with project starters.

Your Environment

Kedro version used (pip show kedro or kedro -V): 0.18.4
Python version used (python -V): 3.10.9
Operating system and version: macOS Ventura

@astrojuanlu Thanks for picking this up.
This is extracted from the README

Limitation
... If you stick with this project structure without transitioning to a full project, you will only be able to use Kedro’s library components such as the DataCatalog, Node and Pipeline manually. You won’t be able to use features available in a full Kedro project, including project-based CLI commands such as kedro run.

This included kedro jupyter, as we also suggest the users launch the notebook with jupyter notebook instead of the kedro command.
I do realize this is a bit awkward, but I don't think adding the pyproject.toml to make it a full project is the correct approach since we want to make it standalone instead of a full Python package.

Thanks @noklam for the extra context (well, and also for pasting the README I should have, errr, read).
Maybe we can work on this from a different angle. Given that the kedro.ipython extension purpose is to give easy access to catalog, context, pipelines and session, would it be possible for it to work without metadata? I guess the only missing bit would be the Kedro session.
Otherwise, let's just turn this issue into a docs issue so that we can adapt this sentence or add a warning around it:
https://github.com/kedro-org/kedro/blob/393d9d202f97bf07c8b1fc9cba6493979d6e958c/docs/source/notebooks_and_ipython/kedro_and_notebooks.md?plain=1#L9

@astrojuanlu
I think the kedro.ipython also need a full Kedro project to work with, but maybe there is something we can work around.
I am going to give this a closer look while I work on the kedro jupyter-init command.

Answering the question earlier:

Since the current starter is designed to used Kedro as a library - not a project. It doesn't have any pyproject.toml, in fact none of the "Kedro Project commands" is available.
%reload_kedro also won't work because pyproject.toml is needed

It got archived in #184 indeed


[TechDocs] Fix permalink scroling

Hey, I just made a Pull Request!
Fix permalink scrolling for anchors where the id starts with a number.
:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

Remember the changeset!