appears to stop markdownification when feed parsing

Blogger uses  to separate the part of blog posts that should be shown "above the fold" of the landing page. When I try to run my blog's RSS through the blog syndicator though, everything past the  is no longer converted into markdown and is spit out as escaped HTML.
I tried to visually inspect the RSS feed coming out of blogger and its contents look the same above and below this  divider, so I think something is going wrong upstream of generate_posts.py (like feedparser?).  Any ideas?  I couldn't find any obvious causes.

Let me do a quick manual debug to see what's going on - back in a bit!

Looks like we will also want some cleanup of the markdown name - blogger produces an interesting path!
blog/_posts/glennklockwood/2022-11-24-tag:blogger.com,1999:blog-4307061427721284246.post-2068110509046297403.md

okay does this reproduce? E.g., looks ok, but then a lot of html block?

I'm going to also do a nice little refactor to quickly show the author tag

don't worry working on your bug now!

okay got that fixed - new bug! Blogger (it looks like) prevents you from linking an external image url:

Need to think about a way around this.

This looks like a known (intentional) issue that Google knows about https://support.google.com/blogger/thread/133238986/image-url-from-blogger-googleusercontent-com-is-not-accepted-by-other-websites-if-i-want-to-insert-m?hl=en. I think for now I'm going to try to filter out these images, and perhaps with a later update we can do an efficient way to get and store them. I don't want to start with that because it will take up space very quickly.

okay I've pushed a fix to get you on the map! It includes (for the time being) removing these images that we aren't allowed to embed. If you want to discuss different parsing  strategy please open an issue! The PR also added the nice tags, and better handled the markdown file name and subsequent permalink URL.

Thanks for getting this fixed so quickly!  Doesn't seem like many people use Blogger anymore so I appreciate you getting this to work.
It looks like some residual Python crept into the rendered output of https://hpc.social/blog/2022/sc-22-recap/:

Not the end of the world; just fyi.

haha no you are spot on, I caught that too (just pushed a fix!) I needed to stringify the soup instead of returning renderedContent.

should be less terrible now :laughing:


Support for KL, bug fixes in dataset loading

Added support for KL on sft data, which is a pareto improvement over the cross entropy SFT loss.
Added support for PGD over the completion tokens.
Reran jailbreaks.ipynb and latent_adversarial_attack notebooks.

Also, fixed a bug in the dataset loading function where the BOS token wasn't properly being appended.


Documenting principles for filenames of audio output

Part of projected scikit-talk functionality is to get audio corresponding to sets of utterances. Sometimes the audio remains in a dataframe or CSV. This issue is not about that use case.  This issue describes some general principles we've discussed before in the ElPaCo project with regard to file names. The text in this issue is lifted partly from a prior Basecamp discussion.
General principles
If we're generating and processing lots of audio clips, these clips must be:

findable: have a filename starting with a uid and exist in a folder structure that allows structured searches
traceable: have a corresponding .csv close by that contains metadata about when en how this clip was generated; and have enough metadata in filename to pinpoint location in the source recording
versionable: multiple versions of a clip can exist (e.g., normalized, padded with silence, denoised) — these should relate transparently to the base version
reproducible: the above 3 points mean that we should never be afraid to rerun a script to regenerate (or overwrite) a set of clips

A key element of the filenames contributing to findability and traceability is the UID format, which is documented here.
Filenames
Many files will directly or primarily correspond to a single annotation. For these we use the UID along with a descriptor.

{uid}.wav — base file corresponding to a single turn-level annotation
{uid}_{process}.wav — derived or processed version , e.g. {uid}_normalized.wav

If a set of files is generated for some particular purpose, the files in that set should be groupable and findable. A low tech and user friendly way for that is to use folders. Ideally a folder would contain both the audio files and a trace back to the process that
generated them. This could be a source CSV of UIDs or perhaps a .txt with a brief description of the goal of generating this particular set.
|- by_query
|  |- query_tag
|     - {uid}.wav
|     - {query_tag}.csv

Some files may correspond to a longer stretch of interaction (e.g. an excerpt corresponding to a CA style transcript of multiple lines that contains one or more target annotations). It's still useful to have a UID as part of the filename but we may also want to record the begin and end times of the stretch explicitly:

{uid}stretch{begin}-{end}.wav

If needed, such stretches too can undergo processing in which case they get a _{process} suffix.
Some files may also come with other media formats, or with a transcript. All files belonging to such a bundle should always have matching filenames. Like audio files, transcripts and other media files can come in different versions, which can be distinguished by _{suffix}.

{uid}_transcript.txt
{uid}_padded1000ms.mp4 (= mp4 corresponding to the {uid}.wav, clipped with 1000ms padding on either side)
{uid}stretch{begin}-{end}_transcript.txt (= transcript of a particular stretch including {uid} and running from {begin} to {end})

This sounds doable. I would recommend using Snakemake, a pretty good Python-based workflow tool.

I can foresee a minor problem:
{begin} and {end} will render as floats with many decimals. We have to truncate them. What would be a reasonable scale to do this? Truncate at the second level? Decisecond perhaps?

I am not sure why they would ever render as floats. You're right that would
not be good. In R we always treat them as integers, not floats.
Truncating at second or decisecond level is not finegrained enough. Why not
truncate at millisecond scale, i.e. always round off to the nearest
millisecond?
Mark
Op do 12 dec 2024 om 10:02 schreef Pablo Rodríguez-Sánchez <
@.***>:

I can foresee a minor problem:
{begin} and {end} will render as floats with many decimals. We have to
truncate them. What would be a reasonable scale to do this? Truncate at
the second level? Decisecond perhaps?
—
Reply to this email directly, view it on GitHub
https://github.com/elpaco-escience/scikit-talk/issues/26#issuecomment-2538264228,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLNCCYK67UOVO2HFAK273L2FFGJFAVCNFSM6AAAAABTPI4TKSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMZYGI3DIMRSHA
.
You are receiving this because you authored the thread.Message ID:
@.***>


export row so that dynamic making rows is possible

Hi @funkygao,
Your changes are merged onto refactoring branch, it (hopefully) will merge back onto master soon.

Merged


Cannot build (due to private/missing git repo)

The git repository at https://gitlab.com/waelwindows9922/enum_dispatch.git seems to be private or has been deleted, and thus the project can no longer be built.
Logs:
    Updating git repository `https://gitlab.com/waelwindows9922/enum_dispatch.git`
error: failed to get `enum_dispatch` as a dependency of package `farc v0.1.0 (/home/brod8362/src/farc)`

Caused by:
  failed to load source for dependency `enum_dispatch`

Caused by:
  Unable to update https://gitlab.com/waelwindows9922/enum_dispatch.git

Caused by:
  failed to fetch into: /home/brod8362/.cargo/git/db/enum_dispatch-5141aeacab52d9c2

Caused by:
  failed to authenticate when downloading repository

  * attempted to find username/password via git's `credential.helper` support, but failed

  if the git CLI succeeds then `net.git-fetch-with-cli` may help here
  https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli

Caused by:
  failed to acquire username/password from local configuration

https://gitlab.com/antonok/enum_dispatch.git
Project builds using the original enum_dispatch library (as was mentioned in a comment)


🎮 Game Request
Game logic and basic description
This game will be created using HTML, CSS and JavaScript. This is two player game. User will play this game turn by turn. And will check for win after every move, if anyone won then game is over and they can start play again.
Basic Logic for game:

First game board will be Initialize.
Starting player will be X
Player will select board
Check for win
Update board
Switch player
If player win then game stopped

Point down the features
Game points
When one player will satisfy winner conditions then that player will win the game.
Select program in which you are contributing
No response
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @pavitrachavda97 !! We are already having similar issue in #18 !!!

Hey @pavitrachavda97 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Shift lower leg bounding box

This PR raises the lower leg bounding box to hopefully prevent self collisions in the ankles.

I doubt merging in main will work (although it might tell you it does). If you want to get these changed in, I'd suggest making a new branch off the latest main and putting in your changes manually from here.
Although I think you wanted to redo the protos with that onshape stuff anyway?

Is this still a problem @Tom0Brien?


Update bootz.proto

Change package name to be correct

What's the reason for this change?
This is going to break Bootz as it will change the gRPC service name exported by the server. The software versions used by our test devices will contain the old gRPC service name and won't be able to communicate.


add release, subdomains and renew for ENS

Ready to merge and release after https://github.com/AlphaWallet/alpha-wallet-ios/issues/1504 & https://github.com/AlphaWallet/alpha-wallet-android/issues/948 & https://github.com/AlphaWallet/alpha-wallet-ios/pull/1515 & fixing getting attributes loaded which depend on other attributes
Update: postponing til we get event support

@colourful-land should line 26, currently:
<ts:data name="EventRegistered">

be:
<ts:data name="NameRegistered">

instead; unless line 26 provides a way to describe an artefact's shape, and the artefact is somehow referenced in line 43 in the <ts:ethereum event=> origin tag with an attribute other than name.

@colourful-land should line 26, currently:
<ts:data name="EventRegistered">

be:
<ts:data name="NameRegistered">

instead; unless line 26 provides a way to describe an artefact's shape, and the artefact is somehow referenced in line 43 in the <ts:ethereum event=> origin tag with an attribute other than name.

Fixed

@colourful-land we should up the schema and take this opportunity to add array types as well. Maybe hit for 2019/12

Hi I reversed @James-Sangalli .gitnore as I wasn't aware node-js modules are being introduced (sorry). If it is going to be that complicated it should graduate to its own project (instead of in tokenscript/examples). It's good for learners. having learners read long pieces of code and being distracted by production details is a bit like, for the lack of better analogy, like someone splashing coffee on your shirt every 30 minutes when you learn to speak Spanish, regardless if you pronounced correctly.
If that's agreed, this pull request will be about the schema update for ENS and ENS live somewhere else.

moved to: https://github.com/AlphaWallet/TokenScript-Examples/pull/7


Running error from mac brew install

I got this error message while running Micrate which is installed using brew.
dyld: Library not loaded: /usr/local/opt/libevent/lib/libevent-2.0.5.dylib

