Add support for parameterized BlackBoxes

Also restrict black boxes to not allow hardware inside of them since it was
being silently dropped anyway.
Resolves #289
This PR obviously depends on ucb-bar/firrtl#314 in order to pass tests. Also, thanks to the new Firrtl feature where extmodules can overwrite their name, Chisel emits BlackBoxes that will always get their desired names.
The current API proposed by this PR is to make blackbox parameters be an argument to the BlackBox abstract class of type Map[String, Any] where Any is dynamically checked to be only be Int, Long, BigInt, Double, or String. This leads to the use in one of the test cases of:
class BlackBoxConstant(params: Map[String, Any]) extends BlackBox(params) {
  val io = new Bundle {
    val out = UInt(width = params("WIDTH").asInstanceOf[Int]).asOutput
  }
}

class BlackBoxWithParamsTester extends BasicTester {
  val blackBoxOne  = Module(new BlackBoxConstant(Map("WIDTH" -> 1, "VALUE" -> 1)))
  val blackBoxFour  = Module(new BlackBoxConstant(Map("WIDTH" -> 3, "VALUE" -> 4)))
  ...
}

Alternatively, params could be a def overridden in the BlackBox body itself, then users could pass their parameters however they see fit and transform them to the Map[String, Any] in the body of the BlackBox.
I'm not the biggest fan of the above syntax and am certainly open to suggestions.

Looking forward to trying this out soon.  @mwachs5

Yes, looking forward to this!
Not sure I understand your comment "Alternatively, params could be a def overridden in the BlackBox body itself, then users could pass their parameters however they see fit and transform them to the Map[String, Any] in the body of the BlackBox."
Do you mean that is currently an option, or are you looking for feedback on whether that would be a nicer API? I'm not sure it's that big a difference, since you can always do arbitrary processing and construction of the parameters in a subclass, as you've demonstrated.
I haven't used the crazier parameter types being discussed on the firrtl list.

I'm just looking for feedback for a possibly nicer API. You're right that it's not a huge difference, but by passing the params to the BlackBox superclass constructor, you don't have a whole lot of "space" if you will to do the conversion. Let's pretend we're using CDE and the API is instead to override a def:
class BlackBoxConstant(implicit p: Parameters) extends BlackBox {
  val io = new Bundle {
    val out = UInt(width = p("WIDTH")).asOutput
  }
  override def params = Map("WIDTH" -> p("WIDTH"), "VALUE" -> p("VALUE"))
}

class BlackBoxWithParamsTester extends BasicTester {
  implicit val p = ...
  val blackBoxOne  = Module(new BlackBoxConstant))
  val blackBoxFour  = Module(new BlackBoxConstant))
  ...
}

Basically, we could instead just use our own parameter system and convert to the BlackBox parameter system inside the BlackBox body itself rather than needing the Map[String, Any] available to be passed to the BlackBox superclass constructor.

I think I prefer this later interface. This way the parameters are kept with the module they are describing.
It's also more aligned with how you handle 'io'. we don't pass that in to the BlackBox constructor, so why should parameters be different.

If the initialization code of the BlackBox doesn't need params (by quick inspection, it doesn't) then it seems unnecessary to pass as a constructor parameter. You may want to define it as the empty map (perhaps as a def) and have users override to supply their own, like with name.
This scheme also avoids needing to obfuscate the code where you force the user to upcast the parameter  to Any and then downcast to 'whatever'.

That seems awkward, especially given that the common case is that BlackBoxes will take parameters.

If I'm parsing this thread right, @sdtwigg's opinion is about purity of style, and so is mostly a distraction from the usability discussion at hand.  OTOH, I think @mwachs5's argument stems from the notion that parameters, like io, are part of a module's interface; their types/names should be part of the module declaration, whereas their values should be bound at instantiation time.  @jackkoenig's second proposal partially achieves that goal, but doesn't illustrate the opportunity for type safety, and doesn't illustrate that it can be done with DRY.
I still favor the approach of passing args to the BlackBox constructor.  I think it's akin to parameterizing a Module on type.  Consider Queue.  Ignoring the Scala type system for a thought experiment, you could consider making it an abstract class, which you make concrete with "def tpe = foo."  That would achieve the same thing as passing tpe to the Queue constructor, but seems more awkward.
Similarly, it's not uncommon to parameterize Module based on an integer parameter, like the width of a signal.  To me, it's most natural to pass that as an arg to the constructor.

