[Voice Access] [Find(Ctrl+Shift+F)]: Voice Access users are not able to activate 'Find' edit field with its placeholder value.

Windows Terminal version
1.17.3052.0
Windows build number
Windows 11 Version 22H2 (OS Build 25206.1000)
Other Software
No response
Steps to reproduce

Open Windows Terminal.
Open find pop-up window with 'Ctrl+Shift+F' keys.
Open Voice Access by 'Settings > Accessibility > Speech > Turn on Voice Access.
Give command as 'Click' by Voice Access on the page to access 'Find' edit field.
Observe the issue.

User Experience: -
Voice Access users will not be able to focus and hence access the find edit fields with visible name, if the accessible name defined for the edit field does not contain its visible placeholder name
Guideline Reference:
https://www.w3.org/WAI/WCAG21/Understanding/label-in-name.html
Attachments:
Voice Access users are not able to activate 'Find' edit field with its placeholder value..zip
Expected Behavior
Accessible name for the edit field should start with visible placeholder text, it should be defined as 'Find, Search text', so that VA users can access it with 'Click' command.
https://nam06.safelinks.protection.outlook.com/?url=https:%2F%2Fwww.osgwiki.com%2Fwiki%2FVoiceAccess_Testing&data=05|01|v-chisha%40microsoft.com|ad1aa7ab3c63420978a708da31b8e712|72f988bf86f141af91ab2d7cd011db47|1|0|637876967593170034|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=vx8nL3zR6xV5J7ImC%2BkIAygjzuu5wOXDwim31oXAtpc%3D&reserved=0
Actual Behavior
Voice Access users are not able to activate 'Find' edit field with its placeholder value, it's because incorrect accessible name as 'Search text' is defined for the 'Find' edit field.
Notes:

Similar is the case with the combo boxes present throughout the application as users are not able to select the combo box with the currently selected value.
NOTE1- Actions-Combo Box.zip

Hi @Shubham786786. I'm a bit confused regarding the additional notes from the issue above:

Similar is the case with the combo boxes present throughout the application as users are not able to select the combo box with the currently selected value.

The UIA tree for the combo box in the actions page looks as follows:

I specifically want to highlight the following notes from the image above:

"Action" is the name of the combo box
"Add a scroll mark" is the name of the internal list item

As the user changes the selected list item, "Add a scroll mark" is correctly replaced, but "Action" remains the same. As of now, this is by design, because the user is setting the action, so this seems to make sense.
My question is, what are we supposed to do here? Is the name of the combo box supposed to match that of the selected item? If so, won't that be confusing because the user then loses context over what the combo box represents (in this case, an action)?

Additionally, I took a look at the Settings App in Windows and I've noticed the following setting:

Is represented as such:

This is pretty similar to our current design where the name of the combo box is the "setting" but the selected value appears as a child list item.


UTI Module Update

This PR provides an update to the urinary tract infections module based on the module guide.
It also contains some small fixes for TypeOfCare transitions that were uncovered by this module being the first to use them.

Reviewing and running some tests...


Anti-Virus scanning of payload

Anti-Virus scanning of request payload
Description:
For requests to be scanned, an outcall to an external serivce should be made and payload to be transfered to the specific endpoint. The data communication between Envoy and external service is either based on ICAP (as generic interface) or based on gRPC (similar to ext_proc).
On virus detection, envoy aborts the request with configurable status code (403, 500) and freely choosable response message (e.g. HTML or JSON document).

You could certainly implement a filter to do this. If you'd like to contribute it to Envoy you can find more information about how to contribute here:
https://github.com/envoyproxy/envoy/blob/main/CONTRIBUTING.md


Coloring headings changes its default font weight and size

When I add color to the heading it changes font-weight and font-size of the colored word or sentence. This occurs only when I am using heading and bullet points together.

Thanks for the plugin :smile:

Hi, first of all thanks for the issue. I reproduced the issue and unfortunately have no clue why this is happening 😅. I will investigate and try to solve it!

I'm having a similar situation where, when I have "Readable line length turned on" any color changes mess with the text centering, making it effectively left justify.


Select and use platform installed fonts

A solution for using platform installed fonts is required.
Currently, Lomse only uses the fonts distributed with liblomse package. This causes different problems:

No proper text rendering when the score is using languages not supported in current fonts used by lomse (i.e. Japanese or Korean).

In MusicXML files the font-name style attribute recommends fonts by name. Lomse should be able to select the most suitable font from installed fonts.

Explicit font name information is not enough. In many cases there are different font files for each font name: i.e. one for normal font, another for bold and a third one for italic.

As Lomse is platform independent, the solution must not force to add if preprocessor directives to select the platform and to add platform dependent code. But in any case, platform dependent code is needed. To solve this, some ideas:

Transfer the responsibility to the user application, that will inform lomse about font paths.
As the code for previous solution will be common to all applications in a given platform, this code could be packaged in platform dependent lomse modules for dealing with fonts. I will code only the module for Linux. The modules for all other platforms will have to be coded by contributors.
Enable both solutions. When there is no lomse fonts module for a platform, the user could simply inform lomse about fonts paths.

It is a very good idea.
With this issue I am currently using a little modification to lomse.
I have modified it to load the fonts I want to use.
m_lomse.set_default_fonts_path (myRSCFolder);
m_lomse.set_text_font_name ("myfont");
This calls up the following fonts in the Resources folder:
myfont-BoldItalic.ttf
myfont-Bold.ttf
myfont-Italic.ttf
myfont-Regular.ttf
Unfortunately, MusixXML does not work with bold or Italic effects (I may have misunderstood xml).
However, since I can print the font I want, it does not matter.

@juuk100
MusicXML does support bold and italics. See http://www.musicxml.com/for-developers/musicxml-dtd/common-elements/
<!--
    The font entity gathers together attributes for
    determining the font within a directive or direction.
    They are based on the text styles for Cascading
    Style Sheets. The font-family is a comma-separated list
    of font names. These can be specific font styles such
    as Maestro or Opus, or one of several generic font styles:
    music, engraved, handwritten, text, serif, sans-serif,
    handwritten, cursive, fantasy, and monospace. The music,
    engraved, and handwritten values refer to music fonts;
    the rest refer to text fonts. The fantasy style refers to
    decorative text such as found in older German-style
    printing. The font-style can be normal or italic. The
    font-size can be one of the CSS sizes (xx-small, x-small,
    small, medium, large, x-large, xx-large) or a numeric
    point size. The font-weight can be normal or bold. The
    default is application-dependent, but is a text font vs.
    a music font.
-->
<!ENTITY % font
    "font-family  CDATA  #IMPLIED
     font-style   CDATA  #IMPLIED
     font-size    CDATA  #IMPLIED
     font-weight  CDATA  #IMPLIED">

Current partial bypass for this problem is what you are probably using:

Invoke one time m_lomse.set_default_fonts_path() to specify the path to use.
When lomse does not find a font, it will the generate a Request for the font file name. Yoour application will have to hadle this request and provide a font file name. An example:

void MyApp::initialize_lomse()
{
    ...

    //Now, initialize the library with these values
    m_lomse.init_library(pixel_format, resolution, reverse_y_axis, m_lomseReporter);

    //set callbacks
    m_lomse.set_notify_callback(this, lomse_event_handler_method);
    m_lomse.set_request_callback(this, lomse_request_handler_method);
}

void MyApp::on_lomse_request(Request* pRequest)
{
    int type = pRequest->get_request_type();
    switch (type)
    {
        case k_dynamic_content_request:
            generate_dynamic_content( dynamic_cast<RequestDynamic*>(pRequest) );
            break;

        case k_get_font_filename:
            get_font_filename( dynamic_cast<RequestFont*>(pRequest) );
            break;

        default:
            LOMSE_LOG_ERROR(str(boost::format("Unknown request %d") % type));
    }
}

void MyApp::get_font_filename(RequestFont* pRequest)
{
    //This is just a trivial example. In real applications you should
    //use operating system services to find a suitable font

    //notes on parameters received:
    // - fontname can be either the face name (i.e. "Book Antiqua") or
    //   the familly name (i.e. "Liberation sans")

    const string& fontname = pRequest->get_fontname();
    bool bold = pRequest->get_bold();
    bool italic = pRequest->get_italic();

    string path = "/usr/share/fonts/truetype/";

    //if family name, choose a font name
    string name = fontname;
    if (name == "serif")
        name = "Times New Roman";
    else if (name == "sans-serif")
        name = "Tahoma";
    else if (name == "handwritten" || name == "cursive")
        name = "Monotype Corsiva";
    else if (name == "monospaced")
        name = "Courier New";

    //choose a suitable font file
    string fontfile;
    if (name == "Times New Roman")
    {
        if (italic && bold)
            fontfile = "freefont/FreeSerifBoldItalic.ttf";
        else if (italic)
            fontfile = "freefont/FreeSerifItalic.ttf";
        else if (bold)
            fontfile = "freefont/FreeSerifBold.ttf";
        else
            fontfile = "freefont/FreeSerif.ttf";
    }

    else if (name == "Tahoma")
    {
        if (bold)
            fontfile = "freefont/FreeSansOblique.ttf";
        else
            fontfile = "freefont/FreeSans.ttf";
    }

    else if (name == "Monotype Corsiva")
    {
        fontfile = "ttf-dejavu/DejaVuSans-Oblique.ttf";
    }

    else if (name == "Courier New")
    {
        if (italic && bold)
            fontfile = "freefont/FreeMonoBoldOblique.ttf";
        else if (italic)
            fontfile = "freefont/FreeMonoOblique.ttf";
        else if (bold)
            fontfile = "freefont/FreeMonoBold.ttf";
        else
            fontfile = "freefont/FreeMono.ttf";
    }

    else
        fontfile = "freefont/FreeSerif.ttf";

    pRequest->set_font_fullname( path + fontfile );
}