Solved here issue #17


Error Initializing t2 using weight_gen  functinal API.

We get an error "AttributeError: 'NoneType' object has no attribute 'shape'" when Initializing t2 parameter for Linear layer. This precisely happens because default value of t2 is None and for rank=1 or it is low when compared to shape then we are passing the None value for kaiming initialization.
Code to reproduce the Issue.
import torch
org_weight = torch.rand((10,20))
out = weight_gen(org_weight=org_weight,rank=1)

t2 will be "not None" if and only if:

your input is not only 2 dim(such as for convolution)
you provided tucker=True (default True)

Not all the weight will be not None in all the case. it is expected.


Screen Sharing Produces An Infinite Number Of Images

Note:
This issue is part of my Vonage Voyagers application process
Background
On activating the screen sharing feature, the number of images formed on the screen is at infinite and could be solved by not displaying the screen of the sharer on the application page.
Image

Thanks for this @adebayoileri. When you shared your screen you were given the option to share a whole screen, an application, or a single tab. If you chose to share content that includes the application you're building, this is completely expected behavior, and therefore not a bug. You'll find the same behavior in any application that supports screen sharing.
As part of the application to the Vonage Voyagers program, we ask you to identify and report a bug, or a suggested improvement to a repo. I'm going to close this issue and pop your application on hold. If you still want to be a part of the program, please open an issue which better answers the exercise in the next couple of weeks. If you have questions fire them over to<EMAIL_ADDRESS>- thanks!

Thanks for this @adebayoileri. When you shared your screen you were given the option to share a whole screen, an application, or a single tab. If you chose to share content that includes the application you're building, this is completely expected behavior, and therefore not a bug. You'll find the same behavior in any application that supports screen sharing.
As part of the application to the Vonage Voyagers program, we ask you to identify and report a bug, or a suggested improvement to a repo. I'm going to close this issue and pop your application on hold. If you still want to be a part of the program, please open an issue which better answers the exercise in the next couple of weeks. If you have questions fire them over to<EMAIL_ADDRESS>- thanks!

Okay Thanks, @phazonoverload.

Okay Thanks, @phazonoverload.

Just checking in on this. The issue doesn't have to be on this repo, but we won't be able to progress your application without a completed and accepted exercise. If you have any questions let me know here or at<EMAIL_ADDRESS>

Just checking in on this. The issue doesn't have to be on this repo, but we won't be able to progress your application without a completed and accepted exercise. If you have any questions let me know here or at<EMAIL_ADDRESS>


!game_mode command

Added exception handling while reading the config file to handle missing or wrong entries
Added command !game_mode to change the game mode on the server
Fixed issue #65

Nice work, this was a feature I was hoping to add.


Improve application/worker error logs

[x] tests and linter show no problems (npm t)
[x] tests are added/updated for bug fixes and new features
[x] code is properly formatted (npm run fmt)
[x] description of changes is added in CHANGELOG.md
[x] update .d.ts typings

Landed in https://github.com/metarhia/impress/pull/1717/commits/52610f9a122087cdfac91760d9b1fbadf060e403


FIX: Issue 61 index out of range

Fix for #61

Sure, I will fix it shortly, I think it is better to inform the user about the situation and continue the operation.

Greetings, I will review this and merge it this weekend. Thank you


FR: Add support for dynamically linked libraries with Swift Package Manager

Feature proposal

Firebase Component: All

As of today, Firebase integration through Swift Package Manager provides statically linked libraries only. See: https://firebase.google.com/docs/ios/link-firebase-static-dynamic?hl=en
Dynamic linkage has been available through Cocoapods since Firebase version 7.0.0.
Is dynamically linked libraries support for Swift Package Manager planned to be added? And if yes, when could we see that being shipped?
Thanks a lot!

Just like CocoaPods, there are no plans to support dynamic libraries for the binary part of the distribution (Firebase Analytics). For the rest,  it should be feasible, especially if there's a way for the library to control the linking like CocoaPods allows from the Podfile.
With a bit of searching, it's not clear to me if and how it's possible in Swift PM - but definitely open to suggestions and PRs.

In Package.swift you can add type: .dynamic to a library to have it link dynamically.
Some packages supply the same targets as both dynamic and static by giving one of the libraries a different name.

Not certain how the internal dependencies are handled - of course it's no good if two dynamic libraries statically link to shared functionality...

Thanks @mortenbekditlevsen. I'm not enthusiastic about doubling the number of Firebase SPM products, but can consider if there's enough interest.
I'd much prefer a solution that lets the library consumer decide like CocoaPods's use_frameworks! and use_frameworks! :linkage => :static alternatives.

Right - I don't know why control is placed at the point of the author rather than the consumer, but I guess there must be some reason for it to be like that.

Given Apple's announcements around mergeable libraries at WWDC 23 and associated runtime speedups for dynamic libraries, let's consider switching our binary distribution builds to dynamic libraries in Firebase 11.

I'm curious if this would include the transitive Google dependencies or other Google frameworks - currently GoogleAppMeasurement is a transitive dependency for FirebaseAnalytics and GoogleMobileAds, so we're getting duplicate symbol warnings when trying to use FirebaseAnalytics from one target (the main app) and with GoogleMobileAds used by another target (our own Advertising wrapper).

Hi everyone, the upcoming Firebase 11 release will make the transition from using static XCFrameworks to dynamic XCFrameworks. I'm marking this as closed ahead of Firebase 11.

@ncooke3 @paulb777  If we use the new dynamically linked Firestore SDK for a visionOS app, will we still need to execute open --env FIREBASE_SOURCE_FIRESTORE path/to/monorepo.xcworkspace to open our project? Or will this no longer be required?

@ncooke3 @paulb777  thanks for taking time in your schedule, just 3 short questions

will dynamically linked swift Firestore module be available with Swift Package Manager?
will visionOS be supported for the dynamically linked Firestore module?
will a dynamically linked Firestore module increase build times via Xcode? (currently by adding just Firestore module it often takes 30min build time on my macbook air)
What's the estimated time of arrival of v11?

Hi everyone, I'm reopening this issue as dynamic library support was pulled from Firebase 11. Swift Package Manager's support of binary targets is limited and ultimately does not allow a binary target (vending a dynamic XCFramework) to depend on source targets. There is some related discussion with respect to dylibs and SPM in this thread: https://forums.swift.org/t/swiftpm-binary-target-with-sub-dependencies/40197/28
I'll be working on filing a Feedback with Apple to hopefully see broader support for our use case. For those using other distribution channels like Carthage or the Firebase zip (which are more flexible than SPM), I recommend filing an issue and upvoting accordingly.

@ncooke3 Thanks for the update. Did you see the post where Jeremy David Giesbrecht mentions that SwiftPM issues should rather be reported at the official Swift Github? → https://github.com/swiftlang/swift/issues

No. SwiftPM is part of the open‐source Swift project, so bug reports for it belong at bugs.swift.org.


Using previous command (arrow up) will not show the last sent autofill command, and wont keep args

So there's two things, if it's an auto-fill command, it doesn't seem to get added to the previous command list. Which is a common behaviour in Linux and most consoles, afaik. Also, the previous command wont keep it's arguments, which is also the expected behaviour.
I tried playing around with the code a bit, but for things like that, I don't understand the architecture enough to fix things like this.
Happy to see the project is still maintained a bit, cause it's great overall, I've waited way too long to add something like this to my project!

Also, the previous command wont keep it's arguments, which is also the expected behaviour.

Fix in Dev branch https://github.com/anarkila/DeveloperConsole/commit/696a92e3b3c4069d9d32d256108324ace313df12

if it's an auto-fill command, it doesn't seem to get added to the previous command list. Which is a common behaviour in Linux and most consoles, afaik.

Added new option to allow keeping track of duplicate commands. Default behaviour is false, same type of behaviour as in most other consoles https://github.com/anarkila/DeveloperConsole/commit/5de8f8f67bc605d3cb4acf61541cfe5d22339789

Default behaviour is false, same type of behaviour as in most other consoles
Tested with your new changes and things feel mostly normal now (without the duplication thing). The issue is not with duplication but that if you use arrow up to get the previous command, and then do it again, the command shown is another one.

Example:
'help'
'a console command'
pressing arrow up and then enter on 'a console command'
pressing arrow up again
it will show 'help' instead of 'a console command'
expected behaviour would be seeing 'a console command' but without duplication
so it might just have to do with the order?

I pushed two new commits https://github.com/anarkila/DeveloperConsole/commit/4c7f972ed1f30a348e74eb098719864d60359ab6 https://github.com/anarkila/DeveloperConsole/commit/5b9a74102be55102ddef1c098481259d0653ea77 to Dev branch to fix this. It was indeed ordering issue.
Also now there's option to keep track of failed/non-existing commands just like cmd/terminal does. This behaviour is on by default.


Caution during backend request

Point number 2 in Remedy: https://bithyve-workspace.slack.com/archives/C05BRPVQLBB/p1702274123973099?thread_ts=1702272778.487649&cid=C05BRPVQLBB

Closing this issue as discussed with dev.


feat(frontend): support visualization for multi-GPU selection

Closes #
📑 Description
support visualization for multi-GPU selection

✅ Checks

[x] My pull request adheres to the code style of this project
[x] My code requires changes to the documentation
[x] I have updated the documentation as required
[x] All the tests have passed
[x] Branch name follows type/descript (e.g. feature/add-llm-agents)
[x] Ready for code review

ℹ Additional Information
Due to some data being too large or too small, they may be hidden in the chart. To enhance visualization and analysis, users can toggle the visibility of specific data segments by interacting with the corresponding legend elements.

LGTM!


feat(entoas): Support RequestGroups to determine what fields to serialize for the requestBody

If a better way to do it is available, feel free to let me know 😄

Do note: using RequestGroups on edges breaks ogent: https://github.com/ariga/ogent/blob/main/template/update.tmpl#L17
This is due to ogent assuming that all edges are present always, which they wont be anymore.


Interferes with Dash snippet expansion

