Optimize doResize method with binary search

This pull request addresses issues discussed in #6112 . Currently, if an uploaded image exceeds a certain size threshold, BlueSky reduces the image quality by 10% and checks if the new size falls within the threshold. If not, BlueSky repeats this step until the image quality reaches 0. There are two issues with this approach:

As mentioned in #6112, even a 1-2% decrease in quality can significantly reduce the image size, so the 10% decrement is somewhat overkill.
The current solution could be optimized, especially for larger images. For these, the current approach requires multiple iterations to reach the target size, which is not ideal.

My proposed solution is to use binary search to find the maximum quality level that keeps the image size within the limit. This approach will prevent too much loss in image quality. Not only that, I also ran some benchmarks, and it appears that the current solution may perform slightly better for smaller images. However, for larger images, the binary search method does much better. That said, I only conducted a few tests here, so additional testing may be needed to confirm the difference.

Image Size (KB)
Current Method (ms)
Binary Search Method (ms)

1148
844
1040

1911
5454
6477

3011
5530
3396

3230
6079
5402

10609
12210
4141

14765
26390
10213

This makes sense. Let's do it on all platforms?

I have updated the PR to also support this for the mobile version @gaearon.

Excellent! Uploading photos taken with an iPhone（obviously compression is needed） clearly shows that the new algorithm improves image quality noticeably, with a shorter processing time as well.

This is changing lib/media/manip but I'm seeing some code go through a similar path in src/state/gallery. Would you mind checking how it works today? It seems like maybe it's forked between the image picker vs inline camera, but I'm not sure.


Cannot find scripts/price_feed_scripts/deploy_price_consumer_v3.py

I am doing Patrick's tutorial from here, after calling brownie run scripts/price_feed_scripts/deploy_price_consumer_v3.py --network kovan I get the following error:
ChainlinkProject is the active project.
  File "c:\users\szabi\appdata\roaming\python\python38\lib\site-packages\brownie\_cli\__main__.py", line 64, in main
    importlib.import_module(f"brownie._cli.{cmd}").main()
  File "c:\users\szabi\appdata\roaming\python\python38\lib\site-packages\brownie\_cli\run.py", line 46, in main
    path, _ = _get_path(args["<filename>"])
  File "c:\users\szabi\appdata\roaming\python\python38\lib\site-packages\brownie\project\scripts.py", line 130, in _get_path
    raise FileNotFoundError(f"Cannot find {path_str}")
FileNotFoundError: Cannot find scripts/price_feed_scripts/deploy_price_consumer_v3.py

I assume the filenames were updated and brownie bakes an old version because I have 01_deploy_price_consumer_v3.py  and it requires deploy_price_consumer_v3.py

You're right, please use 01_deploy_price_consumer_v3.py
Could you please follow the readme of this repo? I've updated the blog. Let me know if it still doesn't work? Thanks!


Filtering and Sampling

Codecov Report

Merging #7 into master will increase coverage by 1.65%.
The diff coverage is 56%.

@@            Coverage Diff             @@
##           master       #7      +/-   ##
==========================================
+ Coverage   46.19%   47.84%   +1.65%
==========================================
  Files           7        7
  Lines         210      209       -1
==========================================
+ Hits           97      100       +3
+ Misses        113      109       -4

Impacted Files
Coverage Δ

src/cnn.jl
57.69% <56%> (+13.24%)
:arrow_up:

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 1e6e589...355a46a. Read the comment docs.


Can the database of Sciglass only be used with Microsoft Access 2.0 software?

Hi,
You don't need MS Access 2.0. If you use MS windows, you can find the free
software that converts mdb file to csv file. Once you get csv files, you
can make the files of Pandas DataFrame. In my case I used "ExportMDB" and
works fine. The link is here:
https://www.vector.co.jp/soft/dl/winnt/business/se498853.html. I hope this
would help.
On Fri, Oct 11, 2024 at 10:41 PM ljtys @.***> wrote:

—
Reply to this email directly, view it on GitHub
https://github.com/Masa-Ishimaru/SciGlass-Pandas/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AL76TTUGAQ6JAMVYCEKAW23Z27IQ5AVCNFSM6AAAAABPY6SSSKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU4DCNBRGQZDSNY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


resend button is broken in e2e rooms

rob swain had a message which he couldn't send - shown as 'encrypted msg' in timeline but hitting the resent button in the status bar did nothing

Need to write a UT on the new mutateTo method to check if it does the job.

Killing the app with fire and starting it up again still shows the unsent message in this chat. I'm using the app from the App Store btw. 'Upgraded' from the TestFlight version by installing from the App Store directly i.e. No uninstall/install. However I think this happened after that upgrade.

This has been fixed.


Phone authentication with reCAPTCHA doesn't work after api key restriction to iOS bundle id

Description
If restrict API to iOS app's bundle then reCAPTCHA Phone Number Authentication stops working.
Following error:
{
   "error":{
      "code":403,
      "message":"Requests from this iOS client application <empty> are blocked.",
      "errors":[
         {
            "message":"Requests from this iOS client application <empty> are blocked.",
            "domain":"global",
            "reason":"forbidden"
         }
      ],
      "status":"PERMISSION_DENIED"
   }
}

I found similar issue https://github.com/firebase/firebase-ios-sdk/issues/7653 but I haven't found a solution there.
Ideally it would be that we restrict API somehow but at the same time reCAPTCHA is still working.
Also I know that if do the same restriction on Android side reCAPTCHA still works as expected.
Please help me figure it out.
Reproducing the issue
Restricting firebase API key on the google cloud console for the app's bundle identifier and try the reCAPTCHA authentication flow.
Firebase SDK Version
10.7.0
Xcode Version
14.2
Installation Method
Carthage
Firebase Product(s)
App Check, Authentication, Crashlytics, Messaging, Remote Config
Targeted Platforms
iOS
Relevant Log Output
{
   "error":{
      "code":403,
      "message":"Requests from this iOS client application <empty> are blocked.",
      "errors":[
         {
            "message":"Requests from this iOS client application <empty> are blocked.",
            "domain":"global",
            "reason":"forbidden"
         }
      ],
      "status":"PERMISSION_DENIED"
   }
}

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet

Replace this line with the contents of your Package.resolved.

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet

Replace this line with the contents of your Podfile.lock!

Thanks for reaching out, @romansorochak. Based on the related issue, as per engineer, reCAPTCHA not working when restricting the API key is an intended behavior since reCAPTCHA is a web-based flow and our web widget doesn't impersonate your iOS app. Have you tried to include the Firebase Management API in the list of allowed APIs as mentioned here?


Chart display after deployment

The chart looks bad after deploying my angular app.
I am attaching some images.
Good chart:
http://imgur.com/jBIu9je
Bad chart:
http://imgur.com/79m9C1A
Also the tooltip is shown under the chart for some reason( on the bad one ).

Hi and thank for your interest ! Have you considered using v2 ?

I am using v2. I had no problems of this sort with v1.

Okay then this is caused by the CSS not being imported properly.

Hmmm. I am going to try to fix this tomorrow and come back with an update. Please don't close the issue yet. I will make a complete post about everything I did to get here because there have been other issues also.

Sounds good to me !

