[CT-2938] [spike] Automate creation of metricflow_time_spine if the project defines semantic objects

follow-up to https://github.com/dbt-labs/dbt-core/issues/7938
related to https://github.com/dbt-labs/dbt-core/issues/8172
Big idea

Currently, if the user defines semantic objects in their project, but not a model named metricflow_time_spine, we raise an error.
We should simply create the model automatically, if it is not found in the project, using the recommended definition.
Users should still have the ability to create themselves with a custom implementation if they so choose.

Acceptance criteria (spike)

Identify complications with automating the creation of this model, updating/deleting if a user defines a model by the same name, re-adding it if the user deletes their version, etc.
Not in scope for this spike: What should actually go inside that model. That should be answered by #8172. For the purposes of this spike, the query can just be select 1 as fun.

Discussed during estimation meeting: Complications with partial parsing - we've never internally created a model without a matching file to it. If you add a semantic model, you have to add this model. If you remove your last semantic model, you have to remove this model.

I might be crazy but I think this is actually pretty straight forward 🤔

If we create this model automatically, I think we will need to have a cross-database macro for date type - to feed the proper inputs (to_date(...) vs date(...)) into date_spine.

So there are two main concerns I believe:

Squaring partial parsing with generating a metricflow_time_spine model when one isn't specified
Auto-generating the metricflow_time_spine correctly given the any adapter

For Issue (1) there are four possible states
a. metricflow_time_spine was specified by the user and that's still the case
b. metricflow_time_spine was specified by the user and now isn't (and thus should be generated)
c. metricflow_time_spine wasn't specified by the user (and thus generated) and that's still the case
d. metricflow_time_spine wasn't specified by the user (and thus generated) but now it is specified by the user
I think the solution is at the end of parsing if there are semantic layer nodes and no metricflow_time_spine model we add one and mark it as auto generated. At the start of parsing if there is a saved manifest, we drop the metricflow_time_spine node if is marked as having been auto generated. This workflow makes the following happen in the corresponding cases.
a. the metricflow_time_spine is handled by the user specification
b. the user specifed metricflow_time_spine gets dropped during partial parsing, and then re-added via the auto-generation
c. the auto generated metricflow_time_spine gets dropped, and then re-added at the end
d. the auto generated metricflow_time_spine gets dropped, and then the user specified metricflow_time_spine gets added

For issue (2) I don't think we need a cross-database macro for date types, though it would be nice. Instead we could just use the same jinja template we use for the date_spine macro tests, were we do different calls to the macro based on the target data warehouse.

Instead we could just use the same jinja template we use for the date_spine macro tests

What jinja template is this? Curious what it looks like

Instead we could just use the same jinja template we use for the date_spine macro tests

What jinja template is this? Curious what it looks like

@graciegoheen it looks like this currently
    {% if target.type == 'postgres' %}
        {{ date_spine("day", "'2023-09-01'::date", "'2023-09-10'::date") }}

    {% elif target.type == 'bigquery' or target.type == 'redshift' %}
        select cast(date_day as date) as date_day
        from ({{ date_spine("day", "'2023-09-01'", "'2023-09-10'") }})

    {% else %}
        {{ date_spine("day", "'2023-09-01'", "'2023-09-10'") }}
    {% endif %}

Got it - that makes sense!
@dbeatty10 curious your thoughts here - would a cross-database macro for date type be:

similar to just cast ... as {{ dbt.type_date() }}
or similar to cast_bool_to_text, cast_text_to_date
something else?

@graciegoheen this idea makes sense to me to support a built-in metricflow_time_spine 🚀

cast_text_to_date (similar to cast_bool_to_text)

What do you think about calling it to_date()?
Instead of naming it cast_text_to_date, I'd suggest we call it to_date instead. Even though to_date isn't within the SQL standard, databricks, postgres, redshift, and snowflake all have a to_date function that does what we want. Although bigquery is an outlier, nothing we can't solve with a little dispatch magic ✨
Prototype of to_date()
Assuming to_date() is a cross-database macro that takes an ISO 8601 (YYYY-MM-DD) date string as input, here's a completely untested prototype for dbt-postgres:
{% macro to_date(date_str) %}
  {{ return(adapter.dispatch('to_date', 'dbt') (date_str)) }}
{% endmacro %}

{% macro default__to_date(date_str) -%}
    to_date({{ dbt.string_literal(date_str) }})
{%- endmacro %}

Pulling it all together for metricflow_time_spine
The cross-database Jinja template might look like this:
select cast(date_day as date) as date_day
from ({{ dbt.date_spine("day", dbt.to_date("2023-09-01"), dbt.to_date("2023-09-10")) }})

Appendix
Validation and error checking
If we want, we could always add some format validation to the default implementation of to_date() by using the datetime module:
    {%- set dt = modules.datetime.datetime.strptime(date_str, "%Y-%m-%d") -%}
    ...

type_date macro
We may (or may not) want to also create a cross-database type_date macro (which doesn't exist today). I haven't seen any database that doesn't call this data type DATE, so that makes it either easy-peasy or extraneous depending how you look at it.


Abstract visualizers away from being tied specifically to p5

We envision that there may be network visualizers and/or table visualizers and/or ... that will want to use other rendering libraries besides p5. Right now, the VisualizerInterface explicitly supposes that there will be a p5 sketch associated with the visualizer. It should be divided into a generic interface that is agnostic about what is doing the rendering, and a specialized P5VisualizerInterface that extends the generic one and assumes there's a p5 sketch, so that other sorts of visualizers can be introduced into the hierarchy.

Example libraries that one might want to use for visualiazation: three.js to produce 3D graphics; vis.js for networks and other data structures, including possibly "ordinary" graphs of sequence values; and/or bootstrap-table for tabular data (and quite possibly VisualizerDifference should really be done with a table library rather than p5).

See https://github.com/numberscope/frontscope/issues/120#issuecomment-1194525172 for how we will proceed.


Cookie validation should support MaxAge too

Currently, the httpexpect checks cookie expiration time like this:
// Expires returns a new DateTime object that may be used to inspect
// cookie expiration date.
//
// Example:
//  cookie := NewCookie(t, &http.Cookie{...})
//  cookie.Expires().InRange(time.Now(), time.Now().Add(time.Hour * 24))
func (c *Cookie) Expires() *DateTime {
	if c.chain.failed() {
		return &DateTime{c.chain, time.Unix(0, 0)}
	}
	return &DateTime{c.chain, c.value.Expires}
}

which is not compatible with rfc standards.
Expires in the cookie is obsolete and should be replaced with MaxAge. Only IE 8 and below still identifies only Expires, while most browsers can interpret both Expires and MaxAge.
So I am wondering if the func (c *Cookie) Expires() can checks both Expires and MaxAge. Or should there be another function like  func (c *Cookie) MaxAge()  to deal with MaxAge property.

I've added Cookie.MaxAge method along with the new Duration type to the master branch.
I didn't touch the old Expires() method to keep backwards compatibility.


By default the first submenu should be open, when the admin is clicking on any tab

Bagisto Version: Master
Steps To reproduce--
1. log in as a admin
2. Click on dashboard
3. Click on sales
4. Click on catalog
5. Click on customer
Expected result: By default the first submenu should be open, when we are clicking on any tab
Actual result: Not any page is opening when the admin is clicking on any tab. Please find the screen recording Here

@ghermans,
Can you verify this with @deepaksinghgusain227?


Please add LICENSE to the project (root of repo)

Found this library great but cannot find LICENSE file.
Have you got one? If no, I suggest MIT.

Added the LICENSE file, it's MIT.

Added the LICENSE file, it's MIT.

@Giannoudis Thank you! It's a good library!


bug(ios): cannot build with latest xcode 15

Currently, this plugin cannot build with latest xcode 15.

To address the issue from older version, we need to manually modified ios/App/Podfile as following:
target 'App' do
  capacitor_pods
  # Add your Pods here
-  pod 'YPImagePicker', :git => 'https://github.com/jonz94/YPImagePicker.git', :tag => '<IP_ADDRESS>'
+  pod 'YPImagePicker', :git => 'https://github.com/jonz94/YPImagePicker.git', :tag => '<IP_ADDRESS>'
end

After modified ios/App/Podfile, make sure to run pod update command to sync up the iOS project.


Refactor the structure of the playfield hierarchy

Now uses the GridContainer for way better and easier dimension controlling, very damn useful to extend the height of the upcoming ground component right down to its parent height.

Seems legit.


The computed property "xx" is already defined in data.

Describe the bug
When the data variable in the remote component has the same name as the computed property of the host page with mixin, an error is reported,like 'The computed property "aa" is already defined in data.'

To Reproduce
remote component
<script>
export default {
  data() {
    return {
      aa: '',
    };
  },
};
</script>

host page with mixin
mixin.js
let mixin = {
  computed: {
    aa() {
      return '123';
    },
  },
};
export default mixin;

main.js
import mixin from<EMAIL_ADDRESS>Vue.mixin(mixin);

Expected behavior
The data variable definition of the remote component is independent of the computed property of the host page with mixin.
Versions

Browser (name & version): Chrome  100.0.4896.75
vue3-sfc-loader: 0.8.4
vue：2.6.12

Hello bingxueyinlian, this issue is not related to vue3-sfc-loader.
see Vue SFC Playground


Hardcoded URL doesn't allow to send logs to different endpoint like EU

Describe what happened:
I am using this datadog kafka connector but my datadog system is operating in EU
Describe what you expected:
To be able to configure the URL from parameters in case a different URL than the US one is wanted to be used.
Steps to reproduce the issue:
Trying to send logs to the EU datadog endpoint
Additional environment details (Operating System, Cloud provider, etc):

Thanks @sergialonsaco for opening this issue, we'll triage your feature request.
If you're willing to open a PR to implement this we'd be happy to review it, otherwise we'll triage this on our end and implement it once it's prioritized, thanks!

Thanks, @olivielpeau! I've created the PR https://github.com/DataDog/datadog-kafka-connect-logs/pull/23 with the changes, I would really appreciate it if you could review it 😄

Thanks @sergialonsaco for your contribution! It was merged and released in version 1.1.0 so I'll go ahead and close this issue.


[PF5 Regression] Application Edit pencils are not available

How it looks now on main:

How it looks running on release-0.2 branch:

Hm, I had assumed this was an RBAC issue when I noticed the difference between my deployed image and my no-auth local server. Good catch.


Customized model/detector backend support

I noticed that DeepFace uses a dictionary to describe the model/backend, would DeepFace be able to accept custom models/backends via a custom loadModel/build_model? Thank you!

face recognition and face detector models must have wrapper in deepface


Use less clicks - out of sight; out of mind

Implement suggestions as per #276.
Closes #276.
There is still one issue that will be kept open (the second point in #276), see #278.
In this PR:

[X] The dropdown of databases (not providers) is hidden, along with the page chooser, when the number of databases is <=1.
[X] The first choice from the results dropdown and format dropdown are chosen automatically, when available.
This means the CIF format is the chosen default download format.
[X] Move "No structures found!" message into the results dropdown, instead of writing it as a special message below.
[x] Add variable to dynamically disallow certain providers according to their "id".
[x] Add possibility to use development servers of providers (if available, currently only relevant for Materials Cloud).

@ltalirz can you check the test deployment and that it works as you had in mind.

Thanks @CasperWA !
I'm interpreting

The first choice from the results dropdown and format dropdown are chosen automatically, when available.
This means the CIF format is the chosen default download format.

as that one of the options should be preselected but when I clicked on the link above, no provider was pre-selected

Same when selecting Materials Cloud (no sub-database was pre-selected).

Thanks @CasperWA !
I'm interpreting

The first choice from the results dropdown and format dropdown are chosen automatically, when available.
This means the CIF format is the chosen default download format.

as that one of the options should be preselected but when I clicked on the link above, no provider was pre-selected
Same when selecting Materials Cloud (no sub-database was pre-selected).

Ah that's true. I don't pre-select providers and databases still. This is mostly (not) done because it will start a lot of blocking HTTP requests (something I will be making non-blocking in the near future).
My meaning of the lines is the dropdown for the results, i.e., the structure results :) And the "format dropdown" is for which format to download the structure in.
I think I still want people to forcefully consider which provider they want to choose. And for Materials Cloud, we can surely choose a default database, but since we have actively avoided this up to now for other parts of integrating Materials Cloud with OPTIMADE, then I followed that scripture here as well. But let me ask you, if you want a default database for Materials Cloud, which should it be? :)


