Missing .env File and Exclusion of Folder in Production Build

We need a .env file to define our base URL and other environment variables for easy configuration across different environments.
During the build process,  folder (e.g., dictionaries) is not being included in the production build output. This is causing path issues when running the application in production, as these resources are required. We can run through "npm run dev" locally but for production we need to point directly to build.

Modify the build configuration to ensure the required folders, like dictionaries, are included in the production build. This may involve setting the folder path at the root level or adjusting the build script to copy these folders correctly.

I've completed the setup for the .env configuration and adjusted the build process to include necessary folders like dictionaries in the production output. I created a .env.example file as a template for required environment variables, which other developers can use to set up their own .env files.
The application should now work seamlessly across different environments, both in development and production. Let me know if there’s anything else you’d like me to address.

@aalistarbid - assigning this back to you for your review.


Filenames with ( and ) generate broken code

:+1: This occurred with having ~ in our file names.

Yeah, we should confirm as much as possible to the swift spec to prevent this:
Disallowed characters: whitespace, mathematical symbols, arrows, private-use and invalid Unicode points, line- and boxdrawing characters
Special rules: Can't begin with a number

Will be fixed in the next release, when #107 is merged.


EDL * raise EDLParseError

Hello If I try to parse an edl like :
TITLE: TOTO
FCM: NON-DROP FRAME
001  001      V     C        00:00:00:00 00:00:02:01 01:00:00:00 01:00:02:01
* FROM CLIP NAME: sht0010.mov
002  001      V     C        00:00:00:00 00:00:02:16 01:00:02:01 01:00:04:17
* FROM CLIP NAME: sht0020.mov
003  001      V     C        00:00:00:00 00:00:02:23 01:00:04:17 01:00:07:16
* FROM CLIP NAME: sht0030.mov

and the cmx_3600 parser raise EDLParseError.
If I add an other exception like to the parse_edl :
            elif line.startswith('*'):
                # this can occur either in the header or before any 'event'
                # in both cases we can ignore it since it is meant for tape
                # *
                pass

Is it a bug ? I missed something ?

Precisely, It's the last * comment line who raise the error.

Ok there is some empty values in the edl_lines list, so first element edl_lines[0] is not the comment.
I patched it with :
                    edl_lines = list(filter(None, edl_lines))
                    if re.match(r'^\D', edl_lines[0]):
                        comments.append(edl_lines.pop(0))
                    else:
                        break

Which version of OTIO are you using? Can you paste the full exception with the stack trace? When I try the EDL you posted above with the current OTIO, it works fine.

Addressed by #255

Haven't heard anything more on this issue so closing it for now.  Feel free to re-open if you're still seeing the problem.  Thanks!


App: Show errors in the landing page if system is not configured properly

Adding a few warning messages that would have helped me (non-documentation reading 😬 ) figure out why things were not working faster.

it should be using gdev-testdat

agree... and also want to get back to supporting using any testdata instance (when uid is not defined...)

Hm.. it should be using gdev-testdata I think which most grafana developers already have

Yes, I  used this data source for scene app demo scenario which runs in a container (./scripts/demo.sh), but should have named the provisioned test datasource gdev-testdata to work simlessly with core. I've brought back correct provisioning file in 2e24cbe


Document installation and blacklist

Codecov Report

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

@@          Coverage Diff          @@
##           master    #40   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           6      6
  Lines         525    525
=====================================
  Hits          525    525

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 79ff52e...3074b26. Read the comment docs.


Feature Request: Linux/Bash Style Tab Completion

Tab completes unambiguous part. Double tab lists possible completions.
Rationale
Tab completion can be both faster and more helpful when done similar to Jupyter iPython, Bash, and many other popular Linux shells.
There are two main uses for auto completion

Faster typing of familiar but long words (xyz.FoobarFactoryFactoryHelper)
Introspection, what members does this thing have in this library or class (math.)

Completion can be faster when Tab works Linux/Bash/iPython style. A simple UI for additional information can be shown when needed.
How Bash Style Autocomplete Works
When user presses Tab, complete current word as far as possible. User chooses completion by typing the next character.
Alternatively, user can press tab twice more (in the middle of completion) to see possible options. Alternatives could be shown on the half screen buffer.
Example: Faster Typing of Long Names
For example, consider a case with possible completions:
foo.SystemReadWriteFactory
foo.SystemReadWriteHandle
foo.WipeHelper
foo.bar
foo.foo

User types
foo.S[Tab]

System autocompletes
foo.SystemReadWrite

User types additional "F". System autocompletes the only option that's left:
foo.SystemReadWriteFactory

Example: Show Possible Completions
For example, user wants to know what's available in an imaginary "random" library
random.[tab][tab][tab]

A half screen buffer below opens. It shows all available options at the same time. This way, user can glance what's available without cycling trough options one at the time.
User chooses the next option by typing more characters and pressing tab. Focus is always kept on the main code.
After the completion, the half-screen buffer closes automatically. Alternatively, user can close the half-screen buffer by pressing ESC or using arrow keys to move away from completion.
Optionally / in the future, the half screen buffer could show

Function signatures for completions
Highlight the next character which user can type to choose this completion

As pressing tab three times in the middle of completion is not a common sequence of keys typed, it's likely that the half-screen (possible completions) window only shows when user wants it.
Existing LSP Plugin and Micro Features and Conventions
Tab: By default, micro tab is bound to "Autocomplete|IndentSelection|InsertTab". So tab is already used for naive autocomplete. This could be changed to "LspComplete|IndentSelection|InsertTab". Alternatively, user could have a separate key for autocompletion.
Half-screen: Show options in half-screen buffer is already used in LSP plugin's show references Alt-R.
Linux / Bash / iPython style autocomplete: Already used in popular Linux shells and familiar to Linux users.
Complete, then show options: The leading alternative Python shell Jupyter uses this in iPython3. The most popular Linux shell Bash uses this style.
Benefits

Typing familiar names is much faster. It does not depend on iteratively cycling different options (cycle-read-cycle-read-cycle-whoops-previous-read-accept).
It allows using a single key to both complete and accept completion
Introspection, seeing what's available next, can show multiple available options at the same time.
In the future, there is space to show much more information for alternatives.
Familiar to Linux users, probably a major user group for a TUI editor like Micro

If I understand you correctly, the half screen buffer would only open with 3xtab. I personally would prefer this to be the default, perhaps accessible by another hotkey. But that is only a minor note. Also, the half screen window should probably have a reasonable max height.

Autocomplete|IndentSelection|InsertTab". So tab is already used for naive autocomplete. This could be changed to "LspComplete|IndentSelection|InsertTab".

More like to "LspComplete|Autocomplete|IndentSelection|InsertTab", in case there is no LSP active, no? But it's user-configurable anyway
That being said, I think this is a great suggestion!

Thanks for the comments!
Yes, the half screen suggestion window would only open if user presses triple tab in the middle of completion. Otherwise, there is nothing to show. As the completion is done or user moves, again, there are no completions to show. I also like features that are easily reachable, but out of your face when you don't need them.
I also consider this discoverable. Many users of tab completion keep hitting tab when they don't know what to type next, and find out about this feature in Bash that way.
Naive autocomplete is a little too eager to help, and false positive rate is too high for my taste. So I would prefer to receive only correct suggestions. Bash style completion (unambiguous part only) achieves this in some existing systems, such as bash. But, as you say, it's a user preference.

This feature would be very neat indeed. I have experimented with this a little already, but it seems that there is a limitation in how micro handles plugin's callback return values. This leads to the apparent inability to give/not give it to the next entry in the tab binding configuration. Essentially that means, that the plugin needs to completely re-implement all logic for indenting  the current line as well as a selection of lines from scratch.
I will try to fiddle around with this some more and see if the recent changes I did for the autocomplete are actually edging us closer to being able getting the indentation sorted.

Happy to hear about the advancement and your tests.
If it really ends up being a current limitation of micro, I wonder if @zyedidia would be interested in improving that. I indeed thought that you just "return false" or similar, and the next one takes over.
A possible intermediate solution could be implementing it to alt-J with no fallbacks. This way, there will never be a false positive; and just the tab support in micro is left to implement. And one day, this could be in Tab.

@AndCake , another idea to get fallback working. Considering keybinding "LspComplete|IndentSelection|InsertTab", you mentioned that plugin can't easily give control to next action. E.g. if LspComplete is not possible, it should advance to IndentSelection.
If advancement is not possible, the plugin could internally try the other actions. After all, they are commands and probably callable from a plugin. E.g. "LspComplete-IndentSelection-InsertTab". If there is no completion, the plugin could automatically call IndentSelection command.
I would expect that most users are using the default setting, and some minority (including myself) have disabled the naive autocomplete.

As a first throw at it, I implemented the indentation logic, so you can now rebind the autocompletion to tab. However, the partial application of autocompletions I am still working on. Let's see when I get this in a state where I feel it is functional.

Thanks, @AndCake!

Just tried it. You're advancing fast!
Great first experience: OK, works initially with Go fmt... Which package should I try next, trying to remember Go after some other language... And before thinking about it, I had tab tabbed my way to list of packages, and selected one!
Some ideas for improvement

The bottom buffer should only open on double tab, not automatically
The word to be completed should be deselected, and cursor placed at the end. This way, user can keep typing.
I currently sometimes get a mix of bash style tab completion and the previous cycle-read-cycle-whoops-read-accept completion.
Function descriptions are useful when I'm thinking what to use. Many more one-line signatures would fit, using a style similar to alt-K: "func fmt.Println(a ...interface{}) (n int, err error)Println formats using the default formats for its operands and". Autocomplete buffer at the bottom would list function signatures as one liners for choice, then user could pick one and use alt-D jump to description to read the details.
Once I add more imports to Go file, autocomplete shows a bug: fmt.P[tab] offers libraries as completions: "bufio", "bytes"...

You've just shown that indeed it's possible to do Linux style Tab completion in Micro. And the interface ideas seem to work. And you even got the function signatures there.
Good work, @AndCake!

the plugin works with Zig language server.
hover, definition lookup, formatting, looking up references, those work fine.
Ctrl-space for completion though throws the error below

Lua API error: main:475: attempt to index a non-table object(nil) with key 'start'
stack traceback:
main:475: in function 'response'
main:295: in main chunk
[G]: ?

completion with pyhon works though

so I guess you could add Zig at Testing section of README.md

@raidenXR thanks for testing zig! I will move your feedback into a new ticket though, so that it can be worked on independently of this issue here.


Less open file permissions

[ ] Test clean install
[ ] Test C2
[ ] Test C3

It seems that umask(0) is not needed anymore, do I understand it right?
https://github.com/commaai/openpilot/blob/0ea90b41b51b63bbea9e85f360c05aa7269cf3ad/selfdrive/loggerd/logger.cc#L148


