feat: support single-character flags

Closes #26
Changes:

removed the check against 1-character flagNames
added a check against 1-character flags with an alias defined

Tests:

removed the test making sure 1-character flags were disallowed
added a test making sure 1-character flag names work
added a test making sure 1-character flag names can be used in alias groups along with longer flags (git commit -am hello)

Note:
I was surprised it was as easy as this. And from playing around it seems that type-flag doesn't seem to care if you use -- or -, for flags of any length. For example foo --message hello and foo -message hello both seem to work. Likewise foo -m hello and foo --m hello.
I wasn't sure if this was deliberate, I couldn't find it in the docs. But either way, I wanted to get this in along with test cases. So if the above is considered a bug, not regressing support for single-character flags would be part of the fix requirements if this goes in first.
Another note:
For this to make its way to cleye, there might be some special-casing needed for the --help renderer (to avoid suggesting --x 1 usage instead of -x 1 (although both work as noted above)). I can help with that too if you'd like, once this or something like it is published.

So foo --message hello and foo -message hello have different behavior.
foo --message hello passes in 'hello' to `message.
foo -message hello passes in 'hello' to the alias e, and true to messag (alias grouping). This is the same thing as git commit -am message, but just confusing because the aliases are grouped in a way to have some semantic meaning. There are tests that cover this behavior: https://github.com/privatenumber/type-flag/blob/c2a0aa0a529db69143cdba70f260f3c3b76fb907/tests/specs/type-flag.ts#L191-L209
I was thinking foo --m hello should not work because m is an alias... but this actually works in Git git commit --m 'hi' -a (where m is an alias) so maybe this is inadvertently expected behavior. I should add a test to cover this.

I think I was actually misinterpreting the Git behavior.
git --m message works only because there are no other flags for git commit that start with "m". But trying it with other flags raises errors:
$ git commit --a --m wip
error: ambiguous option: a (could be --allow-empty or --allow-empty-message)

I'll actually fix this first so it won't work.

I think this is basically ready to go.
Would you mind tackling the cleye update too?
You can install this version of type-flag with:
pnpm i 'privatenumber/type-flag#npm/single-character-flag'

@privatenumber thanks for publishing! I tried to add to cleye but there's a build error:

I haven't had time to dive into it- the generics go very deep... but I suspect this error would appear from the latest develop branch too since types were not affected by this PR.
If you could publish a version based on latest develop I can to test that theory?

Ok, I was able to repro the above problem on the develop branch. I think type-flag no longer really works with cleye, as it stands. It is not related to this PR, so I'll turn this comment into an issue.
I used git bisect to find what change broke it (In case you want to try, I didn't do any fancy npm linking, I just copied the dist folder into my local cleye clone. So I just ran this command for each commit git bisect suggested: pnpm i; git checkout pnpm-lock.yaml; pnpm build; rm -rf ../cleye/node_modules/type-flag/dist; rsync -r dist ../cleye/node_modules/type-flag; (cd ../cleye; pnpm build 2> /dev/null). That command succeeded on master, and failed on develop because of the above typescript error.
Git bisect result:
5fcb9cc95f4c98f97d73a5b7c61302c8d6a46d51 is the first bad commit
commit 5fcb9cc95f4c98f97d73a5b7c61302c8d6a46d51
Author: Hiroki Osame<EMAIL_ADDRESS>Date:   Tue Apr 16 23:48:44 2024 +0900
style: remove any

path
changes

README.md
6 +-

package.json
6 +-

pnpm-lock.yaml
2345 +++++++++++++++++++++++++++++++++++++------------------

src/get-flag.ts
2 +-

src/types.ts
9 +-

src/utils.ts
9 +-

6 files changed, 1587 insertions(+), 790 deletions(-)

I guess one of the any -> unknown changes broke it the typearg extends condition somehow. I'll try to find to time to dig into which exactly, but commenting in the meantime in case anything springs to mind.


Release RLock if database does not exist

@corylanou @dgnorton

+1

oh yeah, that's a good one. :+1:


[#5059] Refactor DNSProvider

Codecov Report

Merging #5544 into master will decrease coverage by 0.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #5544      +/-   ##
==========================================
- Coverage    40.8%   40.79%   -0.02%
==========================================
  Files        2822     2823       +1
  Lines       84907    84913       +6
  Branches    11314    11314
==========================================
- Hits        34649    34637      -12
- Misses      47225    47252      +27
+ Partials     3033     3024       -9

Impacted Files
Coverage Δ

.../context/provider/grpc/GrpcDataSenderProvider.java
0% <0%> (ø)
:arrow_up:

...p/pinpoint/profiler/context/module/GrpcModule.java
0% <0%> (ø)
:arrow_up:

...ontext/provider/grpc/GrpcNameResolverProvider.java
0% <0%> (ø)

...m/navercorp/pinpoint/web/util/ThreadDumpUtils.java
33.33% <0%> (-5.72%)
:arrow_down:

...t/collector/cluster/flink/FlinkClusterService.java
10.44% <0%> (-4.48%)
:arrow_down:

...p/pinpoint/collector/receiver/grpc/StatServer.java
34.04% <0%> (-4.26%)
:arrow_down:

...p/pinpoint/collector/receiver/grpc/SpanServer.java
38.29% <0%> (-4.26%)
:arrow_down:

...om/navercorp/pinpoint/rpc/codec/PacketDecoder.java
57.44% <0%> (-2.13%)
:arrow_down:

.../pinpoint/rpc/client/PinpointClientHandshaker.java
65% <0%> (-1.43%)
:arrow_down:

...ercorp/pinpoint/profiler/util/ThreadDumpUtils.java
62.22% <0%> (-1.12%)
:arrow_down:

... and 4 more

Continue to review full report at Codecov.

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


Merge 2023-Q3-v2.7x into main

To be merged at release time.

Base branch was not set in #884 and when that merge it resulted in this one auto merging. Reverting in https://github.com/rancher/rancher-docs/pull/886.


.Net: Do an in-depth audit / revision of all XML comments.

1.0.1 shipped. Many of the comments were overhauled for the things marked as stable.


Black lines appear sometimes when editors are resized in high-DPI

VSCode Version: 1.22.1
OS Version: Windows 10 (version 1709, build 16299.309)

Steps to Reproduce:

Set Windows display scaling to 125% (I'm also using a resolution of 1920x1080)
Enable split layout (not sure if also reproducible without split, but seems to reproduce most reliably with a split)
Resize the window OR show/hide sidebar OR move the panels from the bottom to the right and show/hide them
Occasionally black lines appear on the left side of the editor panes

Does this issue occur when all extensions are disabled?: Yes

I can also reproduce this with code --disable-gpu.


Demo of the app, e.g. on github

It would be nice to have demo online to try the app on github directly

https://seitenbau.github.io/SBideo/

Please add this to readme and close the issue.

Demo link added to README with  a2020c0ba001c7d40fbacf568e26f552c760e12c


Setting session name through env variable LANGCHAIN_SESSION

System Info
Setting LANGCHAIN_SESSION through env variable gives the following error:
WARNING:root:Failed to load dev session, using empty session: list index out of range
Who can help?
@agola11
Information

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

Related Components

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

Reproduction
Just setting os.environ["LANGCHAIN_SESSION"] = "dev" And when running LLMChain in langchain module throws the error
Expected behavior
It should log traces in the assign session_name

We need to create a session_name first to send data to otherwise it will go to default one


When move back not selected node then node becomes selected.

Probably it is not an issue, please consider.
When we move some not selected node to some NEW position then node stays NOT selected.
BUT when we start (start event is fired) to move some not selected node and back it to the SAME position then it becomes SELECTED and Selected even is fired.

State is cleared when a node is moved. If returned to the same position there is no actual move. This is the expected behavior.
Thank you for asking,
Ivan

When we try move node we don't want to click on it.

Oh, sorry - I misunderstood. As far as I understand - a click is triggered. I will see what I can do.

right, click is triggered and as a resut Selected triggered also. Thank you Ivan.


Issue646: Added gh-pages support

Second try. Let's see if my previous, polluted fork was the reason for failing tests.

Codecov Report

Merging #657 into master will decrease coverage by 0.05%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #657      +/-   ##
==========================================
- Coverage   89.04%   88.98%   -0.06%
==========================================
  Files          47       47
  Lines        3387     3387
==========================================
- Hits         3016     3014       -2
- Misses        371      373       +2

Impacted Files
Coverage Δ

vent/helpers/meta.py
77.9% <0%> (-1.17%)
:arrow_down:

Continue to review full report at Codecov.

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

Will figure out why test is failing later


2.2.0 has breaking changes

The 2.2.0 version includes breaking changes compared to 2.1.0 which is unexpected if it's supposed to adhere to semantic versioning.
As an example, look at the normalise function. In 2.1.0 it returns an empty string if passed invalid input. In 2.2.0 it returns undefined. This means that consuming code that assumes the returned value will always be a string will now suddenly break if the input has not been validated before calling the function.
The changelog does not mention this change at all. It does mention other changes that sound breaking, like changing default options.
When a library does not follow semantic versioning it complicates things for consumers who want to keep their dependencies up to date. It is much easier if library authors try to be strict about breaking changes - then non-major version bumps can mostly be merged right away.

Yes, you are entirely correct. This is completely my fault and I apologise, I did not really think the update would cause breaking changes, i.e. only prompting a minor version bump, but re-reviewing it is now evident.
I am a little uncertain how to fix this though, in theory I could unpublish the 2.2.0 version an republish as 3.0.0. However, I am uncertain about the effects of this. Any thoughts?

No worries, an easy mistake to do. 🙂
Hm, good question. I think you could consider deprecating 2.2.0, and
republish it as 3.0.0 as you say.
https://docs.npmjs.com/deprecating-and-undeprecating-packages-or-package-versions
Probably best to avoid unpublishing if possible.
ons 14 sep. 2022 kl. 19:47 skrev Kelvin Szolnoky @.***>:

Yes, you are entirely correct. This is completely my fault and I
apologise, I did not really think the update would cause breaking changes,
i.e. only prompting a minor version bump, but re-reviewing it is now
evident.
I am a little uncertain how to fix this though, in theory I could
unpublish the 2.2.0 version an republish as 3.0.0. However, I am uncertain
about the effects of this. Any thoughts?
—
Reply to this email directly, view it on GitHub
https://github.com/kelszo/personnummer.js/issues/15#issuecomment-1247106556,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG5EAY253EBGS3HDA2Q3PTV6IFUHANCNFSM6AAAAAAQGO24MU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Good solution! I have now published 3.0.0 and deprecated 2.2.0.
Tack!


Update README

Styling changes. Updated the headers and sub-headers to render correctly in GitHub.

thanks!


Dark fiber?

[Enter feedback here]
Your document mentions "traffic is then routed internally to data and service endpoints over Microsoft's ultra-low latency high availability dark fiber." Dark fiber typically references fiber optic cable that has been laid but is not yet active. The wording of this sentence infers that customer traffic is going to be routed over a network that is not yet active. It should say, "high availability fiber."
Cheers!

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

ID: d9ebe7df-558d-69ab-f809-cb58fa50f9af
Version Independent ID: a934d2cb-cb52-95a4-9d40-bdb796239b93
Content: Microsoft 365 Network Connectivity Overview
Content Source: Enterprise/office-365-networking-overview.md
Service: o365-administration
GitHub Login: @kelleyvice-msft
Microsoft Alias: kvice

@mattchiodi The article has been corrected and published. Thanks so much for letting us know.


Remove expired collaborator from Terraform file/s for seanvalmonte

Hi there
This is the GitHub-Collaborator repository bot.
The collaborator seanvalmonte review date has expired for the file/s contained in this pull request.
Either approve this pull request, modify it or delete it if it is no longer necessary.

Hi @Nic-Hodg this collaborator review date has expired. Shall the user be removed or extended?

@NickWalt01 please extend this user

Thank you will do for all three users


[install] Pin torchaudio to 0.6.0 (#289)

Add limitation on torchaudio.

Thanks !
Two things:

It seems there is a similar problem with torch1.7.0 and audio 0.6.0, can you have a look?
Can you sign your commits please?

close because my poor git skill.. I raise a new pr for #289


Wrong keyboard layout in remote app mode

Describe the bug
When connecting to Windows 11 Pro "full session" with command line xfreerdp3 /v:host the keyboard layout is correctly obeyed and translated by xfreerdp (the windows is setup to use French AZERTY and the linux client also uses French AZERTY).
But when connecting to a single application as in xfreerdp3 /v:host /app:program:explorer.exe then the keyboard layout becomes QWERTY, ignoring both the local (client) keyboard layout but also the default layout set on the Windows machine.
Options like /kbd:layout:<id> do not fix the problem. /kbd:unicode fixes the letters but CTRL+<key> combos are no longer detected. (while reading bug reports I thought that using /kbd:unicode in desktop/session mode would also break CTRL+<key> combos but in my tests it did not)
To Reproduce

Run podman run -it -p 3389:3389/tcp -p 3389:3389/udp -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 --env VERSION=win11 --env LANGUAGE=French -v ./toto:/toto docker.io/dockurr/windows to get a French-configured windows
While waiting for it to be up and running, add and select the French default keyboard in your desktop environment  of choice. [EDIT: Not needed, on a machine that is not in AZERTY I get the same inconsistency]
Run xfreerdp /v:localhost /u:Docker /p: and notice that the server keyboard layout is correctly used
Run xfreerdp /v:localhost /u:Docker /p: /app:program:explorer.exe and notice the keyboard is now QWERTY [EDIT: which is neither the client layout nor the server layout]

Expected behavior
The keyboard behaviour should be the same in step 4 and 5.
Application details

FreeRDP version This is FreeRDP version 3.5.1 (n/a) (also present in 3.6.3 from Debian Testing)
Command line used (see above)
Output of `xfreerdp /buildconfig