Scaling issue when loading images by network

When I try to load an image with some image library, the image behaves differently than normal. This issue also occurs when using an image stored on the device. setImageResource() is the only no that has this problem, when the image is loaded locally in res/drawable.
Using the Coil library: photoEditorView.source.load(imageUrl). The same happens with photoEditorView.source.setImageURI(URI) and photoEditorView.source.setImageBitmap(Bitmap):

Using photoEditorView.source.load(resource):

Changing the scale type with photoEditorView.source.scaleType has no effect.

I noticed that setting the image directly with the library can solve this problem, depending on the library used. With Glide:
Glide.with(context).load(imageUrl).centerInside().into(photoEditorView.source)
I didn't get the same behavior with Coil, which is my focus. Even though the ImageView has a scaleType defined before,
Coil apparently doesn't use it. Alternatively, as a workaround, I set a size to be used when loading the image. This way, the image has the usual appearance of a FIT_CENTER scale.
photoEditorView.source.load(imageUrl) {
    size(2000)
}


[WIP/bp/1.27] Backport stack

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

requires #28789

Would you want to include #28785 in this PR, or do it in a different PR?

/wait-any


changing build configuration name error-ed out

After I changed the build configuration name from Debug to Development, then running the project will produce No such module 'ObjectMapper' error while all the rest libraries I am using are fine.

and it will work as soon as I change the name back.

Seems like this is an issue with Xcode. I tested it with a couple frameworks and they both had the problem you mentioned above. See the following for a potential solution:
http://stackoverflow.com/questions/26073088/swift-frameworks-do-not-work-with-build-configurations-named-other-than-debug


Minor UI tweaks

Closes #3283
New tab appearance:

Added spacing and mouseover effects to ExpanderCell icons:

Closed in favour of #3306


ValueError: Dimension 3 in both shapes must be equal

Traceback (most recent call last):
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1628, in _create_c_op
c_op = c_api.TF_FinishOperation(op_desc)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Dimension 3 in both shapes must be equal, but are 12 and 3. Shapes are [?,8,8,12] and [?,8,8,3].
From merging shape 0 with other shapes. for 'generator/scale_1/calculation/concat/concat_dim' (op: 'Pack') with input shapes: [?,8,8,12], [?,8,8,3].
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "avg_runner.py", line 187, in
main()
File "avg_runner.py", line 179, in main
runner = AVGRunner(num_steps, load_path, num_test_rec)
File "avg_runner.py", line 50, in init
c.SCALE_KERNEL_SIZES_G)
File "/home/guohaoyu/vedio_generation/Adversarial_Video_Generation/Code/g_model.py", line 48, in init
self.define_graph()
File "/home/guohaoyu/vedio_generation/Adversarial_Video_Generation/Code/g_model.py", line 159, in define_graph
last_scale_pred_train)
File "/home/guohaoyu/vedio_generation/Adversarial_Video_Generation/Code/g_model.py", line 123, in calculate
inputs = tf.concat(3, [inputs, last_gen_frames])
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py", line 1121, in concat
dtype=dtypes.int32).get_shape().assert_is_compatible_with(
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1050, in convert_to_tensor
as_ref=False)
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1146, in internal_convert_to_tensor
ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py", line 971, in _autopacking_conversion_function
return _autopacking_helper(v, dtype, name or "packed")
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py", line 923, in _autopacking_helper
return gen_array_ops.pack(elems_as_tensors, name=scope)
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py", line 4875, in pack
"Pack", values=values, axis=axis, name=name)
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 488, in new_func
return func(*args, **kwargs)
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3274, in create_op
op_def=op_def)
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1792, in init
control_input_ops)
File "/home/guohaoyu/.conda/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1631, in _create_c_op
raise ValueError(str(e))
ValueError: Dimension 3 in both shapes must be equal, but are 12 and 3. Shapes are [?,8,8,12] and [?,8,8,3].
From merging shape 0 with other shapes. for 'generator/scale_1/calculation/concat/concat_dim' (op: 'Pack') with input shapes: [?,8,8,12], [?,8,8,3].

@ghailey What is the cuda version you are using for running this code. I tried running in Cuda 9 , TF 1.12 and Ubuntu 16.04. It resulted in the same error which you have encountered. Kindly help us if you have solved this issue.


Enhance error detection in scripts

Change the tests to stricter bash error handling settings. Currently
set -u
is used, better would be something like
set -euo pipefail
to detect more errors during script execution.

You are referring to the unit tests (files *_test.sh ) only? What do you expect by stricter bash error handling ??


Move gear category into the manifest