Serialization

New module model_handler with functions save and load. Model is saved as a folder.
Also bumped version to 0.7.0

rebase the branch, please

Will the squash suffice?

Will the squash suffice?

No


GPG verification fails on some Mac machines

While running the playbook via awx
TASK [adoptopenjdk_install : GPG Signature verification (macOS)] ***************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: NoneType: None
fatal: [test-macstadium-macos1015-x64-1]: FAILED! => {"changed": true, "msg": "non-zero return code", "rc": 2, "stderr": "Shared connection to <IP_ADDRESS> closed.\r\n", "stderr_lines": ["Shared connection to <IP_ADDRESS> closed."], "stdout": "gpg: directory '/var/root/.gnupg' created\r\ngpg: keybox '/var/root/.gnupg/pubring.kbx' created\r\n
gpg: error running '/usr/local/Cellar/gnupg/2.3.1_1/bin/dirmngr': terminated\r\n
gpg: failed to start dirmngr '/usr/local/Cellar/gnupg/2.3.1_1/bin/dirmngr': General error\r\n
gpg: can't connect to the dirmngr: General error\r\ngpg: keyserver receive failed: No dirmngr\r\n", "stdout_lines": ["gpg: directory '/var/root/.gnupg' created", "gpg: keybox '/var/root/.gnupg/pubring.kbx' created", "gpg: error running '/usr/local/Cellar/gnupg/2.3.1_1/bin/dirmngr': terminated", "gpg: failed to start dirmngr '/usr/local/Cellar/gnupg/2.3.1_1/bin/dirmngr':…

I have not looked too deep into this ie whether this affects all of our mac boxes
to do:

Run on other mac boxes
Run in a command line environment
Run outside of playbook, ie with package_signature_verification.sh directly

This error does not show up on build-macstadium-macos11-arm64-1 and 2

The error occurs at the key import step
administrator@test-macstadium-macos1015-x64-1 ~ % gpg --keyserver keyserver.ubuntu.com --recv-keys "3B04D753C9050D9A5D343F39843C48A565F8F04B"
gpg: error running '/usr/local/Cellar/gnupg/2.3.1_1/bin/dirmngr': terminated
gpg: failed to start dirmngr '/usr/local/Cellar/gnupg/2.3.1_1/bin/dirmngr': General error
gpg: can't connect to the dirmngr: General error
gpg: keyserver receive failed: No dirmngr

Running dirmngr directly
administrator@test-macstadium-macos1015-x64-1 ~ % dirmngr
dyld: Library not loaded: /usr/local/opt/libffi/lib/libffi.7.dylib
  Referenced from: /usr/local/opt/p11-kit/lib/libp11-kit.0.dylib
  Reason: image not found
zsh: abort      dirmngr

Reinstalling libffi seemed to fix it
administrator@test-macstadium-macos1015-x64-1 ~ % dirmngr
dirmngr[10747.0]: permanently loaded certificates: 133
dirmngr[10747.0]:     runtime cached certificates: 0
dirmngr[10747.0]:            trusted certificates: 133 (132,0,0,1)
dirmngr[10747.0]: failed to open cache dir file '/Users/administrator/.gnupg/crls.d/DIR.txt': No such file or directory
dirmngr[10747.0]: creating directory '/Users/administrator/.gnupg/crls.d'
dirmngr[10747.0]: new cache dir file '/Users/administrator/.gnupg/crls.d/DIR.txt' created
# Home: /Users/administrator/.gnupg
# Config: /Users/administrator/.gnupg/dirmngr.conf
OK Dirmngr 2.3.1 at your service
^C

And now the key imports. Not sure what caused the broken/missing library

On the 10.14 machines, its libunistring thats missing a library
test-macstadium-macos1014-x64-1:~ administrator$ dirmngr
dyld: Library not loaded: /usr/local/opt/libunistring/lib/libunistring.2.dylib
  Referenced from: /usr/local/opt/gnutls/lib/libgnutls.30.dylib
  Reason: image not found
Abort trap: 6

Reinstalling libunistring did not fix the issue on the 10.14 machines

On both 10.14 and 10.15 the solution is to brew upgrade p11-kit to its latest, 0.24.1_1 , and then on 10.14 only to make the link /usr/local/opt/libunistring/lib/libunistring.2.dylib -> libunistring.5.dylib

Issue is resolved


[fix] doc's wiki link

I fixed wiki's link.

 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.:x: kazukazuinaina sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Enhances in the log shipping function

Added option NoInitialization to skip the creation of the secondary database
Added option UseBackupFolder to use an entire folder to restore a secondary database
Added option StandbyDirectory to set where the TUF files need to be saved
Added timeout settings to make sure no connection will time out
Added extra checks to make sure contradicting variables are not allowed
Enhanced the standby to use new features from the Restore-DbaDatabase function
Fixed an issue with the name of the secondary database that in some cases did not work out

Proof that it still works

can we have some pics of it working or commands/setups that could help us test?
merci!

LOL!

Thanks bud 💞

Command used for the test:
Invoke-DbaLogShipping -SourceSqlInstance sstad-pc -DestinationSqlInstance localhost -Database DB2 -BackupNetworkPath "\\sstad-pc\logshipping\backup" -BackupLocalPath "C:\temp\logshipping\backup" -GenerateFullBackup -CompressBackup -SecondaryDatabaseSuffix "_LS" -Force


The text property does not update for the first created Custom Button using Factory.

Versions

Python: 2.7.12
OS: XUbuntu 16.04
Kivy: 1.10.1
Kivy installation method: stable ppa

Description
The first button created with Factory does not auto update the text property. The example code shows 3 buttons with texts "Default Value", "B2", "B3" instead of B1, B2, B3.
I have a kv file with an inherited button called AButton. The text property is linked to a custom property called a_property. When creating AButtons, the text button is not updated for the first button but shows "Default Value" instead of "B1".
A workaround is to create an AButton before the loop or to declare the AButton class in the python file as
class AButton(Button):
    a_property = StringProperty('Default Value')

Code and Logs
https://gist.github.com/athrn/556cb98bf0a8caf499304fb615d82ce3

Why not use:
from kivy.config import Config
Config.set('kivy', 'log_level', 'debug')

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button

class twerxApp(App):

    def build(self):
        box = BoxLayout()

        for name in 'B1', 'B2', 'B3':
            box.add_widget(Button(text=name))

        return box

if __name__ == "__main__":
    twerxApp().run()

Here is another solution:
    def build(self):
        box = BoxLayout()

        Factory.AButton()  # waste a instance
        for name in 'B1 B2 B3'.split():
            box.add_widget(Factory.AButton(a_property=name))

        return box

If you dont declare a kivy-property in python, the first instance of  the widget doesnt accept that property as keyword argument in __init__. In fact your code produce a error in python3.
TypeError: object.__init__() takes no parameters

#4053
This issue seems to be already discussed 2 years ago.


To Reproduce
Start Discord > User Settings > toggle Game Activity > exit Discord (completely, not hide in tray) > restart Discord > check Game Activity > it's off again
Expected Behavior
Save this option - should be enabled.
Screenshots
No need.
Discord Version
Stable
Additional Context

Next time this occurs please check console for errors

@rauenzi I am also having this issue, I don't know what to look for within the console.

Look for red or the word "error"

For me, it was caused by a plugin named "DoNotTrack v0.0.6 by Zerebos", if you have that plugin, remove it.

you can disable that feature in the settings of that plugin.

plugin, remove it.

Oh my gosh, Thank you so much that seems to have fixed it 👍

plugin, remove it.

Oh my gosh, Thank you so much that seems to have fixed it 👍


Login Errors

Describe the bug
So I installed TaskBoard on my webserver, the api/ is writeable however when i type the default username and password in it does nothing. I look into the websites console and there was errors.
https://boards.logicflame.dev/
To Reproduce
N/A
Screenshots

Please complete the following information:

OS: Ubuntu18.04
Browser Opera
Version N/A

Any helps would be appreciated thanks

@LogicFlame-Dev What version of PHP are you running?
TaskBoard says it needs PHP 7.x but one of the required packages "slim/slim": "^4.3" has it's own required version of "php": "^7.1". The only time I got the same errors that you is when trying to run it on PHP 7.0.
This might not at all be the same problem that you are having but without any log rows all I can do is guess. So if you are still trying to get this running any log rows might help find the problem.


Fix long package version names overflowing

Fixes #28534

Before:

After:

Should we also apply this for long filenames in Assets?
It looks like this currently:

We need a hover popup at the same time.

Does this work?


Click events are prevented inside carousel components

Overview of the problem
Oruga version: 0.5.5
Vuejs version: 3.2.37
OS/Browser: Firefox, Chrome...
Description
This bug can be seen in the Oruga Documentation itself at the "custom" Example:
https://oruga.io/components/carousel.html#custom
Steps to reproduce

Add a input inside a carousel component
Try to focus the input

Expected behavior
The input is focused.
Actual behavior
Nothing happens
Solution
Inside the carousel component there are following lines:
          <div
                @mousedown.prevent="dragStart"
                @touchstart="dragStart"
                :class="itemsClasses"
                :style="'transform:translateX('+translation+'px)'">
                <slot/>
            </div>

By removing prevent from @mousedown the problem is fixed. But I am not sure if this will cause other problems.
Thanks for your great work!
Micha

You can make a PR to fix it checking if there is a reason to maintain prevent, what do you think?

@michastubi did you investigate about it?

fix https://github.com/oruga-ui/oruga/commit/159201e1dfd7f0342585c377e932a97d0b5d04d2


Allow multiple types of fuel (charcoal, blaze powder, etc.) to be used on warping pads.

Allow multiple types of fuel (charcoal, blaze powder, etc.) to be used on warping pads.

This is already possible, check the config for extractors in the latest beta version.


When using the package in Flutter 3.10, an error appears

Example:
void main() async {
  final widgetConfiguration = WidgetConfiguration(
    child: AppBuilder<void>(
      preInitialize: (binding) async {
        await Future((){});
      },
      builder: (context, snapshot, _) {
       return MaterialApp();
      }
    ),
    onFlutterError: print,
  );

  final ZoneConfiguration zoneConfiguration = ZoneConfiguration(
    onZoneError: (error, stack) {
       print(error);
       print(stack);
    },
  );

  appRunner(
    RunnerConfiguration.guarded(
      widgetConfig: widgetConfiguration,
      zoneConfig: zoneConfiguration,
    ),
  );
}

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.10.0, on Microsoft Windows [Version 10.0.22621.1702], locale ru-RU)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.5.3)
[√] Android Studio (version 2021.3)
[√] IntelliJ IDEA Ultimate Edition (version 2022.3)
[√] VS Code (version 1.78.2)
[√] Connected device (4 available)
[√] Network resources
• No issues found!
$ flutter --version
Flutter 3.10.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 84a1e904f4 (5 days ago) • 2023-05-09 07:41:44 -0700
Engine • revision d44b5a94c9
Tools • Dart 3.0.0 • DevTools 2.23.1