Implemented: support of oms-api package in the product module and updated the code as per the updated schema(#2hr4aa2)

Related Issues

Closes #112
Short Description and Why It's Useful

Added a rule in the eslint file to off the no-use-before-define
Updated the views and components to use the updated product response as received from the oms-api package
Updated package.json and package-lock.json to include the oms-api package as a dependency

Screenshots of Visual Changes before/after (If There Are Any)

IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change
Contribution and Currently Important Rules Acceptance

[ ] I read and followed contribution rules
[ ] I have changed the target to hacktoberfest branch

Closing as inventory-count app is revamped and thus this PR is no more relevant


Drag and drop Dapp flow

Uploading dapp flow is here https://zpl.io/2Z3WDmd

On the Dapp Store screen add a placeholder that will lead to file uploading dialog

File uploading dialog
Should support drag & drop flow and possibility to open finder and choose a file manually

While drag & drop if dragged file reaches Uploading file dialog area, the area should be highlighted, text faded.

After file uploaded, show success or error notification

Make text color white ("or just drop it here"). Make arrow direction as in the design

While drag & drop if dragged file reaches Uploading file dialog area, the area should be highlighted, text faded

Remove dot from the text and make text color white

Checked


GTask is unusable

Please, look at this:
> lgi = require 'lgi'
> gio = lgi.Gio
> a = gio.Task(nil, gio.Cancellable(), function() print('Yay!!!') end)
> print(a.run_in_thread)
[string "print(a.run)"]:1: Gio.Task: no 'run_in_thread'
...

Should be fixed by this upstream: https://bugzilla.gnome.org/show_bug.cgi?id=693576

Also, there is no g_task_run: https://developer.gnome.org/gio/stable/GTask.html#g-task-run
So whatever the problem should be, this is not due to lgi.

lgi should be thread-safe in most use cases, so after the fix lands in glib, this should start to work.

It might help move it along if somebody from lgi tests it and insures it works here too.

It still isn't working. Bug: https://gitlab.gnome.org/GNOME/glib/issues/668

Is this outdated now with #226?

This function is there in last Gtk/GLib, closing this.


Shorten log message with settings

Could you please add a property that will disable time and frame information in the logs? Thanks.

Hello,
I've taken a different approach to avoid adding new parameters to Squadron and decided to split the code between message formatting and message emitting in the base logger (default formatting simply calls message.ToString()). You can then implement your own logger on top of BaseSquadronLogger and avoid having the header in the log messages. E.g.:
class MySquadronLogger extends BaseSquadronLogger {
  /// Log to console
  @override
  void log(String message) => print(message);
}

Closing this, please let me know if you need further help.

Smart suggestion, thank you @d-markey ; )


PDS: Provide documentation annotation and apply in relevant code parts

Situation
Inside sechub server we have annotation @MustBeDocumented which is used for automated documentation generation.
Also it is easy to find parts from documentation inside code by references.
But for PDS - being a standalone application - there is no documentation annotation  available
Wanted
We introduce @PDSMustBeDocumented and mark all relevant code parts to document with this annotation.

At least system properties for PDS general configuration must be automatically fetched and inside generated PDS documentation.


Is it always okay to nest jitted functions?

Are nested jitted functions supposed to always work?  I've spent two days chasing "escaped tracers" and can't seem to find the problem.  However, removing the jit decorator on the outer function seems to solve the problem.

You should be able to nest jit functions fine. If you had a reproduction, we can look into it.
Two things to be careful of with jit are:
a) be careful about side effects
b) don't use tracer values as static_argnums. (In fact, we should probably test for that case and fail.)

I have been trying to avoid static_argnums.  In fact, this whole problem started when I converted from passing values statically to making everything pytree-like.
I totally agree with your point about testing that all static argnums are free from tracers.
If you have time to look into it, that  would be really awesome!  Here's the link.  It relies on my pull request for jax that enables custom derivatives on methods (which is fairly minor), so you would have to temporarily install it.  All of the tests pass except those here.  Unless I remove the jit decorator.

@hawkinsp Maybe if there were a way to name the tracers, I could debug this more easily.   Something like
@partial(jit, name_tracers("f_x", "f_y")
def f(x, y): ...

and similarly for grad, vjp, and jvp.
Then, at least the error messages and display could far less cryptic.
What do you think?

@mattjj what do you think about the idea of annotating tracers somehow?

@hawkinsp Is there any documentation about what tracer levels mean?  I see things like "level=-1/1", "level=1/0", "level=0/1".

No docs on that, sorry. It's pretty deep internals that I don't think we'd ever want to document, because it's all subject to change and it wouldn't be good to rely on.
I think the only way to get escaped tracer errors (without doing side effects) involves custom_jvp rules, because we don't catch and raise errors clearly there.
I think this use of custom_vjp is dangerous because tracers could leak in through self. I'd guess some kind of trace leakage like that is causing the issue. (It's a requirement of custom_jvp and custom_vjp that no closures leak in via closure or by being smuggled in through an opaque object.)

b) don't use tracer values as static_argnums. (In fact, we should probably test for that case and fail.)

@hawkinsp I don't think that's a problem, because static_agnums is identical to lexical closure (modulo how caching works) and jit handles lexical closure fine.

what do you think about the idea of annotating tracers somehow?

That seems doable, especially if we're only talking about annotating some tracers (like those that correspond to function inputs, since lots of other tracers are created and might not correspond to any named values in user code). It wouldn't be trivial plumbing, and we'd want to make it as lightweight as possible.

No docs on that, sorry. It's pretty deep internals that I don't think we'd ever want to document, because it's all subject to change and it wouldn't be good to rely on.

Fair enough. I'm trying to understand the error "Different traces at the same level".  I don't know what levels mean and why it's a problem for different traces at the same level.

I think the only way to get escaped tracer errors (without doing side effects) involves custom_jvp rules, because we don't catch and raise errors clearly there.

Okay, good tip.  I'll focus my attention there, thank you.

I think this use of custom_vjp is dangerous because tracers could leak in through self

Thanks, I'll focus on that.  I've been trying to heed your (or maybe it was shoyer's) warning of no mutable state.   My goal was to treat self as just another parameter.  But it's obvious, I got it wrong somewhere.

by being smuggled in through an opaque object.

Right, and by opaque object, you mean something that's not registered as a PyTree?  I think I'm registering everything, so there are no opaque objects, but I'll double-check.

That seems doable, especially if we're only talking about annotating some tracers (like those that correspond to function inputs, since lots of other tracers are created and might not correspond to any named values in user code). It wouldn't be trivial plumbing, and we'd want to make it as lightweight as possible.

Just a comment on this, as I've started debugging this, I temporarily changed the repr in JAX to this:
class Trace:
  def __repr__(self):
    return '{}({}:{}/{})'.format(
        self.__class__.__name__, hex(id(self) & 0xffff)[-4:], self.level, self.sublevel)

class JaxprTracer(Tracer):
  def __repr__(self):
      return 'Traced<{}:{}>'.format(hex(id(self) & 0xffff)[-4:], self._trace)

With these modifications, I get a much more useful error:
E       jax.core.UnexpectedTracerError: Encountered an unexpected tracer. Perhaps this tracer escaped through global state from a previously traced function.
E       The functions being transformed should not save traced values to global state.
E       Details: Different traces at same level: Traced<3180:JaxprTrace(4e50:-1/1)>, JaxprTrace(7730:-1/1).

Now I'm trying to print out every tracer that's created to find out what those correspond to.
It would be much more useful to get actual names from the inspection, but I didn't want to devote the time to deciphering the JAX internals.

Sorry to bother you with this, but if either of you have a moment, I think I might have a guess as to what's going on, although I'm not sure there's anything wrong with my code.
The collision is happening between the memos received here, and new tracers created when this jitted function is called here, which is defined here.
Do these memos count as global state?

Sorry to bother you with this

No worries at all! It's what we're here for. I'm just extremely underwater right now, and responding super slowly and erratically.
I think I need to find time to run the code and poke at it, but some general advice is only use custom_vjp on top-level functions, meaning fully-dedented code (and not an instance method).

If I know more about the levels, I could maybe bump the level somehow to see if that fixes the problem?

It's not the level values that are the problem (i.e. changing the levels manually won't help), it's the tracer mixup that the level numbers are there to check against. The only way to solve the tracer mixup is to prevent the leak.
I think the leak is happening because of tracers sneaking into the custom_vjp function or its rules not through their arguments (i.e. through closure or an opaque container).
Try factoring out the code into top-level functions!

Okay, thanks, I will rewrite it as a top-level function.

Found it!  Apparently, the tracers were sneaking in through the nondiff_argnums.  Are those not allowed to be tracers?

That should be okay! Sounds like a bug.
Are you working from GitHub master, or the lastest pypi release? I vaguely recall fixing a bug here, but the fix might not have made it up to pypi yet.

@hawkinsp

b) don't use tracer values as static_argnums.