The gear category was historically remote from the manifest, because I didn't agree with the distinction: gears are f(x) = y filesystem transforms, and where outputs are stored is none of the gear's business. There's no reason a utility gear couldn't be ran as an "analysis", or vice-versa; you can today via the API.
As the gear concept continues to mutate, this separation has become less true over time. The two(-ish) categories have gelled pretty hard, gear authors have opinions about where the gears are displayed in various UIs, and the upcoming hierarchy inputs (#13) will well & truly kick the category-separation bucket.
I propose the following:

Drop converter and qa categories. I don't have a reason for these to exist.
Move the utility and analysis category options into the manifest.
Enforce the enum with the jSchema.

Result:

Gear categories are no longer an ops concern
Gear authors can record their choice and reference it later

@kofalt 👍
@lmperry ?

@kofalt
Would the processing of inputs/outputs be any different between utility and analysis?
Are you suggesting that #13 be restricted to analysis gears?
Has the idea of using an analysis bool instead been considered?
@lmperry
How do QA gears fit into this proposal. They are the most tangible example to me of a gear that could be considered utility or analysis.

Hierarchy inputs could obsolete the distinction, give or take. One of the things being discussed is that hierarchy.... "inputs" could arbitrarily modify the tree, which throws the concept of a destination out the window. To repeat, I'm really not a fan of the category at all because it raises needless questions like this, but the product seems to want it. If nothing else, it does separate out what could be a long list of gears into some semantically-useful lists.
To answer directly:

A gear category does not change processing, I'm not sure what differences could exist there.
No, I don't think hierarchy inputs should be restricted to a category. I would agree that a hierarchy input on a utility gear seems a little strange on the face of it.
I hadn't considered a boolean, but I'd rather keep it a string. Forward-compatible. It would also be an instance of that one design pattern where you have func paint(bool) that I can't remember the name of offhand, but it's irritating :slightly_smiling_face:

I agree with @kofalt's proposal.
QA, depending on the exact algorithm, could either be utility or analysis -- I have examples of both and the line is only slightly blurry.
At the end of the day, we have one question for the user: "Do you want the outputs of gear X to be an analysis object, or saved to the acquisition from whence the inputs came?" Right now analysis gears get analysis objects and utility gears' output go back on the acquisition container. Maybe we should be asking them and do away with the utility/analysis categories.
Issues with this distinction/not asking the user:

If I choose inputs from 3 different acquisitions as inputs to a utility gear (e.g. Flywheel Example Gear on Dev), where do the outputs go? - A: Back to the acquisition of the first file in the input array.
For a utility gear, if I choose an input from an existing analysis, where do the outputs go?  - A: Right smack on the analysis object as an output file!!! I would argue this is a serious problem we should address very soon - I didn't know this until I tested it just now.

Either we should: 1. ask the user where the outputs should go (at least if it's ambiguous), or 2. Not allow analysis outputs to be inputs to utility gears - utility gears can only operate on acquisition data and write results out to those acquisitions, or new acquisitions? Need to think through that...

Glad we're having this discussion. Looping in @travisr.
@lmperry A gear that has inputs from 3 different acquisitions should be considered a session-level gear, and so it's outputs should land on that session. Your second example is less clear to me.

@lmperry

Right now analysis gears get analysis objects and utility gears' output go back on the acquisition container. Maybe we should be asking them and do away with the utility/analysis categories.

This was precisely my original vision for gears. Maybe we're headed back in that direction :slightly_smiling_face:
Both of your questions are reasonable, but neither have a ton to do with the gear spec... I get that we need to talk about category consequences in the product but let's be careful here. To answer:

Any container that held an input file. The API chooses one if you don't specify. I don't think the web UI offers the choise right now, but it could.
Analysis containers should definitely be immutable. Your change makes sense. I would vote that a new analysis is spawned and that's the destination of a utility gear that takes analysis files as input.

If we're okay with removing category as a concept, that works well. We can even leave the web UI alone, remove the key, and have it list both types of gears under each button. The "category" determines the destination.
On the downside, if a gear creates 30 files because of how complex it is, running that with a same-container destination might be frustrating.

Offhand, this is also a lot of text to discuss moving a key from doc A to doc B. I'd be content to mark the key move as settled, and discuss the merits of reworking the category concept another time.

I agree that the site (and ultimately the project) should be able to determine whether to treat a gear as a Utility Gear or an Analysis Gear.  Subsequently, it would be preferred not to have the manifest have to know about the category concept.  However, I can imagine the possibility of gears with outputs that don't naturally map back to the source acquisition(s).  In those cases, it might be useful for the gear author to indicate compatibility as a Utility Gear, Analysis Gear, or both.

Closing this for now. We can revisit gear categories after hierarchy inputs or other significant changes to how file destinations are chosen.


Clarify Gist API limit

What article on docs.github.com is affected?
https://docs.github.com/en/rest/reference/gists#truncation
https://docs.github.com/en/rest/reference/gists#list-public-gists
What part(s) of the article would you like to see updated?
Under #truncation:
"In addition to a specific file's contents being truncated, the entire files list may be truncated if the total number exceeds 300 files."
Under #list-public-gists:
"Note: With pagination, you can fetch up to 3000 gists."
Can you please clarify whether we can retrieve up to 3000 private gists using pagination?

👋 @thdoan Thank so much for opening an issue! That question would be best answered by our wonderful support team 💛 After chatting with them, if you think there's a docs update that should be made, feel free to come back and open a new issue. Thanks!


Prevents leaking state across plugin instances

State information was being stored on the element, which could be the
target of multiple instances of hoverIntent. Because there was no way of
knowing which instance the data came from, it was possible for instances
to step on each others' toes and overwrite this stare information,
thereby preventing execution or accidentally triggering incorrect behavior.
This fixes the problem by assigning a unique ID to each hoverIntent
instance and then using this ID to store per-instance state information
on target elements, cleaning up once hovered out.
Some refactoring was also done to clean up function scope and improve
memory usage, and many comments were added and reworded for clarification.
Fixes briancherne/jquery-hoverIntent#35.

I'm not receiving any issues from our fiddles: http://jsfiddle.net/7px1e2kd/1/, http://jsfiddle.net/7px1e2kd/2/, http://jsfiddle.net/7px1e2kd/3/. This is great!
However, do you feel it is best to have the state data exposed through $el.data()? Wouldn't it be overridden if someone was to use the data api with an object?
$( ".hoverIntent" ).data( { baz: [ 1, 2, 3 ] } );

Additionally, I still feel there is still much lacking in the way of coding style. For example, the INSTANCE_COUNT variable's style indicates that it is immutable in some coding styles. Also, an underscore prefix (_name) indicated privately scoped variables, properties, methods, and functions.
There are many good style guides out there. I wouldn't see the need to implement one right away, but I think it would be beneficial to add one in the future. There are many and discussion should be had before determining a style.

Thanks for reviewing the pull request!

However, do you feel it is best to have the state data exposed through $el.data()? Wouldn't it be overridden if someone was to use the data api with an object?

Since jQuery 1.4.3, using .data() with an object will only extend and not overwrite the data, so unless one deliberately uses an object that has hoverIntent as a key, it should be fine. You can test this:
$(document.body).data(); // {}
$(document.body).data({a:1});
$(document.body).data('b',2);
$(document.body).data({c:3});
$(document.body).data(); // {a:1, b:2, c:3}
```

As for coding style concerns, I think this kind of change and standardization should be part of a separate pull request, preceded first by discussion, as you said. I even feel kind of guilty for including a few unrelated code style "improvements" in this pull request (e.g. consistent use of single quotes). Truth be told, the patch for this fix could've been much smaller, but I got caught up in refactoring, which itself could've (should've, really) been a separate pull request. :no_good:

In any case, feel free to file a separate issue if you feel strongly about declaring explicit style rules (e.g., via .editorconfig/.jscsrc/.gjslintrc, etc.), though my current opinion is that the plugin is small enough and updated infrequently enough that it is not a major concern. I can make a "standardize spacing" commit in the meantime, but beyond that I don't foresee enough frequent or substantial changes to the plugin to make the adoption of an explicit style guide a top priority at the moment.

That being said, seeing as this PR seems to fix the original issue, I'm gonna go ahead and merge it. Thanks again for the review!


Cross platform HAL

One big milestone for MAVRIC will be the moment the hal will be truly platform independent (ie able to run on avr32, linux and stm32).
Proposed folder organization
First I think we should separate the chip drivers, which are not platform specific, from the peripheral drivers, which is the real hal.
+
├── hal
│   ├── common
│   │   ├── [...]
│   │   ├── High level peripheral interface (.h files), ex: uart.h, spi.h...
│   │   └── Common features based on lower level peripherals (.h and .c files), ex: SD over SPI
│   ├── avr32
│   │   ├── [...]
│   │   └──Low level peripheral implementation for avr32 (.h and .c files)
│   ├── stm32
│   │   ├── [...]
│   │   └──Low level peripheral implementation for stm32 (.h and .c files)
│   └── linux
│       ├── [...]
│       └── Low level peripheral implementation for linux (.h and .c files)
└──drivers
   ├── [...]
   ├── Chip drivers, using the hal interfaces from hal/common (.h and .c files)
   └── example: bmp085.c uses hal/common/i2c.h (but not hal/avr32/i2c.h)

Then I see two possibilities to link the low-level and high level peripheral files
First solution
Using function pointers.
A high level interface is created in boardsupport.h, and initialized using a low-level function in boardsupport.c
High level
hal/common/uart.h:
typedef uart_t
{
   uint8_t (*write)(uint8_t);
   uint8_t (*read)(uint8_t);
}

Low level
hal/avr32/avr32_uart.c:
avr32_uart_init(uart_t* uart, avr32_uart_conf_t config)
{
    // interface functions
    uart->write = &avr32_uart_write;
    uart->read = &avr32_uart_write;
}

Second solution
Depending on the files which are compiled, a low level implementation is chosen
High level
hal/common/uart.c:
uint8_t uart_write(uint8_t byte)
{
    lld_uart_write(byte);   // lld for low level driver
}

uint8_t uart_read(uint8_t byte)
{
    lld_uart_read(byte);   // lld for low level driver
}

Low level
hal/avr32/lld_uart.c:
uint8_t lld_uart_write(uint8_t byte)
{
    avr32_uart_write(byte);
}

uint8_t lld_uart_read(uint8_t byte)
{
    avr32_uart_read(byte);
}

The first one seems easier to handle. The good point is that you do not need to add code in the LIbrary to add a new uart, just instantiate and initialize a new object in the project folder. However, we have to ensure that all pointers are initialized by the low level drivers. The compiler cannot help here, if a feature is not implemented on a specific hardware, then it is possible to have a NULL pointer for the corresponding function.
The second solution is safer in the sense that it will not compile if the low level driver does not implement one of the functions. However by looking at the code, it is impossible to tell which function is called: there will be several implementations with the same function name. Also, it needs a way to choose the uart: either separate function (uart1_read(), uart2_read(), ...), or a parameter uart_read(uint8_t uart_id, uint8_t byte), in both case more code is needed for more peripheral.
Peripheral initialization
In both cases, it is not clear where to put the initialization.

in the high level files

clean and common interface
more work

in the low level drivers

faster
easier to extend
messier

@lis-epfl/mavric-lis What do you think?

Sounds good! Some suggestions from what we've been doing for our AUV where we have plenty of different boards with different purposes (all AVR32 though):

in hal we have hal/boards and hal/drivers. hal/boards has the boardsupport files (auv_powerboard, auv_navigationboard, ...). Each project just includes one of them and calls the initialisation.
all the configuration for low-level drivers is now in the boardsupport .h file. This is done by a static inline function that returns the config struct that is then passed to the driver initialisation in the board initialise function. It's a clean method, and doesn't have dependencies to config files not in the library. E.g.:

static inline usart_config_t backplaneboard_debug_uart1_conf(void) {
	usart_config_t usart_conf =
			{   .mode=UART_IN_OUT,
		.uart_device.uart=(avr32_usart_t*)&AVR32_USART1,
		.uart_device.IRQ=AVR32_USART1_IRQ,
[...]
	};
	return usart_conf;
};

Init functions expect a pointer to the "data" object that will be passed in every call, and a pass-by-value of the "xxx_config" returned by the conf method, which it then copies into its data object or uses for initialisation. The only dependency is now to central_data which is board specific - but it's also project specific so it's not a big issue. Maybe all board-related parts of central_data could be packed into a sub_struct.

I think it should be doable to have a boardsupport as described above for different processors (it works fine for the hal_emu on linux - the only difference I have now in emulation is the hal-emu instead of hal folder and a different main file which doesn't do much).

a lot of drivers can be abstracted away with the stream interface - I have now drivers for uart, spi and can, as well as UDP in linux emulation (also simulating internal CAN bus via UDP with multiple binaries), using bytestream_t interfaces which works well (added some more functions for starting transmission, etc. - will try to share some time soon). Although function pointers can be dangerous I think in C it's the only way to achieve true abstraction and interchangeability.

I created and "error_handler" module which can be configured to send errors and debug messages either via plain-text or via Mavlink status. Will try to post as soon as I have time after the field trip. Also added a basic printf to print_utils which is very handy.

Thanks for the input, indeed moving boardsupports to the Library is the next step. I hope the field tests are going well!
Similar to the first solution, what do you guys think of this?
https://gist.github.com/jlecoeur/e32fa5e47e464a26239f#file-test_uart-c-L123
This is basically polymorphism in C, and it enforces the initialization of function pointers


Ability to define "branded" types.

I am currently searching for a way to map TypeScript branded types, like https://github.com/kourge/ts-brand cleanly using specta. My current (flawed) approach is:
#[cfg_attr(feature = "wasm", derive(specta::Type))]
struct Brand<T, const MARKER: &'static str> {
    _marker: core::marker::PhantomData<T>,
}

#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize)]
#[cfg_attr(feature = "wasm", derive(specta::Type))]
#[repr(transparent)]
pub struct AccountId(
    #[cfg_attr(feature = "wasm", specta(type = Brand<Uuid, "AccountId">))]
    Uuid,
);

Which reduces to:
export type AccountId = Brand<string>
export type AddAccountGroupMember = { accountGroupId: AccountGroupId; accountId: AccountId }
export type Brand<T> = { _marker: null }

Now, this is not ideal due to several factors:

need to remove export Type Brand<T>
need to manually add import header for import {Brand} from ts-brand; (not that bad)
needs nightly support for adt_const_params, which is incomplete.
The const parameter is not carried over.

What I would love (in a perfect world) would be something similar to:
import {Brand} from 'ts-brand';

export type Uuid = Brand<Uuid, 'Uuid'>
export type AccountId = Brand<Uuid, 'AccountId'>
export type AddAccountGroupMember = { accountGroupId: AccountGroupId; accountId: AccountId }

How would I approach this problem? Any help would be greatly appreciated!

The const parameter is not carried over.

Tracked in #17. I intend to support this in Specta v2 (mostly to avoid the need for Specta v3) but it's worth noting Serde doesn't support const parameters.

need to remove export Type Brand

It's hacky but this is possible (and sadly is something we do in Spacedrive).
If you're using 2.0.0-rc.x releases you will need to use main for (https://github.com/oscartbeaumont/specta/commit/cab26b170945d9d6c885112c2f83089dd0fad914) or if your using the crates.io releases the TypeMap (previously TypeDefs) was just a BTreeMap so you can do whatever.
Getting access to the TypeMap it's not super easy right now, you would need to copy the implementation of either specta::ts::export or specta::ts::inline into your own crate based on which one you are using.
This is the sorta feature that probably needs its own higher-level abstraction outside of the specta core crate.

need to manually add import header for import {Brand} from ts-brand; (not that bad)

Right now you would have to do this manually after Specta runs. Tauri Specta has a header propery which is set by the user and is injected at the start of the file. This is something Specta should probs have too which was an oversight.
I created #202 to track this

How would I approach this problem?

I'm honestly not sure we have a way to express this at the moment. It could be done with #110 or #17 but neither are supported at the moment and both have unanswered questions about exactly how I would want them to work.

A correction to the bit about the header property only matters when using the export feature flag. The normal specta::ts::* stuff doesn't suffer that problem because it's on you to deal with the file writing.


Mark DummyBuildSystemManagerConnectionToClient.waitUntilInitialized as package

This restores the ability to build SourceKit-LSP using a Swift 5.10 compiler.

@swift-ci Please test


[FORMS] Performing transformations on CompositeFields

Calling performReadonlyTransformation() on a CompositeField loops through all the children and via transform() calls FormField::performReadonlyTransformation() on each, which in turn calls FormField::setReadonly(true).
Following this CompositeField::setReadonly(true) is called which again loops through children and calls FormField::setReadonly(true).
https://github.com/silverstripe/silverstripe-framework/blob/master/forms/CompositeField.php#L327
So, for example, to override the readonly transformation for a form field subclass both performReadonlyTransformation and setReadonly need to be overridden. And children for the CompositeField are needlessly looped over twice.
Previous behaviour was to set readonly property directly, this might have been why:
https://github.com/silverstripe/silverstripe-framework/commit/a809e80d015786bd448652f859e3d6cff6e5bc09#diff-a7b9f7ef20237f36921f5a3448ee908aL313
Probably a similar situation for performDisabledTransformation().

Still affect SS4.


Socket throttle_rate support

So I've noticed that rws doesn't support the throttle_rate param from roslibjs, which can be kind of key when trying to send over large high rate topics like pointclouds and laserscans without clogging websockets over slow wifi, plus it should result in some minor CPU usage reduction in some cases. I think this is the last feature that's missing in rws compared to rosbridge.
I'm not all that well versed in cpp, but I've done this exploratory implementation to see what it would take to get it set up. It does seem to work from what I've tested it, but it likely needs some adjustments (or should be implemented some other way entirely), test coverage and a check to see what happpens in foxglove protocol mode.

Looks good to me, I tested throttle feature with Vizanti and the basic functionality in Foxglove(there's no throttle option), the throttle works and nothing seems to be broken.
Regarding tests, I set up CTest with VSCode(CTest CLI is horrible) in Ubuntu VM, before I only had working setup on a Mac, but now my ros2 is broken there. While running the tests on Linux I noticed that one of the tests failed with a ~20-30% chance. I fixed the issue in https://github.com/v-kiniv/rws/pull/43. Outside of the tests the issue never occurred though. I also fixed CMake linter tests and compiler warnings, so you may want to pull the changes before writing tests for the throttle feature. If you don't plan to write tests, we can merge it now and I'll add them later.

Hmm well I've attempted to add a test that sends multiple messages and then expects that to be throttled to one, but ctest seems to silently hang when it gets to the subscription_callback part and I can't figure out why. Anyhow I'm not sure if it's all that crucial that this specific thing is tested, I just wanted to get a bit familiar with the setup. If you have any quick fixes for that then feel free, otherwise it's fine by me to remove it and merge.

I just wanted to get a bit familiar with the setup

Ok, so I'll be more verbose in explaining what needs to be changed and why.
The test hangs because you send an empty serialised message(basically invalid) to a ClientHandler, which tries to decode it and crash. Empty serialised message works ok in Connector tests, because there the messages are not processed in any way, pointers just passed around, and that's what the Connector tests check, if pointers are valid and match, it doesn't care about the content of the message.
Now what needs to be changed:

Move last_sent_timestamp to subscriber_handle, because topic_params is intended for static parameters, not for holding mutable state. Although not critical, it also allows a newly subscribed client to not wait for throttle, as it will have it's own timestamp, which will be 0 at the beginning.
Move the throttle logic to Connector, because it is responsible for routing messages to clients.
Replace std::chrono with rclcpp::Time and rclcpp::Duration because we need to control time in tests(waiting/sleeping in tests is a bad idea), and conveniently we have NodeInterface::now() which we can mock in tests and manipulate time. But since Node::now() return rclcpp::Time we better use appropriate types from ROS for throttle params to avoid conversions back and forth.
Move ClientHandler::subscription_callback back to private section as there's not need for it be public now.

I've tested the changes on Jazzy+Vizanti and Foxglove. Please test and let me know before I merge this to Jazzy and backport to other versions.

Re-tested the changes, seems to work well :+1:

The test hangs because you send an empty serialised message(basically invalid) to a ClientHandler, which tries to decode it and crash.

Ahh alright, I would've thought that the test runner might propagate any crashes up, but I guess that doesn't really happen, haha.

Move the throttle logic to Connector, because it is responsible for routing messages to clients

Yeah agreed, the more overhead we can remove from parsing messages that won't be sent anyway the better.
In theory we could just skip even receiving those entirely by unsubscribing for the duration of the throttle if it's larger than some notable fraction of a second and save on CPU usage, but I doubt it'll make much of a difference unless it's like a 20hz 15k point laserscan throttled to 500ms and similar, it would be tricky to implement reliably, there is some overhead in doing it.... and it might trigger multicasts on each subscribe with some DDS setups which would be rather counterproductive if this was all to reduce network load.

Replace std::chrono with rclcpp::Time and rclcpp::Duration

Well the reason I went with chrono there is the invariance to the ROS clock, since unless it's a simulated network the sockets will always run in realtime, and when reviewing bags at say 20x realtime rate or running Gazebo at 5x speed if the throttling is dependent on that it'll cause issues. Though as you say, the invariance becomes a problem for running tests.
Though I think unless the bag is specifically set up to publish --clock and RWS is launched later it should still work ok. I've briefly tested with a sped up bag now and it seems to throttle it alright, but I don't have any Gazebo setups on Jazzy yet (nor have I got it installed on a machine that could run it faster than realtime lol), so we can merge it for now and see if it's actually a problem once we can test for it.

waiting/sleeping in tests is a bad idea

Yeah I attempted doing that briefly which also crashed in the background or ctest timed out or something :stuck_out_tongue:


Fix performance issue observed on prod

Currently on prod the db seems overloaded, and looking at RDS in the AWS console, the issue is a slow running query for log_request_end().
Add an index to improve the query performance.

Fixed!!


bool as a sign flag isn't the most readable

After some discussion with others I decided I would prefer a byte (or rune) where '-' would mean negative.  Anything else might mean positive, or to keep out nonsense, maybe only the zero value, ' ', and '+' would be allowed to mean positive.
Might not hurt too much to change this.  It's been like this for some time now, but this package doesn't have any stars.  All the Meeus examples would change, but people should be able to -u.

Done.


Bump cryptography and pyOpenSSL to make CLI compatible with openssl3

Current version is not compatible with openssl3. We should do this before other OS use openssl3 as default version.
Once it's done, https://github.com/Azure/azure-cli/pull/24768 could be reverted.

Bump cryptography and pyOpenSSL


lsif-util: Fix #70 by replacing \" with " in vertex extra info sections

Cases where extra text would already contain an escaped double quote would result in the \ being escaped, causing the double quote to interfere with graphdot
Closes #70
Not tested on a variety of inputs yet, if more validation is preferred ye can hold off on merging this

@jumattos can you please have a look.

@dbaeumer Sure! On it.

@dbaeumer Build is failing here because of mocha. This project doesn't have unit tests. Do you know what's happening?


Improves Primitive Types

Closes #482 by improving the primitive types present in Langium. In particular, this PR adds the bigint built-in type, along with an associated default value converter.
In addition:

date was changed to Date to match the casing in typescript.
error messages for primitive types were updated to include bigint and Date
added default value converter for Date
modified existing tests to incorporate bigint and Date primitives
added new tests to enforce parsing/conversion behavior

There are some key points to note with this PR:

It is not recommended to parse date strings directly via the Date() constructor, but I have this in place for now as a proof of concept. I think it may be worth a little bit more work to recognize only ISO 8601 strings, or RFC 2822, a combination of the two, or some other approach that is safer. It could be as simple as deconstructing the date components and using another constructor on the Date object instead.

Booleans are still kind of odd, given that the values are either true for a successful parse or undefined, rather than true and false. In the token builder tests, I noticed a test that builds a grammar that tries to capture a false value incorrectly. Specifically,
terminal BOOLEAN returns boolean: /true|false/;

Which can parse both true and false to produce a value of true. If you try to remove false from the regex to only recognize true, you run into the awkward situation of being unable to distinguish between false and a failed parse.
Ultimately, my thought is whether I should expand this PR to allow boolean assignments to have the expected true/false values, instead of true/undefined.

Recognizing bigints is a little tricky, and so I've attempted to provide good examples in the tests of how this can be done properly. Lookahead and terminal ordering are both important to disambiguate between ints and bigints. Beyond that, they actually work pretty well!

@montymxb Small remark: With the merge of https://github.com/langium/langium/pull/469, boolean AST properties are always initialized with false instead of undefined.

@montymxb I guess the meta data generator for that is too strict. On the other hand, a union with a boolean property is quite weird from a parsing perspective IMO.

Correct me if I'm wrong here, but based on what I've seen I think actively setting of the value to false when the ?= operator is used, and the following parse fails, could resolve this particular case?

I will correct, since you are wrong ;-) The issue is that we don't know whether we will parse the ?= assignment, since it's usually optional. The AST builder inside of the parser has actually no real clue about the grammar at all, and doesn't know whether any ?= assignments belong to a certain AST node. That's why we ask the AstReflection later whether we've missed something during parsing:
https://github.com/langium/langium/blob/d5ab9378f5744abe5f7827f729e35e7ebd846e1b/packages/langium/src/parser/langium-parser.ts#L273-L283

Thanks for clarifying that point @msujew . With that in mind, I can focus on the Date aspect instead.

Thought about Date for awhile, and have decided to leave it as is. Trying to predict what the desired Date string format should be is unclear at best, as it may vary from case to case, and region to region. ISO 8601 still seems like a good choice, but I think it's best to leave targeted conversions up to the implementer, and go with the default for now.


Error using C++ in Flutter-App on iOS. - "Lexical or Preprocessor Issue (Xcode)"

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Create the reproducible sample
try to run on Android -> it works
try to run on iOS -> fail

I want to use C++ code in my app. I used C code with extern "C" to connect to the Flutter app. On Android my app works without any problems, but on iOS it fails to build.
It fails with every c++ import. I used <vector> in the example, but it fails for other imports like <cstdint> as well
Expected results
The app builds for iOS as it does with android
Actual results
The build fails with the following error message:
Automatically signing iOS for device deployment using specified development team in Xcode project: ...
Running pod install...
Running Xcode build...
Xcode build done.                                            6,8s
Failed to build iOS app
Could not build the precompiled application for the device.
Lexical or Preprocessor Issue (Xcode): 'vector' file not found
/Users/.../Documents/native_test/src/native_test.cpp:1:9

Error launching application on ... iPhone.

Code sample
https://github.com/sereksim/reproducible_sample
Logs
log-flutter_run_verbose.txt
Flutter Doctor output
Doctor output
flutter doctor -v
[✓] Flutter (Channel stable, 3.13.8, on macOS 14.0 23A344 darwin-arm64, locale de-DE)
    • Flutter version 3.13.8 on channel stable at /Users/name/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 6c4930c4ac (4 weeks ago), 2023-10-18 10:57:55 -0500
    • Engine revision 767d8c75e8
    • Dart version 3.1.4
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/name/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.14.2

[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.84.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (2 available)
    • name’s iPhone (mobile) • 00008110-001E39591E00401E • ios          • iOS 16.6 20G75
    • macOS (desktop)          • macos                     • darwin-arm64 • macOS 14.0 23A344 darwin-arm64

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Create the reproducible sample

As part of making your sample you renamed a .c file to .cpp, but are still importing it from a .c file, causing iOS to attempt to compile it as C code. It's not valid C, so it fails. If you want to use C++, you need to rename the including file as well.
Closing as the bug here is in changes made to the project after it was created from the template.


Fix the endoffset of the last glyph when it's followed by a null offset in the loca table

It fixes #17671.

/botio test

/botio test

/botio-windows test

/botio makeref


Add some new pass-through options to the TimeSeriesChart.

Overview
This branch adds a number of "pass-through" options to allow for customization of TimeSeriesChart rendering.
I've defined our own "options"  interfaces and types rather than using the Recharts ones directly.  However, the property names and types do (and must) match those of the Recharts analogs since I am just passing them along using destructuring.
There were a couple of what could be considered "breaking" changes, but only if TimeSeriesChart has been used directly from outside of the MDH-UI library.  The connectNulls property was moved and the hideDots property was moved and renamed.  The necessary updates have been made to the components within MDH-UI that were using those fields.
Security
REMINDER: All file contents are public.

[x] I have ensured no secure credentials or sensitive information remain in code, metadata, comments, etc.

[x] Please verify that you double checked that .storybook/preview.js does not contain your participant access key details.
[x] There are no temporary testing changes committed such as API base URLs, access tokens, print/log statements, etc.

[x] These changes do not introduce any security risks, or any such risks have been properly mitigated.

Describe briefly what security risks you considered, why they don't apply, or how they've been mitigated.

No security risks.  These are just rendering customization options.

Checklist
Testing

[ ] MyDataHelps iOS app
[ ] MyDataHelps Android app
[ ] MyDataHelps website

Documentation

[x] I have added relevant Storybook updates to this PR as well.

Summary by CodeRabbit

New Features

Enhanced configurability for TimeSeriesChart, allowing for custom rendering options.
Introduced a new story customizedLineChart showcasing improved data loading and chart rendering.

Improvements

Adjusted chart options structure for better organization and clarity in DailyDataChart, IntradayHeartRateChart, and SurveyAnswerChart.
Dynamic calculation of chart domains and ticks based on the current date for enhanced visual representation.

Bug Fixes

Improved handling of dot visibility in line charts, streamlining user experience.

Code looks fine - the story itself looks a little off though.  The X-Axis is in the middle of the chart and the Y-Axis way overflows.  I realize there's probably a lot of ways to pass weird combinations of arguments, but it doesn't make a great/clear story in this case?

Code looks fine - the story itself looks a little off though. The X-Axis is in the middle of the chart and the Y-Axis way overflows. I realize there's probably a lot of ways to pass weird combinations of arguments, but it doesn't make a great/clear story in this case?

Yeah, for sure.  I'll get that fixed up.
I'm actually a little stumped about it, because I know it was working previously.  I specifically added the odd domain range to show that it worked.  🤷♂
I'll see if I can pinpoint why it isn't rendering correctly now.

Ah, it has something to do with the allowDataOverflow property.  🙂   I must not have checked it again after rebasing the latest from main.
Without that property:

I'll see if I can figure out what I need to adjust to get it to work while still using that setting.

Ah, it was the min domain in my story setup.  It needed to be adjusted to fit the custom ticks.  It is working correctly now.


How to delete using Archive file

Hi, im fairly new to this. Can you explain in detail how i can use the archive to delete all of my tweets? thanks

Paste the script into the console (and add in the personalized twitter tokens for your account) after downloading your twitter archive. Unzip the archive. In the script, make sure to set "from_archive" to TRUE and it will pop open a dialogue box when you run it. Drag tweets.js from the data subfolder into the dialogue box and confirm it.


Maintenance Page Added

Closes #47

@SaraswatGit Please have a look at this.

@Aniket-508  You have to put the Maintenance page as a condition return component in the App.js because if the user is logged in he will not be able to see the maintenance page if the website is down. You need to return this inside the app.js .Also, set the initial state of the setMaintenance to false


general cleanup

None of these changes change the functionality of the code. They are all just tidying up a bit.

remove unused imports
fix typos
initialize all class attributes in init
attributes like data_interface_cls: BaseSortingExtractorInterface should be Type[BaseSortingExtractorInterface], indicating that it takes a class, not an object
remove some outdated kwargs in the test

CI is angry about something... Perhaps the __init__ changes in the mixin? Error log isn't very clear

yeah, those changes are overriding the init from TestCase

I'll revert those as well


Support different badge styles

The badge URL (eg. https://javadoc.io/badge2/io.quarkus/quarkus-core/javadoc.svg) redirects to img.shields.io, which support different badge styles (by providing the styles query parameter).
It would be nice if the Javadoc badge supported that

deployed. you can append style param directly:
https://javadoc.io/badge2/io.quarkus/quarkus-core/javadoc.svg?style=for-the-badge


inspectContainer fails with JsonSyntaxException

using "inspectContainer(containerId)" gives me
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 3798
column 3798 is beginning of the "volumes"-object of the json, but I don't see either in the json returned from server nor in your code why BEGIN_ARRAY is expected here... May you want to take a look into it or write a test on inspect with volumes bound to a container
docker endpoint versions:
Version:      1.10.1
API version:  1.22

I am getting the same errors. I'm trying to make a work around but I'm not very advanced in stuff like this. Do you have any idea how to fix this error ?

@arjenp @dstore-dbap This issue is fixed now. I will release the new version today.

@arjenp @dstore-dbap I have released version 0.2.1 which contain fix for this issue.


Streaming producer

Did you mean to open this for the main repository or was this intended to be our working review for the UX study in your fork?


CI: Encapsulate functions to reuse code

I think we can encapsulate a method ensureAdminOperationIsSuccessful, and pass the request, so that we can reuse the code base of ensureHTTPPutSuccess.
Originally posted by @tokers in https://github.com/apache/apisix-ingress-controller/pull/937#discussion_r844945283

@cmssczy Are you interested in this?

ok, pls assign to me.

Assigned

#971 fixed this one


How to hide a buffer in bufferline filetype: terminal

When opening terminal, a buffer will show the name of terminal to. How to disable this only filetype: Terminal? Thanks in advanced.

I will have a look at it soon.

I added support for a custom buffer filter function in branch feature/custom-filter-function, which I plan to merge after some testing. You can use this to hide all neovim terminal buffers:
function LightlineBufferlineFilter(buffer)
   return getbufvar(a:buffer, '&buftype') !=# 'terminal'
 endfunction

 let g:lightline#bufferline#buffer_filter = "LightlineBufferlineFilter"

I'm using vim-plug. I added this line but still can't use your snippet in this branch.
Plug 'https://github.com/mengelbrecht/lightline-bufferline.git', {'branch': 'feature/custom-filter-function'}

I merged the feature branch. The code should now work without switching branches.

I merged the feature branch. The code should now work without switching branches. Please reopen this issue if it does not work.

Thanks, it worked very well.


Fix Precision issue with Durations

CloudWatchEvents seem to return with precision 60.0 instead of 60
Change tests to match
Change types to float64

#228
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report

Merging #229 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #229   +/-   ##
=======================================
  Coverage   74.44%   74.44%
=======================================
  Files          20       20
  Lines         677      677
=======================================
  Hits          504      504
  Misses        128      128
  Partials       45       45

Impacted Files
Coverage Δ

events/duration.go
44.44% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

👍 made changes to have both in tests.

@bmoffatt You may want to merge this one as you put through the original change set. Thanks!


[MSG] Network connectivity states in Composer

UI + Relay handling of:

[x] Successful message send
[x] Unsuccessful send
[x] Unsuccessful fetch
[ ] Local storage We decided not to make this part of the MVP

For the MVP we settled on the following. On any failure:

remove the optimistic message
restore the text into the textfield

@sarahscott The changes in #757 don’t fully implement the requested design in this ticket. Maybe discuss the differences with Katarina and then decide whether to create new tickets for iterations or how else to proceed.

Doesn't #757 implement the MVP comment above?

It sure does! But not the original requirements, so before we lose track of that, only for it to be resurfaced by Katarina during QA, let’s make sure we’re all aware of it now.

Sounds good. I guess for posterity we can say that maintaining failed messages would require some sort of local storage, and that's why we decided on the textfield solution for now.

Note from standup - if there is one pending message, another cannot be sent (send button disabled)

For the MVP we decided to still have the yellow ‘pending’ message.


feat: minor disclaimer on nfs server role readme

Add a note in nfs-server readme about exported directories that must be created before applying the role

ok for me
thanks @bouriquet

ok for me
thanks @bouriquet


gitea signin with keycloak linked to wrong user

Gitea version (or commit ref): 1.4.0
Git version: git in alpine pkg repo (3.6)
Operating system: alpine 3.6 (as container in docker)
Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
I am using gitea with keycloak. I created the first admin user (local, say 'gitadmin') and then added Admin Panel > Authentications > Add new source. Authentication name = [my-keycloak-gitea]; OAuth2 provider = openid connect; client id = keycloak-gitea; client secret = [copy from keycloak]; autodiscovery url = https://[keycloak.mydomain]/auth/realms/[my-realm]/.well-known/openid-configuration
On keycloak side:

(select or create realm 'my-realm') and enter 'my-realm'
clients > create > client id = keycloak-gitea; protocol = openid-connect > save
clients > keycloak-gitea > enabled; access type = confidential; standard flow; direct access grant; valid redirect urls = https://<gitea.mydomain>/*; web origins=+;
3.1. credentials > authenticator = client id & secret; (copy secret to gitea 'client secret')
3.2 mappers > (remove from list or add using 'add builtin' so that list only contains) family name, locale, given name, email, username, email verified
3.3 scope > full scope allowed

now i create a user 'john' in keycloak 'my-realm'.
return to gitea and login:

sign in with openid connect
(redirected to keycloak) > username = john; password = ... > i am now signed in as 'gitadmin' instead of 'john'. it should be john.

just to clarify, my config here is aimed at a private setup with keycloak login. so, except perhaps for the first admin user, all other users can only sign in via keycloak. federated/social login options are already available in keycloak and i don't want them in my gitea setup.

i've found a workaround:

in gitea, sign in as default admin user.
your settings > external accounts > (remove all)
admin panel > users > create new account > authentication source = ; Authentication Login Name; Username = ; Email =
Do not add more user info. Logout now.
In a private tab, sign in as new user with open id connect.
You should be redirected to keycloak login. use the new user credentials and it should redirect back to gitea with a link external account page.
Enter password. You should now be signed in as the new user.

Have you ever figured this out? I suspect a configuration issue, because i'm having the same problem with GitLab, using Keycloak as the OAuth provider.


BUG: can start update twice

Describe the bug
If an update is available it's possible to click the "UPDATE ALL" button, etc. again after starting the update process already.
To Reproduce
Steps to reproduce the behavior:

Start update
Wait for it to start the tasks
Start update again
Update starts again

Expected behavior
Prevent user from starting updates simultaniously.
Desktop (please complete the following information):

Launcher version 1.0.0-rc.15

Node (please complete the following information):

OS: Ubuntu 22.04
Affected service: Updates

Was fixed at some point


docs: add more steps to dev guide

Add more steps to the dev guide. Specially envtest that is a constant point of support given.

/ok-to-test sha=45630062d69d80a633e9d401719a2be52d533a53

gh-script upgrade also worked

/approve

/merge


Fix Autofill example

Autofill's example throws an error because it doesn't have a Material widget ancestor, this PR fixes it.
If you try to run the DartPad snippet, you'll see a Script error. message: https://master-api.flutter.dev/flutter/widgets/AutofillGroup-class.html
cc/ @LongCatIsLooong

Thank you for catching this! The correct template to use for this should be stateful_widget_scaffold (includes a Scaffold) instead of stateful_widget_material here: https://github.com/flutter/flutter/blob/9103721ade2e2a0ce990a9a888b2964c8167e959/packages/flutter/lib/src/widgets/autofill.dart#L24

Thank you for catching this! The correct template to use for this should be stateful_widget_scaffold (includes a Scaffold) instead of stateful_widget_material here:
https://github.com/flutter/flutter/blob/9103721ade2e2a0ce990a9a888b2964c8167e959/packages/flutter/lib/src/widgets/autofill.dart#L24
Changing the template used here should suffice.

So instead of adding a Material widget to the top of the tree, replace that line?

@Zazo032 Yes! Sorry I wasn't clear.
@chunhtai it was added in https://github.com/flutter/engine/pull/17986. According to @nturgut it's not in dartpad yet. Should we use a regular sample instead of an interactive one?

Oh in that case, i think we should be fine to still keep the code example. It is weird if we take it down just to put it back at a later time.


Add short_name validation to add_bot_backend API

Fixes #5487

Codecov Report

Merging #5499 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #5499      +/-   ##
==========================================
+ Coverage   86.68%   86.68%   +<.01%
==========================================
  Files         431      431
  Lines       53461    53471      +10
  Branches     2086     2086
==========================================
+ Hits        46343    46353      +10
  Misses       7118     7118

Impacted Files
Coverage Δ

zerver/tests/test_bots.py
100% <100%> (ø)
:arrow_up:

zerver/lib/users.py
100% <100%> (ø)
:arrow_up:

zerver/views/users.py
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Could you review this?
cc: @showell @YagoGG

Merged!  Thanks @sampritipanda!  Just a nitpicky reminder to add periods to the end of the commit message.


Restructured blinding + custom messages + keep vectors

Description
This PR addresses a couple of things that were discussed in the past: Sorted outputs when swapping, as well as custom outputs. I always felt like the old BlindingData type was not ergonomic enough, so I restructured some of the blinding types and logic, moved them to their own Class and Interface. These changes are so closely related, that they became a single PR (that got a little out of hand, sorry...).
Changes

BlindingData is now called OutputData. It holds all the data required to construct an Output from a BlindedMessage and a Signature
OutputData (form. BlindingData) is no longer an Array, but now represents a single encapsulated future Proof
Wallet methods now accept a new option outputData that implements the OutputDataLike Interface. Using this consumers of the library can opt out of the automatic creation of outputs and supply their own logic.
createSwapPayload now sorts the requested outputs by amount. It returns an additional keepVector (Array) that can be used to determine which outputs are meant to be kept. It also returns a sortedIndices array that can be used to reorder the sorted outputs in their original order.
Removed some of the old blinding code. Was internal code, so no breaking changes.

PR Tasks

[x] Open PR
[x] run npm run test --> no failing unit tests
[x] run npm run format

Converted back to draft because I came up with the idea to add factories and this needs some refactoring

Edited the original PR message to reflect new changes. Review required and much appreciated!

Looks great! Just some minor nits and questions.
I don't fully understand the keepFactory and when it used. Can you elaborate a bit more on the logic behind that? My assumption is that this is used as a way to default how the user wants to store their proofs, but I think my confusion is related to my comment here

Thank you for taking the time to go through this!
The idea of the keepFactory is to provide a standard "fallback" factory to the CashuWallet instance that should be used whenever we create proofs that are supposed to be "kept" (e.g. mint, melt-change, send-change, receive, etc.).
Using this, you can create a factory that creates some sort of outputs (like deterministic ones) and make the library use is automatically. A simplistic example of a CashuWallet that creates auto-incrementing, deterministic secrets using a keepFactory can be seen here: https://njump.me/nevent1qqsvzxrfqyt5xk0s7f60mm9rlthkdtv70g3qsl8xykrgcvnfdrfpaecpzemhxue69uhhyetvv9ujumn0wd68ytnzv9hxgqg0waehxw309ahx7um5wghx6mmdqgsdmup6e2z6mcpeue6z6kl08he49hcen5xnrc3tnpvw0mdgtjemh0slwxw3x


Allow prepared statements with PDO

The Database class has switched to using PDO internally, but it doesn't expose PDOs prepared statements. Prepared statements allow safer and more powerful querying, and their usage should be encouraged.

+1

Agree, the first step of PDO has been done, which was just getting it in. Now that's done, we can try and really turn the screws to start realising the benefits of PDO. How do you want to go from here?

I'm going to implement Database::prepare. It'll have to translate table name prefixes but I think that's it really.

What is the minimum PHP version for Symphony 3?

Good question. The realistic release for Symphony 3 is probably August/September, so it'd make sense for us to mirror PHP.net's support as well. In the past we supported PHP 5.2 (and even now, PHP 5.3) for far too long simply because of poor adoption rates amongst hosts. I think the landscape has changed in recent years and there's a push for hosts to 'be better'.
Referring to PHP.net supported versions page, I think a sensible target would be PHP 5.5+ as both PHP 5.3 (already dead) and PHP 5.4 will have reached end of life.
How's that sound? If hosts don't support it, well, I think people should start to apply the pressure :+1:

It really depends on when you expect to release it, and how that sits with what PHP is doing right now.

There are no plans for PHP 5.7, PHP 5.6 will be the last PHP 5 release.
PHP 7 RCs are expected to start landing next month.
According to the only source of statistics I could find more than 40% of people are still running PHP 5.3.

Also the two largest server distributions are both going to be out of date:

Ubuntu 14.04 LTS has PHP 5.5 and the next LTS isn't until 16.04.
RHEL 7.1 (Just released) has PHP 5.4 and likely won't update for at least a year

I think that realistically users of both distros are going to have to install alternative PHP packages in the near future to get the most recent version, so I suggest we just worry about what we need for development.

I'm mostly on VPN's nowadays so can make the move up. I guess it will also
put pressure for people to keep updating their client's sites not keep
running a legacy symphony version because they can have 5.3 running on all
systems.
On Wed, 13 May 2015 at 13:00 Brendan Abbott<EMAIL_ADDRESS>wrote:

Good question. The realistic release for Symphony 3 is probably
August/September, so it'd make sense for us to mirror PHP.net's support as
well. In the past we supported PHP 5.2 (and even now, PHP 5.3) for far too
long simply because of poor adoption rates amongst hosts. I think the
landscape has changed in recent years and there's a push for hosts to 'be
better'.
Referring to PHP.net supported versions
http://php.net/supported-versions.php page, I think a sensible target
would be PHP 5.5+ as both PHP 5.3 (already dead) and PHP 5.4 will have
reached end of life.
How's that sound? If hosts don't support it, well, I think people should
start to apply the pressure [image: :+1:]
—
Reply to this email directly or view it on GitHub
https://github.com/symphonycms/symphony-2/issues/2425#issuecomment-101628249
.

How's that sound? If hosts don't support it, well, I think people should start to apply the pressure

I already switched my hosting provider for new projects since my old provider only started "upgrading" to PHP 5.4 recently, while most other providers offer PHP 5.6

Isn't it a PITA if you had to move a ton of small sites from one shared hosting to another? One I use called Heart Internet are good shared hosts and seem to upgrade PHP but what if they stop :panicface
There's a lot of small businesses round here and it's nicer for me to use Symphony than it is needed for their site functionality.

That said, it's important to update PHP once the security patches for the version you're using stop. Older Symphony sites should be forwards compatible with the newest version.
And it's also important to improve our code with the improvements that PHP 5.5 and 5.6 offer.

@psychoticmeow I had a look and I can choose up-to PHP 5.5 on my hosting at the moment so it looks like they're keeping up.  My clients own hosting thinks 5.4 is bleeding edge so that'll have to stay on the old versions. I use few extensions that aren't core so that's not too bad for me.

I would say php 5.4+, sadly.

So... we're going to target PHP 5.4, a release that is about to run out of support for a project that's due to be released when exactly?
We should at least be targeting 5.5, it brings a lot of improvements, but generators alone would make it worth our while.

IMO, we as a team can no longer afford to 'play it safe' and target an end of life PHP version. I run a lot of servers now, and the ones that are PHP 5.4 and lower keep me awake at night as they are no longer receiving security updates.
As a software package, we should be pushing forwards and targeting the minimum of 5.6. By the time Sym 3.0.0 is released, we should probably be targeting higher than that.
I'm sorry to say, and I don't mean to aggravate anyone here, but if you are concerned about not being able to run Symphony on a shared host because they only have 5.4, then your concerns should be with the hosting company not being willing to secure your application for you by providing a patchable environment. Move hosts.

Remember too guys, Symphony 2 is a great piece of software. We should support it for security for x number of years, but Symphony 3 needs to move on, and adopt new paradigms. There will be big changes in the core; There already are, and it will need a more robust future proofed version of PHP behind it.
Please don't hold the scope of what can be done back by worrisome pandering to bad shared hosts. They are killing the PHP market, and we should try to be part of the modern PHP movement by pushing past these dinosaurs and adopting some of the amazing advances in PHP.

As far as I have seen, even Debian (which is surely not the fastest distro in adopting new versions) has moved to 5.6 with Debian 8 (Jessie), so I agree.

As far as I have seen, even Debian has moved to 5.6 with Debian 8 (Jessie)

Correct: https://packages.debian.org/en/jessie/php5

we should be pushing forwards and targeting the minimum of 5.6.

:+1:

if you are concerned about not being able to run Symphony on a shared host because they only have 5.4, then your concerns should be with the hosting company not being willing to secure your application for you by providing a patchable environment. Move hosts.

:+1:

I'm on the same lines with John - I don't think Symphony 3 has to stay
stuck with php 5.4, anyway it's not like there's a release tomorrow. + I
think anyone would owe it to their clients especially if you're including
'security updates' to be on a decent version of php.
On Wed, 20 May 2015 at 13:38 michael-e<EMAIL_ADDRESS>wrote:

As far as I have seen, even Debian (which is surely not the fastest distro
in adopting new versions) has moved to 5.6 with Debian 8 (Jessie), so I
agree.
—
Reply to this email directly or view it on GitHub
https://github.com/symphonycms/symphony-2/issues/2425#issuecomment-103853379
.

Yeah, as I mentioned originally, I think PHP 5.5+ minimum. For those who can't upgrade the environment, don't upgrade to Symphony 3. We got burnt hard by supporting PHP 5.2 for as long as we did, it'd be nice to avoid that again.

I'm the serial whiner about shared hosting and I agree now, having had the situation explained the other day. It's some clients that have their own shared hosting that'd be a problem but you're right, if they want more features they can upgrade.
I must say though, "just move hosts" is a bit easy sounding; but there's around 100 domains here on a shared host with several email accounts each. It'd be a job of work moving it right?

it would need planning, definitely. I had to move an entire datacenter not to long ago. It took two weeks with all the DNS changes, prepping the new servers etc. If they're all on the same server, not too big a job, just plan DNS switches carefully.

Cheers John, I'd started wondering if I was missing some secret shortcut.

It's a clients own shared hosting account, not like me moving some of my own clients around where I could do it case by case.

You all have valid points and did convince me to move forward. I guess it will be time to buy new servers then ;)
What was bugging me the most was that some old version of Symphony (Remember 2.1, 2.2) could not run on newer php versions.
If we decide to follow php's newest versions, we should make sure that the maintenance release makes it possible to run them on the new versions as well.

If we decide to follow php's newest versions, we should make sure that the maintenance release makes it possible to run them on the new versions as well.

+1. BTW, does Sym 2.6.x run flawlessly on PHP 5.6?

does Sym 2.6.x run flawlessly on PHP 5.6?

From what's I've tested yes. But was never able to run 2.2.x with php5.3 and do not want that again.


chore: support complex resource identifiers

Add support for the non-slash resource name separators. That is, "-", "~", "_", ".". These changes are needed for gapic-generator.
Relevant issue here.

Responding to @vam-google's comment:

Mixing up the existing "/" and complex resource ID delimiter parsing logic risks introducing error edge cases. For example, if someone passes in projects/{project}-zones/{zone_a}/{zone_b} where they meant projects/{project}/zones/{zone_a}-{zone_b}, the former could result in a valid parsing under the mixed implementation. Not only would we require additional logic to separate out literals and IDs (which could become even more complex), we'd risk having literals being parsed in as IDs, and vice-versa.
One advantage of the current set-up is that it's easy to isolate and toggle complex resource ID parsing on/off, or add in a whitelist for the relevant clients if that becomes necessary.

PTAL at the comment here.


No code signature found - Add Flutter to existing apps, iOS real device issue, Xcode Version 10.1

After doing everything listed here:
https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps
I get:

when trying to run app on any real device.
On simulator, it all works as expected.
On Android side, everything goes smoothly, also!
Steps to Reproduce

Create simple iOS project(Swift) in the same folder where the flutter module is
Initialize CocoaPods and change Podfile to

# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'
# use_frameworks!

flutter_application_path = '../flutter_comment_wall/'
  eval(File.read(File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')), binding)

target 'hostiosapp' do

end

pod install

add those

"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed

to BuildPhases Run Script
5. Make simple button and onClick listener to open FlutterViewController
6. Build successful, after I set:

without this, i get a linking error.
ld: '/Users/jelenalecic/Library/Developer/Xcode/DerivedData/hostiosapp-ahpyodppdcdpvkbrkpickvrsdqea/Build/Products/Debug-iphoneos/FlutterPluginRegistrant/libFlutterPluginRegistrant.a(GeneratedPluginRegistrant.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file '/Users/jelenalecic/Library/Developer/Xcode/DerivedData/hostiosapp-ahpyodppdcdpvkbrkpickvrsdqea/Build/Products/Debug-iphoneos/FlutterPluginRegistrant/libFlutterPluginRegistrant.a' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

App installation failed, No code signature found

Signing is set to automatically

Device that I'm currently using is an iphone 8, iOS 12.1
flutter doctor:
[✓] Flutter (Channel beta, v0.11.3, on Mac OS X 10.13.6 17G65, locale en-US)
    • Flutter version 0.11.3 at /Users/jelenalecic/projects/flutter
    • Framework revision 72bf075e8d (4 days ago), 2018-11-09 20:36:17 -0800
    • Engine revision 5646e86a6f
    • Dart version 2.1.0 (build 2.1.0-dev.9.3 9c07fb64c4)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/jelenalecic/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 30.0.1
    • Dart plugin version 181.5656
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] Connected device (3 available)
    • SM C7010            • d571e02b                                 • android-arm64 • Android 8.0.0 (API 26)
    • Jelena’s iPhone (2) • ac1e7e4b9bc055e0c4ff05c3bcbe64e189b6480e • ios           • iOS 12.1
    • iPhone 7            • 9DC8517E-E336-4BF8-A2C6-9A65DC0DB063     • ios           • iOS 12.1 (simulator)

• No issues found!

I believe it must be some binding issue with podhelper.rb, 'cos i have to  switch off manually Enable Bitcode, to be able to build the app.
I have tried everything I could think of. Please help :)
Thanks!
@dnfield

@jelenacarnegie
Yes, as Flutter.framework doesn't contain bitcode, you have to disable the bitcode setting for the target's buildsetting.

Besides, when you specified a DEVELOPMENT_TEAM in your build_settings, flutter will respect it.
If you specified one, can you make sure that the code-signing works fine from Xcode using your personal team?

@kangwang1988
It works fine for other apps(without flutter module).
I haven't done anything different than usual.

The process should have automatically disabled bitcode for you, but probably doesn't handle some situations.
Can you take a look at your .xcconfig files and make sure you have a line that says ENABLE_BITCODE=NO in the relevant one(s) for this target.
Alternatively go through all your targets and make sure that Iis set.  Right now that seems like your primary issue.  If that is done and you're still having signing issues there may be another issue, but hopefully you get better output once bitcode is disabled for all targets.

@dnfield
I've disabled it in Xcode

and in Android Studio in files:

but still the same :/

Can you tell me the values of the $EXPANDED_CODE_SIGN_IDENTITY_NAME and $CODE_SIGN_IDENTITY for the run script build phase that runs xcode_backend.sh?

@dnfield
I'm sorry, but I don't know how to get those values.
I see them there(...flutter/packages/flutter_tools/bin/xcode_backend.sh):

...but I'm not sure how to debug this file, cos it's outside of my ios project.
I'm an android developer and I would probably need some help from my iOS colleagues :)

If you click on the small icon at the end of the highlighted line, it should expand and show you all the environment variables it's setting.  My suspicion is that these aren't getting set and so we're not signing App.framework/Flutter.framework for you, resulting in this error.

Argh.  I'm reproducing this locally.
Temporarily, if you comment out lines 370 and 373, it should work again.

@dnfield
yay! it's working!
thanks for the quick response/fix.

I have this error:
=== BUILD TARGET Pods-Runner OF PROJECT Pods WITH CONFIGURATION Release ===
    ld: '/Users/ies/Desktop/work/ntop/ivo_lite/build/ios/Release-iphoneos/Reachability/libReachability.a(Reachability.o)' does not contain bitcode. You must
    rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file
    '/Users/ies/Desktop/work/ntop/ivo_lite/build/ios/Release-iphoneos/Reachability/libReachability.a' for architecture arm64
    clang: error: unable to execute command: Segmentation fault: 11
    clang: error: linker command failed due to signal (use -v to see invocation)

How can I fix it?


Why TypeScript as peer dependency?

Summary
Why TypeScript as peer dependency?
https://github.com/carbon-design-system/carbon-for-ibm-dotcom/blob/c2e99ca87ef13274577df9ae7b861a0e47f6f82d/packages/web-components/package.json#L265-L267
We have an issue with that:

Relevant information
No response
Name and organization
IBM
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate issues

Maybe there is something I don't know, but just in case I send the PR:
https://github.com/carbon-design-system/carbon-for-ibm-dotcom/pull/9045

Hi @abdonrd, it would be for the exact reason you are showing in your terminal output – to alert users that a specific version of Typescript is needed to use this package at runtime. It looks like you are using a different version in your project?

Hi @abdonrd, it would be for the exact reason you are showing in your terminal output – to alert users that a specific version of Typescript is needed to use this package at runtime. It looks like you are using a different version in your project?

Mmm but why? TypeScript it's only used for build the package before publishing to npm.
When you download the npm package, you only use the JavaScript files.

From another conversation:
To import a component such as:
@carbon/ibmdotcom-web-components/es/components/button/index.js
@carbon/ibmdotcom-web-components/es/components/button/button.js
You don’t need TypeScript... it’s a simple JavaScript file.


OLS-1093: Enable hermetic build for the rag-content component

Enable hermetic build for the rag-content component
JIRA: https://issues.redhat.com/browse/OLS-1093

/retest

/retest

/retest

/approve
/override "Red Hat Konflux / ols-enterprise-contract / lightspeed-rag-content"

@asamal4 could you review and lgtm this, please?
In order for the build to be hermetic, this prefetches Python packages, a few rpms as well as the embedding model's blob.
https://konflux-ci.dev/docs/how-tos/configuring/prefetching-dependencies/#enabling-prefetch-builds-for-rpm and
https://github.com/containerbuildsystem/cachi2/blob/main/docs/generic.md are the background on the rpm and generic fetchers in Cachi2.


DELTA source resolution is brittle when serving Spark SQL through Hive Thrift server

Bug
Describe the problem
We run sqls to create TABLEs etc with ... USING DELTA directive. It works ok for the first time, but in the subsequent run, or if there was an error in the previous run, DELTA name fails to get resolved. If I fully spell out ... USING org.apache.spark.sql.delta.sources.DeltaDataSource, then the statement still works.
Steps to reproduce
I run Spark SQL thrift server programmatically from PySpark:
# with delta-spark==2.0.0 and pyspark==3.2.2

from pyspark import SparkContext
from pyspark.sql import SparkSession

sc = SparkConf()
# Install JVM packages.
sc.set("spark.jars.packages", ",".join([
    "org.apache.hadoop:hadoop-aws:3.2.2",
    "io.delta:delta-core_2.12:2.0.0",
]))
# Enable DeltaLake.
sc.set("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
sc.set("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
# Set AWS S3 related options.
sc.set("spark.hadoop.fs.s3a.endpoint", "s3.us-east-2.amazonaws.com")
sc.set("spark.hadoop.fs.s3.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
sc.set("spark.hadoop.fs.s3a.aws.credentials.provider", "com.amazonaws.auth.DefaultAWSCredentialsProviderChain")
# We have hive standalone metastore 3.0.0 running:
sc.set("hive.metastore.uris", "thrift://localhost:9083/datalake") \
        .set("spark.sql.warehouse.dir", "s3://data-hive/")

ss = SparkSession.builder.master('local[*]')\
    .enableHiveSupport() \
    .appName("delta_test").config(conf=sc).getOrCreate()

# Launch thrift server:
from py4j.java_gateway import java_import
java_import(ss._jvm, "org.apache.spark.sql.hive.thriftserver.HiveThriftServer2$")
hfs2_clazz=ss._jvm.java.lang.Class.forName("org.apache.spark.sql.hive.thriftserver.HiveThriftServer2$")
runner=hfs2_clazz.getDeclaredField("MODULE$").get(None).startWithContext(ss._jsparkSession.sqlContext())

from time import sleep

while runner.getServiceState().name()=="STARTED":
    sleep(5)

This runs thrift server at port 10000. Now, in a separate process, we fire the query (with SQLAlchemy's hive directive support):
CREATE TABLE IF NOT EXISTS datalake.tbl1 (
    a STRING,
    b BIGINT,
    c STRING
)
USING org.apache.spark.sql.delta.sources.DeltaDataSource
PARTITIONED BY (a)

Observed results
SQL scripts run fine as is. However, if I change to ... USING DELTA ... as suggested by the documentation, after the first success run, I see an error:
java.lang.ClassNotFoundException:
Failed to find data source: DELTA. Please find packages at
http://spark.apache.org/third-party-projects.html

	at org.apache.spark.sql.errors.QueryExecutionErrors$.failedToFindDataSourceError(QueryExecutionErrors.scala:443)
	at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:670)
	at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSourceV2(DataSource.scala:720)
	at org.apache.spark.sql.catalyst.analysis.ResolveSessionCatalog.org$apache$spark$sql$catalyst$analysis$ResolveSessionCatalog$$isV2Provider(ResolveSessionCatalog.scala:641)

...

Caused by: java.lang.ClassNotFoundException: DELTA.DefaultSource
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at org.apache.spark.sql.execution.datasources.DataSource$.$anonfun$lookupDataSource$5(DataSource.scala:656)

Expected results
I expect USING DELTA to be working just fine as long as the server is running.

Further details

Environment information

Delta Lake version: 2.0.0
Spark version: 3.2.2
Scala version: 2.12
Python version: 3.10

Willingness to contribute
The Delta Lake Community encourages bug fix contributions. Would you or another member of your organization be willing to contribute a fix for this bug to the Delta Lake code base?

[ ] Yes. I can contribute a fix for this bug independently.
[x] Yes. I would be willing to contribute a fix for this bug with guidance from the Delta Lake community.
[ ] No. I cannot contribute a bug fix at this time.

This looks like a Spark thrift server issue about --packages support similar to #1332. Maybe create an issue on https://issues.apache.org/jira/browse/SPARK and ask the Spark community to check the class loader used by Spark thrift server?
Could you try to put delta-storage-2.0.0.jar and delta-core_2.12-2.0.0.jar into the jars directory under spark and see if this fixes the issue?

We use thrift server and create tables the same way, with jars backed inside spark image and provided to spark as @zsxwing suggested. No issues with delta 1.1.


Relocate Env and EnvTrait to equip/config

Env and EnvTrait were moved to in equip/config#2 and released as equip/config:1.0.2

👍


Combine nickserv and sasl modules

They do the same thing - authenticate user on network. Why people have to choose which of them to use? Especially, when they don't know what SASL is, they are more likely to enable nickserv instead of sasl, even if networks supports SASL.
Anything I'm missing?

So combine them into one module, say servicesauth, that then lets the user set an authmode and password (and username if needed)? Sounds fine.

Duplicate or at least closely related to https://github.com/znc/znc/issues/786 or even makes it a duplicate?

It's not a duplicate, but it's related.


Update dnx to beta7

Also update xunit-related packages to work with VS2015.

Note: previous xunit-packages did not populate test-suite within VS2015. Command-line runner worked, however.

Ref. https://github.com/xunit/xunit/issues/559#issuecomment-135482427 for the xunit -> dnx beta7 issue.