Resource that uses with_run_context does not trigger notifications

Description
If you write a custom resource that uses the accumulator pattern via with_run_context and edit_resource or find_resource the resulting resource does not trigger any notifications for the custom resource.
Chef Version
Chef 12.16 & 13.8
Platform Version
Tested on Ubuntu 14.04 and 16.04 with both of the above chef client versions.
Replication Case
Create an accumulator, we'll call this one aliases:
property :address, String
property :recipients, Array

action :add do
  with_run_context :root do
    edit_resource(:template, "/tmp/aliases") do |new_resource|
      source 'aliases.erb'
      variables[:aliases] ||= {}
      variables[:aliases][new_resource.address] ||= []
      variables[:aliases][new_resource.address] += new_resource.recipients
      action :nothing
      delayed_action :create
    end
  end
end

Then in a recipe, consume the resource and try to attach a service reload signal:
service 'mailserver' do
  supports reload: true
  action :nothing
end

foo_aliases do
  address 'bar'
  recipients ['baz', 'quux']
  notifies :reload, 'service[mailserver]'
end

After foo_aliases converges at the end of the chef run, the service will not be signaled at all.
Workaround
A workaround does not exist (to my knowledge) as the sub-resources that are created via find/edit resource do not mark the returned resource as updated.

I think this is the correct behavior. The resource you are editing it not running inside the action so no notifications should be generated. It will generate notifications in the context it actually runs in.

@coderanger it might be correct, but it's certainly surprising and also not what one would expect on seeing just the recipe code.

Indeed, it feels like the resulting behaviour here is definitely surprising, even if it is as coded.

I think we have all possibly just internalized the pattern a tad too much :) I think we should lean in the direction of seeing edit_resource should be seen as a "oh god what fresh hell is this"-level hack any time it is used (even if there isn't always a better option).

This is the way we're recommending people build accumulator-esque resources, so I don't think that's practical. Either:

edit_resource is bad, and hence we should build an api to wrap up the accumulator dance as seen as bad - which requires planning, and we should really do for 14 and backport in to 13 ASAP - which can then bubble up notifications, or
edit_resource is here to stay with this pattern, in which case this is a bug that needs fixing.
Either way, there is a problem here that we need to deal with.

I mean I don't think edit_resource is bad, but I think its use should indicate you are doing Advanced Things so that you are willing to take responsibility for these kinds of edge cases. I don't think the semantics here are simple enough that there is one answer. In this particular use case, the expected behavior is probably to signal update? on every accumulator resource if any is updated, but there are lots of use cases of edit_resource where that isn't the case. If we want to gold-plate the accumulator use case then yes, we should make an API for that in particular, but we've been trying to do that for years and the problem is still that everyone has a different idea of how accumulators should work.

After sleeping on it and thinking about it deeper, I realize the problem stems from how edit_resource handles managing the resource collection. The missing piece here to me seems to be something on the order of an interface. One that the resource can apply and attach notifications to it's managed resources should you end up in this land of crazy that I ended up in. Something like a method that will interrogate the custom resource invocation for any attached notifications and allow you to re-apply those to a given sub-resource.
What I believe is happening here is that because edit_resource is manipulating a resource during execution, it's being shoved to the bottom of the stack and thus won't actually execute and return @updated as true which would then trigger bubbling up of notifications.

i'm completely confused as to how the workaround actually works.  that if t.updated happens at compile time during the provider/action run so it doesn't know anything about the delayed action running or not.  that should always be false within the provider, if its ever true then something weird is going on and the accumulator resource is being fired eagerly within the provider and that means that you're not getting lazy accumulator behavior, which is probably buggy.
and this has nothing to do with the edit_resource / with_root_context API as far as i can tell.  what you want is some way of taking the notifications off of the custom resource and reattaching them to the edited resource.
the first thing i'd suggest is that since its an accumulator it makes zero sense at all to hang notifies off of a fraction of your state like that.  to be at all correct that means that every accumulator call will need to have the notification copypasta'd to it.  that suggests that the notification needs to be hung off of the edit_resource directly and just made 100% the responsibility of the accumulator code and not exposed to the consumer of that API.  if you really want that flexibility there's nothing stopping you from having a property :notify_on_change, Hash which takes { resource => action } pairs and then have the edit_resource add the notifications to the resource.  i'd also suggest making sure that you had a hook to simply do injection of notifications without updating the aliases at all -- so either make sure the resource works in a "null" case without any aliases and just hanging notifications off of it, or else just make a separate 'accumulator' which took notification arguments and applied them to the accumulated resource.  really this is some kind of dependency injection API.
there's a possible feature request here for some way to pull the notifications off of the wrapping resource and apply them to the resource being built.  but doing that by default in any sort of general case would be insane magic since accumulators that themselves create multiple resources wouldn't want all the wrapping notifications applied to every accumulated sub resource.
generally, though, i think this is screaming out that its the wrong pattern and the user needs to not be responsible for that and this is going down to wrong path to tactically fix something that needs to be fixed with a different approach.  its possible that chef needs better DI support in core to better deal with this, but that would just render this a symptom of a larger problem that is in no way a bug with edit_resource and needs to be addressed at a much higher level ("poise in core or something else").
anyway TL;DR no bug in edit_resource here, really not the right way to do this, you can still do it with properties manually if you really really want to, and nothing we need to worry about with Chef-14.

I've removed my workaround as I realize it does not work. Doing a debug log of the resource objects upon inspection reveals that the returned resource from with_run_context and edit_resource don't change the updated flag which is what I am guessing is chef's trigger for notifications.

what we should probably do is allow custom resources to fire an exception and crash if any notifications are hung off of them, because hanging a notification off of an accumulator is semantically crazy to the end user:
foo_aliases do
  address 'bar'
  recipients ['baz', 'quux']
  notifies :reload, 'service[bar]'
end

foo_aliases do
  address 'baz'
  recipients ['baz', 'bob']
  notifies :reload, 'service[baz]'
end

what should the end user expect that does, because it looks to me like if you update the bar address it only bounces bar, while if you update baz it bounces baz, and that is never, ever going to be supported by accumulators.  you'll get accumulated notifications and if any edit is done all the notifications will fire.
honestly think hanging notifications off accumulators is just "that's wrong don't do that".

what should the end user expect that does, because it looks to me like if you update the bar address it only bounces bar, while if you update baz it bounces baz, and that is never, ever going to be supported by accumulators. you'll get accumulated notifications and if any edit is done all the notifications will fire.

Isn't the current behavior to only fire one notification even if multiple are queued?

honestly think hanging notifications off accumulators is just "that's wrong don't do that".

I disagree - because you're still going to want to be able to hang a notification off the final state of the resource, for instance if you accumulate a bunch of config blocks in to a file you'll want to restart the service that reads that file at the end.
Of course there are some edge cases there (:before or :immediate should never be allowed, for starters), but users are going to expect this to work.

different notifications there though...   one is service[bar] one is service[baz].
we will get bug reports that "i only hug the restart of service[bar] off of the resource that added bar, why did baz get restarted?"

we will get bug reports that "i only hug the restart of service[bar] off of the resource that added bar, why did baz get restarted?"

and we will close them with "because you told us to do so"

different notifications there though... one is service[bar] one is service[baz].

Ah I misread, but I still stand by my previous statement as signaling both doesn't seem like strange behavior to me. If I did this on a chef core resource it would still do the same thing.

if you look at iptables we just do that work for the user:
https://github.com/chef-cookbooks/iptables/blob/master/resources/rule.rb#L43
that's the common pattern to follow, where the accumulator is responsible for setting up its own notfiications.
similarly here if you update the aliases, you should always rebuild the aliases.db and i don't understand why that needs to be an interface.
if there's a better use to to highlight it, it might help a lot.
still this is not an edit_resource/with_root_context bug though.   at most it looks like an enhancement to edit_resource(:template, "/tmp/aliases", apply_wrapping_notifications: true) do ...

So should I write an RFC for this particular thing?
In the mean time I'll offer up a doc patch to the official discussion about accumulators to note this particular quirk.

@martinisoft what is the criteria for the custom resource to say that it's updated? is it that it edited the resource it wraps? or the resource being accumulated was updated?

@martinisoft what is the criteria for the custom resource to say that it's updated? is it that it edited the resource it wraps? or the resource being accumulated was updated?

The resource being accumulated was updated. Right now both methods in that block return the resource, but don't flip the updated bit and rightly so since it hasn't actually taken action yet. The resource is being fully assembled, then it is executed. By this point there is no context for the accumulated resource to signal back to it's original caller that it updated or not. So I'd want a way for the accumulated resource to have a callback to signal to it's original parent that it changed and thus will queue any notifications originally attached.

editing the resource will happen on every run, it should happen every time the accumulator is called, so it doesn't seem like that would make much sense to me.  modifying the resource on the resource collection isn't modifying the system state.  that's why edit_resource isn't a resource itself, doesn't update the updated_by_last_action status and doesn't fire notifications on editing resources.  that's also consistent with the way that accumulators have always been written -- dating back to when you had to use definitions to implement them (although you didn't really, but there was a lot of ceremonial diving around in core chef you had to do).

in this case then wrapping the whole thing in converge_by should be enough since updating the resource being accumulated is always updated. There's no sense of idempotence in accumulation
converge_by  ... do
   with_run_context ...
...
...
  end
end

@aespinosa Except there is, but you can't tell until all accumulated resources are checked against the system. Which means notifications in any individual one are at best complicated, which is why I don't think there is a single obvious semantic to use here.

in this case then wrapping the whole thing in converge_by should be enough since updating the resource being accumulated is always updated. There's no sense of idempotence in accumulation

That works, but it'll signal every single time though regardless which is overkill. It's my understanding that converge_by will always trigger an update regardless of the block actually changing. While edit_resource does modify a resource the resulting resource may end up matching what is in the original attribute data and thus won't need an update.

This pattern:
foo_aliases do
  address 'bar'
  recipients ['baz', 'quux']
  notifies :reload, 'service[bar]'
end

foo_aliases do
  address 'bar'
  recipients ['quux', 'corge']
  notifies :reload, 'service[baz]'
end

Results in:
foo_aliases do
  address 'bar'
  recipients ['baz', 'quux', 'quux', 'corge']
  notifies :reload, 'service[bar]'
  notifies :reload, 'service[baz]'
end

And if the above has executed in a previous run, it should return false for updated since it has previously changed the resource.

i guess it entire depends on the accumulation code
     variables[:aliases] ||= {}
      variables[:aliases][new_resource.address] ||= []

