eslint-plugin-n

Use eslint-plugin-n since eslint-plugin-node no longer supported.

Thanks for this information! I'll check that.


Infinite loop when techmap file has implicitly declared identifier

Steps to reproduce the issue
./yosys -p "techmap -map tm.v" top.v -f "verilog -icells"
top.v:
module top(input [31:0] A, input [4:0] B, output Y);
\$shiftx #(.A_WIDTH(32), .B_WIDTH(5), .A_SIGNED(0), .B_SIGNED(0), .Y_WIDTH(1)) u0 (.A(A), .B(B), .Y(Y));
endmodule

tm.v:
module \$shiftx (A, B, Y);
  parameter A_SIGNED = 0;
  parameter B_SIGNED = 0;
  parameter A_WIDTH = 500;
  parameter B_WIDTH = 1;
  parameter Y_WIDTH = 1;

  input [A_WIDTH-1:0] A;
  input [B_WIDTH-1:0] B;
  output [Y_WIDTH-1:0] Y;

  wire [A_WIDTH-1:0] A_forward;
  assign A_forward[A_WIDTH-1] = A[WIDTH-1];
endmodule

Expected behavior
No infinite loop.
Actual behavior
Infinite loop. I actually missed the warning message because of all the other logging.

The implicitly declared identifier doesn't seem to be relevant at all. Simply add wire WIDTH; and the wire will be defined but you'll still get an endless loop.
The problem is that A[...] is implemented using $shiftx, thus you end up with an endless recursion. That is the intended behavior. We use recursive mapping for example in LUT mapping for some architectures.
One way of dealing with the infinite loop is by dealing with the $shiftx before substituting the top $shiftx cell with the contents of tm.v. In this particular case just adding something like wire [1023:0] _TECHMAP_DO_ = "opt -fast; show"; is sufficient.
Afaict it's all behaving exactly as intended.


Potential hang when LEFT JOIN a subquery with EXP

CrateDB version
CrateDB 5.10.0-SNAPSHOT built 87c6dfa
CrateDB setup information
Manual build following the instructions here: https://github.com/crate/crate/blob/master/devs/docs/basics.rst
Problem description
Consider the following test case. The query causes the server to hang. Things go well if changing EXP(-1110102730.1852759636) to EXP(-1110102730) for example.

Expected Result
As mentioned above.

Thanks for the report @suyZhong!
There are multiple problems here:

Integral argument:
SELECT EXP(-1110102730) --> CrateDB returns 0
Postgres returns Query Error: value out of range: underflow
SELECT EXP(1110102730) --> CrateDb returns "Infinity".
Postgres returns Query Error: value out of range: overflow
// Floating point argument
SELECT EXP(-1110102730.1852759636) // CrateDB returns 8.605977803671129013336162895837447E-482111491

Postgres returns 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
I think this one is fine, it's essentially 0 with different precision.
SELECT EXP(1110102730.1852759636) --> CrateDB returns 1.161983010894382095164354623117694E+482111490
CrateDb output seems fine and we return double precision as documented
https://www.wolframalpha.com/input?i=EXP(1110102730.1852759636)
Postgres returns Query Error: value overflows numeric format
https://www.db-fiddle.com/f/97ciQwsQWGV8t8dpRjWBJ4/0
Whether we want to align with PG in cases where we don't throw is a different topic.

Hang is not related to execution, it happens when applying optimizer, during analysis. I'm checking it now and will post a workaround if there is any.

Problematic query works (doesn't hang and returns an empty result set) in 5.8.5 and 5.9.2, looks like a regression.
Reverting recent nested-loop-as-hash-join doesn't help, still checking.

Thanks for reporting @suyZhong,  fix will be available in the 5.9.3 hotfix release.


Some suggestion about GNN

Is your feature request related to a problem? Please describe.
I want to develop a new model with Pytorch Geometric  which is a GNN library based on Pytorch. I hope you can develop some api to make it more easier.
Describe the solution you'd like

Please develop a obsm_field for AnnDataManager to register obsm(n_obs*n_obs) attribute. Because scanpy neighbors save the graph adjacency matrix in obsm as key "connectivities".
DataSplitter in scvi.dataloaders  maybe also should be updated to support minibatch operation. This minibatch operation is similar to subgraph extraction.

Thank you for the request.
We are interested in this but have no estimated timeline for when this would be available.

Is there anyone involved in solving this problem? If not, can I join this project and solve this problem? I am interested in graph deep learning and hope to integrate this technology into scvi-tools.

Hi, happy to discuss further. Especially with spatial data graphs are critical but also for single-cell it would be cool. I think best way to get started would be to implement a model in external that uses graph. E.g. https://brbiclab.epfl.ch/projects/stellar/ could be a nice start.


Config tab inconsistently showing available options

Describe the bug
Going to the "Config" tab after selecting a light instance will sometimes show all of the "normal" settings you'd see when accessing the web version, but other times will only show the compact version with "More settings..." button which then opens a web instance in Firefox.
As far as I know the settings are supposed to always be the compact version.
In addition to this being inconsistent, I would like the option to always show the full version of the settings instead of needing to access the web version.
Desktop (please complete the following information):

OS: Windows8.1
Version: <IP_ADDRESS>

Hi,
thank you for reporting this bug. 😄
I assume that you have enabled Online Mode for some lights and this is why Config is inconsistent when you go through your lights. When Online Mode is enabled it will use the online version of WLED (like accessing WLED in your browser) instead of the local version.
Currently there is also another issue #3 that deals with this topic of the settings page.
I'm planning to add the full settings page in one of the next versions of WLED-GUI, but I'm waiting for Aircoookie/WLED#1630 to be implemented.
I guess it will be implemented in WLED v0.13.
So to have the full access to the settings in WLED-GUI you probably have to wait for WLED version 0.13. 😞
Is my assumption correct that you use Online Mode?

So I went poking more and finally found the option to toggle "Online Mode", so that does what I'd like for now.
I wasn't using it previously, so I'm not sure why it was popping up inconsistently for a single instance of lights.

Can you tell me what version of WLED you use?
Do you use the same version for all your lights?

I'm using 0.12.0 for all of my ESP8266, but the one ESP32 I have connected right now I'm using the dev version of SoundReactive 0.12.0 that has the 2D animations partially enabled.

Do you see this inconsistency only in a specific light (for example the SoundReactive light) or in all lights?

I can't be sure, I was going through 4-5 different lights when I noticed it happening.

Will be fixed in latest version


⚠ Samsung has degraded performance

In 0b6a618, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2663 ms

Resolved: Samsung performance has improved in 6c0c719.


Feature request:   Add a setting for the AdminText prefix in window title

I dislike the "Administor: " prefix on the powershell window title because it makes it harder to determine the subject of a window when it is minimized.  I usually have 3-6 powershell windows open, so this is important for my workflow.
I already have a commit with a fix for this.  It's six-line change to add the setting as well as move the $adminHeader calculation to the bottom of Write-GitStatus where the other window title logic is located.

For v0.7.2 I've gone ahead and merged @nebosite's simple fix. If someone's bored, cares deeply about customizing their window title, and can't upgrade to posh-git v1, they're welcome to give the proposal in https://github.com/dahlbyk/posh-git/issues/537#issuecomment-360211364 a go.


EditFeatures(Connected) sample missing creationMode

In the sample, popupsViewController sketchEditorFor() delegate method does not specify the creationMode.  This sounds like an error in the sample code.  Without specifying creationMode, I was only able to draw point features.
Referring to this sample:  https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fdevelopers.arcgis.com%2fios%2flatest%2fswift%2fsample-code%2fedit-features-connected-.htm&c=E,1,DvatLBPWNjWxH8DHSnU3zVM9qTmEWDBax6F0di1QoUTKYvq2j7UQ-0Z7bUa0x5ib34c0Cn48_5tKH2dLn4AS6ftgAHwXtJD1saJsgDNU&typo=1

Close due to inactivity.


How to hide 'optgroup' when i searching

when i search a word
all the optgroup still showing
filter one only the one optgroup show other optgroup should hide
what should i do
thanks

1.6.3's bug
1.6.4 fix it
use 1.6.4


Some question about the svit method

I have an interesting question: since most token pruning methods actually prune layer 4 to layer 12 of vit model, have you tried pruning the early layers of vit model (layer 1 ~ layer3) ? And how is the performance ? Hopes to get your reply, thanks !!!

Yes we tried pruning token in layers1~3 during some initial experiments on classification, and the performance dropped significantly. We also tested some other pruning ratios for different layers, but didn't easily find one that outperformed the default setting provided by DynamicViT and EViT.
However, there is a relevant paper on pruning ratios for different layers: "DiffRate : Differentiable Compression Rate for Efficient Vision Transformers". I hope this might be helpful!

@kaikai23  Thanks for your reply !  May I ask how did you set the token keep ratio of all layers ? I think most token pruning methods in 4th ~ 12th layer follow [k, k^2, k^3] setting.

@kaikai23 Oh I mean the settings of 12 layers (layer 1 ~ layer 12)

Hi, we kept all the tokens in layer 1~layer 3, and keep 70%, 70%, 70%, 49%, 49%, 49%, 34.3%, 34.3% tokens in layer 4 ~ layer 12.


Logos stored anywhere besides _static/<logo.png> aren't correctly displayed

If I set
html_theme_options = {
    "logo": {
        "image_dark": "_static/img/logo.png"
    }
}

the logo is not correctly inserted into the top nav html template due to this logic: https://github.com/pydata/pydata-sphinx-theme/blob/08ca29a9da7a541211d902204a8928eb2a7b070a/src/pydata_sphinx_theme/logo.py#L45C61-L45C61
As you can see, only the .name is taken from the path to the logo (in this case logo.png) and in the line below the path used in the html output is _static/logo.png. I'd propose changing this to keep the path given in conf.py instead.

is it a duplicate from https://github.com/pydata/pydata-sphinx-theme/issues/1385 ?

Yep, looks like this is a duplicate. Closing - thank you!


LayoutAnimation easeInEaseOut causes children of top view to disappear or duplicate

Description
I've made a selection object that keeps track of which element of the list is
selected (selection is made using presses). Elements are in the list but the
top list can be rerendered during the lifetime of the app (so can the
elements). If LayoutAnimation.easeInEaseOut() is used in the way below,
interaction with list gets glitchy.
Reproduction Steps and Sample Code
Selecting after the setTimeout event (when the top view App component
is rerendered) will result in duplicate child views, or even removals of some
child views.

Solution
Avoiding this bug can be accomplished by removing the easeInEaseOut call, or
by removing the key property in the TouchableOpacity.
import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  TouchableOpacity,
  LayoutAnimation,
} from 'react-native';

class Selection {

  id: ?string = null;
  listeners: Map<string, (selected: boolean) => void> = new Map();