I just realized what was on Peter's mind when he wrote this. It will essentially never get a jit cache hit in this case, though we shouldn't get tracer errors (and incorrect values won't be computed). I think #2813 would raise an error in this case.

That should be okay! Sounds like a bug in JAX.
Are you working from GitHub master, or the lastest pypi release? I vaguely recall fixing a bug here, but the fix might not have made it up to pypi yet.

I'm pretty bleeding edge.  Do you remember where your fix was?

I think #2813 would raise an error in this case.

Yes, it would!  Since tracer's aren't hashable, then just blocking non-hashables would be enough to get that behaviour.

It was from like a week ago, so you'd have it. This sounds like a new bug.

I think I have a MWE.  I'll submit it now.

Shall we close this issue in favor of that one?


Previews to be automatically built after base branch change

Is your feature request related to a problem? Please describe.
A repo that I am working on has previews enabled only for the master branch.
I created a PR for merging a feature-improvement against a random base branch.
Later on, I changed the base branch to master but the PR never appeared as a preview in the Amplify console.
I'm assuming that's because the PR was not initially based on the master branch.
Describe the solution you'd like
Here's how I imagine a happy path:
Let's assume we have previews enabled on master.

Create a PR to some random base branch.
Change the base branch of that same PR, so that it is now against themaster branch.
That PR now automatically gets built and appears in the Previews section of the Amplify console.

I'd love to see this feature implemented. So far we are forced to close the PR (usually with review comments and approves) and opening it again pointing to the branch where the preview links are enabled. It's pretty annoying

Ran into this as well. Seems more of a bug that a feature request, really, as after changing the base branch there is no longer any way to merge the PR (when PRs are configured to require a successful AWS Amplify build).
If this is difficult to fix properly, please consider at least some manual workaround - e.g. that it would be possible to go into Amplify Console, enter PR ID and create a preview branch manually.

I've also hit a similar issue when testing out Previews for our Next.js site. Changes to an existing PR / closing and reopening a PR did not trigger a Preview to be created. I created a new branch off the branch in question and submitted a new PR... Amplify Hosting was then notified and a Preview build was subsequently started....
@hloriana any idea if we can updated the Amplify Hosting app to notice these changes instead of relying entirely on the creation of a PR to create the initial Preview build?


Sporadical "[Errno 110] Connection timed out" in databricks adapter.

Describe the bug
We are building dwh with Databricks premium on GCS and decided to use dbt core 1.3.2 (databricks adapter 1.3.2) for ELT pipelines and documentation. So far in production we have developed just 1 model pattern (incremental "merge" updates for staging tables in databricks DeltaLake). ELT pipeline triggers dbt run command with --select option to incrementally update relevant staging tables. However, from time to time, absolutely randomly some runs throws "[Errno 110] Connection timed out" error for random models in selection. This is happening with no pattern, sometimes everything runs fine, sometimes not. Interestingly enough, we also tested this behaviour with Databricks workflows (to check for possible connectivity reasons behind this) and figured out the same behaviour even when dbt is run on databricks dbt cli cluster as per documentation here. What's even more interesting is that problem gets amplified "exponentially" if we use more than 1 thread in profile (now we have to run models sequentially to minimize errors). This problem is becoming a big concern for us about further use of dbt with databricks.. We have also considered "retry_all: true" mechanism described for spark adapter, but it does not seem to be triggered for these types of errors.
dbt run --select tag:pg_230_deals --vars '{"env": "prod", "data_interval_start":<PHONE_NUMBER>, "data_interval_end":<PHONE_NUMBER>}'
....
03:36:13.436533 [info ] [MainThread]: Finished running 14 incremental models in 0 hours 33 minutes and 48.86 seconds (2028.86s).
03:36:13.436860 [debug] [MainThread]: Connection 'master' was properly closed.
03:36:13.436988 [debug] [MainThread]: Connection 'model.databricks.deals__pg_230__tradestone_tp_real_cry_1__mt5_deals' was properly closed.
03:36:13.459647 [info ] [MainThread]:
03:36:13.460106 [info ] [MainThread]: Completed with 1 error and 0 warnings:
03:36:13.460478 [info ] [MainThread]:
03:36:13.460738 [error] [MainThread]: Runtime Error in model deals__pg_230__fbs_mt5_real_1__mt5_deals (models/staging/pg_230/deals/deals__pg_230__fbs_mt5_real_1__mt5_deals.sql)
03:36:13.461018 [error] [MainThread]:   Error during request to server: [Errno 110] Connection timed out
03:36:13.461290 [info ] [MainThread]:
03:36:13.461510 [info ] [MainThread]: Done. PASS=13 WARN=0 ERROR=1 SKIP=0 TOTAL=14

Steps To Reproduce

Use multithreading in profiles.yml (threads = 5+)
Create several (10+) models
Run them selectively (--select)

if required, i can share full github repo for our project.
This is out typical model for staging tables with the same schema:
# models.yml
version: 2

models:
  - name: deals__pg_230__fbs_b100_real_1__mt5_deals
    description: "dealing replica pg 230, table: fbs_b100_real_1.mt5_deals"
    config:
      materialized: incremental
      incremental_strategy: merge
      file_format: delta
      on_schema_change: fail
      unique_key: deal
      schema: staging

  - name: deals__pg_230__fbs_levelup_real_2__mt5_deals
    description: "dealing replica pg 230, table: fbs_levelup_real_2.mt5_deals"
    config:
      tags: ['pg_230_deals']
      materialized: incremental
      incremental_strategy: merge
      file_format: delta
      on_schema_change: fail
      unique_key: deal
      schema: staging
...

# deals__pg_230__fbs_b100_real_1__mt5_deals.sql
{{ config(
        pre_hook="CREATE TABLE if not exists {{ source('dw', 'deals__pg_230__fbs_b100_real_1__mt5_deals') }} USING parquet LOCATION 'gs://staging-databricks-{{ var('env') }}/pg_230__deals/fbs_b100_real_1__mt5_deals/'",
    ) }}
with src as
(
select
 *,
 row_number() over (partition by deal order by timestamp desc) rn
from {{ source('dw', 'deals__pg_230__fbs_b100_real_1__mt5_deals') }}
)
select *
from src
{% if is_incremental() %}
  where rn = 1 and timestamp between '{{ var('data_interval_start') }}' and '{{ var('data_interval_end') }}'
{% endif %}

# sources.yml
version: 2

sources:
  - name: dw
    description: dw temporary tables or external tables in gcs
    tables:
      - name: deals__pg_230__fbs_b100_real_1__mt5_deals
      - name: deals__pg_230__fbs_levelup_real_1__mt5_deals
 ...

Expected behavior
Expecting more robust and predictable processing of dbt run command with multithreading and clear instruction on how to make operational error handling for intermittent [Errno 110] connectivity errors.
Screenshots and log output
If applicable, add screenshots or log output to help explain your problem.
System information
The output of dbt --version:
Core:
  - installed: 1.3.2
  - latest:    1.3.2 - Up to date!

Plugins:
  - spark:      1.3.0 - Up to date!
  - databricks: 1.3.2 - Up to date!

The operating system you're using:
The output of python --version:
Python 3.8.10
Additional context
Add any other context about the problem here.

What operating system are you running dbt on?
I'm running the same using 32 threads against a 'Small' data warehouse with 1-3 clusters, auto scaling on, photon enabled, using this as my dbt cluster config and I can't reproduce this issue:
new_cluster {
num_workers    = 0
runtime_engine = "STANDARD"
spark_version  = data.databricks_spark_version.latest_lts.id
node_type_id   = var.databricks_default_node_type
spark_env_vars = {
PYSPARK_PYTHON = "/databricks/python3/bin/python3"
}
  spark_conf = {
    # Single-node
    "spark.databricks.cluster.profile" : "singleNode"
    "spark.master" : "local[*, 4]"
  }
  custom_tags = {
    "ResourceClass" = "SingleNode"
  }
}

Hi @patraden, thanks for reporting this.
To help us understand, can you run with log level set to debug and provide the dbt.log file?
Furthermore, can you contact Databricks support so we can look into what is happening on our side?

Good day @jfox-teine and @andrefurlan-db ! Thank you for coming back to me! I will try to respond you both in a single message.

We are running dbt-core on standard (no extra configs) google cloud compute VM operated by Ubuntu 20.04.5 server (details below)
However, as I mentioned, I wanted to make infra agnostic tests and could reproduce the issue in Databricks workflows (databricks cli cluster) as per instructions here.
As per your request, I have reproduced the issue (in debug) in Databricks workflows (databricks cli cluster) and collected all the execution artefacts as well as cluster/dbt job configuration in my GitHub repo. Thus Databricks job gets initiated from this repo and fails when threads = 32 for all models, but succeeds for all models when threads = 1 (which is a luck, normally 1 or 2 gets failed).
Repo structure is the following:

ddl-dbt-databricks/
   databricks/  # dbt project with all the code we have so far
   #248_execution_artefacts/
       databricks_workflows_dbt_job.json  # dbt run job configuration (including dbt cli cluster)
       dbt_cluster_test.json  # main dedicated dbt cluster configuration
       dbt-output-threads-1.tar.gz  # execution artefacts for successful threads = 1 job
       dbt-output-threads-32.tar.gz  # execution artefacts for failed threads = 32 job

Finally, I want to say that issue might be OS related because when I run jobs locally on my Mac Pro M1 - everything works just fine even with multithreading. I do not know, I am really stuck here on how to get it all setup properly for our google cloud based configuration. I really expected that at least databricks workflows configuration should work "out of the box" but it does not.

# https://console.cloud.google.com/compute/instancesDetail
Basic info
OS
Ubuntu 20.04.5 LTS
OS version
20.04
OS Config agent version
20210608.1-0ubuntu1~20.04.1
Patch status
 Updates available

# bash
dbt@dbt-databricks:~$ uname -a
Linux dbt-databricks 5.15.0-1025-gcp #32~20.04.2-Ubuntu SMP Tue Nov 29 08:31:04 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Thanks for the detailed info @patraden. For clarification, I'm just another customer curious about this issue. For testing purposes I can't 100% recreate as I'm not using the Google platform. I can however recreate a test in databricks using the Azure platform using my own models. Using a Standard_D4ds_v5 single node worker I'm able to execute 32 threads. Here's my cluster setup for the dbt task:
{
    "num_workers": 0,
    "cluster_name": "",
    "spark_version": "11.3.x-scala2.12",
    "spark_conf": {
        "spark.databricks.delta.preview.enabled": "true",
        "spark.databricks.cluster.profile": "singleNode",
        "spark.master": "local[*, 4]"
    },
    "azure_attributes": {
        "first_on_demand": 1,
        "availability": "ON_DEMAND_AZURE",
        "spot_bid_max_price": -1
    },
    "node_type_id": "Standard_D4ds_v5",
    "ssh_public_keys": [],
    "custom_tags": {
        "ResourceClass": "SingleNode"
    },
    "spark_env_vars": {
        "PYSPARK_PYTHON": "/databricks/python3/bin/python3"
    },
    "enable_elastic_disk": true,
    "cluster_source": "JOB",
    "init_scripts": [],
    "data_security_mode": "SINGLE_USER",
    "runtime_engine": "STANDARD"
}

Hi @patraden , it could indeed be OS related as socket timeout's vary across OS. Can you try to set it up to a high number to see if it works? Just add this to your profiles.yml.
yaml
    dev:
      type: databricks
      ....
      connection_parameters:
        _socket_timeout: 60000

Hi @andrefurlan-db I tried that today, but unfortunately does not seem it made any effect. Errors continue

Hi @patraden, strange. I thought this could be the same root cause as https://github.com/databricks/databricks-sql-python/pull/24. Did you manage to contact Databricks support? I'll need to extra access to check if we have any logs on our side with any clue of what is going on.
Also, just to narrow down things a bit, are you able to reproduce the problem by only using https://pypi.org/project/databricks-sql-connector/ ? I can't with the clusters/warehouses I have available for me. I don't think this is a problem with the dbt-adapter (but I might be wrong).

HI @andrefurlan-db! Sorry for not getting back to you in a while. Had few busy days... I have some news though on the issue... I dedicated some time for debugging and decided to start with OS assumptions. Thus I have rebuilt previous google cloud vm operated by Ubuntu to RHEL and all of a sudden problem have gone! I was able to run models concurrently with multithreading and  parallel ssh sessions. No issues at all! I do not know, weather this is google ubuntu image or ubuntu itself but this is definitely linked to Ubuntu alone (or maybe all debians).

I am closing this issue as it seems not related to the adapter


Corrected item 8178 from окзаался to оказался. (It did it wrong the f…

…irst time)

Oh, Radovan, I am so HAPPY!!! Now I can fix mistakes in the SMARTool. I don’t think there are many, but I want there to be NONE.
Thank you, Thank you, Thank you,
--laura
From: Radovan Bast<EMAIL_ADDRESS>Reply-To: smartool/data-rus-eng<EMAIL_ADDRESS>Date: Tuesday, 21 April 2020 at 15:57
To: smartool/data-rus-eng<EMAIL_ADDRESS>Cc: Laura A Janda<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [smartool/data-rus-eng] Corrected item 8178 from окзаался to оказался. (It did it wrong the f… (#3)
Merged #3https://github.com/smartool/data-rus-eng/pull/3 into master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/smartool/data-rus-eng/pull/3#event-3256361048, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGNL5OQR7GFF575C3UTYRJ3RNWQ25ANCNFSM4MNKQCNQ.

Awesome work. I know it gets some getting used to.


Chained constraints

Thought from #28: we could also do something like Exponent = Annotated[int, Gt(0) & MultipleOf(2)].
Implementing & would be easy: it just creates a GroupedMetadata.
Other operators would be trickier: Annotated[str, Foo | Bar] should actually be expressed as Annotated[str, Bar] | Annotated[str, Foo], and I have no idea what XOR would be, I think we’d have to offload that to implementers. So I think this idea has short legs.

Also as “pretty” as & seems, it’s not saving any typing.

Yeah, & can just be spelled ,; I agree that | should be expressed outside the Annotated[], and I don't think that xor is even expressible in Python types at the moment (without high-grade magic, anyway).


Add reference to 'copy-webpack-plugin' in package.json

When running npm run test in the repo it barks about missing copy-webpack-plugin. This adds it as a dep in package.json.

I think I need to fix a couple tests related to copying, but we don't use that package anymore in the codebase.


0.5.3 release

Codecov Report

Merging #37 into master will increase coverage by 0.01%.
The diff coverage is 98.03%.

@@            Coverage Diff             @@
##           master      #37      +/-   ##
==========================================
+ Coverage   94.69%   94.71%   +0.01%
==========================================
  Files          33       33
  Lines        5369     5407      +38
==========================================
+ Hits         5084     5121      +37
- Misses        285      286       +1

Impacted Files
Coverage Δ

BezierKit/BezierKitTests/PathTests.swift
96.92% <100%> (+0.09%)
:arrow_up:

BezierKit/BezierKitTests/LineSegmentTests.swift
100% <100%> (ø)
:arrow_up:

BezierKit/Library/Utils.swift
94.87% <100%> (-0.02%)
:arrow_down:

BezierKit/Library/BezierCurve+Intersection.swift
92.48% <100%> (+0.23%)
:arrow_up:

BezierKit/Library/AugmentedGraph.swift
97.61% <50%> (-0.29%)
: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 44246b5...9c28621. Read the comment docs.


Added regression examples

Codecov Report

Merging #31 into develop will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           develop       #31   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           14        14
  Lines          876       876
=========================================
  Hits           876       876

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 b2605a8...73db5e1. Read the comment docs.


Update audio-processing-object-architecture.md

Added clarification to the note about streams that share the same MFX. The existing documentation led to a misinterpretation that there could only be a single instance of the MFX globally.

Looks good to me, thx for checking.


Messages are duplicated in the Telegram chat

Telegram event listener doesn't check if message is from self.

Not an issue! Client ID is not the same as Bot ID.


fix(tests): Fix test_all_opcodes.py

🗒 Description
Fixes a test broken by #933.
Contract creating transactions should be defined as to=None and not to=b"".
🔗 Related Issues
None
✅ Checklist

[x] All: Set appropriate labels for the changes.
[x] All: Considered squashing commits to improve commit history.
[x] All: Added an entry to CHANGELOG.md.
[x] All: Considered updating the online docs in the ./docs/ directory.
[x] Tests: All converted JSON/YML tests from ethereum/tests have been added to converted-ethereum-tests.txt.
[x] Tests: A PR with removal of converted JSON/YML tests from ethereum/tests have been opened.
[x] Tests: Included the type and version of evm t8n tool used to locally execute test cases:  e.g., ref with commit hash or geth 1.13.1-stable-3f40e65.
[x] Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.

Still fails.
Also, pyspec should show me an error if I provide b""


When is the video ready?

This wrapper does return successful when the video has been uploaded, however there is no way to see when the video has finished processing after upload. I did not expect it to help in this manner, as implementing this as suggested by Facebook involves registering web-hooks to your app and waiting for a callback from Facebook. However there seems to be a way to solve it without web-hooks, my idea revolves around the idea of checking the video-status field of the given video periodically to see if the status field equals "ready" signaling video being completely uploaded and processed.
https://developers.facebook.com/docs/graph-api/reference/video-status/
I will go about implementing this, but i really do wonder if anyone has any better ideas.
Anyway, great plugin makes video upload much less of a hassle.
Might update with my not so perfect solution to this, might decide to just go with the web-hook thing.

const options = {
	method: 'GET',
	uri: 'https://graph.facebook.com/v2.11/'+vres.video_id,
	qs: {
		access_token:req.user.accessToken,
		fields:'status'
	}
	};

waitUntil()
.interval(5000)
.times(10)
.condition(function(cb) {
	request(options)
		.then(fbRes => {
		const parsedRes = JSON.parse(fbRes).status;
		cb(parsedRes.video_status == 'ready'?true:false);
	});
})
.done(function(result) {
	//if(!result) timeout catch here
	res.json({shareLink});
});

Yeah looks something like this inside a successful fbUpload, since the graph call is lightweight the load is relatively low.

This is beyond the scope of this module but I'm glad you solved your issue.


[Key Vault] Use code snippets from samples for all code in READMEs

https://github.com/Azure/azure-sdk-for-python/pull/28889 updated READMEs to use snippets from samples for some scenarios, but we should extend this pattern to all code samples included in our READMEs.

https://github.com/Azure/azure-sdk-for-python/pull/30153 handled snippet use for azure-keyvault-administration.


[2117] Add accept terms page

Context
Users who log in and have not accepted terms and conditions get a "We don't know which org you're part of" page.
Changes proposed in this pull request
Implement the terms page.
Guidance to review
🚢

 Providers still getting the  'we don't know which organisation' error when they have been given access to an organisation


Issue with k8s.io/docs/contribute/start/

This is a...

[ ] Feature Request
[ ] Bug Report

Problem:
Proposed Solution:
Page to Update:
https://kubernetes.io/...

@bagoole thank you for raising the issue, could you please add a description on what the issue is ?

@bagoole in absence of any response i'm going to close this issue. Please open a new one with a full description as per the github issue template and we'll look into it

/close


add_style overwrites all previous styles

I had already defined row styles through plain axlsx but I was applying a column style using add_style and noticed it was overwriting all previous styles.
Is there any way we can get it to only add on to the other styles?

Originally, I wasn't going to support this. Let me re-evaluate and see what we can do.

Haven't looked into this, but I think it's not going to be a quick fix. If that could be done without patching axlsx, that would be perfect. Feel free to investigate!

Another problem here is when using add_border as it removes all styles that were applied to it previously by axlsx.
I investigated that method which didn't work out. However I have delved deep into axlsx lately and I think I may have found a way to do this. I would need to patch the add_style method of Axlsx::Styles though if that is acceptable.

Sounds good. Is this change required for Spreadsheet Architect or it's more of nice-to-have?
I'm a bit hesitant about a change like this since all styles can be added with add_style and there's a big risk of introducing some bugs, while I'm not an active user of this gem. I think this change will need a lot of tests before the release. I'll be away at the end of July, but will be happy to review / contribute in August.

Well for any proper border support and better behaviour of range styles this will be required.
August is fine though I will try to make a PR before then. Basically I want to add another optional argument to this method which accepts the cells xf object which we can extract existing styles form and merge into the new one being created by this method. So unless that argument is present the functionality will remain the same.

I was able to make this happen over at my fork https://github.com/westonganger/axlsx_styler.
It does monkey patch two method in Axlsx::Styles however it only adds an optional argument to each to provide the improved functionality so that the original method behaviour is still maintained. You can see these additional patches in lib/axlsx_styler.rb. I think the monkey patches should be moved to seperate file(s) as they are starting to pollute this main file.
Also I had to make changes to the Axlsx::Workbook#set_style_index method in lib/axlsx_styler/axlsx_workbook.rb to make this work because the original implementation had no regard for styles set by plain axlsx.
I think this is a huge improvement for this library. Let me know your thoughts. I will add tests and make a PR if you are happy with it.

Have you had a chance to look at this yet?

Looks good. Thanks for your work!
There are a couple of things I notice. Most of the tests are failing, producing more styles than expected in the style index. I will need to look more thoroughly to understand the reasons. Obviously, for changes like this it's expected to get broken tests :smile:
Correct me if I'm wrong, but my second observation is that styles are not getting merged properly when I mix old syntax and that brought over from axlsx. Here's an example.
require 'axlsx_styler'

axlsx = Axlsx::Package.new
workbook = axlsx.workbook

bold = workbook.styles.add_style b: true

workbook.add_worksheet do |sheet|
  sheet.add_row ['A1', 'B1'], style: [nil, bold]
  sheet.add_row ['A2', 'B2']
  sheet.add_style 'B1:B2', bg_color: 'ff0000'
end

axlsx.serialize 'test.xlsx'

The bold style in cell B1 gets overridden by red background color.

Yes there will be increased styles because in order to "merge" it instead creates a new style object. I changed the implementation of Axlsx::Workbook#set_style_index. We should probably ensure we are doing all we can to use less style objects. Now that we are monkey patching add_styles we can probably add logic for style_index and raw_style in this method.
I just made a commit that should fix the styles merging.

I pulled the latest, and it looks like the same manual test above is failing. The cell B1 is not getting bold face.
I also tried another test, where I apply border that covers one of cells with bold face
require 'axlsx_styler'

axlsx = Axlsx::Package.new
workbook = axlsx.workbook

bold = workbook.styles.add_style b: true

workbook.add_worksheet do |sheet|
  sheet.add_row ['A1', 'B1'], style: [nil, bold]
  sheet.add_row ['A2', 'B2']
  sheet.add_border 'A1:B2'
end

axlsx.serialize 'bold_vs_border.xlsx'

No luck unfortunately:

Ideally these tests should be automated.
As far as the tests go, the number of styles in the index should not change. I'm noticing that on your fork you've disabled style indexing (that guarantees uniqueness of styles)
      def set_style_index(cell)
        self.style_index ||= {}

        index_item = style_index.select { |_, v| v == cell.raw_style }.first
        if index_item
          cell.style = index_item.first # this one
        else
        # ...

If a spreadsheet has too many styles, Excel (at least older versions) can crash or perform very poorly. That's the issue I was facing in earlier iterations of the gem where a style was created for almost every cell.

Thanks for the comments and help testing. I will have to revisit this on to get it merging correctly, try to utilize the style_index caching as best possible, and will add some tests to automate this.

Sounds good! I may spend some time over the weekend to understand how it works. One of the options is to put it as a PR (so we can make comments) and iterate on it.

Just checked that when we call
workbook.styles.add_style <style hash>

the original style hash is broken down into a bunch of objects: border, numeric format, font ID, etc.
Here's an example
bold = wb.styles.add_style b: true
red  = wb.styles.add_style fg_color: 'ff0000'
# => 3
# => 4

wb.styles.cellXfs[bold]
wb.styles.cellXfs[red]
#<Axlsx::Xf:0x000000035f01b0 @borderId=0, @numFmtId=0, @fontId=1, @fillId=0, @applyNumberFormat=false, @applyFill=false, @applyFont=true, @applyBorder=false, @applyAlignment=false, @applyProtection=false>
#<Axlsx::Xf:0x000000035ee1f8 @borderId=0, @numFmtId=0, @fontId=2, @fillId=0, @applyNumberFormat=false, @applyFill=false, @applyFont=true, @applyBorder=false, @applyAlignment=false, @applyProtection=false>

wb.styles.fonts.to_a
# [
#     [0] #<Axlsx::Font:0x000000035f5818 @name="Arial", @sz=11, @family=1>,
#     [1] #<Axlsx::Font:0x000000035f09d0 @name="Arial", @sz=11, @family=1, @b=true>,
#     [2] #<Axlsx::Font:0x000000035eebd0 @name="Arial", @sz=11, @family=1, @color=#<Axlsx::Color:0x000000035ee810 @rgb="FFFF0000">>
# ]

If I understand it correctly, you were trying to convert the styles given by Ruby hashes into Axlsx::Xf instances, which is one approach that requires manipulating this long list of properties @borderId, @numFmtId, @fontId, @fillId... Another approach would be to convert Axlsx::Xf back into Ruby hash, to make merging styles similar to merging hashes. I think patching axlsx should not be required in either of approaches, as it provides a bunch of getter methods.
Of course, this is doable, but I'm not sure if what you're trying to achieve in SpreadsheetArchitect is not entirely possible with what axlsx_styler or axlsx already provide. A concrete example to demonstrate your pain points is appreciated :)

Actually, there's another solution I can think of.

Find out which arguments are passed to Styles#add_style, i.e. figure out what the original style Hash is before compilation (e.g. { b: true })
Find which styles cells receive during the sheet.add_row operation
Merge the obtained styles using AxlsxStyler::Axlsx::Cell#add_to_raw_style, which should be a small modification to axlsx_styler

Your last solution helped me come up with the proper implementation. I just created a PR for this. Interested to get your feedback.

Now that this is implemented can we get a new release?

Thanks for the reminder @westonganger! I just pushed the gem.
I'm hoping CI pipelines won't get busted :stuck_out_tongue_winking_eye:

italic_style = sheet.styles.add_style(:u => true, :sz => 8, :font_name => "Calibri Light",
       :width => 5, alignment: {:horizontal => :center, :wrap_text => true}, :i => true )

:u => true is not working in my case when I use :u => true as separate its override all other sytle

Having this issue lately, if I use a previous style like this on a row
sheet.add_row ["Key 1", '', '', "Value 1"], style: Axlsx::STYLE_THIN_BORDER

and then later add another style like this
sheet.add_style sheet.rows.last.cells.last.r, { b: true }

to make "value 1" bold, it will remove its borders. Any hints?

@newfylox few questions:
1 What versions of caxlsx / axlsx_styler are you using.
2 Does it work if, you do not use Axlsx::STYLE_THIN_BORDER and instead use {border: {style: :thin, color: '000' }}
3 Can you confirm that require 'axlsx_styler' doesnt change anything.
4 Also you say "lately" was it working for you before at some point? If so any further details?

Great questions @westonganger

caxlsx-3.1.1 and axlsx_styler-1.1.0
using the code below works. I don't know if you had another way to test it (with axlsx_style instead of plain caxlsx)wb = xlsx_package.workbook
s = wb.styles
border = s.add_style border: { style: :thin, color: "000000" }
...
sheet.add_row ['1', '2', '3', '4'], style: border
...

require 'axlsx_styler' doesn't change anything (with or without)
Sorry for the word "lately", I was meaning those days but nothing to do with the past.

While my previous answer says that the code work, it causes another problem.
Using plain caxlsx style with axlsx_styler centered style removes my default font to "Arial"
border = s.add_style border: { style: :thin, color: "000000" } # plain caxlsx
sheet.add_row ['1', '2', '3', '4'], style: border # plain caxlsx
sheet.add_style sheet.rows.last.cells.last.r, centerer # axlsx_style

Instead of using wb.styles.add_style try just adding your styles directly to add_row
default_styles = {border: {style: :thin, color: "000000"}}
sheet.add_row ['1', '2', '3', '4'], style: default_styles
sheet.add_style sheet.rows.last.cells.last.r, other_styles

If that fixes it then we can look into augmenting wb.styles.add_style to do something similar to cell.add_style where we keep track of the styles for re-use later.

Ah seems that Arial is used on this line here. I think this was the default for the sheet. Maybe there is some way better we could be doing this?
https://github.com/axlsx-styler-gem/axlsx_styler/blob/35795f5ecfd130c6f949035e4381c93bc29aa9ec/lib/axlsx_styler/axlsx_styles.rb#L11-L15
Maybe you can post the portion of your code that sets the font as well and how that comes into play here.

Well nothing magic on my side, I only set the default font to my whole sheet by doing this
sheet.styles.fonts[0].name = 'Pontiac'

and then all my cells have this font. But using add_style removes it to Arial.

Ok i didnt know you could do that. Looks like we can use this value where we set Arial.
Is there any other methods that you are calling other than font and add_style on sheet.styles

Yeah i expected fonts is just a list of all fonts in the spreadsheet. And i guess default behaviour is that the whole spreadsheet uses the first available font when not specifying.
I suspect if we call sheet.styles.fonts(0) before setting it to anything then i think it should be defaulting to Arial (not because of axlsx_styler)

Is it mandatory to set font name? Will it break removing this parameter? If it's working it would preserve user's preferences, therefore not overriding font. Anyways, thanks for sharing thoughts about this!

So seems to me we would still need to find a dynamic way to get sz: 11, family: 1 too. If you know something here.

Instead of using wb.styles.add_style try just adding your styles directly to add_row
default_styles = {border: {style: :thin, color: "000000"}}
sheet.add_row ['1', '2', '3', '4'], style: default_styles
sheet.add_style sheet.rows.last.cells.last.r, other_styles

I forgot to tell you that this solution doesn't work, it throws an error no implicit conversion of Integer into Hash
wb = xlsx_package.workbook
s = wb.styles
border = s.add_style border: { style: :thin, color: "000000" }
...
sheet.add_row ['1', '2', '3', '4'], style: border
...

Using my solution above with your new commit on branch master, it doesn't work because of this:
https://github.com/axlsx-styler-gem/axlsx_styler/blob/35795f5ecfd130c6f949035e4381c93bc29aa9ec/lib/axlsx_styler/axlsx_styles.rb#L11
options={} is getting this as params {:type=>:xf, :name=>"Arial", :sz=>11, :family=>1, :border=>{:style=>:thin, :color=>"000000"}, :bg_color=>"00b0f0"}
and options are overriding font_defaults. Probably we should reverse those merge
raw_style = {type: :xf}.merge(font_defaults).merge(options) # right now
raw_style = {type: :xf}.merge(options).merge(font_defaults) # probably the solution, or better idea

For no implicit conversion of Integer into Hash this is another error I was wondering how didnt get triggered. Seemed you failed to mention this. I can make a separate PR to resolve this likely.
# Not working
border = s.add_style border: { style: :thin, color: "000000" }
sheet.add_row ['1', '2', '3', '4'], style: border

After the changes I made you should be able to do the following
sheet.styles.fonts[0].name = 'Pontiac'

sheet.add_row [1,2,3], style: {b: true}
# styles applied should be `{:type=>:xf, :name=>"Pontiac", :sz=>11, :family=>1, :b=>true}`

Can you please tell me why your one output has the following
{:type=>:xf, :name=>"Arial", :sz=>11, :family=>1, :border=>{:style=>:thin, :color=>"000000"}, :bg_color=>"00b0f0"}

I am wondering how the :bg_color got there. Maybe you omitted something or can you show how you have assigned :bg_color? I am wondering if somehow you defined bg_color globally, same as you did with the default font.

I just forgot to show more code that I did before. I did a couple of add_styles adding background color, centered text, etc. But nowhere I'm putting Arial font and then my Pontiac font got override like my previous comment told.

Ok can you please confirm that if you remove axlsx_styler from your project that you can get the code working as you expect.

Well removing axlsx_styler works for my font, but I don't think it "reveals" any hints because when doing this, I'm not using add_style nor add_border and so it's plain caxlsx style


Cleanup typehints for event_manager

Checklist

[x] I have run nox and all the pipelines have passed.
[x] I have made unittests according to the code I have added/modified/deleted.

There is unfortunately a bug I found that Nekokatt tried to mitigate in the past in subscribe and unsubscribe by allowing typing.Any instead of taking in the Event class, then enforcing it at runtime. Unfortunately, we cant do this with listen, wait_for and stream, since we do need to provide the return type correctly. I have tried my best to find the best way to fix this to no luck. We will have to wait on these stale almost 4 year old issues.
Relevant issues: https://github.com/python/mypy/issues/5374 and https://github.com/python/mypy/issues/4717


Turn check_futures_test into a sanity check

See https://github.com/tensorflow/tensorflow/pull/15368#issuecomment-354156560 for reference.
@gunan @martinwicke Friendly ping.

Can one of the admins verify this patch?

Could you check your script?
=== Sanity check step 3 of 11: do_check_futures_test (Check that python files have certain __future__ imports) ===

Traceback (most recent call last):
  File "check_futures_test.py", line 107, in <module>
    main()
  File "check_futures_test.py", line 90, in main
    BASE_DIR)
AssertionError: BASE_DIR = '../..' doesn't end with tensorflow

Good catch, os.path.normpath depends on the working directory.

Jenkins, test this please.

@drpngx Seems like the Ubuntu CC test didn't finish but the Sanity Checks succeeded.
Since the latter should be the only ones expected to fail, this should be safe to merge.

Yes, the build is stuck today. We'll have to wait a bit.

@drpngx Could you try restarting the build for this one?

Jenkins, test this please.

Oh, I think it's good. Ubuntu CC moved to kokoro, I think, so the build is good. Waiting for review.


Merge updated ansible code to master

The ansible + chef code needed to deploy OpenStack in packet has diverged from master.

Merged code.


Update LTS from 2.235.4 to 2.277.1

It looks like the latest LTS is worth updating to. This updates the version and SHAs for all Dockerfiles.
I think this fixes #1030
The [last update[(https://github.com/jenkinsci/docker/commit/b1dc0f782809b1268f8fa52de288f01d82ccea8e) didn't seems like it needed a test, so I guess this doesn't.

[x] Make sure you are opening from a topic/feature/bugfix branch (right side) and not your master branch!
[x] Ensure that the pull request title represents the desired changelog entry
[x] Please describe what you did
[x] Link to relevant issues in GitHub or Jira
[ ] Link to relevant pull requests, esp. upstream and downstream changes
[x] Ensure you have provided tests - that demonstrates feature works or fixes the issue

@sevenbill thanks for the PR, from my understanding these build args are set to the latest version by the build script so we tend not to update them for each LTS release.
We probably should add some docs/comments to state this, or even remove the default values so that they need to be supplied.

Either way, if would be nice if the images on docker hub could be updated.

They will get updated automagically in the near future. It does not require the files to be updated to do so.

:+1:


add default subscription or sensu server will crash

This PR fixes #22
Basically this PR forces the client to send at least one subscription in the form: client:name. Testing and works with both configuration file and environment variables. this default subscription will be appended to subscription slice even if none are specified. This matches the default behaviour of the official ruby sensu client.
Can be tested like:
git clone https://github.com/gbolo/dockerfiles.git
cd dockerfiles/sensu/
docker-compose up -d
docker logs sensu_sensu-client-go-fix_1 -f

Dashboard can be seen: http://<IP_ADDRESS>:3000/#/clients

hi @AlexisMontagne
Thank you for your review. My apologies for the bad code, as I am completely new to golang and not a developer. I will clean it up when I get home later, I think I understand the flow better now. This a great learning opportunity for me. Thanks for a great go sensu client btw.

hi @AlexisMontagne
I have amended my last commit. I now do the following:
Upon determining that our client section of the configuration has a name and after client() method is called which finally determines the final state of the Subscriptions slice from user input (config file or env vars), I then append the Subscriptions slice and also remove any duplicate slices that may occur due to user error or introduced by the append. This duplicates the behaviour of the ruby client which also seems to remove duplicate subscriptions

Hey @gbolo,
Could you also add some test to ensure the behavour of your feature? ( https://github.com/upfluence/sensu-client-go/blob/master/sensu/config_test.go ) It would be great!

hi @AlexisMontagne,
I will amend the commit later to fix the styling error you described for append(). I will also add a second commit to address the lack of test. Thanks for you patience

@gbolo The code looks good to me, could you add some tests to assert it?

@AlexisMontagne thanks for comment. I was thinking about how to test. Since the additional code only exists in NewConfigFromFile function, the usual test cases which call Client() method won't apply. Can you suggest what the best way to test this is? I am totally new to this and would appreciate some guidance. Thanks

@gbolo you should write some configuration fixtures (json files) in a directory ( something like testdata/ ) and the idea is to assert the client built out of it.
write some test case with the following format:
for _, tCase := range []struct{
   in string
   out client.Client
}{
  {"testdata/fixtures1.json", client.Client{...}},
} {
  cfg, err := NewConfigFromFile(nil, tCase.in)

  if err ...

  if !reflet.DeepEqual(cfg.Client(), tCase.out) ...
}

Hi @AlexisMontagne, I have added a working test case.

@gbolo could you test multiple cases:

empty subscriptions case
uniq subscriptions
duplicaticates

@AlexisMontagne sure, I will add these additional cases tonight.

@AlexisMontagne the additional test cases have been added.

@gbolo One of the best practice to write test in Go, is to write some structured test cases ( input + output ) and test it consistently. cf. https://github.com/golang/go/wiki/TableDrivenTests
could you update your tests according to it.
PS: in my last comment i gave you an example of what the tests could look like.

Hi @AlexisMontagne,
Thanks for the link, I read over it and redesigned the test cases. Good learning experience. Hopefully we are done with this PR so I can begin working on adding the much needed TLS support.

Hi @AlexisMontagne, are any other modifications needed, or can this be merged?

@AlexisMontagne Do you think we can merge this? I am adding some code for https://github.com/upfluence/sensu-go/issues/1 and it would be great to get this merged first.

@mihaitodor I totally forgot about this PR, i'm sorry! I will merge it right away

Thanks a lot :)


[Wallet] Fix sent transactions not confirming

Rely on the spent transaction confirmation rather than on the receiving transaction confirmation to remove the output from the lookup table.
Related:
https://github.com/stratisproject/StratisBitcoinFullNode/issues/3107
https://github.com/stratisproject/StratisBitcoinFullNode/issues/3043

@dangershony please run your manual tests for this.

An explanation here for keen code reviewers:
When a transaction is sent by a wallet, a record of it is created in the wallet object called SpendingDetails and is attached to the output being spent.
so you have transactionOutput/spendingDetails. This spendingDetails object doesn't contains a block height at first, and when the transaction is mined, the block is received by the wallet manager who then adds the block height to the spendingDetails object.
To make sure that outputs and addresses are quickly searched through, we maintain lookup objects. When a transaction is spent, we remove it from the "outputs that can be spent" lookup.
The problem here was that, by mistake, when a transaction was sent and added to the wallet object, we looked at whether the output being spent was confirmed (which is almost always is) and then remove the output from the lookup. subsequently when a mined block would arrive with the transaction in it, the block height would never get added to the spendingDetails and the spent output would always be marked as unconfirmed.

This still does not resolve #3043 - Loading my wallet with a lot of stakes, and also, I still cannot see my initial deposit in the history with the wallet having the issue.

This was already included in another PR


Installing without sudo

Thanks for the library!
I am attempting to use this to run on some supercomputers, but don't have root access! I was wondering if you have a suggestion for how to run the install portion without sudo and still get the TensorflowCC build targets?
Thanks,
Mark

Hi, you should be able to use e.g., -DCMAKE_INSTALL_PREFIX=~/.local option for cmake command and register the ~/.local folder hierarchy in your LIBRARY_PATH etc. (see lines 10-14 here).


fix(SharedStyle): fixing issue with duplicate fill instantiation

Issue #, if available: #21
Description of changes: Removing duplicate instantiation of the Fill class when calling SharedStyle.LayerStyle
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

LGTM! :shipit:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


How to convert wkx geom to EWKB for postgis insertion

Hey cschwarz,
I sucessfully went from postgis ewkb to wkx geometry. I'd like to do the opposite now and send wkx geometry back to my postgis database. My web api wants a string of ewkb text to insert into postgis.
Can you show me an example of this sereralization of this geometry back to ewkb format?

This works for LineString ZM, but not for MultiLineString ZM.
Any ideas on a work around?
var txtBinary = line.SerializeByteArray<Wkx.EwkbSerializer>();
return BitConverter.ToString(txtBinary).Replace("-", string.Empty);

Sorry my fault again!!!
I didnt set lines.Dimension = Wkx.Dimension.Xyzm;
It defaulted to lines.Dimension = Wkx.Dimension.Xy


tests/tfo: add more tests

https://redmine.openinfosecfoundation.org/issues/3509
https://redmine.openinfosecfoundation.org/issues/3522

Merged in #213


Allow the user to specify hostname to listen on

I suggested this in https://github.com/silverbulletmd/silverbullet/issues/16#issuecomment-1336213572

Looks good! My only question is if hostname the right term. Maybe bind IP or simply an --ip flag instead?

Hostname matches what oak expects to be passed.
https://github.com/silverbulletmd/silverbullet/blob/0c966e5015cd5539735df1ec502af6f02b8a0430/server/http_server.ts#L131
I'd also say --hostname should be understood to be includes of explicit IPs whereas --ip would likely not. Probably isn't really a big deal either way so long as it's documented.

Good point. Alright. Merging this, thanks a lot!


Documentation is not clear on exactly how pooling settings work

Improve documentation
Link
https://supabase.com/blog/supavisor-postgres-connection-pooler
Describe the problem
If an application running on Supabase with Supavisor ONLY uses serverless functions, it will have N max clients.
It isn't clear exactly how exactly each of the N max clients are taken/made available upon each action in an application.
In session mode, will a single serverless function use up 1/N clients for the entirety of its lifetime? In other words, does it use a single connection once it is invoked until it goes back to a cold state (but does not require connecting more than once for multiple queries in the same function invocation, or even for subsequent invocations)?
In transaction mode, does that mean that you effectively have a budget of N concurrent database queries, regardless of how many functions are active/invoked at any given moment? For instance, assume a serverless function that makes a single DB query then sleeps for 10m. If I invoke this function N times in parallel, does that imply that the budget of max clients is:

At time of all functions making DB query → 0/N
The moment all functions finish the query → N/N
The entire duration of the 10m function → N/N
If I then decide to invoke that same function N more times while the initial invocations are all sleeping for 10m, I could do so since the connection to the DB is broken the moment the query completes?

How exactly this works isn't documented clearly.
Describe the improvement
Provide more clear explanation for how each mode works for Supavisor.

Hey @jakeleventhal,
Not sure if you managed to find an answer to the query but this guide may help  clear things up: https://github.com/orgs/supabase/discussions/21566
Joel


fix: Ensure CommitSig Timestamp is empty if BlockIdFlag is ABSENT -- DO_NOT_MERGE

Best if we close this in favour of https://github.com/cosmos/cosmjs/pull/1516 (assuming it works, which it should)

Best if we close this in favour of cosmos/cosmjs#1516 (assuming it works, which it should)

Tested cosmos/cosmjs#1516 and it works. Probably a better solution

Closing in favour of https://github.com/confio/ts-relayer/pull/278


How to get push messages to work in work profile/shelter?

I've tried setting this up in shelter, but the GCM messaging not work. "push notification tester" cannot register for listening to push notifications. (When I enable the request to be manually approved, the usual question is not even shown.)
The logcat shows the push notification tester is trying "check token availability" again and again…
I am using https://lineage.microg.org/.
Is there any special setup I need?
Which apps, do I need to clone into the shelter? Do I need to also clone "Services Framework Proxy"?

More details/also reported at https://git.angry.im/PeterCxy/Shelter/issues/26 and https://github.com/bbindreiter/PushNotificationTester_App/issues/7 (as the test app actually crashes.)
Also related to https://github.com/microg/android_packages_apps_GmsCore/issues/747.

Testing app for push notifications also fails for me in the work profile. Device registration seems not possible at some point.

E FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE
...
E PushNotificationTester: Registering for Push Notifications failed

Yeah, BTW, also discovered you get exactly the same behaviour/failure if you setup a new user on Android and do everything there. (Likely, because Android's implements for both features is generalized.)

Actually, discovered https://github.com/microg/android_packages_apps_GmsCore/issues/660, which should be about the same issue. The user also mentions a workaround there…

Youtube has a push notification issue too

Did you copy microg over?

It is automatically copied.
But I've also copied gfs and gakestore and so on. (see the linked shelter issue in the OP)

This does already work on my device after setting up microG again in the work profile. I used Island to provision the work profile. This sound more like an installation or ROM specific issue. My setup is a Pixel 3, using the stock ROM + FakeGapps Xposed module, with microG (NanoDroid build) installed in priv-app.

Correct me if I'm wrong but because microG Core Services is a system app, on Shelter there's no such option as uninstall from the work profile. I've checked it out and the only way would be to clone it again from the main profile. Though not sure if this action will make it work.

You have the option to disable it, just like in the main profile @miquecg

I can "freeze" microG (it's the same as disabling) but not uninstall it. You mean cloning over after freezing it?

@miquecg I'm confused as to what you are trying to accomplish. You can fully disable the app or clear its data from the phone's Settings app. Just look for the app with the work profile (suitcase) icon in the installed apps section. On Android Pie, it is Settings > Apps & notifications > See all (number) apps > microg Services Core (with the suitcase icon)

@miquecg I'm confused as to what you are trying to accomplish. You can fully disable the app or clear its data from the phone's Settings app. Just look for the app with the work profile (suitcase) icon in the installed apps section. On Android Pie, it is Settings > Apps & notifications > See all (number) apps > microg Services Core (with the suitcase icon)

That's another way to do it hehe. On Shelter you can "freeze" apps and it's exactly the same as disabling AFAIK. I was meaning to freeze (disable) microG in Work profile.
What should I do next? Clone microG from Main to Work profile? Is this going to work having already one clone (disabled) in the Work profile? I don't assume it's going to overwrite it. To me uninstall and disable are different things.
Anyway, I should try your suggestion. Thanks!

@miquecg you just need to Enable/Install microG in the work profile and set it up again as if it is a new phone. The data between the main profile and the work profile is completely separate, so you have to add your account a second time. The key to get all the features working is to turn on device registration and cloud messaging on before you sign into your Google account in the work profile -- this allows microG to do a check-in right at sign-in (bypassing issue #660). Push messages work fine in my work profile after setting it up in this order.

With microG you actually do not need to sign-in to your Google account at all. That's actually a good thing, so the only setup is indeed enabling device registration etc. As I've already described, I've done all that, it still did not work…
And yes, maybe #660 is to blame here.

I didn't use any Google account. That's an important difference between your setup and mine. In fact it could be the reason that it's working for you and not for us.

I have the same problem as a few others seem to be.
I can't get GCM registered within the work profile of Shelter no matter what I try.
I've tried as many different options I can find through Google from reinstalling different apps through to sending checkins via ADB shell broadcasts as the "work profile" user.
I'm using latest LOS 15.1 on Samsung S9 with the latest versions of all relevant software.
My chief test tool has been "Push Notification Tester" app.
As an aside I also seem to be getting the same issue with a Samsung S5 on same versions of OS. Although haven't tested this as thoroughly

Please all of you try the new version released today to see if the problem still persist.

The microG F-Droid repo only offers me <IP_ADDRESS>80 (2018-09-27) as the latest version only…

@rugk just refresh f-droid repos or download new apk here
https://github.com/microg/android_packages_apps_GmsCore/releases

Also the official doenload page: https://microg.org/download.html

I uninstalled whole Shelter and set it up again, activated device registration in microG and cloned the push notification tester into the work profile.
However, the test app still fails with "register for push notifications".
(AFAIK I don't need to sign-in to a Google account in microG for push notifications.)

I've done the microG update. After that I've tried to get GCM connected status in the work profile in several ways:

Disabel GCM > Allow device registration > Enable GCM
Dialing the code again

Notification tester app still cannot register for push notifications.

I found that you have to proc the registration... what I do (because I have to uninstall shelter every LineageOS4microG update), has been to:

Clone DroidGuard Helper to the Work Profile
Open microG Settings for the Work Profile and:
-Enable UnifiedNlp Settings
-Enable Google device registration
-Enable Google Cloud Messaging
+Click the 3 dots menu (top right) and select Advanced
+Enable Confirm new apps
-Enable SafetyNet
+Click the 3 dots menu (top right) and select Use official server
Go back to Shelter's Main profile and clone a program that is registered for Cloud Messaging on your non-work profile

Bitwarden works for me

Open the app you just cloned to your Work Profile and a popup should come up to register it to Cloud Messaging. Accept it.
Close the app then open microG Settings for the Work Profile and:
-Disable the Google Cloud Messaging Advanced option to confirm new apps
Clone over other apps and they should automatically register

I've found a fix that works for me (bullhead, Shelter, no Google account):
I enabled ADB root access (not sure whether that's actually needed, I was following other guides that suggested doing so), and then ran
$ adb shell pm list users
Users:
        UserInfo{0:Owner:13} running
        UserInfo{12:Work profile:30} running
$ adb shell am broadcast --user 12 -a android.provider.Telephony.SECRET_CODE -d android_secret_code://2432546 --receiver-include-background

The important part is getting the user ID for the work profile, and then running the secret code broadcast as that user using the --user flag. After doing this, the push notification tester in Shelter is working, and other apps in Shelter seem to be registering for push notifications.

Hi @duxovni, I appreciate your help but this is not working for me. Maybe there's something slightly different between our setups. Let's try to find out.
I've followed this sequence of steps:

Plug device to USB port and attach to it adb shell
List currently running users

$ pm list users
Users:
	UserInfo{0:Propietario:13} running
	UserInfo{10:Perfil de trabajo:30} running

Regular shell user doesn't have enough privileges to run the command

$ am broadcast --user 10 -a android.provider.Telephony.SECRET_CODE -d android_secret_code://2432546 --receiver-include-background
Broadcasting: Intent { act=android.provider.Telephony.SECRET_CODE dat=android_secret_code://2432546 flg=0x1400000 }
Security exception: Permission Denial: not allowed to send broadcast android.provider.Telephony.SECRET_CODE from pid=15317, uid=2000

To run the command successfully it was enough to become root on the shell

# am broadcast --user 10 -a android.provider.Telephony.SECRET_CODE -d android_secret_code://2432546 --receiver-include-background
Broadcasting: Intent { act=android.provider.Telephony.SECRET_CODE dat=android_secret_code://2432546 flg=0x1400000 }
Broadcast completed: result=0

But this didn't make any difference for the notifications tester app. Also miroG stills reflects device status as disconnected under GCM settings.

Huh, interesting. Did you try enabling ADB root access in the phone's developer settings and running adb root? Maybe that's a necessary part, and the broadcast is failing silently somehow without that.

I don't find anything about 'adb root' on developer settings. There's something related on Security > Trust > Superuser access, that it's about applications on the phone, not adb connection.
Trying adb root on shell results on this message: adbd cannot run as root in production builds.
Possible explanation:

In some developer-friendly ROMs you could just enable Root Access in Settings > Developer option > Root access. After that adb root becomes available. Unfortunately it does not work for most stock ROMs on the market.

https://stackoverflow.com/a/27426909

What ROM are you using? I'm using microG's version of Lineage OS.

This is weird. I tried this exact approach a bit over two months ago and it didn't work. I thought I'd give it another go and now it works. FYI I'm using the last version of MicroG LOS for Samsung S9 before it became unsupported. I have however installed the latest MicroG from F-Droid (<IP_ADDRESS>85-mapbox). Maybe unrelated but installing the latest version of MicroG this way appears to have messed with Location Services :-(

Finally my problem is solved although in a way I wasn't expecting... I've decided to give it another go but this time I've enabled 'device registration' option. After two tries nothing had changed so I've unchecked the option for 'device registration' and all of the sudden it changed GCM status to 'connected' and I could register apps with no problems.

Is anyone still having an issue with this?  Am willing to help.

yes. microG under sheltern GCM's Current State : Disconnected.


Allow iterables as prop types similar to react core.

See issue #359.
Uses react's getIteratorFn() to check weather the passed prop can be iterated. Currently I do not check for valid child items.. Not sure whether that's required? Would cause quite a bit of overhead.
Side note: Does this make sense for any other react-mdl component? Did not find anything where immutable (or similar) props make sense.

Current coverage is 98.82% (diff: 8.33%)

Merging #369 into master will decrease coverage by 0.51%

@@             master       #369   diff @@
==========================================
  Files           107        108     +1
  Lines          2107       2119    +12
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           2093       2094     +1
- Misses           14         25    +11
  Partials          0          0

Powered by Codecov. Last update 191a863...4f3531f

Thanks @ahoereth, I believe it's ok. Maybe you could add a quick test validating only an object or iterator can be passed? (check that no error is thrown when rendering)?

If the user pass an immutable-js list instead of a plain array, and we're using array functions on it, how will it work on the immutable-js structure? Does it has the same functions?
Like, .lenth(), .slice(), .map, etc?

There is no length property, slice(), map() etc work the same. For all the available functions see the sidebar in the immutablejs docs -- they mostly correspond to their JS/ES6 equivalents, especially to the new ES6 Map type.
...and I just figured: This makes a lot more changes necessary. Seems like the code just seemingly works fine as is, but actually does not. Will need to add immutablejs as dev dependency to test this thoroughly.

I won't have time to complete this PR in a timely manner, using a simplified custom DataTable for now. Closing this for now, hope to come back to it later.


unable to push anything that decreases size of repo

if I push a change that decreases the overall size consumption it should be accepted.
Current behaviour:

when I push anything when repository size limit is over such  operation fails

Desired behaviour:

when I push something that reduces the repostory size it should be accepted

Steps to reproduce:

create a repo with a small readme file on disk
make sure that you have pushed the first commit to gitea and its there e.g. test-repo into test-repo folder
the repo size should be about 26-30K
copy the test-repo folder into another folder test-repo1 recursively
inside folder test-repo1 add a bunch of files (e.g. https://github.com/go-gitea/gitea/blob/main/docs/content/doc/administration/config-cheat-sheet.en-us.md) for example 2 times under different name. commit. push
observe size limit change in gitea interface
set the limit on test-repo in gitea slightly below the displayed repository size in gitea
go to the test-repo folder (where size of repo is small) and do a:
git push -f origin main or git push -f - this operation should be successful, because it reduces the repository consumption.
now such operation fails.

Some doco on how to reduce size of git repo on disk:
<EMAIL_ADDRESS>

@truecode112 here is a boilerplate code that I think works and addresses the issue:
https://github.com/go-gitea/gitea/pull/21820/files#r1198240850
If you like I could push it up and you can continue modifying it to make it better, etc.
I have a feeling the guys would ask us to move code away from the pre-hook into one of the subprocesses.

Yes, @lunny exactly - did this as part of the following code:
https://github.com/DmitryFrolovTri/gitea/commit/57c94e63cbb0da55635ef503febe9a06400bc7ea
closing this for now. code "estimates" the size reduction and allows the commit through if reduction is more then addition. So if the repo is over limit and new stuff is attempted to be added it would fail, but if there is some refs that are removed completely and they are not referenced anymore anywhere and there is more size that is freed this way the push would be accepted. So eventually after the few GC and few such changes the repo might go under the size limit and all the pushed would be freely allowed

Yes at least highlevel so I could rely on the git gc to later reduce.
On Fri, May 19, 2023 at 9:22 AM Lunny Xiao @.***> wrote:

So you need to know how much size will be increased or reduced before a push merged.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Unit tests for user utils

Why did we not change any corresponding tests? Are we missing unit tests?
Originally posted by @ankushdharkar in https://github.com/Real-Dev-Squad/website-backend/pull/1022#discussion_r1164520785

What is expected to be done here? @ankushdharkar


fix: move ReturnAllComponents option check into func OnlyReturnRenderingComps

What this PR does / why we need it:
fix: move ReturnAllComponents option check into func OnlyReturnRenderingComps
Which issue(s) this PR fixes:
Fixes #
Specified Reivewers:
/assign @sfwn

/approve


ComboBox: add optional height

Matches the already existing ComboBox::width().

A small note:
I actually made this PR because the Spacing::combo_height doesn't seem to get used.
https://github.com/emilk/egui/blob/68a4239036524e88f7c23286b2eb9a0f610bda2e/crates/egui/src/containers/combo_box.rs#L334-L345
Any combo_height set from an outer context seems to vanish, the inner ui in this closure seems to reset to default settings.

converted to draft until CI is green

@emilk ready for review.
Is #[allow(clippy::too_many_arguments)] better for https://github.com/emilk/egui/actions/runs/7504101398/job/20430342192#step:12:14?


README updates

Update README with updating the store with realtime update actions and individual action pending/loading states.

Thanks!
Publishing as v2.0.0


Secure token timestamp

Hello,
I found some strange behaviour of the widget.
Casting round(microtime(true)*1000) to a int gives error: stoken expired error.
Just returning the rounded value works fine. Hope it helps someone.
Tested on Windows Server 2012 with PHP 5.3.19
Kind regards,
Marc van Tilburg
protected function currentTimestamp() {
return round(microtime(true)*1000);
//return intval(round(microtime(true) * 1000)); //intval makes it invalid?
}

What an interesting bug...
The "official" implementation uses Java's System.currentTimeMillis() which returns an integral type long.
I did a bit of testing locally on PHP 5.6.11, json_encode() treats floats with zero precision (ie, no digits after the decimal point) exactly the same as integers. That is, json_encode(['ts_ms' => 1.0]) === json_encode(['ts_ms' => 1]).
I'm currently unable to test on Windows, but a cursory test indicates the same holds true for all supported PHP versions, at least on *nix. However, the Windows system clock is notoriously imprecise.
Is your Windows version 32-bit? It may be that intval() is overflowing PHP's integer type on 32-bit systems. In which case, it would be safest to leave the value as a float and let json_encode() handle the conversion (by definition, JSON types are unbounded).
Can you please confirm you are on a 32-bit system? Also, is the output of round(microtime(true) * 1000) > PHP_INT_MAX true? If so, I will update my code to return a float from currentTimestamp().

Hello Slushie,
I am running PHP x86 (32 bit) on a 64 bit Windows 2012 server.
Casting microtime(true)*1000 to int definitely overflows PHP_INT_MAX on a 32 bit PHP version.
PHP_INT_MAX =<PHONE_NUMBER>
round(microtime(true)*1000) = float<PHONE_NUMBER>088
intval(round(microtime(true)*1000)) = int<PHONE_NUMBER>
Kind regards,
Marc van Tilburg

Hi
I just published a new version (1.1.1) with float timestamps. You should be able to do php composer update and get the latest version, which should fix this bug.
Cheers!


Add tests for ceremony edge cases & improve type annotations

Description

Add:

test we cannot add online key as one of root keys
requirement that threshold > 2 & add test for that
test that expiration days must be a positive number

Additionally, improve type annotations in a few places
and move ceremony tests input inside conftest to be reused.

Related to #533
Additional requirements

[x] Tests have been added for the bug fix or new feature
[ ] Docs have been added for the bug fix or new feature

Code of Conduct
By submitting this PR, you agree to follow our Code of Conduct.

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

Not sure how this not covered line: https://app.codecov.io/gh/repository-service-tuf/repository-service-tuf-cli/pull/607/blob/repository_service_tuf/helpers/tuf.py#L272 is part of my pr, but will check if I can do something about it.

I decided to just ignore it as it's part of the old md update which will be soon refactored.

FT fix is required before merging this pr.
Have a look at: https://github.com/repository-service-tuf/repository-service-tuf/pull/742

This looks good. I have one inline comment, which should be addressed, and two high level comments, which aren't blockers:
Generally, I think it's not feasible to test all code branches of the cli tool. Maybe it would be enough to just test this feature on the related helper?

Well, that's a discussion worth having.
I am okay with having helper-specific tests instead of full-flow tests for those cases specific to the helpers.
For example, for threshold, we could test the helper itself only.
Still, given that the test is there and working I won't change it now.

If you do test the ceremony command, I recommend to store the complete list of inputs separately for each invocation, even if there is some redundancy. Re-using some parts (e.g input_step1, input_step3) and patching others (input_step2) makes the test a bit harder to read.

I disagree. I prefer reading what is changed as to have all of the inputs there and wonder are there any changes in any of the steps.
When you change only for example input2, then you know that the change is ONLY related to the root keys configuration.

Rebased on top of main.
The only new/changed commit is the last one addressing @lukpueh comment.

Again, we need to have https://github.com/repository-service-tuf/repository-service-tuf/pull/742 merged, before ft tests pass here.


How can i add custom json data in D3FC chart .

Hello ,
i want to add my json to D3FC chart and apply data on all chart from my API . can you help me how i can do that . like in Streaming Candlestick i want to pass my json not random financial data .
Regards
Saiyad

I'd recommend reading some of the in-depth tutorials on using JSON with D3:
https://www.dashingd3js.com/using-json-to-simplify-code
https://www.dashingd3js.com/d3-examples/1-d3-and-javascript-working-with-json


Fix sec

What ❔
upgrade

sqlx to 0.8.1
openssl to 0.10.68

Why ❔
to fix

RUSTSEC-2024-0363
RUSTSEC-2024-0357

The title should match the commit message format as specified by https://www.conventionalcommits.org/..
Please use one of these recognized types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert.
Are you importing git history manually from zksync?  Merging or rebasing from upstream is the way to go.


Added SimpleJVL.cs  to Jotunn.Utils

SimpleJVL shortens language use for front end modders who merely want a few of their assets loaded in, or perhaps simply wish to clone items or add recipes for vanilla items. I included 10 public methods. I am happy to continue this.

LoadAssets(string assetBundleName)
Shorthand AssetUtils extender
AddItem(string prefabName, string name, string description)
Adds item to DB based on prefab, and registers it on that name
AddClonedItem(string prefabNew, string prefabOld, string name, string description, int armor, int armorPerLevel, int maxDurability, int durabilityPerLevel, int movementModifier, StatusEffect setStatusEffect, StatusEffect equipStatusEffect, bool canBeRepaired, bool destroyBroken, string setName, string geartype, int setSize)
Broad extender for fine-tuned cloning
AddPiece(string prefabName, string name, string description, GameObject prefab, string pieceTable, string craftingStation, bool allowedInDungeon, string needs1, int needsAmount1, int needsAmountPerLevel1, bool recoverMats1)
Adds piece to registry based on asset prefab, used by AddStationPiece()
AddStation(string prefabName, string name, string description, GameObject prefab, string pieceTable, string craftingStation, bool allowedInDungeon, params RequirementConfig[] inputs)
Adds crafting station from assets, should allow cloning
AddCustomConversions(string station, string fromitem, string toitem)
Shorthand extender for doing what it says it does for AddItem()
AddRecipe(GameObject prefabNew, string craftingStation, string repairStation, int minStationLevel, int amount, params RequirementConfig[] inputs)
Adds recipe based on prefab, meant to be hooked by one of the previous methods
AddCloneRecipe(GameObject item, int amount, string craftingStation, int minStationLevel, params RequirementConfig[] inputs)
Shorthand extender for doing what it says it does, but for AddClonedItem()
AddPieceRecipe(GameObject pieceName, string pieceTable, string craftingStation, params RequirementConfig[] inputs)
Shorthand extender for doing what it says it does, but for AddPiece()
AddStationPiece(string prefabName, string name, string description)
A constructor for reformatting Piece into CraftingStation

Code should also have a doc page related to it or atleast xml docs

Code should also have a doc page related to it or at least xml docs

I began it, I will continue through-out today.

@xiaoxiao921:  Code should also have a doc page related to it or at least xml docs

I began it, I will continue through-out today. Do I need to write myself into README and such or would one of you do that?

Add yourself please
Also please we require to have every field / method to have the access modifier specified, by default in C# the default access modifier when not written is internal, meaning that the methods currently cannot be used by users because they are marked as internal

Should I convert this into a Draft for now?

Also there is a README.bbcode which needs to be updated.
Honestly that code is not in a good shape and as discussed on Discord before there are many obstacles not even touched (like if fixReferences for prefabs must be true or false).
I like some of the abstractions for ease of use, but in the end it is a complex field and you cannot have everything abstracted.

Hopefully it looks much better now.


UI redesign implementation: add inline download option to sounds in SoundList

I imagine we would add the inline download option to the download icon. Is that assumption correct?

I imagine we would add the inline download option to the download icon. Is that assumption correct?

@hamirmahal I see why that might sound like a good idea but usually most people don't perceive stats (which aren't inside of a button) to be clickable. I was thinking of having this in a hamburger menu on the right hand side of the list item.

@hamirmahal I see why that might sound like a good idea but usually most people don't perceive stats (which aren't inside of a button) to be clickable. I was thinking of having this in a hamburger menu on the right hand side of the list item.


I want to add no.of pr's, stars, issues and other in the readme file.

I want to add no.of pr's, stars, issues and other in the readme file.
Example:

@shagun25 do you want to take this up?

@hiashutoshsingh Sir I didn't understand. I opened this issue.

@hiashutoshsingh Should I start working on this?

@shagun25 do you want to take this up?

yeah we can take this. @srisatya go ahead

please add this section at top of readme.

@shagun25 How do I do that after merging I really don't know. Should I create another pr?

@shagun25 How do I do that after merging I really don't know. Should I create another pr?

Yes please, create another merge request.

@hiashutoshsingh Sorry I didn't understand.

@hiashutoshsingh Sorry I didn't understand.

The new changes you wanted to do raise another PR for that @srisatya1197

Ok

@hiashutoshsingh @shagun25 you haven't deleted the pr #90 please do it .

@hiashutoshsingh @shagun25 you haven't deleted the pr #90 please do it .

Thanks for reminding.


[BUG] Calling BrowserLibrary Keywords in Debugger dont work

Ask @Snooz82

HandlerExecutionFailed('ValueError: signal only works in main thread of the main interpreter')


MAP-1244 Adding unit test for update location

@michalnawrockidj is it common practice not to have a license header in the source files? or do we put headers or not depending on personal or project wide preference?