Thanks for your report. I fixed this bug in 2.2.0 version. Could you try it out?


Footer

Completed footer. Need some audit of layout and styles

delete version of header.scss from branch "dev"


Use unique accesspoint name

In case more than one device uses this lib, it is hard to connect to the desired device as all have the same AccessPoint name.
Create the AccessPoint with a unique name based on the unique ID function of micropython-modules

if all modules are of the same batch they only differ of course in the last digits only. Call function https://github.com/brainelectronics/Micropython-ESP-WiFi-Manager/blob/804a834f6027314c9156f9afeb6771aafbfff5ca/wifi_manager/wifi_manager.py#L215 as follows
GenericHelper.get_uuid(-4).decode('ascii'))


Automate Rebuild ArcGISGeocoders

so looks like there is an ESRI bug with automating this.  It only works 10% of the time.  so I am no longer going to do this.  Instead we will have to do it manually when we remember. Long term we will start to look at using a postGIS based full text search instead.


Fix shadows not rendering with orthographic render

Fix #21
Instead of using the height to determine which set of normals to use and interpolate we use the projected size of the globe at the surface of the ellipsoid. The min and max interpolation factors were chosen to roughly match the two heights / transition points that were previously chosen with the existing perspective camera fov.
Another benefit of this is that these settings will automatically account for different perspective camera FoVs in addition to an orthographic projection. With this change the geometricErrorAltitudeRange is no longer needed unless we want to expose the min / max parameters as variables.
Also this interpolation value can be computed on the CPU and passed as a uniform which would simplify some of the shader calculations. If you'd like me to move the calculation I can do that, as well!
Perspective / Orthographic Shadows

Thanks you! This is really insightful.
Please give me some time to decide whether to expose the interpolation edges of the projected radius. I had exposed geometricErrorAltitudeRange because I thought it depended on the the target screen space error.

Also this interpolation value can be computed on the CPU and passed as a uniform which would simplify some of the shader calculations.

I agree. I’ll move it outside of the shader.

Please give me some time to decide whether to expose the interpolation edges of the projected radius. I had exposed geometricErrorAltitudeRange because I thought it depended on the target screen space error.

My typical feeling is to expose fewer options until there's a reason to since I think it's best to keep things simple for users and this is hard to explain. Since this should "just work" with multiple camera types and fields of view I think it's okay to remove. But of course this is just my opinion!
There is one last notable artifact when performing the camera transition where the atmosphere overlay color "pops" when switching to the orthographic camera. This is likely because we're computing the ray origin differently for the different camera types (ortho origin is at the near clip plane, perspective camera is the camera origin). I'll look into this, as well, but I'll have to think through whether it will cause floating point error problems and how to address it - slowly but surely!

There is one last notable artifact when performing the camera transition where the atmosphere overlay color "pops" when switching to the orthographic camera.

It actually looks like this is caused by the "ellipsoid origin" being recalculated based on the camera height in the vertex shader (which would need to be changed to the same logic as is used in the fragment shader). Removing the condition doesn't seem to significantly impact the look of the scene, though, and it's not clear to me exactly what it's for.
https://github.com/takram-design-engineering/three-geospatial/blob/ba442fde16cf183715a2d22d0d0ac628523f6f09/packages/atmosphere/src/shaders/aerialPerspectiveEffect.vert#L45-L54

Removing the condition doesn't seem to significantly impact the look of the scene, though, and it's not clear to me exactly what it's for.

Because we're interpolating the ellipsoid into a true sphere in correctGeometricError, it is no longer valid to apply altitude correction, which is to address the differences between ellipsoid and sphere. Without this, the atmosphere becomes thinner atmosphere at the poles and thicker at the equator (the atmosphere's radius is set in-between).
Left: with this interpolation
Right: without it

The difference is very subtle, though.

Okay! I've just adjust the PR so the interpolation factor is calculated on the GPU and uploaded as a uniform. The geometricErrorAltitudeRange uniform is still present in the AerialPerspectiveEffect class but I can remove if you decide to not expose it for now. Otherwise I can move the constants to that field.
I've also added a line to output color in the stars.frag file since I was getting the following gl warning without. I'm not sure why we have to write colors when every fragment is getting discard, though 🤷
[.WebGL-0x120005c7a00] GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs.

One other improvement may be to just remove the stars object from the scene entirely when an ortho camera is present so it's not rendered at all.

Looks fantastic! I’ve decided to remove the uniform until it’s truly necessary, as you said.
I wasn’t aware that some output is required when every fragment is discarded. Thanks for pointing that out!
I’m merging it now. Thank you so much for the improvement!


Can STN be used in conv autoencoder?

I am looking at the paper, seems it is a work for supervised learning?

I don't know. Maybe you can ask the authors.

OK. Thanks!


Stunner chart needs to have nodeSelector: kubernetes.io/os: linux for pod specs

If you deploy Stunner via Helm charts into a cluster with both Linux and Windows nodes, pods can get incorrectly scheduled on Windows nodes.
The Helm charts need to add the following to pod specs:
nodeSelector:
  kubernetes.io/os: linux

Hi @hach-que
I looked into your problem and realized we already included the nodeSelector in both stunner and stunner-gateway-operator Helm repos.
In the values.yaml: https://github.com/l7mp/stunner-helm/blob/main/helm/stunner/values.yaml#L76
In the templates: https://github.com/l7mp/stunner-helm/blob/main/helm/stunner/templates/stunner-deployment.yaml#L41
When installing the chart you can create a values.yaml file locally and override the default nodeSelector value {}
values.yaml:
stunner:
  nodeSelector:
    kubernetes.io/os: linux

To use it:
helm install stunner stunner/stunner -f values.yaml  --create-namespace --namespace=stunner


Support asking for a specific parsha (+ aliyah)

We will need to have a hardcoded list that maps the Parsha name to either a ref or a known date.
If we are using a map to a ref, we need to then also have a map to refs for each Aliyah.
Side note - if they ask only for a Parsha, do we then return the entire Parsha, or just that days Aliyah?

If you use the offline support you can now do this


Detect cycle in an undirected graph

Detecting the presence of cycle in an undirected graph using Union find Algorithm.

I can work on this issue if assigned.

Here is the pull request for this cycle detection in graphs.
https://github.com/fnplus/interview-techdev-guide/pull/340
@jenistenxavier


Add python deprecation notices.

This PR adds Python 2 deprecation notices to all gRPC packages uploaded to PyPI. These changes are in line with the messaging present on Google Cloud Client library packages. This change is to be duplicated on master.
It appears there is no formal metadatum to indicate deprecation of a Python version (as per PEP 345), so the notice is purely textual.

Project description on pypi.org for all pkgs except grpcio is empty. Where will the deprecation notice show up?

@srini100 Good catch. It appears we've been neglecting to upload a package description for all packages except grpcio itself. I added plumbing to all packages to make this happen. I've manually verified that the generated PKG-INFO file contains the content of README.rst for each of the following packages:

grpcio
grpcio-tools
grpcio-channelz
grpcio-health-checking
grpcio-reflection
grpcio-status
grpcio-testing

PTALA.

The interop failures are due to https://github.com/grpc/grpc/pull/19006 never being backported to v1.21.x

Windows portability test timeout. Retrying.


Add option to disable coverage computation

Perhaps via something like make ENABLE_COVERAGE=OFF or something like that. For coreutils, scalability and the (upcoming) imagemagick.

I added the ENABLE_COVERAGE argument. I will add a pull request for it.

Resolved via #111 .


deepEqual implementation issue

There is a problem with the implementation of deepEqual.
deepEqual(["A","B"],["A","B","C"]) returns true, which it should not.
From my testing, this is a problem because the algorithm only tests if "objA" has properties that "objB" doesn't have and not if "objB" has properties that "objA" doesn't have. So if "objB" is a superset of "objA", deepEqual evaluates correctly.

@scottwey thanks for reporting
@brafdlog thanks for fixing it so quickly!


host_port is not mentioned in some manual pages on how to set up a connector

I was supporting one of our users who was running MySQL on a custom port. He couldn't find out how to override the default host and port using the CLI (host_port).
https://docs.open-metadata.org/connectors/mysql

Fixed in #2006


[Feature Request] Chance object getState() and setState()

In Python, the Random object can be restored with getstate() and setstate(). This is very useful for serializing and deserializing the random object itself. It can be used to save the state of a complex simulation and reload it later. The simulation would continue where it left off without having to reset the seed. It can also be used for writing tests where the random state must be deterministic.
let chance  = new Chance('abc');
let chanceState = JSON.stringify(chance.getState()); // Save
chance.setState(JSON.parse(chanceState)); // Load

+1


Fix: support pathlib.PurePath in normalize_token

dask.base.tokenize does not produce the same string for repeat invocations on the same path. This is because the tokenizer defaults to the object tokenizer.
This PR registers the identity function for the pathlib.PurePath type. I believe this is reasonable, as the default str / repr is a good description of the path. I'm not a Dask expert, though, so there may be reasons that an explicit tokenization is better.
I haven't profiled the startup-time change by importing pathlib, but I assume we're not worrying about that here.

[ ] Closes #xxxx
[x] Tests added / passed
[x] Passes pre-commit run --all-files

add to allowlist

Thanks all. Not sure how that PurePath became Path!

Thanks @agoose77!


Added the Longest Common Subsequence problem in C

Pull Request Template
What have you Changed(must)
Added the Longest Common Subsequence problem in C to the Dynamic-Programming folder of Algorithms for C language. And also modified the readme.md file in the Dynamic-Programming folder and added the information about the added LCS problem.
Issue no.(must) - #886
Pr will be closed and marked as spam. If issue number not found or issue was assigned to someone else.
Marking as spam can block your account from HacktoberFest.
Self Check(Tick After Making pull Request)

[x] This issue was assigned to me if not it will marked as spam.
[x] My file is in proper folder.
[x] I am following clean code and Documentation.
[x] I have added title and what program will do first in the file.

README - How to Contribute

Hey,
In my hactoberfest profile, it's showing that this project is not participating. Please could you help me in understanding why is it showing like that? Is the project actually not participating? Please clarify.


Add Data Lifecycle policy to AWS-1R-2AZ-Sch-2Node-CF.yaml

Add a Data Lifecycle policy to AWS-1R-2AZ-Sch-2Node-CF.yaml.
But before, experiment if this only needs to be done at the snapshot level instead of the AMI level.

Was not needed


Work with rst2html5 provided by docutils