Build configuration: BUILD_TESTING=OFF WINPR_HAVE_AIO_H=1 WINPR_HAVE_EXECINFO_BACKTRACE=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS=1 WINPR_HAVE_EXECINFO_BACKTRACE_SYMBOLS_FD=1 WINPR_HAVE_EXECINFO_HEADER=1 WINPR_HAVE_FCNTL_H=1 WINPR_HAVE_GETLOGIN_R=1 WINPR_HAVE_GETPWUID_R=1 WINPR_HAVE_INTTYPES_H=1 WINPR_HAVE_POLL_H=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS= WINPR_HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL=1 WINPR_HAVE_STDBOOL_H=1 WINPR_HAVE_STDINT_H=1 WINPR_HAVE_STRNDUP=1 WINPR_HAVE_SYSLOG_H=1 WINPR_HAVE_SYS_EVENTFD_H=1 WINPR_HAVE_SYS_FILIO_H= WINPR_HAVE_SYS_SELECT_H=1 WINPR_HAVE_SYS_SOCKIO_H= WINPR_HAVE_SYS_TIMERFD_H=1 WINPR_HAVE_TM_GMTOFF=1 WINPR_HAVE_UNISTD_H=1 WINPR_HAVE_UNWIND_H=1 WITH_AAD=ON WITH_ABSOLUTE_PLUGIN_LOAD_PATHS=ON WITH_ADD_PLUGIN_TO_RPATH=OFF WITH_ALSA=ON WITH_BINARY_VERSIONING=ON WITH_CAIRO=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=OFF WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CLIENT_SDL=ON WITH_CLIENT_SDL_AVAILABLE=1 WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_CODECS=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_EVENTS=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SCHANNEL=OFF WITH_DEBUG_SDL_EVENTS=OFF WITH_DEBUG_SDL_KBD_EVENTS=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_URBDRC=OFF WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=ON WITH_DSP_FFMPEG_AVAILABLE=1 WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=ON WITH_FREERDP_DEPRECATED=OFF WITH_FREERDP_DEPRECATED_COMMANDLINE=OFF WITH_FUSE=ON WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=ON WITH_ICU=ON WITH_INTERNAL_MD4=OFF WITH_INTERNAL_MD5=OFF WITH_INTERNAL_RC4=OFF WITH_JPEG=ON WITH_KERBEROS=ON WITH_KRB5=ON WITH_KRB5_NO_NTLM_FALLBACK=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBRESSL=OFF WITH_LODEPNG=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_NATIVE_SSPI=OFF WITH_NEON=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSC_PKCS11_LINKED=OFF WITH_OPENSSL=ON WITH_OPUS=ON WITH_OSS=ON WITH_PCSC=ON WITH_PKCS11=ON WITH_PLATFORM_SERVER=ON WITH_POLL=ON WITH_PROFILER=OFF WITH_PROXY=ON WITH_PROXY_APP=ON WITH_PROXY_EMULATE_SMARTCARD=OFF WITH_PROXY_MODULES=ON WITH_PULSE=ON WITH_RDTK=ON WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SDL_IMAGE_DIALOGS=ON WITH_SDL_LINK_SHARED=ON WITH_SERVER=ON WITH_SERVER_CHANNELS=ON WITH_SERVER_INTERFACE=ON WITH_SHADOW=ON WITH_SMARTCARD_EMULATE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SMARTCARD_PCSC=ON WITH_SOXR=OFF WITH_SSE2=OFF WITH_SWSCALE=ON WITH_SYSTEMD=ON WITH_THIRD_PARTY=OFF WITH_UNICODE_BUILTIN=OFF WITH_URIPARSER=ON WITH_VAAPI=OFF WITH_VAAPI_AVAILABLE=1 WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_VERBOSE_WINPR_ASSERT=OFF WITH_VIDEO_FFMPEG=ON WITH_VIDEO_FFMPEG_AVAILABLE=1 WITH_WAYLAND=ON WITH_WEBVIEW=OFF WITH_WINPR_DEPRECATED=OFF WITH_WINPR_TOOLS=ON WITH_WINPR_UTILS_IMAGE_JPEG=ON WITH_WINPR_UTILS_IMAGE_PNG=ON WITH_WINPR_UTILS_IMAGE_WEBP=ON WITH_WIN_CONSOLE=ON WITH_X11=ON WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XV=ON
Build type:          RelWithDebInfo
CFLAGS:              -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wpedantic -Wno-padded -Wno-cast-align -Wno-declaration-after-statement -fPIC -Wall -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g -fno-omit-frame-pointer
Compiler:            GNU, 12.2.0
Target architecture: x64

OS: Linux
Version/Distribution: Debian 12
Architecture: amd64:

are you sure the keyboard layout is set to french in that case server side?
The local layout is ignored (we extract the scancodes from the keys pressed with some magic), only the server side layout is relevant.
in both cases the same layout id is sent to the server, but with remote-app there is usually a small window where you can set the current active keyboard layout should you have multiple installed

I am totally certain that the keyboard is set to french server side, and without remote-app I get french layout (even if my keyboard is not in french AZERTY client-side). To sum up:

The keyboard uses the french AZERTY layout without remote-app, regardless of which layout is active client-side (this is normal AFAIU)
The keyboard uses some QWERTY layout (seems en-US to me) within remote-app, regardless of which layout is active client-side
/kbd options to change advertised layout seem to do nothing for the remote-app case which stays in QWERTY, except
/kbd:unicode which is taken into account but has the known caveats

@FrnchFrgg I´ve just tested this.
It is working if you start a new session on the server.
If you reconnect to an existing session the last set value is used and the layout you send is ignored.
Try to log out all your server side sessions and connect again.
closing as resolved, ping me if it still does not work.

I'll try soon. Two questions that may hint at a but nevertheless:

Do I need to explicitly send a French layout with /kbd or not ? Why, if the default should be French ? I never sent any layout setting until I noticed a problem (and at the time both client and server used AZERTY).
Why is the behavior different between the remote-app and the desktop case ?

@FrnchFrgg

you need to send something, there is no way to send nothing.
it is up to the server to do something with this, so ask microsoft ;)

there is no way to send nothing.

What I meant is « why do I need to use the /kbd:layout:0x000040C option if this is the server default layout ? ». Maybe xfreerdp3 is sending something anyway if I do not use that option.
I just tested and if I always connect using the above option then indeed the layout is correct in both desktop and remote-app modes, but that was using a windows 10 image (same docker, but with win10 setting). I'll have access to a windows 11 later.

there is no way to send nothing.

What I meant is « why do I need to use the /kbd:layout:0x000040C option if this is the server default layout ? ». Maybe xfreerdp3 is sending something anyway if I do not use that option.

it always sends the detected keyboard layout.
if that is different from what you expect (or want a different layout remotely) you need to add /kbd option


1 while chomp; generates incorrect code

1 while chomp; generates incorrect code

Fixed in v1.013


goseg: If I lose internet access my pier didnt reconnect to startram

502 error?

closing due to inactivity


Add cert-manager