If I'm understanding your point correctly, Andrew, then here's an updated version of the original example:
class BlackBoxConstant(value: Int) extends BlackBox(
    Map("WIDTH" -> log2Up(value), "VALUE" -> value) {
  require(value >= 0)
  val io = new Bundle {
    val out = UInt(width = log2Up(value)).asOutput
  }
}

class BlackBoxWithParamsTester extends BasicTester {
  val blackBoxOne  = Module(new BlackBoxConstant(1))
  val blackBoxFour  = Module(new BlackBoxConstant(4))
  ...
}

Something more like that?

I think that looks pretty clean, as far as BlackBoxes are concerned.

I argue the example illustrates the downside of forcing the parameters to be resolved for the BlackBox module.
Both the parameter map and blackbox IO had to replicate the parameter processing (log2Up(value)). While the computation could be abstracted to a function in the companion object, there is no good caching place (since the class has yet to be constructed) leading to inefficiency. Trying to extract from the map itself requires the type casts, which at the very least are fairly lengthy. This all just seems so unnecessary since the BlackBox constructor doesn't even use the params.
You can use early initializer syntax to bypass but that ends up looking far worse....
class BlackBoxConstant(value: Int) extends {
  require(value >= 0)
  val width = log2Up(value)
} with BlackBox(Map("WIDTH" -> width, "VALUE" -> value))
{
  val io = new Bundle {
    val out = UInt(width = width).asOutput
  }
}

However, this is particularly risky because the internals of Chisel are not designed to handle general use of early initializers. (Here, it is probably fine. In general Modules, you run a high risk of error.)

Alright I've updated this to support unquoted string parameters (RawParam), and to use implicit conversions rather than the hacky matching thing before. This will still fail until the Firrtl-side is merged, and I'm still passing a map to the BlackBox abstract class constructor. Now it's a Map[String, Param] instead of Map[String, Any]

Bumping this since Firrtl master now supports it.
Kind of ironically given #332, this requires Verilator being invoked with O1 or higher. The BlackBoxWithParamsTester gets the following warning and error:
-Info: Command Line disabled gate optimization with -Og/-O0.  This may cause ordering problems.
%Error: Internal Error: ../V3File.h:156: : /tmp/BlackBoxWithParamsTester7512079037470064518/VBlackBoxWithParamsTester_BlackBoxTypeParam__z1549.cpp: Underflow of indentation
%Error: Internal Error: See the manual and http://www.veripool.org/verilator for more assistance.

I would love an alternative fix but I'm really not sure what the deal is here.
The API is still to pass Map to BlackBox constructor. There's some disagreement on this so we should decide what to do so I can either implement what's different or go ahead and merge.

-O1 enables several individual -f options.  You could try to figure out
which option is actually necessary and enable only that one.
On Thu, Oct 27, 2016 at 2:23 PM, Jack Koenig<EMAIL_ADDRESS>wrote:

Bumping this since Firrtl master now supports it.
Kind of ironically given #332
https://github.com/ucb-bar/chisel3/pull/332, this requires Verilator
being invoked with O1 or higher. The BlackBoxWithParamsTester gets the
following warning and error:
-Info: Command Line disabled gate optimization with -Og/-O0.  This may cause ordering problems.
%Error: Internal Error: ../V3File.h:156: : /tmp/BlackBoxWithParamsTester7512079037470064518/VBlackBoxWithParamsTester_BlackBoxTypeParam__z1549.cpp: Underflow of indentation
%Error: Internal Error: See the manual and http://www.veripool.org/verilator for more assistance.
I would love an alternative fix but I'm really not sure what the deal is
here.
The API is still to pass Map to BlackBox constructor. There's some
disagreement on this so we should decide what to do so I can either
implement what's different or go ahead and merge.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ucb-bar/chisel3/pull/293#issuecomment-256773923, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA-7wjL5r605msMjthJZAs0dK3uy5ogTks5q4RY8gaJpZM4KEo92
.

I'm having trouble finding any documentation about specific optimizations but I found this concerning gem:
-Ooptimization-letter

Rarely needed. Enables or disables a specific optimizations, with the optimization selected based
on the letter passed. A lowercase letter disables an optimization, an upper case letter enables it.
This is intended for debugging use only; see the source code for version-dependent mappings of
optimizations to -O letters.

Note: see the source code for version-dependent mappings of optimizations to -O letters.

See https://github.com/riscv/riscv-old-gcc/blob/riscv-gcc-6.1.0/gcc/opts.c#L442
-O1 enables all the ones marked OPT_LEVELS_1_PLUS.

@jackkoenig Do you have the example you used packed somewhere? I can have a look at the verilator issue

Hi @wallento, I made a git repo from the failing test:  https://github.com/jackkoenig/verilator-issue
If you do just make it will build and run the test. However if you do:
make clean
make VOPT=0

You will get the following error:
-Info: Command Line disabled gate optimization with -Og/-O0.  This may cause ordering problems.
%Error: Internal Error: ../V3File.h:156: : obj_dir/VBlackBoxWithParamsTester_BlackBoxTypeParam__z1549.cpp: Underflow of indentation
%Error: Internal Error: See the manual and http://www.veripool.org/verilator for more assistance.

I can also provide instructions on how to reproduce the error from chisel3 tests but I thought this way would be easier.

Thanks, @jackkoenig. I am onto it, it is an emitter issue with the parameter generation. For types it ends up using an invisible character (\x0 to make it worst). File name generation and emitting into that file hence fail epically. This only happens with -O0 as it then emits the whole hierarchy, with -O1 it already optimized that out.
I think I can fix this today, will submit a verilator patch and push it to a public repo for testing.

I solved the issue and submitted the patch to verilator here: http://www.veripool.org/issues/1101-Verilator-Fix-SmallName-for-ParamTypeDType
Please use my Verilator repository at branch fix-typeparamname for testing: https://github.com/wallento/verilator/tree/fix-typeparamname
Looking forward to your feedback. I hope that will be merged into the next version of verilator then.

thanks @wallento!

Thanks so much! I look forward to this fix being part of a release. In the meantime, do you think we should just stick to -O1 or should we specifically add in whatever optimizations prevent this from happening?

I would only use -O0 when really necessary. I still need to understand the issue why you are moving to it fully, but I think we are talking about a huge loss of performance here. I will look up over the weekend if there is a combination of -O0 and switches for the current verilator build to workaround.

We certainly don't need to. We moved away from -O2 because we were running out of memory on Travis runs, but it really is only a bandaid fix. As for performance, these Verilator runs are really small unit tests where the build time far dominates run time. Anyone using Verilator for actual simulation should be invoking it themselves, not using this repo's helper functions for its own testing. I'm intending to remove this functionality altogether from chisel3 and firrtl in the near future.

Ah, I see. For your case you should consider trying VM_PARALLEL_BUILDS=1 make -j8 that will speed up build times significantly, as here: https://github.com/ucb-bar/rocket-chip/blob/master/emulator/Makefrag-verilator#L69

The patch is applied to the verilator source tree by the way and will be in 3.889.

Nice!
On Sat, Nov 5, 2016 at 6:44 AM, Stefan Wallentowitz <
<EMAIL_ADDRESS>wrote:

The patch is applied to the verilator source tree by the way and will be
in 3.889.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ucb-bar/chisel3/pull/293#issuecomment-258612436, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA-7wuQ1oste-SRVji29xALs_bnsyQQJks5q7IghgaJpZM4KEo92
.

Poking this again, it's a very desirable feature and it's blocking #347.
The current API is that the abstract class Blackbox can accept a Map[String, Param] and Params box BigInt, Double, or String.
This has some limitations if you want to convert from some custom parameter system to this system, you might have some code duplication in the body of the blackbox for using the same parameters to create the ports. There's also the awkwardness that maybe instead of a Map[String, Param], parameters should have a String "name" field and it should just be Seq[Param]. Also, a possible alternative to passing the parameters to the Blackbox constructor is to override some method parameters.

Who are you poking exactly?

Anyone in general, I think this is a desirable feature but as a public API it requires some agreement

I think this API is good enough for a first pass and we should just mark it as experimental and merge it.


Fix Gauge release brew+Github workflows

Oof, the release workflow failed so it's a mess.

GitHub release failed as hub is gone now: https://github.com/actions/runner-images/issues/8362 - need to

migrate to gh (which this PR does). See gh release upload.
OR re-install via sudo apt-get update && sudo apt-get install -y hub

Brew formulae were sharded in https://github.com/Homebrew/homebrew-core/pull/139592

@haroon-sheikh @zabil do you know if the rest of the release workflows are idempotent and can be re-run? (pypi, npm, choco)
(edit: I think I can probably just merge this with version 1.5.5 as-is, then cancel the three "already run" workflow jobs to avoid them messing anything up and allow the two failed ones to re-run - as there doesn't seem to be anything upstream or downstream that is dependent?)
Or I'll need to bump the version again, hope it works and otherwise just deal with the missing GH tag/release notes etc for 1.5.5?

Thx @haroon-sheikh have changed to use your more efficient/simpler approach.


⚠ Jenkins Plugins Artifactory has degraded performance

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

HTTP code: 200
Response time: 1170 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 9ed77b6 after 59 minutes.


Improve visibility display in SceneInspector

If an object has the visibility attribute set to On, but a parent has visibility set to Off, the SceneInspector will display the visibility attribute as being On for the object. While this is technically true, it's not very helpful - we need to indicate that although the setting for this object is On, the effective setting is Off because a parent is invisible.
Any preferences as to how we do this? Here are a couple of ideas :

Display two rows. "Visibility" and "Effective Visibility", where the latter is Off if any parents are Off.
Do what we do now, but have a little warning triangle when a parent is hidden - clicking on this could launch the inheritance diagram to show what's happening.

I think I prefer 2), but I'm open to other opinions/ideas.

I think I'd like to get this one prioritised a bit higher, since it seems that understanding attribute inheritance is a key thing for users, and we're downright lying in the UI in this one case.


[flutter_tools] ensure the tool can find SDK manager on windows

Description
The SDK manager lookup had a fallback path for checking the old version of platform tools that relies on file existence of sdkmanager executable. Unfortuantely, this file is called sdkmanager.bat on windows, so the test for this file fails.

is this merged in dev channel or master

@sandy9808 yes, it was just published in 1.18.0-dev.3.0


investigate sqlite3 vs pysqlite3-binary difference

import sqlite3
import pysqlite3

sql = '''WITH xs AS (SELECT json(1) x) SELECT json_group_array(x) FROM xs'''

def go(module):
    c = module.connect(':memory:')
    rv = c.execute(sql).fetchall()
    print('{}: {}'.format(module.sqlite_version, rv))

go(sqlite3)
go(pysqlite3)

Gives this output:
3.31.1: [('[1]',)]
3.40.0: [('["1"]',)]

This was the root cause of #97

I first repro this with 3.39.0 (pysqlite3-binary 0.4.7post6)

Hm, I think the new behaviour is by design :(
See https://sqlite.org/forum/forumpost/c96206d45c6122e1c81fc18d220fd3d5e183aac9f08294fb242671398090a44d

Also see https://sqlite.org/forum/info/a37d3531d0d1665013007e61d

The gist seems to be: the JSON functions can introduce a new JSON type (as opposed to the standard REAL, TEXT, BLOB, etc).
This type was previously allowed to escape subqueries, which introduced the opportunity for inconsistency.
It no longer is permitted to do that, and is serialized as a string when it escapes.
Can we get the same behaviour by explicitly casting to text?


Autocomplete not work under some circumstance

Issue Type: Bug
In the code below, it can't autocomplete finditer after pattern, actually, it doesn't show any suggestion after I input the '.' after pattern.
import re

sentense = """
Mr. Schafer
Mr Smith
Ms Davis
Mrs. Robinson
Mr. T
"""

pattern = re.compile(r"(Mr|Ms|Mrs)\.?\s[A-Z]\w*")
matches = pattern.finditer(sentense)
for match in matches:
    print(match)

Extension version: 1.1.5
VS Code version: Code 1.33.1 (51b0b28134d51361cf996d2f0a1c698247aeabd8, 2019-04-11T08:27:14.102Z)
OS version: Windows_NT x64 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz (8 x 2112)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: enabledsurface_synchronization: enabled_onvideo_decode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
15.84GB (7.86GB free)

Process Argv

Screen Reader
no

VM
0%

I'm able to reproduce this. It looks like an issue with the Python language server since it's not returning any completions lists at all. I filed Microsoft/python-language-server#1015 for this issue.

Me too...


Ability to only show day view

By using the day-view-only prop, users can now opt to just display a day view.

Clicking the month button at the top of the calendar has no action.
Hovering over the month button will not change the background colour.
Month and Year views will not be rendered.
Added a demo on the Demo.vue
Updated the props section of the readme
Added unit tests

Thanks @danjohnson95


Offline Capability

Hello Snowplow Team,
does the SDK support a caching logic when being offline? As far as I can tell, I cannot set timestamps on my own, the SDK takes care of it. Let's say I am offline and I am collecting some ScreenViews. As soon as I'm online again, we send the collected events to the collection endpoint. The automatically added timestamps would be incorrect, right?

If so, could you please add the functionality to add a timestamp manually?

Hi @leo-neon
The tracker adds two timestamps by default, the first is the device clock of when the event was created. This happens as soon as you track any event. This is the dvce_created_tstamp in the warehouse.
The second timestamp is added to the event just before it is emitted to the Snowplow collector. This is dvce_sent_tstamp in the warehouse.
Using these two timestamps is usually enough to figure out if an event sat on the device for a prolonged period. In the Snowplow pipeline we then use the difference of these two timestamps, along with the collector_tstamp, to calculate the derived_tstamp which is a best guess at when the event actually occured. By using collector_tstamp here, we can use the trusted the server clock rather than the potentially unreliable device clock.
You can also set the True Timestamp of the event if you wish (which is a timestamp that you 100% know is when this event actually occured at, often used for backend/server-side tracking). Currently, I'm not sure this tracker supports setting the True Timestamp on an event (@matus-tomlein could you confirm?). You should be careful with this property however, as setting it will override other timestamps in the warehouse (such as derived_tstamp) which might impact your downstream data models if they use this timestamp.

I can confirm that the tracker does not currently provide the option to set the custom true timestamp property. We may add this feature, but it is not clear to me how this would help you, @leo-neon. As Paul said, the tracker automatically sets the dvce_created_tstamp at the time when the events are tracked and also adds another timestamp when the events are sent. How would you use the true timestamp that is different than the already added ones?

Our use case is the offline logic. Whenever I am offline, I am still collecting data about the visited screens - not with snowplow but I have my own TrackingData Object. Since I'm offline, these TrackingData objects are added to a queue waiting to be sent when network connection is back. I set the time of event occurrence in this object. As soon as I am online again - let's say 5 minutes later -, I want to use the track() method of the Snowplow SDK to track all the screen views of the last five minutes. At this moment, I am using the ScreenView constructor and then I'll track the ScreenView via Snowplow. The timestamps which are now added automatically would not reflect the actual time when the event occurred, right?

Or does the SDK already consider this and has it's own queue for that case?

That's amazing! Super cool that it works out-of-the-box. Thanks for the clarification :)


fix keywords.wit test for Java generator

Signed-off-by: Joel Dice<EMAIL_ADDRESS>

Thanks!


Remove unwanted translations

@lafeber kan je deze reviewen?

This plugin is outdated and the PR is no longer relevant.


Seed phrase screen new design

ADDITIONAL TASK: https://p2pvalidator.atlassian.net/browse/P2PW-1088

The TermsAndConditionsVC has been removed from develop, so let's remove TermsAndConditionsVC, use WLMarkdownVC(title: L10n.termsOfUse.uppercaseFirst, bundledMarkdownTxtFileName: "Terms_of_service") instead

Can't find a place to remove, I thought I've already done it

The TermsAndConditionsVC has been removed from develop, so let's remove TermsAndConditionsVC, use WLMarkdownVC(title: L10n.termsOfUse.uppercaseFirst, bundledMarkdownTxtFileName: "Terms_of_service") instead

Can't find a place to remove, I thought I've already done it

Oh. I see, the file has been removed from the .xcodeproj, but still remains on repository.
I will approve this PR and remove upon merging. Thanks


Version 1.0.4 (Public Release)

Added configuration and evaluation script for Full FTW and CC-BY Countries training.
Added tensorboard for monitoring training progress.
Added torchgeo 0.7 version information in the upcoming features section.

By integrating the latest scripts you mean to say the download imagery and large-scale inferencing script? @cholmes

I will work on integrating these scripts in the next PR. Closing this PR for now since this PR was for a different purpose.

By integrating the latest scripts you mean to say the download imagery and large-scale inferencing script?

Yeah, exactly.


Helper Function for Signature checks

Created helper function to check signatures (single and multi)
Created test driver to test signature helper function

@snowypowers I see that the linting for this PR passes, but at the same time I see quite some inconsistency in the code style used. The following cases are all in there
if(something){
if (something){
if ( something){
if (something) {

I see prettier in the eslintrc. Shouldn't that have caught these "error"?

@snowypowers I see that the linting for this PR passes, but at the same time I see quite some inconsistency in the code style used. The following cases are all in there
if(something){
if (something){
if ( something){
if (something) {

I see prettier in the eslintrc. Shouldn't that have caught these "error"?

The lint rule only runs on modified files within packages folder.
helpers folder is for runnable helpers for administrative purposes. Please move all publishable code into packages.


Is the service API meant to validate the content of the access token and compare this against the API parameters ?

Problem description
It must be clarified, whether (for security reasons) a service API should use and/or validate the content of the access token against the API input respectively be enabled to use the access token content for the API logic implementation.
For improving security and assuring that the correct access token is used for an API call, it is suggested that a service API can interpret the access token content (eventually after an access token introspection call to the AuthZ server) and apply validation against the input parameters of the API.
Example: the access token has been acquired for MSISDN A, which is also noted in the sub claim of the access token. The service API, e.g. SIMSWAP should be enabled to compare the input MSISDN B against the MSISDN retrieved from the access token and only proceed when the comparison is successful.
In addtion there is a connection to ISSUE #171 "Revise the device object definition to simplify it" from the communalities work group. In this issue the wrong assumption is taken that the device can uniquely be derived out of the content of the "sub" claim of the access token. The recommendation in issue #171 does not fit the needs of the QoD API.
So it is of utmost importance to clarify the content of the access token in detail (not the format though) to avoid misinterpretation.
Expected action

Clarify the content of the access token in the different scenarios  (3-legged with different content of login_hint, 2 legged)
Clarify the recommended behavior of a service implementation

Additional context

Yes, the API server is supposed to validate the content of the access token and compare it with the API parameters. For example, in Commonalities there is a whole thread dedicated to the error scenarios related to the device identifiers provided as API parameters, and among these error scenarios are those corresponding to the validation of the device identifiers against the access token. https://github.com/camaraproject/Commonalities/issues/127
IMHO, the information associated with an access_token (whether it is self-contained or not) is actually implementation dependent on the operator side. Each operator could associate different information depending on their own requirements, but the information associated with the access_token is transparent to the API consumer (access_token is opaque). It would be up to the operators to internally resolve how the API server can validate the information associated with the access token. This has also been discussed in https://github.com/camaraproject/IdentityAndConsentManagement/issues/100 and from the TEF side we have also provided some clarifications in https://github.com/camaraproject/IdentityAndConsentManagement/issues/100#issuecomment-1911161417. I don't think CAMARA needs to standardise the information associated with an access_token.

Hi Jesus, I think that we are causing a severe problem here. The service APIs can be delivered by CSPs and by vendors.
Thus it must be clear to the developers of the service API, what the access token contains and how this is to be interpreted.
The fact that we do not give clear information about what is the content of the access token, especially how to interpret the content of the sub filed, causes a wrong assumption in the QOD Work group of CAMARA. They assume that they can derive the device out of the sub field of the access token and do not need a device object in the API call any more. This is wrong in general and causes misinterpretations.
I think that we must take action and clarify to avoid such misinterpretations.
I guess that it is not necessary to standardize all of the information associated with an access token. However, it would be good to clarify the content of some selected claims, especially "sub" and "scope".

Hi Jesus, I think that we are causing a severe problem here. The service APIs can be delivered by CSPs and by vendors. Thus it must be clear to the developers of the service API, what the access token contains and how this is to be interpreted. The fact that we do not give clear information about what is the content of the access token, especially how to interpret the content of the sub filed, causes a wrong assumption in the QOD Work group of CAMARA. They assume that they can derive the device out of the sub field of the access token and do not need a device object in the API call any more. This is wrong in general and causes misinterpretations. I think that we must take action and clarify to avoid such misinterpretations. I guess that it is not necessary to standardize all of the information associated with an access token. However, it would be good to clarify the content of some selected claims, especially "sub" and "scope".

Yes, that is exactly what is proposed here https://github.com/camaraproject/Commonalities/issues/171. Actually, I see the ability to rely on the access_token as quite beneficial for 3-legged uses cases, as explained in that issue.

Not sure how this works in the HomeDeviceQoD usecase.
The "user" authenticates and gives consent that API consumer may manage QoD at their residential wifi accesspoint.
For which internal ip address is unknown the the authorization server, which means the API consumer can manage all internal devices, right? In that case there would be no check (possible) which device gets better QoD. What the AZ knows (probably) is the public ip address of the wifi accesspoint which is then configured.
The access token must contain information which device to configure and also for which other internal device the API is used.
Is this correct and relevant to this discussion? Maybe I am missing something

Not sure how this works in the HomeDeviceQoD usecase.
The "user" authenticates and gives consent that API consumer may manage QoD at their residential wifi accesspoint. For which internal ip address is unknown the the authorization server, which means the API consumer can manage all internal devices, right? In that case there would be no check (possible) which device gets better QoD. What the AZ knows (probably) is the public ip address of the wifi accesspoint which is then configured.
The access token must contain information which device to configure and also for which other internal device the API is used. Is this correct and relevant to this discussion? Maybe I am missing something

It does not apply as explained here https://github.com/camaraproject/Commonalities/issues/171#issuecomment-2133397200

Hi Jesus, I think that we are causing a severe problem here. The service APIs can be delivered by CSPs and by vendors.
Thus it must be clear to the developers of the service API, what the access token contains and how this is to be interpreted.
The fact that we do not give clear information about what is the content of the access token, especially how to interpret the content of the sub filed, causes a wrong assumption in the QOD Work group of CAMARA. They assume that they can derive the device out of the sub field of the access token and do not need a device object in the API call any more. This is wrong in general and causes misinterpretations.

I think @eric-murray explains it much better than me here https://github.com/camaraproject/Commonalities/issues/171#issuecomment-2141501682

...with the current three-legged authorisation flows, only a single end user can be associated with the access token. For the OIDC authorisation code flow, only a single device can call the /authorize end point and get the code. And for CIBA, login_hint is currently restricted to being a single phone number or single IP address (+ optional port).

So basically the existing uses cases for Auth Code and CIBA will result in a 3-legged access_token that would allow operators to identify the device. Please keep in mind that we are talking for the scope of the next meta-release, as explained in that Commonalities issue. We will need further discussion for other potential scenarios we may have in the future.

CAMARA do not need to make normative statements about the access token. An access token accepted by an API implementation will also have been issued by that implementation, and hence the API provider should understand how the access token is to be validated and interpreted without any format or content requirements being imposed by CAMARA.
In the case that the API provider has outsourced implementation of the authorisation server and service API to different organisations, and these organisations are unable to communicate to agree how the access token should be generated and processed, well that is a problem for the API provider to sort out, and not CAMARA.
However, it might be useful to provide some end-to-end examples of transparent (e.g. JWT) access token use for calling CAMARA service APIs to help clarify the intended information flows and processing steps, particularly around identifying the end user. These could be added to the exiting ICM Examples document.

HI @Elisabeth-Ericsson can we close this. Please so then


Content add-ins lacks documentation

I have been searching for documentation on how to create content add-ins in vain. If it does exist, I feel this would be a nice place to put it since this documentation shows how to create a Task-pane add-in.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2b1c5f9f-b9c3-d10d-2096-1f023e7be021
Version Independent ID: 4ab72f5d-1ad6-1d82-9847-74c538957cfc
Content: Build your first PowerPoint add-in
Content Source: docs/powerpoint/powerpoint-add-ins-get-started.md
Product: office
GitHub Login: @o365devx
Microsoft Alias: o365devx

Hi @uranium78. I'm sorry to hear that you've had difficulty finding the information you need.
Here's a topic on Content add-ins and a code sample.

I'll go ahead and close this issue. If you need additional information, feel free to reopen the issue or log a new one. Thanks!

The problem was that the yo generator for add-ins doesn't generate content add-ins (or at least I couldn't get it to do it for me). Since I'm on macOS, I wasn't able to create content add-ins (without learning how to write the xml.
I ended up installing windows on a VM and installing visual studio. I used Visual Studio to generate the content add-in XML and copied the file to os X and it ran fine from there.
Thanks for the quick reply!

@uranium78 thanks for getting back to us on how you solved this problem. We'll add a note to the documentation so that other customers can leverage this solution. If you'd like to add the note yourself to get the contribution on your profile, feel free to make a PR. Thanks!

按照教程新建完工程一运行就崩溃了！！！然后取文件夹里面打开Presentation1.pptx也会直接崩溃！>_<！

Per Bing Translator, @fonlylovey's comment seems to be "Follow the tutorial after the new project is running and crashes!!! And then take the folder inside Open Presentation1.pptx will also crash directly!" in English.

@uranium78 by design, the quick start is intended to provide a quick primer on how to build a simple task pane add-in. That said, I certainly understand your predicament and appreciate the work-around that you've shared. You're absolutely correct that the doc set is currently missing detailed guidance for how to create a content add-in; we've created a work item in our backlog to create that new article (tracking internally with: 2412822) so I'm going to go ahead and close this issue.

I see a few add-ins exist for powerpoint which use the content add-in functionality.  Any idea where they got the info for developing these apps?

@butchmarshall I'm not certain as to what learning resources the developers of content add-ins for PowerPoint may have relied upon. However, if you want to create a content add-in for PowerPoint, I'd suggest that you consider using Visual Studio to do so, as you can create a simple content add-in for PowerPoint by using a built-in Visual Studio project template.
To do so, you can follow the steps in the Create the add-in project section of the PowerPoint add-in quick start -- but when you get to step 4 in those instructions, choose the option labeled Insert content into PowerPoint slides.  When you choose that template as a basis for creating your PowerPoint add-in in Visual Studio, the project that Visual Studio creates will contain the basic components for a content add-in.

(And as mentioned previously, there's a a work item in our backlog to create a new article that contains detailed information about creating content add-ins, so that new documentation will be underway soon.)

We recently addressed this and there are now quick starts showing how to create content add-ins through Visual Studio.

Excel
PowerPoint


NTR: birth cohort study design

The Ontology for Biobanking (OBIB) community is requesting that birth cohort study design be added to OBI with the following definition: A cohort study design for which the subjects are followed from the time of birth usually including information about gestation and follow up.

editor preferred term: birth cohort study design
alternative terms: none
textual definition: A cohort study design for which the subjects are followed from the time of birth usually including information about gestation and follow up.
definition source: MIABIS contributors
logical definition: subclass of 'study design'
example of usage: The LucKi Birth Cohort Study was designed and started in 2006 to follow children from birth into adulthood on a wide range of determinants, disorders, and diseases.
term editor: MIABIS

Discussed on the OBI 2019-06-10 developer call. Ready to add to OBI.

Fixed by #1035


Could not resolve collector.address

The key value pair is collector.address=http://<IP_ADDRESS>:8007/verigreen.
I can access the dashboard from web browser as shown in attachement.
However, while pushing the git chage, I am facing below exception message. How can I resolve it?

BeanDefinitionStoreException: Invalid bean definition with name 'collectorAddress' defined
in URL [jar:file:/var/atlassian/application-data/stash/bin/git-hooks/verigreen/h
ook/git-hook.jar!/Spring/git-hook-rest-context.xml]: Could not resolve placehold
er 'collector.address' in string value "${collector.address}"

@prakashsinhab - did you define the collector address in the hook.properties file?
Please check the installation for the hook as describe here:
https://github.com/Verigreen/verigreen/wiki/Verigreen-Hook-Deployment
section 2.
Let me know for any issue.

I feel that, from remote repository, hook.properties file, should also read this key value pair as it is, then, it will work out. I have suggested it within team. Once, she is back from her vacation, I will work out the solution with her coordination.
I wll update the solution trials in a couple of days.
Yes.

the hook properties file should belocated on the same machine where the pre-received hook is located (SCM machine).
if it is define that way, please add 'rest' to the link:
http://<IP_ADDRESS>:8007/verigreen/rest

@prakashsinhab - any news about this one? did you manage to set the hook and the collector?

I updated the URL with /rest action. I am, however, still facing the same issue. I would post the directory structure and file conent of configuration by end of this week.

Please find attached all of the specifications from files and directory structures.

localhost.2016-01-15.log.txt
config.properties.txt

Please suggest all possible missing links in this configuration so that I can take help from our ALM team IS team in updaing remote server configuration along with my local setup of git repo and verigreen setup.

Hi @prakashsinhab
Your git.repositoryLocation should contain an ending .git, like so:
git.repositoryLocation=C:\\Users\\borza\\workspace\\playground\\regular_repo\\mircea_test\\.git
In the case of Linux, you should use / instead of \\.
Thanks!

Thank you @prakashsinhab for your input.
Please consider the following:

According to your exception in the hook logs, you are still running the hook with java 8.
make sure to adjust your execute.sh to run with java 7. the last line should be modified to $JAVA_HOME/bin/java -jar (instead of java -jar)
in your config.properties, I would suggest the following:
put a value to the mail.server filed so you will be able to get the email notification.
If you didn't modify the war file or change it with tomcat, then your URL should be something like that: http://<IP_ADDRESS>:8007/verigreen-collector/rest - but again if you modified the war then no need.
hook.properties - all you need in this file is the collector.address field, the rest of the fields are redundant.
please consider @borzamircea  comment.

Closing, @prakashsinhab - if you didn't manage to solve it, please reopen again.

Okay
Thanks @soninob


Intraday call is offline at the moment.

The intraday API call is offline for the moment. It should be available again in a couple of weeks.
I hope you guys can work around that for a few weeks
Saludos
Romel

Is this an Alpha Vantage issue or an issue with the python wrapper?

Hi there, it is the API itself.  But I don't have much info as to when. I posted it as an issue, so people would know about it. ;)

Alpha Vantage has corrected the issue. I checked in Travis and all unit-tests were run without issues. All the best.
Saludos
Romel

Hi tested the below code:
from alpha_vantage.timeseries import TimeSeries
from pandas_datareader import data as web
import pandas as pd
ts = TimeSeries(key='QUQN7PJJVDVR2NV5', output_format='pandas')
data, meta_data = ts.get_intraday(symbol='DISHTV',interval='5min', outputsize='compact')
print(data)
It's throwing error as below:


added UI/UX designer extension

Description
This pull request introduces a new Chrome extension designed to provide quick and easy access to an AI UI/UX Designer. The extension features a welcome page with a typewriter effect that greets users and introduces them to the AI UI/UX Designer. After the greeting, users can click a button to navigate directly to the AI UI/UX Designer page. This extension aims to streamline the design process by offering AI-driven design suggestions and optimizations.
Fixes:  #1059

Type of change

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

Checklist:

[X ] I have made this from my own
[ ] I have taken help from some online resourses
[ 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 made corresponding changes to the documentation
[ X] My changes generate no new warnings

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

I am contributing upon Gsooc24

@Sulagna-Dutta-Roy I am added new extension please check and accept the pull request


Remove never implemented regex descriptions

#6164. The regex replacement was never implemented. Removing its documentation.
This section has been here as far back as 4.2.1 :(

Cherry-picked to v9.0.x branch.

@mlibbey This doesn't cherry pick cleanly into 8.1.x, if we want it in there, please make a new PR.


tfds.features.text.SubwordTextEncoder unexpected behavior on 0

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): ubuntu 18.04
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): 2.0.0-dev20190601
Python version: 3.6
CUDA/cuDNN version: NA
GPU model and memory: NA
Exact command to reproduce:

import tensorflow_datasets as tfds tokenizer = tfds.features.text.SubwordTextEncoder("wazzaaaaaaappppp") tokenizer.decode([0])    # passes (expected) tokenizer.decode([1])    # passes (expected) try:     tokenizer.decode([-1])   # breaks (expected) except ValueError as v:     print("[-1]: ", str(v).lower()) try:     tokenizer.decode([0, 1]) # breaks (NOT expected) except ValueError as v:     print("[0, 1]: ", str(v).lower())
Describe the problem
self-explanatory -- the tokenizer should either never be able to handle 0 or always handle 0 or throw an error message which accounts for cases where 0 does or does not work. As it stands, the error message is false and the behavior inconsistent.
Logs
~/anaconda3/envs/tf2/lib/python3.6/site-packages/tensorflow_datasets/core/features/text/subword_text_encoder.py in decode(failed resolving arguments)
110
111     for subword_id in subword_ids:
--> 112       subword = self._id_to_subword(subword_id)
113       if isinstance(subword, six.binary_type):
114         # Byte-encoded
~/anaconda3/envs/tf2/lib/python3.6/site-packages/tensorflow_datasets/core/features/text/subword_text_encoder.py in _id_to_subword(self, subword_id)
176     if subword_id < 0 or subword_id >= (self.vocab_size - 1):
177       raise ValueError("Received id %d which is invalid. Ids must be within "
--> 178                        "[0, %d)." % (subword_id + 1, self.vocab_size))
179
180     if 0 <= subword_id < len(self._subwords):

After a little snooping, I came across a comment that mentioned zero is reserved for padding. See line 178 in tensorflow_datasets/core/features/text/subword_text_encoder.py
This is not included in the SubwordTextEncoder doc page here: https://www.tensorflow.org/datasets/api_docs/python/tfds/features/text/SubwordTextEncoder
This is not made clear in the error message. In fact, tokenizer.decode([1, 0]) succeeds. I propose either that the error message be changed to reflect this one case and the distinction be included in the docs. Haven't looked into what just letting 0 through the decode would be like. I imagine it's not worth it.
Any thoughts ? Did I miss something obvious in the docs?
Best


Recursive directory creation error during custom provider initialization

Hello, I've noticed that during creating custom provider it cannot be initialized properly due to missing directory. The source code assumes that "cache" directory in "side-packages/chainforge" already exists which is not true. Function "initCustomProvider" in flask_app.py script tries to create new directory in line 557: "os.mkdir(provider_scripts_dir)" and fails due to missing "cache" dir. I would suggest to replace line 557 with: "os.makedirs(provider_scripts_dir, exist_ok=True)" - that would create entire directory tree.
The issue occurs on Windows10 with Python 3.11 and virtual environment.

Thank you for bringing this to our attention. The problem is now fixed (<IP_ADDRESS>).


🚀 Feature: More AI engine to use

🔖 Feature description
There should be variety in AI engine to use.
like OPENAI, GROQ, GEMINI
🎤 Why is this feature needed ?
Better AI performance
✌ How do you aim to achieve this?
Adding more AI engines
🔄 Additional Information
No response
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

Are you willing to submit PR?
Yes I am willing to submit a PR!

Submit a PR then I will assign you this, lets see if anyone else want to work on this

You can proceed


Adding nostr

you can add a nostr.py, and support nostr based apps too.

Sure! Probably I plan to add Nostr in Bridgy Fed well before here, https://github.com/snarfed/bridgy-fed/issues/446, but here would also be good! Contributions are welcome, instructions: https://bridgy.readthedocs.io/#adding-a-new-silo

@snarfed amazing, wait for updates(:

Mind if I keep this open to track for the future?

@snarfed That's OK, I just closed some of my old issues. lets keep it.


Use infallible conversions: Hash -> secp256k1::Message

Replaces all instances of secp256k1::Message::from_slice(_).expect(_) with secp256k1::Message::from(_). This also implements ThirtyTwoByteHash for TapSighashHash.
Closes https://github.com/rust-bitcoin/rust-bitcoin/issues/824

Force-pushed at aeede12 to reset default-features = false in secp256k1, as pointed out by @Kixunil.


Fix tscircuit/core to allow for nested subcircuits (<group subcircuit pcbX={5} /> should shift everything in the group by 5)

@seveibar Can you explain more about this please?

Sure. There is a type of group called a subcircuit.
Within a subcircuit...

All top-level names are unique (e.g. name="C1", name="R1")
Selectors do search across all components that aren't in a subcircuit. This is a tricky one to understand but here goes:

In this example the trace can connect C1 in R1, this example WORKS
<group>
  <resistor name="R1" />
  <capacitor name="C1" />
  <trace from=".R1 .pin1" to=".C1 .pin1" />
</group>

In this example the trace CAN NOT connect C1 and R1, this example DOES NOT WORK and will throw an error that the trace couldn't find the component "C1"
<group>
  <resistor name="R1" />
  <group subcircuit>
    <capacitor name="C1" />
  </group>
  <trace from=".R1 .pin1" to=".C1 .pin1" />
</group>

In this example the trace can connect C1 and R1, this example WORKS AGAIN!. The reason it works is the group has a name, so the selector knows it can go inside the subcircuit.
When you can't get inside a subcircuit without referencing the subcircuit, it's called the "subcircuit boundary"
<group>
  <resistor name="R1" />
  <group subcircuit name="G1">
    <capacitor name="C1" />
  </group>
  <trace from=".R1 .pin1" to=".G1 .C1 .pin1" />
</group>

Why are subcircuits important?
Subcircuits allow you to have MODULES. When we define higher level components like a <Microprocessor /> we
use a subcircuit because a microprocessor contains a main chip along with a bunch of decoupling capacitors and supporting
chips to make it work (sometimes a power regulators or UART chip)
export const Microcontroller = ({ name?: string }: { name: string }) => {
  return (
    <group subcircuit name={name}>
      <chip name="U1" />
      <resistor />
      <capacitor />
    </group>
  )
}

Subcircuits can be moved without impacting their routing
<group subcircuit pcbX={5} pcbY={2}>
  {/* ... */}
</group>

@seveibar I was testing this out, but this seems to be already working.
https://github.com/user-attachments/assets/45475d79-0bf6-449d-ab04-041b786a84af


about warmup.py

Thank you for sharing your code!
I would like to ask why the warm-up phase uses adversarial learning? Isn't fully supervised learning of source domain images used for the warm-up?
Using the target domain for adversarial learning would introduce noise into the selection of the source domain prototype, wouldn't it!

Hi @liwei1101
It is a good question.
Apparently, as you say, there are two common strategies for the warm-up stage, i.e., the fully-supervised source-only model or the AdaptSegNet model. Both have pros and cons. For the source-only model, the model may be overfitting to the source images and the target pseudo labels would be noisy and error-prone. By contrast, I think adversarial alignment between source and target domain would diminish the domain gap and the model could produce more confident target pseudo labels.
As for source prototypes,  there may be little difference between the above two models. As I see, prototypes that come from AdaptSegNet are better, since the feature space is optimized using source and target data.

@BinhuiXie Thank you!!
Your explanation has really solved a big question in my mind!
Have you compared the quantitative performance differences between the two warm-up methods?
Is the final mIOU in your paper also obtained by the AdaptSegNet warm-up method? Or is it by source domain training only?

In this work, SPCL, we use the AdaptSegNet model as the warm-up stage. However, it doesn't matter which warm-up strategy is chosen as long as the designed algorithm is effective and robust.
In our recent work, SePiCo, we trained the model from scratch and also attained excellent results.


move pydanitc.compiled to pydantic.utils.is_compiled

as per https://github.com/samuelcolvin/pydantic/issues/1127#issuecomment-569107492 on v2 we should move pydantic.compiled into utils and wrap it in a function.

I don't think this is relevant to V2 anymore, we've checked import times and don't have issues with it.


The bug of preventMouseDownDefault

Describe the bug
After using this preventMouseDownDefault, when you insert the cursor in the middle of the input word, the cursor changes to the end.
Screenshots

Hello @gd-ldj,
This is a known issue, but somewhat outside of the scope of simple-keyboard.
Basically, all the preventMouseDefault option does it's to add event.preventDefault() on button click. The issue lays with the input element (which the library does not manage). When you press a simple-keyboard button, simple-keyboard updates its internal caret value, but the input's selectionStart value is not updated (as simple-keyboard doesn't manage input elements).
This issue can be fixed by setting the input's caret position in the onChange callback, like so:
https://codesandbox.io/s/github/simple-keyboard/react-simple-keyboard-preventmodefault-caret-pos/tree/master/
I will add this information to the docs shortly.
Thanks!
Francisco Hodge

I get. Thanks!

Hello @hodgef ,
I found a new problem with this preventMouseDefault. When I set preventMouseDefault=true, press a key on the keyboard for a while, move it out of the keyboard area, then release it, it will appear all the time.

Hello @gd-ldj,
Thanks for reporting this issue. Could you please create a new ticket for it?
Regards,
Francisco Hodge

ok


Hierarchical s3 configuration -- For Issue 2140

Summary of Changes

Added a Provider tag to each of the S3 Option and OptionExamples.
Changed the config backend to support the tag for new remotes and while editing remotes.
Provided links to jump into the right section within the s3 documents.
Changed documentation around S3 for the new option.

Hey, that is looking nice :-)
The tests are failing as the code needs to be run through go fmt.  I recommend an editor save hook with goimports.
Did you make an effort to discover what providers support which options? I don't mind doing that after, I'd just like to know where you got to.
I'll do a more detailed review once the tests pass.
Thanks
Nick


MADV_DONTDUMP but for FreeBSD (MADV_NOCORE)

On FreeBSD, we have MADV_NOCORE instead of MADV_DONTDUMP. I think we should refactor our code / usage of MADV_DONTDUMP such that there's a single API to be used, which then appropriately picks the right define (or no-op if not defined at all).
I'm not sure what there is for macOS.

Actually MADV_NOCORE also exists on OpenBSD. So the fix for https://github.com/awnumar/memguard/issues/45 should be revisited too.

@zwoop what do you want to do with this issue?

Here's the kind of ugliness you may need for this:  https://github.com/apache/trafficserver/pull/7611/files#diff-ca240207af78381db6fc12df3ce47f109d51f78e7950f74e736974832bab127aR43


Fix missing data in rental-prices.csv

Some area codes have missing data e.g. E06000001

@ChristianSpence bump on this


packaging request: hobbits

Project description
A multi-platform GUI for bit-based analysis, processing, and visualization.
Metadata

homepage URL: https://mahlet-inc.github.io/
source URL: https://github.com/Mahlet-Inc/hobbits/
license: MIT, GPL-3.0 (if building with FFTW3)
platforms: Linux

This has been already packaged


[release/5.0] Exclude locally-built packages from smoke-test-prereqs.

This makes two changes to prevent our locally-built packages from making it into the smoke-test-prereqs tarball:

Remove any packages cached in the system cache after we copy it to our local NuGet cache (so we get the credential plugin).
Don't copy packages to the prereqs directory after the local tests (which can restore locally-built packages).

This accomplishes two things:

Smoke-testing will be more true to the partner and user experience (using the official packages that a developer would restore when actually using the product).
The official packages will include all TFMs and runtimes so the smoke-test-prereqs tarball will be universal across all of our builds.

I verified that the various legs of prereqs are identical, except for Portable (which is expected).  The nupkgs are also signed and match the online versions, so this does look like it solves the problem.


Handle long-polling requests

Description
I'm using Firestore in my project. Firestore seems to use long-polling on HTTP GET requests to provide its real-time updates. This means firestore js library (i'm using angularfire2) first makes a POST request to firestore servers. That one is fine. Then it does a GET request, which is kept open for a long time, around a minute. If you look at that GET request in Chrome's devtool, it will show you an empty response because devtools are waiting for the request to close I guess to display the response. However the js code already has access to the chunks of data, so firebase already displays it on the page.
When polly.js gets in the picture, even in passthrough mode, it crashes. The POST request works fine, but the subsequent long-lived GET queries, even if passed-through, are breaking firebase js call-site.
The fact that passthrough also breaks firestore means it's a no-go for my project. I'm really eager to use polly.js, and I would love to find a workaround even if it means I can ignore those firebase calls and mock the other calls. Best would be of course to be able to mock those long-polling calls as well.
Error Message & Stack Trace
In order:
Passthrough ➞ POST https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?database=projects%2Fdrone-advisor-test%2Fdatabases%2F%28default%29&VER=8&RID=12971&CVER=22&X-HTTP-Session-Id=gsessionid&%24httpHeaders=X-Goog-Api-Client%3Agl-js%2F%20fire%2F6.3.1%0D%0A&zx=9db2uev7uvsd&t=1 200 • 26ms

At this point, the GET request is intercepted by polly.js, but polly is not logging it cause the request is still not closed.
After 10s, firebase call-site which is wrapped by polly fails to get the data they want, so they print this:
index.esm.js:117 [2019-07-26T05:13:21.884Z]  @firebase/firestore: Firestore (6.3.1): Could not reach Cloud Firestore backend. Backend didn't respond within 10 seconds.
This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.

After more time, like 1min, the request is closed (I assume by the server), and polly prints:
pollyjs-core.js:7152 Passthrough ➞ GET https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?database=projects%2Fdrone-advisor-test%2Fdatabases%2F%28default%29&gsessionid=Y97JxkYuiOdaHZaj8QPKyNK5tVncDx6m&VER=8&RID=rpc&SID=okOtkYysixnek6sHNypRCQ&CI=0&AID=0&TYPE=xmlhttp&zx=gb8xvyqqxewm&t=1 200 • 47174ms
pollyjs-core.js:7163 Errored ➞ GET https://firestore.googleapis.com/google.firestore.v1.Firestore/Listen/channel?database=projects%2Fdrone-advisor-test%2Fdatabases%2F%28default%29&gsessionid=Y97JxkYuiOdaHZaj8QPKyNK5tVncDx6m&VER=8&RID=rpc&SID=okOtkYysixnek6sHNypRCQ&CI=0&AID=0&TYPE=xmlhttp&zx=gb8xvyqqxewm&t=1
pollyjs-core.js:7164 Error: INVALID_STATE_ERR - 0
    at verifyRequestOpened (pollyjs-adapter-xhr.js:6788) [<root>]
    at FakeXMLHttpRequest.setStatus (pollyjs-adapter-xhr.js:7028) [<root>]
    at FakeXMLHttpRequest.respond (pollyjs-adapter-xhr.js:7193) [<root>]
    at XHRAdapter.respondToRequest (pollyjs-adapter-xhr.js:11071) [<root>]
    at XHRAdapter._callee14$ (pollyjs-adapter-xhr.js:10859) [<root>]
    at tryCatch (pollyjs-adapter-xhr.js:68) [<root>]
    at Generator.invoke [as _invoke] (pollyjs-adapter-xhr.js:294) [<root>]
    at Generator.prototype.<computed> [as next] (pollyjs-adapter-xhr.js:120) [<root>]
    at asyncGeneratorStep (pollyjs-adapter-xhr.js:1961) [<root>]
    at _next (pollyjs-adapter-xhr.js:1983) [<root>]
    at :8100/vendor.js:129842:19 [<root>]
    at new Promise (pollyjs-adapter-xhr.js:1819) [<root>]
    at XHRAdapter.<anonymous> (pollyjs-adapter-xhr.js:1979) [<root>]
    at XHRAdapter.onRequestFinished (pollyjs-adapter-xhr.js:10873) [<root>]

I think this class may be the firestore network implementation.
Config
Copy the config used to setup the Polly instance:
this.polly = new Polly('test-recording', {
      adapters: [adapterFetch, adapterXhr],
      persister: persisterLocalStorage,
      matchRequestsBy: {
        headers: false,
        url: {
          query: false,
        },
      },
      logging: true,
})
const {server} = this.polly
server.any(['/*', 'https://firestore.googleapis.com/*']).passthrough()

Dependencies
Copy the @pollyjs dependencies from package.json:
{
   "@pollyjs/adapter-fetch": "^2.6.0",
   "@pollyjs/adapter-xhr": "^2.6.0",
   "@pollyjs/core": "^2.6.0",
   "@pollyjs/persister-local-storage": "^2.6.0"
}

Environment
This is running in-browser

chrome Version 75.0.3770.142 (Official Build) (64-bit)
macOS 10.13.6 (17G7024)

To avoid us having to try and replicate your projects setup and go through the motions of setting up firebase, can you share with us the project or create a reproduction of the issue?
This will speed up our ability to triage.

@jasonmit I made a public repo to reproduce. Just git clone it and run npm start to witness the issue. If you comment out lines 22-34 in app.component.ts which correspond to Pollyjs instanciation, you will see the correct behaviour

It seems there are many layers involved when dealing with the long polling connection.
I noticed zone.js is extending the original, native, XHR object and this is done before Polly replaces the global XHR object.
After correcting that, I then moved on to researching how the long polling events data as it receives chunks to the firestore client.  Knowing how it works will help me understand where pollyjs/nise needs to change to support this use case.  Unfortunately this led me to some low level Google closure code that wasn't human readable.
I'll need to circle back once I have the cycles to try and dive deeper in figuring that out.


Type check React.Components when the type of defaultProps is unspecified

Using ObjTestT like this is a bit imprecise, but in the case of react
props, if the defaultProps isn't an object type, we have other problems.

Doesn't work. I should add a test that exercises the expected defaultProps behavior, which wouldn't have passed with this code.


uint x minus x  throws "base fee exceeds gas limit"

Current Behavior
Ganache throws when a transaction has an operation of x - z and the result is 0 (i.e. x == z)
Steps to Reproduce (for bugs)
/* Calling sub(1) or sub1() works fine on javascriptVM, fails on testrpc/ganache-cli 6.0.3 */
pragma solidity ^0.4.0;

contract Test {

  uint public counter = 1;

  function set(uint a) public returns(uint c) {
      counter = a;
      return counter;
  }

  function sub(uint a) public returns(uint c) {
      counter = counter - a;
      return counter;
  }

  function sub1() public returns(uint c) {
      counter -= 1;
      return counter;
  }

}

Calling sub(1) or sub1() on ganache:
transact to Test.sub errored: Error: base fee exceeds gas limit
    at runCall (/usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:69361:17)
    at /usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:11327:24
    at replenish (/usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:8420:17)
    at iterateeCallback (/usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:8405:17)
    at /usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:8380:16
    at /usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:11332:13
    at /usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:64434:16
    at replenish (/usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:64381:25)
    at /usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:64390:9
    at eachLimit (/usr/local/lib/node_modules/ethereumjs-testrpc/build/cli.node.js:64314:36)

Your Environment

Version used: Ganache CLI v6.0.3 (ganache-core: 2.0.2)   but fails with TestRPC v4.1.3 ganache-core: 1.1.3 too
Remix IDE

I do get the same error. The following contract throws this error when "setTestVal" is called at first with 1 and then with 0:
contract ErrorTest {
    int testval;

    function setTestval(int val) public {
        testval = val;
    }
}

On a local geth node it works fine.
(Ganache 1.1.0 on Mac)

One possible solution is use uint(-1) instead of 0
https://www.npmjs.com/package/@ventureum/conversion
This package can solve it without change the interface of contract, all the in/out will not change.

This should now be fixed by https://github.com/trufflesuite/ganache-core/commit/81e8f59d74bcb38773498c34c78fb7d35a22af7f in ganache-cli 6.1.7 and ganache-core 2.2.0. Please update and let us know if it's still a problem.


[Docker] Environment variable: PUID and PGID

Description
Hello. As i want to run more secure environment of my homelab, i don't want to run any docker container as root.
Suggestion: Every Linuxserver image  has it's common environment variables like TZ (timezone), PUID (user ID of user that will run the container), PGID (group ID of user that will run the container). Those last two i'd like to see also in Homarr. Many docker images of countless projects have it.
Things i tried:
As i'm managing my container in Portainer Web UI, i needed to select different way of achieving user definition. Docker itself has --user: 1000:1000 which defines which user will run the container.

This can be easily done by going to Container -> Labels -> write name user and value 1000:1000. However, this didn't work.

Priority
High (App breaking feature)
Please tick the boxes

[X] You've read the docs
[X] You've checked for duplicate issues

Not really. I don't even think it should be done by NextJS. Those are variables tied with docker environment.

This might help https://raphaelpralat.medium.com/system-environment-variables-in-next-js-with-docker-1f0754e04cde

I know how to use environment variables with NextJS, that's how I implemented the password. Problem is that I don't know what the env variables OP suggests are supposed to be doing

Linuxserver seems to be using S6 to manage permissions. https://discourse.linuxserver.io/t/how-to-add-puid-pgid-function-into-docker-image/2474

Should be added with #317

hello, this does not seem to address the issue if I understand correctly ... root user is still used in container and config files are created with root.
`
version: '3'
services:
homarr:
container_name: homarr
image: ghcr.io/ajnart/homarr:latest
environment:
- PUID=998
- PGID=100
- TZ=Europe/Paris
volumes:
- /home/admin/configs/homarr/configs:/app/data/configs
- /home/admin/configs/homarr/icons:/app/public/icons
restart: unless-stopped
ports:
- '7575:7575'
content of conf folder :
/home/admin/configs/homarr $ ll
total 16
drwxr-xr-x  4 root  root  4096 Aug 21 14:57 .
drwxr-xr-x 25 admin users 4096 Aug 21 14:57 ..
drwxr-xr-x  2 root  root  4096 Aug 21 15:01 configs
drwxr-xr-x  2 root  root  4096 Aug 21 14:57 icons
`

Dear @ajnart
Can we re-open this? The image still runs as root, since https://github.com/ajnart/homarr/pull/326 changed the base image back from ghcr.io/linuxserver/baseimage-alpine:3.16 (which implemented PUID and PGID and the ability to NOT run as root) to node:16-alpine
One should definitely NOT run an image as root...
Thanks!

Hi @croneter 👋,
thank you for bringing this up again.
I'll re-open the issue for now and we'll see what we can do.
Feel feee to submit a pull request if you want

Hello @ajnart this should be reopened because it's still an issue in version 0.11 :(

Why has this not been fixed? @ajnart , you told me that it was fixed. I'm reopening this...

Why has this not been fixed? @ajnart , you told me that it was fixed. I'm reopening this...

problem was that environnement variables were not exported in the image. Like docker run -e PASSWORD something didn't work, I think the environment variables weren't passed to the user . Is anyone finds a fix please make a PR because I didn't find one

After a lot of searching, the current answer seems to be the user field.
add -u "PUID:GUID" to the command or user: "PUID:GUID" in compose.
All the folders mounted need the correct permissions otherwise nothing will work.
From my testing, this works with no problems, but I'd love if anyone that cares could try it out and maybe point out if something is missing.
@nyok1912 Tagging you as you made the recent issue about it.

After a lot of searching, the current answer seems to be the user field. add -u "PUID:GUID" to the command or user: "PUID:GUID" in compose. All the folders mounted need the correct permissions otherwise nothing will work. Also, put the command or the line "first", as everything that is after will be executed as said user, but if not, will be executed as root.
From my testing, this works with no problems, but I'd love if anyone that cares could try it out and maybe point out if something is missing.
@nyok1912 Tagging you as you made the recent issue about it.

You need to manually create the folders with the right permissions.
I suggest using install -o 1000 -g 1000 /path/to/folder

You have reason! That works! Then i think, only neede run script to fix permissions inside contaner?

As far as I can tell, everything should be running as the user you set.
Is there an actual need to change anything further?
Could you show us what is still running as root that you wouldn't want to and why?

Not all works correct, docker integration is now not working:
homarr  |  ERROR  The docker integration failed with the following error: TRPCError: Unable to get containers
homarr  |
homarr  |
homarr  |  ERROR  The docker integration failed with the following error: TRPCError: Unable to get containers```

Reason for keep synced user permission under each home folder is many when binded mount volumes based.
- Consistence: under home user, user can view, edit and remove files without sudo.
- Security
- Functionality: user can have other services or containers same as file editor or backup same as duplicati, when using correctly permissions in each container, cannot interactuate with homarr data because user is not owner of this files.

There will probably be more reasons I can remember in the future or other users tell more reasons for this, each time docker containers is more supporting this little feature.

Yes that's because the permissions to the docker integration file might need to be root, which your container isn't in this case.
I understand why you want to have different permissions, what I was asking was why wouldn't using "user" be enough, since that's what you're supposed to use with docker.
Under this solution, all files created by homarr use the set user as base.
For the reasons you enunciated, all seem to be covered by the built in user from docker.
As for the docker.sock, see if you can change the file's permissions somehow.

I looked a bit, seems you only need to add the user to the docker group:
sudo usermod -aG docker $USER

Uhm... change docker.sock permissions in host for addapt to each user is not good option... containerized app must be addapted for works with host resources keeping host rules, id's, etc... using customizable enviroment var to fine set working with host.
I think Cointainer can have a supervisord to start processes and adjust internal user id and privileges, I have done this before with good result

If you have any idea on how to implement this into homarr, you're welcome to contribute.
Since we've been changing the run script, dockerfile and base image a lot lately, there's a chance that any modification won't stick, like this thread has shown to be happening on previous attempts at implementing it.
This solution I am giving is the simplest and closest we can offer that will stay consistent in the future.

Ok, let's me try!

I would rather use discord if you're ok with it, this is where we converse within the community.
https://discord.com/invite/aCsmEV5RgA


fix(v2client): updates limits for list secrets and routes

Description
The existing limits for list secrets and static routes were set to 10 which is quite low. This leads to an increased number of calls to the apiserver. This commit increases the limit to 50, reducing the calls required to fetch all the items.

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


[WIP] Experimenting with JSON and BIOS structures patterns

I played with serde a little tonight, I found a coding pattern:
impl fmt::Debug for Header {
    fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
        fmt.debug_struct(std::any::type_name::<Header>())
            .field("struct_type", &self.struct_type())
            .field("length", &self.length())
            .field("handle", &self.handle())
            .finish()
    }
}

impl Serialize for Header {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        let mut state = serializer.serialize_struct("Header", 3)?;
        state.serialize_field("struct_type", &self.struct_type())?;
        state.serialize_field("length", &self.length())?;
        state.serialize_field("handle", &self.handle())?;
        state.end()
    }
}

For each structure that has a custom Debug, we can copy the format of it quite closely, shown above.  I can write a small app to identify the pattern and add code like this. The output looks like:
Finished dev [unoptimized + debuginfo] target(s) in 0.12s
     Running `target\debug\smbiosdump.exe -j`
{"table":[{"header":{"struct_type":18,"length":23,"handle":0},"fields":[18,23,0,0,3,2,2,0,0,0,0,0,0,0,128,0,0,0,128,0,0,0,128],"strings":"[]"},{"header":{"struct_type":16,"length":23,"handle":1},"fields":[16,23,1,0,3,3,3,0,0,0,4,0,0,2,0,0,0,0,0,0,0,0,0],"strings":"[]"},{"header":{"struct_type":19,"length":31,"handle":2},"fields":[19,31,2,0,0,0,0,0,255,255,255,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"strings":"[]"},{"header":{"struct_type":7,"length":27,"handle":3},"fields":[7,27,3,0,1,128,1,128,1,128,1,16,0,16,0,1,6,5,7,128,1,0,0,128,1,0,0],"strings":"[\"L1 - Cache\"]"}
... etc.

I played with serde a little tonight, I found a coding pattern:
impl fmt::Debug for Header {
    fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
        fmt.debug_struct(std::any::type_name::<Header>())
            .field("struct_type", &self.struct_type())
            .field("length", &self.length())
            .field("handle", &self.handle())
            .finish()
    }
}

impl Serialize for Header {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        let mut state = serializer.serialize_struct("Header", 3)?;
        state.serialize_field("struct_type", &self.struct_type())?;
        state.serialize_field("length", &self.length())?;
        state.serialize_field("handle", &self.handle())?;
        state.end()
    }
}

For each structure that has a custom Debug, we can copy the format of it quite closely, shown above. I can write a small app to identify the pattern and add code like this. The output looks like:
Finished dev [unoptimized + debuginfo] target(s) in 0.12s
     Running `target\debug\smbiosdump.exe -j`
{"table":[{"header":{"struct_type":18,"length":23,"handle":0},"fields":[18,23,0,0,3,2,2,0,0,0,0,0,0,0,128,0,0,0,128,0,0,0,128],"strings":"[]"},{"header":{"struct_type":16,"length":23,"handle":1},"fields":[16,23,1,0,3,3,3,0,0,0,4,0,0,2,0,0,0,0,0,0,0,0,0],"strings":"[]"},{"header":{"struct_type":19,"length":31,"handle":2},"fields":[19,31,2,0,0,0,0,0,255,255,255,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"strings":"[]"},{"header":{"struct_type":7,"length":27,"handle":3},"fields":[7,27,3,0,1,128,1,128,1,128,1,16,0,16,0,1,6,5,7,128,1,0,0,128,1,0,0],"strings":"[\"L1 - Cache\"]"}
... etc.

Cool, it looks way nicer and more human readable

I played with serde a little tonight, I found a coding pattern:
impl fmt::Debug for Header {
    fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
        fmt.debug_struct(std::any::type_name::<Header>())
            .field("struct_type", &self.struct_type())
            .field("length", &self.length())
            .field("handle", &self.handle())
            .finish()
    }
}

impl Serialize for Header {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        let mut state = serializer.serialize_struct("Header", 3)?;
        state.serialize_field("struct_type", &self.struct_type())?;
        state.serialize_field("length", &self.length())?;
        state.serialize_field("handle", &self.handle())?;
        state.end()
    }
}

For each structure that has a custom Debug, we can copy the format of it quite closely, shown above. I can write a small app to identify the pattern and add code like this. The output looks like:
Finished dev [unoptimized + debuginfo] target(s) in 0.12s
     Running `target\debug\smbiosdump.exe -j`
{"table":[{"header":{"struct_type":18,"length":23,"handle":0},"fields":[18,23,0,0,3,2,2,0,0,0,0,0,0,0,128,0,0,0,128,0,0,0,128],"strings":"[]"},{"header":{"struct_type":16,"length":23,"handle":1},"fields":[16,23,1,0,3,3,3,0,0,0,4,0,0,2,0,0,0,0,0,0,0,0,0],"strings":"[]"},{"header":{"struct_type":19,"length":31,"handle":2},"fields":[19,31,2,0,0,0,0,0,255,255,255,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"strings":"[]"},{"header":{"struct_type":7,"length":27,"handle":3},"fields":[7,27,3,0,1,128,1,128,1,128,1,16,0,16,0,1,6,5,7,128,1,0,0,128,1,0,0],"strings":"[\"L1 - Cache\"]"}
... etc.

Close #58


add index.android.js file

this allows us to simply call isSupported before making subsequent calls to other functions in this lib and not have to worry about what platform were running on

Closed due it inactivity.


Hero block:  update edit mode design in order to support BlocksForm

https://taskman.eionet.europa.eu/issues/266980

@dobri1408 we don't need to use the column-block styling, we can use the default styling since we want only to have the slate blocks added.


build(deps): bump fastlane deps

This PR resolves []
Description
Bumps fastlane deps

#nochangelog

Warnings

:warning:

✅ No changelog changes

  Generated by :no_entry_sign: dangerJS against 63bbb1a4a1d7897c3907c5a48de29ce4bc3cd2bf


Add option to warn user before leaving create or edit page

Sometimes, especially on CRUD entries that take a long time to create or edit, it is useful to warn users if they attempt to leave the page by other means then the save button, to prevent accidental loss of input.
This PR adds a warnBeforeLeave config option that can be set both globally (in the config file) or per crud operation (with the setWarnBeforeLeave method).

A new inspection was created.

Wow, Wow Wow! I think this is NUTS!
Belive me or not, I'v dealt with the frustation of clicking on sidebar with an almost fill form!
I don't think this is a BC, so I will be reviewing this in the next days (maybe this week, but can't promise). Just letting you know that I liked and saw it :)
Best,
Pedro

Belive me or not, I'v dealt with the frustation of clicking on sidebar with an almost fill form!

I've been there too @pxpm, it's possible that everyone did 😅
@jnoordsij this is great 🙌 I think it's a must feature for backpack.
Backpack is on feature freeze, but I think we all agree this can sneak in in v4.1, let's hear @tabacitu about that 😅
I have only one concern, it should be triggering the alert only when user has changed anything on the form, so he is actually loosing changes when leaving. Right now it's triggering always ...

Belive me or not, I'v dealt with the frustation of clicking on sidebar with an almost fill form!

I've been there too @pxpm, it's possible that everyone did 😅
@jnoordsij this is great 🙌 I think it's a must feature for backpack.
Backpack is on feature freeze, but I think we all agree this can sneak in in v4.1, let's hear @tabacitu about that 😅

Thanks! Would be great to have it merged in quickly; with the config option to trigger it it shouldn't change behavior on existing installations. You could still change the default config to true on the next major release.

I have only one concern, it should be triggering the alert only when user has changed anything on the form, so he is actually loosing changes when leaving. Right now it's triggering always ...

Yeah this seems to differ between browsers, but I already noticed this on my setup. I'm not sure how much of a problem it is (you don't really accidentaly land on these edit pages I guess, so it isn't that much of an annoyance to have an additional popup?). But you could try adding some global dirty JS variable that is set to true on an edit in any of the forms fields.

A new inspection was created.

The inspection completed: 3 new issues, 3 updated code elements

A new inspection was created.

The inspection completed: 3 new issues, 3 updated code elements

Hey there! Just wondering if there is any ETA on the 4.2 release and possibly merging this, so I can decide wether to manually implement these changes (and maybe my other PR's) in our application in the meantime or just wait a bit longer for the actual release. Thought I found somewhere that the planned release was around november, but couldn't find any schedule for it now.

@jnoordsij hey there man 👋
4.2 is a little out of schedule, some bits that we planned to go fast had been going a little bit slower, but I don't think it would slip by much, we still working on it everyday.
@tabacitu created a "Feature Pool" https://github.com/Laravel-Backpack/CRUD/discussions/3960, so while we work on core fixes we would also work on some most desired features by our users to "compensate" from this little delay. I think this one just didn't have enough tracktion to be on list.
I still think this is a very nice feature, I don't think it's one of the most desired ones, but I think it's a cool one, easy to understand and implement.
@tabacitu is already aware of this by the name pings, if he decides we should do this from start in 4.2 I've nothing against.
I say: - if we don't find some incompatibility here that would take us some time to come-up with a solution/fix, all the heavy work is done by @jnoordsij , I would merge this @tabacitu !
Let me know,
Pedro

Thanks for bumping this @jnoordsij ! I still like this. A LOT. Both the idea and the implementation. I think we should even consider making it true by default in 4.2 - what do you guys think?
Also, about the WarnBeforeLeaving trait... I think @promatik 's spidey sense might have been right, this trait isn't really needed, feels like it pollutes the CrudPanel namespace a bit. Sure it's easier to do CRUD::setWarnBeforeLeaving(true), but not MUCH easier than doing CRUD::set('warnBeforeLeaving', true). Though one gets autocompletion, the other doesn't.
Either way, I've removed this trait, so the docs should say CRUD::set('warnBeforeLeaving', true). Still wondering whether to make this true by default in 4.2 - looking forward to hearing what you guys think.
Thanks again for this contribution @jnoordsij , we really appreciate it 🙏
Merged 🎉🎉🎉

Great, thanks for merging this! Looking forward to the new version 😄

No, thank YOU. What do you think - should this default to true for all CRUDs? 👀

I think defaulting it to true is a great idea, as probably most people will be really happy to have this. Moreover you can mention it in the upgrade guide as it is now moved into the new version and people can easily opt-out if they want to.

I am not sure this should default to true.
It's a great feature but also a very intrusive one, if your real desire is to leave the page without sending the form, you will be greeted by the warning, I am not sure but I think this is usefull in some scenarios, but there is also scenarios where this really is not that necessary. (thinking of very small forms and such).
I would use this functionality in big cruds, but I think I am not going to activate this in small simple cruds where a mistake is not that costly, because, like I said, it happened to me leaving the form when I didn't wanted to, but also leave the form because I wanted to.
So, my opinion is that we should let the behaviour to be enabled by developer if/when needed.
Pedro

hi there, im new to backpack and i was trying out this feature from the doc here
https://backpackforlaravel.com/docs/5.x/release-notes#warning-before-leaving-the-create-or-update-form
however when i tried CRUD::set('warnBeforeLeaving', true) in the setup() method, it doesnt work.
just to add, CRUD::setOperationSetting('warnBeforeLeaving', true) on specific operations are working.
can anyone confirm this? or maybe its only on my side?


[Shortcuts Search] Does not work at all

Extension
https://www.raycast.com/solomkinmv/shortcuts-search
Description
Every time I try to use either "List All Shortcuts" or "List Current Shortcuts," I get the following error:

Steps To Reproduce

Use either the "List All Shortcuts" or "List Current Shortcuts" command
See error

Current Behaviour
No response
Expected Behaviour
No response

I can confirm this. Looks like I didn't notice it because my local version diverged from public one. Will prepare fix for this shortly.

Removed shortcut that's not supported by this version of the extension. Now it should be fine. I'll prepare next revision to address the issue.

This is now merged, please use Check For Extension Updates and verify


libdata/pkgconfig/arrow-compute.pc is installed when COMPUTE is disabled with -DARROW_COMPUTE=FALSE

Describe the bug, including details regarding any error messages, version, and platform.
Version: 13.0.0
FreeBSD 13.2
Component(s)
C++

Could you show all your cmake ... -DARROW_COMPUTE=FALSE command line's log?

Ah, sorry. It's needless. I could reproduce this.


[Fix] fix formula format

As in discussion.

max to \max
min to \min

Additional "format diff" is due to the automatic fixing by the pre-commit hook.

@AndPuQing 请解决下冲突


bin_descend failures on linux

We tried processing two "simple" executables built from source.
thttpd
zlib
On both examples bin_descend  eventually fails (after puffing up the
map files appropriately).  In the case of thttpd we run into
errors like:
Found a possible jump table!
Not a jump table: no relocation in JMP32m
Heristic jumptable processing couldn't parse jumptable
pointing to: 0x8052c97
jmpl	*134573844(,%eax,4)
846874d52249a7bbebc53474a5ef6f11
Failure to make module: Generic error: Line: 912
while with zlib (executable being minigzip) we end up with errors like:
Unsupported!
8048a4c 	nopl	(%eax)
1700
Failure to convert to LLVM module!
We tried different compilers including gcc-4.8.2 clang-3.2 and clang-3.4
but to no avail.
We are running this stuff on ubuntu 14.04

Hi,
I'll answer the second part first: the wide nop support should be pushed soon, along with many other changes (like newer LLVM version support). For now you have two options: edit x86Instrs_misc.cpp, add an entry for the wide nop and point it to the current NOP handler. Alternatively, you can try passing the -ignore-unsupported option to cfg_to_bc to ignore unsupported instructions during translation.
As for the jump tables, the current recommended solution is to use IDA for CFG recovery. It has much better jump table heuristics than we do. We would really like to make bin_descend work better, but other priorities have taken up most of our resources.

Pushed supported for wide nop amongst many other new instructions.

Thanks we'll give it a spin first thing next week, and report back (we tried the above suggestions,
which allowed us to build executables, but they would SIGSEGV.
Just a time frame question. How far down the track is 64 bits?

Its not currently on our radar, but it shouldn't be too much of a problem. Most (all?) of the instruction translation is parametrized by bit width. The big changes that would be needed is finding and removing some 32-bit-isms, adding new registers, and probably 64-bit calling convention/stack layout for some of the callback/external call stuff.

Closing since the issues seem to have been kind of resolved.


cant controle the android screen

i have the newest version on my phone and on the win 11 ive enbled USB debugging and I still cannot controle the hpone screen , I see the screen on my PC but cant controle it i have a MI 11 lite fe
PLAESE HELP!

https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#mouse-and-keyboard-do-not-work
https://github.com/Genymobile/scrcpy#prerequisites


Incorrect characters being displayed with addText()

Describe the bug
When using addText() with the pipe operator, |, ö is displayed instead.
Whilst I discovered this with |, it's also an issue for other symbols such as ~, ± and §. These are shown respectively in the bottom screenshot.
To Reproduce
Steps to reproduce the behavior:

Make a Sprig project.
Use addText() with |
Run the game
See ö displayed

Expected behavior
The correct character to be displayed.
Actual behavior
A different character displayed.
Screenshots
If applicable, add screenshots to help explain your problem.

| being displayed

~, ± and § being displayed

is it just my phone or are the provided screenshots corrupted?


[Oracle] Comments disappear when I try to persist a create table

System information:

Windows 7 64 bits Enterprise
DBeaver	<IP_ADDRESS>910061950

Connection specification:

Oracle <IP_ADDRESS>.0
Driver name --> JDBC Thin Client
Do you use tunnels or proxies (SSH, SOCKS, etc)? --> No

Describe the problem you're observing:
When I create a new table, I put the columns, types and comments for each column.
When I generate the DDL to persist, there isn't the comments and after I persist it, the comments have disappeared.

Thanks for the bug report!

Fixed

verified


Enhance Image component to be able top support additional image sources

Is your feature request related to a problem? Please describe.
The current image component only supports limited sources for the image which is very limiting for certain use cases.
Amongst other things, this feature is intended to allow the logo on the header and login page to be configurated when combined with #601 .
Describe the solution you'd like
It will also allow other use cases to be supported (e.g. GeoInt SpeedFox where different logo should be displayed based on the logged into user and their PrimaryOrganisation).
Image component image source type:

URL:

Can be static or expression based
Would have to be read-only

StoredFile property

Property to bind to

Base64 (string property)

Property to bind to

AppSetting

Modulename
AppSetting name

For all above:

Is editable: Yes, No, Inherit

Separate the card and create a new one that supports app settings


Add CI steps for NPM publish

We need this plugin published to NPM in order for it to be consumed. Pulled in generic build scripts used by all other FOLIO modules.

Can someone with write access please merge this PR?


Create Frequency.java

In this program, we have an array of elements to count the occurrence of its each element. One of the approaches to resolve this problem is to maintain one array to store the counts of each element of the array. Loop through the array and count the occurrence of each element as frequency and store it in another array fr.
Author: Ranabir Chakraborty<EMAIL_ADDRESS>

Thank you! @Ridetotheroots


add missing idPrefix as default value to config

Close #36

Thank you!

Just happy to remove the hot fix from my project, once this is released, thanks for the quick merge.
And also thanks to @Climenty for reporting, helped me to verify my local fix.

@noxan Just released<EMAIL_ADDRESS>to NPM

That's fast mate, thanks a lot! :)


blood vessel like fractals

Hello I am looking for a 3d dichotomic irregular fractal that would look like branching blood vessels and similar to branching planes - to simulate connective tissue layers
The algorithm would need to be parameterized and differentiable.
The basic plan is to learn the parameters of the fractal by comparing l2 similarity between the original and fractal-generated image (additionally for fine-grained texture Fourier will be used.
Would it be possible to use your tool for it ?)

For the parallelisation and the learning, using Jax  is surely a good idea. fractal-jax employs the just in time (JIT) compilation to speed up things.
However, this library, as it's implemented now, does not operate any learning. The equation that generated the fractals is given, i.e., z = z^2 + c.
However, if I correctly understood your task, you could substitute the equation that generates the fractal with a parametric function and learn the parameter by optimising a loss.


⚠ Bofrost.lu has degraded performance

In 3e730a9, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1798 ms

Resolved: Bofrost.lu performance has improved in bf99e0c after 6 minutes.


Caller number

Just one question, it's possible to get the caller number for "non-voip" calls (cell or landline) on iOS?
Thanks,
Artur

Hi @acamenhas
I think I can't help on this. because it is outside the features of library.
however, it seems impossible.


--abort-on-existing

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm requesting a feature unrelated to a specific site
[X] I've looked through the README
[X] I've verified that I'm running yt-dlp version 2023.07.06 (update instructions) or later (specify commit)
[X] I've searched known issues and the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
When downloading a playlist (eg youtube) an --abort-on-existing option would speed up runtime when refreshing a playlist.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
No response

This?
--break-on-existing             Stop the download process when encountering
                                a file that is in the archive

I tried this;
python3 yt-dlp.pyz -q --compat-options filename-sani

tization -o "%(uploader)s - %(title)s - %(id)s.%(ext)s" -f "(137/136/18)+(141/140)"  "https://www.youtube.com/@uploader/videos" --exec "echo {}"
And  yt-dlp spends hours listing (but not re-downloading) existing files when I want it to stop at the first existing file...
So I tried
--no-overwrites --break-on-existing --no-break-per-input --skip-playlist-after-errors 1

and each on thier own...
I have no tried "--download-archive" but I suspect it would also take a long time (vs bail on the first existing video)

--break-on-existing works in conjunction with --download-archive
--break-on-existing --download-archive archive.txt will do what you want as long as the "existing" videos have been already recorded in the archive

Yes that did work.
ls -1 | perl -pe 's/.* /youtube /g;s/\..*//g' > archive.txt

Why is "--break-on-existing" not working without "--download-archive" ?

Why is "--break-on-existing" not working without "--download-archive" ?

https://github.com/yt-dlp/yt-dlp/issues/7698#issuecomment-1652068781


Implement delete button

The existing elemental editor (PHP GridField) has a delete button for quickly removing blocks.
The new React version needs this too. This will need to be written as a GraphQL mutation applied via an HOC.
Acceptance criteria

[x] Delete button shows on elements
[x] Clicking the delete button removes the row
[x] The element does not appear in the list on reload

Pull requests

[ ] https://github.com/dnadesign/silverstripe-elemental/pull/314

PR at https://github.com/dnadesign/silverstripe-elemental/pull/314


Backport GlobalDisclaimer from AREMI

There seems to be repeated demand for this in new projects, so we should backport it: NICTA/aremi-natmap@13015f6

From https://github.com/NICTA/nationalmap/issues/131

Unfixed (#71)


Don't manage custom ca-certificates in Dockerfiles

Bug description
Lots of dockerfiles in this repo are installing custom ca-certificates via ADD ca-certificates.tgz /. I can't tell if the build process downloads fresh certificates, but https://github.com/istio/istio/blob/master/docker/ca-certificates.tgz is over a year old.
Instead, I recommend grabbing the latest ca-certificates via the package manager, as the base dockerfile does: https://github.com/istio/istio/blob/master/docker/Dockerfile.base#L14
Alternatively, consider rebasing on distroless/static (see https://github.com/kubernetes/enhancements/blob/d5f6bbe0cc72077125833d8f5af2287b564d4392/keps/sig-release/20190316-rebase-images-to-distroless.md)
Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[X] Security
[X] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Steps to reproduce the bug
Based off reading source code, haven't actually verified in a running version.

/assign @howardjohn

Thanks for the report, seems like something we can and should do. I'll take
a look. By the way, starting in 1.3 we do ship distroless images
On Sat, Sep 21, 2019, 12:27 AM Zhonghu Xu<EMAIL_ADDRESS>wrote:

/assign @howardjohn https://github.com/howardjohn
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/17286?email_source=notifications&email_token=AAEYGXPKIYOP5YQOBQDOHK3QKXEFLA5CNFSM4IY4KF6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7IMLZQ#issuecomment-533775846,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAEYGXIMRYINRASCE7GMAFTQKXEFLANCNFSM4IY4KF6A
.