https://github.com/marianoguerra/rst2html5/issues/87
It is possible to use docutil's rst2html5.py script:
diff --git a/rst-loader.js b/rst-loader.js
index 6f8dbf6..9307120 100644
--- a/rst-loader.js
+++ b/rst-loader.js
@@ -4,7 +4,7 @@ var path = require('path');
 module.exports = function(rst) {
   var argv = [
     // enable syntax parsing
-    '--pygments',
+    // '--pygments',

     // use short class name to fit stylesheet
     '--syntax-highlight=short',
@@ -14,7 +14,7 @@ module.exports = function(rst) {
   ].concat(this.options.rst.argv);

   this.cacheable();
-  var rst2html5 = spawn('rst2html5', argv);
+  var rst2html5 = spawn('rst2html5', argv, {shell: true});
   var callback = this.async();

   var result = ''; // store rendered html

Maybe we can have an option for this.

To the first thing, we may update installation section in README.
And the second, do you mean an option that disable --pygments ?
I add --pygments and the following  --syntax-highlight arguments means to make rst-live-preview just work out of box.
On the other hand, could you describe a scene that need to modify existing --pygments ? If it is really needed. We could remove all the preset arguments, and write instructions about them for users.

The problem is that rst2html5 from docutils doesn't have --pygments option:
rST preview runs on localhost:7508
Hash: 861ec26824f86f50dc52
Version: webpack 1.14.0
Time: 1538ms

ERROR in ./README.rst
Module build failed: Error: Usage
=====
  rst2html5.py [options] [<source> [<destination>]]

rst2html5.py: error: no such option: --pygments

    at ChildProcess.<anonymous> (D:\Dev\rst-live-preview\rst-loader.js:38:13)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
webpack: Failed to compile.

Here is the result from rst2html5 --version && rst2html5 --help: https://gist.github.com/eight04/214d4dd9d3532c85b4478ff0c126ccf3
Removing preset arguments sounds good. It might be even better to let users pass other options to rst2html5.

All right, I'll remove the default arguments passed to rst2html5 to make things clear. ><


After running rancher-install rancheros didn't start ssh  server on the new instance

I started VM based on rancheros 0.3.3  and I try to set it up on the hard hisk so I created a cloud-config.yml file and hit rancher-install.
When rebooting this new VM  ssh server is not starting up so I can't ssh into it .
Did I miss something in the process or in the cloud-config.yml?
Run nmap against it shows :
Not shown: 996 closed ports
PORT     STATE    SERVICE
20/tcp   filtered ftp-data
900/tcp  filtered omginitialrefs
1935/tcp filtered rtmp
3389/tcp filtered ms-wbt-server

port 22 is closed

Can you share your cloud-config.yml file? Make sure it looks exactly like what you have including and white spacing.

cloud-config.yml is as follows:

If you have a invalid configuration in your cloud-config.yml, then it won't start up. I'm not an networking expert, but something of this part of your cloud-config.yml is probably causing the error.
rancher:
  network:
  dns:
    interfaces:
      eth*:
        dhcp: false
      eth0:
         address: <IP_ADDRESS>
         gateway: <IP_ADDRESS>
         mtu: 1500

@hmeftah We're busy working on v0.4.0 which should be coming out this week, so might not get to respond. But I believe in the next version, if there are issues with your cloud-config, we will continue to boot. If you're willing, you could try out v0.4.0-rc7. We just have a couple of minor tweaks that we're adding in.

ok, thanks I'll give it a try.

I had a try with rancheros 04-rc6, and I changed my cloud-config.yml file, all works fine now, thanks.


Bootstrap 5 support

Hello,
We are using bs-stepper in our one of the project and now we are updating to Bootstrap 5.
have you planned bs-stepper update with Bootstrap 5 ? Everything breaking in Bootstrap 5 so can you please let us know when can we expect  bs-stepper update with Bootstrap 5?
Awaiting for your response 👍🏻
Regards~

I am running it on Bootstrap 5 without anything breaking. Probably it is a bit late, but what exactly goes wrong?


New Select Extension

Update ApplySelect and add GetSelectingExpression (this original class fork from System.Linq.Dynamic.Core)
Update GetOrderingExpressions for easy custom and use ordering

Great thanks!
Can you also add some unit-tests and documentation to explain the use case?

@alirezanet
QueryBuilder need update.
I'm testing in some case with WebAPI(Serialize.Linq-Orleans-EFCore).

Hi,
First, thank you for the effort but unfortunately, I can not merge this PR,  because it can cause a few breaking changes also it is not compatible with other parts of Gridify library like the Gridify() or GridifyQueryable() extensions QueryBuilder, etc ...
I'll close this for now, but if you managed to add tests and fix these problems open a new PR.
thanks. 🙏

Okey. Maybe next version. Current the SelectExtension cause breaking changes, not just these, more in the future, like reversemapper and use FastExpressionCompiler for faster compile.


Angular 9 - Can't resolve all parameters for ContextMenuContentComponent

Describe the bug
After upgrading to Angular 9 it seems like the @angular/core - Renderer function is not being passed into ContextMenuContentComponent somehow
I'm getting the error:
Error: Can't resolve all parameters for ContextMenuContentComponent: ([object Object], [object Object], [object Object], ?).

In my case I am not getting any error related to ngx-contextmenu, instead, it shows empty menu on right-click, it is like empty 2px height div.

facing same issue as @silkcom facing here is my config in angular 9.x
{{item?.name}}


StyleGuide - In TypeScript specific

To be discussed.
// cc @wardbell @johnpapa

Use TSLint for linting your code.
Why?: In big teams, code following the same practices is easier to read and understand.

Be as explicit in the type definitions as possible (i.e. use any as rarely as possible).
Why?: any makes TypeScript behaves like a dynamic language. This way we gave up all the benefits we get from static typing such as better IDE/text editor support and compile-time type-checking.

Suggestion for using a linter sounds like a good idea to me, however, I'm not sure if we should mention tslint explicitly.
noImplicitAny could be too strict for some projects, however, providing only a suggestion for explicitness seems good to me.

Suggestion for using a linter sounds like a good idea to me, however, I'm not sure if we should mention tslint explicitly.

I think the same. I would personally suggest to use a linter and nothing more.

noImplicitAny could be too strict for some projects, however, providing only a suggestion for explicitness seems good to me.

We are already suggesting that in the "Typescript Configuration" project. So we could it from there if we add it to the style guide.


[Bug]: Repeated requests to remote registry when not able to load catalog

zot version
v2.0.2-rc1
Describe the bug
There seems to be a problem with handling errors when a remote registry does not respond "as expctected".
Configuring a registry that throws a 400 on registry/v2/_catalog (not OCI compliant?!) results in repeated requests towards that registry, regardless of retry settings.
To reproduce

Configuration
Configuring the Chainguard registry in pass-through mode (on demand) in sync extension:

{
    "storage": {
        "rootDirectory": "/var/lib/registry",
        "commit": true
    },
    "http": {
        "address": "<IP_ADDRESS>",
        "port": "5000"
    },
    "log": {
        "level": "warn"
    },
    "extensions": {
        "metrics": {},
        "sync": {
            "enable": true,
            "credentialsFile": "./sync-auth-credentials.json",
            "registries": [
                {
                    "urls": [
                        "https://cgr.dev"
                    ],
                    "content": [
                        {
                            "prefix": "**",
                            "destination": "/chainguard-images"
                        }
                    ],
                    "onDemand": true,
                    "maxRetries": 3,
                    "retryDelay": "60m",
                    "pollInterval": "6h",
                    "tlsVerify": true
                }
            ]
        },
        "search": {},
        "scrub": {},
        "lint": {},
        "trust": {},
        "ui": {}
    }
}

Client tool used
Pre-compiled zot-linux-arm64 (using the provided helm Chart with container from the project's repository)
Seen error
Seeing about 10 per second of those, probably also stressing the remote end:

{
	"level": "error",
	"component": "scheduler",
	"error": "{\"errors\":[{\"code\":\"NOT_IMPLEMENTED\",\"message\":\"The catalog API is not yet supported.\"}]}\n",
	"generator": "SyncGenerator",
	"goroutine": 32,
	"caller": "zotregistry.dev/zot/pkg/scheduler/scheduler.go:465",
	"time": "2024-02-08T17:22:58.965145576Z",
	"message": "failed to execute generator"
}

Expected behavior
I'd expect zot to honor the 400 message from the upstream registry and not hammering it any further.
Screenshots
No response
Additional context
Not sure if the Chainguard registry is also at fault (but to me, throwing a 400 does not seem entirely wrong), but in any case the error handling on the zot side should prevent a request storm that could easily result in a DoS (on either side).

Thank you for raising this one, you are right, zot should back off in such cases.
I'll let you know when I'll have a fix for this.


🐛 BUG: dispatch namespace bindings not present in local dev

Which Cloudflare product(s) does this pertain to?
Workers for Platforms
What version(s) of the tool(s) are you using?
3.45.0
What version of Node are you using?
20.10.0
What operating system and version are you using?
Ubuntu 22.04.4 LTS
Describe the Bug
Observed behavior
When a dispatch namespace binding is present:

wrangler dev --remote includes the binding on the env
wrangler dev does not include the binding on the env

Expected behavior
When a dispatch namespace binding is present:

wrangler dev --remote includes the binding on the env
wrangler dev includes the binding on the env

Steps to reproduce
npx wrangler dispatch-namespace create sample-namespace

# wrangler.toml
name="sample-dispatcher-worker"
compatability_date="2024-04-02"
main="index.js"

[[dispatch_namespaces]]
binding="dispatcher"
namespace="sample-namespace"

// index.js
export default {
  async fetch(req, env) {
    console.log(`dispatcher included in env: ${'dispatcher' in env}`);
    return new Response();
  }
}

With the above project - run wrangler dev in both local and remote modes and observe the binding missing in local dev
Please provide a link to a minimal reproduction
No response
Please provide any relevant error logs
No response

dispatch_namespace bindings aren't supported right now because we don't have an agreed local implementation
there is an ongoing attempt to implement which you can follow here https://github.com/cloudflare/workers-sdk/pull/5622

@GregBrimble @WalshyDev is there any prio on y'all's side to finish this PR up, or is this something we should/can take over?


Add snake casing

Describe the contribution to the taxonomy
Inspired by https://github.com/instruct-lab/taxonomy/pull/106, added new skills to convert text to

snake case

Input given at the prompt
Convert this text into its Camel case form: congratulation interventionism
blah psychoanalyse idiots chromatics evangelistically interchangeability intercommunicating mickle

Response that was received
A correct answer but with a lot of explanation:
| Snake case, also known as "lowercase" or "kebab-case", is a style of writing where   │
│ all words in a phrase are written in lowercase, with the space removed between the   │
│ words and underscores inserted between each word. This format is commonly used in    │
│ programming languages, file systems, and database schema to make the names of        │
│ variables, functions, directories, and tables more consistent and easier to parse.   │
│ In the given example,                                                                │
│ "CongratulationInterventionismBlahPsychoanalyseIdiotsChromaticsEvangelisticallyInter │
│ changeabilityIntercommunicatingMickle" would be in snake case as                     │
│ "congratulation_interventionism_blah_psychoanalyse_idiots_chromatics_evangelisticall │
│ y_interchangeability_intercommunicating_mickle". Here's how the conversion can be    │
│ done for the given text:                                                             │
│                                                                                │
│ 1. Lowercase all the letters in the phrase.                                          │
│ 2. Remove the spaces between the words.                                              │
│ 3. Insert underscores between each word.                                             │
│                                                                                │
│ Applying these steps to the given text, we get                                       │
│ "congratulation_interventionism_blah_psychoanalyse_idiots_chromatics_evangelisticall │
│ y_interchangeability_intercommunicating_mickle". This format is useful for making    │
│ the names of variables, functions, directories, and tables more consistent and       │
│ easier to parse, especially in programming languages and file systems where the      │
│ length of the names is limited.

Response that is now received instead
TODO: lab generate says Nothing to generate. Exiting.
  ...

Contribution checklist
TODO

[ ] tested contribution with lab generate
[ ] lab generate does not produce any warnings or errors
[x] all commits are signed off (DCO)
[x] the qna.yaml file was linted

Thank you for your contribution to InstructLab! Unfortunately, once a Github repo is made public, all open PRs are automatically closed since they link against a private repo. We have detected that your PR might have been one of the ones affected by this change. If you are still interested in contributing your improvement, please fill out the following short form by no later than May 3rd, and we will get back to you with the additional steps necessary once we have had time to assess the PRs of those still interested:
https://forms.gle/V7SrPPMZDo6iGDYu8


SESSION_NOT_FOUND error with reconnect to ClickHouse on transactionSupport=true

Describe the bug
Hello
Kafka Connect with ClickHouse JDBC driver is used for integration between Kafka and ClickHouse.
We have a problem with duplicated records in ClickHouse and decided to enable ClickHouse transactions.
But when transactionSupport=true, Kafka Connect throws SESSION_NOT_FOUND error and reconnects to ClickHouse each time if the delay between inserts is longer than the default_session_timeout.
There are no errors if transactionSupport=false.
Is this the expected behavior?
Is it safe to use ClickHouse transactions on production?
Thank you
Steps to reproduce
Kafka Connect JdbcSinkConfig:
auto.create = false
auto.evolve = false
batch.size = 3000
connection.attempts = 3
connection.backoff.ms = 10000
connection.password = [hidden]
connection.url = jdbc:clickhouse://clickhouse-2.censored.com:8123/deploy_xeen?transactionSupport=true
connection.user = censored
db.timezone = UTC
delete.enabled = false
dialect.name =
fields.whitelist = []
insert.mode = insert
max.retries = 10
mssql.use.merge.holdlock = true
pk.fields = []
pk.mode = none
quote.sql.identifiers = ALWAYS
retry.backoff.ms = 3000
table.name.format = hero_stats
table.types = [TABLE]
trim.sensitive.log = false

Expected behaviour
No errors.
Error log
ClickHouse server:
2023.05.25 14:18:59.991498 [ 625 ] {} <Error> DynamicQueryHandler: Code: 372. DB::Exception: Session not found. (SESSION_NOT_FOUND), Stack trace (when copying this message, always include the lines below):

0. DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0xe1e20b5 in /usr/bin/clickhouse
1. ? @ 0x8a14396 in /usr/bin/clickhouse
2. DB::Session::makeSessionContext(String const&, std::chrono::duration<long long, std::ratio<1l,<PHONE_NUMBER>l>>, bool) @ 0x139f369a in /usr/bin/clickhouse
3. DB::HTTPHandler::processQuery(DB::HTTPServerRequest&, DB::HTMLForm&, DB::HTTPServerResponse&, DB::HTTPHandler::Output&, std::optional<DB::CurrentThread::QueryScope>&) @ 0x14972114 in /usr/bin/clickhouse
4. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&) @ 0x14978fee in /usr/bin/clickhouse
5. DB::HTTPServerConnection::run() @ 0x149e7a7d in /usr/bin/clickhouse
6. Poco::Net::TCPServerConnection::start() @ 0x17919874 in /usr/bin/clickhouse
7. Poco::Net::TCPServerDispatcher::run() @ 0x1791aa9b in /usr/bin/clickhouse
8. Poco::PooledThread::run() @ 0x17aa2327 in /usr/bin/clickhouse
9. Poco::ThreadImpl::runnableEntry(void*) @ 0x17a9fd5d in /usr/bin/clickhouse
10. ? @ 0x7f61d3f42b43 in ?
11. clone @ 0x7f61d3fd3bb4 in ?
 (version <IP_ADDRESS> (official build))
2023.05.25 14:18:59.993352 [ 625 ] {} <Error> DynamicQueryHandler: Code: 372. DB::Exception: Session not found. (SESSION_NOT_FOUND), Stack trace (when copying this message, always include the lines below):

0. DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0xe1e20b5 in /usr/bin/clickhouse
1. ? @ 0x8a14396 in /usr/bin/clickhouse
2. DB::Session::makeSessionContext(String const&, std::chrono::duration<long long, std::ratio<1l,<PHONE_NUMBER>l>>, bool) @ 0x139f369a in /usr/bin/clickhouse
3. DB::HTTPHandler::processQuery(DB::HTTPServerRequest&, DB::HTMLForm&, DB::HTTPServerResponse&, DB::HTTPHandler::Output&, std::optional<DB::CurrentThread::QueryScope>&) @ 0x14972114 in /usr/bin/clickhouse
4. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&) @ 0x14978fee in /usr/bin/clickhouse
5. DB::HTTPServerConnection::run() @ 0x149e7a7d in /usr/bin/clickhouse
6. Poco::Net::TCPServerConnection::start() @ 0x17919874 in /usr/bin/clickhouse
7. Poco::Net::TCPServerDispatcher::run() @ 0x1791aa9b in /usr/bin/clickhouse
8. Poco::PooledThread::run() @ 0x17aa2327 in /usr/bin/clickhouse
9. Poco::ThreadImpl::runnableEntry(void*) @ 0x17a9fd5d in /usr/bin/clickhouse
10. ? @ 0x7f61d3f42b43 in ?
11. clone @ 0x7f61d3fd3bb4 in ?
 (version <IP_ADDRESS> (official build))

Kafka Connect:
[2023-05-25 14:19:00,002] WARN Write of 1 records failed, remainingRetries=10 (io.confluent.connect.jdbc.sink.JdbcSinkTask)
java.sql.SQLException: Code: 372. DB::Exception: Session not found. (SESSION_NOT_FOUND) (version <IP_ADDRESS> (official build))
, server ClickHouseNode [uri=http://clickhouse-2.censored.com:8123/deploy_xeen, options={transactionSupport=true}]@1625048275
	at com.clickhouse.jdbc.SqlExceptionUtils.handle(SqlExceptionUtils.java:85)
	at com.clickhouse.jdbc.SqlExceptionUtils.create(SqlExceptionUtils.java:31)
	at com.clickhouse.jdbc.SqlExceptionUtils.handle(SqlExceptionUtils.java:90)
	at com.clickhouse.jdbc.internal.ClickHouseConnectionImpl.getTableColumns(ClickHouseConnectionImpl.java:267)
	at com.clickhouse.jdbc.internal.ClickHouseConnectionImpl.prepareStatement(ClickHouseConnectionImpl.java:843)
	at com.clickhouse.jdbc.ClickHouseConnection.prepareStatement(ClickHouseConnection.java:121)
	at io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.createPreparedStatement(GenericDatabaseDialect.java:368)
	at io.confluent.connect.jdbc.sink.BufferedRecords.add(BufferedRecords.java:138)
	at io.confluent.connect.jdbc.sink.JdbcDbWriter.write(JdbcDbWriter.java:74)
	at io.confluent.connect.jdbc.sink.JdbcSinkTask.put(JdbcSinkTask.java:88)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:587)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:336)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:237)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:206)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:202)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:257)
	at org.apache.kafka.connect.runtime.isolation.Plugins.lambda$withClassLoader$1(Plugins.java:181)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
	Suppressed: java.sql.SQLException: Invalid transaction due to session not found or timed out
		at com.clickhouse.jdbc.SqlExceptionUtils.handle(SqlExceptionUtils.java:85)
		at com.clickhouse.jdbc.internal.JdbcTransaction.rollback(JdbcTransaction.java:63)
		at com.clickhouse.jdbc.internal.ClickHouseConnectionImpl.rollback(ClickHouseConnectionImpl.java:550)
		at io.confluent.connect.jdbc.sink.JdbcDbWriter.write(JdbcDbWriter.java:86)
		... 13 more
	Caused by: java.io.IOException: Code: 372. DB::Exception: Session not found. (SESSION_NOT_FOUND) (version <IP_ADDRESS> (official build))

		at com.clickhouse.client.http.HttpUrlConnectionImpl.checkResponse(HttpUrlConnectionImpl.java:184)
		at com.clickhouse.client.http.HttpUrlConnectionImpl.post(HttpUrlConnectionImpl.java:227)
		at com.clickhouse.client.http.ClickHouseHttpClient.send(ClickHouseHttpClient.java:124)
		at com.clickhouse.client.AbstractClient.sendAsync(AbstractClient.java:161)
		at com.clickhouse.client.AbstractClient.lambda$execute$0(AbstractClient.java:273)
		at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
		... 3 more