Essential for TLS certificates on k3s.
Signed-off-by: Alex Ellis (OpenFaaS Ltd<EMAIL_ADDRESS>

Fails on image size, can you make sure it's less than 20KB (resize smaller if needed, I use 256x256 normally). Other than that, happy to merge.

Not sure we want to resize any smaller than that. PNG can't be compressed AFAIK.
What would you suggest?

I'll merge this and fix it.

https://pngcrush.com got it down to 16KB and I then just added a bit of internal spacing and made it square.


can the following bulbs be added?

signify
LWA003, aka<PHONE_NUMBER> - seems to be us version of LWA001
LWV002, aka<PHONE_NUMBER>80 - seems to be us version of LWV001
LWO002, aka<PHONE_NUMBER> -  seems to be us version of LWO001
LWA008, aka<PHONE_NUMBER> - seems to be us version of LWA009
LCA007, aka [9290024687]https://www.zigbee2mqtt.io/devices/9290024687.html - seems to be us version of LCA006
LCA005, aka<PHONE_NUMBER>A - seems to be us version of LCA001

@ecto1a2003 I think you are right about those being the same light but just with another fitting. The power consumption would probably be exactly the same.
That would mean we can add these models as aliases. I will make a commit for that.

Has been added in v0.20.3


Component unit tests

At the moment, we're having no component tests and that makes it difficult to make the coverage diff/patch of codecov pass.
We're having pretty good coverage at reducers & sagas but not at the components. That's why the overall coverage is just around 20%. See codecov for the current coverage.
So some things to discuss before this can be started:

Which testing utility should we use? Enzyme or React-testing-library? Are there any other utilities we could consider?
What are the most important components to test? I'll pick some below ordered by importance (probably not complete):

[ ] CreateNewProjectWizard (pretty complex component as there are many parts involved - so no easy test to start with)
[ ] ProjectPage
[ ] DependencyManagementPane
[ ] DevelopmentServerPane
[ ] TaskRunnerPane
[ ] Sidebar
[ ] ProjectConfigurationModal
[ ] Initialization
[ ] ApplicationMenu
[ ] Modal
[ ] Button
[ ] ProgressBar (will be used in LoadingScreen)

We don't need to test every component e.g. the WhimsicalInstaller needs no component tests as it's something that could be easily replaced or disabled with-out affecting the work of the user.
List of components that I think are less important to be tested:

WhimsicalInstaller (animation that's display during project building at final step of CreateNewProjectWizard)
Spinner
PixelShifter (just used for styling the UI)
Planet (used by WhimsicalInstaller)
Module (check usage)
MountAfter
NodeProvider (check usage)
OnlyOn (check usage)
Paragraph (check usage)
ScrollDisabler (check usage)

Where I wrote check usage above it would be good to check where and if they're used. I haven't seen them in use but maybe I've missed them.
Describe the solution you'd like
After picking the testing utility we can start to work on this.

Add a snapshot test for rendering
Add tests for business logic of the component - basically have a look at each instance method & add a test.

I'm working on this.
I've picked the ProgressBar component as it's small and is easy to test.
I'll create two branches one with Enzyme and one with react-testing-library. I'll call them component-unit-tests-enzyme and component-unit-tests-testing-lib.
I've started with Enzyme (nothing pushed yet).
I have some questions to my setup:

I added a ignore to the coverage report to ignore all files with *.stories.js as we don't need to write test for stories, right? How are the docz files called later?
We're having an index.js file inside of every component? Should we test it or is it OK to add it to the coverage ignore list? I think it's OK to ignore as we're following the style with the export default.

@AWolf81 are there any decisions regarding the testing library?

@AWolf81, I knew enzyme from before and only heard about react-testing-library remotely. However, I also find their philosophy interesting and it does seem to be widely used (364K downloads a month, not near as much as enzyme, but substantial).
I will give it a try in the component-unit-tests-testing-lib branch and I'll let you know.


Add persistent substring-based URL filters via cookie.

Please note that this builds on #30; please follow this link to see a direct comparison of that branch with this one. These proposed changes seek to provide a initial approach to issue 28.

Proposing to close this P.R. and its predecessors in light of the updated approach to handling filters. Do you think so also?

I imagine you can go ahead and close these unused PRs? @rcalfredson


Remove usage of discord-webhooks in DiscordNotifier to reduce application size.

https://discord.com/developers/docs/resources/webhook


Exception when running sync in koel 2.2.1

Hi, I'm having some trouble running the sync command, it was working fine until I put more music in the folder and tried to run as stated in the upgrade guide:
php artisan koel:sync --tags=track --force

It gives me this error:
  [ErrorException]
  Trying to get property of non-object

And if I run without the --tags=track it gives me the following error:
  [Illuminate\Database\QueryException]
  SQLSTATE[23502]: Not null violation: 7 ERROR:  null value in column "path" violates not-null constraint
  DETAIL:  Failing row contains (455f2dec6e60a665ea499d13d7acdabc, 51, The Black And White,<PHONE_NUMBER>, , null,<PHONE_NUMBER>, 2016-06-26 14:03:54, 2
  016-06-26 14:03:54, 10). (SQL: insert into "songs" ("id", "title", "length", "track", "lyrics", "mtime", "album_id", "updated_at", "created_at")
  values (455f2dec6e60a665ea499d13d7acdabc, The Black And White,<PHONE_NUMBER>, 10, ,<PHONE_NUMBER>, 51, 2016-06-26 14:03:54, 2016-06-26 14:03:54))

  [PDOException]
  SQLSTATE[23502]: Not null violation: 7 ERROR:  null value in column "path" violates not-null constraint
  DETAIL:  Failing row contains (455f2dec6e60a665ea499d13d7acdabc, 51, The Black And White,<PHONE_NUMBER>, , null,<PHONE_NUMBER>, 2016-06-26 14:03:54, 2
  016-06-26 14:03:54, 10).

I couldn't figure out why the path is being set as null.

What happens if you remove the new media files and re-run sync?

If I remove the new media it works. I noticed that some of the new media directories have ' and & on its names. Could this be the source of the problem?

I have managed to track down what line of code is causing the problem:
File: koel-2.2.1/app/Models/File.php
        if ($this->isChanged() || $force) {
            // This is a changed file, or the user is forcing updates.
            // We cater for the tags by removing those not specified.
            $info = array_intersect_key($info, array_flip($tags));

If I comment this array_intersect_key line the sync works, but I don't know if it has a side-effect.

Can you help var_dump() both $info and $tags before that line?

$info
array(9) {
  ["artist"]=>
  string(4) "NOFX"
  ["album"]=>
  string(32) "White Trash Two Heebs And A Bean"
  ["title"]=>
  string(16) "Johnny Appleseed"
  ["length"]=>
  float(157.9363125)
  ["track"]=>
  int(11)
  ["lyrics"]=>
  string(0) ""
  ["cover"]=>
  NULL
  ["path"]=>
  string(92) "/mnt/Music/NOFX Discography/NOFX - White Thash Two Heebs And A Bean/11. Johnny Appleseed.mp3"
  ["mtime"]=>
  int(1466184294)
}

$tags
array(2) {
  [0]=>
  string(5) "track"
  [1]=>
  string(5) "mtime"
}

Funny thing is that now it works, but the media is already in the database, so instead of insert is an update being made.

I do think the problem here is the if ($this->isChanged() || $force), because if it's a new file being created, using array_intersect_key you're losing a lot of required information. Probably if I run without --force it will work. I'm gonna try to have a more reproducible environment at home, and also give a shot using the master version.

Hmm… I got what you mean. So this seems to be the case:

New files are put into the directory
php artisan koel:sync --tags=track --force is run
Because you specify --tags as track, only track and mtime (required) are catered. This causes the problem with the files in step 1, as they are new.

I'll work on a fix. Meanwhile, I think it makes more sense if you don't force to sync only several tags if there are new files.


Allow unlipped cee and zed steel_sections

This PR recreates #285 , but is based upon the hypermodern branch from the outset instead!
--- Original description below ---
Unlipped Cee sections are very common. For example, all track ("T") sections in the Steel Framing Industry Association standard sections, as defined here, are unlipped Cee sections. However, section-properties currently explicitly throws an error if lip length l is set to anything less than r_out (the outer radius).
This pull request adds the ability to set l to zero - or anything less than r_out.
Note that I did have a question as to what to do for 0 < l < r_out. One option would be to throw an error in this case, but I opted instead for decreasing the outer radius commensurately, on the philosophy that fewer error conditions is probably better, but am happy to change this as well.
While unlipped Zed sections are less common than unlipped Cees, they do exist - and a nearly-identical update could be applied to zed_section() to allow unlipped zeds as well here.

@robbievanleeuwen
Blackify

Sorry about that! I missed that my black extension didn't format on save here.

All good @smith120bh, contributor guide is pretty vague at the moment - once i get this big PR merged using poetry and pre-commit will make contributing much easier and standardised.
I've also just removed the ValueError thrown if l < r_out which I assume is no longer relevant?
I've had a play around with a number of edge cases and it seems to work well, thanks!


enable parsing of "## External properties restrictions"

The spec-parser pipeline currently fails because the new heading "## External properties restrictions" is not recognized. This PR fixes that.
I only implemented this as far as the constructor of SpecClass, from where this can be taken further when the property is actually needed.

I was waiting for your comments/ reviews in #39 ,,,

Wow, I'm sorry, I missed that one. Please ping me next time you are waiting on me :)


Allowing listing rule violations and issues in PDF reports

This solves #4290

@edulix  Can you squash this PR into a single commit and sign each (see our CONTRIBUTING.md)?
I propose to make the single commit something like the below:
FreemarkerTemplateProcessor: Support listing rule violations and scan issues

Add a method to generate a table for rule violations and scan issues
in template files.

Resolves #4290

Signed-off-by: Eduardo Robles<EMAIL_ADDRESS>

Test should be added to this PR  for this new functionality @oheger-bosch could you help out here?
Not familiar with this code but believe it should be in https://github.com/oss-review-toolkit/ort/blob/master/reporter/src/test/kotlin/utils/FreeMarkerTemplateProcessorTest.kt.

@edulix you still not to signoff (not cryptographically sign) your commit to make the DCO check pass, see the details link. Also detekt static code analysis fails. You can check locally via ./gradlew detekt.


rearranged the announcements in readme

Since the tutorials were new in 1.6.1, we'll keep that version in the announcement. Thanks.


[BUG] ollama官方文档进行的编译部署，无法与模型对话

是否已有关于该错误的issue或讨论？ | Is there an existing issue / discussion for this?

[X] 我已经搜索过已有的issues和讨论 | I have searched the existing issues / discussions

该问题是否在FAQ中有解答？ | Is there an existing answer for this in FAQ?

[X] 我已经搜索过FAQ | I have searched FAQ

当前行为 | Current Behavior
当我进行对话的时候会出现Error: an unknown error was encountered while running the model
(torch) orangepi@orangepi5b:~/project/ollama$ ./ollama run minicpm2.6

你好
Error: an unknown error was encountered while running the model
(torch) orangepi@orangepi5b:~/project/ollama$

期望行为 | Expected Behavior
应该有正常的对话
复现方法 | Steps To Reproduce
No response
运行环境 | Environment
- OS:Ubuntu22.04
- Python:3.11
- Transformers:4.44.0
- PyTorch:2.4.0
- CUDA (`python -c 'import torch; print(torch.version.cuda)'`):No

备注 | Anything else?
No response

Sorry, you may need to compile the code from our fork and enable the ollama service in the next few weeks to use it normally. We will submit a PR to ollama as soon as possible, but before that, you can use this readme for trial use.
https://github.com/OpenBMB/ollama/blob/minicpm-v2.6/examples/minicpm-v2.6/README.md

就是根据那个飞书上的步骤，用的v2.6的fork编译的，但是运行不了

same question

同样有这个问题，按照教程一路走下来的。

官方已提供 https://ollama.com/library/minicpm-v:latest


[v10] Issues with the Stylesheet's "hidden" and Tailwind

Hey there!
Thank you for maintaining this package!
With the recent update, the stylesheet includes a global hidden class, which breaks frameworks like TailwindCSS that defines its own hidden and relies on its internal order where the class is defined for overwrites etc.
It would be awesome if we could find a solution, so that the component does not expose any global css classes.
Thank you!

@saibotk I've just pushed version 10.0.1 with a fix, please check if it works for you.

Thanks it works now, just tested it.
That was fast, thank you very very much! :rocket:


soln_to_timescape issue

Not sure if this is an issue with my data or the script but with two different data sets now I keep getting errors with the soln_to_timescape script.
I keep getting the following error:
Error converting file to Timescape format.
string index out of range
Would appreciate any insights.
Thanks,
Michael

Sorry for the delay in getting to this. It was an issue with the cluster/column name abbreviations I was using (not handling the case with >26 columns), which I just fixed.


Failed to resolve: com.github.joshjdevl.libsodiumjni:libsodium-jni-aar:2.0.2-SNAPSHOT

I get this issue.
pubspec.yaml
flutter_sodium: any
This is what I get when I open the android project and try to sync, the Same issue with fluter run.
ERROR: Failed to resolve: com.github.joshjdevl.libsodiumjni:libsodium-jni-aar:2.0.2-SNAPSHOT
Show in Project Structure dialog
Affected Modules: flutter_sodium

Resolved the issue by addressing all issues listed by  flutter doctor


Promote from BLAIS5-4499 to main

Auto generated by concourse:
Promote from BLAIS5-4499 to main

These changes were made to investigate UAT defects raised from FRS E2E testing per BLAIS5-4499.
The Jira reference has now been updated to BLAIS5-4505 to track this particular issue of cases not sending, and the Description field not updating.


[Q] Writing large datasets - performance improvements possible?

💬 Questions and Help
I'm writing a matrix of 500k rows multiplied by 6 columns to a workbook with excel.js on an embedded device (sensor data). This export takes more than two minutes.
For simulating the situation, see this mwe:
const { performance } = require('perf_hooks');
var t0 = performance.now();

const Excel = require('exceljs');

// Generate fake data
var csv_data = [];
for (var i = 0; i < 500000; i++) {
    csv_data.push([i+1, i+2, i+3, i+4, i+5, i+6, i+7]);
}
console.log('Data generated: ' + (performance.now() - t0) + ' milliseconds.');

// Create XLSX
var workbook_write_stream = new Excel.stream.xlsx.WorkbookWriter({
    filename: './Test.xlsx',
    useStyles: true
});

var sheet = workbook_write_stream.addWorksheet('Data');
csv_data.forEach(function(line) {
    sheet.addRow(line).commit();
});

sheet.commit();

workbook_write_stream.commit()
    .then(function () {
        console.log('XLSX generated: ' + (performance.now() - t0) + ' milliseconds.');
    });

The output on my dev machine is
Data generated:<PHONE_NUMBER>9969125 milliseconds.
XLSX generated: 17190.792275000364 milliseconds.

So this takes more than 17 seconds. Setting useStyles to false leads to these results:
Data generated:<PHONE_NUMBER>9935627 milliseconds.
XLSX generated: 6420.7135119996965 milliseconds.

This is a huge improvement but unfortunately "no styling" does not meet the requirements of the management ;-)
I need to stream and to commit because the RAM is limited on the embedded device. Are there any options/algorithm optimizations I could consider for further improving the performance?

With such high requirements I guess you need to look at fastest languages, writing the report in C++/Rust/Golang would be much more efficient, both in memory terms and performance


More aggressive  auto-added SCM provider removal

re #34963

have workspace with SCM
open a file from another SCM managed folder/workspace
you see another provider being added to the SCM viewlet which is good
now close the file from step 2
🐛 the SCM provider is still there, enough I didn't make a change, the repo isn't dirty, the file is gone... I think in such cases (last files of a foreign repo disappears) we should also remove the provider again. Today it makes the "reading a file"-workflow more heavy weight

Instead, I have added a context menu action to close a repository:

Verified the current solution, but I also think removing SCM provider that doesn't have any associated open workspace / file would make more sense.


HashRoute Support Request

Is your feature request related to a problem? Please describe.
This is case for Blazor Web Assembly App
I want to use HashRouter instead of Router, in App.razor
<HashRouter AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
    </Found>
    <NotFound>
        <LayoutView Layout="@typeof(MainLayout)">

Sorry, there's nothing at this address.

        </LayoutView>
    </NotFound>
</HashRouter>

Describe the solution you'd like
Now,
I want to open #/about for About.razor it should work fine in case of @page "/about"
Additional context
It helps in working with old browsers and other route handling schemes for specific URL context.

We've moved this issue to the Backlog milestone. This means that it is not going to happen for the coming release. We will reassess the backlog following the current release and consider this item at that time. However, keep in mind that there are many other high priority features with which it will be competing for resources.


Flip zoom renderer to left of image

Sorry, wrong repo — should be merged to my fork, not your repo :)


License file is missing

Sorry about the problems here. We're mainly using the client internally and as such didn't think about adding a license. We've just added the Apache 2.0 license to the repo which is available in v1.5.1 of the gqlclient.


Extract Nav component that has a mobile view

Before I go any further, I'd like to know that this is the type of thing you are looking for.
The Sidebar moves to the top at a breakpoint of 600px.
I'll await your feedback before going any futher.
I have some tidying up and styling of the nav in mobile view but lets see if this is what you want first.

@bvaughn removed font-awesome and used hamburger.  Will have another play tonight

Sounds great. No hurry.

@bvaughn I would normally use sass so I can be consistent about media queries and use vars for breakpoints, e.g.
@mixin mq-xs {
  @include mq($from: gel-bp-xs) {
    @content;
  }
}

But sass might be off putting for some people.  I've used styled components but I am not a fan of css-in-js.
Plain css feels weird but maybe for now it is fine.

Not a fan of using SASS or LESS.
I think at this point, I'm not ready to commit to ejecting from create-react-app so CSS modules is probably the best available option. I might look into trying CSS blocks or just using Glamor again if I decided to eject for other reasons.
I'd say let's not worry about this for now. 😄

@bvaughn how about that for a first move to a more responsive layout.  I've got a pure css hamburger menu now on the left and I've grabbed the available width for the body below the menu in mobile view.
Is there anything else you thing is needed?

Another idea is to have an overlay rather than a drawer that slides out from the side (which I hate) or my implementation of the top sliding down is to have an overlay menu like this
There is no reason why the sidebar menu should not take over the whole screen in mobile view.

Hi @bvaughn, any feedback?

Sorry, @dagda1. This is a side project effort for me. My feedback will be a little slow.
I like the new hamburg icon style better. 😄
There are some changes to yarn.lock and package-lock.json files in this PR now that I would not expect. Maybe revert them?

Another idea is to have an overlay rather than a drawer that slides out from the side (which I hate) or my implementation of the top sliding down is to have an overlay menu like this

I think the behavior you linked too looks reasonable. It's similar to how the reactjs.org mobile nav works!

@bvaughn I was not trying to hurry you up :).  I do like that menu.  I'll try that and see what it looks like.