Back with the update. The CSS was not loaded, it's fixed now.
For some reason, after installing v2 with npm, I could not load the module. It said that it is not available, even though I have given the .js , .css paths in index.html.
To make it work, I moved the n3-charts folder from node_modules to bower_components. It worked, but the deployment was not working( bower didn't take the files into consideration ).
After this, I moved the LineChart.js and LineChart.css to my app/scripts and app/styles folders. Now it i working properly.
If anyone encounters these problems, just add the library manually to the project and everything should be fine.
@lorem--ipsum Thank you for your help!


fix: remove upper limit for required terraform version

/run pipeline

:tada: This PR is included in version 2.10.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


0.4.16

addObject3DContainer component
make interface for WebGLRenderer
add some comments
fix onEnable/onDisable message bug
fix EditorGridRenderer

Codecov Report

Merging #27 (1eaef72) into main (49441b0) will decrease coverage by 0.08%.
The diff coverage is 11.11%.

@@            Coverage Diff             @@
##             main      #27      +/-   ##
==========================================
- Coverage   42.81%   42.72%   -0.09%
==========================================
  Files         107      107
  Lines        9015     9041      +26
  Branches     1354     1358       +4
==========================================
+ Hits         3860     3863       +3
- Misses       4754     4775      +21
- Partials      401      403       +2

Impacted Files
Coverage Δ

...rc/engine/script/post_render/EditorGridRenderer.ts
27.77% <11.11%> (-6.60%)
:arrow_down:

Continue to review full report at Codecov.

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


chore: fix unused import issue with resource bounds

This change is

#1137  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @ArniStarkware and the rest of your teammates on  Graphite

already covered in #1138


Add Icons to Navbar

Do you want to have the enhancement of existing game ? 😀 Describe yourself..
Hello Project Admin
I would like to add icons to Navbar
Describe the solution you'd like
It will make our website to look Attractive
Select program in which you are contributing
No response
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @sailaja-adapa , You can't have another issue before completing the previous one 😀
you already have the following 1 open issues 👀 ! :
#5075

/assign

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

Yeah ok @kunjgit

Hey @sailaja-adapa !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹


[fleet] add multi cluster update commands

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

add support for multi cluster update commands
add completers & validators for new commands
add help text for new commands

Related command

az fleet updaterun create
az fleet updaterun update
az fleet updaterun delete
az fleet updaterun show
az fleet updaterun list
az fleet updaterun start
az fleet updaterun stop

General Guidelines

[x] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[ ] Have you run python scripts/ci/test_index.py -q locally?

For new extensions:

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

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

fleet

Please fix CI issue

LGTM


Dynamically update containment

Hi,
I am currently implementing an application that is supposed to allow the user to drag&drop elements in a container. Left, right and top should be a fixed containment, but the containment container should automatically grow in the bottom direction, if I move the draggable near the edge.
I got the growing of the containment area implemented, but as draggabilly loads the containment bounding box once on pickup, the not-enlarged containment is still active.
Is there a way to tell draggabilly that it should recalculate the containment bounding box?

Thanks for reporting this issue. To better help understand the issue, can you provide a reduced test case? You can fork one of the CodePens from the docs to get started.

I have created a small example: http://codepen.io/anon/pen/aOQeXw
What I am trying to do is to dynamically expand the containment container. You can see my implementation in the CodePen.
But now I need to tell draggabilly to refresh the bounding box of the containment, as you can see in the example: I can't move the draggable further down, although the containment has resized.
Does this help you?

Thanks for that! Looks like we need to update the container size. There's no method to do this, but we can add one. See demo http://codepen.io/desandro/pen/eNbPoy
Draggabilly.prototype.setContainerSize = function() {
  var containment = this.options.containment;
    // use element if element
  var container = isElement( containment ) ? containment :
    // fallback to querySelector if string
    typeof containment == 'string' ? document.querySelector( containment ) :
    // otherwise just `true`, use the parent
    this.element.parentNode;

  this.containerSize = getSize( container );
};

function isElement( obj ) {
  return obj instanceof HTMLElement;
}

Then we can use setContainerSize method when resizing the container.
// jQuery
$draggable.draggabilly('setContainerSize')
// vanilla JS
draggie.setContainerSize()

@desandro thank you very much, it works. You can think about adding it to core.
Either way, as we now have a proper way to implement that, I will close this issue.

@desandro , this does not work anymore, can you help making it work on current version?


update composer install url to use https

http://getcomposer.org/installer stopped working and start throwing 302 response instead of installing composer

see #568


Fix golint from util.go

Following is the file with line numbers having lint error:
maya/pkg/util/util.go
Line 32:  error var MAPIADDRNotSet should have name of the form ErrFoo
Line 33: error var InternalServerError should have name of the form ErrFoo
Line 33:exported var InternalServerError should have comment or be unexported
Line 34:  error var ServerUnavailable should have name of the form ErrFoo
Line 35: error var ServerNotReachable should have name of the form ErrFoo
Line 36:  error var PageNotFound should have name of the form ErrFoo
Line 134: should omit 2nd value from range; this loop is equivalent to for k := range ...
Line 142:  comment on exported function ContainKeys should be of the form "ContainKeys ..."
Line 150: should omit 2nd value from range; this loop is equivalent to for k := range ...
Help Links :
Contributors guide

@sonasingh46, I'll take this up


Allow for variables named with keywords (like 'output')

Allow for WDL like this:
task x {
  command {...}
  output {
    String output = "foobar"
  }
}

The output is called output which currently does not work.  WDL parser thinks this is a keyword.

Closing for the time being.


How can I use my own version of the pantry cookbook

I'm having a problem installing homebred-cask and wanted to try modifying the pantry cookbook metadata to use a more recent version of the home-brew cookbook, But I don't see how to override where I can change where the pantry-chef-repo gets the pantry cookbook from so I can point it to my forked repo.

@rberger What is the issue you're seeing with homebrewd-cask exactly?

I originally thought it was because I'm trying it on a new computer, but just went back to an older computer that this successfully ran on and it fails the same way when I do:
sudo ./bin/pantry -c

The homebrew  cookbook was just updated. And I wanted to try it to see if it helps.
Here's the error that is basically the same on both systems:
Recipe: homebrew::cask
  * homebrew_tap[caskroom/cask] action tap (up to date)
  * homebrew_package[brew-cask] action install

    ================================================================================
    Error executing action `install` on resource 'homebrew_package[brew-cask]'
    ================================================================================

    TypeError
    ---------
    no implicit conversion of nil into String

    Cookbook Trace:
    ---------------
    /Users/rberger/work/pantry/pantry-chef-repo/.chef/local-mode-cache/cache/cookbooks/homebrew/libraries/homebrew_package.rb:94:in `get_version_from_formula'
    /Users/rberger/work/pantry/pantry-chef-repo/.chef/local-mode-cache/cache/cookbooks/homebrew/libraries/homebrew_package.rb:74:in `current_installed_version'
    /Users/rberger/work/pantry/pantry-chef-repo/.chef/local-mode-cache/cache/cookbooks/homebrew/libraries/homebrew_package.rb:44:in `load_current_resource'

    Resource Declaration:
    ---------------------
    # In /Users/rberger/work/pantry/pantry-chef-repo/.chef/local-mode-cache/cache/cookbooks/homebrew/recipes/cask.rb

     23: package 'brew-cask'
     24:

    Compiled Resource:
    ------------------
    # Declared in /Users/rberger/work/pantry/pantry-chef-repo/.chef/local-mode-cache/cache/cookbooks/homebrew/recipes/cask.rb:23:in `from_file'

    homebrew_package("brew-cask") do
      action [:install]
      retries 0
      retry_delay 2
      default_guard_interpreter :default
      package_name "brew-cask"
      declared_type :package
      cookbook_name "homebrew"
      recipe_name "cask"
    end

Running handlers:
[2016-01-26T12:14:20-08:00] ERROR: Running exception handlers
Running handlers complete
[2016-01-26T12:14:20-08:00] ERROR: Exception handlers complete
Chef Client failed. 1 resources updated in 32 seconds
[2016-01-26T12:14:20-08:00] FATAL: Stacktrace dumped to /Users/rberger/work/pantry/pantry-chef-repo/.chef/local-mode-cache/cache/chef-stacktrace.out
[2016-01-26T12:14:20-08:00] ERROR: homebrew_package[brew-cask] (homebrew::cask line 23) had an error: TypeError: no implicit conversion of nil into String
[2016-01-26T12:14:20-08:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

Is that error using the latest homebrew cookbook?

That is using the vanilla pantry-chef-repo, pantry and whatever those select for home-brew which seems to be a really old version
I still don't know how to make pantry-chef-repo use something other than the whatever its specifying.
I'm actually very blocked by this right now. I wouldn't mind trying to use the latest home-brew cookbook but not sure how to override anything in pantry-chef-repo like which repo it pulls the pantry cookbook from (i.e. so I can specify it to use my own modified pantry cookbook so I can change the metadata in pantry to use the latest homebrew cookbook

Ok, I figured out how to update the Policyfile to use my copy of the pantry cookbook. Forgot that Policyfiles take over from Berksfiles.
Just had to line like this to Policyfile.rb and I had to remove Policyfile.lock.json (not sure how to do the equiv of berks update)
cookbook "pantry", github: 'rberger/pantry', branch: 'rberger/new_homebrew'

Now my pantry-chef-repo runs fine.


[feat] Allow spot-perpetual strategy to scan more than one asset for opportunities

Feature Suggestion
Allow more than 1 asset to be scanned for opportunities on the new spot_perpetual arbitrage strategy.
The user would input what base assets he wants the bot to scan for opportunities. For example, inputing ETH, BTC and YFI, the bot would check for price divergences on all three assets.
One point of decision is what should be done with the quote asset on the spot side. (on the derivative, is expected that the pairs will all be quoted on the same asset)
User could be limited to only one quote asset (USDT, USD, BUSD, USDC, etc), or be allowed to add more than one quote asset.
More than one asset could be more complicated, due to how the bot would handle the trades.
Impact
This would reduce the number of bot instances the user would have to run to take advantage of a wider range of assets.
Additional context
Add any other context or screenshots about the feature request here.
┆Issue is synchronized with this Clickup task by Unito

@cardosofede Status?


Built files (dist) are no longer included in release tags

To use KaTeX after cloning or checking out a tag, run yarn build to build necessary files:

git clone -b v0.12.0 https://github.com/KaTeX/KaTeX.git # or git checkout v0.12.0
yarn
yarn build

To install KaTeX, use the package available at npm. Change package.json from

{
  "dependencies": {
    "katex": "KaTeX/KaTeX#v0.12.0"
  }
}

to
{
  "dependencies": {
    "katex": "0.12.0"
  }
}

To link KaTeX, use CDN links for npm. Change

https://raw.githubusercontent.com/KaTeX/KaTeX/v0.12.0/dist/katex.min.js
<EMAIL_ADDRESS>
to
<EMAIL_ADDRESS>

To download KaTeX, use tarball or zip (not the Source Code) from GitHub Releases.

Closed in favor of #2490.


[Chore] Update fork

This PR is to merge the upstream changes in the original repo to our fork.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 8 committers have signed the CLA.:x: glbrntt:x: thomasvl:x: ydnar:x: tbkka:x: dnkoutso:x: FlamingHairball:x: ziwei2041:x: LukasaYou have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 8 committers have signed the CLA.:x: thomasvl:x: dnkoutso:x: ydnar:x: glbrntt:x: tbkka:x: FlamingHairball:x: ziwei2041:x: LukasaYou have signed the CLA already but the status is still pending? Let us recheck it.


⚠ Jenkins Plugins Artifactory has degraded performance

In 0bf6606, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1358 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 8ce5a9d after 26 minutes.


x/build: M1 Mac Minis appear to be offline

host-darwin-arm64-11_0-toothrot: 0/0 (2 missing)

There was an internet outage at my house last night, and apparently the mac mini's have not reconnected.

Looks to have been a bug in the Unifi wireless configuration.

Looks to have been a bug in the Unifi wireless configuration.


Emojis not visible even in unicode-supported terminal

PWSH 7.4, Windows Terminal, also happens in vscode. PwshSpectreConsole 2.1.1

SpectreConsole checks terminal capabilities on import and sets a profile.
try running this before you import the module.
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()

i could replicate your issue in my extension terminal, i had forgot to set UTF8 in my vscode profile.
after setting that and restarting the terminal emojis worked.
if it still doesn't work, could you share the output of the below command?
& (gmo PwshSpectreConsole) { Get-SpectreProfile }

That does fix it! Interesting. Would it be worth autodetecting some terminals we know have unicode support and enable this? E.g. Windows Terminal can be detected with WT_PROFILE_ID env variable

yea showing a warning on import if someone isn't running utf8 would probably save a few people some headache.
I'm not sure changing someones codepage would be nice? there are some edge cases around WSL and similar that dont mix too well with UTF8.
But utf8 should just be the default one by now...
also at the point we could detect it Spectre has already set the profile..
and it does not appear to be entirely straightforward to force it to utf8 after the fact.. but i've only done some brief tests, maybe there is a way to get it to re-run "discovery".
right side has utf8 before import, just to show the profile

Yeah I'd say warning with a ENV variable or global setting to suppress it is probably the way to go.

But utf8 should just be the default one by now...

I've been hoping windows terminal just bites the bullet and sets this. The annoying part is you need to include that snippet as the very first thing in the profile to avoid any other command generating output before setting the encoding settings.
When I've got some time to tinker I think I'll update the module to detect this and maybe offer something like these options on the first run:

Please update my profile with utf8 automatically
I'll update my profile manually
Leave my profile alone, I know I'm going to have a degraded experience

PS> pwsh -nop -c 'ipmo .\PwshSpectreConsole\PwshSpectreConsole\PwshSpectreConsole.psd1'
WARNING: Your session is currently using encoding 'OEM United States', this disables certain functionality as SpectreConsole requires UTF8 encoding, consider adding
        '$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()' to your $profile
        to suppress this warning set the environment variable '$env:IgnoreSpectreEncoding=$true'
        Note: this needs to be set before importing the module

this covers the basics atleast.
it'll be in once #50 is merged.

It should spit out a pretty obvious warning now in prerelease...


lag spikeds

Observed/problematic behavior

Expected behavior
I did a spark profiler and it seems that there are some lags with your plugin.
Steps to reproduce
I did a spark profiler and it seems that there are some lags with your plugin.
Other
No response

Hello @frogglen,
I see that you are currently relying on SQLite for the data persistence. While in can be a convenient solution for easy and quick setup of the plugin, recommendation is to rely on MySQL/MariaDB instead so that you will observe better performances.
You can perform the setup in the config file directly.
If you already rely on another SGBD for your server than the ones mentioned, then we can discuss about adding the compatibility for sure.

Hello @frogglen,
I see that you are currently relying on SQLite for the data persistence. While in can be a convenient solution for easy and quick setup of the plugin, recommendation is to rely on MySQL/MariaDB instead so that you will observe better performances.
You can perform the setup in the config file directly.
If you already rely on another SGBD for your server than the ones mentioned, then we can discuss about adding the compatibility for sure.

I just updated jobs reborn and changed the database to MYSQL with all my data filled correctly, but now when I start the server I get this huge error, I don't know if I did something wrong in the config or if the new version of jobs reborn broke something.
https://mclo.gs/LUkzlZg

sorry i closed for error

Enjoy the huge stack trace with of the content being useless x)
The error in fact in the following one:
Caused by: fr.djaytan.minecraft.jobsreborn.patchplacebreak.lib.com.typesafe.config.ConfigException$Parse: Reader: 32: Expecting close brace } or a comma, got '4' ('+' not followed by =, '4' not allowed after '+') (if you intended '4' ('+' not followed by =, '4' not allowed after '+') to be part of a key or string value, try enclosing the key or value in double quotes, or you may be able to rename the file .properties rather than .conf)

So simply stated: the configuration file is not properly written (brace or quote missing?)

Enjoy the huge stack trace with most of the content being useless x)
The error in fact in the following one:
Caused by: fr.djaytan.minecraft.jobsreborn.patchplacebreak.lib.com.typesafe.config.ConfigException$Parse: Reader: 32: Expecting close brace } or a comma, got '4' ('+' not followed by =, '4' not allowed after '+') (if you intended '4' ('+' not followed by =, '4' not allowed after '+') to be part of a key or string value, try enclosing the key or value in double quotes, or you may be able to rename the file .properties rather than .conf)