Can probably be translated to some if ...else converge_by incantation.  .     variables[:aliases][new_resource.address] += new_resource.recipients`  is not idempotent at all and should always trigger an update then. some more idempotence check should probably be made there

Notifications are already a callback queue though, with de-duplication. If you start calling back to notifications in prior resources then it feels like you're building meta-notification and will need to meta-de-dup to avoid bouncing services multiple times. You probably want to take the notifications on the accumulator call and apply them to the resource being built and let the notifications just deal with de-up and other features normally.

That is what I'm asking for. I want a way for the accumulated resource to eventually return a correct state of updated_by_last_action so the normal signaling applies from the parent custom resource. Otherwise having a helper method in the parent custom resource that can re-apply it's given signals down to the accumulated children then this will happen magically. We'd have to note that immediate or before notifications can't fire this way since the accumulated resource seems to get pushed to the bottom of the stack.

Something like new_resource.notifications which would go into the edit_resource block could work.

I'm certain you can hack it up with raw ruby to work right now...

more or less this approach, if you fix all the bugs i've certainly written:
r = with_run_context { edit_resource { .... } } # this is the resource we're building
notifications = run_context.parent.delayed_notification_collection[new_resource.declared_key]  # get all the notifications off the new_resource
notifications = notifications.map { |n| Notification.new(n.resource, n.action, r) }  # convert them to notifications from the resource we're building (being careful about not mutating the existing notifications)
notifications.each do { |n| run_context.root.notifies_delayed(n) }  # apply to the root run context where we're building the accumulated resource

It just dawned on me that the probably cause of this insanity is delayed_action which is effectively making notifications async from the original context so it won't return until the very end of the run, but by then it's too late for the wrapping resource.

if you want your accumulator to be able to be called from other custom resources, though, then you need to delay the action until the end of the run, so that's the correct way to write a lazy/delayed accumulator.
there's another way of writing an accumulator which is an eager-compile-time approach that i used for multipackage but that suffers from the problem that it only accumulates in each parent context's compile mode.
so if you call multipackage in recipe code those all get merged into one.  if you have a custom resource that calls multipackage that is entirely separate and all the multipackage calls in that custom resource will get accumulated and will run once.  there's no merging across run_contexts or up the stack.  and in that case you use with_run_context :parent and you just accept that it can't be perfect.  the reason to do it that way is that most of the time what you want with packages is to coalesce them across recipe code and do one thunk very early in the run in order to install everything, and delayed installation of packages to the end of the run is going to be what nobody wants.  so it has to be eager in order to be at all useful, and the weird breakage from calling inside of child run_context's just has to be accepted.
for most accumulators they need to be delayed so that they can be called from custom resources in addition to being called from recipe code.
there's a crazy edge case of delayed notifications in the outer run context which call this kind of lazy accumulator which would construct a kind of arms race to lazy things to the end of the run, which thankfully i've never seen come up in practice (i.e. if you sent a delayed notification to a foo_aliases call from the outer run context, that would be a bit crazy...)

And a sort of pseudo-diagram:
*  outer run context's compile mode runs
*  outer run context's converge mode starts
    * some internal chef resources might run
    * the first custom resources compile mode runs
    * the first custom resources converge mode runs
    * [....]
    * the last custom resources compile mode runs
    * the last custom resources converge mode runs
    * maybe a couple more internal chef resources run
* outer run_context's delayed notifications fire

if that last custom_resource's provider could have a foo_aliases call in it, then you need to delay the editing of the template to the delayed notifications phase, or else at some point in the run you'll write out a partial template, then you'll call that last custom_resource with the foo_aliases call in it, and even if you :create the template again you'll thrash the system state.   the only place that you can be ensured that all the provider code in all the custom resources in the run have complete, so all the accumulated state is accumulated, is during delayed notifications.

Closing this as it is way too much work for way too much of an edge case and my recommendation is to never do this.  I haven't seen a compelling argument that this is the only way to get the work done.


Executing mvn spring-boot: run leads to error

Hello CAP colleagues,
we are using the cloud-cap-samples-java project in a test scenario to generate a Fiori elements List Report application authors. But currently running mvn spring-boot:run ends in an BUILD SUCCESS, but in the output an error is visible and preview is not available.
As prerequisites the guide Getting started was followed:

Platform is Mac-based, SAPMachine11/19, cds, and maven 3.8.6 installed.

Could you please advise on how to resolve this issue?
Part of Error log:
ERROR 27614 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'ratingCalculator' defined in file [__path__/cloud-cap-samples-java/srv/target/classes/my/bookshop/RatingCalculator.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #163 of URL [__path__/cloud-cap-samples-java/srv/target/classes/schema.sql]: CREATE TABLE my_bookshop_Books ( ID NVARCHAR(36) NOT NULL, createdAt TIMESTAMP_TEXT, createdBy NVARCHAR(255), modifiedAt TIMESTAMP_TEXT, modifiedBy NVARCHAR(255), title NVARCHAR(111), descr NVARCHAR(1111), author_ID NVARCHAR(36), genre_ID INTEGER, stock INTEGER, price DECIMAL(9, 2), currency_code NVARCHAR(3), rating DECIMAL(2, 1), isReviewable BOOLEAN NOT NULL DEFAULT TRUE, PRIMARY KEY(ID) ); nested exception is org.h2.jdbc.JdbcSQLNonTransientException: Unknown data type: "TIMESTAMP_TEXT"; SQL statement:
CREATE TABLE my_bookshop_Books ( ID NVARCHAR(36) NOT NULL, createdAt TIMESTAMP_TEXT, createdBy NVARCHAR(255), modifiedAt TIMESTAMP_TEXT, modifiedBy NVARCHAR(255), title NVARCHAR(111), descr NVARCHAR(1111), author_ID NVARCHAR(36), genre_ID INTEGER, stock INTEGER, price DECIMAL(9, 2), currency_code NVARCHAR(3), rating DECIMAL(2, 1), isReviewable BOOLEAN NOT NULL DEFAULT TRUE, PRIMARY KEY(ID) ) [50004-200]
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229)

Hi @johannes-kolbe , we fixed this issue in the main branch, please pull from main and retry.


Refactor for Vue 3 migration

Dependent on:

https://github.com/rancher/dashboard/issues/12188

This will refactor the codebase to be compliant with Vue 3 and Rancher v2.10.0.
Changes

Updated Node engine to version 20
Updated/Added necessary dependencies:

@rancher/components: ^0.3.0-alpha.1
@rancher/shell: ^3.0.0-rc.9 -- Needs to be updated when @rancher/shell version 3.0.0 is released
ag-grid-vue3: ^32.3.0
core-js: 3.25.3
eos-icons-vue3: `^1.1.0
floating-vue: ^5.2.2
vue-datepicker-next: ^1.0.3
@babel/preset-env: ^7.24.7

Added dependency resolutions:

@types/node: ~20.10.0

Used the @rancher/extension migration script to make the modifications to all vue files.
Bumped extension version to 2.0.0-rc.1

@jordojordo we got shell 3.0.0now 😉  time to update

PR can be merged.
There are some issues existing which NeuVector team can fix them after merging

vue-chartjs should be replaced into vue-chart-3
An undefined setRowData error is on Compliance page


@viniciussanchez Added Delphi session

Contributing
(the same measurement rule as awesome-made-by-russians )
It's hard to calculate project popularity so we use stars as a measurement. It's not quite fair, but it is what we have here on Github.
If you want to add project to this list, please, make sure that:

[X] The project was created by the developers born in Brazil
[X] The project can't be just an personal, experimental or sample project
[ ] The project has more that 100 stars on Github
[ ] One repository per PR/contribution - avoid conflict and simplify review

If they do, feel free to make a PR! 😁
Obs:

Projects that have grown a lot in the Delphi community, and presented at major events such as Embarcadero Conference, CodeRage, ACBr Day.

The RESTRequest4Delphi Project, although it does not have 100 stars, but it is very good, very simple to implement, and it has grown a lot too.

Sorry I didn't do a PR for each item. I saw this contribution guide only at the end.

I think that RESTRequest4Delphi Project will be 100 stars coming soon, is it okay for you @avelino?

It's ok


Add Status.Versions.Reconciled to runtime components

This is to deal with issue #489

@leochr this is now ready for review


Improve Favourite page

**Is your feature request related to a problem? Please describe
The favorite fragment does not seem to be as user-friendly as it should be.
Describe the solution you'd like
As I work on it, I will strive to make it as user-friendly as possible.

**Is your feature request related to a problem? Please describe The favorite fragment does not seem to be as user-friendly as it should be.
Describe the solution you'd like As I work on it, I will strive to make it as user-friendly as possible.

Could you please give me some hints about what you will do?

I will change the Cardview to make the favorite list look better. I would like to change the orientation of the action bar to match the overall theme.

Okay let's do it.

Similar to the shop home page

Closed. Fixed in #129

@all-contributors please add @Aditya-gupta99 for his creativity in improving the favourite screen

@all-contributors please add @Aditya-gupta99 for design


Infinite loop on invalid top-level declaration