Caused by: java.io.IOException: Code: 372. DB::Exception: Session not found. (SESSION_NOT_FOUND) (version <IP_ADDRESS> (official build))

	at com.clickhouse.client.http.HttpUrlConnectionImpl.checkResponse(HttpUrlConnectionImpl.java:184)
	at com.clickhouse.client.http.HttpUrlConnectionImpl.post(HttpUrlConnectionImpl.java:227)
	at com.clickhouse.client.http.ClickHouseHttpClient.send(ClickHouseHttpClient.java:124)
	at com.clickhouse.client.AbstractClient.execute(AbstractClient.java:280)
	at com.clickhouse.client.ClickHouseClientBuilder$Agent.sendOnce(ClickHouseClientBuilder.java:282)
	at com.clickhouse.client.ClickHouseClientBuilder$Agent.send(ClickHouseClientBuilder.java:294)
	at com.clickhouse.client.ClickHouseClientBuilder$Agent.execute(ClickHouseClientBuilder.java:349)
	at com.clickhouse.client.ClickHouseClient.executeAndWait(ClickHouseClient.java:1056)
	at com.clickhouse.client.ClickHouseRequest.executeAndWait(ClickHouseRequest.java:2154)
	at com.clickhouse.jdbc.internal.ClickHouseConnectionImpl.getTableColumns(ClickHouseConnectionImpl.java:264)
	... 18 more