Thanks again for this PR 😄 I'm going to merge it and play around with it some.

👍

Pushed to react-virtualized-v10.now.sh after iterating a bit! Thanks again!

@bvaughn looks good.  I think the lesson learned for me is that a sidebar like this in mobile view should just take up the whole screen.  Absolutely no reason not.

Agreed! Especially as I add more links in the future, I think this will
scale better.
On May 12, 2018 11:38 AM, "Paul"<EMAIL_ADDRESS>wrote:
@bvaughn https://github.com/bvaughn looks good. I think the lesson
learned for me is that a sidebar like this in mobile view should just take
up the whole screen. Absolutely no reason not.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bvaughn/react-virtualized-v10/pull/1#issuecomment-388574566,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABznVbMbMZg9SD8wZDFuOQ3CeC0qMEvks5txyw-gaJpZM4T1q3q
.


Provide FactoryContext to createRouteSpecificFilterConfig

Currently in Envoy, there are 1) FactoryContext and 2) ServerFactoryContext. They both inherit from same base class and have their own methods. These seems can be simplified. But I am more interested in the specific case below regarding routeSpecificConfig:
For createRouteSpecificFilterConfig, it seems ok to just take in FactoryContext rather than ServerContext based on my code walk, because:

We can get serverFactoryContext from FactoryContext via getServerFactoryContext
For routeSpecificConfig, all the way up, the ServerContext is actually provided by context_.getServerFactoryContext() and here

IIUC,  TODO from @mattklein123 here seems indicate that FactoryContext is preferred approach

Thus, my questions are:

why it is using ServerContext for   createRouteSpecificFilterConfig.

can createRouteSpecificFilterConfig take in FactoryContext rather than ServerContext? Anything like lifetime issue prevent from using FactoryContext here?

Thanks in advance!

Answer to question one: FactoryContext has listener level lifetime and is listener dependent. And in the current impl, the route configuration from rds may be shared by multiple different listeners. So it couldn't be listener dependent and only server factory context could be used.

Answer to question two: it's possible. But we need evaluate the overhead and the gain first. (Additional memory overhead, additional computation, additional config validation)

@wbpcode  Thank you very much for reply and answers! I also have done some research these days. I think changing createRouteSpecificFilterConfig  to take in FactoryContext is not what I want to do here.

FactoryContext has listener level lifetime and is listener dependent. And in the current impl, the route configuration from rds may be shared by multiple different listeners. So it couldn't be listener dependent and only server factory context could be used.

Yes, you are right. So, FactoryContext is listener-dependent while ServerFactoryContext/route is listener-independent that is shared by multiple listeners.
My question is :
In createRouteSpecificFilterConfig which has ServerFactoryContext, Can I store the reference to FactoryContext and use this ref later?  There are two potential ways of getting FactoryContext. Let's assume I reinterpret_cast from ServerFactoryContext to FactoryContext in createRouteSpecificFilterConfig and discuss if it is safe to use this reference to FactoryContext later first:
I am thinking as long as I use that reference for listener-independent stuff , it should be safe because those  listener-independent stuff should be same  between ServerFactoryContext and FactoryContext.  I am wondering if my understanding here is correct?
For example:

ClusterManager. This is entire server level data. So FactoryContext is  listener-dependent, it should be pointing to the same data as other FactoryContext and ServerFactoryContext

Let's assume I reinterpret_cast from ServerFactoryContext to FactoryContext

I think you cann't do this because these is no inherit relationship between server factory context and factory context. And they are complete different two objects. The server factory context is a global singleton in the runtime.

I am thinking as long as I use that reference for listener-independent stuff

Then why cann't you use the server factory context directly?

So, take a step back, if your goal is to simplify the API and use FactoryContxt in the createRouteSpecificFilterConfig, than refactor the rds and make the route config provider listener dependent is the only rationaly way, i think. 🤔