$ cargo run
(a(
<stdin>:1:3: warning: type specifier missing, defaults to int
<stdin>:1:3: warning: type specifier missing, defaults to int
<stdin>:1:3: warning: type specifier missing, defaults to int
...

From my gdb session: This is trying to parse a as a function (compare (a()), which should parse as int a()). It doesn't like the EOF for some reason.


deps: bump upstream to v0.35.0

Fixes #N/A
Description
Bumps upstream karpenter to the latest release
How was this change tested?
N/A - same commit, new tag
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5255

Relevant Lines:
6360

💛  - Coveralls


Key bindings does not work

I do not know how to describe it properly, but on my sistem keys presented in readme file not working.

I made it work by changing var motion_enabled  to true
And removed the row with this condition if motion_enabled and current:

That sounds like you were initially trying to use the keybindings in menu mode, when the key bindings and mouse motion are intentionally disabled.
Does it work without modification if you switch from menu mode to free cam mode by pressing the ` key? I notice your profile says you are in Germany, so if using a QWERTZ keyboard, this appears to be Shift and the key to the left of backspace. If this doesn't switch the mode (the UI will also disappear when the switch happens), you may need to change the key binding in the project settings for toggle_ocean_debug to something more QWERTZ friendly.
The readme indicates this keybinding is `/~, but I am realizing now that combination only applies to QWERTY keyboards (and maybe a few others).

yes, you are right. I am in germany, but i am not german and i am using ENG (british) keyboard.
I just did not realised that i had to toggle the mode to be able to use free camera.
Thank you for the help!
By the way


Cannot read property 'compile' of undefined

Description
There's not much in terms of repro steps. We get this error when importing the latest 1.5.0 release of model-viewer.
RoughnessMipmapper.js:34 Uncaught TypeError: Cannot read property 'compile' of undefined
    at new RoughnessMipmapper (model-viewer.js:53061)
    at new Renderer (model-viewer.js:56415)
    at model-viewer.js:56691

Live Demo
I believe you can just go to https://opensea.io/ and look at the console to see the error. We are importing it like so:
<script<EMAIL_ADDRESS>type="module"></script>

Version

model-viewer: v1.5.0

Browser Affected

[x] Chrome Version 88.0.4324.182 (Official Build) (64-bit)
[ ] Edge
[ ] Firefox
[ ] IE
[ ] Safari

OS

[ ] Android
[ ] iOS
[ ] Linux
[ ] MacOS
[x] Windows

I'm not seeing any console error, nor any obvious use of model-viewer. Is that still a good repro link?

seems to be working now, not sure what changed 🤷🏼 . Thanks though @elalish


Panel does not update gv.HexTiles with date selector

An example derived from https://github.com/pyviz-demos/nyc_taxi/blob/master/app.ipynb I use within a Jupyter Notebook.
import holoviews as hv, geoviews as gv, param, dask.dataframe as dd, cartopy.crs as crs
import panel as pn

from holoviews.operation.datashader import rasterize, shade
from holoviews.streams import RangeXY
from holoviews import dim, opts
import numpy as np
import pandas as pd
import random
import datetime

def random_date(start, end):
    """Generate a random datetime between `start` and `end`"""
    return start + datetime.timedelta(
        # Get a random amount of seconds between `start` and `end`
        seconds=random.randint(0, int((end - start).total_seconds())),
    )

honolulu_coords = {"lat":21.455832, "lon":-157.974411}
lon = [random.randint(0,100)/10000+honolulu_coords["lon"] for _ in range(0,1000)]
lat = [random.randint(0,100)/10000+honolulu_coords["lat"] for _ in range(0,1000)]
val = [random.randint(0,100) for _ in range(0,1000)]
date = [str(random_date(datetime.datetime(2019,1,1),datetime.datetime(2019,1,3)).date()) for _ in range(0,1000)]
df = pd.DataFrame(list(zip(lon, lat, val, date)), columns=['lon', 'lat', 'val', 'date'])

hv.extension('bokeh', logo=False)

usecols = ['geohash_lon','geohash_lat','date','val']
opts = dict(height=600,xaxis=None,yaxis=None,bgcolor='black',show_grid=False,responsive=True, toolbar="above")
cmaps = ['seismic', 'PiYG', "coolwarm"]
dates = sorted(df.date.unique())

class HexTilesExplorer(param.Parameterized):
    date       = param.ObjectSelector(dates[-1], objects=dates)
    alpha      = param.Magnitude(default=0.75, doc="Alpha value for the map opacity")
    cmap       = param.ObjectSelector(cmaps[-1], objects=cmaps)

    @param.depends('date')
    def points(self):
        points = gv.HexTiles(df[df.date==self.date], kdims=["lon", "lat"], vdims=["val"])
        return (points.options(active_tools=['wheel_zoom'], tools=['hover'])
                      .opts(colorbar=True, aggregator=np.mean)) #color=dim('change'), aggregator=np.m

    def view(self,**kwargs):
        points = hv.DynamicMap(self.points)
        tiles = gv.tile_sources.CartoLight().apply.opts(alpha=self.param.alpha, **opts)
        return tiles * points.apply.opts(cmap=self.param.cmap).redim.range(change=(0, 2))

hextiles = HexTilesExplorer(name="HexTilesExplorer")
pn.Row(hextiles.view(), hextiles.param).servable()

If I use gv.Points instead of hv.HexTiles everything works beautifully.
environment.yml
dependencies:
- python=3.6.7
- bokeh=1.2.0
- holoviews=1.12.3
- geoviews=1.6.2
- datashader=0.7.0
- panel=0.5.1
- pandas=0.24.2
- tornado=6.0.2

Definitely something odd here, likely a holoviews issue but I'll have to investigate more. Out of interest, why do you separate .opts and .options? You can combine them, they are basically aliases and .options may eventually get deprecated, the only difference is that .opts is inplace.

Very odd indeed, displaying hv.DynamicMap(self.points) on its own seems to work as well.
Also another aside, .redim.range(change=(0, 2)) does nothing since there is no change dimension.

Thanks for the overall code comments, corrected them accordingly! Found out that the example works if I return in view(): return points.apply.opts(cmap=self.param.cmap) without the map. So I guess it's something in combination with the map.
Maybe the problems https://github.com/pyviz/holoviews/issues/3811 are somehow related?

After zooming out a bit, this is what I see:


Diversifying the reflection API, for environment.go

https://groups.google.com/g/golang-nuts/c/S2gBW3BV4QU/m/I4gWtrPxBwAJ
https://github.com/apache/openwhisk-wskdeploy/issues/1130

See comments in https://github.com/apache/openwhisk-wskdeploy/pull/1134


A shadowed variable is generated in a an async function with a default parameter declared as a static property of a class when targeting ES5.

🔎 Search Terms
"shadowed", "shadowed variable", "generator"
🕗 Version & Regression Information

This changed in commit or PR #56296

⏯ Playground Link
https://www.typescriptlang.org/play?target=1&ts=5.4.3#code/MYGwhgzhAEAa0G8BQ1oAcCuAjEBLY0EALmEftGNALwUQCeAdgQBQQD2AtgKYBqYATgC5oWNmxBcwDatCL8MXAJTUAfIhSpo-LkQz9pYAO5hcROADoszRQG4NAXzsbMOcsVLksMyIxbKqasiaWjp60gBEAOIA8tEAIuF2qI5I9khIACZcoAJc0DlQ6PxswFyFQYQkZARcAB6mzMBsWcIMGBxYXPyKrVwAbl12aUiw5mDWGuZEABZcDI1sDOwS5iBsAOaKk8CkwNPM1qrqwU1L4lzmXcX8zOEAQgCCCbYaqGjFpVCX9UTMAIwvZIvIA
💻 Code
class X {
  public static a = async (someVar: boolean = true) => {
    return await X.b();
  };

  public static b = async () => {
    return "GOOD";
  };
}

declare class process {
  static exit(code: number): never;
}

X.a()
  .then(console.log)
  .catch(() => {
    console.error("BAD");
    process.exit(1);
  });

🙁 Actual behavior
Between TS v5.4.2 and TS v5.3.3, the generated code from the above code sample changes to shadow the _a variable in the outer closure. See diff below:
var X = /** @class */ (function () {
    function X() {
    }
    var _a;
    _a = X;
-    X.a = function (someVar) {
-        if (someVar === void 0) { someVar = true; }
-        return __awaiter(_a, void 0, void 0, function () {
-            return __generator(_a, function (_b) {
-                switch (_b.label) {
+    X.a = function () {
+        var args_1 = [];
+        for (var _i = 0; _i < arguments.length; _i++) {
+            args_1[_i] = arguments[_i];
+        }
+        return __awaiter(_a, __spreadArray([], args_1, true), void 0, function (someVar) {
+            if (someVar === void 0) { someVar = true; }
+            return __generator(_a, function (_a) {
+                switch (_a.label) {
                     case 0: return [4 /*yield*/, _a.b()];
-                    case 1: return [2 /*return*/, _b.sent()];
+                    case 1: return [2 /*return*/, _a.sent()];
                }
            });
        });
    };
    X.b = function () { return __awaiter(_a, void 0, void 0, function () {
        return __generator(_a, function (_b) {
            return [2 /*return*/, "GOOD"];
        });
    }); };
    return X;
}());
X.a()
    .then(console.log)
    .catch(function () {
    console.error("BAD");
    process.exit(1);
});

Note that helpers have been omitted from this code sample.
Notice that in the context of the function, the class/function X is assigned to a variable _a in the "ambient" context of the class. In TS v5.3.3, the async state machine's state variable is declared as _b, but in TS v.5.4.2 is appears as if the context is lost when the state machine is generated, so the state is declared as _a, shadowing the earlier-declared _a.
🙂 Expected behavior
Expected that the async state machine's state variable does not shadow another variable.
Additional information about the issue
No response
This issue was found by @ipip2005.

@jakebailey, you linked to this issue in https://github.com/microsoft/TypeScript/pull/57898. Is it fixed?

Sorry, that was a typo of #57887

@jakebailey - This is still an issue in 5.4.5 (see this playground link). Did the cherry-pick get backed out, or was it not the right fix?

There was no cherry pick, I typo'd the issue number for a different fix (which is what I was trying to say above but maybe not clearly enough, sorry)

Our organization encountered this during our upgrade to 5.4.4. It was enough to consider reverting back to 5.2, but ultimately we ended up working around it by moving the static functions to be top-level functions instead.


Vote page: truncate proposalId

the long proposal ID takes up too much table space. let's truncate (2322...4659) the proposal ID and add a "Copy proposal ID" button to each row.

resolved by #64


Conformance results retest v1.17/ncs

Pre-submission checklist:
Please check each of these after submitting your pull request:

[ ] If this is a new entry, have you submitted a signed participation form?
[ ] Did you include the product/project logo in SVG, EPS or AI format?
[ ] Does your logo clearly state the name of the product/project and follow the other logo guidelines?
[ ] If your product/project is open source, did you include the repo_url?
[ ] Did you copy and paste the installation and configuration instructions into the README.md file in addition to linking to them?

This request is not yet verifiable, please confirm that your product.yaml file have all the fields listed in https://github.com/cncf/k8s-conformance/blob/master/instructions.md#productyaml .

This request is not yet verifiable, please confirm that your product.yaml file have all the fields listed in https://github.com/cncf/k8s-conformance/blob/master/instructions.md#productyaml .

This request is not yet verifiable, please confirm that your product.yaml file have all the fields listed in https://github.com/cncf/k8s-conformance/blob/master/instructions.md#productyaml .

This request is not yet verifiable, please confirm that your product.yaml file have all the fields listed in https://github.com/cncf/k8s-conformance/blob/master/instructions.md#productyaml .

This request is not yet verifiable, please confirm that your product.yaml file have all the fields listed in https://github.com/cncf/k8s-conformance/blob/master/instructions.md#productyaml .

This request is not yet verifiable, please confirm that your product file ( PRODUCT.yaml ) is named correctly and have all the fields listed in  How to submit conformance results . Please make sure you included the following fields:&{map[product_logo_url:{}]}

This request is not yet verifiable, please confirm that your product file ( PRODUCT.yaml ) is named correctly and have all the fields listed in  How to submit conformance results . Please make sure you included the following fields:[Name of the legal entity that is certifying. This entity must have a signed participation form on file with the CNCF Name of the product being certified. The version of the product being certified (not the version of Kubernetes it runs). URL to the product information website URL to the product documentation URL to the product's logo, (must be in SVG, AI or EPS format -- not a PNG -- and include the product name). OPTIONAL. If not supplied, we'll use your company logo. Please see logo guidelines Is your product a distribution, hosted platform, or installer (see definitions) One sentence description of your offering]

Found v1.17 in logs

Automatically verified as having all required tests present and passed

Automatically verified as having all required tests present and passed

Found v1.17 in logs

Automatically verified as having all required tests present and passed

Automatically verified as having all required tests present and passed

This conformance request failed to include all of the required tests for v1.17

The first test found to be mssing was [sig-network] DNS should resolve DNS of partial qualified names for services [LinuxOnly] [Conformance]

This conformance request has the correct list of tests present in the junit file but at least one of the tests in e2e.log failed


gnome-keyring as a dependency on KDE systems

Trying to run the app on KDE systems fails because of is requireing the gnome-keyring.
it shouldn't be necessary to have the need of using gnome-keyring on KDE systems with a functional KWallet.
I know that org.freedesktop.secrets is not provided by KWallet - yet, so either we can force gnome-keyring as a dependency on KDE systems or find a way to use KWallet through DBus.
Problem arises on KDE systems with the latest verification release, for more info ping me in slack as i'm on phone.

Similar to https://github.com/lbryio/lbry-app/issues/386

Duplicate of #386


Jackson Issue #62

PR for review purposes

As discussed, do separately: 1. split modules extractions, 2.  enable auto-detection.


[Bug] conditional-formatting don't work with cell filled by formula

Before you submit this issue, have you checked the following

[X] Is this really a problem?
[X] I have searched the Github Issues for similar issues, but did not find anything.

Affected packages and versions
0.2.3
Reproduction link
choose.xlsx

C2 is filled by formula named choose,and conditional formatting works fine. but in Univer C2 is filled but has no formatting
when import choose.xlsx via example https://univer.ai/zh-CN/pro/examples/sheets-exchange, C2 is fixed value
download that xlsx,C1 formula content is wrong and C2 has no value

Expected behavior
conditional formatting works fine
Actual behavior
conditional formatting is not work when cell filled by formula
System information
No response

Is this normal with the latest version?


Elasticity S3DistCp Step: Shredded HDFS -> S3 fails if no data to process

Currently the copy step to move shredded data to S3 fails if there's no data (or no shredded data) to copy.
This particularly effects new users who want to run Snowplow regularly (so they can debug the data in Redshift / Elasticsearch) but often have runs without any data

This was fixed a while back - basically there is always something to copy now, because Hadoop Shred outputs the /atomic-events/ folder too...


Enhancement: Add ExposedPorts to container setup RunOptions

Adding this change replicates the behavior for running with docker run -p port mapping, prior to adding this, containertest relies on the Dockerfile declaring exposed ports.

Would it be possible to test this?

I can't think of a good way.


Extend TextDocumentPositionParams to have the name

Right now, the Language Features are not as accurate or as fast as they could be. This is because many of these features rely on the simple parameter TextDocumentPositionParams, which only has the file URI and the position in the file. It is missing a fundamental property: the name (or the identifier/text/content.)
This new name property is very important for 2 reasons.

Accuracy: when the user edits the file, the line and/or character position may be changed. The name makes sure that the wrong text is not selected by the language server. Language server likely remember the name and even do database lookups based off of the name.
Speed: assuming that the file is saved and the location reported by the client is correct, it is not likely that the primary lookup mechanic of the server is by the URI & location alone. Because of this, the server would have to access the filesystem to find the name at the location, and then look up the symbol/entity by that name and location.

Here is what it may look like with the new proposal.
interface TextDocumentPositionParams {
	/**
	 * The text document.
	 */
	textDocument: TextDocumentIdentifier;

	/**
	 * The position inside the text document.
	 */
	position: Position;

	/**
	 * The name of the target at the position.
	 */
	name: string;
}

This would significantly improve 15 different parameter interfaces.

DeclarationParams

DefinitionParams

TypeDefinitionParams

ImplementationParams

ReferenceParams

CallHierarchyPrepareParams

TypeHierarchyPrepareParams

DocumentHighlightParams

HoverParams

MonikerParams

CompletionParams

SignatureHelpParams

RenameParams

PrepareRenameParams

LinkedEditingRangeParams

It's the responsibility of the language server (with semantic knowledge) to decide the 'name'. Clients don't have the semantic understanding of a 'name' ina given position.
This would be a net loss imo.

Okay, I agree especially in the case of ambiguous tokens, such as overridden operators in C++.
Now after some more reading, I see how it's possible for the language server to comprehend positions when the file has been changed. It's through Document Synchronization.
The Language Features Overview should be updated to clarify this for those who are new to implementing the LSP. Perhaps it could be worded similar to the following sentence that I've appended.

Language Features
Language Features provide the actual smarts in the language server protocol. They are usually executed on a [text document, position] tuple. The main language feature categories are:

code comprehension features like Hover or Goto Definition.
coding features like diagnostics, code complete or code actions.

These features can even be utilized on changed unsaved files through synchronization. See Text Document Synchronization and Notebook Document Synchronization

Updated doc.


Token is invalid! Token is unsafe!

Hi there,
I encountered (and am still embroiled in, after over three weeks) a situation with two different providers of three different accounts, one a domain registry and the other a bank. I commented on this on 16 January in the issue "Please add more details on 'Token is unsafe!' message #287". I wasn't expecting a direct reply to an issue that someone already seemed to have brought up and which seemed to be getting attention, but considering FreeOTP was updated yesterday (27 January) to version 2.0.1 (42) with no change in how it reacts to the QR codes I've tried to scan, I've decided I need to open my own issue to try to determine whether the issue is with the two different providers or if the issue is with FreeOTP.
I spent just under an hour on the phone with my bank yesterday (much of which was hold time, of course) to try and resolve this issue, but the attempt resulted in a new issue. They asked me to use the option that didn't involve scanning a QR code, instead entering an alphanumeric code. However, when I do that I get this error:
Token is invalid!

The token you are attempting to add is invalid. Please alert your token provider.

The code was 16 characters long. I tried two different codes four times, three times for the first and once for the second. I could not copy and paste the code, partly because the bank's web page prevented me from copying it to my clipboard, and partly because the code was presented to me on my laptop and the app is, of course, installed on my phone. (I could have worked around that, of course, if I could have copied the code on the bank's website.) However, we'll just have to assume that I was careful enough not to make a transcription error four times in a row.
I won't bore you with the arguments I've had with my bank over their claims that they don't support phones made by a particular manufacturer (Motorola) and that they only support authenticator apps that are "compatible" with their system ... which, of course, means "Google Authenticator". But it shouldn't surprise anyone here that I don't want to use Google products unless I'm forced to (as I am with Android itself, obviously), and I also prefer to support open source and in particular Red Hat, considering I use RHEL.
I'll be frank: Given the issues that others have had with the "Token is unsafe!" error I very strongly suspect a bug in FreeOTP, which bug is described in the issue in which I first reported a problem. So I was stunned when yesterday's update didn't seem to fix that problem. But, FreeOTP worked perfectly for me for the year or so I've been using it and I am loath to spend my time researching and selecting a different authenticator and even more loath to use Google Authenticator.
Should I do the latter, or is this indeed a FreeOTP bug and I should just be patient and not worry about the fact that I can't access my bank accounts online or renew domains that are on the verge of expiry?
Craig

Hi,
Sorry for the issues you are experiencing. If you can provide the otpauth URI of the QR code (similar to https://github.com/freeotp/freeotp-android/issues/301#issue-1550513339), then we can quickly determine the reason for the 'Token is invalid' message. In a browser you may be able to right click the QR code image to save of copy the OTP URI string/value.
Most likely the QR code being provided to you is violating the URI format of https://github.com/google/google-authenticator/wiki/Key-Uri-Format or violating the https://www.ietf.org/rfc/rfc4226.txt requirements.
We fixed similar issues in the latest release but it appears to be something different than with your bank OTP token.

Hi Justin,
Thanks in advance for your help, but sorry, I'm pretty sure this isn't what you need though:
https://ok12static.oktacdn.com/assets/js/sdk/okta-signin-widget/5.16.1/img/ui/indicators/scanerror.png
I get that from right-clicking the QR code and selecting "Copy Image Link" i the pop-up menu. This is Firefox. That link isn't anything like the "otpauth://" link in the issue you pointed to, and the image there is just an "X", not the QR code. I checked the source and the "accessibility properties" as well but can't find anything similar.
Considering this is the QR code generated by my bank -- I'm not the party generating the QR code -- is it even possible for me to get the "otpauth://" link?
Craig

Hi Justin,
Thanks in advance for your help, but sorry, I'm pretty sure this isn't what you need though:
https://ok12static.oktacdn.com/assets/js/sdk/okta-signin-widget/5.16.1/img/ui/indicators/scanerror.png
I get that from right-clicking the QR code and selecting "Copy Image Link" i the pop-up menu. This is Firefox. That link isn't anything like the "otpauth://" link in the issue you pointed to, and the image there is just an "X", not the QR code. I checked the source and the "accessibility properties" as well but can't find anything similar.
Considering this is the QR code generated by my bank -- I'm not the party generating the QR code -- is it even possible for me to get the "otpauth://" link?
Craig

Hi, you should still be able to view the OTP URI even when you are not the one generating the QR code image. You could try some suggestions in https://www.qrcode-tiger.com/read-a-qr-code-from-an-image ?

I hope this is what you need:
otpauth://totp/login.bancity.com:90421260_90001127?secret=Q33F4CQT7NVHWB7&issuer=login.bancity.com
Call me paranoid, but I'm not au fait with OTP URIs, so in order to avoid the possible pitfalls of possibly exposing myself to some sort of automated harvesting, I've removed the first letter of the "secret" parameter. It is the capital letter of the word "romeo". I've also change the first letter of the bank's root domain (in two places) from the first letter of the word "victor" to the first letter of the word "bravo".

Oh, and as I was posting my last message, the bank called me back (because Friday's phone call wasn't properly completed) and they will not spend any more time "supporting" this "third-party" (i.e., non-Google) authenticator app. I told them I had opened this ticket and said that I planned to try to work through it with you, but that I understood their business decision not to spend time supporting an app when other apps seem to work just fine.

Hi, I edited your comment to remove the sensitive secret data from this ticket.
The reason for the Token is unsafe message is the same as described in https://github.com/freeotp/freeotp-android/issues/287#issuecomment-1405094971
You can check section 4, R6 of RFC4226 to see the following HOTP requirement:
   R6 - The algorithm MUST use a strong shared secret.  The length of
   the shared secret MUST be at least 128 bits.  This document
   RECOMMENDs a shared secret length of 160 bits.

This is enforced on the FreeOTP side. You can decide for yourself if you want to accept the risk or not, the top answer may be worthwhile reading for your knowledge - https://security.stackexchange.com/questions/45053/why-does-google-cripple-the-2fa-google-authenticator-pam-module
Most likely the OTP vendor will not be making any changes to their secret generation implementation, this is why the Add anyway option is available to ignore this Token is unsafe message. Hope this helps.

Thanks. I've read that SE answer and this is what I get out of it, as a reasonably technical user but without the cryptography education:

My bank (and apparently the domain registry where I'm getting the same errors) is generating QR codes that are not fully and technically compliant with RFC4226.
But the second part of the answer seems to suggest that both organisations are doing "good enough" jobs ... as long as I'm not a multi-gazillionaire (umm, I'm not) and I don't have nukes (I don't).

Which leads me to wonder out loud if, therefore, FreeOTP is forcing pedantry on its users, and we should either use a different authenticator app or just choose the "Add anyway" option. (I don't mean that to sound like hostility against a free app.) Perhaps the latter choice is the focus of some of the other issues open here -- i.e., asking that you provide more information about how FreeOTP is technically correct, but you (the user) might not want to be so pedantic and just "add [the token] anyway".
Considering all of what I've written so far (in this and previous messages), it seems to me that my best choice is to go against all of my self-training where "good enough" is never really good enough and choose that "add anyway" option. That seems to be what you're saying in your last sentence. Am I right?

As I mentioned in the other ticket we need to include more detail in FreeOTP to clearly state why the Token is unsafe message is shown, this is important for keeping users informed and aware of security concerns.
Ideally, all OTP vendors will generate secrets which are fully RFC compliant but unfortunately that is not the case. FreeOTP strives to be RFC compliant, in some cases we may fully restrict access to using a token which has true security consequences. However, as you've seen here there may be cases where FreeOTP should allow to use a RFC-noncompliant token (less than 128 bits).
In general I would recommend opening a ticket with your OTP vendor explaining this issue, and continue using this token in the meantime.

Thanks Justin, I appreciate your forthrightness. Yes, some detail (perhaps along the lines of what I suggested above) in the warning/error message would likely help people make reasonably intelligent decisions on how to proceed, or not, and may even have resulted in my not coming here to seek advice.
I intend to bring this Github issue to the attention of both of the vendors I've mentioned but, like you, I have little hope that it will have any results, not until quantum computing makes 80 bits trivial. I note that the SE answer to which you linked is pretty much a decade old!
Feel free to close this issue. I'm not very active on Github so I'm not really sure what the etiquette is around my closing it.


Typo Corrected

What this PR does / why we need it:
Correcting a Typo in the documentation to have clearer understanding.
Which issue(s) this PR fixes:

Fixes #
Does this PR introduce a user-facing change?:

NONE

/assign @pradithya

/lgtm


Added new Animated colourful background

Fixes Issue🛠
#341 New Animated colorful background
Closes #341
Description👨💻
Added new Animated colourful background in background component.
For this I had used HTML and CSS.
Type of change📄

[x] New feature (non-breaking change which adds functionality)

How this has been tested✅
This has been tested by me by running the website, no error found!!
Checklist✅

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Screenshots/GIF📷
https://github.com/Rakesh9100/Beautiify/assets/149922307/47f4d8d8-5368-4498-8a84-bf58d630ea2f

@Rakesh9100
kindly check now.

Merged ✨ @Prince-kushwaha-2004


cant open ffi

on this,  late final _SSL_connectPtr =
_lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer)>>(
'SSL_connect');
      I lost connection to device

Thank you for opening this issue, @spm-prasanna26! Can you post some code to reproduce the issue? And which OpenSSL version do you have installed?

In which context are you using the library? If you are using it in a Flutter app, then you might need to bundle OpenSSL with it.

I am using it in flutter app. I followed what is given in example code.

import 'dart:async';
import 'dart:convert';
import 'package:dtls2/dtls2.dart';
import 'package:flutter/material.dart';
import 'dart:io';
import 'dart:typed_data';
//GeniPro tcp constants
final saverAdvancedIp = '<IP_ADDRESS>';
final localIp = '<IP_ADDRESS>';
const clientIdentity = 'Client_identity';
const shortLivedPsk =
'1223dfghgwed';
//port
int udpPort = 49153;
int tcpPort = 49152;
const _identity = "Client_identity";
final _serverKeyStore = {_identity: shortLivedPsk};
const _ciphers = "TLS_AES_128_GCM_SHA256";
Uint8List? _serverPskCallback(Uint8List identity) {
final identityString = utf8.decode(identity.toList());
final psk = _serverKeyStore[identityString];
if (psk == null) {
return null;
}
return Uint8List.fromList(utf8.encode(psk));
}
final context = DtlsClientContext(
verify: true,
withTrustedRoots: true,
ciphers: _ciphers,
pskCredentialsCallback: (identityHint) {
return PskCredentials(
identity: Uint8List.fromList(utf8.encode(_identity)),
preSharedKey: Uint8List.fromList(utf8.encode(shortLivedPsk)),
);
},
);
void main() async {
const bindAddress = "::";
//final peerAddress = InternetAddress("::1");
final dtlsClient = await DtlsClient.bind(bindAddress, 0);
RawDatagramSocket? udpSocket; // Choose the port number you want to use
try {
udpSocket = await RawDatagramSocket.bind(InternetAddress.anyIPv4, 0);
print('Authentication start frame is send successfully!');

} catch (e) {
print('Error sending authentication start frame: $e');
}
if (udpSocket != null) {
udpSocket.listen((event) async {
if (event == RawSocketEvent.read) {
final datagram = udpSocket?.receive();
if (datagram != null) {
        print('Authentication start response frame is received');
      udpSocket?.close();

  }
});

}
final DtlsConnection connection;
try {
connection = await dtlsClient.connect(
InternetAddress(saverAdvancedIp),
49152,
context,
timeout: const Duration(seconds: 5),
);
} on Exception {
await dtlsClient.close();
rethrow;
}
connection
..listen(
(datagram) async {
print(utf8.decode(datagram.data));
await dtlsClient.close();
},
);
//..send(Uint8List.fromList(utf8.encode('Hello World')));
udpSocket?.send([frameTypeAuthStart], InternetAddress(saverAdvancedIp), udpPort);
}

import 'dart:async';
import 'dart:convert';

import 'package:dtls2/dtls2.dart';
import 'package:flutter/material.dart';
import 'dart:io';
import 'dart:typed_data';

//GeniPro tcp constants
final saverAdvancedIp = '<IP_ADDRESS>';
final localIp = '<IP_ADDRESS>';
const clientIdentity = 'Client_identity';
const shortLivedPsk =
    '1223dfghgwed';

//port
int udpPort = 49153;
int tcpPort = 49152;

const _identity = "Client_identity";

final _serverKeyStore = {_identity: shortLivedPsk};

const _ciphers = "TLS_AES_128_GCM_SHA256";

Uint8List? _serverPskCallback(Uint8List identity) {
  final identityString = utf8.decode(identity.toList());

  final psk = _serverKeyStore[identityString];

  if (psk == null) {
    return null;
  }

  return Uint8List.fromList(utf8.encode(psk));
}

final context = DtlsClientContext(
  verify: true,
  withTrustedRoots: true,
  ciphers: _ciphers,
  pskCredentialsCallback: (identityHint) {
    return PskCredentials(
      identity: Uint8List.fromList(utf8.encode(_identity)),
      preSharedKey: Uint8List.fromList(utf8.encode(shortLivedPsk)),
    );
  },
);

void main() async {
  const bindAddress = "::";
  //final peerAddress = InternetAddress("::1");

  final dtlsClient = await DtlsClient.bind(bindAddress, 0);
  RawDatagramSocket? udpSocket; // Choose the port number you want to use
  try {
    udpSocket = await RawDatagramSocket.bind(InternetAddress.anyIPv4, 0);

    print('Authentication start frame is send successfully!');
  } catch (e) {
    print('Error sending authentication start frame: $e');
  }

  if (udpSocket != null) {
    udpSocket.listen((event) async {
      if (event == RawSocketEvent.read) {
        final datagram = udpSocket?.receive();
        if (datagram != null) {

            print('Authentication start response frame is received');
          udpSocket?.close();

      }
    });
  }

  final DtlsConnection connection;
  try {
    connection = await dtlsClient.connect(
      InternetAddress(saverAdvancedIp),
      49152,
      context,
      timeout: const Duration(seconds: 5),
    );
  } on Exception {
    await dtlsClient.close();
    rethrow;
  }

  connection
    ..listen(
      (datagram) async {
        print(utf8.decode(datagram.data));
        await dtlsClient.close();
      },
    );
    //..send(Uint8List.fromList(utf8.encode('Hello World')));
  udpSocket?.send([frameTypeAuthStart], InternetAddress(saverAdvancedIp), udpPort);
}

this is what I used to call

Does the error also occur when you run the example within a Dart project? (For example, cloning this repository and then performing dart example/example.dart.)

No Example is working as expected.
My scenario,
I have server in machine i.e HW(<IP_ADDRESS>) and dektop(<IP_ADDRESS>) where flutter application is running.
I have to created upd client connection and send data 3 to server and have to receive reply. Then server will send tls, I have to be ready to listen. But in that case it is not working.

No, Example is working as expected.

Okay, thank you for your feedback. I just tried a Flutter example on a Windows machine, too, and there I am not getting the error. Could you post a full stacktrace of the error you are getting?

My scenario, I have server in machine i.e HW(<IP_ADDRESS>) and dektop(<IP_ADDRESS>) where flutter application is running.
I have to created upd client connection and send data 3 to server and have to receive reply. Then server will send tls, I have to be ready to listen. But in that case it is not working.

Hmm, so the server is going to connect to the Flutter app? Or do you need to have the DTLS connection already established at this point? Or are you switching from DTLS to TLS? I think I haven't fully understood the setup here yet.

Here is my case.
UDP is working fine. TLS issue occurs.

Hmm, where does DTLS come into play here? Or do you mean DTLS when you write TLS?

Here is my case.
UDP is working fine. TLS issue occurs.

Hmm, where does DTLS come into play here? Or do you mean DTLS when you write TLS?

Do you know any flutter packages that support TLS ?

There is the "built-in" RawSecureSocket class, however, I think that one does not support Pre-Shared Keys :/ Unfortunately, doing a quick search on pub.dev also did not bring up any package that supports them. Do you need to use PSKs or would certificates also be an option for you?

There is the "built-in" RawSecureSocket class, however, I think that one does not support Pre-Shared Keys :/ Unfortunately, doing a quick search on pub.dev also did not bring up any package that supports them. Do you need to use PSKs or would certificates also be an option for you?

PSK is used in my case. just how it is done in example of dtls 2.0 flutter package. So, Any idea or possible to do it ?

PSK is used in my case. just how it is done in example of dtls 2.0 flutter package. So, Any idea or possible to do it ?

As far as I can tell, there currently seems to be no way to do it with TLS at the moment :/ You could try adapting the ffi code so that it uses TLS instead of DTLS (using an example like this one. I create an issue regarding the PSK feature a while ago in the Dart SDK repository (see https://github.com/dart-lang/sdk/issues/49636), but it has not been picked up yet by anyone, apparently.

Since it is out of the scope of this library, I will close the issue. However, feel free to leave additional comments if you have questions or want to discuss something :)

is it possible to reuse this dtls for tls ?
if yes, short explanation on how ?

Since DTLS uses UDP and TLS uses TCP, you would need to replace the RawDatagramSockets with RawSockets and then look up the necessary functions in the OpenSSL documentation or appropriate examples. You would then also need to regenerate the bindings to OpenSSL using ffigen to be able to use the necessary functions. If you find an example for a client/server that you can build upon, it should be doable.

My case is like server runs on desktop, client on hardware.
I need to connect with client using short pre shared key. once done.
I will get long pre shared key from client. then I have to secure connection with the latest key from server
.


Proposal to switch to another shell (electron)

The reasons of this proposal are:

maintenance: is quite high, especially if we think about the features that are in electron but not in brackets, it can be only higher. Probably we will need to replace GYP with GN since CEF is switching to it
theme: let's say the truth, the dark theme is only truly supported on macOS. On Windows 10 is not right and on Linux there isn't
features: there are more features (native menu on Linux or submenu on all platforms for example)
platforms: as it is personally I consider Linux simply not supported by Brackets. Yes it run on it but ATM is still on an older version of CEF and there are problems that are only ageing, electron supports all three major platforms, I'm quite sure it supports ARM and there are people looking at BSD
easier for contributors: from what I saw the shell is an high impedance for contributors who wanted to work on it, slow reviews or problems on compile (Linux on master still doesn't compile)
easier for maintainer (especially outside Adobe): AFAIK @zaggino creates the installer for brackets-electron through Travis, this will mean we will able to do at least prereleases by ourself

The possible downsides are:

control: if we will have a problem with the shell we will need to cooperate/rely on the electron team.

Maybe there are more downsides but ATM I cannot think anything else.
If people cannot accept to loose the dark theme they can be redirected to Dreamweaver.
Last, AFAIK, Dreamweaver doesn't use this shell, so personally I feel like Brackets is the only one to suffer the burden of this shell.
I tryed to help a bit the Linux side but the effort is simply too much time consuming for me, switching to another shell seems the best choice, and since there is already brackets-electron seems obvious what is my choice.

If I'm not mistaken @zaggino also replaced the sockets usage for node connection, which has always given some problems. This another reason to switch to the electron fork.

Yes, it uses electron's IPC and also for every node connection, new node process is spawned. This way they don't interfere with each other (sync functions in one slowing down all or one bug crashing all for example) and it feels a lot faster (didn't do measurements).

AFAIK the current shell scripts cannot handle patch releases, while the fork of @zaggino can.
There are issues that really deserve a patch release, think about the Ctrl-Z issue or https://github.com/adobe/brackets/pull/12145 which resulted in refreshed builds of the release.
Maybe this could be fixed in brackes-shell side, but since it is already available in the fork, why not use it? 😄


correct_links: Aborted

Hi,
I am running SALSA on a GFA created by Hifiasm, but it crashed.
My command line:
~/miniconda3/envs/py2.7/bin/python /public1/home/ligch/software/SALSA/run_pipeline.py -a /public1/home/ligch/Harm_Hass_genome/Harm/03_HiC_assembly/reference/Harm.primary.asm.p_ctg.fa -l /public1/home/ligch/Harm_Hass_genome/Harm/03_HiC_assembly/reference/Harm.primary.asm.p_ctg.fa.fai -b Harm.primary.alignment.sorted.bed -e GATC -o Harm.primary.scaffold -m yes -p yes -g /public1/home/ligch/Harm_Hass_genome/Harm/03_HiC_assembly/reference/Harm.primary.asm.p_ctg.gfa
The Log file:
bedfile loaded
Starting Iteration 1
bedfile started
bedfile loaded
Done loading GFA file
Number of Nodes = 116
Number of Edges = 40
correct_links: /usr/include/boost/graph/two_bit_color_map.hpp:86: void boost::put(const boost::two_bit_color_map&, typename boost::property_traits::key_type, boost::two_bit_color_type) [with IndexMap = boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_name_t, std::basic_string >, long unsigned int>; typename boost::property_traits::key_type = long unsigned int]: Assertion `(std::size_t)i < pm.n' failed.
/bin/sh: line 1: 66103 Aborted                 (core dumped) /public1/home/ligch/software/SALSA/correct_links -g /public1/home/ligch/Harm_Hass_genome/Harm/03_HiC_assembly/reference/Harm.primary.asm.p_ctg.gfa -l Harm.primary.scaffold/contig_links_scaled_sorted_iteration_1 > Harm.primary.scaffold/tmp.links

We've never tested with the gfa from hifiasm so it may be some incompatibility. In general, the contig gfa isn't that useful for scaffolding information since most connectivity is removed so I wouldn't bother including it, I doubt it would make any difference.


[UPDATE] STO Roadmap

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the CODEOWNERS.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[x] Optional Screenshot.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@ravilach @wei-harness pls help approve

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65f23ca5ad34fe4c56b48243--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65f242460579a24dddcb2756--harness-developer.netlify.app


New Sheet: Cepheus Atom

Changes / Comments

Official Character Sheet for Cepheus Atom, by Stellagama Publishing
submitted on behalf of publisher
Game System: Cepheus Engine

Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[x] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


HDFS-17062. HA NameNode Web UI should show last HA Transition time

Description of PR
NameNode web UI should show LastHATransitionTime.
When NN happened failover request by zkfc because fsn holding lock for too long. We can know the exact time, then filter logs based on time.
How was this patch tested?
issue: https://issues.apache.org/jira/browse/HDFS-17062

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 41s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+0 :ok:
xmllint
0m  0s

xmllint was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
45m 29s

trunk passed

+1 :green_heart:
shadedclient
80m 46s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
1m 19s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
shadedclient
35m 16s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
asflicense
0m 40s

The patch does not generate ASF License warnings.

122m 16s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5791/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/5791

Optional Tests
dupname asflicense shadedclient codespell detsecrets xmllint

uname
Linux 3ef8d8aec1e4 4.15.0-212-generic #223-Ubuntu SMP Tue May 23 13:09:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 05b399512f2b5fb5733a57ec7fbc693abf5115a8

Max. process+thread count
620 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-5791/1/console

versions
git=2.25.1 maven=3.6.3

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Hi @ayushtkn Could you help review this when you have time? Thanks!


Current version not available in F-Droid Store

Dear team,
when I take a look on google play store Kore's current version is <IP_ADDRESS> in the F-Droid store the current version is 2.5.0.
What's the reason for this gap? Is there a bug in the build process?
Please fix this.
Kind Regards,
Krawei

Please report this on F-Droid as we are not responsible for updating kore there.


[Bug] [ChatDB] pydoris not compatiable with sqlalchemy

Search before asking

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

Operating system information
Linux
Python version information
3.10
DB-GPT version
main
Related scenes

[ ] Chat Data
[ ] Chat Excel
[X] Chat DB
[ ] Chat Knowledge
[ ] Model Management
[ ] Dashboard
[ ] Plugins

Installation Information

[ ] Installation From Source

[X] Docker Installation

[ ] Docker Compose Installation

[ ] Cluster Installation

[ ] AutoDL Image

[ ] Other

Device information
CPU
Models information
LLM: openai
What happened
pydoris version is not compatiable with sqlalchemy.
pydoris requires sqlalchemy version <2, but chatDB only works with sqlalchemy version >2.
What you expected to happen
chatDB can support doris database with pydoris.
How to reproduce
prepare local doris database and connect it in chatDB, it will show connect error.
Additional context
No response
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

have a try. https://github.com/eosphoros-ai/DB-GPT/pull/902

Install db-gpt from the source code according to the quickstart documentation. Data sources of type Doris are not included. After executing the code：
pip install pydoris
...
Successfully installed mysqlclient-2.2.4 pydoris-<IP_ADDRESS> sqlalchemy-1.4.52 sqlalchemy-utils-0.38.3
db-gpt can not start up:
python dbgpt/app/dbgpt_server.py
Traceback (most recent call last):
  File "/data/llm-project/DB-GPT/dbgpt/app/dbgpt_server.py", line 31, in <module>
    from dbgpt.serve.core import add_exception_handler
  File "/data/llm-project/DB-GPT/dbgpt/serve/core/__init__.py", line 3, in <module>
    from dbgpt.serve.core.serve import BaseServe
  File "/data/llm-project/DB-GPT/dbgpt/serve/core/serve.py", line 5, in <module>
    from sqlalchemy import URL
ImportError: cannot import name 'URL' from 'sqlalchemy' (/data/miniconda3/envs/dbgpt_env/lib/python3.10/site-packages/sqlalchemy/__init__.py)

@zfanswer @Aries-ckt  to compatiable with sqlalchemy 2.0 , should use sqlalchemy-doris


Percentage display cant be used with oclockvita.

Both plugins are using same shortcuts(select+up/down) to enable and disable menu(for oclock)/display percentage(vitabattery). Closing oclock's menu also removes vitabattery's percentage from the screen.
Only thing that works is remaining time display since it uses different binding to enable it.

Fixed https://github.com/joel16/VITABattery/commit/05c230b93e4204d2abeabeb2946ea75af6152a95


Update README for current fastboot requirements.

Followup to #52

@tim-evans morning! friendly ping here, small doc update

Thanks!


Amends to staff guides

— updates to reflect online service is now available not just in trial
courts
— minor amends to typos and style

There were the following issues with your Pull Request

Commit: 8202723c39543c9dcc44558a5a1bc9b4fd560cbe
Your commit message body contains a line that is longer than 72 characters

Guidelines are available at https://github.com/ministryofjustice/fr-staffapp

This message was auto-generated by https://gitcop.com

👍  looks all good, you can merge!


MDToolbar elevation fix

Description of Changes
Thanks for fixing this issue, i was already working on it. this part
tho, takes back control of the elevation to the elevation behavior and
avoids multiple actions when self.type is "top".
*. Run Pre-Commit
*. removed unnecesary imports.

This is a continuation for #840


mssqlserver cannot pull stored procedure'schema

Additional context
sink:
type: datahub-rest
config:
server: 'http://datahub-gms:8080'
source:
type: mssql
config:
platform_instance: mssql\test
database: protestdb
password: '${admin_Password}'
host_port: 'mssqltest:1433'
env: prod
username: '${admin}'
pipeline_name: 'urn:li:dataHubIngestionSource:6577e870-5dce-4458-bfc0-5f6d9c939579'

Hey @sz-justinwang , can you please add more details about observed and expected behaviour for this issue ?

Hi @sz-justinwang  this seems like a troubleshooting issue, rather than a bug. We're happy to provide community support on our Slack channel, but currently reserve git issues for bugs.
If you're still having trouble, please join us at [slack.datahubproject.io](https://slack.datahubproject.io) and we can troubleshoot there. For now, I'm going to close this issue.


Skipped tests listed in failed tests.

I run the same tests for multiple browsers (using browserstack). Some tests are skipped for certain browsers. The problem is, when one browser fails a test, other browsers that skipped that test are listed in the failed tests section. This prevents me from knowing which browser actually triggered the failure.
You can see below that 1 test is skipped and 1 test failed, but 2 browsers are listed in failed tests.
SUMMARY:
✔ 18 tests completed
ℹ 1 test skipped
✖ 1 test failed

FAILED TESTS:
  css-vendor
    .supportedValue()
      ✖ should prefix if needed
        IE 11.0.0 (Windows 8.1 0.0.0)
        Android 4.1.2 (Android 4.1.2)

We will have a look. Are the results of the tests from browserstack public. So that we can see the other results?

It happened while I was working on a PR locally, so the test result is not public. But there was no log indicating a problem except the summary of failed tests I posted above was not correct.
You can check out the test file here:
https://github.com/cvle/css-vendor/blob/fix-failing-tests/src/index.test.js
And the karma config:
https://github.com/cvle/css-vendor/blob/fix-failing-tests/karma.conf.js

I am sorry but I am not able to reproduce the problem so far. I will close the issue for now. Feel free to open it again when there is maybe a reproducible test case.

Seems to work with the newest version. I probably had some old version installed. Sorry for wasting your time.

This is still happening. I'll open this again, once I have a minimal repo to reproduce this.

I've noticed this error when I do the following.
I run a test in multiple browsers, but skip the test in some browers. The report consistently comes out as failed.
describe(function() {
  before(function() {
    // Only run this suite in Firefox
    if (navigator.userAgent.indexOf("Firefox") === -1) this.skip();
  });

  it("always passes or skips", function() {
    expect(1).toEqual(1);
  });
});

"karma-mocha-reporter": "2.2.3"

reporters: ['junit', 'mocha', 'coverage-istanbul'],
mochaReporter: {
   showDiff: true
},


Update definitions to allow booleans in the options

Options can also be booleans, and even though true will goof up the module, false does change the way this module works.

even though true will goof up the module, false does change the way this module works.

IIRC you can use a primitive value type in type specifications. In fact, in TypeScript boolean is already a union type of true|false, so you could write string | false here instead.

IIRC you can use a primitive value type in type specifications (in fact, in TypeScript boolean is already a union type of true|false). I'd suggest writing string | false here instead, if that better represents the set of types that this function expects.

If that's true, then great, I will check it out.
I tried to find information about that, since I was indeed trying to only allow false, but I didn't find any information relating to that.

Indeed, it works!

I tried to find information about that, since I was indeed trying to only allow false, but I didn't find any information relating to that.

Yeah, I did try to find links to the docs to add to my comment, but couldn't. These internals seem to be poorly documented, even though they do simplify the mental model.
For reference, I got that info from the "What's New in TypeScript" talk in Microsoft's Build 2018 conference. The relevant part starts at 25:54.


Replaced class DateIterator with an object expression as requested in…

… the task description.

Thanks for noticing it! I fixed the task description to provide the alternatives.


Evaluate Profile-Guided Optimization (PGO) and LLVM BOLT

Feature Request
Is your feature request related to a problem? Please describe:
Not a feature. Just an idea of how to improve the performance of the KCL ecosystem. If it's a wrong issue type - would be nice if you fix it.
Describe the feature you'd like:
According to the tests, Profile-Guided Optimization (PGO) helps a lot with performance optimization, especially for compiler-like workloads (like Rustc, Clang, GCC and others). I think would be a good idea to try to apply PGO on KCL tooling. The tooling performance is important since it reduces CI costs and improves the local development experience (quicker write-compile-check feedback loops).
We need to evaluate PGO performance improvements for the KCL ecosystem. And if it improves things somehow, we have the following ways:

Write a note in the documentation about PGO results with KCL compilers. So maintainers and end-users would know it and possibly consider using PGO for their own builds
Optimize distributed by KCL binaries with PGO. It could be a bit trickier option since you need to prepare/collect somehow a "generic-enough" profile. Maybe the Rustc project experience would be valuable here.

For the Rust projects, I suggest starting with cargo-pgo.
After PGO would be a nice idea to evaluate LLVM BOLT as well (e.g. Rustc compiler is already PGO+BOLT optimized on some platforms).
More materials about PGO (more showcases, possible caveats, other options like AutoFDO, etc) you can find here.
Describe alternatives you've considered:
Do nothing :)
Teachability, Documentation, Adoption, Migration Strategy:
Not sure what to write here. I think at least a page in the documentation about building the tooling itself with PGO is worth it.

I think you are right. PGO has already made performance contributions in many compilers, and trying to use PGO in KCL is beneficial for the entire ecosystem. It is best to have corresponding documentation added to this. ❤

As there have been no further updates on this issue for more than three months, I will close it to keep the issue list tidy.


As a user, I want to find users with just the first few characters of his name so that I can find my contacts without knowing his full name.

E.g. typing "Ber" also finds "Bernice"

As a forgetful user


Integration Test - Release - 2019/04/02 02:40:14

Auto create for integration test. AnotherAuthorUpdatedArticleFlow

@PRMergerTest3 : Thanks for your contribution! The author, @v-caxian, has been notified to review your proposed change.


sgs method error in c++ build

some error when build c++ code in vs 2019
see readme from https://github.com/tantelu/HPGL-

Hello, @tantelu !
I appreciate your help. I am going to check that code compiles and runs successfully and then I will merge your changes to repository. I created pull request #9 for that

@Snegovikufa   the error need  change  'struct sgs_params_t'  to   'class sgs_params_t' in  file  api_helpers.hpp


change paddings in ConverterScreen

Issue

fix #

Overview

Reference

Screenshot

Before
After

JaCoCo Code Coverage 77.22% :white_check_mark:

Class
Covered
Meta
Status

  Generated by :no_entry_sign: Danger

Snapshot diff report

File name
Image


Exception: input_dir does not exist

Hi,
We are a student group looking into the paper and we are trying to make the code work and retrain the network on Google Colab (maybe with smaller dataset).
We added the untrained network on Google Colab, changed paths to match the input, output directories.
We selected "train" as a parameter but we are getting this error:

Any idea what is happening?
here is the code beginning and folder structure

Best regards,
Alin.

Hello,
What is the complete command line output when you try to run the method? What is the result if you add print(input_dir) line 360 (in the load_examples function)?
Out of curiosity, in which context are you looking into the paper?

Hi Valentin,
This is the full output:
error.pdf
This is the output after I add the print ("look here:"  input:dir)
error with print (look here ).pdf
It is weird because the path is there with some training images...

We are following a basic ML course and we reviewed this project and the other 2 you have. The aim is to change some parameters (maybe a different optimizer) and retrain the network. We can maybe try with a real-life data set as well.
By the way is this network specifically using any pooling?

Ah! what is the course/university (this is simply out of curiosity)?
For the problem it seems to come from os.path.exists which doesn't manage to check existence on the drive or the path is incorrect (since you have just shown that input_dir is not none)
What happens if you run a new python console and simply run:
import os
os.path.exists('/content/drive/MyDrive/Colab Notebooks/Machine learning Programs/Algo 1 - Single image SVBRDF/inputExamples')

I tried a new file in Google Colab and mounted the drive and I tried the code you suggested. It came up as true.
I tried the same code in the work file and it comes up as True as well...
Maybe Google Colab is not the best for this task and there are some permission issues? Should we do it offline?
It's from Aarhus University Denmark  - Technology Based Business Development :) Is it possible to contact you further on for clarifications regarding the paper? We are struggling with understanding some things.

And if you try to add to the code before the if statement:
print(input_dir is None)
print(not os.path.exists(input_dir))
Which one comes back as True?
Yes you can contact me, I will try to help --in the limit of my available time though. To answer your previous question: there are not mean or max pooling in this architecture to reduce the resolution between convolution. The global feature track uses the average of the features (but  I don't think this is what you meant?).

First one False
Second one True
Yes of course, thanks :).

We also used your trained network to get an output from a 256 wall paper image.
With the parameter "eval" and we got these files:

There are the 4 feature maps, but what are the others? like the target and input ones?

Inputs is the input image (log corrected to visualize what the network received) and targets are the ground truth associated with the input image (this is only useful in test mode, in eval I replace it with black images since we don't have the ground truth parameters). I could have not save them but I didn't have the time to polish that much back then and it doesn't prevent usage.

ok thank you!


[stable/traefik] jaeger tracing error in TOML

Describe the bug
When I want to enable jaeger tracing in the traefik helm chart, the values get incorrectly passed into the chart and break the deployment.
I use the following segment to enable jaeger
tracing:
  enabled: true
  serviceName: traefik
  backend: jaeger #choices are jaeger, zipkin, datadog
  jaeger:
    localAgentHostPort: "<IP_ADDRESS>:6831"
    samplingServerURL: "http://localhost:5778/sampling"
    samplingType: const
    samplingParam: 1.0

And after the deployment I get a CrashLoopBackOff because of a faulty config:
2020/02/19 09:05:15 Error reading TOML config file /config/traefik.toml : toml: cannot load TOML value of type int64 into a Go float
The generated TOML looks like this:
apiVersion: v1
data:
  traefik.toml: |
    # traefik.toml
    logLevel = "info"
    InsecureSkipVerify = true
    defaultEntryPoints = ["http","https"]
    [entryPoints]
      [entryPoints.http]
      address = ":80"
      compress = true
      [entryPoints.https]
      address = ":443"
      compress = true
        [entryPoints.https.tls]
          [[entryPoints.https.tls.certificates]]
          CertFile = "/ssl/tls.crt"
          KeyFile = "/ssl/tls.key"
      [entryPoints.traefik]
      address = ":8080"
      [entryPoints.prometheus]
      address = ":9100"
    [ping]
    entryPoint = "http"
    [kubernetes]
    [traefikLog]
      format = "json"
    [api]
      entryPoint = "traefik"
      dashboard = true
    [metrics]
      [metrics.prometheus]
        entryPoint = "prometheus"
    [tracing]
      backend = "jaeger"
      serviceName = "traefik"
      [tracing.jaeger]
        localAgentHostPort = "<IP_ADDRESS>:6831"
        samplingType = "const"
        samplingParam = 1

So it seems to me somewhere along the way the float gets converted to int and injected into the toml, which breaks the config. If I manually kubectl edit cm and set the samplingParam from 1 to 1.0, the deployment starts working.
This conversion should be fixed in the helm chart
Which chart:
stable/traefik

It seems like you should add quotes to samplingParam option like samplingParam: "1.0"


Fix: Exempt "_bucket" suffix from PossibleNonCounterInfo warning

Related to PR #12152

CC @zenador @beorn7


Cyclic chains disappear from canvas when try to Edit in the sequence mode

Steps to Reproduce

Switch to Macro mode

Open file with Cyclic Chain
ketcher.zip

Switch to sequence mode

Select any T >> context menu >> Edit

Try to add latest any letter (A)

Actual behavior
Cyclic bond is moved to the next latest place.
All chains disappear from canvas when try to add new letter to latest place in the sequence mode
Expected behavior
Cyclic chains should not disappear from canvas when Edit in the sequence mode.
Attachment:
https://github.com/epam/ketcher/assets/161723514/ad7c737b-6a7e-4610-b04e-0a4d044dc059
Desktop (please complete the following information):

OS: Windows 11
Browser Chrome
Version 112.0.5615.138 (Official Build) (64-bit)

Version
Ketcher Version 2.20.0-rc.3 Build at 2024-04-26; 16:57:15
Indigo Toolkit Version 1.19.0-rc.3.0-gf2d7689b8-wasm32-wasm-clang-12.0.0

An issue, found while testing this bug fix, was moved to a separate ticket: https://github.com/epam/ketcher/issues/4706

Verified as fixed for CI 2.22 rc1 - new bug is added

https://github.com/epam/ketcher/issues/4706


open_datatree(group='some_subgroup') returning parent nodes

What is your issue?
@aladinor Noticed this during a demo a few meetings back but I don't think we followed up on this.
If you have a DataTree of this shape.
<xarray.DataTree>
Group: /
│   Dimensions:        (lat: 1, lon: 2)
│   Dimensions without coordinates: lat, lon
│   Data variables:
│       root_variable  (lat, lon) float64 16B ...
└── Group: /Group1
    │   Dimensions:      (lat: 1, lon: 2)
    │   Dimensions without coordinates: lat, lon
    │   Data variables:
    │       group_1_var  (lat, lon) float64 16B ...
    └── Group: /Group1/subgroup1
            Dimensions:        (lat: 1, lon: 2)
            Dimensions without coordinates: lat, lon
            Data variables:
                subgroup1_var  (lat, lon) float64 16B ...

And you specify a path with group= you still get a nested tree but with empty groups for the groups that were not specified.
In  [1]: open_datatree('filename.nc', engine='netcdf4', group='/Group1/subgroup')
Out [1]:
<xarray.DataTree>
Group: /
└── Group: /Group1
    └── Group: /Group1/subgroup1
            Dimensions:        (lat: 1, lon: 2)
            Dimensions without coordinates: lat, lon
            Data variables:
                subgroup1_var  (lat, lon) float64 16B ...

I thought the expected result would be to only return the group specified with all of it's child nodes (if it has any), something like:
<xarray.DataTree>
Group: /Group1/subgroup1
            Dimensions:        (lat: 1, lon: 2)
            Dimensions without coordinates: lat, lon
            Data variables:
                subgroup1_var  (lat, lon) float64 16B ...

CCing the usual squad @shoyer, @keewis, @TomNicholas, @owenlittlejohns, and @flamingbear

Yes, good catch, we should fix that. I think the returned result has to be
<xarray.DataTree>
Group: /subgroup1
    Dimensions:        (lat: 1, lon: 2)
    Dimensions without coordinates: lat, lon
    Data variables:
        subgroup1_var  (lat, lon) float64 16B ...

The simplest way to to fix this would be to prune the groups_dict returned by open_groups_as_dict before giving it to DataTree.from_dict (or returning it like open_groups does, because this issue likely applies there too).
The proper way to fix it would be to fix the behaviour of open_groups_as_dict.
FYI the conclusion of the discussion today was that any coordinates defined above subgroup1 should be ignored by default.
Are you up for taking this one on @eni-awowale ?

Thanks, @eni-awowale, for bringing this up. I am working on it, and I think it will be resolved soon.

I think what we talked about yesterday was to make subgroup1 the root of the returned DataTree object, and then we can attach a source_group (or something similar) encoding in case we want to look up where the tree came from.

make subgroup1 the root of the returned DataTree object

Yep that's what I was trying to say above.

attach a source_group

Oh yes, good point.

I am working on it

Do you want to post up your PR @aladinor (even if it doesn't work yet)? Then we can help get it in asap.


kefia does not compile using qml-rust 0.0.6

$ sed -ibak 's|qml \([0-9\.]*\) |qml 0.0.6 |g' Cargo.lock
$ git diff
diff --git a/Cargo.lock b/Cargo.lock
index 4503ece..0004a73 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3,7 +3,7 @@ name = "kefia"
 version = "0.1.0"
 dependencies = [
  "lazysort 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "qml 0.0.4 (git+https://github.com/White-Oak/qml-rust.git)",
+ "qml 0.0.6 (git+https://github.com/White-Oak/qml-rust.git)",
  "regex 0.1.71 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
$ cargo build
    Updating git repository `https://github.com/White-Oak/qml-rust.git`
    Updating registry `https://github.com/rust-lang/crates.io-index`
   Compiling kefia v0.1.0 (file:///Users/nbigaouette/kefia)
<qml macros>:30:47: 30:52 error: the trait bound `&str: std::convert::From<&qml::QVariant>` is not satisfied [E0277]
<qml macros>:30 let $ rolename = v . next (  ) . unwrap (  ) . into (  ) ; ) * (
                                                              ^~~~~
src/view.rs:45:1: 52:2 note: in this expansion of Q_LISTMODEL! (defined in <qml macros>)
<qml macros>:30:47: 30:52 help: run `rustc --explain E0277` to see a detailed explanation
<qml macros>:30:47: 30:52 note: required because of the requirements on the impl of `std::convert::Into<&str>` for `&qml::QVariant`
<qml macros>:63:24: 63:65 error: mismatched types [E0308]
<qml macros>:63 next . into (  ) ; ) * self . $ slotname ( $ ( $ slotvar ) , * ) } , ) * $ (
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/view.rs:102:1: 112:3 note: in this expansion of Q_OBJECT! (defined in <qml macros>)
<qml macros>:63:24: 63:65 help: run `rustc --explain E0308` to see a detailed explanation
<qml macros>:63:24: 63:65 note: expected type `std::option::Option<&qml::QVariant>`
<qml macros>:63:24: 63:65 note:    found type `()`
<qml macros>:63:24: 63:65 error: mismatched types [E0308]
<qml macros>:63 next . into (  ) ; ) * self . $ slotname ( $ ( $ slotvar ) , * ) } , ) * $ (
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/view.rs:102:1: 112:3 note: in this expansion of Q_OBJECT! (defined in <qml macros>)
<qml macros>:63:24: 63:65 help: run `rustc --explain E0308` to see a detailed explanation
<qml macros>:63:24: 63:65 note: expected type `std::option::Option<&qml::QVariant>`
<qml macros>:63:24: 63:65 note:    found type `()`
error: aborting due to 3 previous errors
error: Could not compile `kefia`.

To learn more, run the command again with --verbose.

I need 0.0.6 to be able to compile on OSX (see https://github.com/White-Oak/qml-rust/commit/0c14028e3fa5c40f79725b452d0c0a7cf0e30374)

It should now compile, but probably won't run, since that's a GUI for arch package manager.


Zend\Mime\Decode fails if the first line of a part contains a colon

Zend\Mime\Decode::splitMessage() uses strtok() to search for \n in the message part.  As of PHP 4.1.0, strtok() won't return an empty string if the $str starts with the $token, so if there are no headers and no whitespace (explicitly allowed via RFC 1341) and only 1 carriage return at the start of the part, the first line of the part is checked for a header format.  If that line contains a colon, the code thinks it's a header and fails to parse it.
Here's code that demonstrates the issue:
<?php
require_once __DIR__.'/vendor/autoload.php';
$msg = <<<EOD
X-Original-To<EMAIL_ADDRESS>From: Nathaniel Borenstein<EMAIL_ADDRESS>To:  Ned Freed<EMAIL_ADDRESS>Subject: Sample message
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="simple boundary"

This is the preamble.  It is to be ignored, though it
is a handy place for mail composers to include an
explanatory note to non-MIME compliant readers.

--simple boundary

This is implicitly typed plain ASCII text. 10:00:00 PM
It does NOT end with a linebreak.

--simple boundary--
This is the epilogue.  It is also to be ignored.
EOD;

$obj = new Zend\Mail\Storage\Message(array('raw' => $msg));
$obj->countParts();

Closing this and moving to the correct repository: https://github.com/zendframework/zend-mail/issues/85

Nevermind, this was fixed in https://github.com/zendframework/zend-mime/pull/7


Added maxRxFragSize to .NET bindings.

Hi, as suggested, I've raised this PR against 2.0.x

Thanks Darren