[2023-05-25 14:19:00,002] INFO Closing connection #1 to Generic (io.confluent.connect.jdbc.util.CachedConnectionProvider)
[2023-05-25 14:19:00,007] INFO Initializing writer using SQL dialect: GenericDatabaseDialect (io.confluent.connect.jdbc.sink.JdbcSinkTask)
[2023-05-25 14:19:00,007] ERROR WorkerSinkTask{id=gone_deploy-xeen_hero_stats-0} RetriableException from SinkTask: (org.apache.kafka.connect.runtime.WorkerSinkTask)
org.apache.kafka.connect.errors.RetriableException: java.sql.SQLException: Exception chain:
java.sql.SQLException: Code: 372. DB::Exception: Session not found. (SESSION_NOT_FOUND) (version <IP_ADDRESS> (official build))
, server ClickHouseNode [uri=http://clickhouse-2.censored.com:8123/deploy_xeen, options={transactionSupport=true}]@1625048275
java.io.IOException: Code: 372. DB::Exception: Session not found. (SESSION_NOT_FOUND) (version <IP_ADDRESS> (official build))

	at io.confluent.connect.jdbc.sink.JdbcSinkTask.put(JdbcSinkTask.java:114)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:587)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:336)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:237)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:206)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:202)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:257)
	at org.apache.kafka.connect.runtime.isolation.Plugins.lambda$withClassLoader$1(Plugins.java:181)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.sql.SQLException: Exception chain:
java.sql.SQLException: Code: 372. DB::Exception: Session not found. (SESSION_NOT_FOUND) (version <IP_ADDRESS> (official build))
, server ClickHouseNode [uri=http://clickhouse-2.censored.com:8123/deploy_xeen, options={transactionSupport=true}]@1625048275
java.io.IOException: Code: 372. DB::Exception: Session not found. (SESSION_NOT_FOUND) (version <IP_ADDRESS> (official build))

	at io.confluent.connect.jdbc.sink.JdbcSinkTask.getAllMessagesException(JdbcSinkTask.java:159)
	at io.confluent.connect.jdbc.sink.JdbcSinkTask.put(JdbcSinkTask.java:108)
	... 12 more
[2023-05-25 14:19:00,766] INFO Attempting to open connection #1 to Generic (io.confluent.connect.jdbc.util.CachedConnectionProvider)
[2023-05-25 14:19:00,785] INFO JdbcDbWriter Connected (io.confluent.connect.jdbc.sink.JdbcDbWriter)
[2023-05-25 14:19:00,819] INFO Checking Generic dialect for existence of TABLE "hero_stats" (io.confluent.connect.jdbc.dialect.GenericDatabaseDialect)
[2023-05-25 14:19:00,854] INFO Using Generic dialect TABLE "hero_stats" present (io.confluent.connect.jdbc.dialect.GenericDatabaseDialect)
[2023-05-25 14:19:00,886] INFO Checking Generic dialect for type of TABLE "hero_stats" (io.confluent.connect.jdbc.dialect.GenericDatabaseDialect)

Configuration
Environment

Client version: clickhouse-jdbc-0.4.6-shaded.jar
OS: official Docker images:

clickhouse/clickhouse-server:<IP_ADDRESS>
confluentinc/cp-kafka-connect-base:7.4.0

ClickHouse server

ClickHouse Server version: <IP_ADDRESS>
ClickHouse Server non-default settings, if any:

<allow_experimental_transactions>1</allow_experimental_transactions>

<!-- Maximum session timeout, in seconds. Default: 3600. -->
<max_session_timeout>3600</max_session_timeout>

<!-- Default session timeout, in seconds. Default: 60. -->
<default_session_timeout>60</default_session_timeout>

Hi @lystor, AFAIK, transaction support in ClickHouse is still experimental, which means it is not yet ready for production use. However, it is encouraged to use this feature to address integrity issues and provide feedback. I haven't encountered any problems related to this feature causing data corruption or loss, but it is recommended to search the ClickHouse main repository for further evaluation before applying it to your PROD environment.
It appears that there are multiple ClickHouse servers running behind the DNS, and the following events occurred:

Kafka Connect asked JDBC driver to start a transaction, hence session was created on server 1
Kafka Connect passed a query like insert into ch_table values(?,?,?) to the JDBC driver
The JDBC driver attempted to execute a query select * from ch_table where 0 on server 2 (using the same session ID) to determine parameter types(for serializing Java objects in the RowBinary data format)
Server 2 reported a session not found error, because the session was created on server 1 and did not exist on server 2

As a workaround, you may want to enable sticky session on your load balancer by checking the session_id parameter in the request URL. Enabling implicit_transaction may help too if the JDBC driver is used in auto-commit mode. However, this is not the case in Kafka Connect, as auto-commit is disabled.
Adding a ClickHouse dialect to Kafka Connect could be beneficial. However, it's not advisable to enhance the driver to support one transaction per query, regardless of whether auto-commit is enabled or not.

Hi @zhicwu,
Thank you for your detailed answer.

It appears that there are multiple ClickHouse servers running behind the DNS

Nope.
A single ClickHouse Server and a single ClickHouse Keeper are used without any load balancers.
It seems the problem is caused by the JDBC driver.
Full configuration below.
config.xml:
<clickhouse>
    <allow_experimental_transactions>1</allow_experimental_transactions>

    <backups>
        <allowed_disk>backups</allowed_disk>
        <allowed_path>/backups/</allowed_path>
    </backups>

    <grpc remove="remove"></grpc>

    <listen_host remove="remove">::</listen_host>

    <logger replace="replace">
        <console>1</console>
        <level>warning</level>
    </logger>

    <max_partition_size_to_drop>0</max_partition_size_to_drop>
    <max_table_size_to_drop>0</max_table_size_to_drop>

    <mysql_port remove="remove"></mysql_port>

    <postgresql_port remove="remove"></postgresql_port>

    <prometheus>
        <asynchronous_metrics>true</asynchronous_metrics>
        <endpoint>/metrics</endpoint>
        <events>true</events>
        <metrics>true</metrics>
        <port>9187</port>
        <status_info>true</status_info>
    </prometheus>

    <storage_configuration>
        <disks>
            <backups>
                <type>local</type>
                <path>/backups/</path>
            </backups>
        </disks>
    </storage_configuration>

    <zookeeper>
        <node>
            <host>clickhouse-2.censored.local</host>
            <port>9181</port>
        </node>
    </zookeeper>
</clickhouse>

keeper_config.xml:
<clickhouse>
    <listen_host><IP_ADDRESS></listen_host>

    <logger replace="replace">
        <console>1</console>
        <level>warning</level>
    </logger>

    <keeper_server>
            <tcp_port>9181</tcp_port>

            <server_id>1</server_id>

            <raft_configuration replace="replace">
                <server>
                    <id>1</id>
                    <hostname>clickhouse-2.censored.local</hostname>
                    <port>9234</port>
                </server>
            </raft_configuration>
    </keeper_server>
</clickhouse>

users.xml:
<clickhouse>
    <profiles>
        <default>
            <allow_introspection_functions>1</allow_introspection_functions>
        </default>
    </profiles>

    <users>
        <default>
            <access_management>1</access_management>
            <named_collection_control>1</named_collection_control>
            <show_named_collections>1</show_named_collections>
            <show_named_collections_secrets>1</show_named_collections_secrets>

            <networks replace="replace">
                <ip><IP_ADDRESS></ip>
            </networks>
        </default>
    </users>
</clickhouse>

initdb.sql:
CREATE USER IF NOT EXISTS censored IDENTIFIED BY 'censored';
GRANT SELECT ON *.* TO censored;
GRANT INSERT ON *.* TO censored;

docker-compose.yml:
version: "3.8"

services:
  keeper:
    command:
      - /usr/bin/clickhouse-keeper
      - --config-file=/etc/clickhouse-keeper/keeper_config.xml
    image: clickhouse/clickhouse-keeper:<IP_ADDRESS>
    logging:
      options:
        max-size: 10m
        max-file: "2"
    network_mode: host
    ports:
      - "9181:9181"
      - "9234:9234"
    restart: unless-stopped
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65000
        hard: 65000
    user: clickhouse
    volumes:
      - ./keeper/keeper_config.xml:/etc/clickhouse-keeper/keeper_config.d/censored.xml:ro
      - /data/clickhouse/keeper:/var/lib/clickhouse

  server:
    cap_add:
      - IPC_LOCK
      - NET_ADMIN
      - SYS_NICE
    image: clickhouse/clickhouse-server:<IP_ADDRESS>
    logging:
      options:
        max-size: 10m
        max-file: "2"
    network_mode: host
    ports:
      - "8123:8123"
      - "9000:9000"
      - "9187:9187"
    restart: unless-stopped
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65000
        hard: 65000
    user: clickhouse
    volumes:
      - ./server/config.xml:/etc/clickhouse-server/config.d/censored.xml:ro
      - ./server/initdb.sql:/docker-entrypoint-initdb.d/initdb.sql:ro
      - ./server/users.xml:/etc/clickhouse-server/users.d/censored.xml:ro
      - /data/clickhouse/server:/var/lib/clickhouse
      - backups:/backups

volumes:
  backups:
    driver_opts:
      type: "nfs"
      o: "addr=backup-1.censored.local,intr,nfsvers=4.1,noatime,nodiratime,soft"
      device: "backup-1.censored.local:/data/clickhouse"

kafka-connect Dockerfile:
FROM confluentinc/cp-kafka-connect-base:7.4.0

ENV CONNECT_PLUGIN_PATH="/usr/share/java,/usr/share/confluent-hub-components"

RUN set -ex \
    && confluent-hub install --no-prompt confluentinc/kafka-connect-avro-converter:7.4.0 \
    && confluent-hub install --no-prompt confluentinc/kafka-connect-jdbc:10.7.0 \
    && cd /usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib \
    && curl -fsLO https://github.com/ClickHouse/clickhouse-java/releases/download/v0.4.6/clickhouse-jdbc-0.4.6-shaded.jar

kafka-connect StatefulSet:
  ...
      containers:
      - env:
        - name: CONNECT_BOOTSTRAP_SERVERS
          value: kafka-1-dev-ps.censored.com:9092
        - name: CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR
          value: "1"
        - name: CONNECT_CONFIG_STORAGE_TOPIC
          value: gone_deploy-xeen_kafka-connect-config
        - name: CONNECT_GROUP_ID
          value: deploy-xeen
        - name: CONNECT_KEY_CONVERTER
          value: io.confluent.connect.avro.AvroConverter
        - name: CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL
          value: http://kafka-1-dev-ps.censored.com:8081
        - name: CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR
          value: "1"
        - name: CONNECT_OFFSET_STORAGE_TOPIC
          value: gone_deploy-xeen_kafka-connect-offset
        - name: CONNECT_REST_ADVERTISED_HOST_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: CONNECT_REST_PORT
          value: "8083"
        - name: CONNECT_STATUS_STORAGE_REPLICATION_FACTOR
          value: "1"
        - name: CONNECT_STATUS_STORAGE_TOPIC
          value: gone_deploy-xeen_kafka-connect-status
        - name: CONNECT_VALUE_CONVERTER
          value: io.confluent.connect.avro.AvroConverter
        - name: CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL
          value: http://kafka-1-dev-ps.censored.com:8081
        - name: KAFKA_HEAP_OPTS
          value: -Xms512M -Xmx512M
        - name: KAFKA_JMX_OPTS
          value: -javaagent:/usr/share/java/cp-base-new/jmx_prometheus_javaagent-0.18.0.jar=9187:/etc/kafka-connect-exporter/config.yml
        image: artifactory-1.censored.com/kafka-connect:xeen-4504
        name: kafka-connect
...

Enabling implicit_transaction may help too

I am going to try it.
Thank you.

Thank you, @lystor, for providing additional details about the environment.
The transaction depends on the session to function properly. Therefore, if an insert operation takes longer than the default session timeout, the transaction will be rolled back on the server, and the client will receive a "session not found" error. Have you attempted to increase the values of transaction_timeout or session_timeout (in seconds) in the JDBC connection string? Alternatively, you can consider increasing the value of default_session_timeout in the server configuration.
I will improve the error message to make it less confusing for others.

Therefore, if an insert operation takesis reproduced longer than the default session timeout.

We don't have such long transactions.
The bug has 100% reproduction rate on new idle server without any workload and active users even on insert of single row.
STR: delay between events in kafka longer than max_session_timeout.
The server's configuration is provided below.

delay between events in kafka longer than max_session_timeout.

I see. Actually, the transaction begins when jdbcConnection.setAutoCommit(false) is called. After either a commit() or a rollback() operation, the current transaction is closed, and a new transaction is initiated.
Perhaps it would be preferable to delay initiating the transaction until the first query is executed. In the meantime, as a workaround, you can increase the values of transaction_timeout or session_timeout in connection string.

@zhicwu , thank you for the workaround.
Last question: are you going to make some fixes in the JDBC-driver to remove this annoying and useless DB::Exception: Session not found from logs?
Or this is the expected behavior, and users have to accept and live with these errors in the logs on both client and ClickHouse server sides?

The current behavior is as expected, although it can be confusing. Nevertheless, there is room for improvement in terms of usability. It is uncertain whether session and transaction will be decoupled in the future. However, for the Java library, I am contemplating implementing two modifications:

[ ] Introduce a new JDBC option(or something like transactionSupport=lazy) that allows deferring the creation of the transaction/session until the first query is executed. This option will help prevent unintended long transactions when reusing the same connection with auto-commit disabled.
[ ] Translate the "session_not_found" error from the server to indicate that the transaction has been rolled back when we are certain that the transaction has been initiated

Let's keep this issue as open until the necessary changes have been implemented.

I don't see a property called transactionSupport in https://clickhouse.com/docs/en/integrations/java/jdbc-driver . Has this property been renamed?


is it possible to draw a cuboid on lidar data using deck.gl ?

i need to draw a 3d box on lidar. dont know to do

https://avs.auto/#/xviz/protocol/schema/geometry-primitives
Essentially you are drawing a polygon in the world view


Tidied code

dirtymarkup.com

This change is

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks broke.

Comments from Reviewable


NIFI-3214: Added fetch and replace to DistributedMapCache

There's no Processor that utilizes these new cache operations yet, but will be added by JIRA-3216. To test client and server communication, please use org.apache.nifi.distributed.cache.server.TestServerAndClient test class in nifi-distributed-cache-server project. If you need to test it on Mac OS X, then you also have to comment out these lines. Sometime it fails due to JVM issue but sometime it works:
Assume.assumeFalse("test is skipped due to build environment being OS X with JDK 1.8. See https://issues.apache.org/jira/browse/NIFI-437",
    SystemUtils.IS_OS_MAC && SystemUtils.IS_JAVA_1_8);

Using fetch and replace together can provide optimistic locking for  concurrency control.
Added fetch to get cache entry with its meta data such as revision number.
Added replace to update cache only if it has not been updated.
Added Map Cache protocol version 2 for those new operations.
Existing operations such as get or put can work with protocol version  1.

Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Is your initial contribution a single, squashed commit?

For code changes:

[x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[x] Have you written or updated unit tests to verify your changes?
[x] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[x] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[x] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[x] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

Reviewing...

+1 Verified build passes with contrib-check, tested the Wait/Notify processors to test original cache functionality, code looks good, will merge to master, thanks Koji!


[R] instruction to build GPU-enabled pkg on Windows. close #3902

@sandeep-krishnamurthy

Can we have this content moved here - http://mxnet.io/get_started/install.html?

Makes sense.
Content looks good to me.
This docs/get_started/windows_setup.md is not directly linked from any page.
May be we should add a link in install page Windows/R/GPU ?

@sandeep-krishnamurthy The link has been added.


Added 2 tests.

One for PlayerFullHealth
One for PlayerGodMode

Looking good! Som man säger i amerikat!


Update to Alpine 3.7/GraphViz 2.40 for cylinder shape

Hey, great project!  Your Docker image is the top spot on Google for docker graphviz.
Would you mind updating to Alpine 3.7 which ships with GraphViz 2.40 (up from 2.38)?  GraphViz 2.38 doesn't know about the cylinder shape but that's resolved in 2.39.  The cylinder shape is useful for illustrating a database.
Thanks!

@noahwilliamsson thanks for you interest in the project but I no longer have a need for it. I'm archiving this repository but feel free to keep your fork updated! 🍻


Slow Firefox performance when using image filters

It looks like Firefox is about 3 times slower when doing image filter operations to big images compared to the Chrome and Safari which are both very FAST. Any ideas if there is anything which I can do to improve performance or is there some optimizations to do in the Lienzo core which might help?

I've spent HOURS in Firefox Developer Edition https://www.mozilla.org/en-US/firefox/developer/
Looking for a place to make improvements in image filters, Developer Edition has a JavaScript Profiler.
My conclusion: Anything Firefox does with Images on Canvas is just SLOW.
And perhaps worst of all, I found out recently that Firefox has a HARD limit of about 800K on data URL's, which means although it will serialize am image as a data URL, if it's over say 256x256, it likely can't read it. What makes this even worse is that Firefox, for some ungodly reason, produces data URL's for images maybe 8x larger than Chrome.
GAH!


Regression using dozer-5.5.1 as a module

Seeing a regression after upgrading from dozer 5.4.0 to dozer 5.5.1 using dozer as a module in JBoss EAP / WildFly.   It seems to be tied to this commit -
https://github.com/DozerMapper/dozer/commit/9cc39d23206655102b73bca53f9329e13c2df6d7
Here's the exception I'm seeing -
https://gist.github.com/cunningt/bf155988d8cbe3e88148
If try to back off on to using the TCCL rather than the BeanClassLoader to load the mapping and the class files, it seems to fix the problem.

Submitted PR - https://github.com/DozerMapper/dozer/pull/249


v1.2.4

Features

[x] Use _.create in .extend https://github.com/jashkenas/backbone/pull/3553
[x] Add #findIndex and #findLastIndex to Collection https://github.com/jashkenas/backbone/pull/3811
[ ] Add #preinitialize https://github.com/jashkenas/backbone/pull/3827
[ ] Add update event feedback https://github.com/jashkenas/backbone/pull/3711

Bug Fixes

[x] #_removeModels model still in collection regression https://github.com/jashkenas/backbone/pull/3803
[x] #set model id regression https://github.com/jashkenas/backbone/pull/3833
[x] #remove returning false regression https://github.com/jashkenas/backbone/pull/3837
[x] #reduce and friends regression https://github.com/jashkenas/backbone/pull/3820
[ ] Deopt Underscore methods containing arguments https://github.com/jashkenas/backbone/pull/3840

/cc @paulfalgout. :smile:

Well Jeremy is currently taking on the Americas on his bike, so I believe the decision falls to @braddunbar on how and when to cut a release.
#3827, #3820 and  are pretty ugly hacks. Are you sure they're necessary?

I scaled #3820 back to just deopting #reduce, not the arguments check that's now in #3840. The arguments check isn't necessary.

As for #3827, I think it should go out with this release, since I don't imagine any more v1 releases (I'd rather start merging v2 PRs). Non-breaking, generic, and people can choose to incorporate ES6 without redoing the entire app for v2.
I think it's pretty good solution... Do you have a particular objection to it?

The arguments check isn't necessary.

Right, I was referring to pre-split. I'm still not a fan of #8040.

I'd rather start merging v2 PRs

What've you got in mind for v2?  Something more gradual?

I think it's pretty good solution... Do you have a particular objection to it?

(Responding there for clarity)

Adding https://github.com/jashkenas/backbone/issues/3842 as a needed bugfix.

updates?

Ping.

For the remaining new features of

Add #preinitialize #3827
Add update event feedback #3711

I think they can be cut unless there are PRs ready to merge. It looks like there's a PR for #3711 but it has fallen idle with merge conflicts.

Agreed, I think this is ready to go.

@braddunbar

Anyone want to draft up a pull request with changelog/documentation updates?

Ping? @braddunbar

If not I'll try to get a PR out tonight.

It's usually @paulfalgout. :smile:

First one with the PR wins!

ha!  Yeah @jdalton take it if you're up for it.  I am a bit snowed under this week.  If you don't get around to it, I'll jump in later.

Draft changelog at #3921.

Closing with #3921.


add vod offset to clip response

I added field VodOffset to clip response struct and added it to the response in tests
It was neede in this issue

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 93.056%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1434

Relevant Lines:
1541

💛  - Coveralls


Aggregate functions returning intermediate values in expressions

@mccanne made an observation back in March, 2020:

It would be nice to be able to say:
zq 'count() >= 300000 && count() < 400000'

That is,  the expression would evaluate to the aggregate function's result over all the input up to that record.

This is related to the traverse project.

Completed with https://github.com/brimdata/zed/pull/3305


Add easy custom url address config feature

Hello, i try to use our beloved Quark Palyer to play videos from sites like :
https://french-anime.com/exclue/1243-jjjujutsu-kaisenn.html
https://v5.voiranime.com/anime/link-click-2/link-click-2-03-vostfr/
https://vostfree.ws/689-sayonara-no-asa-ni-yakusoku-no-hana-wo-kazarou-vf-ddl-streaming.html
and other sites, but unfortunately nothing happens, we would love to try this new electron app browser with streaming websites and see the impact on performance and battery and smooth playback compared to traditional web browsers, so it will be great to add easy configuration tool in order to add our custom url, thank you !
EDIT : Awesome ! I just found a trick to be able to access all the sites you want, just activate the google service in settings/enable/disable services and voila, you have the google search engine and you can access all the desired websites!! Thank you very much Mr Alex :)

@trimechee You can already use a custom URL. Go to 'Services' > 'Open Custom URL', or use the keyboard shortcut Ctrl + O


virtual: factor label selector injection out

This makes the underlying code more reusable for other types of filters
that virtual workspaces might want to use.
Signed-off-by: Steve Kuznetsov<EMAIL_ADDRESS>/assign @sttts

@sttts updated - looked at returning an error but it would mean refactoring ... a lot ....

I don't want to continue waiting for enormous PRs that are WIP. We should work in small, incremental bits. This factoring is useful for my current work, and stands alone.

We're doing a live GET during the UPDATE flow (!!!!) so this PR is incorrect ...
/hold

@sttts updated

Just a nit. And tests are red.

Weird, passes for me locally:
$ make test-e2e WHAT=./test/e2e/virtual/syncer
NO_GORUN=1 go test -race -count 1 -p 1 -parallel 1 ./test/e2e/virtual/syncer
ok  	github.com/kcp-dev/kcp/test/e2e/virtual/syncer	31.987s

Also in parallel:
$ make test-e2e WHAT=./test/e2e/virtual/syncer COUNT=5 E2E_PARALLELISM=5
NO_GORUN=1 go test -race -count 5 -p 5 -parallel 5 ./test/e2e/virtual/syncer
ok  	github.com/kcp-dev/kcp/test/e2e/virtual/syncer	104.371s

@sttts updated

@ncdc addressed comments


Azure Search .NET Client API supporting gzip compression on response streams

Just opening the discussion to enable end-to-end support for gzip compression for the .NET Client for Azure Search.
Sample calling code:
        var response = await _indexClient.Documents.GetWithHttpMessagesAsync<T>(id, new List<string>() { "*" }, new SearchRequestOptions(), new Dictionary<string, List<string>>()
        {
            {"Accept-Encoding", new List<string>(){ "gzip", "deflate"}}
        }, cancellationToken);

Its ugly, but it does instruct the client to bring down the data gzip'd.
The problem is that the .NET Client always assumes the response will be a string response, as per:
https://github.com/Azure/azure-sdk-for-net/blob/psSdkJson6/src/SDKs/Search/DataPlane/Microsoft.Azure.Search/GeneratedSearchService/DataSourcesOperations.cs#L296
The client needs to check for the Content-Encoding header, and if gzip, handle it appropriately.
Thanks.

The code you've pointed out is generated by the AutoRest tool. Any fix would need to originate there. I suggest opening an issue in the Azure/autorest repo.

Thanks Bruce, I just posted it over here:
https://github.com/Azure/autorest/issues/2604


AVRO-3498 Deprecate NameCtorKey

Jira

[ ] My PR addresses the following Avro Jira issues and references them in the PR title. For example, "AVRO-1234: My Avro PR"

https://issues.apache.org/jira/browse/AVRO-3498

Tests

[ ] My PR does not need testing for this extremely good reason: Deprecating code, there was no coverage of this code.

Commits

[ ] My commits all reference Jira issues in their subject lines. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain Javadoc that explain what it does

Again too many "Merge branch 'apache:master' into master" commits in a fresh PR.


Integration ability

I'm trying to integrate your Chat UI into Monal, an open source XMPP chat app (https://github.com/monal-im/Monal).
While doing so, I've noticed, that your data models (Message, User etc.) are structs rather than protocols implemented by structs or classes.
That makes it very difficult to extend/change the behavior of those models, because structs can not inherit from other structs, but only from protocols and extensions for a struct aren't allowed to add stored properties. (https://stackoverflow.com/a/56183391)
I'm planning to change the model structs to classes and create a pull request.
Is such a PR (and generally other PRs improving things if I come along them) welcome in this project or not?
(I don't want to invest time if it's clear from the outset that my prs won't be merged anyway.)

Hey @tmolitor-stud-tu, yes, PRs are welcome and well appreciated. I agree protocols would be much better than structs, but I remember I encountered some swiftUI specific problems while trying to implements it through protocols or classes, however I don't remember the specifics. So if you manage to make it work, without changing the API too much, that would be simply wonderful. Have a brilliant day!

Great, I'll give it a go then! :)

I'm trying something seemingly simple like having my User model return a UIKit UIImage or SwiftUI Image as avatar image instead of providing an URL (in Monal everything is already downloaded and cached etc. and our internal API already returns a proper UIImage).
The goal would be to do this without having to rewrite or copy over a huge portion of Views from ExyteChat to Monal.
But this seems nearly impossible given that, for example, the ChatMessageView, MessageView etc. are all not public and very interlinked.
I'm not sure if I'll manage to make this "simple" task possible without rewriting most of your code :(


Class 'ActionDashboardFragmentToTransactionDetailsFragment' is not abstract and does not implement abstract member public abstract fun getActionId(): Int defined in androidx.navigation.NavDirections

Class 'ActionDashboardFragmentToTransactionDetailsFragment' is not abstract and does not implement abstract member public abstract fun getActionId(): Int defined in androidx.navigation.NavDirections

same problem

any way out?

replace this
id("androidx.navigation.safeargs.kotlin")
for this
id("androidx.navigation.safeargs")


Missing from README: What is this? Why should I care?

I am intrigued in concept by the idea of mocktail, but I can't easily understand what it is. Ideally, I'd see a concise description of the problem, and how mocktail solves that. Perhaps a quick code example, showing before/after mocktail could help?
There's nothing about this in the README, and while there seems to be solid docs (nice work!) on implementing mocktail etc, they seem to make me get into the details before I can understand whether it's worth that effort.

Thanks for the feedback.


1871 key value metadata

First stab at this. Please see the TODO item in the test - I'd like to make the test fail but not sure how to get res.save() to fail in a meaningful way.

+1


Xerces-C can't be found by CMake anymore

I have used Xerces-C 3.2.2-6 which worked without hassle.
I did a git pull today (using 3.2.2-7) and rebuilt all my libraries.
However, CMake doesn't find Xerces-C anymore:
CMake Error at D:/vcpkg/installed/x86-windows/share/xercesc/XercesCConfigInternal.cmake:80 (message):
The imported target "xerces_xerces-c" references the file

 "D:/vcpkg/debug/lib/xerces-c_3D.lib"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

 "D:/vcpkg/installed/x86-windows/share/xercesc/XercesCConfigInternal.cmake"

 but not all the files it references.

 Call Stack (most recent call first):
 D:/vcpkg/installed/x86-windows/share/xercesc/XercesCConfig.cmake:27 (include)
 D:/vcpkg/scripts/buildsystems/vcpkg.cmake:233 (_find_package)
 CMakeLists.txt:26 (find_package)

Configuring incomplete, errors occurred!

The given path D:/vcpkg/debug/lib/xerces-c_3D.lib doesn't exist anyway.

I had a similar issue on Linux and have a work-around.  In the file: installed/x64-linux/share/xercesc/XercesCConfigInternal.cmake:
Lines 46-49 has 4 calls to get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) for parent traversal.  Commenting out two of those 4 got it working.

that is strange theoretically vcpkg_fixup_cmake_targets should take care of it.
In addition to that the portfile includes the following lines:
file(READ ${CURRENT_PACKAGES_DIR}/share/xercesc/XercesCConfigInternal.cmake _contents)
string(REPLACE
    "get_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)"
    "get_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)"
    _contents
    "${_contents}"
)
file(WRITE ${CURRENT_PACKAGES_DIR}/share/xercesc/XercesCConfigInternal.cmake "${_contents}")

Lines 46-49 has 4 calls to get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) for parent traversal. Commenting out two of those 4 got it working.

@JoshBramlett your workaround worked for me as well under Windows 10.
I still don't know what caused this issue when upgrading from 3.2.2-6 to -7

@s-martin, thank you for posting the issue, the latest version is 3.2.2-8, does the issue still occur?

@wangli28 thanks, I will check tonight.

@wangli28 still doesn't work, have to use the workaround from above.

Thanks for posting this issue. This issue has been fixed. So I am closing this issue for now.


DUPLO-26483 TF:GCP:Security Rule: Add validation for 'IP protocol number'

Overview
Validation for IP protocol number
Summary of changes
Added validation to service_protocol to except number from 0-255
This PR does the following:

Added regex validation for number between 0-255
...

Testing performed

[ ] Using unit tests
[ ] Manually, on my local system
[✔ ] Manually, on a remote test system

Describe any breaking changes

...

Task linked: DUPLO-26483 TF:GCP:Security Rule: Add validation for 'IP protocol number'


[Feature][Jira Transformation] Support to incident tickets using status transition

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Use case
In my process, we use one Jira ticket to control the incidents, and we have some status to control it.
When an incident is happening we have a status called "In Progress", and when the incident is mitigated from production we still use the same ticket to aggregate all the improvements related to it, and for it, we keep the ticket as "Investigating/Implementing Solutions", then we finish this incident just when we have all the propose improvements in place.
We want to use DevLake to measure the incident time based on open status changes from one ticket and not just based on if that status is closed or open like supports now.
Description
I believe we could have the option to select from what status to what status we want to determine if that incident was closed.
Related issues
No.
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

Hi @msarzijr , thanks for the proposal. I'll think about it.


Remove toasters and add an activity page

The application currently uses toast notifications to inform users about ongoing synchronization tasks and issues. These notifications should be replaced by an "Activity Page" that provides detailed synchronization information for each sync session.
For each synchronization session, a block of information will be displayed, including:

Synchronization start date and time (used to identify each session).
Number of patients pulled from the server out of the total patients that need to be synchronized.
Number of patients pushed to the server out of the total locally modified or newly created patients.
Synchronization completion time.

For each block, a status will be displayed: on going (orange), completed ( green) , completed with X errors (red)
In case of errors:

Total number of errors encountered.
A brief description of each error.
Display only the last XY errors (this limit should be configurable in the application properties).

All synchronization information will be stored locally. The user will have the option to either clear all synchronization session data or selectively delete the data for a specific session.

Can I take up this issue?

Sure and thanks a lot @ameen4455

Thanks @icrc-fdeniger
I've merged PR referring to this issue.
For clarity for this description "All synchronization information will be stored locally. The user will have the option to either clear all synchronization session data or selectively delete the data for a specific session." I've implemented considering to delete the "Synchronization session data" & not the (downloaded/uploaded) resources of that session.


Feature/event handler

Event handler implementation and unit tests also includes some event processor implementation but this is not yet tested

Converting to draft as there are still tests failing