@wbpcode regarding reinterpret_cast, yea it is a hack for prototyping. The example below kinds explain why it is working in my integration test.   ClusterManager is like x that is available in their common base and alive(server level thing). But yes, I am thinking about the proper solution :)
class Base {
public:
    int x;
    Base() : x(100) {}
};

class Child1 : public Base {
public:
    int y;
    Child1() : y(1) {}
};

class Child2 : public Base {
public:
    int z;
    Child2() : z(2) {}
};

int main() {
    Child1 c1;
    std::cout << c1.x << std::endl;
    Child2* c2 = reinterpret_cast<Child2*>(&c1);
    std::cout << (*c2).x << std::endl;
    return 0;
}

serverFactoryContext and factoryContext inherit from common base. I think it should not be UB as long as you access to the method in common base. Ultimately , it is just two pointers pointing to same underlying memory. I have a integration test proved that reinterpret_cast between serverFactoryContext and factoryContext works when I accesses the clusterManager
But again,  reinterpret_cast is an experiment and will not be the solution that i proceed with. Thank you for inputs/insights on RDS! I don't think I will refactor RDS stuff(at least not for now). But I do feel there are too many contexts now in Envoy that potentially can be cleaned up. I can give it a try when I have some free cycles.


Ran teeproxy in front of varnish etc.

I ran teeproxy in front of varnish etc. but I can't seem to get the actual IP or the x-forwarded-for IPs.
can you please guide me on how I can forward the actual IPs to varnish / haproxy / nginx? I'm forwarding the request but the IP will show it comes from the server instead of from the client.

Teeproxy, in its current implementation, appends it's production backend's IP neither to the  "X-Forwarded-For" nor to the "Forwarded" header. You need to do this manually. I have a working implementation at hand, but it is not in shape to be released. Maybe I can do this in the next days. If you need it faster, PM me.

i have no idea what you mean by doing it manually. but i do need it as soon as possible. it's a great little thing. I really hope that maybe it can do more than just 1 shadow traffic duplication. e.g. 1 to 3 clone. but it's still nice as long as the source ip is able to be viewed by varnish / haproxy / nginx through XFF or proxy protocol. please help. thanks.

In order to reveal the IP of it's backend (what you pass to teeproxy as -a), the proxy needs to add this IP to the XFF header or the new standardized Forwarded header. The current version of teeproxy does not do this.
I am in the process of preparing my changes for a pull request, you might get them this afternoon (or whatever time it is at you place).

Try this feature branch: https://github.com/ADITION/teeproxy/tree/feature/XFF-header
Start teeproxy as usual and then try the new command line flag -forward-client-ip. Does this what you were missing?

i tried git clone https://github.com/ADITION/teeproxy.git
but
./teeproxy -l :8888 -a localhost:9000 -b localhost:9001 -forward-client-ip
gets
flag provided but not defined: -forward-client-ip
can u check?

The new feature is not yet merged into the master branch. You need to git checkout feature/XFF and go build .
Then the option should be available.
Best regards,
Jonas
2017-10-11 16:19 GMT+02:00 unisqu<EMAIL_ADDRESS>
i tried git clone https://github.com/ADITION/teeproxy.git
but
./teeproxy -l :8888 -a localhost:9000 -b localhost:9001 -forward-client-ip
gets
flag provided but not defined: -forward-client-ip
can u check?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/chrislusf/teeproxy/issues/26#issuecomment-335826278,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEIXzsMKXcZoD1doLWoYLJVzB4yuNf2xks5srM6DgaJpZM4PxkeI
.

works perfectly. very well done.
can it do shadow traffic for multiple backends? (3 backends instead of 2) that'll make this perfect

I discovered a major problem. the traffic connection drops when it's a POST method used. GET method works as normal but POST... doesnt work 100% of the time. i think the timeout factor needs to set higher. if so, how do i set the timeout for the return value?

I haven't tested it with POST yet. If you think the timeout plays a role,
you can set it using the parameters. If that does not help, have an look
into the logfile /var/log/teeproxy.log
Am 12.10.2017 1:52 vorm. schrieb "unisqu"<EMAIL_ADDRESS>
I discovered a major problem. the traffic connection drops when it's a
POST method used. GET method works as normal but POST... doesnt work 100%
of the time. i think the timeout factor needs to set higher. if so, how do
i set the timeout for the return value?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/chrislusf/teeproxy/issues/26#issuecomment-335980719,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEIXzsZWZCwIMAt86FKCDEuQQ292CRMdks5srVTRgaJpZM4PxkeI
.

I am glad it helps you, too!
I don't want to change the behavior to have 1-to-3 output, because IMO it
deviates too much from the original behavior of teeproxy and from what the
command line tool tee does. However, as with tee you can solve your
problem by running multiple instances of teeproxy like this:
teeproxy -l 8081 -a <target1> -b <target2>
teeproxy -l 8080 -a <target3> -b localhost:8081  # the latter is the other
teeproxy instance

Am 12.10.2017 12:58 vorm. schrieb "unisqu"<EMAIL_ADDRESS>
works perfectly. very well done.
can it do shadow traffic for multiple backends? (3 backends instead of 2)
that'll make this perfect
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/chrislusf/teeproxy/issues/26#issuecomment-335972410,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEIXztB77FWZ-WBDelrnnNg99_dEGADUks5srUgUgaJpZM4PxkeI
.

About the unexpected XFF content: How is your test scenario?
Regarding the teeproxy functionality, it will always append the client IP (<IP_ADDRESS> in your case) to the end of the header as shown by the unittests. This means that either the XFF header your setup inputs to teeproxy is different from what you report or your backend changes the headers afterwards.
You can easily add some debugging output to the Go code to see the which headers go in and out of teeproxy to verify this. If you find a real problem within the code, please send me a unittest which reconstructs this and I will provide a fix.
BTW: Please do not completely rewrite your comments when making edits. This makes it really hard to give correct answers via the mailing list. If there is a new problem write a new post, please.

is there an option to provide teeproxy with a debug mode to output in daemon mode real time?
i would like to resolve the issue below and teeproxy is perfect
there's only 1 small problem with this X-Forwarded-For
If XFF = 144.76.N.N, 162.158.N.N
it will show 144.76.N.N, <IP_ADDRESS>
can you make it XFF = 144.76.N.N, 162.158.N.N, <IP_ADDRESS> instead?
i havent tested on ssl but i'm very satisfied with the performance thus far. it's holding up very well.


enable email sign up

Companies get hacked all the time , including companies that have a high average salary and are suppose to be high quality (facebook google apple etc). those databases are available on the internet . Reportedly there are 8,000,000 cyber crimes in a year.
I might want to forcast some stuff that is pretty pretty personal, the website getting hacked and it's database sold and then someone looking up at my data seems like a risk that is plausable.
Even if you think that is not a significan't risk, some people might have bad life experience that created pessimistic tendencies and might prevent them from using the website (and those are the people that probably really could benefit from this project).
Great project btw.

I wanted to sign up today, but after seeing it's only possible via Google I didn't. I really would like to see other signup options like email. Or just pick a username and set a password (great for privacy and privacy-concerned users that want to predict personal questions).


user-visible error messages

Currently messages from stdout and stderr of the kernels are logged to the console, but really we should be putting them somewhere with more visibility for the user.
Maybe a status bar error indicator that opens an editor with all the messages?

@willwhitney Close this?
I'll add log level soon, besides.

:heavy_check_mark:


added check for locked database

Description
If some process is using database, tests will fail with very weird set of errors, so I added a check for database being in locked state.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Codecov Report

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

@@          Coverage Diff           @@
##           master    #136   +/-   ##
======================================
  Coverage    4.33%   4.33%
======================================
  Files          10      10
  Lines        1222    1222
======================================
  Hits           53      53
  Misses       1167    1167
  Partials        2       2

Continue to review full report at Codecov.

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


Updated richeditor.js initFroala function to not overwrite the follow…

Changes
Updated richeditor.js initFroala function to not overwrite the following editor option defaults if they exist:

imageStyles
linkStyles
paragraphStyles
paragraphFormat
tableStyles
tableCellStyles
htmlAllowedTags
htmlAllowedAttrs
htmlDoNotWrapTags
htmlRemoveTags
lineBreakerTags

Updated build-plugins-min.js with lastest minified js.
Issue
I wanted to customize the backend editor to add a couple custom image styles to. I searched around and have seen that others have tried to customize the backend editor for their purposes too. However some of the editor options (partial list above) are overridden when the editor is initialized. An example of a customization I wanted to have in the editor was an img-max-100 style for images to limit their size to 100%, and I wanted to put that in the froala defaults with the following code:
+function ($) { "use strict";
    $(document).render(function() {
        if ($.FroalaEditor) {
            $.FroalaEditor.DEFAULTS.imageStyles['max-img-100'] = 'Max 100%';
        }
    })
}(window.jQuery);```

@Nimdoc this makes more sense now; did you try to use the Backend Editor Styles settings page to add your customizations?

Huh, I didn't see that, that's even better than what I wanted. Well at least if someone searches for "WinterCMS add editor styles" or what not they'll see this. Thanks for the help!

@LukeTowers I got more time to look into customizing the editor with your suggestion, but I realized now that the settings are stored in the database. I think perhaps these changes may actually be useful for:

Keeping editor settings between environments without worrying about setting up the database.
Letting plugin developers add custom values to the froala editor for their purposes.

Or is there a better way to add styles with php like somewhere with EditorSetting.php or RichEditor.php?

Hmm, this is worth considering further. We could look at providing control over those values through a config file like we do with the brand settings currently; or we could perhaps add support to themes (since themes are ultimately responsible for rendering a lot of richeditor content; although not solely responsible so we'd have to take that into consideration as well.
@bennothommo @jaxwilko any thoughts on this?

I think the theme providing a baseline which can then be extended from in the Backend would probably be best. You generally use richeditors for theme content.
I'd probably do it in the following:

The theme provides a list of classes for each of these configs - these could be displayed in the Backend but are immutable. If you want to change them, you change the theme settings instead.
The Backend defines additional classes which can be added, modified and removed like they can now.
A new config option for richeditors could be added to define whether the theme-provided classes are made available (useThemeClasses?) or not, to cater for the richeditors that are not modifying front-end content.


DoWordLeft and previouswordposition

I think that PreviousWordPosition should be checked only if the char position is at 1. If not than the caret pos is at the end of the prev word.
BCEditor.Editor.Base line 1202
if (AreTextPositionsEqual(LCaretNewPosition, LTextCaretPosition) or (ACommand = ecWordLeft)) and ((LTextCaretPosition.Char = 1) and (LCaretNewPosition.Char = 1)) then
LCaretNewPosition := PreviousWordPosition;
Regards

I see the problem but that's not the correct fix. This will be fixed in version 1.9. I won't upload my changes until my refactoring is done.

Well, thats not what I meant but ok - I just leave it in my code tree. Try to do ctrl + left in this memo of github.
Some illustration where | is the caret - [This is an test|] -> ctrl + left -> [This is an |test]. Without the above of mine it behaves like [This is an| test]
Regards, and no offence. ;)

None taken. Anyone can do what ever they like and need. I don't mind at all.
Fixed.

Sure, it`s mit license anyway. I just point at some none standard behaviour ;)