So simply stated: the configuration file is not properly written (brace or quote missing?)

i put all my credentials in correctly without """
should I use them?

If you need information regarding the HOCON syntax: https://github.com/lightbend/config/blob/main/HOCON.md
It is possible to not use double quotes for string values, but this will possible only conditonally: https://github.com/lightbend/config/blob/main/HOCON.md#unquoted-strings
So in short yes surround your value with double quotes, it's safer

If you need information regarding the HOCON syntax: https://github.com/lightbend/config/blob/main/HOCON.md
It is possible to not use double quotes for string values, but this will possible only conditonally: https://github.com/lightbend/config/blob/main/HOCON.md#unquoted-strings
So in short yes surround your value with double quotes, it's safer

https://mclo.gs/34GcCOj

It seems you are relying on a too old version of MySQL server.
If you want the plugin to work, you will have to bump the database server version.
Flyway which is the solution used under the hood does not support database servers with EOL older than 5 years.
Like you can see by going through this link, MySQL 5.7 has reached its end of life. So, consider relying on MySQL 8.0 which is the current LTS.

Hello @frogglen,
Is your issue resolved?

Hello @frogglen, Is your issue resolved?

sorry I use this plugin on a shared hosting and they can't change the mysql version, I had to stop using the plugin.

Hello @frogglen,
FYI I'm working on migrating to Flyway v10 which will reinstall compatibility with old databases... Including MySQL 5.7.
That should unblock you from using the plugin if you are still interested.
I will release a new version once I will have every thing ready.


Add support for golang 1.8

I wonder if it's possible/worth the effort to refactor this to make new versions less copy-n-paste.

@SuperQ Might be possible, maybe a bit tricky. Currently it is just easier to duplicate files and makes each version self-explanatory with its own file structure.


eCarePlanner 3.2.2 - Active Orders - integrate third party endpoint data

eCarePlanner 3.2.2 at this time only requests Procedure resources from the OHSU FHIR server, which are used to populate the Health Maintenance & Interventions tab, Active Orders list.
Action items:

Update eCarePlanner to query the SDS for all of a patient's Procedure resources, from each of their third-party endpoint partitions, and display those resources in the Active Orders list.
Update the Active Orders list UI to include a column to show a record's Provenance, from where the resource originated.

Procedures LOE 4 Hours
Provenance LOE 4 Hours


ValueError: cannot assign slice from input of different size

I am using umap to reduce dimensions prior to running HDBSCAN. For reasons I do not understand, I periodically get a ValueError. It works with other n_components values, e.g. 2
I can work to generate a minimally reproducible example shortly.
umap2 = umap.UMAP(n_components=2)
projection2d = umap2.fit_transform(embedding.toarray())

... other code not relevant ...

uniq = pd.Series(df['stxt'].unique().astype(str)).str.lower().tolist()
embedding = TfidfVectorizer(ngram_range=(1,1), stop_words='english').fit_transform(uniq)
umapN = umap.UMAP(n_components=umap_val)
reduced_dim_embed = umapN.fit_transform(embedding.toarray())

embedding.shape
(16888, 4400)

Here's the stack trace
In [16]: reduced_dim_embed = umapN.fit_transform(embedding.toarray())
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[16], line 1
----> 1 reduced_dim_embed = umapN.fit_transform(embedding.toarray())

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/umap/umap_.py:2772, in UMAP.fit_transform(self, X, y)
   2742 def fit_transform(self, X, y=None):
   2743     """Fit X into an embedded space and return that transformed
   2744     output.
   2745
   (...)
   2770         Local radii of data points in the embedding (log-transformed).
   2771     """
-> 2772     self.fit(X, y)
   2773     if self.transform_mode == "embedding":
   2774         if self.output_dens:

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/umap/umap_.py:2516, in UMAP.fit(self, X, y)
   2510     nn_metric = self._input_distance_func
   2511 if self.knn_dists is None:
   2512     (
   2513         self._knn_indices,
   2514         self._knn_dists,
   2515         self._knn_search_index,
-> 2516     ) = nearest_neighbors(
   2517         X[index],
   2518         self._n_neighbors,
   2519         nn_metric,
   2520         self._metric_kwds,
   2521         self.angular_rp_forest,
   2522         random_state,
   2523         self.low_memory,
   2524         use_pynndescent=True,
   2525         n_jobs=self.n_jobs,
   2526         verbose=self.verbose,
   2527     )
   2528 else:
   2529     self._knn_indices = self.knn_indices

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/umap/umap_.py:328, in nearest_neighbors(X, n_neighbors, metric, metric_kwds, angular, random_state, low_memory, use_pynndescent, n_jobs, verbose)
    325     n_trees = min(64, 5 + int(round((X.shape[0]) ** 0.5 / 20.0)))
    326     n_iters = max(5, int(round(np.log2(X.shape[0]))))
--> 328     knn_search_index = NNDescent(
    329         X,
    330         n_neighbors=n_neighbors,
    331         metric=metric,
    332         metric_kwds=metric_kwds,
    333         random_state=random_state,
    334         n_trees=n_trees,
    335         n_iters=n_iters,
    336         max_candidates=60,
    337         low_memory=low_memory,
    338         n_jobs=n_jobs,
    339         verbose=verbose,
    340         compressed=False,
    341     )
    342     knn_indices, knn_dists = knn_search_index.neighbor_graph
    344 if verbose:

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/pynndescent/pynndescent_.py:804, in NNDescent.__init__(self, data, metric, metric_kwds, n_neighbors, n_trees, leaf_size, pruning_degree_multiplier, diversify_prob, n_search_trees, tree_init, init_graph, init_dist, random_state, low_memory, max_candidates, n_iters, delta, n_jobs, compressed, parallel_batch_queries, verbose)
    793         print(ts(), "Building RP forest with", str(n_trees), "trees")
    794     self._rp_forest = make_forest(
    795         data,
    796         n_neighbors,
   (...)
    802         self._angular_trees,
    803     )
--> 804     leaf_array = rptree_leaf_array(self._rp_forest)
    805 else:
    806     self._rp_forest = None

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/pynndescent/rp_trees.py:1097, in rptree_leaf_array(rp_forest)
   1095 def rptree_leaf_array(rp_forest):
   1096     if len(rp_forest) > 0:
-> 1097         return np.vstack(rptree_leaf_array_parallel(rp_forest))
   1098     else:
   1099         return np.array([[-1]])

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/pynndescent/rp_trees.py:1089, in rptree_leaf_array_parallel(rp_forest)
   1088 def rptree_leaf_array_parallel(rp_forest):
-> 1089     result = joblib.Parallel(n_jobs=-1, require="sharedmem")(
   1090         joblib.delayed(get_leaves_from_tree)(rp_tree) for rp_tree in rp_forest
   1091     )
   1092     return result

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/joblib/parallel.py:1098, in Parallel.__call__(self, iterable)
   1095     self._iterating = False
   1097 with self._backend.retrieval_context():
-> 1098     self.retrieve()
   1099 # Make sure that we get a last message telling us we are done
   1100 elapsed_time = time.time() - self._start_time

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/joblib/parallel.py:975, in Parallel.retrieve(self)
    973 try:
    974     if getattr(self._backend, 'supports_timeout', False):
--> 975         self._output.extend(job.get(timeout=self.timeout))
    976     else:
    977         self._output.extend(job.get())

File ~/opt/anaconda3/lib/python3.9/multiprocessing/pool.py:771, in ApplyResult.get(self, timeout)
    769     return self._value
    770 else:
--> 771     raise self._value

File ~/opt/anaconda3/lib/python3.9/multiprocessing/pool.py:125, in worker(inqueue, outqueue, initializer, initargs, maxtasks, wrap_exception)
    123 job, i, func, args, kwds = task
    124 try:
--> 125     result = (True, func(*args, **kwds))
    126 except Exception as e:
    127     if wrap_exception and func is not _helper_reraises_exception:

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/joblib/_parallel_backends.py:620, in SafeFunction.__call__(self, *args, **kwargs)
    618 def __call__(self, *args, **kwargs):
    619     try:
--> 620         return self.func(*args, **kwargs)
    621     except KeyboardInterrupt as e:
    622         # We capture the KeyboardInterrupt and reraise it as
    623         # something different, as multiprocessing does not
    624         # interrupt processing for a KeyboardInterrupt
    625         raise WorkerInterrupt() from e

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/joblib/parallel.py:288, in BatchedCalls.__call__(self)
    284 def __call__(self):
    285     # Set the default nested backend to self._backend but do not set the
    286     # change the default number of processes to -1
    287     with parallel_backend(self._backend, n_jobs=self._n_jobs):
--> 288         return [func(*args, **kwargs)
    289                 for func, args, kwargs in self.items]

File ~/github/rivanna-research/.venv/lib/python3.9/site-packages/joblib/parallel.py:288, in <listcomp>(.0)
    284 def __call__(self):
    285     # Set the default nested backend to self._backend but do not set the
    286     # change the default number of processes to -1
    287     with parallel_backend(self._backend, n_jobs=self._n_jobs):
--> 288         return [func(*args, **kwargs)
    289                 for func, args, kwargs in self.items]

ValueError: cannot assign slice from input of different size

I have exactly the same issue when using n_components=4 . I think it has something to do with the size of the embeddings array because I managed to work around it by decreasing the dimensionality of my embeddings.

I've been getting the same error for n_components=5.

This is actually an issue with pynndescent, which has since been fixed, but is waiting on a new release for the fix to propagate to PyPI. Hopefully that will be soon (along with another minor release of umap).

I experience a similar unhandled exception. Downgrading to pynndescent == 0.5.8 worked for me.

Can anyone confirm if this issue has been fixed with the 0.5.11 release ?

Can anyone confirm if this issue has been fixed with the 0.5.11 release ?

Upgrading pynndescent from 0.5.10 to 0.5.11 fixed this ValueError for me.

Can confirm upgrade works too.


Change references from old repo to current repo

Currently there are still some references to the original m3nu.ansible_role_borgbackup role:

/EXAMPLES.md
/meta/main.yml
README.md
 (several)
/molecule/default/converge.yml

Should these be changed to point to the current repo/owner ?

Yeah, wanted to do this for a while, but had trouble changing it on Ansible Galaxy. Will try again.

Still can't change the Ansible Galaxy namespace, but have requested one:
https://github.com/ansible/galaxy/issues/3157


[Javascript][Template SDK] [Template expander removes newlines in templatized markdown text]

Platform

JavaScript

Author or host
Author sending cards to Webex Teams
Version of SDK
1.0.0
Details
I'm updating a previously working application that was using an alpha version of the template lib.   I've updated my card JSON to include the dollar sign before all {templates}, and for the most part everything is working fine.
When I call template.expand on the following JSON the newlines in the templatized string are being removed which causes the list to be rendered incorrectly.
{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
        {
          "type": "TextBlock",
          "text": "* [Join the 'Ask B&C School' Webex Teams Space](https://eurl.io/#SJiS9VKTH)\n* [View the Source for This Card](${cardSourceUrl})\n* [View the Source for This App](${appSourceUrl})\n* [Official Developer Guide](https://developer.webex.com/docs/api/guides/cards)\n* [Buttons and Cards Designer](https://developer.webex.com/buttons-and-cards-designer)\n* [Adaptive Card Schema Explorer](https://adaptivecards.io/explorer/)\n* [Cisco DevNet: Card Sample App](https://developer.cisco.com/codeexchange/github/repo/CiscoDevNet/webex-card-sample/) ",
          "wrap": true
    }
  ]
}

If I expand this template with the following
let template = new ACData.Template(thatCardAbove);
let expanded = template.expand({
   $root: {
      cardSourceUrl: "https://developer.webex.com/buttons-and-cards-designer/lesson-0",
      appSourceUrl: "https://github.com/WebexSamples/webex-card-school"
   }
});

I get this result:
{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
          {
            "type": "TextBlock",
            "text": "* [Join the 'Ask B&C School' Webex Teams Space](https://eurl.io/#SJiS9VKTH)* [View the Source for This Card](https://developer.webex.com/buttons-and-cards-designer/lesson-0)* [View the Source for This App](https://github.com/WebexSamples/webex-card-school)* [Official Developer Guide](https://developer.webex.com/docs/api/guides/cards)* [Buttons and Cards Designer](https://developer.webex.com/buttons-and-cards-designer)* [Adaptive Card Schema Explorer](https://adaptivecards.io/explorer/)* [Cisco DevNet: Card Sample App](https://developer.cisco.com/codeexchange/github/repo/CiscoDevNet/webex-card-sample/) ",
            "wrap": true
    }
  ]
}

Note that the newlines before the asterisks have been removed.
When using the SDK Version 0.1.1-alpha.0 on the same source (without the dollar signs before the templates) the expanded json retained the newlines.

Please reopen if this still repros using the latest packages.


feat: add definition for property side panel

@haxxmaxx could you please take a look, Linh have a working implementation of the new data side panel.


Wait for FIPs to become available in CI

Tests ran long enough to verify the change, so cancelling.


Cannot match Thunderbird popup by initial class

Hyprland Version
 System/Version info
➜ hyprctl systeminfo
Hyprland, built from branch main at commit 4d6d662c67786c86647cf41b5b20d9c0b418dbb3 dirty (Makefile: force ln command to overwrite symlink (4347)).
Date: Thu Jan 4 10:20:17 2024
Tag: v0.34.0-20-g4d6d662c

flags: (if any)

System Information:
System name: Linux
Node name: ABRIDGED
Release: 6.6.9-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Tue, 02 Jan 2024 02:28:28 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: ABRIDGED
01:00.0 VGA compatible controller [0300]: ABRIDGED

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

Bug or Regression?
Bug
Description
When you click on a calendar event, Thunderbird produces the following popup:
Window 55f84c7764a0 -> CHECK-IN:
	mapped: 1
	hidden: 0
	at: 726,320
	size: 467,439
	workspace: 1 (1)
	floating: 1
	monitor: 0
	class: thunderbird
	title: CHECK-IN
	initialClass: thunderbird
	initialTitle:
	pid: 47155
	xwayland: 0
	pinned: 0
	fullscreen: 0
	fullscreenmode: 0
	fakefullscreen: 0
	grouped: 0
	swallowing: 0
	focusHistoryID: 2

This  works to match the popup:
windowrulev2 = float,class:^(thunderbird)$,initialTitle:^(\s*)$

But this doesn't work, although it should:
windowrulev2 = float,initialClass:^(thunderbird)$,initialTitle:^(\s*)$

How to reproduce
Create an event in Thunderbird.
Go in the calendar and click on it.
Try to match the popup.
Crash reports, logs, images, videos
No response

windowrulev2 = float,  initialTitle: ^(?!thunderbird$).*

I have the same problem, so i tried @MightyPlaza's approach.
I tried to float all thundebird windows, except the main window which has an initialTitle of Mozilla Thunderbird.
However all thunderbird windows get floated, so initialTitle matching might also not work (or i might be missing something obvious).
My rules are
windowrulev2 = float,class:^(thunderbird)$
windowrulev2 = tile,class:^(thunderbird)$,initialTitle:^Mozilla Thunderbird$

The relevant outpt of hyprctl clients is
Window 5558e560c4d0 -> Calendar - Mozilla Thunderbird:
	mapped: 1
	hidden: 0
	at: 20,-26
	size: 1879,1132
	workspace: -95 (special:mail)
	floating: 1
	monitor: 0
	class: thunderbird
	title: Calendar - Mozilla Thunderbird
	initialClass: thunderbird
	initialTitle: Mozilla Thunderbird
	pid: 17335
	xwayland: 0
	pinned: 0
	fullscreen: 0
	fullscreenmode: 0
	fakefullscreen: 0
	grouped: 0
	swallowing: 0
	focusHistoryID: 2

How about a different approach.
I guess you guys want the main thunderbird as tiled and all others as float.
For me calendar entries and responses work like this, I don't use any other functionality so this is what I have testes do far.
In this case I have
windowrulev2=float,class:thunderbird,title:^(?!Mozilla*)

How about a different approach. I guess you guys want the main thunderbird as tiled and all others as float. For me calendar entries and responses work like this, I don't use any other functionality so this is what I have testes do far thunderbird 115.
In this case I have
windowrulev2=float,class:thunderbird,title:^(?!Mozilla*)

Indeed that's exactly what I needed ... than you so much!

This workaround works, but i still think the initialTitle not working (with thunderbird) is probably a bug.


implement Dataframe.show()

This probably isn't required for an application, but it does provide a valuable development tool/debug aid.

implemented via commit 65d488356d82f053e6965989e2eabfd6139ec48c


Add issues

As the maintainer of a Collaborate repo, keeping Issues up-to-date will help the student community understand what they can do to contribute. Issues should vary by the easy (update documentation) to the difficult (add a new feature). The more involved you are, the more opportunities there are to collaborate.
Recommendations:
Add issues of varying difficulty to the repo often. you must add the tag GSSoC'24, Level 1, Level2, Level 3 good first issue etc.
How we cacluclate the Scores on Leaderboard: Every PR one point
Level 1: 10 points
Level 2: 25 points
Level 3: 45 points
Try to add some documentation issues as well it would be easy for beginner contributor to explore opensource through your repo.
Generate issues even if you plan on solving them, so the repository appears as active.
Contribute/commit often to the repo so it does not go stale.
Reference https://github.com/Recode-Hive/Stackoverflow-Analysis/issues

I see your repository is really good & I would like to suggest adding these issues to current repo

How to Contribute :Provide guidelines for developers who want to contribute to the project, such as how to report bugs, submit feature requests, or contribute code through pull requests.

Installation Instructions: Offer clear and concise steps for users to install and set up GlamourSaver on their local machines or deploy it to a server.

Use Examples : Showcase examples of how users can interact with GlamourSaver to find the best deals on beauty products. You could include screenshots or short video clips demonstrating the tool in action.

Supported Retailers : List the retailers currently supported by GlamourSaver and any plans for adding support for additional retailers in the future.

Privacy and Security: Discuss how GlamourSaver handles user data, if applicable, and any security measures in place to protect sensitive information.

License : Specify the open-source license under which GlamourSaver is released, along with any attribution or copyright notices required.

Contact Information : Provide contact details for users to reach out with questions, feedback, or support requests. This could include an email address, a link to a Discord server or community forum, or social media handles.

By including these sections, you can make your GitHub repository README file more comprehensive and informative for potential contributors and users of GlamourSaver.


Remove references to multiActivate and multiSelect from docs.

Summary says it all...

As a reminder, you can use the hide property like I've done here.

Fixed in #77


Bug fix/schema validation return code

Scope & Purpose
Fix HTTP return codes for rejected documents from HTTP 500 to HTTP 400, add tests.

[x] Bug-Fix for devel-branch (i.e. no need for backports?)
[x] Strictly new functionality (i.e. a new feature / new option, no need for porting)
[x] The behavior in this PR can be (and was) manually tested (support / qa / customers can test it)
[x] The behavior change can be verified via automatic tests

Testing & Verification
This PR adds tests that were used to verify all changes:

[x] Added new integration tests (http_server)

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/9171/

Tests blue except unrelated hot_backup failure

http://<IP_ADDRESS>:8080/view/PR/job/arangodb-matrix-pr/9178/

@ObiWahn : would you mind reviewing?


:sparkles: deal with CRAM aligments

use samtools view to convert CRAM into BAM -> CRAM convert with SAMTOOLS/CRAM module:

[ ] call freebayes using CRAM files
[ ] check alignments with samtools view
[ ] extract info from CRAM
[ ] replace BAM with CRAM

Try to replace bamaddrg with picard AddOrReplaceReadGroups. Also try to enforce CRAM files in each step


Ampersands are stripped out of results tooltips

System information:

Operating system (distribution) and version: Windows 10 Pro v1903 build 18362.418
DBeaver version: <IP_ADDRESS>910191000
Additional extensions: n/a

Connection specification:

Database name and version:  PostgreSQL 9.6.1 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit
Driver name:  org.postgresql:postgresql:RELEASE [42.2.5] net.postgis:postgis-jdbc:RELEASE [2.2.1]
Do you use tunnels or proxies (SSH, SOCKS, etc)? no

Describe the problem you're observing:
Ampersands do not show up in tooltips

Steps to reproduce, if exist:

Run a query which returns a text field which contains an amerpsand but is longer than the width of the column in the results

SELECT '..........................&';

Tooltips with column content only show when the content is longer than the column is wide so

SELECT '&';

probably won't let you view the error as there won't be a tooltip
Include any warning/errors/backtraces from the logs
n/a visual error

SWT has special trick about this: https://bugs.eclipse.org/bugs/show_bug.cgi?id=188271
Thanks for the bug report. Fixed

verified


Upstream merge request

Recent changes updated the version of Netty meaning that some warnings users were experiencing are now gone.
Thanks
Rushmead

On it.

https://github.com/WaterfallMC/Waterfall/commit/8ff8de0fbdbf14d0b3e842780738f6d0b204d07a

Thanks!


Error with js-controller 6.0.1

I updated ioBroker yesterday to js-controller 6.0.1.
Now the log is full with this message:
Method "createChannel" is deprecated and will be removed in js-controller 7, use "extendObject/setObjectNotExists" instead

createChannel continues to work with js-controller 6 but is deprecated. You can safely ignore the message for now.


Remove unused cookies in Umbraco 10

Hi Andy,
I want to remove all the cookies that I don't require so I am using the configuration:
    "PersonalisationGroups": {
      "ExcludeCriteria": "pagesViewed,numberOfVisits"
    }

but this isn't working. I am still seeing personalisationGroupsNumberOfVisitsSessionStarted, personalisationGroupsNumberOfVisits, personalisationGroupsPagesViewed.
The only criteria I need are country and querystring but the below doesn't work either:
    "PersonalisationGroups": {
      "IncludeCriteria": "country,querystring"
    }

This is in UmbracoPersonalisationGroups 3.2.7
Thanks
Tony

I've added that to ConfigureServices and I'm getting 'Our.Umbraco.PersonalisationGroups.Core.Middleware.TrackUserActivityMiddleware is inaccessible due to its protection level.'
Thanks
Tony

Ah, of course. So unless you resort to reflection hacks, this will need a release.  Probably best to add a configuration options that allows you disable the user activity tracking if you aren't using it - I'll look at adding that.

Nice one, thanks Andy

I've just pushed 3.2.8 which includes a new configuration value.  Setting DisableUserActivityTracking to true will disable the middleware that does the tracking of user sessions and pages viewed to a cookie.
i.e.:
  "Umbraco": {
    "PersonalisationGroups": {
      "DisableUserActivityTracking": true
    }
  }

That's awesome, cheers Andy!


Move link test

This PR does the following:

Fixes bad merge where link test ended up in the old location

rename to Link.test.tsx


Windows could not apply the unattend answer file's  setting

Autounattend.log
packerlog-Prod.txt
Hi,
We are  facing issue while trying to build windows2012 r2   "Windows could not apply the unattend answer file's  setting" if we try to use "pvscsi" as "scsi0.virtualDev" . Build works fine if we use  lsisas1068 as "scsi0.virtualDev". Has any one faced this problem? could you please help me to fix this. Find vmx_data setting below from json file also attached answerfile and packer log
"vmx_data": {
"RemoteDisplay.vnc.enabled": "false",
"RemoteDisplay.vnc.port": "5900",
"memsize": "4096",
"numvcpus": "1",
"scsi0.virtualDev": "pvscsi",
"ethernet0.networkName": "VM Network",
"virtualhw.version" : "10",
"ethernet0.startConnected": "TRUE"
}

I'm experiencing the exact error message on the server 2016.

pvscsi drivers are not included by default during the Windows installation, you need to load the drivers from VMware tools in the Autounattend.xml file.
Something like:
<component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <DriverPaths>
                <PathAndCredentials wcm:action="add" wcm:keyValue="A">
                    <Path>b:\</Path>
                </PathAndCredentials>
            </DriverPaths>
</component>

And make sure the VMware tools ISO is mounted to the VM.

Hi,
I'm facing the same error while installing windows server 2012 R2 and Windows server 2016 in Lenovo new server. can someone help if any idea ....

Have you tried loading the pvscsi drivers like I suggested above?

I would simply change the driver in the answerfile like: "scsi0.virtualDev": "lsisas1068"

In my case, the issue was due to missing read permissions in the metasplotable3/resources path.
At first I tried, from BASH:
/usr/local/bin/packer build --only=qemu ./packer/templates/windows_2008_r2.json
and got the same error message you got.
In the end, the fix was quite simple:
chmod -R +r /home/fra/metasploitable3/resources/


Fork confusion

Hello again. I found myself uncertain about how the fork method works from the documentation. Specifically:

Forks a stream, allowing you to add additional consumers with shared back-pressure. A stream forked to multiple consumers will only pull values from its source as fast as the slowest consumer can handle them.

What does Forks a stream mean exactly? If I call fork, is the result a new branch? What happens to the previous stream?
My use case is a small JS build server triggered by a POST request. We don't want to wait for the build to finish before responding, we just want to do some lookups to see if a build is required, and what type of build action it is then respond with the course of action it's going to take.
I've setup a pipeline from the request to the response managing a model representing the state & future behavior of the build process. The fork method is required in the last step to send the build state down the pipline to the response while also sending it to the build pipeline.
Below is my best attempt at applying it:
function forkBuildStream (stateStream) {
  let buildStream = stateStream.fork();

  buildStream
    .observe()
    .tap(slack('start_build'))
    .through(runBuildAction)
    .tap(slack('end_build'));

  return stateStream.resume();
}

function startBuildProcess (stateStream) {
  return stateStream
    .filter(isBuildActionRequired)
    .map(updateBuildState);
    .through(forkBuildStream)
}

module.exports = startBuildProcess;

A hopefully helpful visualization of the intended flow:
                  .filter --s--------------------- (state model coming down)
   .map(updateBuildState) --s?-------------------- (stream might get data passed to it)
-+------ .original stream --s--------------------- (.through(forkBuildStream))
    |  .map(formatToJson) --s---------------------
    |     .pipe(response) --j--------------------- (original stream ends here)
    +-- .fork().observe() --s--------------------- (gets the same state passed to formatter)
    .flatMap(buildAssets) --b--------------------- (creates build stream)
   .flatMap(uploadAssets) -----u------------------ (uploads to S3 or wherever)
        .tap(sendToSlack) --------s--------------- (posts update to slack channel)

Fork does stream multiplexing. It takes a stream and can turn it into multiple identical ones. In that sense, it's like observe. The difference is that all forks share backpressure while observers don't exert backpressure at at. Typically you either fork or you observe, never both. It also renders the old stream useless, whileobserve doesn't, so you need to call fork at least two times.
Usually, forking looks something like this:
const someStream = ...

const forkA = someStream.fork();
const forkB = someStream.fork();

forkA.through(aTransform)
  .pipe(somewhere);

forkB.through(anotherTransform)
  .each(doSomething);

The forks will wait on each other and execute in lock-step (see below for an example).
That said, you probably want to use observe in this case rather than fork. You want to return a response as soon as possible, so you will not want the stream writing the response to share backpressure with the stream doing the build pipeline. Shared backpressure means all streams will only execute as fast as the slowest stream. With observe, the observers are passive, so they will execute no faster than the main stream, but the main stream can execute as fast as it wants.
Here, the build stream will wait on the response writing stream. This isn't a problem if building is slower than sending the response.
const stateStream = ...

// Always set up the observers first. If you do them last, you risk a race condition if the
// main stream is really fast.
stateStream.observe()
  .through(buildAssetsAndPostToSlackWhenDone);

// The main stream just writes the response.
stateStream.map(formatToJson)
  .pipe(response);

If you want, you can go further. Here, both are decoupled from each other. No backpressure exists, and the two streams will execute independently of each other.
const stateStream = ...

stateStream.observe()
  .through(buildAssetsAndPostToSlackWhenDone);

stateStream.observe()
  .map(formatToJson)
  .pipe(response);

// Consumes the stateStream. This will cause it to feed the observers data as it goes.
stateStream.resume();

P.S. Here's some code that demonstrates the difference between the two. Execute either fork or observe.
// Simulates work.
function delay(x, ms) {
  return _((push, next) => setTimeout(() => {
    push(null, x);
    push(null, _.nil);
  }, ms));
}

function fork() {
  console.log('====== FORK ======');
  const now = Date.now();

  const stream = _([1, 2, 3])
    .tap(x => console.log(`original ${x}: ${Date.now() - now}`));

  const forkA = stream.fork();
  const forkB = stream.fork();

  forkA.flatMap(x => delay(x, 25))
    .each(x => console.log(`forkA    ${x}: ${Date.now() - now}`));

  forkB.flatMap(x => delay(x, 100))
    .each(x => console.log(`forkB    ${x}: ${Date.now() - now}`));
}

function observe() {
  console.log('====== OBSERVE ======');
  const now = Date.now();

  const stream = _([1, 2, 3]);

  const observerA = stream.observe();
  const observerB = stream.observe();

  observerA.flatMap(x => delay(x, 25))
    .each(x => console.log(`observerA  ${x}: ${Date.now() - now}`));

  observerB.flatMap(x => delay(x, 100))
    .each(x => console.log(`observerB  ${x}: ${Date.now() - now}`));

  // We need to consume the source stream for this to work.
  stream
    .each(x => console.log(`main       ${x}: ${Date.now() - now}`));
}

The results look like this
====== FORK ======
original 1: 6
forkA    1: 37
forkB    1: 109
original 2: 109
forkA    2: 136
forkB    2: 211
original 3: 211
forkA    3: 237
forkB    3: 311

and
====== OBSERVE ======
main       1: 5
main       2: 8
main       3: 8
observerA  1: 37
observerA  2: 63
observerA  3: 89
observerB  1: 111
observerB  2: 212
observerB  3: 313

Notice how the forks interleave with each other while the observers both have to wait on the main stream but not each other.

Wow thanks for such a very detailed & helpful response. It makes total sense now!

@vqvu feels like this should be somewhere in the doc, no?

How much detail would you like? Is a link to my post OK?
It's hard for me tell what's confusing about the current doc, since I already know what fork does, and so "allowing you to add additional consumers with shared back-pressure" makes perfect sense to me.

I guess the link would work. I guess any example that highlight the difference between the two will help.


Add a test case to check memory usage of a blank app to avoid bloat over time

This can't be done in the tests/ subfolder because pytest runs all tests in the same process. We could have additional test scripts that run independently of pytest for miscellaneous standalone testing like this.


Add Typeable constraints to Unjson

Problem
We wanted to generate Swagger Schemas from Unjson definitions (that is, without typing them by hand), but needed a way to name schemas so that we could use References - otherwise, in case of nested objects, there is no way to tell a traversal "ok this schema is named, stop here and insert a reference".
Solution
This PR adds the Typeable constraint to Unjson instances.
With Typeable, we can get the name of the type, add it to our "schemas" context, and use this information to add References in other Schemas that include it.
Example
How we use the Typeable constraint in Data.Unjson.Swagger:
typeNamedSchema :: forall a. Typeable a => UnjsonDef a -> Schema -> NamedSchema
typeNamedSchema = NamedSchema . Just . unjsonDefName

unjsonDefName :: forall a. Typeable a => UnjsonDef a -> Text
unjsonDefName = Text.pack . show . unjsonDefType

unjsonDefType :: forall a. Typeable a => UnjsonDef a -> TypeRep
unjsonDefType _ = typeRep (Proxy @a)

We can then use these functions to define the Schemas (snippet from our codebase):
import           Data.Swagger
import           Data.Unjson
import           Data.Unjson.Swagger

data Paper = Paper
  { paperCode :: Text
  , paperName :: Text
  } deriving (Show, Eq, Generic, Data)

samplePaper :: Paper
samplePaper = Paper
  { paperCode = "HBL"
  , paperName = "HUFVUDSTADSBLADET"
  }

instance ToSchema Paper where
  declareNamedSchema _ = do
    unjsonDefNamedSchema (unjsonDef @Paper)
      <&> schema.example ?~ unjsonToJSON unjsonDef samplePaper

instance Unjson Paper where
  unjsonDef = objectOf $ Paper
    <$> field "code" paperCode "Identifying code of the paper"
    <*> field "name" paperName "The name of the paper"

-- Package contains a Paper object
data Package = Package
  { packageName        :: Text
  , packagePaper       :: Paper
  } deriving (Show, Eq, Generic, Data)

samplePackage :: Package
samplePackage = Package
  { packageName        = "HBL 365"
  , packagePaper       = samplePaper
  }

instance ToSchema Package where
  declareNamedSchema _ = do
    unjsonDefNamedSchema (unjsonDef @Package)
      <&> schema.example ?~ unjsonToJSON unjsonDef samplePackage

instance Unjson Package where
  unjsonDef = objectOf $ Package
    <$> field    "name"        packageName        "Package name"
    <*> field    "paper"       packagePaper       "Paper associated with the package"

And then the generated Swagger schema will look like this:

Final Notes
We've had the Data.Unjson.Swagger lib in production for a while now, and we plan to cover all the corner cases we did not need (not many) and then release it.
We wanted to get our changes upstream before doing that, in case you have any opinion about a better solution to solve this object-references problem - we tried some other things, and they were all uglier or more complicated than this - we find Typeable very nice because it is already defined in base on all types. What do you think?

OK, no-one seems to be objecting, so I'm merging this. Ping me when you need a new unjson release on Hackage.

Merged, thanks!

Thank you! 🎉
I just opened #7, so I guess we could look at it before releasing a new version to Hackage.


fix bug in attachments

Attachments are MIMEBase or (filename, content, mimetype) triples
Set open close funcionality

Thanks


custom aggregation field is not working

I'm trying to build aggregate field by custom field but it is not working it is adding as value of '' in group field. So my app is in production and I'm looking for a quickly workaround to apply if you guys have one.

could you write to support ? we need to see your app id/configuration and what you're trying to achieve. SDK issue isn't a good place to collect this information. Thanks for your collaboration.

Already did it but it takes a day to have one reply it's not a kind of support i look for. Maybe the community can help with workaround.

already did it but it takes a day to have one reply it's not a kind of support i look for

I didn't see this. Let me check and fasten if possible.
Stackoverflow is a good medium (I try to keep an eye on it too). Please try to give a detailed explanation of the problem. For example, your description above doesn't say much so hard to help even if somebody wants to do.


Write tests for the uRaiden JS library / npm package

Subscribed to learn more about the npm package.


build(deps-dev) bump @types/node from 17.0.45 to 20.8.10

Bumps @types/node from 17.0.45 to 20.6.0

follow-up #12754

Hi @juliusv / @Nexucis could you take a look at this PR?
We looked at this in our bug scrub.

rebased.

Closing as outdated - @types/node is not in the latest version of the file.


Findbugs: TimeComparator should be serializable to make the dataset serializable

Actually we don't need it now, but the serialization may be required later
@reviewbybees

The test failure has been cause by the serialization ordering (known issue)

:+1:

:+1:

:+1:

Thanks!


Suggestion, Elitemobs support

Hey there,
I use a Plugin called Elitemobs
Would It be possible to add a check to skip Mob conversion if that mob is already a Custom mob? (so if it has a Nametag, dangerous caves would skip it)
My problem is, that Dangerous Caves converts Mobs, which were created by Elitemobs, so they loose their powers, and get the ones by Dangerous Caves
I like to use both plugins aside, but it seems like its not possible for the Elitemobs dev to implement something to make Dangerous Caves compatible.
I think this is, because Dangerous Caves converts Mobs after they got an Elite.
Would be Awesome if that would be possible, because your Plugin adds so much awesome stuff!
Greetings from Germany

Maybe you could add something like this in config: Clear all mob properties before the conversion, so if a mob had custom powers, stats or whatever, it would clear it and make it a 'fresh' Dangerous Caves mob
Because right now, converted mobs that were an Elite before, are a mix of both Plugins when your plugin converts them

Clear all mob properties before the conversion, so if a mob had custom powers, stats or whatever, it would clear it and make it a 'fresh' Dangerous Caves mob

In fact, DC2 already does that. Do you have the enableHighCompatibilityMode config option in EliteMobs enabled?

No I don't
I will do that right now!
Gonna reply soon

Sir, I'll thank you for that! I totally forgot about this setting >.>
My bad
Awesome fast answer and fix! :)


HA-kubeapi External load balancer

Just the same as described here
We need to use external load balance, How to set the kubelet on the worker to point to this load balance?
I have modified it on /root/cdk/kubeconfig for all workers..
What other relation that should be done or modified too ?? could we set it from charm config?
also this needed to be at wiki docs

any suggestions here!

Just the same as described here

Can you clarify? Are you using the keepalived charm, or are you using an external load balancer that's not managed by Juju?

No, external load balance hardware or software based that is not managed by juju... just we need to add IP/hostname so the charm configure to point to it.


Problems in building

I have some problems in building k with evm-semantics:
when I do make RELEASE=1 deps I obtain the following error:
     [exec] --  While building package haskell-src-exts-1.21.1 using:
     [exec]       /home/vitto/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_<IP_ADDRESS>_ghc-8.6.5 --builddir=.stack-work/dist/x86_64-linux/Cabal-<IP_ADDRESS> build --ghc-options ""
     [exec]     Process exited with code: ExitFailure (-9) (THIS MAY INDICATE OUT OF MEMORY)
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for K Framework Tool Parent 1.0-SNAPSHOT:
[INFO]
[INFO] K Framework Tool Parent ............................ SUCCESS [  3.252 s]
[INFO] K Framework KORE ................................... SUCCESS [ 11.002 s]
[INFO] K Framework Tool Kernel ............................ SUCCESS [ 31.703 s]
[INFO] K Framework KTree .................................. SUCCESS [  0.618 s]
[INFO] K Framework Ocaml Backend .......................... SUCCESS [  0.429 s]
[INFO] K Framework Java Backend ........................... SUCCESS [  4.093 s]
[INFO] K Framework Haskell Backend ........................ FAILURE [04:11 min]
[INFO] K Framework LLVM Backend Pattern Matching .......... SKIPPED
[INFO] K Framework LLVM Backend ........................... SKIPPED
[INFO] K Framework Tool Distribution ...................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  05:26 min
[INFO] Finished at: 2020-03-15T12:27:43+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (build-haskell) on project haskell-backend: An Ant BuildException has occured: exec returned: 1
[ERROR] around Ant part ...<exec failonerror="true" dir="/home/vitto/Downloads/evm-semantics/deps/k/haskell-backend/src/main/native/haskell-backend" executable="stack">... @ 4:144 in /home/vitto/Downloads/evm-semantics/deps/k/haskell-backend/target/antrun/build-main.xml
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :haskell-backend
Makefile:129: recipe for target '/home/vitto/Downloads/evm-semantics/deps/k/make.timestamp' failed
make: *** [/home/vitto/Downloads/evm-semantics/deps/k/make.timestamp] Error 1

and if I try to make only llvm-backend I obtain the following error:

/home/vitto/Downloads/evm-semantics/deps/k/k-distribution/target/release/k/bin/kompile --debug --main-module ETHEREUM-SIMULATION --backend llvm                                  \
                 --syntax-module ETHEREUM-SIMULATION .build/defn/./llvm/driver.k                     \
                 --directory .build/defn/./llvm -I .build/defn/./llvm -I .build/defn/./llvm                                \
                 --hook-namespaces KRYPTO                                                             \
                 -O3                                                                      \
                 -ccopt /home/vitto/Downloads/evm-semantics/deps/plugin/plugin-c/crypto.cpp                                       \
                 -ccopt /home/vitto/Downloads/evm-semantics/deps/plugin/plugin-c/blake2.cpp                                       \
                 -ccopt -g -ccopt -std=c++14                                                          \
                 -ccopt -L/home/vitto/Downloads/evm-semantics/.build/local/lib                                                             \
                 -ccopt -lff -ccopt -lcryptopp -ccopt -lsecp256k1 -ccopt -lprocps
make: /home/vitto/Downloads/evm-semantics/deps/k/k-distribution/target/release/k/bin/kompile: Command not found
Makefile:296: recipe for target '.build/defn/./llvm/driver-kompiled/interpreter' failed
make: *** [.build/defn/./llvm/driver-kompiled/interpreter] Error 127

Could you please help me? Thanks in advance

Try this and run again: brew install haskell-stack


l3 file with all flights

Right now if the routine is run over all flights, all of them are concatenates all of the sondes from all flights to one file and saves it to the first flight directory.
This could be either fixed by making on L3 file for each flight or moving it out of the directory structure.
Maybe the first solution is better?
Any opinions? @Geet-George @tmieslinger @ninarobbins

Hey @hgloeckner, I think the L3 is most useful if all sondes of a campaign are available together instead of different flights. Why would the latter option mean taking it out of the directory structure? Did we go back to the earlier structure of flights first instead of levels first?

okay nice. then it does what it should.
The thing is that on the dataserver they have a structure like halo/dropsondes/<flight_id>/Level_0 or something like that. but probably we can customize that

The data server layout is up to modifications. I'd consider the current state as a first draft.
Analysis-wise we've learned in the last years, that cutting things apart is easier than glueing them together. So if one can reasonably stitch together a dataset during routine postprocessing, we'd generally prefer that over many individual datasets, as this simplifies things for downstream users. Only if things don't fit together, they should be separate (e.g L0 data certainly shouldn't be merged).

I'm not sure I understood the problem exactly. In the current structure, L3 can be stored directly as L3.nc in halo/dropsondes/ or within halo/dropsondes/Level_3.

The thing is that on the dataserver they have a structure like halo/dropsondes/<flight_id>/Level_0 or something like that. but probably we can customize that

I'm not sure I understood the problem exactly. In the current structure, L3 can be stored directly as L3.nc in halo/dropsondes/ or within halo/dropsondes/Level_3.

Yeah, it's possible. The I'd just prefer to not have level-folders on different directory levels. But I realyzed that at the moment we caan just change it to halo/dropsondes/Level_0/... and then we can easily have a halo/dropsonde/Level_3/.
So that's more or less solved I guess

The data server layout is up to modifications. I'd consider the current state as a first draft.
Analysis-wise we've learned in the last years, that cutting things apart is easier than glueing them together. So if one can reasonably stitch together a dataset during routine postprocessing, we'd generally prefer that over many individual datasets, as this simplifies things for downstream users. Only if things don't fit together, they should be separate (e.g L0 data certainly shouldn't be merged).

good to know, then we'll definitely have just one Level_3 file.


@types/styled-componets not block @types/react version

Environment

npx envinfo --system --binaries --npmPackages styled-components,babel-plugin-styled-components --markdown --clipboard
System:

OS: macOS 12.3.1
CPU: (10) x64 Apple M1 Pro
Memory: 827.79 MB / 32.00 GB
Shell: 5.8 - /bin/zsh

Binaries:

Node: 12.14.1 - ~/.nvm/versions/node/v12.14.1/bin/node
Yarn: 1.22.17 - ~/.nvm/versions/node/v12.14.1/bin/yarn
npm: 6.13.4 - ~/.nvm/versions/node/v12.14.1/bin/npm

npmPackages:

styled-components: 5.1.1 => 5.1.1

Reproduction

https://codesandbox.io/s/styled-components-base-gc367
Steps to reproduce
npx react-app-rewired build
tsc throw an error:  Type 'ReactElement<any, string | JSXElementConstructor>' is not assignable to type 'ReactNode'
node_modules/<EMAIL_ADDRESS>version is 18.0.0
@types/styled-components dependencies:  "@types/hoist-non-react-statics": "",
"@types/react": "",
Is @types/react v18 has break change, but @types/styled-components not block that version?
Expected Behavior
build success
Actual Behavior
build error

my react and react-dom version is 16.9.0, not ready to upgrade react@18

I'm getting the same error! Seems like styled-components ReactNode overwrites React.ReactNode type. Please help me figure out how to fix this. Error shown below:
No overload matches this call.
Overload 1 of 2, '(props: SwitchProps | Readonly): Switch', gave the following error.
Type 'React.ReactNode' is not assignable to type 'import("node_modules/@types/styled-components/node_modules/@types/react/index").ReactNode'.
Type '{}' is not assignable to type 'ReactNode'.
Overload 2 of 2, '(props: SwitchProps, context: any): Switch', gave the following error.
Type 'React.ReactNode' is not assignable to type 'import("node_modules/@types/styled-components/node_modules/@types/react/index").ReactNode'.ts(2769)
index.d.ts(125, 5): The expected type comes from property 'children' which is declared here on type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly'
index.d.ts(125, 5): The expected type comes from property 'children' which is declared here on type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly'

This is an issue with @types/styled-components not styled components itself. The type is requiring * of @types/react. The simplest fix if you are not ready to update is to add a manual resolution for now in your package.json to enforce a version below 18 of @types/react
"resolutions": {
    "@types/react": "17.0.43"
  }

thx, fix me


add some tests for tasks using pydiverse.transform

Also added regex way to display table store URL with password obfuscation for easier debugging.

Checklist

[x] Added a CHANGELOG.rst entry

As this mostly test that PydiverseTransformTableHook is implemented correctly, I propose that we create explicit tests for all TableHooks instead. Otherwise, there is nothing special about how pipedag treats transform.

I like to see more pydiverse.transform tests in pipedag. I just wanted to add one because I wanted to see whether it is working at all before trying that in a client environment.

I like to see more pydiverse.transform tests in pipedag. I just wanted to add one because I wanted to see whether it is working at all before trying that in a client environment.

Can you please elaborate on what exactly you are trying to test? Pydiverse pipedag and transform are independent projects. The only code in pipedag that has anything to do with transform is the PydiverseTransformTableHook implemented for the SQLTableStore and DictTableStore. As such, I don't see what else you could potentially want to test.
Because of this plugin system (thanks to the TableHooks), we can test the various components independently. If we know that pydiverse.transform, PydiverseTransformTableHook  and pydiverse.pipedag all work correctly independently, then we can also conclude that they work together.

There is not much code that needs testing. But there are some optional imports of pydiverse.transform and I wanted to test what exactly to put in auto-tables option of pipedag.yaml. And I like to see examples with pydiverse.transform that someone can easily copy to get started. The last aspect can be put in a separate repo though.

As this mostly test that PydiverseTransformTableHook is implemented correctly, I propose that we create explicit tests for all TableHooks instead.

Yes, we should add additional unit tests. But the "integration test" is better than nothing. And it also demos how to use it. This is not trivial with auto_tables. See following PRs which use the same technique for demonstrating ibis and polars integrations.

will merge without review to release pipedag 0.2.4 this week