  addListener = (id: string, f: (selected: boolean) => void) => {
    this.listeners.set(id, f);
  }

  removeListener = (id: string) => {
    this.listeners.delete(id);
  }

  setSelected = (id: string) => {
    if (this.id && this.id !== id) {
      const func = this.listeners.get(this.id) || function a() {};
      func(false);
    }
    this.id = id;
    const f = this.listeners.get(this.id) || function a() {};
    f(true);
  }
}

export default class App extends Component {

  selection = new Selection();

  state = { orders: [
    {id: 'one',
     status: 'onestatus',
    },
    {id: 'two',
     status: 'twostatus',
    },
    {id: 'three',
     status: 'threestatus',
    },
    {id: 'four',
     status: 'fourstatus',
    },
    {id: 'five',
     status: 'fivestatus',
    },
    {id: 'six',
     status: 'sixstatus',
    },
  ]};

  componentWillUpdate = () => {
    LayoutAnimation.easeInEaseOut();
  }

  modifyState = () => {
    const copyArr = this.state.orders.slice();
    copyArr[3].status = Math.random();
    this.setState({ orders: copyArr });
  }

  render() {

    setTimeout(this.modifyState, 5000);
    return (
    <View style={styles.container}>
      {this.state.orders.map((v) => {
        return (<WrapperComponent
          key={v.id}
          info={v.id}
          status={v.status}
          selection={this.selection}
        />);
      })}
    </View>)
  }
}

class WrapperComponent extends React.Component {

  state: {selected: boolean} = {selected: false};

  shouldComponentUpdate = (nextProps, nextState) => {
    return this.props.status !== nextProps.status ||
           this.state.selected !== nextState.selected;
  }

  constructor(props: Props) {
    super(props);
    const selection = props.selection;
    const info = props.info;
    selection && selection.addListener(info, this.markAsSelected);
  }

  markAsSelected = (status: boolean) => {
    this.setState({ selected: status });
  }

  componentWillUnmount = () => {
    const selection = this.props.selection;
    const info = this.props.info;
    selection && selection.removeListener(info);
  }

  onPress = () => {
    const selection = this.props.selection;
    selection && selection.setSelected(this.props.info);
  }