Docs

misc. doc fixes and additions

Codecov Report

Merging #63 (51b37f8) into master (c0e5f71) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #63   +/-   ##
=======================================
  Coverage   56.70%   56.70%
=======================================
  Files          24       24
  Lines        1379     1379
=======================================
  Hits          782      782
  Misses        597      597

Continue to review full report at Codecov.

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


Use Jackson to serialize and de-serialize audit configuration

Issue #, if available:
Description of changes:

Provide serialization & deserialization for audit configuration using Jackson. This is a preparatory PR for storing configuration in the security index.
Inject settings present using Jackson which is used by compliance config
All the defaults are based off what is currently implemented by reading off elasticsearch settings.
Added tests

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Please see https://github.com/sujithvm/security/pull/192

Index in JsonProperty is mainly used for ordering in tests and does not require the json to be any order.


APIM-242 allow setting not-applicable qos for update purposes when supported

Issue
https://graviteecommunity.atlassian.net/browseAPIM-242

🚀 CI was able to deploy the build of this PR, so you can now try it directly here
Notes: The deployed app is linked to the management API of APIM master. (Same login and password as APIM master)

📚  View the storybook of this branch here

This is not more accurate since #2709


Enhancement/Question on event loop time

Hi and thanks to create this amazing piece of software, I was wondering if is possible ( or if it is already in place ) to have a mechanism that logs a WARN message when an event loop cycle takes too much time and/or log the cycle time of the event loop.
This would help people using Netty to figure out when the event loop is used not appropriately, the cycle time may be also a metrics to push somewhere.
I am open to contribute on that but could need some guidance on the implementation.
Thanks in advance

Hi @pioardi you can just provide your Runnable abstraction that could (with sampling; meaning that not every Runnable perform this metric) measure the time spent while it's executed.
It won't give you how much time is spent while executing application tasks, but it would save Netty to provide such functionality that can have a performance impact.
There's a GSoC in the past aiming to provide lightweight metrics; if you're interested maybe we can think about resurrecting it...
and we love PRs if you wish to contribute on it :P

Hei @franz1981  thanks for your quick reply, yes I think lightweight metrics would be nice to have with a possibility to enable and disable them so that who is interested can turn them on, do you have any starting point where I can start looking into ?

Yes @pioardi

https://github.com/netty/netty/wiki/Google-Summer-of-Code-Ideas-2020#implement-event-loop-telemetry
https://github.com/netty/netty/pull/11293
https://github.com/netty/netty/pull/9080

And IIRC https://github.com/eclipse-vertx/vert.x/blob/d711e50174f84a06744c855dd29222beaa97bdeb/src/main/java/io/vertx/core/impl/btc/BlockedThreadChecker.java VErt-x (nudge nudge @vietj ) is using this mechanism
I can help to implement something, wdyt @chrisvest @normanmaurer @NiteshKant  ?

Yep the vertx implementation is exactly what I have in mind, we may start small from that and then add the metrics later ?

Re

that can be captured only within Netty

I mean, for example, to expose hooks to report the time spent while performing I/O vs application code eg https://github.com/netty/netty/blob/86004b7303621784f7ec8850323d9a707f17f9f8/transport-classes-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoop.java#L383-L391
These are not meant to be checks that can alert anyone and will be published when they happen and complete (because captured within the event loop); it's not meant to poll if an existing task is still blocking the event loop while it's happening, as the Vert-x checker.

@violetagg too, anything that can be interesting for you as well?


Ajax Table Configuration

Hi @ratiw, Great job on Vue Table component !
Well, I've got an use case here where is needed to load all vue-table props from the server.
For example, this is what I have on the server:
public function tableParams()
    {
        $table = new Table;
        $nome = new TableField;
        $abrev = new TableField;
        $actions = new TableField;

        $nome->name = 'nome';
        $nome->sortField = 'nome';

        $abrev->name = 'abrev';
        $abrev->title = 'Abreviatura';
        $abrev->sortField = 'abrev';

        $actions->name = '__actions';
        $actions->title = 'Ações';
        $actions->titleClass = 'text-center';
        $actions->dataClass = 'text-center';
        $actions->extra = array('width' => '11%');

        $actionEdit = new ItemAction;
        $actionEdit->name = 'edit-item';
        $actionEdit->icon = 'fa fa-pencil';
        $actionEdit->class = 'btn btn-warning';

        $actionDelete = new ItemAction;
        $actionDelete->name = 'delete-item';
        $actionDelete->icon = 'fa fa-trash';
        $actionDelete->class = 'btn btn-danger';

        $table->apiUrl = '/cadastros/unidades';
        $table->columns = [$nome , $abrev , $actions];
        $table->itemActions = [$actionEdit , $actionDelete];
        $table->sortOrder = [array('field' => 'nome', 'direction' => 'asc')];

        return $table->show();

    }

Well, this routine returns a Json,with all the configuration. There's no problem on binding everything.
The problem I've found is that I couldn't find a vue-table event or method to initialize. What I've found is the loadOnStart property, which I've set to FALSE in order to prevent the table to load until the ajax request is done. Well, if I just broadcast the vuetable:reload or vuetable:refresh events, it wont work because it never calls the nomalizeFields method.
I've created an event like this:
'vuetable:initialize': function() {
            this.normalizeFields();
            this.currentPage = 1;
            this.loadData();
        }

but unfortunately didn't work (table shows only the pagination). What is curious, is that if I send the vue-table component to the console and call $vm.normalizeFields() the table appears. So, do you think is a timing issue ? Have any idea on how to solve that ?

PS: Solved adding the property  visible = true to each field object. But I keep curious on why I can't just have the table rendered by broadcasting the vuetable:initialize event on the promise !

@rafaellupo It's hard to say. Have you notice any error in the browser console?
I don't know how you construct the <vuetable> tag using your tableParams(). But there might be problem(s) during the construction of vuetable by Vue.js and that's why I asked if there is an error dumped in the console output.
vuetable has two required props, which are api-url and fields props. These two props should be set beforehand. The api-url prop could be set later if you set load-on-start to false. But the fields prop will be used in the created hook by normalizeFields() to normalize each field so that all required options will be set with the default value if it's not present.
There is actually an event that you could broadcast from your main vue instance that will tell vuetable to set its own props using the given object, which is vuetable:set-options.
According your use case, here's what I come up that is working ok based on the example provided in examples directory.
    <vuetable v-ref:vuetable
        api-url=""
        :fields="[]"
        :load-on-start="false"
    ></vuetable>

This is the minimum setup that will prevent vuetable and vue.js throwing error out in the console

api-url is set to empty
load-on-start is set to false so that the loadData() will not get called with and empty api-url
fields is set to empty array

And here is the javascript part that initializes vuetable at a later stage.
  new Vue({
    el: '#app',
    data: {
      // omit for brevity, see the actual code in examples directory
    },
    ready: function() {
        //
        // you could do an ajax request here to retrieve vuetable settings from your server
        //
        this.$broadcast('vuetable:set-options', {
            apiUrl: 'http://vuetable.ratiw.net/api/users',
            fields: this.fields,
            itemActions: this.itemActions,
            paginationPath: ''
        })
        this.$refs.vuetable.normalizeFields()
        this.$refs.vuetable.loadData()
    }
  })

Please note that you need to call normalizeFields() to allow vuetable to normalize the given fields, otherwise, it might not work correctly. Also, since we've instruct vuetable not to load the data during the first initialization via load-on-start="false", we will have to do that manually as well by calling loadData().
Please note that this may not no longer work when vuetable is updated to use Vue 2.0 due to the deprecation of event system in Vue 1.x.

Thank you @ratiw ! I got it working as expected ! Regards !


HNC: Failed e2e tests right after make deploy