This is related to https://github.com/aahung/Unshaky/issues/54, feel free to close it and handle it as a duplicate.
Dash sometimes relies on sending keystroke events repeatedly when expanding snippets. These events are only backspaces and arrow keys.
When these events happen, the pasteboard has the "org.nspasteboard.TransientType" maker (see http://nspasteboard.org). Could you maybe check the pasteboard for this marker and disable Unshaky temporarily while that marker is present?
Alternatively, could you think of any way I could prevent Unshaky from dropping my events? Or maybe just check if Dash is installed and show a warning that Dash snippet expansion might not work when the user enables Unshaky for the arrow and/or backspace keys.

Hey @Kapeli thanks for the insight related to #54. Can you elaborate it a little more? When you trigger the expansion, does Dash send N * backspaces and simulate the typing of another string very quickly? When is the pasteboard set with "org.nspasteboard.TransientType" maker? And will the marker be deleted when expansion complete?

When you trigger the expansion, does Dash send N * backspaces and simulate the typing of another string very quickly?

Dash only sends backspaces and arrow keys. It doesn't simulate typing the string. This only happens in non-accessible apps (e.g. Sublime Text). In accessible apps snippet expansion doesn't require any key presses.

When is the pasteboard set with "org.nspasteboard.TransientType" maker? And will the marker be deleted when expansion complete?

The marker is set right before Dash starts expanding the snippet and gets deleted after expansion completes. You can also set it up so that you only disable Unshaky for ~2-3 seconds of detecting the pasteboard marker, since expansion doesn't take too long.

@Kapeli I think it is feasible. I looked around and there does not seem to be a passive way to detect the occurrence of such marker.

Unfortunately the only available method is by polling (booo!). - https://stackoverflow.com/a/5033480/2361752

And another workaround is when Unshaky is about to dismiss a key, it checks the pasteboard. But it will have a hit on CPU. Do you think we can build a channel, and when Dash is going to expand something, to disable Unshaky temporarily? (e.g., let Unshaky handle some URL)

@Kapeli I also have another idea. I just wonder if it is possible to send the key event with a different keyboardType other than 58/59, then it is very easy for Unshaky to whitelist Dash.
https://github.com/aahung/Unshaky/blob/master/Unshaky/ShakyPressPreventer.m#L105

That would be great and easy to add on my end. Any idea what keyboard type should I use? They don't seem to be documented anywhere.

@Kapeli Can you give me some sample codes that send those keyboard events? so that I can play with it.

@Kapeli if you are using CGEventCreateKeyboardEvent() to create keyboard event, you can use
setIntegerValueField(_:value:) to set kCGKeyboardEventKeyboardType to something other than 58 or 59.

Yep, I'm using CGEventCreateKeyboardEvent. I was asking what I should set kCGKeyboardEventKeyboardType to, since the actual values aren't documented anywhere. I'll experiment with it.

Oh. I didn’t find any documents either. 58 is for 16-17 and 59 is 2018 models according to users’ reports

@Kapeli If Dash sends all those events within 5ms, v0.5.0 will ignore them. Maybe it is enough to resolve the conflict.

@Kapeli does the new version have conflict with Dash?

I'm able to replicate the issue with Unshaky 0.5.2. Seems to be the same as 0.4.8.

@Kapeli
I download Dash and experimented myself, it looks like Dash sent "Delete" keys ~10ms after another. And the keyboardType is set to "58" on my MacBook Pro 2016. Wonder whether you have a sleep-for-10ms between two DELETE events? When I increase the threshold (mentioned above) to 15ms, Dash's expansion works 100% of the time.
1556538952.332929 Key( 46|  2|             D|         0|200) E(10)
1556538952.340509 Key( 46|  0|             A|         0|200) E(11)
1556538952.344524 Key( 58| 51|        Delete|         0|200) E(10)
1556538952.344707 Key( 58| 51|        Delete|         0|200) E(11)
1556538952.357897 Key( 58| 51|        Delete|         0|200) E(10) DISMISSED
1556538952.358221 Key( 58| 51|        Delete|         0|200) E(11) DISMISSED
1556538952.365654 Key( 58| 51|        Delete|         0|200) E(10) DISMISSED
1556538952.366060 Key( 58| 51|        Delete|         0|200) E(11) DISMISSED
1556538952.380290 Key( 46|  1|             S|         0|200) E(11)
1556538952.380475 Key( 58|  9|             V|   1048576|200) E(10)
1556538952.380620 Key( 58|  9|             V|   1048576|200) E(11)
1556538952.444605 Key( 46|  2|             D|         0|200) E(11)

Yes, I have a delay between events. It's needed by some apps.
I'll experiment with setting a different keyboardType for the next Dash update. Not sure when I'll get to it though.


Request to take Dracula responsibility

Hello,
I'm one of the maintainers of the vim Dracula theme. I'm curious if I'd be able to take the Dracula theme off your hands here and implement it in the autoload directory of our plugin?
Reason is exclusively for uniformity between all UI elements (we currently maintain themes for airline as well).
Thanks, let me know! :+1:

Okay. I think I'm a bit scary for the support cost but maybe ok. The theme will be dropped off from the support of this repo and the screenshot will be removed as well.
I have to mention  @adamalbrecht who contributed to the initial code of the theme in #195. What do you think?

Great, thanks so much 😊
I'll be sure to credit @adamalbrecht for his work... When I get around to commiting the changes over, I'll even do a shared commit so he gets credit in the git history as well.
I'll chime back here after that happens 👍

That all sounds good to me 👍

@itchyny https://github.com/dracula/vim/pull/72

Merged in dracula/vim@dc8073cd13d149be0578a5b5e36eaedef0a9ad5a

I removed the theme from this repository. Please confirm.

It's live in the vim theme: https://github.com/dracula/vim/blob/master/autoload/lightline/colorscheme/Dracula.vim
Great teamwork!

Thank you.


Directly run a module with relative imports inside a package

The python interpreter got the -m option which allows to directly run a module inside a package .
Would be great if PTVS implemented the same so that we can just click on any file inside a package and run/debug it directly.
startapp.py
pkg/
  __init__.py
  components/
    core.py
    __init__.py
  tests/
    core_test.py
    __init__.py

To give a quick example. Let's say we want to run core.py. In PTVS I have to set startapp.py as my start-up script which then in turn imports pkg.components and then runs core.py.
But on the command line with "python -m pkg.components.core" it can be run directly.
So wouldn't it be great if PTVS supported this as well so we don't get anymore "ValueError: Attempted relative import in non-package" errors?
Thanks!
Patrick

You can right-click any file in Solution Explorer or in an open editor and select "Start with debugging" or "Start without debugging" (see Debugging without a project). Does that meet your needs?

That doesn't work as I gives you the relative import error since it's
running the file directly without the-m option
On Jul 26, 2016 8:49 AM, "Steve Dower"<EMAIL_ADDRESS>wrote:

You can right-click any file in Solution Explorer or in an open editor and
select "Start with debugging" or "Start without debugging" (see Debugging
without a project
https://github.com/Microsoft/PTVS/wiki/Debugging#debugging-without-a-project).
Does that meet your needs?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/PTVS/issues/1474#issuecomment-235311560,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAuUG_pfGujAbNxpwuoevOvgMKZaGXojks5qZixRgaJpZM4JUyS-
.

Ah, good to know. I think we should just fix those commands so that relative imports work, without adding an extra option (at least in cases where we can determine a full module name from one of the search paths).

Totally agreed. It should just be implicit using the same commands.
So if the module being executed is inside a package and the solution root
folder is part of the pythonpath then execute the module via the -m option
using the root as the working directory.
If not just executed it the normal way.
Thanks!
Patrick
On Jul 26, 2016 9:40 AM, "Steve Dower"<EMAIL_ADDRESS>wrote:

Ah, good to know. I think we should just fix those commands so that
relative imports work, without adding an extra option (at least in cases
where we can determine a full module name from one of the search paths).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/PTVS/issues/1474#issuecomment-235327980,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAuUG44S3ZGyS3z3i_ta2XczpEqhZ49sks5qZjh2gaJpZM4JUyS-
.

Hi,
Do you have an ETA for this improvement ?
Python 3 forces usage of a new standard notation (https://www.python.org/dev/peps/pep-0328/).
We cannot use PTVS in this case.
Regards,
Bertrand

@greazer why was this closed without a comment?


Update capture-fullpage-of-website extension

Description

Update dependencies & make sure chromium is installed (npm postinstall) (fix #11870, #12149)
Add setting for Output Directory

Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

@Coun1er pinging you one last time 🙂

@pernielsentikaer I'm thinking @Coun1er is inactive, when looking at his Github activity...

Hey @j3lte it seems to be the case, yes. It looks good to me, I will be merging this.


ways to format the output data

Currently, when I type gcalcli agenda I get this output
Fri Jun 07   7:00am  appointment1
             9:15am  appointment2
             10:15am appointment3
             2:30pm  appointment4
             3:30pm  appointment5
             3:30pm  appointment6
             4:15pm  appointment7
             5:00pm  appointment8
             5:30pm  appointment9

is there an option to show the output like this?

My target is to get the date, time and phone number (which is always in the title of the event) and using an API I will sent an SMS reminder 24 hours and 1 hour before the appointment.

I think that --tsv will get you to where you want to go.

that's great, thanks!


Paper

Thanks to @stevepny @tse-chunchen and @japlatt for offline comments

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 96.20%. Comparing base (ef2d4d2) to head (861306d).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #72   +/-   ##
=======================================
  Coverage   96.20%   96.20%
=======================================
  Files          11       11
  Lines        1029     1029
=======================================
  Hits          990      990
  Misses         39       39

Flag
Coverage Δ

unittests
96.20% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


1.2.0; Regex in a class variable causes a compile error

Assigning a regex to a class variable causes a compiler error:
class Foo
  @@any_regexp = /whatever/
end

Module validation failed: inlinable function call in a function with debug info must have a !dbg location
  call void @"~Foo::any_regexp:init"()
 (Exception)
  from /crystal/src/int.cr:541:9 in 'finish'
  from /crystal/src/compiler/crystal/codegen/codegen.cr:69:7 in 'codegen'
  from /crystal/src/compiler/crystal/compiler.cr:169:16 in 'compile'
  from /crystal/src/compiler/crystal/command.cr:210:5 in 'run_command'
  from /crystal/src/compiler/crystal/command.cr:117:7 in 'run'
  from /crystal/src/compiler/crystal.cr:11:1 in '__crystal_main'
  from /crystal/src/crystal/main.cr:110:5 in 'main'
  from src/env/__libc_start_main.c:94:2 in 'libc_start_main_stage2'
Error: you've found a bug in the Crystal compiler. Please open an issue, including source code that will allow us to reproduce the bug: https://github.com/crystal-lang/crystal/issues

Most likely introduced in https://github.com/crystal-lang/crystal/pull/10951


Tagging Releases

Can we please get a release tagged on the latest commit to master? SPM packages that use this one as a dependency are unable to be pulled via their own release tags because of the unstable inclusion of untagged packages.

face same issue with live device mode, we can perfectly run in iOS simulator

I ended up migrating to auth0/SimpleKeychain

func getPhrase() -> String? {
    var unencrypted: String?
    do {
        guard let encrypted = keychain["userSeedPhrase"] else {
            print("Error: Encrypted phrase not found in keychain")
            return nil
        }
        guard let encryptionKey = getPassword() else {
            print("Error: Encryption key not available")
            return nil
        }
        print("encrypted...\(encrypted)")
        unencrypted = try encryption.decryptMessage (encryptedMessage: encrypted, encryptionKey: encryptionKey)
    } catch {
        print("Decryption Error: \(error.localizedDescription)")
    }
    return unencrypted
}

This function not working on live device but running perfectly on simulator, so please give answer of this function

func getPhrase() -> String? {

    var unencrypted: String?

    do {

        guard let encrypted = keychain["userSeedPhrase"] else {

            print("Error: Encrypted phrase not found in keychain")

            return nil

        }

        guard let encryptionKey = getPassword() else {

            print("Error: Encryption key not available")

            return nil

        }

        print("encrypted...\(encrypted)")

        unencrypted = try encryption.decryptMessage (encryptedMessage: encrypted, encryptionKey: encryptionKey)

    } catch {

        print("Decryption Error: \(error.localizedDescription)")

    }

    return unencrypted

}

This function not working on live device but running perfectly on simulator, so please give answer of this function

Create a new issue.


LocalReporting Jsreport  azure Web App

I am hosting a .net core app in azure web app.
services.AddJsReport(new LocalReporting().UseBinary(JsReportBinary.GetBinary()).AsUtility().Create());
HttpContext.JsReportFeature().Recipe(Recipe.ChromePdf,)
.OnAfterRender((r) => HttpContext.Response.Headers["Content-Disposition"] =filename);
i want to download the report. locally it works but from web app it just render as html report.

Please share the full code of the controller method.

[MiddlewareFilter(typeof(JsReportPipeline))]
public async Task Download(string id, string status, string type="PDF")
{
ViewBag.Status = status;
        var filename=$"attachment; filename=\"Customer List_{DateTime.Now.ToString("MM-dd-yy-HH-MM-ss") }.pdf\"";
        HttpContext.JsReportFeature().Recipe(Recipe.ChromePdf)
            .OnAfterRender((r) => HttpContext.Response.Headers["Content-Disposition"] =filename);
        return View("Customer", await _customerService.GetCustomerSearchAsync(new ViewModel.CustomerFilter() { CustomerTypeId=id }));
    }

Hm, this looks good.
I don't see any reason why it should return something different in azure web app.
Do you get this problem just in this particular case or is it general?

is there any limitation in using azure web app. i have seen there was a issue reported for the same.

this means at minimum  i have  to have linux container running

Yes.
However the chrome should just fail on windows. It is strange that it is returning html for you.

A lot has changed in the jsreport v3 sdk, please test it there and come back if you have still troubles.


Documentation updates

Hey if you don't mind, I'd like to start sending out some PRs to either update/add some of the documentation.
For what I've been doing this week I'd like to polish the following parts

DOM and Move region content into the DOM parts.
I'd like to center a bit more on three particular topics: elements, attributes, and events. I'd like to also include the region explanation right where we have a heading called "dynamic content" so we don't need to visit two places before figuring out what are the component parts. I'd also like to move the StyleBuilder examples to the Style document just for consistency. An introduction to FSharp.Data.Adaptive here would also be ideal as it would serve to guide users into adaptive programming.

Classes vs Functions.
Here I'd like to make the distinction about when to use just classes and when just functions, many F# folks don't like the idea of classes and if there are classes examples in the documentation, they might get the idea that classes are required to work when they're mostly not.

Plain Blazor and F#
I think this is in the FAQ but I believe this is an important bit of information it should have its own section about how to interoperate with plain blazor components from F# and how to make F# components that can be consumed from blazor.

Remove the MudBlazor mentions in the documentation examples and explain how to add bindings to other libraries.
I think MudBlazor is a fine library but for folks outside of the blazor community it can be hard to understand what MudTable'() is and where does it come from, I think bindings by themselves require their own section to explain what they are and how to consume them, the rest of the documentation should have plain html/blazor dsl only to avoid confusion.

List the family of libraries in the first page (Fun.Blazor.Reactive, Fun.Blazor.Elmish, etc etc)
I think this is important for other users just to know what they can have out of the box with Fun.Blazor while the current documentation has some information about that, it doesn't really mention that there are packages part of the Fun.Blazor family so it would be nice if those were discoverable on the landing page of the docs.

Routing Blazor-like vs Giraffe-like
Add a little bit more of information of when and why you'd like to blazor-like/giraffe-like and if there are any downsides to any of those approaches

That's some of the feedback I could gather this week that I've been using Fun.Blazor a little bit more.
Please, let me know if this sits well with you or if you'd like to take a different approach.

@AngelMunoz thanks for your time and contribute. All those topics makes sense tome.
For PR https://github.com/slaveOftime/Fun.Blazor/pull/54, I added some comments. Just do not want to freak people out at the beginning 😂


Implement Docker best practices - Round 3

Opening for @electrocucaracha given previous revert...
Problem
Hadolint is a tool which analyzes Dockerfile and provides applicable best practices.  Version pinning reduce failures due to unanticipated changes in required packages. The CHIP integration Docker images don't have version pinning implemented.
Summary of Changes
These changes implement version pinning best practice as well as reduce some instructions like using WORKDIR Docker  and --no-install-recommends apt instructions

I'll fix this, this week. I had some suggestions in the previous PR to make this more architecture agnostic, which is failing here. Please hold off on merging. Marking as draft.


Set Multiple instances on the same page with Timezone Aware

I need to set jQuery.countdown Multiple instances on the same page with Timezone Aware using MomentJS as per the documentation in the website:
So far I have this:

But it is not working. I don't think the follwing line is overall correct:
finalDate = moment.tz(finalDate, "Europe/London");
MomentJS is installed properly and if I remove the one line above everything works but without timezone awareness.
Could you provide with some suggestions please? Please help. Thank you!

To whoever needs it, I was missing this portion ".toDate()" in the following line:
jQuerythis.countdown(finalDate.toDate(), function(event) {
So now everything works beautifully!
jQuery.countdown Multiple instances on the same page with Timezone Aware (MomentJS).
Thanks to everybody that helped!


⚠ Bofrost.de has degraded performance

In cb0376c, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 2192 ms

Resolved: Bofrost.de performance has improved in ca70532 after 8 minutes.


BloomRPC connection issue

Can't connect to the server using BloomRPC, is there any plan to support it ?
And if you have any guidelines on using postman or a node to test the methods please let me know.

The example server is a websocket server, because this is the only protocol supported by all webbrowsers for bidirectional streaming. That is, our example server does not accept gRPC connections, but for WebSocket connections that wrap gRPC. In other words, gRPC is tunneled through a WebSocket. That's why BloomRPC client can't connect to the example server.
You can add another listener on a different port to accept real gRPC connections as shown in the attached patch. I hope this helps.
diff --git a/examples/helloworld/src/server.rs b/examples/helloworld/src/server.rs
index a305dba..2caa0ba 100644
--- a/examples/helloworld/src/server.rs
+++ b/examples/helloworld/src/server.rs
@@ -32,9 +32,9 @@ impl Greeter for MyGreeter {

 #[tokio::main]
 async fn main() -> Result<(), Box<dyn std::error::Error>> {
-    let addr = "<IP_ADDRESS>:3012";
-
-    let listener = TcpListener::bind(addr).await?;
+    // websocket listener
+    let websocket_addr = "<IP_ADDRESS>:3012";
+    let listener = TcpListener::bind(websocket_addr).await?;
     let listener_stream = TcpListenerStream::new(listener);
     let incoming = listener_stream.then(|connection| async {
         match connection {
@@ -46,14 +46,33 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
         }
     });

-    let greeter = MyGreeter::default();
+    let websocket_runner = tokio::spawn(
+        Server::builder()
+            .add_service(GreeterServer::new(MyGreeter::default()))
+            .serve_with_incoming(incoming),
+    );
+
+    // gRPC listener
+    let grpc_addr = "<IP_ADDRESS>:3013";
+    let grpc_runner = tokio::spawn(
+        Server::builder()
+            .add_service(GreeterServer::new(MyGreeter::default()))
+            .serve(grpc_addr.parse().unwrap()),
+    );

-    println!("GreeterServer listening on {}", addr);
+    println!(
+        "GreeterServer listening for WebSocket connections on {}",
+        websocket_addr
+    );
+    println!(
+        "GreeterServer listening for gRPC connections on {}",
+        grpc_addr
+    );

-    Server::builder()
-        .add_service(GreeterServer::new(greeter))
-        .serve_with_incoming(incoming)
-        .await?;
+    futures_util::future::select(websocket_runner, grpc_runner)
+        .await
+        .into_inner()
+        .0??;

     Ok(())
 }

The example server is a websocket server, because this is the only protocol supported by all webbrowsers for bidirectional streaming. That is, our example server does not accept gRPC connections, but for WebSocket connections that wrap gRPC. In other words, gRPC is tunneled through a WebSocket. That's why BloomRPC client can't connect to the example server.
You can add another listener on a different port to accept real gRPC connections as shown in the attached patch. I hope this helps.
diff --git a/examples/helloworld/src/server.rs b/examples/helloworld/src/server.rs
index a305dba..2caa0ba 100644
--- a/examples/helloworld/src/server.rs
+++ b/examples/helloworld/src/server.rs
@@ -32,9 +32,9 @@ impl Greeter for MyGreeter {

 #[tokio::main]
 async fn main() -> Result<(), Box<dyn std::error::Error>> {
-    let addr = "<IP_ADDRESS>:3012";
-
-    let listener = TcpListener::bind(addr).await?;
+    // websocket listener
+    let websocket_addr = "<IP_ADDRESS>:3012";
+    let listener = TcpListener::bind(websocket_addr).await?;
     let listener_stream = TcpListenerStream::new(listener);
     let incoming = listener_stream.then(|connection| async {
         match connection {
@@ -46,14 +46,33 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
         }
     });

-    let greeter = MyGreeter::default();
+    let websocket_runner = tokio::spawn(
+        Server::builder()
+            .add_service(GreeterServer::new(MyGreeter::default()))
+            .serve_with_incoming(incoming),
+    );
+
+    // gRPC listener
+    let grpc_addr = "<IP_ADDRESS>:3013";
+    let grpc_runner = tokio::spawn(
+        Server::builder()
+            .add_service(GreeterServer::new(MyGreeter::default()))
+            .serve(grpc_addr.parse().unwrap()),
+    );

-    println!("GreeterServer listening on {}", addr);
+    println!(
+        "GreeterServer listening for WebSocket connections on {}",
+        websocket_addr
+    );
+    println!(
+        "GreeterServer listening for gRPC connections on {}",
+        grpc_addr
+    );

-    Server::builder()
-        .add_service(GreeterServer::new(greeter))
-        .serve_with_incoming(incoming)
-        .await?;
+    futures_util::future::select(websocket_runner, grpc_runner)
+        .await
+        .into_inner()
+        .0??;

     Ok(())
 }

Yes, It helped a lot, also if you have any guidelines on how to connect with the browser client-side or react apps please share them with me.

Yes, It helped a lot, also if you have any guidelines on how to connect with the browser client-side or react apps please share them with me.

The browser client side is shown in the client example. See examples/wasm-client/index.html. The say_hello function can accept a URL to connect to as parameter.


Added CLI error troubleshooting

PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /home/runner/work/ExpressionEngine-Private/ExpressionEngine-Private/system/ee/legacy/database/drivers/mysqli/mysqli_connection.php:78 error on MAMP installs

Agreed- and tweaked.  Now it's more 'double check it'- I think I actually changed my port for a reason.  That may/may not always be the case?


Errors when typing too quickly with nelua_lsp (MethodNotFound)

Description
When using the nelua lsp with Raylib.nelua I'm getting error message while editing. Please let me know if I should be reporting this elsewhere, or if there are more steps I can take to help debug the issue.
Neovim version
NVIM v0.10.0-dev-dc9f7b8
Build type: RelWithDebInfo
LuaJIT 2.1.1700008891
Nvim-lspconfig version
4834708
Operating system and version
Manjaro Linux
Affected language servers
nelua-lsp
Steps to reproduce
the file I'm editing contains simply:
require 'raylib'
rl.

The error happens right after typing 'rl.', and only seems to happen if I type it quickly, if i type slowly character by character I don't get an error.
Actual behavior
When using the nelua lsp with Raylib.nelua I'm getting the following error:
LSP[nelua_lsp]: Error INVALID_SERVER_MESSAGE: {
  error = {
    code = -32601,
    message = "MethodNotFound"
  },
  jsonrpc = "2.0"
}

Expected behavior
I expected no errors popping up
Minimal config
require'lspconfig'.nelua_lsp.setup {
        cmd = { "nelua", "-L", "/home/kitty/programs/nelua-lsp/", "--script", "/home/kitty/programs/nelua-lsp/nelua-lsp.lua" },
      }

LSP log
https://gist.github.com/snowkittykira/31d1d884ebf4916a0f7ae5cc11797bd5

LSP[nelua_lsp]: Error INVALID_SERVER_MESSAGE: {

that comes from Nvim lsp: https://github.com/neovim/neovim/blob/cdc8bacc7945da816738e330555fa85d3ffffd56/runtime/lua/vim/lsp/rpc.lua#L480-L482
the previous message in your log is :
[ERROR][2023-11-17 10:43:08] .../vim/lsp/rpc.lua:675	"rpc"
"/usr/bin/nelua"	"stderr"	'LSP - textDocument/didChange\nLSP
- $/cancelRequest\nerror: unsupported method "nil"\nLSP
- textDocument/didChange\nLSP - textDocument/completion\n'

thank you, in that case should I report it as an issue to the neovim project instead?

I think so. Transferred the issue.


Add cargo fmt to github-actions config

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

That's a good idea. I should probably at a precommit hook as well.


Feature/#31launching parser

Created a function returns Argument Parser to be used at launching.

close #31


User config support

Add the ability to read config from [src/]twind.config.[ts/js]. I'll see if I can make this work myself 😄

Definitly! I have something like https://github.com/tw-in-js/twind-cli/blob/main/src/run.ts#L20 integrated. I hope to publish my work soon.

Suppport for twind.config.[ts/js] in the project folder is includes in the new release. Will add {src,public}/twind.config.[ts/js] in the next days.

This should be fixed with 0.2.2: [config/,src/,public/]twind.config.{ts,js,cjs,mjs}

Hello, can this issue now be closed? :)


Added developer-setup target to Makefile to install protoc

fixes https://github.com/campoy/justforfunc/issues/21

I signed it!

@campoy could I please get a +1 ?

this is quite an interesting change but I do not understand very well what's the reasoning behind it
This should work only for mac, right?
What about linux or windows? do you think you could add that too?

@campoy true this is a first step to at least show that you need to install protoc and here is one for mac, someone can add a target for linux and windows also. I could add maybe in another PR if I setup a windows and linux VM. if thats okay with you.

I think I'd rather document this on the README.md and explain they should install protoc however they want, rather than hiding it in the Makefile.
Also, what if you don't use brew?

fair enough :)


Optimize GDScript expression with constants in the parser

Now it treats const identifiers as they were literals.
Note that I only removed the if (p_parsing constant) but the indent change makes Git think there are more changes.
Fix  #7047

Make sure to test this PR on a multitude of projects, since last time I tried changing the constant parsing code, #7412 happened.

Oh, I need to test this with autoloads, that's what gives troubles.

Well, #7412 doesn't happen with this, and with the project from #5497 I don't see any trouble (not sure what was that issue though, as it doesn't have any descriptions).

Actually, I think this could be better if done by the compiler, or a second pass in the parser (which I'll add for the static typing).


How to get conversation is in sent items or inbox?

gmail.observe.on('view_thread', function (obj) {
});

how to know the currently opened conversation is selected from sent items or from inbox inside above method ?
i done it with
if(obj['$el'][0]['baseURI'].indexOf("https://mail.google.com/mail/u/0/#sent/") > -1) {
console.log('inside sent items');
}

check
But is there any dom method?

There is.
This is probably what you're looking for:
https://github.com/KartikTalwar/gmail.js/blob/master/README.md#gmailgetcurrent_page
Next time, please check the readme.


chore: 🤖 add support for fast-forward github action

Description
This adds support for fast forwarding with PR comments
Breaking Changes
NA
JIRA Link
DA-1215
Checklist

[ ] Updated the Readme.md (if required) ?

shouldn't this go into alpha?
I guess its OK now since both are synced atm, but if this gets merged into master, then another alpha PR merge could mess up the linear history requirement.
I know we don't have it enabled on this repo so maybe its OK?

For actions to work in alpha, the action should be present in master first. Then only the workflow gets triggered in other branches.

:tada: This PR is included in version 24.6.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 24.6.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Feature/Cash Flow statement

Are you a current Fivetran customer?

What change(s) does this PR introduce?

Did you update the CHANGELOG?

[x] Yes

Does this PR introduce a breaking change?

[ ] Yes (please provide breaking change details below.)
[x] No  (please provide an explanation as to how the change is non-breaking below.)

Did you update the dbt_project.yml files with the version upgrade (please leverage standard semantic versioning)? (In both your main project and integration_tests)

[ ] Yes (Will update version on feature/quickbooks-updates-project

Is this PR in response to a previously created Bug or Feature Request

[x] Yes, Issue/Feature [#31]
[ ] No

How did you test the PR changes?

[x] BuildKite
[ ] Local (please provide additional testing details below)

Select which warehouse(s) were used to test the PR

[x] BigQuery
[x] Redshift
[x] Snowflake
[x] Postgres
[ ] Databricks
[ ] Other (provide details below)

Provide an emoji that best describes your current mood

🕵
Feedback
We are so excited you decided to contribute to the Fivetran community dbt package! We continue to work to improve the packages and would greatly appreciate your feedback on our existing dbt packages or what you'd like to see next.

Member

Changes applied!

@fivetran-avinash this is looking great and we are so close to closing it out!
I have a few small suggestions and comments included below. Additionally, one last thought I had was the location of the example seed files are pretty hard to find. I know I requested they be put in the integration_tests seeds folder, but as I was working with the package it was a very confusing experience (especially since we have so many other seed files).
What if we instead created a new folder example_ordinal_seeds (or something like that) in the root directory of the package and put the example seeds there. This way it is very clear to customers where the examples are, and when you follow a hyper link it doesn't take you into the deep recesses of the package. Let me know your thoughts!

@fivetran-joemarkiewicz  Changes applied!

Looks great to me!! Thanks for applying all the updates and working with me on the back and forth 😄. Great job @fivetran-avinash

Thanks for all the input @fivetran-joemarkiewicz!


Disable HTTP2 in webhooks

Also bumps golang.org/x/net to v0.17.0
Jira: OSPRH-468

recheck

recheck

recheck
added depends-on

recheck


Create Misc. Chemicals Create for Cargo

Adds a new chemistry crate for cargo to purchase, contains a jug of ethanol, a jug of sugar, and some strange pills. Comes in a plastic crate, not locked as these are both food items. I thought the strange pills would be fun and an interesting way to get some random chems without being too powerful. Adds a little fun to the crate (random / lottery elements = fun)

About the PR

Adds a crate to fill the niche left by the three Block chemistry crates for the molecules of ethanol and sugar.
Why / Balance

This will allow chemistry (or someone else doing chemistry) to obtain the missing two chemical jugs from the chemical block orders. Note it is currently possible without this to buy ChemVend resupply crates with everything in them.

Media

[ ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

no changelog

strange pills?! Ferb, I know what we're gonna do today.

Don't need another gacha crate, especially when it just doubles the maints floorpills.


Prioritize traffic?

I'm having refile in behind a CDN. The thing is that I want to warm up the cache when there isn't that much traffic.  Is there a way to prioritize the traffic from real requests so they always process before an warmup request?

I'm not an expert on CDNs, so I have no idea. You might try asking this on stackoverflow or serverfault.


Mark tree nodes in the Management Classification with hasUnMappedChildren=true

If a node has a path to a Leaf without meeting a Sector on the way. This means that some subtree is not covered in the MC.

so it is true if there is at least one descendant leaf node without a sector, not all? Which means a kingdom would always be flagged if there is some unmapped node (which there probably is always). Thats correct?

There can be a leaf node without a sector - but then that leaf node has to have an ancestor with a sector. For example a family leaf without a sector is OK if the order above has a sector.

that was my understanding of your proposal. But doesnt that mean real high taxa are always marked? Is it useful over flagging the ones that are entirely void, i.e. taxa where all descendants have no sector? And probably expose those in searches too

Superceeded by https://github.com/Sp2000/colplus-backend/issues/321


HDDS-10390. MiniOzoneCluster to support S3G

What changes were proposed in this pull request?
MiniOzoneCluster should support creating S3G instances and provide access to S3G via an AWS S3 client (AWS Java SDK).
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-10390
How was this patch tested?
Added some tests for AWS S3 SDK V1.

@adoroszlai Thanks for checking this out.
Currently the AWS SDK tests are not extensive. We can raise a parent ticket to add more extensive tests (similar to https://github.com/ceph/s3-tests).


Any chance to support Parametric Methods?

With your Aminal example
@virtual fast_func(x::Animal, y::T) where T = error("No default method for score!")

one gets the error: LoadError: invalid function expression: (fast_func(x::Animal, y::T) where T) = begin
The same when overwriting with a Pametric type, for example:
struct Dog{R} <: Animal end
@override fast_func(x::Dog{R}, y::Int) where R  = 2 + y

one gets the error LoadError: invalid function expression: (fast_func(x::Dog{R}, y::Int) where R) = begin

The reason why @override cannot take type parameters is that @override have to provide enough information to create static dispatch. As for @virtual, it may have a chance to support type parameters, but so far it uses the type signature to query "compatible" methods where generics are not allowed.
You can just avoid type parameters:
struct Dog{R} <: Animal end
@override fast_func(x::Dog{R} where R, y::Int)  = 2 + y
# or just
@override fast_func(x::Dog, y::Int)  = 2 + y

Note that non-concrete parameter types might cause performance loss.
If you want to use type parameters, consider the following pattern:
function fast_func(x::Animal, y::T) where T
     fast_func(x, y, T)
end

@virtual function _fast_func(x::Animal, y, T)
     ...
end

Thanks for your quite answer. My use case is a bit more complex. I have a reduced example that I attaching here
using StaticArrays
using BenchmarkTools
using Virtual

const Point3 = SVector{3}
const Vector3 = SVector{3}

abstract type AbstractShape{T<:AbstractFloat} end

struct Box{T<:AbstractFloat} <: AbstractShape{T}
    fDimensions::Vector3{T}
    Box{T}(x,y,z) where T = new((x,y,z))
end
struct Tube{T<:AbstractFloat} <: AbstractShape{T}
    rmin::T
    rmax::T
    z::T
    Tube{T}(rmin, rmax, z) where T = new(rmin, rmax, z)
end
struct Cone{T<:AbstractFloat} <: AbstractShape{T}
    r::T
    z::T
    Cone{T}(r, z) where T = new(r, z)
end
struct BooleanUnion{T<:AbstractFloat, SL<:AbstractShape{T}, SR<:AbstractShape{T}} <: AbstractShape{T}
    left::SL
    right::SR
end
BooleanUnion(left::AbstractShape{T}, right::AbstractShape{T}) where T = BooleanUnion{T,typeof(left),typeof(right)}(left, right)

@virtual fast_inside(s::AbstractShape{Float64}, p::Point3{Float64}) = error("No default method for inside!")
@virtual fast_inside(s::AbstractShape{Float32}, p::Point3{Float32}) = error("No default method for inside!")

@override fast_inside(box::Box{Float64}, point::Point3{Float64}) = inside(box, point)
@override fast_inside(box::Box{Float32}, point::Point3{Float32}) = inside(box, point)
@override fast_inside(tube::Tube{Float64}, point::Point3{Float64}) = inside(tube, point)
@override fast_inside(tube::Tube{Float32}, point::Point3{Float32}) = inside(tube, point)
@override fast_inside(cone::Cone{Float64}, point::Point3{Float64}) = inside(cone, point)
@override fast_inside(cone::Cone{Float32}, point::Point3{Float32}) = inside(cone, point)
@override fast_inside(union::BooleanUnion{Float64, SL, SR} where {SL,SR}, point::Point3{Float64}) = inside(union, point)
@override fast_inside(union::BooleanUnion{Float32, SL, SR} where {SL,SR}, point::Point3{Float32}) = inside(union, point)

#---The real algorithms with papametric methods (ideally I need to keep as they are)
inside(box::Box{T}, point::Point3{T}) where T = maximum(abs.(point) - box.fDimensions) < T(0)
inside(tube::Tube{T}, point::Point3{T}) where T = tube.rmin^2 < point[1]^2+point[2]^2 < tube.rmax^2  && abs(point[3]) < tube.z
inside(cone::Cone{T}, point::Point3{T}) where T = point[1]^2+point[2]^2 <  ((cone.z-point[3])/2cone.z)^2 && abs(point[3]) < cone.z
inside(union::BooleanUnion{T,SL,SR}, point::Point3{T}) where {T,SL,SR} = inside(union.left, point) && inside(union.right, point)

box1 = Box{Float64}(1,2,3)
box2 = Box{Float64}(2,2,2)
tube = Tube{Float64}(1,2,3)
cone = Cone{Float64}(2,3)

const samples = (box1, box2, tube, cone, BooleanUnion(box1,tube), BooleanUnion(box2,tube), BooleanUnion(box1,box2) )
shapes = AbstractShape{Float64}[samples[rand(1:length(samples))] for i = 1:100]

const Shape{T} = Union{Box{T}, Tube{T}, Cone{T}, BooleanUnion{T}} where T<:AbstractFloat
ushapes = Shape{Float64}[samples[rand(1:length(samples))] for i = 1:100]

function inside_score(inside_func, point::Point3{T}, shapes::Vector{S}) where {T,S}
    s = 0
    for shape in shapes
        inside_func(shape, point) && ( s += 1)
    end
    return s
end

point = Point3{Float64}(0.9,1,1)
@info "fast_inside via Virtual.jl"
@btime inside_score(fast_inside, point, shapes)
@info "original inside with Vector of AbstractShapes"
@btime inside_score(inside, point, shapes)
@info "original inside with Vector of union Shape"
@btime inside_score(inside, point, ushapes)

What I running this code is:
[ Info: fast_inside via Virtual.jl
  5.302 μs (100 allocations: 3.12 KiB)
[ Info: original inside with Vector of AbstractShapes
  5.109 μs (100 allocations: 3.12 KiB)
[ Info: original inside with Vector of union Shape
  19.647 μs (300 allocations: 12.78 KiB)

The Union Shape is what I have been using until now. But it explodes when there are more that 3 shapes.
As you can see I do not manage to improve the performance with respect the dynamic dispatch. Any suggestion?

Yes, in your case, we cannot specify exact parameters for virtual function calls, which causes dynamic call.
This is a bug, but the system can optimize such case:
using StaticArrays
using BenchmarkTools
using Virtual

const Point3 = SVector{3}
const Vector3 = SVector{3}

abstract type AbstractShape{T<:AbstractFloat} end

struct Box{T<:AbstractFloat} <: AbstractShape{T}
    fDimensions::Vector3{T}
    Box{T}(x,y,z) where T = new((x,y,z))
end
struct Tube{T<:AbstractFloat} <: AbstractShape{T}
    rmin::T
    rmax::T
    z::T
    Tube{T}(rmin, rmax, z) where T = new(rmin, rmax, z)
end
struct Cone{T<:AbstractFloat} <: AbstractShape{T}
    r::T
    z::T
    Cone{T}(r, z) where T = new(r, z)
end
struct BooleanUnion{T<:AbstractFloat, SL<:AbstractShape{T}, SR<:AbstractShape{T}} <: AbstractShape{T}
    left::SL
    right::SR
end
BooleanUnion(left::AbstractShape{T}, right::AbstractShape{T}) where T = BooleanUnion{T,typeof(left),typeof(right)}(left, right)

#---The real algorithms with papametric methods (ideally I need to keep as they are)
inside(box::Box{T}, point::Point3{T}) where T = maximum(abs.(point) - box.fDimensions) < T(0)
inside(tube::Tube{T}, point::Point3{T}) where T = tube.rmin^2 < point[1]^2+point[2]^2 < tube.rmax^2  && abs(point[3]) < tube.z
inside(cone::Cone{T}, point::Point3{T}) where T = point[1]^2+point[2]^2 <  ((cone.z-point[3])/2cone.z)^2 && abs(point[3]) < cone.z
inside(union::BooleanUnion{T,SL,SR}, point::Point3{T}) where {T,SL,SR} = inside(union.left, point) && inside(union.right, point)

@virtual fast_inside(s::AbstractShape, p::Point3) = error("No default method for inside!")

@override fast_inside(box::Box{Float64}, point::Point3{Float64}) = inside(box, point)
@override fast_inside(box::Box{Float32}, point::Point3{Float32}) = inside(box, point)
@override fast_inside(tube::Tube{Float64}, point::Point3{Float64}) = inside(tube, point)
@override fast_inside(tube::Tube{Float32}, point::Point3{Float32}) = inside(tube, point)
@override fast_inside(cone::Cone{Float64}, point::Point3{Float64}) = inside(cone, point)
@override fast_inside(cone::Cone{Float32}, point::Point3{Float32}) = inside(cone, point)

struct Wrap{T}
    x :: T
end

function _fast_inside_nodynamic(s_wrap::Wrap{A}, p_wrap::Wrap{B}) where {A, B}
    sym_impl_func = Virtual.find_overrided_methods(Tuple{typeof(fast_inside), AbstractShape, Point3})
    Virtual.apply_switch(
        sym_impl_func, fast_inside,
            Virtual.gen_wrap(AbstractShape, s_wrap.x),
            Virtual.gen_wrap(AbstractShape, p_wrap.x))
end

fast_inside_nodynamic(s, p) = _fast_inside_nodynamic(Wrap{AbstractShape}(s), Wrap{Point3}(p))

box1 = Box{Float64}(1,2,3)
box2 = Box{Float64}(2,2,2)
tube = Tube{Float64}(1,2,3)
cone = Cone{Float64}(2,3)

const samples = (box1, box2, tube, cone ) #, BooleanUnion(box1,tube), BooleanUnion(box2,tube), BooleanUnion(box1,box2) )
const Shape{T} = Union{Box{T}, Tube{T}, Cone{T} #=, BooleanUnion{T}=# } where T<:AbstractFloat
const shapes = AbstractShape{Float64}[samples[rand(1:length(samples))] for i = 1:100]
const ushapes = Shape{Float64}[samples[rand(1:length(samples))] for i = 1:100]

function inside_score(inside_func, point::Point3{T}, shapes::Vector{S}) where {T,S}
    s = 0
    for shape in shapes
        inside_func(shape, point) && ( s += 1)
    end
    return s
end

#using InteractiveUtils
point = Point3{Float64}(0.9,1,1)

@info "fast_inside via Virtual.jl"
# println()
# display(@code_typed inside_score(fast_inside_nodynamic, point, shapes))
# println()
# display(code_typed(_fast_inside_nodynamic, (Wrap{AbstractShape}, Wrap{Point3})))
# println()
@btime inside_score(fast_inside_nodynamic, point, shapes)
@info "original inside with Vector of AbstractShapes"
@btime inside_score(inside, point, shapes)
@info "original inside with Vector of union Shape"
@btime inside_score(inside, point, ushapes)

produces:
[ Info: fast_inside via Virtual.jl
 930.769 ns (100 allocations: 3.12 KiB)
[ Info: original inside with Vector of AbstractShapes
  3.263 μs (100 allocations: 3.12 KiB)
[ Info: original inside with Vector of union Shape
  307.623 ns (0 allocations: 0 bytes)

This should also work when the union types are more than 3.

Thanks very much. This is getting more promising.
I noticed that you have removed the two overwrites
@override fast_inside(union::BooleanUnion{Float64, SL, SR} where {SL,SR}, point::Point3{Float64}) = inside(union, point)
@override fast_inside(union::BooleanUnion{Float32, SL, SR} where {SL,SR}, point::Point3{Float32}) = inside(union, point)

If I put them back the performance improvement is not factors anymore.
[ Info: fast_inside via Virtual.jl
  2.374 μs (0 allocations: 0 bytes)
[ Info: original inside with Vector of AbstractShapes
  3.120 μs (100 allocations: 3.12 KiB)
[ Info: original inside with Vector of union Shape
  282.230 ns (0 allocations: 0 bytes)

Putting back the BooleanUnion instances in the example I do not get any improvement, all the contrary
[ Info: fast_inside via Virtual.jl
  22.212 μs (132 allocations: 6.88 KiB)
[ Info: original inside with Vector of AbstractShapes
  4.819 μs (100 allocations: 3.12 KiB)
[ Info: original inside with Vector of union Shape
  18.894 μs (300 allocations: 12.94 KiB)

I learn with the discussion  that Union splitting is very critical on the way the container is iterated. Just changing the inside_score function  with
function inside_score(inside_func, point::Point3{T}, shapes::Vector{S}) where {T,S}
    s = 0
    for i in eachindex(shapes)
        inside_func(shapes[i], point) && ( s += 1)
    end
    return s
end

I recover the good performance of Union
[ Info: fast_inside via Virtual.jl
  16.641 μs (102 allocations: 5.31 KiB)
[ Info: original inside with Vector of AbstractShapes
  4.778 μs (100 allocations: 3.12 KiB)
[ Info: original inside with Vector of union Shape
  1.397 μs (42 allocations: 1.31 KiB)

However, I will probably hit a limit when exceeding a number of types in the Union.

That's true. Checking isa for a complex generic type is too heavy, and such cases do not fit using Virtual.jl.


fix: explicitly fetch status subresource due to inconsistencies

Towards https://github.com/external-secrets/external-secrets/issues/3604:
It appears, that the status subresource is slightly inconsistent. This leads to unexpected behaviour, where a secret is reconciled where it shouldn't. This is problematic in combination with a generator resource and usage of the immutable field on the secret.
Proof of work
To reproduce the problem, run the following commands. It is a race condition!:
while true; do
k apply -f ./issue-3604.yaml >/dev/null; sleep 1;
k get es;
k delete -f ./issue-3604 > /dev/null
done

Once you see SecretSyncedError you triggered the bug.
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: es-5-test
spec:
  dataFrom:
  - sourceRef:
      generatorRef:
        apiVersion: generators.external-secrets.io/v1alpha1
        kind: Password
        name: password-generator
  refreshInterval: 0m
  target:
    immutable: true
    name: es-5-test
    template:
      data:
        password: '{{ .password }}'
        username: someone
---
apiVersion: generators.external-secrets.io/v1alpha1
kind: Password
metadata:
  name: password-generator
spec:
  allowRepeat: true
  length: 16
  noUpper: false
  symbolCharacters: ~!%^&*()_+-={}|[]\<>?,./

I tested using docker-desktop and it works.
However, the Helm chart will need to be adjusted, the cluster role external-secrets-controller needs to also allow get on externalsecrets/status (see https://github.com/external-secrets/external-secrets/blob/main/deploy/charts/external-secrets/templates/rbac.yaml#L21).

/ok-to-test sha=e6fbb7f


Error "chown: changing ownership of ‘/var/task’: Operation not permitted" when running on Bitbucket Pipelines

Version: 4.2.4
I got the error below in these days when using with Bitbucket Pipelines.
Command line
serverless deploy --stage prod --profile $AWS_PROFILE --verbose --region $AWS_REGION

Result
Serverless: Generated requirements from /opt/atlassian/pipelines/agent/build/PATH_TO_SERVICE/src/client_authorization/requirements.txt in /opt/atlassian/pipelines/agent/build/PATH_TO_SERVICE/.serverless/requirements.txt...
Serverless: Copying from /opt/atlassian/pipelines/agent/build/PATH_TO_SERVICE/.serverless/requirements.txt into /opt/atlassian/pipelines/agent/build/PATH_TO_SERVICE/.serverless/src/client_authorization/requirements.txt ...
Serverless: Installing requirements from /opt/atlassian/pipelines/agent/build/PATH_TO_SERVICE/.serverless/requirements/requirements.txt ...

I think chown on some systems is not allowed. (maybe from this tag? https://github.com/UnitedIncome/serverless-python-requirements/blob/v4.2.0/lib/pip.js )
How can I solve this?
Note: 4.1.1 works well with Bitbucket Pipelines.

The last time I was able to run serverless deploy is Sep 26th at 12:39 UTC
The time when error happened is Sep 28th at 11:45 UTC
But between these 2 timelines, serverless-python-requirements doesn't release new version, so I don't know why the problem happen.

Hmm. Interesting. TAre you specifying a different docker image or a dockerfile? The default docker image should work with those chowns on any system, since they should be getting executed in the docker container.

For me, I don't specify other Docker image or Dockerfile, so lambci/lambda:build-python3.6 is using (for both success and failed build time I mention above).
I checked and there is no new version of lambci/lambda:build-python3.6 released between the timeline I mentioned above, just for your info.

Hmm. Thats odd. Thanks for checking. Is the directory that the source is in in bitbucket pipelines read only and who is it owned by and who are tests running as?

@dschep I tried running small pipelines below.
image:
  name: lambci/lambda:build-python3.6
pipelines:
  branches:
    master:
      - step:
          name: ls
          script:
            - whoami
            - pwd
            - ls -al

And the whole log is
+ umask 000

+ GIT_LFS_SKIP_SMUDGE=1 git clone --branch="master" --depth 50<EMAIL_ADDRESS>$BUILD_DIR ; git reset --hard a0a7c4e6c31824bd954c9ac66aba3af23338e327 ; git remote set-url origin git@bitbucket.org:kenichi-ogawa/bitbucket-pipelines-check-permission.git
Cloning into '/opt/atlassian/pipelines/agent/build'...
HEAD is now at a0a7c4e Merge branch 'master' of https://bitbucket.org/kenichi-ogawa/bitbucket-pipelines-check-permission

+ chmod 777 $BUILD_DIR

+ whoami
root

+ pwd
/opt/atlassian/pipelines/agent/build

+ ls -al
total 16
drwxrwxrwx. 3 root root 4096 Oct  4 05:08 .
drwxr-xr-x. 8 root root 4096 Oct  4 05:08 ..
-rw-rw-rw-. 1 root root  191 Oct  4 05:08 bitbucket-pipelines.yml
drwxrwxrwx. 8 root root 4096 Oct  4 05:08 .git

Searching for test report files in directories named [test-results, failsafe-reports, test-reports, surefire-reports] down to a depth of 4
Finished scanning for test reports. Found 0 test report files.
Merged test suites, total number tests is 0, with 0 failures and 0 errors.

Hmm. that looks like it should work. :confounded:
Here's another thought: could you try setting dockerizePip to non-linux so it doesn't use docker? Since the CI is a 64bit linux machine, if your dependencies all have manylinux wheels available, it should work.

I think so too...
I tried setting dockerizePip to false, and it works well.

By the way this problem may disappear with these instructions:

Use this plugin version 4.2.4
dockerizePip to true
dockerImage to lambci/lambda:build-python3.6
Clear docker cache of my repository from Bitbucket Pipelines

I suggest this problem may cause by 1 or more complicated conditions.
Sorry for confusing you @dschep 🙇
I guess the directory /var/task will be mounted to /opt/atlassian/pipelines/agent/build/PATH_TO_SERVICE so it can work.
@duy9403 Do you have still problem?

@dschep Thank you for supporting.
The setting @kenichi-ogawa-1988 listed above is exactly what my setting was before and after the incident (i.e. I didn't change anything). I just rerun the pipeline and it .
Still I don't know where is the problem. Anyway, thank you all for collaborating.

@dschep FYI this problem happen again
chown: changing ownership of ‘/var/task/requirements.txt’: Operation not permitted
chown: changing ownership of ‘/var/task’: Operation not permitted

Status: Downloaded newer image for lambci/lambda:build-python3.6
<EMAIL_ADDRESS>  Your Environment Information -----------------------------
     OS:                     linux
     Node Version:           10.12.0
     Serverless Version:     1.32.0

I found a workaround.
As @dschep mentioned,

[Bitibucket] CI is a 64bit linux machine

So in serverless.yml
custom:
  pythonRequirements:
    dockerizePip: non-linux

And bitbucket-pipelines.yml
pipelines:
  branches:
    master:
      - step:
          name: Serverless deploy
          image: node:10-alpine
          caches:
            - cache-node
          script:
            - apk add python3
            - npm install -g serverless
            - npm install serverless-python-requirements
            - serverless deploy -v

definitions:
  caches:
    cache-node: /usr/local/lib/node_modules


Output with ruby19_syntax: true is not copy pastable

irb(main):033:0> { one: 1, three: 3, four_hundred: 400}
{
  one         : 1,
  three       : 3,
  four_hundred: 400
}

The spaces between one and the : make this invalid Ruby syntax.
I would expect:
{
  one: 1,
  three: 3,
  four_hundred: 400
}

# or even:
{
  one:          1,
  three:        3,
  four_hundred: 400
}

FYI my defaults:
AmazingPrint.defaults
{
  indent       : -2,
  index        : false,
  multiline    : true,
  ruby19_syntax: true
}

@jakeonrails Sounds like this is only a problem with left-justified keys using indent: -2. Can you confirm this?

Here's the output with various settings:
# Old hash syntax, -2 indent:
AmazingPrint.defaults # =>
{
  :indent        => -2,
  :index         => false,
  :multiline     => true,
  :ruby19_syntax => false
}

# New hash syntax, 2 indent:
AmazingPrint.defaults # =>
{
         indent: 2,
          index: false,
      multiline: true,
  ruby19_syntax: true
}

So yes I think it's only an issue with left/-2. The spacing is not great on the old hash syntax, but at least you can still copy/paste that and execute as valid ruby code. So it's really a combo of new hash + -indent.


An issue with on_auth_m5

Environment

the latest docker image from https://github.com/vernemq/docker-vernemq
.net core application in the same docker
webhooks are configured in vernemq.conf and vernemq can send requests to .net core application

Expected behaviour

vernemq handles response of on_auth_m5 webhook

Actual behaviour

Hello all,
I am trying to understand if vernemq suits us, but I have faced with an issue which I could not solve.
According to the documentation  for web_hooks the proper response for on_auth_m5 is

{
   "modifiers":{
      "properties":{
         "p_authentication_data":"QVVUSF9EQVRBMQ==",
         "p_authentication_method":"AUTH_METHOD"
      },
      "reason_code":0
   },
   "result":"ok"
}

But looks it's not a proper structure of response according to the logs of vernemq container
{p_authentication_data => <<"AUTH_DATA1">>,p_authentication_method => <<"AUTH_METHOD">>},reason_code => 0}} in vmq_mqtt5_fsm:check_enhanced_auth/2 line 789
13:51:25.837 [error] Ranch listener {{172,17,0,2},1883} terminated with reason: no case clause matching {ok,#{properties => #{p_authentication_data => <<"AUTH_DATA1">>,p_authentication_method => <<"AUTH_METHOD">>},reason_code => 0}} in vmq_mqtt5_fsm:check_enhanced_auth/2 line 789
Then I've changed the structure of response to
{
  "properties":{
         "p_authentication_data":"QVVUSF9EQVRBMQ==",
         "p_authentication_method":"AUTH_METHOD",
         "reason_code":0
      },
   "ok":"ok"
}

After this I checked logs of vernemq container:
13:56:47.871 [error] CRASH REPORT Process <0.2290.0> with 0 neighbours crashed with reason: no case clause matching undefined in vmq_webhooks_plugin:handle_response/3 line 735
13:56:47.872 [error] Ranch listener {{172,17,0,2},1883} terminated with reason: no case clause matching undefined in vmq_webhooks_plugin:handle_response/3 line 735
What is the proper response for on_auth_m5?

huh, good call @viktar-instinctools, thanks. Seems like the MQTT session and the hook do not agree on the format of the properties here.
Let me understand and possibly fix this.

The documented format should be correct:
{
   "modifiers":{
      "properties":{
         "p_authentication_data":"QVVUSF9EQVRBMQ==",
         "p_authentication_method":"AUTH_METHOD"
      },
      "reason_code":0
   },
   "result":"ok"
}

The server-to-client Auth data seems to get lost in the FSM though. I hope this is just an overlook. An important note is that Verne itself does not implement various enhanced authentication methods (like a Kerberos handshake, let's say), but the plugins should be able to implement an enhanced authentication flow via those properties.

We want to implement custom auth flow (token based).

it seems this issue still exists in 1.12.5.
on_auth_m5's response of
{
   "modifiers":{
      "properties":{
         "p_authentication_data":"QVVUSF9EQVRBMQ==",
         "p_authentication_method":"AUTH_METHOD"
      },
      "reason_code":0
   },
   "result":"ok"
}

prints the following error on console.log :
2022-08-29 16:53:40.016 [error] <0.1687.0>@vmq_mqtt5_fsm:check_enhanced_auth:791 Ranch listener {{0,0,0,0},1883} terminated with reason: no case clause matching {ok,#{properties => #{p_authentication_data => <<"AUTH_DATA1">>,p_authentication_method => <<"AUTH_METHOD">>},reason_code => 0}} in vmq_mqtt5_fsm:check_enhanced_auth/2 line 791


Variable Transfer

Hello, i'm having trouble with saving some ciphertexts i guess. I have a code, which is like the simple integer summation test, but im trying to use the load and save functions, so with second he(smth like fhe) to do the summation with public key. Then it returns the answer and decrypts in the main he.
But when i try to decrypt, it says "Pyfhel object at xx........" returned a result with an error set.
My code example:
from Pyfhel import Pyfhel,PyCtxt
he = Pyfhel()
he.contextGen(1000)
he.saveContext(b'C:/Users/burhan/Desktop/last/context.txt')
he.keyGen()
he.savepublicKey(b'C:/Users/burhan/Desktop/last/pk.txt')
v1 = 5
v2 = 4
p1 = PyCtxt()
p2 = PyCtxt()
p3 = PyCtxt()
he.encryptInt(v1,p1)
he.encryptInt(v2,p2)
b = he.noiseLevel(p1)
k = he.noiseLevel(p2)
print(p1)
print(p2)
print(b)
print(k)
p1.save(b'C:/Users/burhan/Desktop/last/p1.c1')
p2.save(b'C:/Users/burhan/Desktop/last/p2.c1')
fhe = Pyfhel()
fhe.restoreContext(b'C:/Users/burhan/Desktop/last/context.txt')
fhe.restorepublicKey(b'C:/Users/burhan/Desktop/last/pk.txt')
p6 = PyCtxt()
p4 = PyCtxt()
p5 = PyCtxt()
p4.load(b'C:/Users/burhan/Desktop/last/p1.c1')
p5.load(b'C:/Users/burhan/Desktop/last/p2.c1')
p6 = fhe.add(p4,p5)
p6.save(b'C:/Users/burhan/Desktop/last/p6.c1')
p3.load(b'C:/Users/burhan/Desktop/last/p6.c1')
a = he.decryptInt(p3)
n = he.noiseLevel(p3)
print(a)
print(n)
I'm assuming its happening because of the windows language coding but im not sure. Thanks for your help , have a nice day!

Yes, we have noticed that when loading and saving ciphertext on Windows platform, this coding problem does exist, and it will take some time to solve. You can also try to modify the "ciphertext. cpp" file and then recompile and install Pyfhel.

Hello and thanks for the answer! If i use Ubuntu releases instead of windows, will it be solve my problem?  Lately, im trying to install Pyfhel to a virtual machine which uses Ubuntu release 16.04 to solve the problem.But im new to this platform and i'm receiving errors when i try to install Pyfhel. Thank you again!.

Please elaborate on your mistakes. Better have screenshots?

I think im missing a requirement or dependency for Pyfhel. I checked out the numpy and cython and they are installed.Setuptools and versions for numpy and cython are up to date.

I'm assuming having those errors because of the gcc, i thought i installed the gcc before. Now working on that. Since im new to linux, sorry for the trouble. Thanks a lot for your help!

1.git clone https://github.com/ibarrond/Pyfhel.git
2.cd Pyfhel
3.pip install .

Hello and thanks for all the answers. I solved the problem and installed Pyfhel. My gcc was outdated,that caused the problem. Thanks a lot!


Redesigned JSON API with ?_extra= parameters

This will be the single biggest breaking change for the 1.0 release.

#262