  render() {

    const selected = this.state.selected;
    return (
      <TouchableOpacity key={`${this.props.info}${selected}`} style={{ borderWidth: 5, borderColor: selected ? 'red' : 'black' }} onPress={this.onPress}>
        <Text style={styles.instructions}>
          {this.props.info}
        </Text>
        <Text style={styles.instructions}>
          {this.props.status}
        </Text>
        <Text style={styles.instructions}>
          {selected}
        </Text>
      </TouchableOpacity>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    backgroundColor: '#F5FCFF',
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

AppRegistry.registerComponent('App', () => App);

Additional Information

React Native version: 0.43.0-rc.4
Platform: iOS
Development Operating System: MacOS
Dev tools: Xcode

Can reproduce on iOS react-native 0.42.3 with emulator and real device. The pressable element does not have to be TouchableOpacity - works with a variety of components.
The reason why the bug is happening is because the order of
insertReactSubview and removeReactSubview is incorrect. If easeInEaseOut
is removed then we can see that first removeReactSubview is called and then
insertReactSubview is called. If easeInEaseOut is present then
insertReactSubview will be called first twice and then removeReactSubview
twice (two elements changed, unselected list element turned into selected
one and vice versa). The problem is that removeReactSubview might have wrong
subview in arguments (attached .gif illustrates the duplication - one component on top the other - and removal - whole subview disappears).

Seems to be related to #11962 .

This is probably related to bugs with layout delete animations. The issue is pretty complex and sadly I don't have time to figure out a proper fix for it at the moment. One way you can work around the issue is create the layout animation with the delete one with:
    LayoutAnimation.configureNext({
      duration: 300,
      create: {
        type: LayoutAnimation.Types.easeInEaseOut,
        property: LayoutAnimation.Properties.opacity,
      },
      update: { type: LayoutAnimation.Types.easeInEaseOut },
    });

If someone would like to put up a PR to remove delete animation from the default preset that could be a good temporary solution until we can fix the underlying issue.

This also seems related to #13141

I have the same problem ... No new solution ?

The issue should be fixed currently on master for iOS. Android still has some issues.

Which release is the fix planned to be included in?

any update here ?

Is there still no fix for Android for this bug?


xClusterPreferredOwner: There is no error handling if a cluster resource does not exist

Details of the scenario you tried and the problem that is occurring:
If the user specifies a cluster resource that does not exist, then Get-TargetResource will return without any error, and potentially give a false positive.
The DSC configuration that is using the resource (as detailed as possible):
Any configuration specifying a cluster resource that does not exist in the cluster.
Version of the Operating System and PowerShell the DSC Target Node is running:
n/a
Version of the DSC module you're using, or 'dev' if you're using current dev branch:
Dev

Title was referencing the wrong resource. Changed to the correct one; xClusterPreferredOwner.

The Test-TargetResource function will return $true if cluster resources if missing.
I'm writing tests for this resource, I will Skip the test and make a note in the code referencing this issue.


Text on resources page when there is no matching for the search made is not appropriate

There should be some customised text when search made on the resources page does not yield any matching result. Currently user just sees the page as though no resource was added.

Custom text added.


Fix MSRV for skip-partial-aggregation

Which issue does this PR close?
This is a proposal to fix the MSRV failure on https://github.com/apache/datafusion/pull/11627
The failure is: https://github.com/apache/datafusion/actions/runs/10204347289/job/28280296775?pr=11627
Rationale for this change
CI is failing
To reproduce, use
andrewlamb@Andrews-MacBook-Pro-2:~/Software/datafusion$ cargo +1.76.0 check -p datafusion
warning: /Users/andrewlamb/Software/datafusion/Cargo.toml: unused manifest key: workspace.lints.rust.unexpected_cfgs.check-cfg
    Checking datafusion-common v40.0.0 (/Users/andrewlamb/Software/datafusion/datafusion/common)
    Checking datafusion-expr v40.0.0 (/Users/andrewlamb/Software/datafusion/datafusion/expr)
    Checking datafusion-execution v40.0.0 (/Users/andrewlamb/Software/datafusion/datafusion/execution)
    Checking datafusion-physical-expr-common v40.0.0 (/Users/andrewlamb/Software/datafusion/datafusion/physical-expr-common)
    Checking datafusion-sql v40.0.0 (/Users/andrewlamb/Software/datafusion/datafusion/sql)
    Checking datafusion-functions v40.0.0 (/Users/andrewlamb/Software/datafusion/datafusion/functions)
error[E0716]: temporary value dropped while borrowed
   --> datafusion/physical-expr-common/src/aggregate/groups_accumulator/prim_op.rs:167:18
    |
151 |         let values = match opt_filter {
    |             ------ borrow later stored here
...
167 |                 &PrimitiveArray::<T>::new(values_buf, nulls_buf).with_data_type(dt)
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
168 |             }
    |             - temporary value is freed at the end of this statement
    |
    = note: consider using a `let` binding to create a longer lived value

What changes are included in this PR?
Use a clone() (of a few Arc`s) to make the older rust compiler happy
Are these changes tested?

Are there any user-facing changes?

Cherry-picked 191c3f5 with preserving an authorship into target branch, to avoid merging. Thank you!


Migrate to devnet-rs and sncast

Describe your changes

[x] Update DevnetClient

[x] Migrate to devnet-rs from pythonic devnet
[x] Migrate to sncast from starknet cli

[x] Use Cairo 1 contracts for testing instead of Cairo 0 (sncast does not support Cairo 0)
[x] Update CI
[x] Remove pythonic deps
[x] Update README.md
[ ] Remove compiling contracts

Linked issues

Closes #90
Closes #83
Breaking changes

[ ] This issue contains breaking changes

Should anyone ever encounter something like:
failed: caught error: "bad URL"

The swift stack trace is extremely unhelpful in finding the exact place where error takes place, so wrapping interactions performed via var request = URLRequest(url: URL(String: "http://<IP_ADDRESS>/...")!) in try blocks can be helpful.
The likely reason is that on gh actions swift for some reason does not perceive <IP_ADDRESS> as a valid host.

I'm not sure this level of verbosity is needed in cast-based functions, if you think DevnetClient can and should be simplified I'm eager to hear any suggestions.


Bug in README?

I am using prax for the first time. :+1: for this project!
I had a problem getting up and running. It seemed like prax was simply not running after prax start (which acually was the case).
Trying with prax start --foreground revealed:
$ prax start --foreground
/home/pulver/.rbenv/versions/2.2.1/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- rack/utils (LoadError)
...

I'm using rbenv and dont have rack installed on 2.2.1 because my project uses 2.1.2 (but 2.2.1 is my global rbenv version).
A simple cd /opt/prax && bundle did the trick.
Should this be included in the README?

Prax requires the rack gem (whatever the version) to be installed for the ruby version it should run with. This is noted in the README, if I remember correctly, but maybe it's not emphasised enough.
You'll may want to install rack for the system run, and have Prax use that system ruby, or configure rbenv as per the wiki page, so running prax will select the expected ruby version, and thus find the rack gem.

Please note that only rack is required, I took care to avoid external dependencies as much as possible, to ease the installation.

Ah, now I see what went wrong for me. I did configure rbenv in .praxconfig but I put the config file in the application folder, not in my home folder.
Thanks for your answer.


breeze.saveQueuing.js calling wrong function from breeze entity manager (1 word change required)

Line 193 of breeze.saveQueuing.js,
function rememberAddedOriginalValues() {
// added entities normally don't have original values but these will now
var added = entities ?
entities.filter(function (e) { return e.entityAspect.entityState.isAdded(); }) :
self.entityManager.getChanges(null, breeze.EntityState.Added);  <<---- line 193
added.forEach(function (entity) {
var props = entity.entityType.dataProperties;
var originalValues = entity.entityAspect.originalValues;
props.forEach(function (dp) {
if (dp.isPartOfKey) { return; }
originalValues[dp.name] = entity.getProperty(dp.name);
});
});
}
You meant to get the entities that are added. However, getChanges() only accept 1 argument. You ended up getting all entities from the entity manager. As a result of that, we won't be able to rejectChanges for any entity which failed to save (as originalValues map already overwritten by the above code).
You should be calling self.entityManager.getEntities(null, breeze.EntityState.Added) instead.

Sounds reasonable. PR?

Fixed in breeze-client 2.0.1.  Please see the Release Notes because the usage has changed.


[BUG] MDCA - Logic app success on 401

Describe the bug
The logic app shows successful run even when a 401 is encountered
Randomly see 401s with
{
  "detail": "Invalid JSON Web Key Set"
}

Module Name
MCAS/MDCA

🙃 This might be a timing issue with recently created user. Need to confirm with support or engineering...

Yeah i figured, might not be much we can do but we need to make sure the logic app returns a fail instead of a success in that case with a terminate action after the response.

The problem seems to be related to the use of the generic URL portal.cloudappsecurity.com in the API call.
DNS round robin makes the module call the wrong backend once in a while.
Note that this URL was used to avoid having the operator installing the solution to go grab the MCAS API URL before continuing as it seems there is no programatic way to retrieve or calculate this URL.
I suggest this workaround: https://github.com/briandelmsft/SentinelAutomationModules/commit/0d4778533f7d29d50d3a0fec206ca0c54e9b48cc
Which basically is trying the 5 known (as of today) of Tenant Region for Microsoft Defender for Cloud Apps (according to the privacy documentation and the Content-Security-Policy header returned by the API itself: *.eu.portal.cloudappsecurity.com *.us.portal.cloudappsecurity.com *.us2.portal.cloudappsecurity.com *.eu2.portal.cloudappsecurity.com *.us3.portal.cloudappsecurity.com).

That's quick (the checks are made in parallel) but not super elegant. As soon as we found the right URL we use it for the actual lookup. This doesn't require any permissions change.
Not elegant, but doesn't affect the installation.
In another hand, we can also just ask for the API URL at install and update time.
Thoughts?

@briandelmsft following our conversation:
Moved the Initialize APIURL step on the top:

Then we enter in the "best effort loop" only if the user hasn't set any:

And I update the documentation to reflect this.


Updating Unreal Engine 5 to Preview 2 text

Updated UE5 Early Access tool to UE5 Preview 2

@microsoftman please close your PR in this repo.


Fix fail reporting

As of right now when something fails it gets added to an array and printed out.  The printing isn't exactly as nice as it should be.

See?  We can make that grouping of errors on their own line at least... and definitely prettier.

I can take a stab at this. Did you have some phrasing ideas in mind?

no phrasing in mind.  Try not to say the F word more than 3 times... and that's a soft requirement.

@GantMan lol... i will try my very best to minimize the f-bombs


Allow custom constraint validation errors

Fixes #928

Inputs have a new customValidity prop, which allows setting custom constraint validation errors. Unlike the validationMessage prop, this new prop actually marks the element as invalid, preventing form submission.

It might be feasible to merge the customValidity and validationMessage props, as their behavior somewhat overlaps. That would be a breaking change, though, so it would require some further discussion.

I'll need to extend this to cover other input types if/when we determine whether this is the right API.

Hmm, OK, I get it now.
But maybe our customValidity should be a function that takes the validityState (input.validity) as an argument and has to return the validation message as string. Then this function, if given, will be called when the validity check returns false. This allows the user to create different validation messages based on the validityState.
How about this?

But maybe our customValidity should be a function that takes the validityState (input.validity) as an argument and has to return the validation message as string. Then this function, if given, will be called when the validity check returns false. This allows the user to create different validation messages based on the validityState.

That could work, but it would be more complicated than strictly necessary for my main use case. The main goal here isn't to override the validation message for inputs that already fail a built-in validation check (e.g. required); the existing validationMessage prop generally does that well enough. The goal is to add checks that can't be expressed using the normal validation attributes. For instance:
<script setup lang="ts">
import { OInput } from '@oruga-ui/oruga-next';
import { computed, ref } from 'vue';

const val = ref<string>('');
const validation = computed(() => {
  const value = val.value;
  const valid = value === '' || Number.parseInt(value) % 2 == 0;
  return valid ? '' : 'Enter a number divisible by two';
});

const onSubmit = (e: Event) => { alert('Submitted'); e.preventDefault(); };

</script>

<template>
  <form @submit="onSubmit">
    <OField label="Value">
      <OInput v-model="val" type="number" required :customValidity="validation" />
    </OField>
  </form>
</template>

In this example, any number that isn't a multiple of two will fail the validation checks, preventing form submission.
Your suggested API does seem like it would be an improvement for the existing validationMessage prop, and it might make the distinction between the two use cases clearer. I have to wonder if we should just merge the props, though, since the new customValidity prop can also override the validation message in cases where some other constraint validation check is failing.
Perhaps the right solution (if we're OK with a breaking change) is to merge the props and allow the merged prop to take any one of the following:

A string.
A function taking no arguments and returning a string (or undefined).
A function taking a ValidityState and returning a string (or undefined).

If we want to minimize breakage, we could make it so the prop doesn't set a custom validation error (via setCustomValidity) for otherwise valid inputs when it's given just a string, which would make its behavior for that specific case pretty much match the existing behavior. In the long run, though, I think it's cleanest to call setCustomValidity even if there's not a built-in validation error.

I am just trying to stay open to a wider range of usecases where possible.
With the current validationMessage prop, you can only set the error message, but you cannot set different error messages for different validation errors.
We are currently on a breaking change release with 0.9.0, so it is fine to merge both features into one new prop and implement it as a breaking change.
So the type would be:
customValidity?: string | (validityState: ValidityState) => string | undefined; ?
Yes, we should call setCustomValidity when the prop is given and an error occurs.
Do we need to clean it up when the input is valid again? Like setCustomValidity("") after calling it once with a message?

Do we need to clean it up when the input is valid again? Like setCustomValidity("") after calling it once with a message?

Yes; without cleaning up the custom message, the control will still think it's in an invalid state.
I've pushed up a new version that supports the function-based syntax.

The diff is (unfortunately) a bit of a mess with the restructuring, but I've added some changes that should make this more robust. This seems to hold up in the test cases I've been able to think of so far.

This seems to hold up in the test cases I've been able to think of so far.

Maybe you can add some unit test for this composable?

Maybe you can add some unit test for this composable?

It definitely needs some tests, but implementing them outside of a browser context may be tricky. I don't think the current DOM polyfill supports the constraint validation API.

Should we consider just adding browser-based testing back in for these kinds of cases? This definitely seems like it's getting complicated enough that it needs browser-level tests.

Should we consider just adding browser-based testing back in for these kinds of cases? This definitely seems like it's getting complicated enough that it needs browser-level tests.

I've never done browser-based testing before. Feel free to add a new PR with the configuration changes and some primitive tests to demonstrate.

Thanks mate, looks good now, great work!
Will you finish it up with all the other components? Or should i do that?

I've never done browser-based testing before. Feel free to add a new PR with the configuration changes and some primitive tests to demonstrate.

Sure; I can do that. Would you like me to do that after this PR, or should I consider the browser-based tests a prerequisite for this change?

Will you finish it up with all the other components? Or should i do that?

I'll get the rest of the components taken care of. It should be pretty quick to sort them out.

Would you like me to do that after this PR, or should I consider the browser-based tests a prerequisite for this change?

Maybe just finish this one before opening another bigger topic.

I'll get the rest of the components taken care of. It should be pretty quick to sort them out.

Gool!

Rebased to make the next stage of review easier. I'll extend these changes to all input types next.

I've pushed up some new code changes, When it comes to the documentation, I was trying to build the documentation to test my edits and discovered that the Markdown files seem to be automatically generated. Should I make any updates to the documentation, or should I just let that process take care of things?

The documentation is generated by npm run gen to generate whatever is generated, or just run npm run gen:docs to generate the docs, or npm run dev:watch to start a local documentation dev server with hmr for the oruga package and one time markdown files generation.
Please generate the docs and push the documentation changes to this branch as well.

It seems that you have an older version of the oruga theme installed.
Could you try deleting your node_modules and perhaps package-json, and running npm install from the root folder again?
There shouldn't be any doc changes with theme variables...

Thanks for sorting out the documentation! I'll keep that in mind for my next PR.


Explicit waits basic implementation

Explicit waits implementation for this binding.
I've tested it with this example (this is slightly changed example from this library), check this out:
package main

import (
	"time"
	"fmt"

	"github.com/tebeka/selenium"
)

func tillContentChange(wd selenium.WebDriver) (bool, error) {
	outputDiv, err := wd.FindElement(selenium.ByCSSSelector, "#output")
	if err != nil {
		return false, err
	}

	output, err := outputDiv.Text()
	if err != nil {
		return false, err
	}

	return output != "Waiting for remote server..." && output != "", nil
}

func main() {
	caps := selenium.Capabilities{"browserName": "firefox"}
	wd, err := selenium.NewRemote(caps, "")
	if err != nil {
		panic(err)
	}
	defer wd.Quit()

	if err := wd.Get("http://play.golang.org/?simple=1"); err != nil {
		panic(err)
	}

	elem, err := wd.FindElement(selenium.ByCSSSelector, "#code")
	if err != nil {
		panic(err)
	}
	if err := elem.Clear(); err != nil {
		panic(err)
	}

	err = elem.SendKeys(`
		package main
		import (
			"fmt"
			"time"
		)

		func main() {
			time.Sleep(10 * time.Second)
			fmt.Println("Hello WebDriver!\n")
		}
	`)
	if err != nil {
		panic(err)
	}

	btn, err := wd.FindElement(selenium.ByCSSSelector, "#run")
	if err != nil {
		panic(err)
	}
	if err := btn.Click(); err != nil {
		panic(err)
	}

	if err := wd.WaitWithTimeoutAndInterval(tillContentChange, 15 * time.Second, 1 * time.Second); err != nil {
		panic(err)
	}

	outputDiv, err := wd.FindElement(selenium.ByCSSSelector, "#output")
	if err != nil {
		panic(err)
	}

	output, err := outputDiv.Text();
	if err != nil {
		panic(err)
	}

	fmt.Printf("Got: %s\n", output)
}

You can also try using wd.Wait(tillContentChange) and wd.WaitWithTimeout(some_timeout) to check it.
Also try changing 15 * time.Second to 5 * time.Second so it would return an error instead.
Any changes/proposals are welcome!

Also I'm considering creating another library that acts as a factory and creates such functions to basically provide some syntactic sugar if this PR would be accepted. It would be easier to use it than writing this functions by yourself.
I agree though that it shouldn't be the part of this library itself, as most people wouldn't need this.

Codecov Report

Merging #91 into master will decrease coverage by 0.82%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master     #91      +/-   ##
=========================================
- Coverage   47.33%   46.5%   -0.83%
=========================================
  Files           4       4
  Lines        1126    1146      +20
=========================================
  Hits          533     533
- Misses        512     532      +20
  Partials       81      81

Impacted Files
Coverage Δ

selenium.go
14.28% <ø> (ø)
:arrow_up:

remote.go
52.23% <0%> (-1.17%)
:arrow_down:

Continue to review full report at Codecov.

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

@minusnine can you review it? ;)

@minusnine I've fixed everything you've mentioned except for the tests. Can you help me writing it? (I don't have any experience writing Golang tests unfortunately)

@minusnine I've actually wrote some tests but I can't figure out how to set the testing environment on my local machine. When I run go test, I get this output:
PASS
ok  	_/home/serge1peshcoff/Programming/go/src/github.com/tebeka/selenium	0.005s

Can you help me with that?

@minusnine I've fixed everything you've mentioned except for the test restructioning. Do you have any ideas of how to test the timeout error?
I've reduced the waiting time from 5s to 1s though, probably that'd be fast enough.


Add documentation for environment variables used in docker

Is your feature request related to a problem? Please describe.
It's quite difficult to get craft a working docker-compose file without using https://github.com/netbirdio/netbird/releases/latest/download/getting-started-with-zitadel.sh
to generate example files and the scenario it creates is not the outcome I'm trying to achieve (don't want Zitadel, but I want to know how the services interact with each other)
On top of that I feel very uneasy to run a bash script just to install some docker containers.
Describe the solution you'd like
I'd prefer a properly documented docker installation route and a concise description what each environment variable

is used for
what values it takes
what it defaults to
and ideally an example

and the result of using that example

e.g.
just an example for the structure, because right now I'm guessing the meaning of the environment variable
Container Dashboard
NETBIRD_MGMT_API_ENDPOINT points to the management API exposed by the management container, which is necessary for providing the dashboard with information.
An URI scheme of http[s]://[manamgement_container_url]:[port] is expected. It defaults to http://management:33073
example: NETBIRD_MGMT_API_ENDPOINT=http://management:33073
this points to the API of the management container by using its docker internal DNS name of the service on the default port.
Describe alternatives you've considered
I considered not using netbird, because I'm not capable of setting it up in first place.
Additional context
no further context

If i see it correctly, there is also no differentiation in the variable NETBIRD_DOMAIN. It seems this variable is used for the netbird domain, as well as for the authentication domain, which usually is different from each other.


feat: Test against Sepolia

Please read contributing guidelines and remove this line.

Benchmark results
Metrics with a significant change:

protocol_circuit_simulation_time_in_ms (private-kernel-reset-tiny): 492 (+60%)
protocol_circuit_simulation_time_in_ms (private-kernel-tail): 206 (+27%)
protocol_circuit_simulation_time_in_ms (base-rollup): 2,764 (-20%)
protocol_circuit_simulation_time_in_ms (public-kernel-tail): 559 (-36%)
protocol_circuit_simulation_time_in_ms (private-kernel-reset-small): 458 (+49%)
avm_simulation_time_ms (Benchmarking:increment_balance): 942 (-22%)
protocol_circuit_witness_generation_time_in_ms (private-kernel-reset-tiny): 870 (+21%)
l2_block_building_time_in_ms (4): 9,212 (-19%)
l2_block_building_time_in_ms (8): 17,542 (-22%)
l2_block_building_time_in_ms (16): 35,271 (-20%)
l2_block_rollup_simulation_time_in_ms (4): 9,212 (-19%)
l2_block_rollup_simulation_time_in_ms (8): 17,542 (-22%)
l2_block_rollup_simulation_time_in_ms (16): 35,271 (-20%)
l2_block_public_tx_process_time_in_ms (4): 7,760 (-19%)
l2_block_public_tx_process_time_in_ms (8): 16,018 (-22%)
l2_block_public_tx_process_time_in_ms (16): 33,658 (-21%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Proof generation
Each column represents the number of threads used in proof generation.

Metric
1 threads
4 threads
16 threads
32 threads
64 threads

proof_construction_time_sha256_ms
5,750
1,556
708
761 (+2%)
772 (-1%)

proof_construction_time_sha256_30_ms
11,462
3,084
1,378
1,433
1,455

proof_construction_time_sha256_100_ms
44,038
11,817
5,446
5,450
5,778 (+2%)

proof_construction_time_poseidon_hash_ms
78.0
34.0
34.0
58.0 (+2%)
88.0 (+1%)

proof_construction_time_poseidon_hash_30_ms
1,527
420
202
227
278 (+1%)

proof_construction_time_poseidon_hash_100_ms
5,635
1,507
674
732 (-1%)
743

L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
4 txs
8 txs
16 txs

l1_rollup_calldata_size_in_bytes
4,356
7,876
14,884

l1_rollup_calldata_gas
50,184
93,002
177,904

l1_rollup_execution_gas
1,396,435
2,130,149
3,915,107

l2_block_processing_time_in_ms
259 (+4%)
439
826

l2_block_building_time_in_ms
:warning: 9,212 (-19%)
:warning: 17,542 (-22%)
:warning: 35,271 (-20%)

l2_block_rollup_simulation_time_in_ms
:warning: 9,212 (-19%)
:warning: 17,542 (-22%)
:warning: 35,271 (-20%)

l2_block_public_tx_process_time_in_ms
:warning: 7,760 (-19%)
:warning: 16,018 (-22%)
:warning: 33,658 (-21%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 8 txs.

Metric
3 blocks
5 blocks

node_history_sync_time_in_ms
2,868 (-1%)
3,741 (-2%)

node_database_size_in_bytes
12,619,856
16,707,664

pxe_database_size_in_bytes
16,254
26,813

Circuits stats
Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Function
time_ms
bytecode_size_in_bytes

FeeJuice:_increase_public_balance
59.0 (+6%)
7,739

FeeJuice:set_portal
13.2 (+23%)
2,354

Token:constructor
79.1 (+2%)
26,051

FPC:constructor
53.0 (-1%)
18,001

FeeJuice:mint_public
39.3
5,877

Token:mint_public
47.2 (+6%)
10,917

Token:assert_minter_and_mint
66.1
7,512

AuthRegistry:set_authorized
38.8 (+4%)
4,391

FPC:prepare_fee
237
7,043

Token:transfer_public
27.4 (-12%)
39,426

FPC:pay_refund
55.4 (+9%)
10,234

Benchmarking:increment_balance
:warning: 942 (-22%)
6,563

Token:_increase_public_balance
41.9 (+4%)
8,433

FPC:pay_refund_with_shielded_rebate
66.2 (+5%)
10,783

Public DB Access
Time to access various public DBs.

Function
time_ms

get-nullifier-index
0.159 (+1%)

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
256 leaves
512 leaves
1024 leaves

batch_insert_into_append_only_tree_16_depth_ms
2.19 (-1%)
4.01 (+4%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.7
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.114 (-1%)
0.114 (+4%)
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
11.6 (+3%)
18.2 (+4%)
32.4 (+4%)
59.4 (+1%)
114

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
287
543
1,055

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.111 (+2%)
0.105 (+3%)
0.105 (+4%)
0.102 (+1%)
0.102 (+1%)

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
14.6 (+2%)
25.7 (-1%)
44.5 (+1%)
82.6 (-1%)
162 (+1%)

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
109
207
355
691
1,363

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.110 (+1%)
0.103 (-2%)
0.108 (+2%)
0.103
0.101 (-1%)

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
16.6
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
132
N/A
N/A
N/A
N/A

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
0.106
N/A
N/A
N/A
N/A

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
64,779
668,997

Transaction size based on fee payment method
| Metric |  |
| - |  |


Fix anchor link issue for Nginx and Apache

Fixed the header linking for Nginx and Apache.
Encountered this small issue. Just a quality of life fix.

Thank you! 💙🙏


feat: adding support for WebSocket

WARNING: It's a WIP. If you wish to you can review the PR but it's not finished yet.
Summary of Changes
Adds support for WebSockets that will be part of 4.0 release.
DefaultWeb3SocketClient was added and is based on the native URLSessionWebSocketTask. It's wrapped in #if !os(Linux) ... #endif so we can add a separate instance of DefaultWeb3SocketClient for Linux based on some other library that supports Linux.
Issues that are left to resolve/add:

Linux support;
Location of Keystore. At the moment it's in the Web3Provider. This branch is based on #446 and that PR had moved the attachedKeystore to the web3 class;
Tests;
The rest of compile errors.

Test Data or Screenshots
empty
By submitting this pull request, you are confirming the following:

I have reviewed the Contribution Guidelines.
I have performed a self-review of my own code.
I have updated my repository to match the develop branch.
I have included test data or screenshots that prove my fix is effective or that my feature works.
I have checked that all tests work and swiftlint is not throwing any errors/warnings.

It could be missed in the rush, so I just refresh it a bit: why do we consider adding websocket as 4.0 feature rather then minor update for the 3.* one @JeneaVranceanu?

It could be missed in the rush, so I just refresh it: why do we consider adding websocket as 4.0 feature rather then minor update for the 3.* one @JeneaVranceanu?

@yaroslavyaroslav I think we will have to change the way we store and manage AbstractKeystore in the provider and or Web3 class. It's not yet completely decided. I'm going to focus on that in the following days as I'm back from holidays starting this week.

@JeneaVranceanu I'm really curious why the WebSocket will lead to changes that you've mentioned. Looking forward to hear from you, no rushing tho.


refactor react-query core react integration to observer hooks

Refactor the integration between the core and react-query to use useQueryObserver instead of useBaseQuery and add useMutationObserver and useQueriesObserver hooks. These hooks allow the consumer to pass a custom QueryObserver/MutationObserver/etc to customize these hooks where you want to synchronize the data from another external source outside of the react lifecycle.
The purpose was to override the base observers provided by react query, and create custom ones (in my case GraphQL specific observers that use the query client/query cache, but also the relay-runtime (Relay's non-React specific core) normalized store to get updates from there). Also wanted to do this integration with the core instead of the React hooks API, so that once react query figures out integrations with other platforms, these observers will continue to work in other frameworks as well.
Would love to know if you are interested in supporting something like this?

Think observers are not the right level for this as they are tightly coupled with the hooks and they are meant for watching a query. The QueryCache or Query would probably be better suited for this. You could even do something like this right now:
const queryCache = new QueryCache()

// Listen for query changes
queryCache.subscribe(() => {
  // Iterate all queries and check if the data in Apollo is different from the data in RQ
  queryCache.getAll().forEach(query => {
    // If the data is different, copy the data from Apollo to RQ
    if (condition) {
      query.setData(newData)
    }
  })
})

Marking as stale


Jest warnings

Description

As a developer, I would like to clean up the jest warnings caused by outdated tests, so that the output is cleaner and doesn't bury any legitimate output. We'll know we're done when there are no more jest warnings.
Steps to Reproduce

Run npm run compile && npm run jest on the main branch
The jest tests will output warnings

Additional Context / Screenshots

UXPLATFORM-6602 was logged to track this internally


Allow non-character brace tokens in xparse argument specification

The code below should be expanded to Arg is: 123.
\NewDocumentCommand{\xxx}{ r\a{ 1 } }{  Arg is: #1 }
\xxx \a{123}1

Is this actually used in any packages? It seems like it would add a lot of complication to argument parsing...

I am not aware of any real-world use cases, its just that xparse documentation always talks about "tokens", not individual characters, so I figured out that things like r\a{ 1 } should work and it actually does.
By the way, xparse argument specifications may contain argument processors like > { \SplitArgument { 2 } { , } } m, which I myself found to be convenient. I want to support such argument specifications eventually, and then the parsing will need to be more complicated anyway.


Improve post writing interface

Please could it be made clear that a title is needed to make a new post, as it just fails

Do you think that a more complete information should be provided in the readme ? https://github.com/HubPress/hubpress.io#blog-title-and-headings

https://github.com/HubPress/hubpress.io/blob/master/README.adoc#blog-title-and-headings
does provide this info.
On Tue, 3 Nov 2015, 23:21 Isaac Reid-Guest<EMAIL_ADDRESS>wrote:

Please could it be made clear that a title is needed to make a new post,
as it just fails
—
Reply to this email directly or view it on GitHub
https://github.com/HubPress/hubpress.io/issues/293.

--
Sent from Mobile.

I've completely restructured the README in the /development branch, but
@anthonny needs to do another release.
Check out that README and give me your feedback.
On Wed, 4 Nov 2015, 07:16 Jared Morgan<EMAIL_ADDRESS>wrote:

https://github.com/HubPress/hubpress.io/blob/master/README.adoc#blog-title-and-headings
does provide this info.
On Tue, 3 Nov 2015, 23:21 Isaac Reid-Guest<EMAIL_ADDRESS>wrote:

Please could it be made clear that a title is needed to make a new post,
as it just fails
—
Reply to this email directly or view it on GitHub
https://github.com/HubPress/hubpress.io/issues/293.

--
Sent from Mobile.

--
Sent from Mobile.

https://hubpress.gitbooks.io/hubpress-knowledgebase/content/write/titles_and_headings.html describes the implemented Save button disable feature.


Add retry count to the response

To get a visual on how many retries have been done before a fetch requests passes or fails it would be nice if something like that could be added to the response. This would enable users of the library to verify the amount of retries done and to show that in in applications potentially.

This would be nice to add. I wouldn't mind a hook to just make my own function to run though. Then we could add logging, metics, etc on retries.


[add2app] webview_flutter (non-hybrid version) renders scroll bars on the wrong side.

Steps to Reproduce
Edit: this issue appears to only manifest in our add-to-app use case. I'm not sure which layers of our add-to-app construction are specifically related to the problem.

Create a simple flutter app that uses the WebView plugin to render a page that is long enough to scroll.
Make sure to use the non-hybrid version of the plugin (not SurfaceAndroidWebView)
Run the app on Android (emulator should be fine) and scroll the page

Expected results:
Scroll bar should be rendered on the right side in LTR locales.
Actual results:
Scroll bar is rendered on the left side no matter the locale.

Hi @math1man
I just tried a simple code sample with Wikipedia, scroll on the right side as expected using webview_flutter: ^2.0.2

code sample
import 'package:flutter/material.dart';
import 'dart:io';

import 'package:webview_flutter/webview_flutter.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: WebViewExample(),
    );
  }
}

class WebViewExample extends StatefulWidget {
  @override
  WebViewExampleState createState() => WebViewExampleState();
}

class WebViewExampleState extends State<WebViewExample> {
  // @override
  // void initState() {
  //   super.initState();
  //   // Enable hybrid composition.
  //   if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
  // }

  @override
  Widget build(BuildContext context) {
    return WebView(
      initialUrl: 'https://en.wikipedia.org/wiki/Google',
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel master, 2.1.0-13.0.pre.322, on macOS 11.2.3 20D91
    darwin-x64, locale en-GB)
    • Flutter version 2.1.0-13.0.pre.322 at
      /Users/tahatesser/Code/flutter_master
    • Framework revision e93590474d (2 hours ago), 2021-03-30 02:14:03 -0400
    • Engine revision dbcbf69a57
    • Dart version 2.13.0 (build 2.13.0-175.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Volumes/Extreme/SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Volumes/Extreme/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Volumes/Extreme/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.2.3 20D91 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 89.0.4389.90

• No issues found!

The issue appears to be specific to our add-to-app use case. Your code snippet works fine in our standalone app, but encounters the issue in our add-to-app version. I'm not sure if I can create a truly minimal repro sample.

Hi @math1man
Thanks for the details, I can confirm the using official add_to_app/fullscreen example on Android
When launching just flutter module, webview's scrollbar is on expected side
webview version
webview_flutter: ^2.0.2
Preview

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.3, on Microsoft Windows [Version 10.0.19042.870], locale en-US)
    • Flutter version 2.0.3 at C:\Users\Taha\Code\flutter_stable
    • Framework revision 4d7946a68d (12 days ago), 2021-03-18 17:24:33 -0700
    • Engine revision 3459eb2436
    • Dart version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\Taha\Code\SDK
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.2)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.9.31112.23
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] VS Code (version 1.54.3)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.20.0

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
    • Windows (desktop)       • windows       • windows-x64    • Microsoft Windows [Version 10.0.19042.870]
    • Chrome (web)            • chrome        • web-javascript • Google Chrome 89.0.4389.90
    • Edge (web)              • edge          • web-javascript • Microsoft Edge 89.0.774.63

• No issues found!

[✓] Flutter (Channel master, 2.1.0-13.0.pre.346, on Microsoft Windows [Version 10.0.19042.870], locale en-US)
    • Flutter version 2.1.0-13.0.pre.346 at C:\Users\Taha\Code\flutter_master
    • Framework revision 8158b478d7 (4 hours ago), 2021-03-31 13:29:03 +0800
    • Engine revision dbcbf69a57
    • Dart version 2.13.0 (build 2.13.0-175.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\Taha\Code\SDK
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.2)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.9.31112.23
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] VS Code (version 1.54.3)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.20.0

[✓] Connected device (4 available)
    • sdk gphone x86 (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
    • Windows (desktop)       • windows       • windows-x64    • Microsoft Windows [Version 10.0.19042.870]
    • Chrome (web)            • chrome        • web-javascript • Google Chrome 89.0.4389.90
    • Edge (web)              • edge          • web-javascript • Microsoft Edge 89.0.774.63

• No issues found!

Thanks! Glad to see this was fairly easy to reproduce.

Assigning to @blasten since you have already reviewed the PR.

Fixed in https://github.com/flutter/plugins/pull/3765


[FEATURE REQUEST] ... Underfunded auto assign allows for budgeting half the goal or some other fraction/percentage

Hello,
This may be a major undertaking.  However, we get paid biweekly/fortnightly.  The underfunded auto assign is not helpful because we budget half our goal/target for an expense per paycheck.  Such as half the mortgage, half the fuel, half of various bills, per check.  Some people get paid weekly or on some other non-monthly schedule that might wish a 1/4 or 25% option.
Right now, say mortgage goal is 1000, transportation is 400, insurance is 200, I manually go through all those categories and input half the amount needed.  Currently, underfunded looks at our goal targets and will fund the entire mortgage and then not have anything left for those other categories, even for partial funding. Any funds leftover to budget, I have to manually select one or more categories to use the underfunded feature.  This is not only annoying, but inefficient.  While I don't mind that friction from the looking hard at your money, because it is our practice, it is too much friction for a quick budget option.
For me personally, this is important because we get a fair amount of overtime, even if it fluctuates. We base our basic expenses on no overtime and use the overtime pay to fill/fund wishlist items or long term sinking funds.  Essentially, we are living paycheck to paycheck until we can get specific sinking funds filled, like an emergency fund, with overtime pay.
As an example for oversimplicity:
If our take home pay is $1000, I would like an underfunded quick budget option that will assign half the goals for mortgage, transportation, and insurance, with the remainder going to either savings/emergency fund or staying in ready to assign.  Even if this means I need to select or otherwise identify categories to use the "half" with, then select other categories to simply quick budget in full or part.  I would be fine with a global "half the goal" quickbudget option for our use case.
The "savings" toolkit option gave me the idea for the "half" as a potential identifier option, if it were developed in that manner.
Thank you for considering this.

upvoting this.  +1

@JordanChoe @imanilea Check out the Add Fund Half feature in the Budget section.

I saw it in the latest update.  Was a bit glitchy, but havent had time to
sort if my browser or or actual bug.  My whole ynab was acting up, so
unsure a toolkit issue. :)
On Wed, Feb 21, 2024, 7:32 PM Joe Rattz @.***> wrote:

@JordanChoe https://github.com/JordanChoe @imanilea
https://github.com/imanilea Check out the Add Fund Half feature in the
Budget section.
—
Reply to this email directly, view it on GitHub
https://github.com/toolkit-for-ynab/toolkit-for-ynab/issues/3151#issuecomment-1958449191,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZZ33M573ONIEBOI24EFYA3YU2GZTAVCNFSM6AAAAAAZNPBI4KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJYGQ2DSMJZGE
.
You are receiving this because you were mentioned.Message ID:
@.***>


Publish package to the anaconda

Is your feature request related to a problem? Please describe.
Anaconda contains packages for data scientist. I propose to package find-similar package there.
nltk, skipy, pymorphy3, ... have been already in anaconda
Describe the solution you'd like

find a way to load package to the anaconda:

https://enterprise-docs.anaconda.com/en/latest/data-science-workflows/packages/upload.html

https://docs.conda.io/projects/conda-build/en/stable/install-conda-build.html

https://enterprise-docs.anaconda.com/en/latest/data-science-workflows/packages/build.html

others

load package
find a way to load package automatically

Simple anaconda package available


JENKINS_VERSION doesn't fetch the right war version

I'm using the 2.0-alpine jenkins docker image in a docker-compose file but the JENKINS_VERSION environment variable doesn't have any effect on the war version in the jenkins image.
With this example below, i want to use the 2.2 version of the war but i the image work with the 2.0 version (fallback value in the dockerfile)
# docker-compose config
networks: {}
services:
  server:
    environment:
      JENKINS_VERSION: '2.2'
    image: jenkins:2.0-alpine
    ports:
    - 5001:5000
    - 8081:8080
    restart:
      MaximumRetryCount: 0
      Name: always
    user: root
    volumes:
    - /home/data/docker/containers/jenkins/data:/var/jenkins_home:rw
version: '2.0'
volumes: {}

is there any issue of using ARG and ENV in your dockerfile which make the env variable not modifiable ?

JENKINS_VERSION is only used at build time, you need to choose the tag for the version you want
There is no alpine version for 2.2 yet https://hub.docker.com/r/jenkinsci/jenkins/tags/

@carlossg Thank's but why the jenkinsci/jenkins repository is not the official repository on the docker hub ? (instead jenkins)

because the official repo requires manual intervention to publish new versions, while  jenkinsci/jenkins is automatically pushed

the jenkins repo is more convenient for people to just docker run jenkins, there's no real technical reason behind


Domain only compatibility broken

The app prefixes the entry text with a period when only the domain url component is selected: so "google" becomes ".google". This breaks compatibility with the chrome extension, other passwordmaker.org apps, and makes it useless for generating consistent "real life" passwords that do not derive from a url format

Hey @jasemo, thanks for the report. Sorry this is affecting you; I largely developed this for my own use so I haven't really used it in a wide array of configurations. What's more unfortunate is that I don't have a ton of time to devote to side projects right now. :(
I actually have plans for a complete rewrite, but who knows when that'll happen. Nevertheless, if I catch some free time I should be able to fix this (along with a few other things) fairly quickly. I'm sure it's an annoyance for you and others.
Thanks again for reporting the issue and for using the app!

Hi Eddie,
Thanks for the reply.. I am sorry to hear PasswordMaker X is in limbo at
the moment, though glad you're busy. :-)
Just so you know - your app is one of maybe three (?) in the android
marketplace (or at least the about 15 I looked at) that works and offers
the full range of passwordmaker.org options - and the *only *without other
issues and where the author has bothered with any level of concern for
design. (Seriously - the others look like something from the 90s.) - I say
that only to explain that yours would be one app I'd happily drop money on.

If only that pesky full-stop was fixed.

BTW, if you do get round to it, you might find a number of other complaints
go away - I noticed one about a lack of compatibility with the web-based
generator and other apps. For me compatibility was perfect if I simply
added a leading "." in the comparison generator. - I'm guessing they were
doing the same as me and just didn't notice the period at the start of the
"using text" area.
Anyway thanks for your reply and best of luck with your other endeavors -
here's hoping you get time to work on this again sometime soon.
Regards,
Jason M-O
On Fri, 21 Jul 2017 at 02:34 Eddie Ringle<EMAIL_ADDRESS>wrote:

Hey @jasemo https://github.com/jasemo, thanks for the report. Sorry
this is affecting you; I largely developed this for my own use so I haven't
really used it in a wide array of configurations. What's more unfortunate
is that I don't have a ton of time to devote to side projects right now. :(
I actually have plans for a complete rewrite, but who knows when that'll
happen. Nevertheless, if I catch some free time I should be able to fix
this (along with a few other things) fairly quickly. I'm sure it's an
annoyance for you and others.
Thanks again for reporting the issue and for using the app!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/EddieRingle/PasswordMaker_X/issues/6#issuecomment-316759740,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ac4_OERiJ8gSX9kZ1g4PpzfNJ6sQaI5rks5sP4F-gaJpZM4Ocyzm
.

Hi Eddie,
this is really bugging me, too. Basically all that you would have to change is to use the Input Text as is, without assuming it's a URL. That is, I assume you'd just have to revert commit 8867ba379fd46954cbecbc1fe2cbc8fedf6d6579.
If you really lack the time to tackle this issue, I might be able to send you a pull request, but I'd need to understand why you're parsing the Input Text as URL.
Best,
Márton

Hi Márton  ,
Awesome to know I wasn't the only one that found this. Found the same issue
with a number of similar apps too. Hope someone can work out a fix.
Please let me know if you do.
Best regards,
Jason M-O
On Mon, 4 Mar 2019 at 17:03 marton78<EMAIL_ADDRESS>wrote:

Hi Eddie,
this is really bugging me, too. Basically all that you would have to
change is to use the Input Text as is, without assuming it's a URL.
That is, I assume you'd just have to revert commit 8867ba3
https://github.com/EddieRingle/PasswordMaker_X/commit/8867ba379fd46954cbecbc1fe2cbc8fedf6d6579
.
If you really lack the time to tackle this issue, I might be able to send
you a pull request, but I'd need to understand why you're parsing the Input
Text as URL.
Best,
Márton
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/EddieRingle/PasswordMaker_X/issues/6#issuecomment-469129521,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Ac4_OEB69cUO0jOuMJXKPt0HyuLv5WtCks5vTLccgaJpZM4Ocyzm
.


:rock: Pycaret classification components + examples

Description
Pycaret components for ML classification tasks, including the most commonly used Pycaret functions, 2 examples xircuits for binary classification and one example for multiclass classification
References
N/A
Pull Request Type

[ ] Xircuits Core (Jupyterlab Related changes)
[ ] Xircuits Canvas (Custom RD Related changes)
[x] Xircuits Component Library
[ ] Testing Automation
[ ] Documentation
[ ] Others (Please Specify)

Type of Change

[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Tests

compile and run AutoMLBasicBinaryClassification.xircuits
compile and run AutoMLClassificationBlendModels.xircuits
compile and run AutoMLBasicMulticlassClassification.xircuits
create new Xircuits using the available components

Tested on?

[x] Windows
[ ] Linux Ubuntu
[ ] Centos
[ ] Mac
[ ] Others  (State here -> xxx )

Notes
N/A

Thank you for the review,
Fixes applied as suggested.


Pushing version v1 to master

Version 1.0.0 of mjrl contains code relevent for model-based RL (PAL and MAL) and other improvements for code optimization and visualization.

Merging v1 into master. The old master is available in v0 branch.


Refactor codebase to lean on Role model methods

TBD

Coverage decreased (-11.06%) to 54.516% when pulling a5d0c85265c8013f44ef9e0b08cc5853565644bd on use-role-methods into a70fed198616c67f1dad944d7b4343bdcba82d6d on master.

Coverage decreased (-11.06%) to 54.516% when pulling a5d0c85265c8013f44ef9e0b08cc5853565644bd on use-role-methods into a70fed198616c67f1dad944d7b4343bdcba82d6d on master.


Add "until:" config setting

Closes #75.

Codecov Report

Merging #76 (53752f3) into master (0215fbb) will decrease coverage by 63.50%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #76       +/-   ##
==========================================
- Coverage   67.31%   3.80%   -63.51%
==========================================
  Files           9       8        -1
  Lines         722     735       +13
  Branches      100     107        +7
==========================================
- Hits          486      28      -458
- Misses        194     707      +513
+ Partials       42       0       -42

Impacted Files
Coverage Δ

src/tinuous/__main__.py
0.00% <0.00%> (-48.47%)
:arrow_down:

src/tinuous/appveyor.py
0.00% <0.00%> (-82.67%)
:arrow_down:

src/tinuous/base.py
0.00% <0.00%> (-93.11%)
:arrow_down:

src/tinuous/config.py
0.00% <0.00%> (-90.79%)
:arrow_down:

src/tinuous/github.py
0.00% <0.00%> (-51.29%)
:arrow_down:

src/tinuous/travis.py
0.00% <0.00%> (-67.97%)
:arrow_down:

... and 4 more

Continue to review full report at Codecov.

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

Great, thank you @jwodder !


Checkbox fixes

Closes #1318
Preview

indeterminate:

[ ] background checkbox color on state indeterminate to be changed. Fixed by https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/pull/1339/commits/7ac2ecd30380f9a4705896db8dae0edba8f17023
[ ] background checkbox color on state indeterminate disabled to be changed. Fixed by https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/pull/1339/commits/d7c2762ca4cdfdb79e752e7e34ecf3942c542bc7

disabled:

[ ] add "Indeterminate checkbox" case. Should be tackled on Bs IMO. Fixed by https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/pull/1339/commits/61d3a1965a4bf56325e3b46e933c8d20f85e14ee
[ ] delete the checkbox active/pressed state on a disabled checkbox that make its border turn orange where there shouldn't be any color change. Fixed by https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/pull/1339/commits/8c2bf4e54f5d9b3bc2978056bf85bf3cd1632bb6

This branch has conflicts that must be resolved (5.1 → 5.2)

Created https://github.com/twbs/bootstrap/pull/36674 to propose the change in the doc about indeterminate disabled checkbox that could be interesting for Bootstrap as well.


Broken after updating to 2023.5.2

My integration was working perfectly and now I am getting this error after updating to 2023.5.2
This error originated from a custom integration.
Logger: homeassistant.config_entries
Source: custom_components/hikvision_axpro/init.py:58
Integration: hikvision_axpro
First occurred: 11:02:11 (2 occurrences)
Last logged: 11:05:53
Error setting up entry Hikvision_axpro_<IP_ADDRESS> for hikvision_axpro
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
File "/config/custom_components/hikvision_axpro/init.py", line 58, in async_setup_entry
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
AttributeError: 'ConfigEntries' object has no attribute 'async_setup_platforms'

Hi Verpz,
I got the same problem since the last update. After searching the web i found a fork of this projet:
https://github.com/petrleocompel/hikaxpro_hacs
I installed it and then it works with more options.


[C++][Parquet] DeltaBitPackDecoder expects all miniblock bitwidths to be present for the last block

Describe the bug, including details regarding any error messages, version, and platform.
This is a follow-up to this discussion.
Arrow's reader is not compliant with the spec, and requires all miniblock bitwidth values of the last block even if not necessary. This forces arrow writer to write all miniblock bitwidths to be able to roundtrip which is not a big issue. However it does mean Arrow reader would not be able to read bitpacked buffer written by another parquet writer that does not write all miniblock bitwidths.
Component(s)
C++, Parquet

cc @shanhuuang

The decoder in question is here.

@rok Is it possible for you to generate a small data page that would exhibit the issue?

@pitrou sure. By that you mean a single parquet file?

That would work, but it can also be a small piece of data suitable for Decoder::SetData(...)

Sorry this took a while, here's a test with examples generated with this->Execute(65, 1);:
class DeltaBitPackEncoding : public TestArrowBuilderDecoding {
 public:
  void SetupEncoderDecoder() override {}
};

TEST_F(DeltaBitPackEncoding, Example) {
  std::shared_ptr<ColumnDescriptor> descr_ = ExampleDescr<Int32Type>();
  auto decoder = MakeTypedDecoder<Int32Type>(Encoding::DELTA_BINARY_PACKED, descr_.get());
  using c_type = parquet::Int32Type::c_type;

  unsigned char good_data [] = "\200\001\004A\237\224\316\362\r\242\220\203-  ";
  int encode_buffer_size = 273;
  int num_values = 65;
  std::vector<uint8_t> output_bytes = std::vector<uint8_t>(num_values * sizeof(c_type));
  auto decode_buf = reinterpret_cast<c_type*>(output_bytes.data());
  decoder->SetData(num_values, &good_data[0], encode_buffer_size);
  int values_decoded = decoder->Decode(decode_buf, num_values);
  ASSERT_EQ(num_values, values_decoded);

  unsigned char bad_data[] =
      "\200\001\004A\237\224\316\362\r\242\220\203-  "
      "\245\245\304;`\210'\313\r\270D\316\306h㖀~\372\255\360A\254}\211L\343\373_"
      "\034®\312Y\036\233<\203\035P\202)\307Y\356\327\024\302!\232\036,"
      "\271\b\331\353\037e\333\332\315Crm\203\350בOo\001\347\305Z\203G\037\263Y\254\366_"
      "\"\v\276\242Y\002\374\300\226\231\252C\240\363ۙ\r\334E\314\f\002\255\227\273\307"
      "\305'\"\033\235\374\250\243\244F\266\254\350\203\304U\036X\331&\210/"
      "\037\322\321s.\031e/"
      "\232\340\363\366\306\030\243,5\337\031\005bw\021\017wj\003#Q`\371ʉ\323\300+~="
      "\232W\232\374p\336$\022\211VQ\237>\v1gە'\224\207\262f\247h\363A!"
      "\255\271f\026\274\033_\333)4";
  output_bytes = std::vector<uint8_t>(num_values * sizeof(c_type));
  decode_buf = reinterpret_cast<c_type*>(output_bytes.data());
  decoder->SetData(num_values, &bad_data[0], encode_buffer_size);
}

Sorry this took a while, here's a test with examples generated with this->Execute(65, 1);:

Hi rok, can you provide the environment you're using and the error messages? Since that I cannot reproduce the fatal on my environment (ARROW_SIMD_LEVEL=NEON in aarch64) @rok

Hey @mapleFU. I'm on Ryzen 7 Linux desko 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux.
If you just apply the change below and run arrow test suite you should hit the same issue.
diff --git a/cpp/src/parquet/encoding.cc b/cpp/src/parquet/encoding.cc
index 720b6fcb1..aef079da3 100644
--- a/cpp/src/parquet/encoding.cc
+++ b/cpp/src/parquet/encoding.cc
@@ -2248,9 +2248,6 @@ void DeltaBitPackEncoder<DType>::FlushBlock() {
   // needed to store the values, the bytes storing the bit widths of the unneeded
   // miniblocks are still present, their value should be zero, but readers must accept
   // arbitrary values as well.
-  for (uint32_t i = num_miniblocks; i < mini_blocks_per_block_; i++) {
-    bit_width_data[i] = 0;
-  }
   DCHECK_EQ(values_current_block_, 0);

Cannot reproduce this problem on my macos, guess maybe the problem comes from SIMD unpack or other. I will keep the diff and try it on my pc tonight.
diff --git a/cpp/src/parquet/encoding.cc b/cpp/src/parquet/encoding.cc
index 9761dfd30..06cf385cc 100644
--- a/cpp/src/parquet/encoding.cc
+++ b/cpp/src/parquet/encoding.cc
@@ -2248,9 +2248,9 @@ void DeltaBitPackEncoder<DType>::FlushBlock() {
   // needed to store the values, the bytes storing the bit widths of the unneeded
   // miniblocks are still present, their value should be zero, but readers must accept
   // arbitrary values as well.
-  for (uint32_t i = num_miniblocks; i < mini_blocks_per_block_; i++) {
-    bit_width_data[i] = 0;
-  }
+  // for (uint32_t i = num_miniblocks; i < mini_blocks_per_block_; i++) {
+  //  bit_width_data[i] = 0;
+  // }
   DCHECK_EQ(values_current_block_, 0);

   bit_writer_.Flush();
diff --git a/cpp/src/parquet/encoding_test.cc b/cpp/src/parquet/encoding_test.cc
index 3b4cafab8..26a5c8d5b 100644
--- a/cpp/src/parquet/encoding_test.cc
+++ b/cpp/src/parquet/encoding_test.cc
@@ -1057,6 +1057,42 @@ TEST_F(DictEncoding, CheckDecodeIndicesNoNulls) {
   CheckDict(actual_num_values, *builder);
 }

+class DeltaBitPackEncoding : public TestArrowBuilderDecoding {
+ public:
+  void SetupEncoderDecoder() override {}
+};
+
+TEST_F(DeltaBitPackEncoding, Example) {
+  std::shared_ptr<ColumnDescriptor> descr_ = ExampleDescr<Int32Type>();
+  auto decoder = MakeTypedDecoder<Int32Type>(Encoding::DELTA_BINARY_PACKED, descr_.get());
+  using c_type = parquet::Int32Type::c_type;
+
+  unsigned char good_data [] = "\200\001\004A\237\224\316\362\r\242\220\203-  ";
+  int encode_buffer_size = 273;
+  int num_values = 65;
+  std::vector<uint8_t> output_bytes = std::vector<uint8_t>(num_values * sizeof(c_type));
+  auto decode_buf = reinterpret_cast<c_type*>(output_bytes.data());
+  decoder->SetData(num_values, &good_data[0], encode_buffer_size);
+  int values_decoded = decoder->Decode(decode_buf, num_values);
+  ASSERT_EQ(num_values, values_decoded);
+
+  unsigned char bad_data[] =
+      "\200\001\004A\237\224\316\362\r\242\220\203-  "
+      "\245\245\304;`\210'\313\r\270D\316\306h㖀~\372\255\360A\254}\211L\343\373_"
+      "\034®\312Y\036\233<\203\035P\202)\307Y\356\327\024\302!\232\036,"
+      "\271\b\331\353\037e\333\332\315Crm\203\350בOo\001\347\305Z\203G\037\263Y\254\366_"
+      "\"\v\276\242Y\002\374\300\226\231\252C\240\363ۙ\r\334E\314\f\002\255\227\273\307"
+      "\305'\"\033\235\374\250\243\244F\266\254\350\203\304U\036X\331&\210/"
+      "\037\322\321s.\031e/"
+      "\232\340\363\366\306\030\243,5\337\031\005bw\021\017wj\003#Q`\371ʉ\323\300+~="
+      "\232W\232\374p\336$\022\211VQ\237>\v1gە'\224\207\262f\247h\363A!"
+      "\255\271f\026\274\033_\333)4";
+  output_bytes = std::vector<uint8_t>(num_values * sizeof(c_type));
+  decode_buf = reinterpret_cast<c_type*>(output_bytes.data());
+  decoder->SetData(num_values, &bad_data[0], encode_buffer_size);
+}
+
+
 // ----------------------------------------------------------------------
 // BYTE_STREAM_SPLIT encode/decode tests.

@@ -1388,6 +1424,7 @@ TYPED_TEST(TestDeltaBitPackEncoding, BasicRoundTrip) {
   ASSERT_NO_FATAL_FAILURE(
       this->Execute((values_per_mini_block * values_per_block) + 1, 10));
   ASSERT_NO_FATAL_FAILURE(this->Execute(0, 0));
+  ASSERT_NO_FATAL_FAILURE(this->Execute(65, 1));
   ASSERT_NO_FATAL_FAILURE(this->ExecuteSpaced(
       /*nvalues*/ 1234, /*repeats*/ 1, /*valid_bits_offset*/ 64,
       /*null_probability*/ 0.1));

@rok I reproduce this problem on my pc by applying the change below:
-  for (uint32_t i = num_miniblocks; i < mini_blocks_per_block_; i++) {
-    bit_width_data[i] = 0;
-  }
+  // for (uint32_t i = num_miniblocks; i < mini_blocks_per_block_; i++) {
+  //  bit_width_data[i] = 0;
+  // }

But I think the code just break our standard, by unuse bit_width_data[i] = 0;, we will leak some mini-blocks, the real code would be:
 for (uint32_t i = num_miniblocks; i < mini_blocks_per_block_; i++) {
    bit_width_data[i] = 1 /* or other random bit width for miniblock */;
    for (uint32_t j = 0; j < values_per_mini_block_; j++) {
       bit_writer_.PutValue(0, bit_width_data[i]);
    }
 }

And previous case would lead to:

write less bits than expected for the last block
Last block bit_width_data random

So I think here is no bug. If I'm wrong, please correct me @rok

And after gothrough the code in DeltaBitPackDecoder, I found it a bit hacking for border handling. Get internal will have:
  int GetInternal(T* buffer, int max_values) {
    max_values = static_cast<int>(std::min<int64_t>(max_values, total_value_count_));
    if (max_values == 0) {
      return 0;
    }

So, once it reaches the last block, it will just read the last mini-block with data, the remaining buffer will not be read or checked.

@mapleFU I am worried about this part of the spec:

If, in the last block, less than  miniblocks are needed to store the values, the bytes storing the bit widths of the unneeded miniblocks are still present, their value should be zero, but readers must accept arbitrary values as well.

I'm not sure how other encoder authors would interpret this, but I expected that uninitialized bit_width_data[i] would produce a random int that wouldn't cause problems roundtripping. My interpretation is probably wrong. Maybe we should propose to make the spec clearer or stricter?

So, once it reaches the last block, it will just read the last mini-block with data, the remaining buffer will not be read or checked.

That sounds like a good idea!

@mapleFU I am worried about this part of the spec:
I'm not sure how other encoder authors would interpret this, but I expected that uninitialized bit_width_data[i] would produce a random int that wouldn't cause problems roundtripping. My interpretation is probably wrong. Maybe we should propose to make the spec clearer or stricter?

Hi, I think the arbitrary value means the bit_width could be 1, 2... But once the bit width is not zero, the miniblock should have corresbond bits.
And I met the exceptions because:

The bit_width is greater than 32

I didn't meet the case that it reaches EOF, because the implemention already handle this cases.
@rok

@mapleFU Please read the spec again:

If, in the last block, less than miniblocks are needed to store the values, the bytes storing the bit widths of the unneeded miniblocks are still present, their value should be zero, but readers must accept arbitrary values as well. There are no additional padding bytes for the miniblock bodies though, as if their bit widths were 0 (regardless of the actual byte values). The reader knows when to stop reading by keeping track of the number of values read.

Damn...It's really trickey, maybe I can see how parquet-mr implements it.
Seems that DELTA_BINARY_PACK is really a bug and ub creator

It should actually be quite simple:
diff --git a/cpp/src/parquet/encoding.cc b/cpp/src/parquet/encoding.cc
index b761de69d..6f7e1e9e0 100644
--- a/cpp/src/parquet/encoding.cc
+++ b/cpp/src/parquet/encoding.cc
@@ -2454,13 +2454,17 @@ class DeltaBitPackDecoder : public DecoderImpl, virtual public TypedDecoder<DTyp

     // read the bitwidth of each miniblock
     uint8_t* bit_width_data = delta_bit_widths_->mutable_data();
+    uint32_t current_num_values = 0;
+
     for (uint32_t i = 0; i < mini_blocks_per_block_; ++i) {
       if (!decoder_->GetAligned<uint8_t>(1, bit_width_data + i)) {
         ParquetException::EofException();
       }
-      if (bit_width_data[i] > kMaxDeltaBitWidth) {
+      if (ARROW_PREDICT_FALSE(bit_width_data[i] > kMaxDeltaBitWidth &&
+                              current_num_values < total_value_count_)) {
         throw ParquetException("delta bit width larger than integer bit width");
       }
+      current_num_values += values_per_mini_block_;
     }
     mini_block_idx_ = 0;
     delta_bit_width_ = bit_width_data[0];

The code looks simple and great. parquet-mr will not check the bit-length. It's really trickey :(

The code is like:
  private void loadNewBlockToBuffer() throws IOException {
    try {
      minDeltaInCurrentBlock = BytesUtils.readZigZagVarLong(in);
    } catch (IOException e) {
      throw new ParquetDecodingException("can not read min delta in current block", e);
    }

    readBitWidthsForMiniBlocks();

    // mini block is atomic for reading, we read a mini block when there are more values left
    int i;
    for (i = 0; i < config.miniBlockNumInABlock && valuesBuffered < totalValueCount; i++) {
      BytePackerForLong packer = Packer.LITTLE_ENDIAN.newBytePackerForLong(bitWidths[i]);
      unpackMiniBlock(packer);
    }

    //calculate values from deltas unpacked for current block
    int valueUnpacked=i*config.miniBlockSizeInValues;
    for (int j = valuesBuffered-valueUnpacked; j < valuesBuffered; j++) {
      int index = j;
      valuesBuffer[index] += minDeltaInCurrentBlock + valuesBuffer[index - 1];
    }
  }

  private void readBitWidthsForMiniBlocks() {
    for (int i = 0; i < config.miniBlockNumInABlock; i++) {
      try {
        bitWidths[i] = BytesUtils.readIntLittleEndianOnOneByte(in);
      } catch (IOException e) {
        throw new ParquetDecodingException("Can not decode bitwidth in block header", e);
      }
    }
  }

  private int[] bitWidths;

when readBitWidthsForMiniBlocks, it will not check it's size
Only when valuesBuffered < totalValueCount, it will use bitWidths and unpack mini block

I think your fixing is much better, let's make it into our codebase :)

I am going to remove the milestone in preparation for the release, please if this is a blocker add the label Priority: Blocker


New installation of bunqdesktop doesn't get all transactions

Windows 10 and bunqDesktop 0.9.9.
I've just installed bunqDesktop 0.9.9. This was a fresh install. Unfortunately bunqDesktop doesn't retrieve all my transactions. I could see this very easily because in the stats overview almost all my salary payments were missing.
Clicking refresh did help a bit once: it would retrieve my second to last salary payment. Afterwards it did not do anything.
I do have some very old transactions in the overview, so it does not seem related to the date.
Restarting bunqDesktop did not help either.
Edit: I use the API key method

Hi @JeroenEeuwes
Thanks for creating this issue! Unfortunately, it's not just Windows 10. I am having the same problems on Ubuntu but hadn't opened an issue, yet, because it is challenging to find the cause. So, thanks again for creating this issue. It's time to start tracking the progress.
I did notice that using multiple accounts seems to be a surefire way to cause the bunqDesktop app to get out of sync. Logging out and then logging in again usually fixes the problem for me.
Because of the (probable) big rewrite needed to fix the synchronization, this issue was out of scope for the 0.99 release. bunq has released a whole new endpoint for transactions (events endpoint), which, I believe, even deprecates the endpoints the app currently uses (Mastercard actions + payments endpoint).
There's some catching up to do with listing transactions, but @Crecket has started work on the new events endpoint, and some architectural changes are being made to improve the app's data flow (including but not limited to synchronization): https://github.com/bunqCommunity/bunqDesktop/pull/551

@firstred Because you mentioned the different transaction types I just checked and all my old transactions shown are iDeal payments and Tap&Pay payments. For stuff like payments from or to other people/companies I only have transactions in the last few months.


Fixed #96

The code is still experimental for 'Full Row Details' mode.
Test for GitHub configuration.

Current coverage is 96.60%

Merging #101 into master will not affect coverage as of 80bd80d

@@            master    #101   diff @@
======================================
  Files           22      22
  Stmts        16367   16367
  Branches         0       0
  Methods          0       0
======================================
  Hit          15812   15812
  Partial          0       0
  Missed         555     555

Review entire Coverage Diff as of 80bd80d

Powered by Codecov. Updated on successful CI builds.


Mobile - fixed nav disappears at times

To reproduce:
Open site in Chrome or Safari on an iOS device.
Start entering text in search box (prior to the search box becoming pinned to the top)
Search box disappears after typing first letter
Works normally if the typing begins AFTER pushpin applies the pinned class
Confirmed on iOS Chrome + iOS Safari
Able to reproduce via Simulator

Fixed by removing fixed search bar on mobile (i.e. only initialize Materialize pushpin if NOT mobile)
Best explanation of iOS issue:
https://gist.github.com/avesus/957889b4941239490c6c441adbe32398#gistcomment-2193547
Mobile Safari does not support position: fixed when an input focused and virtual keyboard displayed.


WIP: Adding hydra tooling

This is intended to provide the ability to get/delete/post account notes via the Hydra api.
This was the backend agreed upon for storing the cluster notes.

I am just unfamiliar enough with rebasing/squashing commits that this is taking me longer than I would like to admit at the moment. I have to run but this will be the very first thing I do when I sit down tomorrow AM

Killing this in favor of https://github.com/gregsheremeta/proactive-support-bot/pull/15


Update conf.py

I think this will fix rtd build

:books: Documentation preview :books:: https://pymc-marketing--441.org.readthedocs.build/en/441/

Thanks @OriolAbril!


[Enhancement] Check table intersection early before rewriting PushDown Agg when mv rewrite

Why I'm doing:
Improve large join mv rewrite performance
What I'm doing:
Fixes #issue
What type of PR is this:

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.3
[ ] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

@mergify rebase


APPS/cmp: improve diagnostics for presence of TLS options

[x] documentation is added or updated

How about backporting this to 3.0?
This is (just) about user guidance.

How about backporting this to 3.0?
This is (just) about user guidance.

This is borderline. In my personal opinion this should not go into 3.0.

This is borderline. In my personal opinion this should not go into 3.0.

Fine by me.
Anyway, since you apparently already had a look, can you approve this for master?

Still OK, no need to restart the waiting period.

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Merged - thanks @t8m and @paulidale

It is unclear to me, where this got pushed. It seems there was some mistake done when merging this? @DDvO  Reopening.

Like with #17358, rebased now on upstream/master and force-pushed.
Looks good now.

Now it's really on the openssl master. Sorry for the confusion.


Fix "az login" when MFA is activated

Hey,
Thanks for open sourcing this project !
I just want to give some feedback on its usage, i'll let you decide what to do with that (addition to doc, change of code...).
The line 130 of the install_script.ps1 should have a --tenant parameter added for the script to run successfully when using an azure account with the MFA activated.
Which gives this :  $LoginResult = az login --allow-no-subscriptions --tenant "TENANTID" --only-show-errors  | ConvertFrom-Json
Source that helped me find this fix : https://github.com/Azure/azure-cli/issues/6962#issuecomment-854839923
How to find the value to replace "TENANTID"

Use the guid under Directory ID as shown on the screenshot.

Hello Pierre,
thank you very much for sending us feedbacks. It would be great to put this information in the initial README file to the FAQ section. If you'd like, you can suggest the change in the form of a pull request, or we'll sort this out within the next few weeks.
Regards,
Crynners


Request support for - Invisible Bluetooth Smart Lock

Log Message
2024-07-14 16:03:39.536 WARNING (MainThread) [custom_components.tuya_local.config_flow] Device matches None with quality of 0%. DPS: {"updated_at":<PHONE_NUMBER>.581195, "9": "low", "28": "english", "31": "low", "47": false}
2024-07-14 16:03:39.536 WARNING (MainThread) [custom_components.tuya_local.config_flow] Report this to https://github.com/make-all/tuya-local/issues/

This is using protocol 3.4. Other protocols do not work.
Integration shows Sorry, there is no support for this device. after configuring
Information about DPS mappings
{"1":"Add Unlock Method","2":"Delete Unlock Method","3":"Modify Unlock Method","9":"Battery Level","15":"Card","19":"Bluetooth Unlock","21":"Lock Alerts","28":"Lock Language","31":"Lock Volume","47":"Lock Status","54":"Sync Access Method","70":"Configure Verification Code","71":"Bluetooth Unlock (with Verification Codes)"}

Product ID
kpn4zaf7
Information about how the device functions

https://www.aliexpress.com/i/1005005492806309.html
Device auto locks, can only be unlocked using tuya app through bluetooth
Supports unlocking by bluetooth and rfid. Can also unlock via WiFi with a gateway
already tried using tuya ble integration but did not work

I tried adding a yaml config similar to https://github.com/make-all/tuya-local/pull/1830/files
but did not work:
name: Indoor Invisible Lock
products:
  - id: kpn4zaf7
    name: Indoor Invisible Lock
primary_entity:
  entity: lock
  dps:
    - id: 1
      type: string
      name: create_unlock_method
      optional: true
    - id: 2
      type: string
      name: delete_unlock_method
      optional: true
    - id: 3
      type: string
      name: modify_unlock_method
      optional: true
    - id: 6
      type: string
      name: bluetooth_unlock
      optional: true
    - id: 19
      type: integer
      name: unlock_ble
      optional: true
      persist: false
    - id: 47
      type: boolean
      name: lock
      optional: true
      readonly: true
secondary_entities:
  - entity: sensor
    class: battery
    category: diagnostic
    dps:
      - id: 9
        type: integer
        name: sensor
        unit: "%"
        class: measurement
  - entity: sensor
    name: Alert
    class: enum
    category: diagnostic
    dps:
      - id: 21
        type: string
        name: sensor
        optional: true
        persist: false
        mapping:
          - dps_val: null
            value: ok
          - dps_val: wrong_finger
            value: wrong_finger
          - dps_val: wrong_password
            value: wrong_password
          - dps_val: low_battery
            value: low_battery
  - entity: binary_sensor
    class: battery
    category: diagnostic
    dps:
      - id: 21
        type: string
        name: sensor
        mapping:
          - dps_val: low_battery
            value: true
          - value: false
  - entity: select
    name: Language
    icon: "mdi:translate"
    category: config
    dps:
      - id: 28
        type: string
        name: option
        mapping:
          - dps_val: chinese_simplified
            value: 中文
          - dps_val: english
            value: English
  - entity: number
    name: Beep volume
    category: config
    icon: "mdi:volume-high"
    dps:
      - id: 31
        type: string
        name: value
        unit: "%"
        range:
          min: 0
          max: 100
        mapping:
          - dps_val: mute
            step: 33
            value: 0
          - dps_val: low
            step: 33
            value: 33
          - dps_val: normal
            step: 33
            value: 66
          - dps_val: high
            step: 33
            value: 100