Since it takes about 30s for the webhook server to be available after deployment, running e2e tests right after make deploy will fail (won't be able to create any namespaces because the webhook is fail close). e.g.
Error from server (InternalError): Internal error occurred: failed calling webhook "namespaces.hnc.x-k8s.io": Post https://hnc-webhook-service.hnc-system.svc:443/validate-v1-namespace?timeout=30s: dial tcp <IP_ADDRESS>:443: connect: connection refused

It took me a while to figure this out. Here are the steps:

I found creating namespaces outside the e2e tests using exec.Command won't fail and creating other resources in the e2e tests also worked (because the webhooks are already up then).
Therefore, I just tested deleting the validatingwebhookconfiguration to disable webhooks and run e2e tests by go test ./e2e/... instead of make local-e2e-test (with make kind-deploy in it before running e2e tests). The namespaces can be created!

We will need to run the e2e tests after making sure the webhooks are up. I don't have a good idea of how to automate it for now. Will update in the comments.

@adrianludwin do you think this is good for @ginnyji to start from or I figure this out and she can start from after this is fixed?

Seems like a good one for her to fix, yes!
On Thu, Jun 25, 2020 at 5:42 PM yiqigao217<EMAIL_ADDRESS>wrote:

@adrianludwin https://github.com/adrianludwin do you think this is good
for @GinnyJI https://github.com/GinnyJI to start from or I figure this
out and she can start from after this is fixed?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-sigs/multi-tenancy/issues/825#issuecomment-649832626,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE43PZHA7QYM7FJVKABWFM3RYPAGDANCNFSM4OIX4KFA
.

Based on the discussion with Yiqi and Adrian, there are two proposed approaches to this issue:

Add a timer in makefile to wait 30s before deploy the e2e test
Add BeforeSuite unit in e2e_test.go to check if the webhook  server is ready

I have started implementing the second method, because this solution doesn't reply on the hard 30 seconds time limit. In the event that the webhook is ready in less than 30 seconds, it saves time. And in the event where the webhook takes more than 30 seconds to get ready, it prevents the same failure happening again.

+1
On Mon, Jun 29, 2020 at 5:36 PM Ginny<EMAIL_ADDRESS>wrote:

Based on the discussion with Yiqi and Adrian, there are two proposed
approaches to this issue:

Add a timer in makefile to wait 30s before deploy the e2e test
Add BeforeSuite unit in e2e_test.go to check if the webhook server
is ready

I have started implementing the second method, because this solution
doesn't reply on the hard 30 seconds time limit. In the event that the
webhook is ready in less than 30 seconds, it saves time. And in the event
where the webhook takes more than 30 seconds to get ready, it prevents the
same failure happening again.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes-sigs/multi-tenancy/issues/825#issuecomment-651381615,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE43PZCXZOMAMNKOUYWIGG3RZECMDANCNFSM4OIX4KFA
.

/assign @GinnyJI
(Just adding Ginny for the record)


feat(coral): Add routes and domain for Add new clusters

Linked issue
Resolves: #2294
What kind of change does this PR introduce?

[ ] Bug fix
[x] New feature
[ ] Refactor
[ ] Docs update
[ ] CI update

What is the current behavior?
Superadmin users currently cannot create  clusters from Coral UI.
What is the new behavior?

add route for add new cluster /configuration/clusters/add
add button Add new cluster to /configuration/clusters view
add domain entities for creating new Kafka cluster (addNewCluster)

https://github.com/Aiven-Open/klaw/assets/20607294/cbadb0ae-2f4e-427f-aafa-9cf27f93f8d3
Other information

no feature flag added because superadmin users cannot currently access coral
removed information from the PrivateRoute error toast (security liability). It is still visible in the video though, but removed it since haha

Requirements (all must be checked before review)

[x] The pull request title follows our guidelines
[x] Tests for the changes have been added (if relevant)
[x] The latest changes from the main branch have been pulled
[x] pnpm lint has been run successfully

no feature flag added because superadmin users cannot currently access coral

Ah, that's true :o


EdbNets.find_dc_shorts() not available.

Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

Description of the bug
Hi,
Documentation says 0.7 should have EdbNets.find_dc_shorts() however when I try to use this method I get:
AttributeError: 'EdbNets' object has no attribute 'find_dc_shorts'
I've tried Python 3.11 and 3.10, but both behave the same.
dir(edb.nets) does not show the method as visible.
Steps To Reproduce

import pyaedt
odb =
edb = pyaedt.Edb(odb, edbversion='2023.2')
PyAEDT INFO: StdOut is enabled
PyAEDT INFO: Logger is initialized in EDB.
PyAEDT INFO: pyaedt v0.7.3
PyAEDT INFO: Python version 3.11.5 (tags/v3.11.5:cce6ba9, Aug 24 2023, 14:38:34) [MSC v.1936 64 bit (AMD64)]
PyAEDT INFO: Database  Opened in 2023.2
PyAEDT INFO: Cell  Opened
PyAEDT INFO: Builder was initialized.

Windows
Which Python version are you using?
3.10
Installed packages
ansys-pythonnet==3.1.0rc3
certifi==2023.7.22
cffi==1.15.1
charset-normalizer==3.2.0
clr-loader==0.2.6
contourpy==1.1.0
cycler==0.11.0
fonttools==4.42.1
idna==3.4
kiwisolver==1.4.5
matplotlib==3.7.2
numpy==1.25.2
packaging==23.1
Pillow==10.0.0
platformdirs==3.10.0
plumbum==1.8.2
pooch==1.7.0
psutil==5.9.5
pyaedt==0.7.3
pycparser==2.21
pyparsing==3.0.9
python-dateutil==2.8.2
pythonnet==3.0.2
pyvista==0.42.1
pywin32==306
requests==2.31.0
rpyc==5.3.1
scooby==0.7.2
six==1.16.0
urllib3==2.0.4
vtk==9.2.6

@scsipi Hi and thanks for your feedback.
There is indeed a miss here, we should update the documentation and code soon.

Thanks @SMoraisAnsys for the feedback.

@scsipi the method is located under validation. Please use it from there.
edbapp.layout_validation.dc_shorts()

Thanks for looking at this.
I've been trying to use it to duplicate what the validation check for DC shorts does in 3D Layout and SIwave, but there are definitely differences.
If I use edb.layout_validation.dc_shorts(fix=False) on a given design, it takes about 70 minutes to run, whereas the GUI based checks for DC shorts takes about 10minutes for the same design. Also, the pyAEDT call returns more than 10,000 entries in the returned list, whereas the GUI checks return 149 shorts, (which is what that I expect to see).
Any ideas?

@scsipi thanks for your valuable feedback. PyAEDT doesn't use the same algorithm to check DC short as SIwave, but they should return the same result.
@svandenb-dev can you help on this?

@ring630
"... PyAEDT doesn't use the same algorithm to check DC short as SIwave,..."
OK, that's interesting. In which case, please refer to Ansys SR [00032574] which I raised today and may have a reason for this.

@scsipi In PyAEDT, @svandenb-dev wrote the algorithm for DC short checking from scratch. You can see the source code if you wish. SIwave and HFSS 3D Layout use the same native alogrithm.

I think I have narrowed this down to the handling of the ODB++ special net "$NONE" probably showing up in calls to get_connected_objects(). I don't know how the Ansys translator deals with $NONE$. It is defined in ODB++ as the net name allocated to objects with copper but no associated net.
Without going into design specifics on an open forum, if I remove a particular structure which intentionally has no net name assigned to it and then use edb.layout_validation.dc_shorts(fix=False), I get the results I expect.
The GUI shorts checks seem to automatically ignore this feature and only report 'real' shorts.
I have a workaround, but can discuss more details in an Ansys SR under NDA if needed.

@scsipi thanks for the update. "$NONE$" doesn't have a associated net. It is considered illegal. I created a issue on it #3881. Please feel free to add your comments.


allow AbstractExporter getData() return collection

sometimes we need eloquent model object to do something others.

Thanks!


ToolRunner does not properly buffer the stdline and errline.

Environment
azure-pipelines-task-lib version: 4.10.1
Issue Description
The toolrunner does not properly buffer the stdline and errline. Specifically, when the toolrunner receives 'stdout' or 'stderr' data from the child process, it discards all the data after the last new line character.
This has implications for the AzureCLI@2 task which is listening to the errline event to implements its failOnStandardError functionality. When the standard error stream does not contain any newlines (or the wrong type e.g. lf endings on Windows) the errline event never fires due to the incorrect buffering.
Expected behaviour
The toolrunner should correctly buffer all of the stdout and stderr data and emit stdline and errline events for all lines of data.
Actual behaviour
The stdline and errline are missing data.
Steps to reproduce
Here is an example script to reproduce the issue:
// bufferedoutput.js
var os = require('os');
var stdout = process.stdout;
var stderr = process.stderr;

stdout.write('stdline 1' + os.EOL, function () {
    stdout.write('stdline 2', function () {
        stdout.write(os.EOL + 'stdline 3');
    });
});

stderr.write('errline 1' + os.EOL, function () {
    stderr.write('errline 2', function () {
        stderr.write(os.EOL + 'errline 3');
    });
});

// test.js
var assert = require('assert');
var scriptPath = path.join(__dirname, 'bufferedoutput.js');
var node = tl.tool(tl.which('node', true));
node.arg(scriptPath);

let stdlines = [];
let errlines = [];

node.on('stdline', function (line) {
    stdlines.push(line);
});

node.on('errline', function (line) {
    errlines.push(line);
});

node.exec({
    cwd: __dirname,
    env: {},
    silent: false,
    failOnStdErr: false,
    ignoreReturnCode: false,
    outStream: testutil.getNullStream(),
    errStream: testutil.getNullStream()
})
.then(function (code) {
    assert.equal(code, 0, 'return code of cmd should be 0');
    assert.deepStrictEqual(stdlines, ['stdline 1', 'stdline 2', 'stdline 3'], 'should have emitted stdlines');
    assert.deepStrictEqual(errlines, ['errline 1', 'errline 2', 'errline 3'], 'should have emitted errlines');
});

Logs
N/A

Pull Request for this issue: #1030

Fix was merged and published under the 4.17.2 version.
@EvanCahill thanks for the contribution!


Add openwrt support.

I'm trying to add support for openwrt.
I've already added opkg.

It is working but a few fields are missing, I'll try to work them out.

Very cool! I'm always around if you need any help, or have any questions.

Thanks.
So I've collected a bit of info.
CPU model lookup fails since
root@OpenWrt:~# cat /proc/cpuinfo  | grep model
cpu model               : MIPS 1004Kc V2.15
cpu model               : MIPS 1004Kc V2.15
cpu model               : MIPS 1004Kc V2.15
cpu model               : MIPS 1004Kc V2.15

There is no model name only the type of cpu so I'm thinking to display MIPS 1004Kc V2.15 instead of empty space.
Terminal, DesktopEnvironment, WindowManger fails since it has no gui.
The machine readout fails since there is no /sys/class/dmi.
However most of this is displayed in the luci web-ui.

So I am going to try to make the Machine readout work and try to display correct info in the CPU readout.

More information.
Machine readout can be obtained by
root@OpenWrt:/proc# cat cpuinfo  | grep machine
machine                 : Xiaomi Mi Router 3G

In cpu readout for linux
  if l.starts_with("model name") {
      return l ‣String
          .replace("model name", "") ‣String
          .replace(":", "") ‣String
          .trim() ‣&str
          .to_string();
  }

It is checked if the line starts with "model name",
but in OpenWrt (Linux OpenWrt 4.14.221 mips)
in the /proc/cpuinfo file the cpu model start with  "cpu model".
This probably occurs due to the older kernel.
So while the target os is still linux this makes parsing things a bit confusing.

Hey @grtcdr I have made the changes and it runs fine but the code isn't as clean as I'd like.
Can you check it ?

A more optimal approach is to have a separate directory and mod.rs implementation, but this depends on one thing:
the cpu architecture of OpenWrt systems, is its target_arch value mips or linux.
If its the former, than we can go ahead and add a separate directory for OpenWrt and implement the Readout types to target OpenWrt specifically.
If its the latter, then I'll refactor what I can, if there is refactoring work to do.

This could but work but Openwrt systems can be of many architectures
And if someone were to run this on an non openwrt mips machine this would break it.
Here is a list of architectures supported by openwrt https://openwrt.org/packages/architectures.

Here is a list of architectures supported by openwrt https://openwrt.org/packages/architectures.
That's a pretty big list, let me think of something before we move forward with this approach.

We could have something like a feature flag or environment variable at compile time that would tell cargo to build for openwrt.
I have no clue about how the build.rs build scripts work but I'll try to look into it.

We could have something like a feature flag or environment variable at compile time that would tell cargo to build for openwrt.
Good idea :+1:

@uttarayan21 We can run a certain feature depending on the output of a modified version of GeneralReadout::distribution(), because that function can return both NAME and VERSION, we'll also need a new build_linux() in build.rs that contains something like this:

So , like, we add a check to linux GeneralReadout::distribution()
But I think the compile time feature flag will be better since for openwrt we probably will be cross-compiling and the /etc/os-release will not coresspond to the target machine.

println!("cargo:rustc-cfg=feature=openwrt");

So if am understanding it correctly we just add a new feature to libmacchina called openwrt and then add the above to the build.rs in macchina when the --features=openwrt is called ?.

Also I tried doing this.
    if #[cfg(target_os = "linux")] {
            if #[cfg(features = "openwrt")] {
                mod openwrt;
                pub type BatteryReadout = openwrt::OpenwrtBatteryReadout;
                pub type KernelReadout = openwrt::OpenwrtKernelReadout;
                pub type MemoryReadout = openwrt::OpenwrtMemoryReadout;
                pub type GeneralReadout = openwrt::OpenwrtGeneralReadout;
                pub type ProductReadout = openwrt::OpenwrtProductReadout;
                pub type PackageReadout = openwrt::OpenwrtPackageReadout;
            } else {
                mod linux;
                pub type BatteryReadout = linux::LinuxBatteryReadout;
                pub type KernelReadout = linux::LinuxKernelReadout;
                pub type MemoryReadout = linux::LinuxMemoryReadout;
                pub type GeneralReadout = linux::LinuxGeneralReadout;
                pub type ProductReadout = linux::LinuxProductReadout;
                pub type PackageReadout = linux::LinuxPackageReadout;
            }
    }

but it seems that I cannot use cfg_if with features atleast not like I'm currently trying to do.

Can you test the openwrt-testing branch I just created?
I don't want to ruin your progress with my experiments so I made it its own branch.

#[cfg(all(target_os = "linux", feature = "openwrt"))]
Ah I see so that's how you do it.

Yes I just pull upstream/openwrt-testing to my local branch I'll test it out after fixing some merge conficts.

#[cfg(all(target_os = "linux", feature = "openwrt"))]

Ah I see so that's how you do it.
Yes I just pull upstream/openwrt-testing to my local branch I'll test it out after fixing some merge conficts.

Yeah there's only one issue, the first if statement, the one for Linux:
if #[cfg(target_os = "linux")]

should actually check for target_os and also check if the feature is disabled, so not(feature = "openwrt")

I just tried you upsteam/openwrt-testing branch, the conditional compilation works fine now.
Now I just need to implement the things that work in OpenWrt.

I just tried you upsteam/openwrt-testing branch, the conditional compilation works fine now.
Now I just need to implement the things that work in OpenWrt.

Awesome! I'm looking for a way to use not(feature = "openwrt") and target_os = "linux" in the same cfg attribute, I seem to be doing something wrong...

Awesome! I'm looking for a way to use not(feature = "openwrt") and target_os = "linux" in the same cfg attribute, I seem to be doing something wrong...

This seems to work for me
 #[cfg(all(target_os = "linux", not(feature = "openwrt")))]

Awesome! I'm looking for a way to use not(feature = "openwrt") and target_os = "linux" in the same cfg attribute, I seem to be doing something wrong...

This seems to work for me
 #[cfg(all(target_os = "linux", not(feature = "openwrt")))]

Yeah, I couldn't figure that one out so I asked for help over at Rust's official discord channel.

@uttarayan21 Since OpenWrt is Linux at the core, I imagine opkg might have a directory that contains the installed programs, sort of like pacman stores its packages in /var/lib/pacman/local
Not all package managers do it the same, but try looking for a directory similar to this, maybe we can extract installed packages by reading the entries of that directory (if it exists).

Yes I actually tried doing that but openwrt is a little different than a normal linux system.
The root is a squashfs filesystem mounted read-only and then an overlay filesystem is mounted on top of it which contains all the changes made to the root filesysem.
root@OpenWrt:/# mount
/dev/root on /rom type squashfs (ro,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
/dev/ubi0_1 on /overlay type ubifs (rw,noatime,ubi=0,vol=1)
overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600,ptmxmode=000)
debugfs on /sys/kernel/debug type debugfs (rw,noatime)

There is however a file in the filesystem which had the info about opkg packages in it whose path I currently don't remember.
root@OpenWrt:/# find -name '*opkg*'
./bin/opkg
./etc/config/adblock-opkg
./etc/opkg
./etc/opkg.conf
./lib/upgrade/keep.d/opkg
./overlay/upper/etc/opkg
./overlay/upper/etc/config/adblock-opkg
./overlay/upper/usr/lib/opkg
./rom/bin/opkg
./rom/etc/opkg
./rom/etc/opkg.conf
./rom/lib/upgrade/keep.d/opkg
./rom/usr/lib/lua/luci/controller/opkg.lua
./rom/usr/lib/lua/luci/view/opkg.htm
./rom/usr/lib/opkg
./rom/usr/lib/opkg/info/luci-app-opkg.control
./rom/usr/lib/opkg/info/luci-app-opkg.list
./rom/usr/lib/opkg/info/luci-app-opkg.prerm
./rom/usr/lib/opkg/info/opkg.conffiles
./rom/usr/lib/opkg/info/opkg.control
./rom/usr/lib/opkg/info/opkg.list
./rom/usr/lib/opkg/info/opkg.prerm
./rom/usr/sbin/opkg-key
./rom/www/luci-static/resources/view/opkg.js
./tmp/usr/lib/opkg
./tmp/opkg-lists
./usr/lib/lua/luci/controller/opkg.lua
./usr/lib/lua/luci/view/opkg.htm
./usr/lib/opkg
./usr/lib/opkg/info/luci-app-opkg.control
./usr/lib/opkg/info/luci-app-opkg.list
./usr/lib/opkg/info/luci-app-opkg.prerm
./usr/lib/opkg/info/opkg.conffiles
./usr/lib/opkg/info/opkg.control
./usr/lib/opkg/info/opkg.list
./usr/lib/opkg/info/opkg.prerm
./usr/sbin/opkg-key
./www/luci-static/resources/view/opkg.js

This is a list of all files contaning the word opkg

Alright so I fount the file which contains all the list of pakcage names.
I did
cat /usr/lib/opkg/status | grep -c 'Package'

So we can do something like in rust.
if line.starts_with("Package:") {
    count += 1
}

Alright so I fount the file which contains all the list of pakcage names.
I did
cat /usr/lib/opkg/status | grep -c 'Package'

So we can do something like in rust.
if line.starts_with("Package:") {
    count += 1
}

Great, you found it!

Hey @grtcdr I think its done for the most part. Need to do a litte bit more testing. Can you take a look ?
Also the distribution function in build.rs is useless since it uses the os_release which is in the current machine which is definetly not going to be OpenWrt. So I'm removing it.
To compile I'm using cross
cross build --target mipsel-unknown-linux-musl --features=openwrt --release

Also need to do this to macchina's Cargo.toml
diff --git a/Cargo.toml b/Cargo.toml
index 6e02c4f..d59284a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -29,3 +29,6 @@ lazy_static = "1.4.0"

 [target.'cfg(not(target_env = "msvc"))'.dependencies]
 jemallocator = "0.3.2"
+
+[features]
+openwrt = ["libmacchina/openwrt"]

Then compile with

cross build --target mipsel-unknown-linux-musl --features=openwrt --release

Current sreenshot running my openwrt router.

Current sreenshot running my openwrt router.

Nice :)
I checked out the changes, and everything looks good!

+openwrt = ["libmacchina/openwrt"]

Shouldn't that be "src/openwrt" though?

That is actually the syntax that I fount in the rust books.
For the feature openwrt of macchina compile feature openwrt of libmacchina

That is actually the syntax that I fount in the rust books.
For the feature openwrt of macchina compile feature openwrt of libmacchina.
Probably also sould bump the version.

Sorry for the misclick!
Yeah, go ahead and bump up the version number :+1:

So should I put it 0.1.10 or 0.2.0

So should I put it 0.1.10 or 0.2.0

0.2.0

@uttarayan21 Great work, and thanks for your contribution, I can attribute your contributions in Contributors section of Macchina's GitHub repository if you'd like.

Haha sure.
Thanks for your project too.

@uttarayan21 Could you please add a section for OpenWrt in Macchina's installation wiki page?

Oh yeah sure I'll do that.

Oh yeah sure I'll do that.

Thank you so much :smile:

I have added it to the installation part in the wiki.


[Feature Request]: Memgraph Index / constraints in the Neo4j transforms

What would you like to happen?
The Neo4j transforms in Hop work great with Memgraph for standard cypher queries but there are a few things Memgraph does different from Neo4j with how they use Cypher and the Bolt protocol.  One of the main issues is that they do indexes and constraints different.  It would be great if there was a way to specify if the connection uses Neo4j, Memgraph or some other graphdb compatible with the Bolt protocol which may have a variation on their interpretation of the opencypher standard.  With this then the transforms can have variations made to how they do things like handle creating indexes or contraints.
Issue Priority
Priority: 3
Issue Component
Component: Neo4j

definitely agree with the usefulness of this request, but what this would mean is that our Neo4j functionality wouldn't be strictly Neo4j any longer.
Renaming all our functionality from "Neo4j xyz" to "Graph xyz" would be quite an adventure, especially with backward compatibility in mind.
This is out of scope for this ticket and should be discussed on the mailing list first imo.


Tables with many columns extend past margin

Tables with enough columns will extend past the right margin, as shown below:

It looks to me as if there is enough spacing between the columns that this table could fit within the margins if that spacing were reduced. Even if that's not the case, should the column headers wrap around to multiple lines so that the table can fit within the margins?
This problem only exists for the SRS Doctype, not the HTML files.

Unlike the previous issue, this one is incredibly hard to address.  Even LaTeX itself does not address this.  You need to know a huge amount of information (page size, font size, etc, etc) to be able to calculate this, none of which are available to Drasil.
I have assigned this one to Spencer, because this is really about the design of the SRS template itself, not about lower-level features of Drasil.

Since the time of this issue being posted we have had success with generating graphical representations of the graphs that show this traceability information.  If a table does not fit, then we could include the generated graph.  We also could create tables that are a subset of the full table.  For instance we could generate multiple tables each with a subset of the rows from the full table.  That is, we could have a table that shows the traceability between assumptions, a table for the theories and a table for the data definitions.
I am going to close this issue at this time.  We can reopen it if and when the appearance of the tables in our examples again becomes a problem.


Fix reset state when options/ pages are changed

Data screen was still loaded

@rustd the reload seems to work fine on my machine, can you show more info about how to reproduce it?

@rustd, please provide details per @LittleLittleCloud then assign back to him (if necessary)

Repro steps:

Launch Model Builder
Select Sentiment Analysis
Upload a csv file
See Data Preview loaded with the data in the datagrid
Go back to Scenario screen
Select Issue classification
Goto Data tab

Expected
Data Preview should be empty
Actual
Data preview has the grid


Add volume comment property

@btoonk Could you add an acceptance test as well? Are you able to run the acceptance tests? Same for #151

@hunner test for comment has been added


Problem configuring colors?

Dear rsbondi,
I would like to omit lightgreen as highlighting color because the contrast is too low on my screen, but no matter what configuration I tried in Visual Studio Code's settings.json,  it had no effect.
--> Can you please correct any mistake in my below settings.json configuration:
{
"window.zoomLevel": -1,

    "highlightwords.colors:"  [
        { "light": "#b3d9ff", "dark": "cyan" },
        { "light": "#e6ffb3", "dark": "pink" },
        { "light": "#ffd9b3", "dark": "magenta" },
        { "light": "#ffb3ff", "dark": "cornflowerblue" },
        { "light": "#b3ffb3", "dark": "orange" },
        { "light": "#ffff80", "dark": "green" },
        { "light": "#d1e0e0", "dark": "red" }
    ]
}

or advise where else I am supposed to enter this configuration code?
(Instead of "highlightwords.colors" I also tried "highlight.configuration.colors" because that's what I found in the extensions' description in VSC, but that didn't work, either).

I was able to figure it out. This worked for me. You have to restart VS Code or reload the window, for the settings to take effect. The colors in the screenshot are from this plugin.