Trinidad and Tobago - Errno 22 - Heavy Rains?.csv

While running the data downloader example.py file, I got this error:

Traceback (most recent call last):
File "\data-downloader\example.py", line 10, in
csv_downloader.start_download(target_dir, mode=0b011)
File "\data-downloader\csv_downloader_init_.py", line 7, in start_download
start(target_dir, mode)
File "\data-downloader\csv_downloader_exec.py", line 9, in start
csv_crawler.run(mode)
File "\data-downloader\csv_downloader_csv_crawler.py", line 189, in run
self.download_country_data(country, disasters,
File "\data-downloader\csv_downloader_csv_crawler.py", line 156, in download_country_data
CSVCrawler.download_disaster_csv(country, disaster,
File "\DesInventar\data-downloader\csv_downloader_csv_crawler.py", line 143, in download_disaster_csv
with open(filepath, 'wb') as f:
OSError: [Errno 22] Invalid argument: '***/data/raw_csv_files/Trinidad and Tobago_tto/Heavy Rains?.csv'

I checked and Heavy Rains?.csv does not exist. For Trinidad and Tobago, there are two types Heavy rains with 22 events and Heavy Rains? with one event. The Heavy Rains.csv file has been created but is completely blank inside.
It could be that, during the processing, the ? his ignored and the similarity of the event type names caused the issue?

Hello @dadelforge Sorry for the late reply since I was working on my final exams last month. Could you give me some details about how you encountered this problem? Can this problem be solved by rerunning the script? Thank you very much! Looking forward to your reply.


Update About Page

Currently links to a 404 GitHub Blog, I believe it's intended to be updated to https://jacobsvante.github.io/netsuite/?

Thanks @jeffshek, I've fixed the link in the About column.


Infer IS (NOT) NULL as boolean instead of boolean | null

Avoid the | null here, from my comment:
// 💥 Query has incorrect type annotation.
//	Expected: { ... is_mammal: boolean; }
//	Actual: { ... is_mammal: boolean | null; }[]
await sql<{ id: number, first_name: string, is_mammal: boolean }[]>`
  SELECT
    animals.id,
    animals.first_name,
    mammals.id IS NOT NULL AS is_mammal
  FROM
    animals
    LEFT JOIN mammals ON animals.id = mammals.animal_id
`;

The tests I added are passing, but I'm not sure if I am missing out on other cases which should NOT be non-nullable.
By the way, is there something like AST explorer for the SQL AST types? I am fumbling a bit in the dark here, searching through the codebase - would be great to have a visual UI to select the parts of the code I'm interested in and have the node types identified.

One thing this doesn't touch is IS NOT NULL and IS NULL inside of a subquery, which yields unknown:
// 💥 Query has incorrect type annotation.
//	Expected: { is_null: boolean }[]
	  Actual: { is_null: unknown }[]
await sql<{ is_null: boolean }>`
  SELECT (SELECT 1 IS NULL) AS is_null
`

Welll done! LGTM. Regaring a AST Explorer - sadly there isn't. I usually rely heavily on logs and breakpoints.

Nice, thanks for the review and merge!

Regaring a AST Explorer - sadly there isn't. I usually rely heavily on logs and breakpoints.

Interesting, yeah then I'll work like this to start.
Wonder how easy it is to contribute something like this to AST explorer... 🤔 Would be an interesting thing to have the SQL AST more observable / visually debuggable. Or alternatively, build some minimal custom tooling. I'll keep it in mind.

@karlhorky https://github.com/Newbie012/pg-query-ast-explorer

Omg amazing, that looks great!! I will definitely use this for the next PRs!
https://pg-query-ast-explorer.vercel.app/


Dist file doesn't work with module bundlers

I'm getting this error in the dist file when using in Rollup (ES6 module bundler):
Uncaught TypeError: Cannot set property '_settings' of undefined
It looks like this library relies on a this object which doesn't exist. A global object? Not sure if the issues are with the build from src to dist. This can also be solved by adding a "module" key to package.json that points to the module source.

Oh never mind, this is because I missed the "new" keyword. You could do a factory pattern that allows the lib to work with or without new.

Yes I could do that, but I like to enforce  the new keyword because it makes explicit that the result is an object, an actual instance you can use.


parsleyjs - Uncaught ReferenceError: returntrue is not defined

I'm trying to require a minified version of the parsleyjs library but it's producing a console js error error on page load (webpack compilation works fine).
Installed using
npm install parsleyjs
Required using

require('parsleyjs/parsleyjs') : this works on page load
require('parsleyjs/parsleyjs.min') : this gives the error on page load Uncaught ReferenceError: returntrue is not defined

Stack Trace
(anonymous function)	@	parsley.min.js:8
(anonymous function)	@	parsley.min.js:8
(anonymous function)	@	parsley.min.js:8
(anonymous function)	@	parsley.min.js:8
__webpack_require__	@	bootstrap 578d15ff7d895d57a5b4:19
(anonymous function)	@	entry.coffee:26
__webpack_require__	@	bootstrap 578d15ff7d895d57a5b4:19
(anonymous function)	@	bootstrap 578d15ff7d895d57a5b4:39
__webpack_require__	@	bootstrap 578d15ff7d895d57a5b4:19
(anonymous function)	@	bootstrap 578d15ff7d895d57a5b4:39
(anonymous function)	@	bootstrap 578d15ff7d895d57a5b4:39

Similar error most likely related : https://github.com/webpack/webpack/issues/1044


DOC: add warning to top of 0.16.1 about datareader changing in 0.17.0

just to provide a FYI

It would also be good to include this notice at the top of the doc page on Remote Data Access:
http://pandas.pydata.org/pandas-docs/stable/remote_data.html


Tag system

Motivation
Tag system help with organization and the visitor to find content easily.

This MR is an initial part to close this issue
https://github.com/updatedev-com/gatsby-markdown-blog-starter/pull/13


[SPARK-26147][SQL] only pull out unevaluable python udf from join condition

What changes were proposed in this pull request?
https://github.com/apache/spark/pull/22326 made a mistake that, not all python UDFs are unevaluable in join condition. Only python UDFs that refer to attributes from both join side are unevaluable.
This PR fixes this mistake.
How was this patch tested?
a new test

Thanks for the fix from Wenchen,
the suites should also construct the dummy python udf from both side.

I fix the suite locally, they can be simply modified like:
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/PullOutPythonUDFInJoinConditionSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/PullOutPythonUDFInJoinConditionSuite.scala
index d3867f2b6b..a0f8ae2fc7 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/PullOutPythonUDFInJoinConditionSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/optimizer/PullOutPythonUDFInJoinConditionSuite.scala
@@ -40,13 +40,18 @@ class PullOutPythonUDFInJoinConditionSuite extends PlanTest {
         CheckCartesianProducts) :: Nil
   }

-  val testRelationLeft = LocalRelation('a.int, 'b.int)
-  val testRelationRight = LocalRelation('c.int, 'd.int)
+  val attrA = 'a.int
+  val attrB = 'b.int
+  val attrC = 'c.int
+  val attrD = 'd.int
+
+  val testRelationLeft = LocalRelation(attrA, attrB)
+  val testRelationRight = LocalRelation(attrC, attrD)

   // Dummy python UDF for testing. Unable to execute.
   val pythonUDF = PythonUDF("pythonUDF", null,
     BooleanType,
-    Seq.empty,
+    Seq(attrA, attrC),
     PythonEvalType.SQL_BATCHED_UDF,
     udfDeterministic = true)

@@ -118,7 +123,7 @@ class PullOutPythonUDFInJoinConditionSuite extends PlanTest {
   test("pull out whole complex condition with multiple python udf") {
     val pythonUDF1 = PythonUDF("pythonUDF1", null,
       BooleanType,
-      Seq.empty,
+      Seq(attrA, attrC),
       PythonEvalType.SQL_BATCHED_UDF,
       udfDeterministic = true)
     val condition = (pythonUDF || 'a.attr === 'c.attr) && pythonUDF1

the change itself seems fine to me, as @xuanyuanking mentioned, though, we should update the existing tests. What about adding a test in the new suite checking the plans instead of a end-to-end test?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/5431/
Test PASSed.

Test build #99356 has started for PR 23153 at commit 7b985d8.

Test build #99356 has finished for PR 23153 at commit 7b985d8.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/99356/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/5435/
Test PASSed.

Test build #99358 has started for PR 23153 at commit 7b985d8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/99358/
Test PASSed.

thanks, merging to master/2.4!

a late LGTM as well, thanks @cloud-fan for the patch and thanks @xuanyuanking for the review.


Could not find a valid gem 'puppet-lint-topscope-variable-check' (>= 0) in any repository

Please upload this gem to rubygems.org.

I have released version 1.0.1 and pushed the gem to the forge: https://rubygems.org/gems/puppet-lint-topscope-variable-check


[Suggestion] If you do this can release from soft ban

If you spin the pokestop for 40 times, you are good to go.
I already confirmed. It will be a great feature to add.
Also a friend told me if you throw 40 pokeballs, you get released too. I haven't tested yet. I'm not sure its throw and missing pokemon for 40 times or I have to hit pokemon 40 times.

Even for the same pokestop

I have tested and it works. Dirty patch attached
patch.diff.txt


Consider integration of oracle XE

As a developer, I want as much automation for installing my required toolings as possible so that I can save time and use it for other things.
Currently devonfw-ide focuses on local sandbox tools. Only docker is some kind of excuse that is a global tool.
Why not also supporting other global tools and simplify the installation for the users in IDEasy?
Meanwhile Oracle XE can be downloaded without login, etc. - see e.g. https://download.oracle.com/otn-pub/otn_software/db-express/OracleXE213_Win64.zip
Already being able to automatically download the latest or a specific version and running the installer could save some time.
However, it should be considered that a better alternative for projects is to use docker in combination of a project internal container image repository where Oracle could be a prepared image. This could even allow to customize the DB setup and auto-run some scripts to create users and tune some parameters as needed for the project. Still I can not believe that XE that is designed for development only has password expiry per default. Things like this are the first options to change and every project I have seen so far does this so IDEasy could help here with further automation. Also disabling the HTTP port 8080 in XE could be automated. There are many more such things that could be considered...

We had long discussions about this topic and came to the following conclusion:

instead of installing docker natively on the host, it is easier and more flexible to run it in a container (docker/podman)
when connecting to the DB via JDBC (from the app in development) or via tools like Oracle SQLDeveloper it does not make a difference for the user whether oracle is running on the host or in a container.
however, when the user wants to run tools like sqlplus or especially impdp or expdp this makes a big difference and this is where we should provide additional help, guidance and support in IDEasy.
Oracle provides an instance-client that can be downloaded and configured to a remote DB (e.g. the one in the container). This works fine with sqlplus but however for impdp there is a bug causing error ORA-39012: Client detached before the job started.
Finally, instead of implementing Java commandlets like here specific for Oracle that orchestrate container setup and invocation of commands inside the container (e.g. to circumvent the impdp bug) it may be smarter to provide this as simple bash scripts: In the end we need a script that is pulling a container image, launching the container - and we need another script for doing post-setup steps (e.g. for Oracle run some SQLs to set unlimited password lifetime, create user and potential DDL), and actually provide a script like impdp or sqlplus that can be invoked on the host but will delegate to the according tool inside the container. The benefit is that these bash scripts can still run on any OS but unlike our Java commandlets every project can customize them to their individual needs and there will always be requirements that we can never think of before. Ideally we can create a marketplace for such scripts (Oracle would be just one such use-case) and allow users to provide and consume such scripts/solutions. As all such scripts can rely on IDEasy they can utilize on whatever tools they need (e.g. terraform) without worrying where to get them from.

Deploy an Oracle database instance in a Docker container
The sources for the Oracle image can be fetched from Github and after that the image can be created from the sources (1),
or you can download the finished image directly from container-registry.oracle.com (2).
To avoid errors caused by creating the image, we prefere to use the finished image.

Load sources and create image:
git clone https://github.com/oracle/docker-images.git oracle-docker-images
cd oracle-docker-images/OracleDatabase/SingleInstance/dockerfiles/
./buildContainerImage.sh -v 21.3.0 -x
(takes about an hour)

Download image directly:
docker pull container-registry.oracle.com/database/express:21.3.0-xe (takes about an hour)
The right mirror can speed up the download significantly:
docker pull container-registry-frankfurt.oracle.com/database/express:21.3.0-xe
(takes about half an hour)

The result:
docker image ls
REPOSITORY                                    TAG                    IMAGE ID          CREATED           SIZE
oracle/database                              21.3.0-xe            6b0fc451335f    3 minutes ago   6.54GB	(Build)
container-registry-frankfurt...          21.3.0-xe            8da8cedb7fbf   3 months ago    11.4GB	(Download)
An Oracle database instance is now created from the image in a container in which:

the database files are in a local volume so that the data is retained when the container is closed,
a local directory is mounted in the container for exports by Data Pump,
Requirements for the database (parameters and others) can be passed with a configuration file.

@CREITZ25 thanks for this detailed and comprehensive instructions. 👍

--mount type=volume,source=oradatavol,target=/opt/oracle/oradata/XE --mount type=bind,source=%DEVON_IDE_HOME%\oracle_dump,target=/opt/oracle/admin/XE/oracle_dump

This is really a smart solution. Thanks for this trick. I was not aware of this feature in docker with the different mount types and using volume for the data that the end-user should not normally interfere with seems to fully make sense (and may also be faster/more efficient than a bind mount).
I am thinking in the following direction:

we could create a simple way to extend IDEasy with plugins (or maybe even using the existing custom tool feature)
if somebody could simply write some custom logic via bash scripts and bundle this somehow together (e.g. as a zip/tgz package) it could extend IDEasy with such features like OracleXE support via docker but with ability to export backup dumps, import existing dumps (with autocompletion? :) ), etc.
assuming we have an open "marketplace" for such plugins but still some concept of trust (e.g. by signing and users/projects trusting public keys), we could allow to extend IDEasy more dynamic for the individual needs of the projects
if we do not just use the existing custom tool feature but more some kind of plugin concept on top we could integrate such plugins as commandlets so e.g. with ide custom «keyword» «arg» users could simply get and use the plugin for «keyword» and invoke with with an according argument «arg». So e.g. ide custom oraclexe install he could setup an Oracle XE in a single call and with ide custom oraclexe export you could export a dump by default with the USER configured by the project via some variables and with the filename «USER»-YYYY-MM-DD_HH_mm_ss.dump etc. or via ide custom oraclexe export mydumpfile.dump with an explicit dumpfilename.
However, oraclexe would not be a commandlet implemented in Java and shipped via IDEasy but some plugin implemented by some vendor (could also be us) and available in some repo or marketplace.
Someone else could fork oraclexe and create oraclexe-fast-slim-advanced with his personal improvements, etc.

I still have to rethink this concept. On the one hand I am happy that we just left this bash hacking hell and came to a solid Java based development for our core features based on advanced QA processes that we failed to established with bash in devonfw-ide. On the other hand for dynamic needs of the projects it may still be beneficial to have the ability to extend our product with some scripting approach. If some need or demand evolves as custom plugin outside of the IDEeasy product it can then be integrated and rewritten in Java. But not every project need has to be build into the product IDEasy. So this could be some kind of nice balance.
NOTE: If we decide to go for such custom plugin mechanism, we will create a new story for it and do some PoC first. This story could then later be build on top of that feature...


Assignment 6.2 - Cody Titmus

I think I may have overwritten my original pull request. So here is another try.

This was merged with #16


⚠ PrivateHD has degraded performance

In e76d0ab, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 2073 ms

Resolved: PrivateHD performance has improved in 5a62997.


disable or enable partition awareness from XML file for client node or thin client node.

We are using java thin client in our spark streaming job and want to disable partition awareness in clinetConfigurtion class.
There is no option to pass that variable from XML file.
Please help

Use ClientConfiguration#setPartitionAwarenessEnabled to disable partition awareness.
Can you please clarify what's the problem with XML?

how to pass setPartitionAwarenessEnabled from xml file. I am not able to set this value to True or False from XML file.

@virendar5Kmr I don't know what kind of XML is used in your project. Assuming it is Spring XML:
    <bean id="igniteClient" class="org.apache.ignite.IgniteClientSpringBean">
        <property name="clientConfiguration">
            <bean class="org.apache.ignite.configuration.ClientConfiguration">
                <property name="addresses">
                    <list>
                        <value><IP_ADDRESS>:10800</value>
                    </list>
                </property>
                <property name="partitionAwarenessEnabled" value="false" />
            </bean>
        </property>
    </bean>

Thank you! @ptupitsyn, i try above. Yes it is Spring XML.


Issue? / workaround inside public T MakeRequest !?

public T MakeRequest(RpcMethods rpcMethod, params object[] parameters)  sometimes throws a null reference exception when trying to return rpcResponse.Result; (it's the .Error that contains info in these cases).
In my personal version, I implemented a workaround, if (rpcResponse == null) return default(T);
1: I wish to avoid a "personal version", but 2: not sure my workaround is a correct approach.
Please let me know if "return default(T);" is a correct approach in this null result, or should I catch the exception at my application level (which for me would translate to multiple locations). I'm suspecting I'm using a wrong approach.
When I think of it, the best for me is that in case there's a null reference exception, the application would somehow have access to the full Json response (instead of just the exception or just a default(T) that I'm returning. The reason is that we need to let the application "see" the error property that's in the Json.
below is my current workaround code. Waiting to read your thoughts.
public T MakeRequest(RpcMethods rpcMethod, params object[] parameters)
{
JsonRpcResponse rpcResponse = MakeRpcRequest(new JsonRpcRequest(1, rpcMethod.ToString(), parameters), 0);
if (rpcResponse == null)
return default(T);
else
return rpcResponse.Result;

This is now resolved with the use of RpcInternalServerErrorException() that handle internal server error exceptions and rebroadcast both the error message as well as the rpc error code.


Screen Redraws Written to Screen Buffer using WSL

Environment
Windows build number: 10.0.19042.0
Windows Terminal version (if applicable): 1.5.3242.0

Any other software?
WSL 2
Ubuntu 20.04

Steps to reproduce

Open WSL tab
Open vim
CTRL+L to redraw screen
Scroll up

Expected behavior
Not scrollable

Actual behavior
Scrollable

You know, this is either /dup #3492 or /dup #381, or just some combo of the two. I think 3492 is "implement support for the alt buffer in terminal", while 381 is "make sure conpty lets terminals know about requests for the alt buffer", so the two are tied together.

You know, this is either /dup #3492 or /dup #381, or just some combo of the two. I think 3492 is "implement support for the alt buffer in terminal", while 381 is "make sure conpty lets terminals know about requests for the alt buffer", so the two are tied together.


An error occurred in the quantization

File "/home/jack/nni/examples/model_compress/quantization/BNN_quantizer_cifar10.py", line 138, in main
quantizer = BNNQuantizer(model, configure_list)
TypeError: init() missing 1 required positional argument: 'optimizer'
code in https://github.com/microsoft/nni/blob/master/examples/model_compress/quantization/BNN_quantizer_cifar10.py,
change into：
quantizer = BNNQuantizer(model, configure_list,optimizer)

Thanks for your finding, it is a mistake! You could create a pull request to fix it if it is convenient. 😆


Swiper on button click jumps 2 slides

Which OS ?
ios and android
Version
Which versions are you using:

react-native-swiper v1.5.13
react-native v0.56.0

Expected behaviour
On click the button go to the next slide
Actual behaviour
When i click to the button on the first time it jumps to the same slide again
How to reproduce mit>
To help us, please fork this component, modify one example in examples folder to reproduce your issue and include link here.
Steps to reproduce

yarn add react-native-swiper
Create a component like this

<Swiper
 height={140}
 showsButtons
>
  <Text>Slide 1</Text>
  <Text>Slide 2</Text>
</Swiper>

4.Click on the button to go to the next slide

me to

same here

solved on this https://github.com/leecade/react-native-swiper/issues/720

add the key to the Swiper componet
like this:
<Swiper
        key={this.state.productImages.length}  // focus
        style={styles.swiper}
>
        {swiperItems}
</Swiper>

or like this:
const swiperItems = this.state.productImages.map(item => {
        return(
                <Image
                        source={{uri: item.realpath}}
                        style={styles.swiperimage}
                        key={item.position}  // focus
                />
        )
})

#720


k8s 1.30 support for csp-adapter

k8s 1.30 support test

I assume this is superseded by https://github.com/rancher/csp-adapter/pull/93 ?

This PR is  superseded by  https://github.com/rancher/csp-adapter/pull/93 ? We can close this PR


added move left/right images #120

Hey main changes are in generate-images.mjs added moveLeft and moveRight function. Let me know If some changes are required.
Edit:
Fixes #120
Fixes #28
Fixes #34

Hey, I am new to cypress so sorry for failing the test. Seems like might be an issue from ci. I have run the test locally they are passing 100%.

Hey, I am new to cypress so sorry for failing the test. Seems like might be an issue from ci. I have run the test locally they are passing 100%.

Yeah some issue with cypress

Yeah some issue with cypress

Hi, Saurabh sorry I did the changes the same day but forgot to ping 😅  I have made those changes have a look and let me know of other changes :)

Hi, Saurabh sorry I did the changes the same day but forgot to ping 😅  I have made those changes have a look and let me know of other changes :)


test task creates tosca tar and does not delete them

when running
gradle test

the tosca tests create some tar but in the end they are not removed, they show as new file in git ready to be added. Let's try to avoid to upload to the repo by mistake removing them after the tests are executed

Can we close this?

Yes. It was fixed.


try 3.6 tests again

guess I'll hang on to this for when pylint supports 3.6

Current coverage is 66.77% (diff: 100%)

Merging #79 into master will not change coverage

@@             master        #79   diff @@
==========================================
  Files            11         11
  Lines           629        629
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            420        420
  Misses          209        209
  Partials          0          0

Powered by Codecov. Last update 1330ea4...15f7d75


Aos2.0.0 qcom

Is your feature request related to a problem? Please describe.
sort out code according to code.aliyun.com
fix uprocess unload page leak
add user-defined syscall
remove repeated system call
porting lldb
Describe the solution you'd like
Additional context

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.9 out of 11 committers have signed the CLA.:white_check_mark: meixuxunxue:white_check_mark: Cheng-SG:white_check_mark: lluwang:white_check_mark: librae8226:white_check_mark: luxuguang-leo:white_check_mark: huaianrenhnu:white_check_mark: secretmikut:white_check_mark: caveguy:white_check_mark: shinyshy:x: magao.xwj:x: jun-pingmagao.xwj seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


VEP consequences terms seem clickable on the variant page

@mirandaio @peatroot, consequence terms returned by the VEP on the variant page are in blue and seem to be clickable.
e.g. https://dev--genetics-app.netlify.com/variant/6_31576865_A_G
(intron_variant)
Can have that in grey or other colour so that the user does not feel like clicking on that name please?

Ticket closed as VEP consequence terms shown in default font colour #5a5f5f


Make it easier for Fuego to use TLS

Starting from my inquiry about HTTP2 support, it is pretty clear that TLS configuration for Fuego could be easier.
It looks like the consensus is to add a new method, RunTLS(cert, key) that will do the same thing as Run does but call ListenAndServeTLS at the end, with the supplied certificate and key.
I also think nobody wants to deal with certificate management manually since LetsEncrypt and the ACME protocol made that a thing of the past. So while suppling paths to certificate files would work fine, I would also like to explore the options to make TLS usage less of a pain. I also realize that using an ACME client library to make it easy to get certificates might fall out of the scope of the initial work we want to do, I think it's good to consider a path forward here before making changes.
My first thought is around how an implementation using something like autocert would be like. Where are the integration points with Fuego?
What do you think?

I'm pretty against having fuego do any automated certificate stuff. That's on the caller in my opinion.
But that's just my opinion.

@dylanhitt I agree, also don't think Fuego should manage certificates automatically. What I meant is that we should look at how some of the libraries that do that work to make sure the API makes the integration easier.
Here an example: let's say I want to use TLS with certs from LetsEncrypt, I will setup autocert in my main.go and then I'll just hook it into Feugo somehow. Managing the certs (storage, renewal, etc) would my programs responsibility, not the framework's. I will try to come with some code to make it clear.

Ah I see, yes, some thought into how we expose the server TLS config could be fruitful. It is annoying when you need to do anything a bit more low level.

Hey @redecs curious if you were gonna work on this?
Thanks

@dylanhitt Yes, I am. Will try to open a PR later today to get some feedback.

closed by #120


tools/spm_parser fails building with swiftc 5.7

We just switched to Xcode 14.0.0 and spm_parser now fails to build.
Building for debugging...
/Users/xdev/gabriel/rules_spm/tools/spm_parser/Sources/spm_parser/Dump.swift:8:8: error: ambiguous use of 'main'
struct Dump: ParsableCommand {
       ^
/Users/xdev/gabriel/rules_spm/tools/spm_parser/Sources/spm_parser/Dump.swift:8:8: error: ambiguous use of 'main'
struct Dump: ParsableCommand {
       ^
[2/3] Compiling spm_parser Dump.swift

I'm not exactly sure what could be going on, it might be an issue with a 3rd party dependency, but I feel like you're in a better place to give this a look 🙏🏼

@gferon I was not able to reproduce the issue after upgrading to Xcode 14.0. However, I ran into a similar issue with another project. In that project, I moved the main to an explicit main func. I applied the same change to this repo in #173. Can you give it a try?

jkj

@gferon I went ahead and merged the change. Please let me know if this addressed the error that you were seeing.

Yes it does, thank you very much!


Make TapByResource output destination pod

The TapByResource command now has access to destination labels from the
proxy, but was not outputting them on the cli.
Modify the TapByResource output to print the destination pod label,
rather than the ip, when available.
Signed-off-by: Andrew Seigner<EMAIL_ADDRESS>Note the dst output on StreamResponseEnd events:
$ bin/go-run cli tapByResource -n emojivoto deploy/web
req id=0:6725 src=<IP_ADDRESS>:35304 dst=<IP_ADDRESS>:80 :method=GET :authority=web-svc.emojivoto:80 :path=/api/list
req id=0:6726 src=<IP_ADDRESS>:60826 dst=<IP_ADDRESS>:8080 :method=POST :authority=emoji-svc.emojivoto:8080 :path=/emojivoto.v1.EmojiService/ListAll
rsp id=0:6726 src=<IP_ADDRESS>:60826 dst=<IP_ADDRESS>:8080 :status=200 latency=68100µs

end id=0:6726 src=<IP_ADDRESS>:60826 dst=emoji-55d5fbd844-slc7f grpc-status=OK duration=309µs response-length=2161B

rsp id=0:6725 src=<IP_ADDRESS>:35304 dst=<IP_ADDRESS>:80 :status=200 latency=138496µs
end id=0:6725 src=<IP_ADDRESS>:35304 dst=<IP_ADDRESS>:80 duration=590µs response-length=4558B
req id=0:6727 src=<IP_ADDRESS>:35304 dst=<IP_ADDRESS>:80 :method=GET :authority=web-svc.emojivoto:80 :path=/api/vote
req id=0:6728 src=<IP_ADDRESS>:60826 dst=<IP_ADDRESS>:8080 :method=POST :authority=emoji-svc.emojivoto:8080 :path=/emojivoto.v1.EmojiService/FindByShortcode
rsp id=0:6728 src=<IP_ADDRESS>:60826 dst=<IP_ADDRESS>:8080 :status=200 latency=2360µs

end id=0:6728 src=<IP_ADDRESS>:60826 dst=emoji-55d5fbd844-slc7f grpc-status=OK duration=30µs response-length=24B

This look great to me. One question, though: in your sample output we see:
req id=0:6728 src=<IP_ADDRESS>:60826 dst=<IP_ADDRESS>:8080 :method=POST :authority=emoji-svc.emojivoto:8080 :path=/emojivoto.v1.EmojiService/FindByShortcode
rsp id=0:6728 src=<IP_ADDRESS>:60826 dst=<IP_ADDRESS>:8080 :status=200 latency=2360µs

end id=0:6728 src=<IP_ADDRESS>:60826 dst=emoji-55d5fbd844-slc7f grpc-status=OK duration=30µs response-length=24B

Does this mean that these labels are not present on the request events and are only present on the response events? This is surprising to me. If this feature is going to cause the output to be inconsistent, then we may want to hold off on this until these labels are present on the request events.
As I understand it, the proxy should annotate request events with these labels (since the request context is built after the request is bound to a destination)...

@olix0r That's correct, the proxy only sends the labels on StreamResponseEnd. My reading of the proxy code seems like this is expected behavior:
https://github.com/runconduit/conduit/blob/689c42263a0e85e8a44001d473ad37f310c3b823/proxy/src/control/pb.rs#L48

@siggy ok, thanks. i think that's an oversight. let me see if it's easy to address in the proxy.


PDF is not showing In Android Q and Android R

Blank page is coming even though storage permission are granted:
 private void openPDFChooser() {
        Intent intent = new Intent(context, FilePickerActivity.class);
        intent.putExtra(FilePickerActivity.CONFIGS, new Configurations.Builder()
                .setCheckPermission(true)
                .setShowImages(false)
                .enableImageCapture(false)
                .setShowFiles(true)
                .setMaxSelection(1)
                .setSkipZeroSizeFiles(true)
                .build());
        startActivityForResult(intent, 123);
    }

Library version:` implementation 'com.github.jaiselrahman:FilePicker:1.3.2'`

Getting same issue.
Even i have added  android:requestLegacyExternalStorage="true" in manifest.
Library version: 'implementation 'com.github.jaiselrahman:FilePicker:1.3.2'

With Android 10 and higher, added more restriction.

PDF work with me ,

i can pick
but i can not get path of file

With Android 10 and higher, added more restriction.

Same here.
Do you find any solution?

this is still not working on 10, anyone find out reason?

.setSuffix("pdf") worked for me in android 10


Misleading error message when 0 balance

Describe the bug
If I try to redeem some BTC when balance is 0 then I am getting error "Please enter an amount smaller than your current balance: 0"
To Reproduce

Go to redeem when balance 0
Enter any number

Expected behavior
"Insufficient balance to transfer." as on the transfer page.
Screenshots

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Resolved in the latest release.


Parameter to limit outgoing connection to IPv4

Hello Romain, thank you for your work on this great project. I have here a suggestion for a feature to implement that would make my deployment cases easier. Thank you for your consideration and best regards.
Describe the feature
The possibility to limit outgoing client connection to IPv4; something like the --ipv4 command line parameter
Describe the reason for such feature
With typical use of wstunnel client … wss://server1.example.com:443, server1.example.com is resolved to an IP address where IPv6 takes precedence if both A and AAAA exist.
However, there are cases where an IPv4 preference would make configuration easier. I use wstunnel even on the client side in systemd fully automatically linked to the wireguard interface, which is also managed via systemd-networkd. Nevertheless, in the example above, the destination is resolved to IPv6 and in some sites that I don't have under control, I am unable to establish connections via IPv6. I have to work around this via a bash script, where I first resolve the destination's IPv4 address and modify the systemd unit environment… This all breaks the elegant solution where everything was fully automated via systemd dependencies.

Hello,
There is already a flag that you can use to prefer ipv4 :)
You can use either at client or server side.
      --dns-resolver-prefer-ipv4
          Enable if you prefer the dns resolver to prioritize IPv4 over IPv6
          This is useful if you have a broken IPv6 connection, and want to avoid the delay of trying to connect to IPv6
          If you don't have any IPv6 this does not change anything.

          [env: WSTUNNEL_DNS_PREFER_IPV4=]


Use identical layer flag logic for all (re)builds

Summary

This fix addresses a user issue in which rebuilding an app suddenly results in a broken app image - dotnet cannot locate the ASP.NET Runtime in the app container.
Bug Reproduction Steps

Clone this app
Use pack CLI to build with the latest version of the .NET Core buildpack

pack build repro-app  -b paketobuildpacks/dotnet-core:0.23.0 --env BP_DOTNET_PROJECT_PATH=src/WebApi

Rebuild the app with no changes

pack build repro-app  -b paketobuildpacks/dotnet-core:0.23.0 --env BP_DOTNET_PROJECT_PATH=src/WebApi

See that the app still runs as expected

docker run -it --rm repro-app

Rebuild the app (again)

pack build repro-app  -b paketobuildpacks/dotnet-core:0.23.0 --env BP_DOTNET_PROJECT_PATH=src/WebApi

See that the app fails to start because no frameworks can be found:

docker run -it --rm repro-app
Setting ASPNETCORE_URLS=http://<IP_ADDRESS>:8080
You must install or update .NET to run this application.

App: /workspace/WebApi
Architecture: x64
Framework: 'Microsoft.AspNetCore.App', version '6.0.0' (x64)
.NET location: /workspace/.dotnet_root

No frameworks were found.

Learn about framework resolution:
https://aka.ms/dotnet/app-launch-failed

To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=6.0.0&arch=x64&rid=ubuntu.18.04-x64

Root cause
The bug emerges from a couple of the buildpacks' behaviours interacting. The dotnet-execute buildpack only requires ASP.NET at run-time, since it's not required for compiling .NET source code apps. The dotnet-core-aspnet buildpack has slightly different layer flag logic on fresh builds and cache-restoring builds.
On initial builds:
https://github.com/paketo-buildpacks/dotnet-core-aspnet/blob/5444a60de50ac65ff7f51f84ffb980129b4d4cb7/build.go#L133
On rebuilds:
https://github.com/paketo-buildpacks/dotnet-core-aspnet/blob/5444a60de50ac65ff7f51f84ffb980129b4d4cb7/build.go#L118
This means that on the third build, there is no cached ASP.NET layer to restore at build time. The symlinker iterates through the contents of an empty ASP.NET layer and creates no useful symlinks.
https://github.com/paketo-buildpacks/dotnet-core-aspnet/blob/5444a60de50ac65ff7f51f84ffb980129b4d4cb7/dotnet_root_linker.go#L20
At run-time, the ASP.NET layer is present, but it's not symlinked into the DOTNET_ROOT.
This PR fixes the problem by ensuring that the ASP.NET layer will remain cached when the buildpack restores the existing cached layer.
Checklist

[ ] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[ ] I have added an integration test, if necessary.
[ ] I have reviewed the styleguide for guidance on my code quality.
[ ] I'm happy with the commit history on this PR (I have rebased/squashed as needed).

@fg-j what a catch!


Allow auto hide after X seconds to be configurable

Describe the bug
I would like it to auto hide but five seconds is way too short for me especially since it can't detect if I am actively interacting with one of the icons. I would like the auto hide time period to be configurable.

Thanks for the suggestion, we're working on this

I agree, it would be nice if it did not hide when the user is interacting with some of the items to be hidden.

Improved, just wait for our next release, we have 5 secs, 10 secs, 15 secs, 30 secs and one-minute options.


temporarily set pool via GET argument

very UX thing but if someone clicks a map from pool A's maplist but currently has pool B selected, the ratings from pool B are used rather than pool A.
probably not too hard with a GET argument and defaulting to the currently selected pool if none was found

I won't do it like that. It definitely makes more sense when you first click a song within a pool, but if you click someone's profile from there, it gets even more confusing since it switches on you after showing a leaderboard from the pool you first looked at. I might change it so going to any map pool will automatically switch you set pool to the map pool you're looking at.


NFT settings / actions panel.

When user clicks the ... they should have some more actions to do on the NFT.

Here is a figma:

completed, also has Polyscan link


Remove console logging

Console logging should never happen in production. People tend to think it represents a problem, etc. We have reports of the following console log:
DigiTrust crypto: Invalid browser crypt object

I believe DigiTrustCrypto.initLog() just needs to properly set opts.logging:
       if(opts.logging == null){
               opts.logging = configGeneral.logging
       }

and call into initLog() from early within isMsCrypto()

Released in 1.5.15


Option to create cumulative snapshots

Output of restic version
restic 0.16.4 (v0.16.4-0-g3786536dc) compiled with go1.22.3 on darwin/arm64
What should restic do differently? Which functionality do you think we should add?
If restic had an option to include files referenced in the previous snapshot (for the same backup set) as well as the ones in the current backup run, it could be used as more of an archiving tool than a backup tool, but with all the awesome features restic currently has such as deduplication, compression, superb integrity checks, robustness and so on.
That is, if snapshot N-1 contains a folder /foo in which there were some files which have later been deleted, and some files have been added to the folder as well, then backing up /foo a second time would create snapshot N which contains/references both the still existing, the new, and previously deleted files.
What are you trying to do? What problem would this solve?
See discussion in https://forum.restic.net/t/need-help-with-restic-backup-configuration/7554 .
Did restic help you today? Did it make you happy in any way?
Yep!

You are describing a different use case. This issue is only about telling restic that the next snapshot should contain what's in the backup set at this point in time, as well as what the previous snapshot for the same backup set contains.

Hey @rawtaz ,
From what I understood of your use case, you want to maintain the tree of the previous snapshot (--parent snapshot), and add only new files in the repository. You don't want to remove the deleted files?
The --include flag will accept a list of files. Internally, it will preserve the parent snapshot tree and will only append to the tree with new files mentioned in the --include flag. Now, if restic internally is able to figure out the new files, would the same approach help your use case as well right?

From what I understood of your use case, you want to maintain the tree of the previous snapshot (--parent snapshot), and add only new files in the repository. You don't want to remove the deleted files?

It is not me who has this use case :) See the referenced forum thread for the original use case description.

Again, the use case or feature you are talking about is different from the one in this issue.
The cumulative snapshot feature suggested in this issue is just that - adding to what was in the previous snapshot, what has been added or changed since then. That's all. And this without having to add additional list of files, since we're still talking about the same backup set. The point of this issue is to have an easy way to make restic archive your files cumulatively, basically.

Also related: https://github.com/restic/restic/pull/4469 and https://github.com/restic/restic/pull/3405

This option is very useful to me.
I am trying to use restic to store files on cloud drives to free up my hard disk space , so I delete the local files every time after backing them up . Note that I am referring to regular cloud storage (such as Dropbox, OneDrive, Mega, etc.) and not professional cloud storage (like AWS S3, etc.).
Why don't I just upload the files directly to the cloud storage? Because most regular cloud storages have limitations, such as restrictions on the number of files in each folder, file name length limits, single file size limits, and filtering of files involving pornography and politics. Restic's method of storing files in individual blocks perfectly solves these issues.

Great feature


bug in lucene RecordId property

OrientDB Version, operating system, or hardware.

v2.2.6 SNAPSHOT[ ]

Operating System

[x ] Linux
[ ] MacOSX
[ ] Windows
[ ] Other Unix
[ ] Other, name?

Expected behavior and actual behavior

select from C where ref =#33:360
12 rows

test 1:
select from C  WHERE [index, ref,startOffset,endOffset] LUCENE "ref:#33\\:360"
0 rows
select from C WHERE [index, ref,startOffset,endOffset] LUCENE "ref:'#33\\:360'"
0 rows
select from C WHERE [index, ref,startOffset,endOffset] LUCENE "ref:#33:360"
0 rows

Suggestions for new engine
I investigated in the source a bit for understanding for what reason ....
There a lot of problems:

inside a transaction the building of lucene Document is made 3 times (performance degradation in multiple insertions ). I dont investigate in this part but it seams there is a bug. Index might be inserted just before to complete document insertion (after rid creation not before because is a atomic operation the insertion of document with indexes inclusions )
the select can create result completely wrong based on order of "[property1, property2]" in the query .... this part seams used just for  OCompositeKey items order
rid is not insert because instead to created a OCompositeKey with a simple rid is built a OCompositeKey with multiple keys
OCompositeKey and the key container model seams create a lot of problems because is a simply list and not  a MultiValueMap  (as for example https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/map/MultiValueMap.html). There a lot of code just for alignement, complex algorithm for generate CompositeKey and keeping the orde(but sometimes this order can be lost).Also point 2 it is solved indirectly by multimap.
It could be create simplty with a map emproving also performance reducing a lot of code for handling all.  The same lucene Document is a Multimap:it is the same abstract model . In this way is very simple also to solve other bugs present in manual index (another bug notified), solving this bug and permit to handle future extension very easily.
pay attention searcher is already thread safe so it is not necessary lock.

hi @publicocean0
which type is ref?

actually it should  be 2 times one for insert in TX and
then at commit time.

the select does not take count of the order [property1, property2] in query. That is the only way to make trigger the lucene index. See here on
http://orientdb.com/docs/2.2/Full-Text-Index.html#working-with-multiple-fields
to look for single field in a query

3 and 4 ) OCompositeKey is a concept of OrientDB, and works just fine for the native OrientDB indexes and i know less with external indexes like Lucene.

Hi @maggiolo00
ref type is LINK.

ok so 3 times globally.

i deducted it by testing it in debug mode inside orientdb. If put [property2,property] in the query the document building is built wrong. I developed a little framework in the past with lucene for indexing persisted  cached  i didnt need not extra info for querying. I dont know what do you mean with "That is the only way to make trigger the lucene index".

3,4) A ADT(abstract data type) for my opinion might be designed for working well with all the uses case.

hi @publicocean0
why 3 times globally?
do you have a test case to reproduce [property2,property] issue?
What do you mean extra info for querying?
It means that in order to enable the indexed query from the query engine the notation [property,property1] is necessary.

you can create a single test in project lucene with a query adding 2 properties in document
City.name
City.country where country is a link to Country document
Country.name is another property.
you want search in lucene all city of country=#10:0 where 10:0 is a valid country.
select from city where ['country','name']  lucene "country:#10:0 and name:London"
in this example you can see also another actual limitation present already notified.
select from city where ['country','name']  lucene "country.name:'UK' and name:London"
is not possible.

other error found: #6524. Lucene permits to search in collections.

if you have some snippets of code os SQL to share with us, it will be very appreciated.

regarding last my post ... it is very simple. You can create a simplified example  in lucene schema over 2 fields : field1 is a map|list , field2 is a list|map.

Have you got some snippet with these examples to speed-up my work?
Regarding suggestions, the Lucene index implements internal OrientDB's interface and behaviour.
The implementation enable search to work inside  a transaction, and to handle "delta" changes to documents. We can improve/fix implementation, but it is quite impossible to redesign the Lucene index implementation.

my suggestion was not in redesign lucene index , but replace adt above it . lucene index implementation remains pratically identical


DeepSpeed ignores trainer.gradient_accumulation

Bug description
I am using the pytorch lightning CLI, and set --trainer.strategy=deepspeed_stage_2
By adding a print in on_before_optimizer_step hook, or optimizer_step, I can see the optimizer is called on each step, ignoring trainer.accumulate_grad_batches.
I am using pytorch lightning 2.0.9 and deepspeed 0.13.1.
MWE (demo.py):
from pytorch_lightning.cli import LightningCLI
from pytorch_lightning.demos.boring_classes import DemoModel, BoringDataModule

class Model(DemoModel):

    def optimizer_step(self, *args, **kwargs):
        print("CALLING OPTIMIZER")
        super().optimizer_step(*args, **kwargs)

def cli_main():
    cli = LightningCLI(Model, BoringDataModule)

if __name__ == "__main__":
    cli_main()

Call without deepspeed:
python demo.py fit  --trainer.accumulate_grad_batches=32
Call with deepspeed:
python demo.py fit  --trainer.accumulate_grad_batches=32 --trainer.strategy=deepspeed_stage_2
What version are you seeing the problem on?
v2.0
How to reproduce the bug
When running python demo.py fit  --trainer.accumulate_grad_batches=32, we get

We can see the optimizer is called after 32 batches.
When running python demo.py fit  --trainer.accumulate_grad_batches=32 --trainer.strategy=deepspeed_stage_2, we get

We can see the optimizer is called after each batch.
Error messages and logs
# Error messages and logs here please

Environment

Current environment
#- Lightning Component (e.g. Trainer, LightningModule, LightningApp, LightningWork, LightningFlow):
#- PyTorch Lightning Version (e.g., 1.5.0):
#- Lightning App Version (e.g., 0.5.2):
#- PyTorch Version (e.g., 2.0):
#- Python version (e.g., 3.9):
#- OS (e.g., Linux):
#- CUDA/cuDNN version:
#- GPU models and configuration:
#- How you installed Lightning(`conda`, `pip`, source):
#- Running environment of LightningApp (e.g. local, cloud):

More info
cc @awaelchli @Borda @carmocca @mauvilsa

Can it be that the pytorch lightning callback optimizer_step  is called on each step, but super().optimizer_step(*args, **kwargs) calls a DeepSpeed optimizer, that will correctly take care of gradient accumulation?
cc: @awaelchli

@rob-hen Yes, DeepSpeed handles gradient accumulation internally and for this reason Lightning needs to call into optimizer step for it to be handled there. The relevant lines of code are here in the trainer:
https://github.com/Lightning-AI/pytorch-lightning/blob/9d35c61f5f103b04b7fd1f504b8b937450482d07/src/lightning/pytorch/loops/optimization/automatic.py#L172-L176
Where strategy.handles_gradient_accumulation == True in the case of DeepSpeed, hence the "else" branch will be taken.

@rob-hen If you want to convince yourself that gradient accumulation is working you could for example mock/patch the optimizer.step() method and observe when it is getting called.

@awaelchli Thanks alot. I see.
What about the other parameters that are mentioned in the documentation,

optimizer
learning rate
scheduler

I define learning rate, scheduler and optimizer in configure_optimizers, how does it relate to defining these parameters in the configuration for DeepSpeed (as described in the documentation)?
Is the configuration for DeepSpeed automatically taken from PyTorch Lightning? Or I need to specify it again for DeepSpeed?

Defining the optimizer/scheduler in configure_optimizers is the preferred way. You don't need to include them in the config again.

you could for example mock/patch the optimizer.step() method and observe when it is getting called As far as I understood, self._optimizer_step(batch_idx, closure) is called on every step. So witj optimizer.step() you mean the function from DeepSpeed? Can you tell me where that function is?

from torch.optim import SGD

class MySGD(SGD):
    def step(self, closure=None):
        print("optimizer step called")
        return super().step(closure)

# in LightningModule
def configure_optimizers(self):
    return MySGD(self.parameters(), lr=0.1)

So with DeepSpeed optimizer_step will be called every step, but step only after the actual gradient update, thus respecting the gradient accumulation?

Great!


Update all dependencies

LGTM... Not sure how I can review this other than maybe runnning the same locally? Not sure it's worth.

Well, if I would change all dependencies to my forks, then it's something to complain 😉 or if there is many unneeded replace options.
Regarding testing, CI already takes care of checking if the update is consistent (no changes will be applied if next person runs go mod tidy for example.
And if creating cluster and e2e tests are passing, we are most likely fine.

Also, this is just for the sake of using the latest, not that updating something fixes a bug for us, right?

Yes, that's just routine maintenance. If at some point we will have to update some dependency (new k8s version support for example), then it will be easier with newer dependencies.
Thanks for the review, will merge.


Repetitive Descriptions

Many of the descriptions for the methods are the same, it would be much more helpful if the descriptions were unique for each method so that inexperienced users would have a better understanding of how each method should be used. They are non intuitively obvious.

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

ID: 84846d44-79c3-e8fa-8dab-f52758cff295
Version Independent ID: b0f4e41d-a2a8-0cd8-a74a-c1ae436536b6
Content: AuthenticationContext Class (Microsoft.IdentityModel.Clients.ActiveDirectory)
Content Source: xml/Microsoft.IdentityModel.Clients.ActiveDirectory/AuthenticationContext.xml
Service: active-directory
GitHub Login: @erickson-doug
Microsoft Alias: douge

Are you referring to how all those overloads (which are the same function, but with different signatures) have the same basic descriptions? Can you help me understand an example of how this could be improved?

Yes, the overloads take different parameters so it would be helpful if the descriptions provided some information about the strings that can be used. Seeing that it takes two strings without information about what those strings are supposed to be does not tell us what we should pass into the method.

@DeanGross I believe each of the parameters and methods have additional details once you click on them. I think having all that information on the same page would clutter the page too much.
Please let me know if you disagree.

Closing based on @AlexGhiondea's investigation of the current state.  Please feel free to reopen if you feel that further discussion is needed.


Passing function props to customRowComponent in 1.0

Hi everyone
For reference I'm using version 1.8.
I'm trying to do something like in #286, specifically what I'm trying to do is add a checkbox to every Row of the table, and when a checkboxed is checked, it will update the state in the component that contains the Griddle component.
Any advice on how to do this?
Thanks in advance! 😄

Check out extraData, which allows you to specify additional props that are available to custom cell components.

Thanks for the reply!
I'm not sure how extraData works though,  we pass the props to  and the Cell component can access the prop we pass in?
Can other Components (ie Row) access it too?
Thanks again!

You can access the props from Cell or from an individual column's customComponent/headingCustomComponent.
For your situation, I would try adding a "fake" ColumnDefinition with your checkbox as its customComponent.

Thanks for the reply, my setup now is something like this.
This is my file with Griddle in it
import React from "react"
import Griddle, { plugins, RowDefinition, ColumnDefinition } from "griddle-react"
import { griddleTheme } from "../../values/griddleTheme"
import Layout from "../../components/retailer/shared/layout"
import Row from "../../components/country_manager/active_locations/row"
import CheckboxCell from "../../components/country_manager/active_locations/checkbox_cell"

export default class ActiveLocations extends React.Component {

  render() {
    return (

        <Griddle
          styleConfig={griddleTheme}
          data={this.props.locations.data}
          plugins={[plugins.LocalPlugin]}
          pageProperties={{pageSize: 5}}
          components={{Layout,Row}}
          >
          <RowDefinition>
            <ColumnDefinition id="Location Name" />
            <ColumnDefinition id="Address" />
            <ColumnDefinition id="Make Inactive" customComponent={{CheckboxCell}}/>
          </RowDefinition>
        </Griddle>
        <button className="btn btn-primary">Deactivate</button>

    )
  }
}

Row looks like this
import React from "react"
import { plugins } from "griddle-react"
import { connect } from "react-redux"

class Row extends React.Component {

  render() {
    const { rowData } = this.props;
    return (

        {rowData.attributes["address-attributes"].company}
        {rowData.attributes["address-attributes"].full_address}

    );
  }
}

const mapStateToProps = (state, ownProps) => {
  return {
    rowData: plugins.LocalPlugin.selectors.rowDataSelector(state, ownProps)
  };
};

export default connect(mapStateToProps)(Row);

And my CheckboxCell looks like this
import React from 'react';

const CheckboxCell = () => {
  return(

    <input
      name="inactive"
      type="checkbox"
     />

)};

export default CheckboxCell;

However the checkbox doesn't seem to appear on the table that is rendered
Thanks in advance!

Unless I'm missing something, your Row isn't actually rendering any of the Cells. As far as I can tell, you shouldn't need a custom Row:
  <RowDefinition>
    <ColumnDefinition id="company" title="Location Name" />
    <ColumnDefinition id="full_address" title="Address" />
    <ColumnDefinition id="Make Inactive" customComponent={CheckboxCell} />
  </RowDefinition>

(Note: customComponent={CheckboxCell} instead of customComponent={{CheckboxCell}}; the latter creates an object.)

the data I'm passing into Griddle is kind of nested, is there a way to pass it in via ColumnDefinition id when its nested?
Though when I tried to pass in some dummy data like this
  render() {
    var data = [
      {
        "id": 0,
        "name": "Mayer Leonard"
      },
      {
        "id": 1,
        "name": "Bob Leonard"
      }
    ];
    return (

        <Griddle
          styleConfig={griddleTheme}
          data={data}
          plugins={[plugins.LocalPlugin]}
          pageProperties={{pageSize: 5}}
          components={{Layout}}
          >
          <RowDefinition>
            <RowDefinition>
              <ColumnDefinition id="id" title="Id" />
              <ColumnDefinition id="name" title="Name" />
              <ColumnDefinition customComponent={CheckboxCell} />
            </RowDefinition>
          </RowDefinition>
        </Griddle>
        <button className="btn btn-primary">Deactivate</button>

    )
  }

I only got an undefined header

Thanks in advance!

Oh, it seems I can do pass in nested data, the syntax should look like this right?
  render() {
    return (

        <Griddle
          styleConfig={griddleTheme}
          data={this.props.locations.data}
          plugins={[plugins.LocalPlugin]}
          pageProperties={{pageSize: 5}}
          components={{Layout}}
          >
          <RowDefinition>
            <RowDefinition>
              <ColumnDefinition id="attributes.address-attributes.company" title="Location Name"  nested={true} />
              <ColumnDefinition id="attributes.address-attributes.full_address" title="Address"  nested={true} />
              <ColumnDefinition id="Make Inactive" customComponent={CheckboxCell} />
            </RowDefinition>
          </RowDefinition>
        </Griddle>
        <button className="btn btn-primary">Deactivate</button>

    )
  }

though I still get like in the screenshot above

Everything in the last example seems correct at a glance...

I'm sorry, it was a typo on my part. I typed RowDefinition twice.
Its now working well now, I can now pass a function to my custom props. Thank you so much for your help  :D

I'm sorry, it was a typo on my part. I typed RowDefinition twice.

Feeling pretty silly to have overlooked that myself. Glad you got it working!


Incorrect namespace is used in the test solution for the CppWinRT NuGet package

After merging #561, the nuget test solution no longer build with error:
midlrt : error MIDL1001: [msg]cannot open input file [context]Error opening or processing WinMD e:\xlang\src\test\package\nuget\nugettest\bin\x64\debug\testruntimecomponentempty\testruntimecomponentempty.winmd. HRESULT 0x80070002.

@Scottj1s is it possible to run the test solution as part of CI, so problems like this won't sneak through the validation?


[FLINK-19184][python] Add Batch Physical Pandas Group Aggregate Rule and RelNode

What is the purpose of the change
This pull request will add Batch Physical Pandas Group Aggregate Rule and RelNode
Brief change log

add BatchExecPythonAggregateRule
add BatchExecPythonGroupAggregate
change the match condition of BatchExecHashAggRule and BatchExecSortAggRule

Verifying this change
This change added tests and can be verified as follows:

Added ut test PandasGroupAggregateTest

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

@dianfu Thanks a lot for the review. I have addressed comments at the latest commit.


Refreshing Data

Discussed in https://github.com/facebookexperimental/Robyn/discussions/612

Originally posted by KristiGourlay January 26, 2023
Disclaimer: I'm a pythonista and my R is very basic.
I'm trying to refresh my model with 3 new weeks of data. I followed the demo and wrote:
RobynRefresh <- robyn_refresh(
  json_file = json_file,
  dt_input = refreshed_data,
  dt_holidays = dt_prophet_holidays,
  refresh_steps = 3,
  refresh_iters = 1000,
  refresh_trials = 3
)

Then I got an error for no object refreshStart detected and then for no object refreshEnd detected. So I updated to:
refreshStart <- '2023-01-08'
refreshEnd <- '2023-01-22'
units <- "weeks"

RobynRefresh <- robyn_refresh(
  json_file = json_file,
  dt_input = refreshed_data,
  dt_holidays = dt_prophet_holidays,
  refresh_steps = 3,
  refresh_iters = 1000,
  refresh_trials = 3
)

Now it runs. It successfully re-created my model 1_122_7. But then I get this:
>>> Building refresh model #1 in manual mode
>>> New bounds freedom: 100%
>> Running feature engineering...
NOTE: potential improvement on splitting channels for better exposure fitting. Threshold (Minimum R2) = 0.8
  Check: InputCollect$plotNLSCollect outputs
  Weak relationship for: 'fbawareness_I', 'microsoft_I', 'mtv_I'and their spend
Input data has 264 weeks in total: 2018-01-07 to 2023-01-22
Refresh #1 model is built on rolling window of 3 week: 2018-01-28 to 2023-01-22
Rolling window moving forward: 3 weeks
Fitting time series with all available data...
Using geometric adstocking with 26 hyperparameters (25 to iterate + 1 fixed) on 9 cores
>>> Starting 3 trials with 1000 iterations each using TwoPointsDE nevergrad algorithm...
  Running trial 1 of 3
  |                                                                                |   0%Timing stopped at: 0.531 0.52 0.32
Error in { :
  task 1 failed - "arguments imply differing number of rows: 12, 13"

What I have tried:

Confirmed no null values.
Confirmed dimensions of data (261, 23) and now (264, 23)

Hi @potatosalad thanks for reporting this and glad that being a pythonista you're starting to get the handle of R!
That said, can you please check your version and make sure you're running on the latest dev version?
Would it be possible for you to share your JSON file and dataset to help us debug your issue?
Thanks for reporting it; it def seems like a bug.

@laresbernardo I think you may have tagged the wrong person 🙂

@laresbernardo Thank you for the quick reply. The version I am using is 3.9.0
I can share those with you. How would you like me to send them? I cannot make the dataset public since it's my companies data.

That's ok. Please, send them to bernardolares and amyhao @ meta.com. Amy will help us debug these couple of issues. Thanks for sharing it.

Perfect - thank you! It's sent.

Any update on this?  @laresbernardo @Amyhaoming

works on latest version


Add extension: Settings Sync

I can't find Settings Sync extension in your marketplace, can you add it?
https://github.com/shanalikhan/code-settings-sync
https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync
It syncs all my vscode config across devices, and extremely convenient.
But it also installs all my extensions that I use regularly, and saves the extension config like this:
[
  {
    "metadata": {
      "id": "d3836729-9cc1-42c1-b2af-d50071f57d29",
      "publisherId": "formulahendry.auto-close-tag",
      "publisherDisplayName": "formulahendry"
    },
    "name": "auto-close-tag",
    "publisher": "formulahendry",
    "version": "0.5.6"
}]

Do you keep the extension id in your marketplace?
It also syncs keybindings:
// Empty
[
    {
        "key": "ctrl+alt+t",
        "command": "surround.with",
        "when": "editorHasSelection"
    },
    {
        "key": "ctrl+shift+t",
        "command": "-surround.with",
        "when": "editorHasSelection"
    },
    {
        "key": "ctrl+shift+k",
        "command": "git.push",
    },
    {
        "key": "ctrl+k",
        "command": "git.commit",
    },
    {
        "key": "ctrl+shift+alt+insert",
        "command": "scratchpads.newScratchpad"
    }
]

And Settings:
{
    "git.confirmSync": false,
    "git.autofetch": true,
    "workbench.colorTheme": "Darcula",
    "sync.gist": "gist-id",
    "sync.autoUpload": true,
    "sync.autoDownload": true,
    "editor.fontFamily": "'Fira Code', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'",
    "editor.fontLigatures": true,
    "editor.suggestSelection": "first",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
    "auto-close-tag.activationOnLanguage": [
        "xml",
        "php",
        "blade",
        "ejs",
        "jinja",
        "javascript",
        "javascriptreact",
        "typescript",
        "typescriptreact",
        "plaintext",
        "markdown",
        "vue",
        "liquid",
        "erb",
        "lang-cfml",
        "cfml",
        "HTML (Eex)"
    ],
    "files.associations": {
        "*.js": "javascriptreact"
    }
}

It's currently outdated just below the version that allows the extension to work as well.


Forecasting COVID-19 Reported Cases

Review / edits

Hey @zmarkan , please approve this request when you can. Will change -wip accordingly.


Fix TFMs for Xamarin.

This fixes the Target Framework Monikers for Xamarin. These got broken somewhere along the line and so Sprache is no longer installable into a Xamarin PCL. I blame NuGet 3, but I blame NuGet 3 for a lot of things.

Many thanks for this Kent!


feat : Added view dataset feature

Description
This commit introduces a new feature: the ability to view files. This feature enhances the functionality of the application by allowing users to view files directly within the interface. It provides a convenient way for users to inspect the contents of files without having to download them first.
Fixes #13
Type of change

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

How Has This Been Tested?
I have tested this feature extensively to ensure its functionality and compatibility with different file types.

[x] Tested viewing text files
[ ] Other tests (please specify)

Screenshots:
Before

After

Checklist:

[ ] 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
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

#29 adds this feature

Closing as this is fixed.


Improve Sound.setPosition performance

On a publicly deployed project I'm working on we've had numerous users report severe audio degradation over time on iOS and Safari. The project uses spatial audio.
On both platforms the CPU usage was ticking upwards quickly. Digging in it turns out that setting a position of the PannerNode on every frame even when the position has not changed, as can happen via e.g. world matrix update observables, has adverse performance effects on WebKit.
Checking and returning early if the current and new positions are equal seems to have remedied this performance issue.
Happy to discuss further!

Thank you for the 👍  @Popov72, I fixed the issue and then squashed the two commits.

Nice one @jure

Thanks for the merge, @sebavan! It should be said that this is likely a bandaid, and that the real culprit is hiding in WebKit: https://bugs.webkit.org/show_bug.cgi?id=227199
The bug comments include a reproduction, which results in crackling degraded audio on both iOS and Safari: https://brianpeiris.github.io/spatial-audio-test/
But at least if your positional audio nodes are not moving in any sort of animated frame by frame fashion, this early return will save you some time before the audio degradation occurs.


Unable to make HISTIGNORE works with zim

I am trying to use HISTIGNORE in my .zshrc but it ignores what I have put.
I want to avoid saving in the history everything related to shutdown/halt/poweroff/reboot to prevent hitting enter key to quickly.
I have tried
export HISTIGNORE="/sbin/shutdown -r now:/sbin/poweroff:/sbin/halt:/sbin/poweroff:/sbin/hibernate"
but shutdown -r now is kept in my .zshistory
I only see setopt HIST_IGNORE_ALL_DUPS on my .zshrc which is done by default by zim install but I don't think this is the cause of the issue.
Any idea?
Many thanks

Hi. That's because HISTIGNORE is only understood by bash. Zsh has HISTORY_IGNORE, which does not behave exactly like HISTIGNORE in bash. See https://stackoverflow.com/a/38549502/2654518
Read the complete Zsh manual entry doing man zshparam and searching for HISTORY_IGNORE. Or read here.

@ericbn many thanks now it make sense :)


revert #1574 on 2.19 while we fix apim backend

@BeChaRem would you be able to run rush change -b release/2.19.x?

@calebmshafer Can you retrigger the build for this branch. I rerun the command after syncing origin from upstream branch, hopefully this will works.

See https://github.com/imodeljs/imodeljs/pull/2005#issuecomment-895561184 for details on closing.


fix moved link in CONTRIBUTING.md

Description:
https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#best-practices-for-faster-reviews only contains one line stating:
This file has been moved to https://git.k8s.io/community/contributors/guide/pull-requests.md (which redirects to https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md

Hi @JensTimmerman,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

LGTM, thanks!


Metadata endpoint is configurable

Metadata is now determined by the api_category field "metadata_endpoint".
{
  "api_category": "/ssoi/v1",
  "upstream_issuer": "https://example-issuer.com",
  "metadata_endpoint": "https://example-issuer.com/metadata"
}

TODO
- [ ] Update example Config
- [ ] Update CLI (and other files that are involved in config updates)
- [ ] Create PR to Include metadata_endpoint in environment configs
- [ ] Test Docs
- [ ] Add Metadata test for Integration Shell Script
- [ ] e2e tests
- [ ] functionality
I have confirmed the OpenId handler module is compatible with IAM endpoints. Closing with no Action.

No action is needed to include this functionality.


test: add failing examples for default responses

This adds failing examples for #413. The passing ones are in https://github.com/stoplightio/prism/pull/465.

@philsturgeon
Comment on these failing tests: according to the code this is failing “on purpose”. The ability to look for the closest response is implemented only for successful responses; so you can do 2XX, and you’ll get the first one. Do you want to make the change and expand it to other responses as well, such as 4XX (which is the part of this test?)

@lag-of-death I had a go at fixing the conflicts but there is still a yarn.lock change floating around which I don't think should be there. These tests look great, if you can fix that I'll thumbs up and we're done here! 🎉

@phil, yarn.lock updated now

BLOCKED: https://github.com/stoplightio/prism/issues/413#issuecomment-513702133


examples: use InfoContext::builder for add_info

Partly fixes #21

Please tell me if the fix makes sense to you. I have to admit I didn't test this change, but API-wise it looks valid.


Poll: do any sway users rebind keys at runtime, or use the reload command via IPC?

I do

Can you describe your use-case?

The bindings need to be changed for some reason so I edit the config file to change them. Then I do i3-msg reload in the terminal.

How would you feel about binding reload to a key?

It's not my workflow. I'm already in a terminal from vim so that's where my head is at. I do everything I can from the terminal. I know from my experience supporting i3 is that this community loves the terminal.

Sure, I love the terminal too :) thanks for the input

Put together a strategy that'll keep the option available, but it's likely to be turned off by default.

ugh ok

Well, the concern is that a malicious program could rewrite security rules in your config and then trigger a reload via IPC. Open to suggestions. You can change this behavior by editing this in the default security rules.

So they can't read the config, find the button to reload, and simulate the key event that does the reload?

Simulate the key event how?


Frontmatter support

I use Frontmatter in my markdown files.
I have some markdown file with the following content:
---
title: Hello World
description: My test page
date: 04-22-2024
---

Blah-blah-blah.

I am currently getting errors when using Frontmatter:
test.md
2:1-5:4      warning Heading capitalization error. Expected: 'Title: Hello World                                                                                heading-capitalization remark-lint
Description: My Test Page
Date: 04-22-2024' found: 'title: Hello World
description: My test page
date: 04-22-2024'

I think your plugin should ignore Frontmatter markup or be able to check only the value (not keys) specified in the settings. Like this:
// .remarkrc
{
  "plugins": {
    "remark-lint-heading-capitalization": ["error", {
      "checkFrontmatterFields": ["title"]
    ]
  }
}

Yes, I need to think about how best to do it, thanks for the suggestion!

@azat-io Hi, I have a similar problem and I have solved it by adding remark-frontmatter into remarkrc configuration like this 👇
import config from '@almacareer/remark-config';

export default {
  ...config,
  plugins: [
    ...config.plugins,
    'remark-frontmatter',   // <-- `npm install -D remark-frontmatter`

    // Values should increment by one from the first item
    // @see: https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-value
    ['remark-lint-ordered-list-marker-value', 'ordered'],

    // Do not check blank lines between list items
    // @see: https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-spacing
    ['remark-lint-list-item-spacing', false],
  ],
};

From now on the remark-lint support also Frontmatter. The heading capitalization does not work for the titles but I have no problem with frontmatter anymore. :-)


no settings menu on my version

My k9 views as a black background with neon colored text. It is very hard to read. Your help pages suggest that I can change my settings to show white background and different fonts but my version of k9 does not have any settings me u orvtab b that I can find .

Sorry about the typing above. Tried to say no settings menu or tab. I am on a Samsung galaxy tablet. Can't find a version for k9.

Neon text doesn't sound like it's K-9 Mail. Maybe you've installed one of the many forks.
In any case, for support requests please use the mailing list, not this bug tracker.


Add WebGL constants to integer entities

Proposed solution for #149

LGTM. Thanks for the patch.
I'm importing your change internally and it will be submitted soon.

@jDramaix thanks for merging this! Are there any jars compiled from the master branch published to some repository or should I wait for a release?

@jDramaix any news on the release?

Yep I'm fine doing a 1.2.0. I'll try to release it asap


fix: fix fvm check

#312
If fvm is already included in the project, can we consider removing the code that checks for fvm

I have a question, if I have a version of fvm at the beginning, and then I start using sidekick, will there be a conflict, or will sidekick detect that I already have a version and not ask me to set the environment variable?

Another thing is that the fvm version in sidekick is not easy to update. Is it possible to update fvm through shell without built-in fvm?

#311

Yep, we can remove the FVM checking code istself

I was in the process of removing code and saw that Chocolatey and Brew were only used to download fvm, so I thought I'd check their code and remove it as well. If they have other uses, please let me know.

@aguilaair

They can be used to download git, but the download description says to download fvm

Let's keep brew/choco for now, we should update the description though

@aguilaair We can close the related issue.


gup: 0.9.1 -> 0.9.2

Description of changes
Fixes build error due to pylint changes (https://github.com/timbertson/gup/issues/23).
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 336413 run on x86_64-darwin 1

1 package built:

gup

Thanks for the review @smancill , updated as requested (and updated the update script so it won't keep clobbering the version attr 🤦 ).

Result of nixpkgs-review pr 336413 run on x86_64-darwin 1

1 package built:

gup

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/4638

Thanks for the review @SuperSandro2000

Why is pylint run ad an linter even?! Please remove that, we don't really care if any lint fails.

It's not linting the source code as you'd typically use it, it's checking that the custom build process didn't introduce any obvious errors when merging multiple python modules into one file, like undefined functions or naming clashes. It used to use pychecker, but that is now unmaintained.

Still und package could break with every linter update and we generally want to be able to merge updates to them without causing breakages.

the package could break with every linter update

If I (as package maintainer) accept that risk, can we proceed? This is fundamentally a version bump pr, using pylint in the derivation is not optional unless you want to patch upstream to remove its use.
I understand that you don't think this is a good idea, but if you really care can we have a proper discussion about potential solutions and their tradeoffs on the repo itself, rather than holding up this PR?

@SuperSandro2000 you're currently blocking this PR. Can you please respond to my above comment, and clearly state your requirements for unblocking? It sounds like current status is this PR will be blocked (leaving the package broken) until I make changes to remove pylint from the build process. But I want to confirm that's still the case after my last comment.

Note also that pylint is invoked with --errors-only, it's not going to fail on typical lint warnings.
The issue that needed fixing here was a (possible) use-before-assignment of xrange due to some py2/3 compat logic, which has now been removed.


Phoenix header scrolls with page on Sequencing view

Checked for duplicates
No - I haven't checked
Is this a regression?
No - This is a new bug
Version
2.11.1
Describe the bug
On the Sequencing view I can scroll the entire page (including the header), which makes the user role menu in the upper left invisible. I was not able to replicate this behavior on other views, seems to be just Sequencing.
Reproduction
On Sequencing view, scroll page all the way to the bottom. I am using the two finger scroll gesture on a MacBook. Header scrolls out of view.
https://github.com/NASA-AMMOS/aerie-ui/assets/1181836/da224ce1-899e-4bee-ad4e-5e6aef766615
Logs
No response
System Info
Chrome

Severity
Minor

This should be fixed by https://github.com/NASA-AMMOS/aerie-ui/pull/1338

Closing because #1338 has been merged. Please re-open if it turns out the bug hasn't been fixed.


fix: allow undefined storage provider

Summary
Sets storage provider in core config as optional. Allows SDK to be configured with no storage provider, effectively turning off persisting unsent events.
Before the fix, the default config for Node SDK uses in memory storage with saveEvents is set to true. In memory storage for Node doesn't provide any value to Node but only hurts it by taking memory resources.
This fix allows Node SDK to set storage provider to undefined, turning of saving unsent events and fixing the issue on memory usage. SDK can still be configured to have a custom storage provider.

Checklist

[ ] Does your PR title have the correct title format?
Does your PR have a breaking change?:

It looks good to me. Just curious how Kotlin and Python handle it. Do they allow undefined storage provider as well?

For python at least, the reads from storage before sending so it requires it. Kotlin and browser have them but I believe Node does not benefit from in memory storage @dnshi


nr-theme package in the launcher.js still points to the old @flowforge scope

Current Behavior
These messages show up when register a brand new device
[AGENT] Fri Jan 26 2024 09:22:01 GMT+0800 (CST) [info] Updating theme files
[AGENT] Fri Jan 26 2024 09:22:01 GMT+0800 (CST) [info] Could not write theme files. Theme not found: '/usr/lib/node_modules/@flowfuse/nr-theme'
[AGENT] Fri Jan 26 2024 09:22:01 GMT+0800 (CST) [info] Starting Node-RED

and the device editor theme is the default node-red theme, not the FlowFuse one.
Expected Behavior
No error message.
Use the FlowFuse theme
Steps To Reproduce
Register a new device in the platform.
Enable develop mode
Open device editor
Environment

FlowFuse version: 2.0.0
Node.js version: 16
npm version:
Platform/OS: macOS
Browser: Chrome

It seems that the writeThemeFiles() function in the launcher.js file is still searching for the old @flowforge scope:
    async writeThemeFiles () {
        info('Updating theme files')
        const sourceDir1 = path.join(__dirname, '..', 'node_modules', '@flowforge', 'nr-theme')
        const sourceDir2 = path.join(__dirname, '..', '..', 'nr-theme')
        const sourceDir = existsSync(sourceDir1) ? sourceDir1 : sourceDir2
        const targetDir = path.join(this.projectDir, 'node_modules', '@flowforge', 'nr-theme')
        ...
   }

Thanks for highlighting - we'll get that fixed.

Verified with Device agent v2.1.0


Add MsgArea highlight support

neovim implements MsgArea highlight support.
So I have implemented it in Vim.
It is useful to implement input command line plugin.

Note:  I want to add the support for Cursor highlight.  But it is hard.

It is useful to implement input command line plugin.

How is this useful for input command-line plugins?
In the screenshot it looks like you're trying to hide the command-line and instead show the entered text in the popup window. Wouldn't it be more convenient to add a new function like a popup_prompt() (or popup_input()) that asks the user for input, similar to the already existing input() function?

How is this useful for input command-line plugins?

Some plugin like fall.vim implements command line interface.
But it cannot hide original command line.  In neovim, it can hide the command line by MsgArea.
https://github.com/vim-fall/fall.vim

In the screenshot it looks like you're trying to hide the command-line and instead show the entered text in the popup window. Wouldn't it be more convenient to add a new function like popup_prompt() [or popup_input()] that asks the user for input, similar to the already existing input() function?

The new function may be useful.  But it will be complex implementation.

Hm, it seems MsgArea is just a fancy way to highlight the command line? But if you want to use a command line plugin, it seems you rather want something different? So how does it relate?

Hm, it seems MsgArea is just a fancy way to highlight the command line?

Yes.  It is just the highlight of command line.
However, this can be applied to implementing your own command line window to hide original command line area.

But if you want to use a command line plugin, it seems you rather want something different? So how does it relate?

The approach advantage is compatibility.
The command line plugins simply mirror the contents of the command line.

Hm, so what would your command line plugin from your initial post would look like if we do not try to style the command line? E.g. what does it look like currently?

This is the current Vim's behavior.
The below command line message cannot be hidden.

Note: The command line cursor cannot be disabled in both.

:sleep! 6 can hide the cursor, but just 'another' cursor donot know where it from.

It works but I cannot operate Vim.   I am not sure if it is a good idea to allow this, but on the other hand, the current solution also does not look too nice.

so basically you are just doing :hi MsgArea ctermfg=black ctermbg=black guifg=black guifg=black to make it "disappear"?

Yes.  The current code is:
  " NOTE: Disable cmdline area highlight
  const hl_normal = has('nvim') ?
        \ nvim_get_hl(0, #{ name: 'Normal'}) : hlget('Normal')
  const hl_msg = has('nvim') ?
        \ nvim_get_hl(0, #{ name: 'MsgArea'}) : hlget('MsgArea')
  const hl_cursor = has('nvim') ?
        \ nvim_get_hl(0, #{ name: 'Cursor'}) : hlget('Cursor')

  if has('nvim')
    call nvim_set_hl(0, 'MsgArea', #{ fg: hl_normal.bg, bg: hl_normal.bg })
    call nvim_set_hl(0, 'Cursor', #{ fg: hl_normal.bg, bg: hl_normal.bg })
  else
    call hlset([
          \   #{
          \     name: 'MsgArea',
          \     guifg: hl_normal[0].guibg,
          \     guibg: hl_normal[0].guibg,
          \   },
          \ ])
  endif

Note: I want to add the support for Cursor highlight. But it is hard.

I have added cursor_on() and cursor_off() for it.

There is already Cursor Highlight, which seems to work fine in the GUI. For the terminal, I guess you can use some kind terminal escape sequences to hide the cursor using e.g. echoraw(). But as mentioned, I would strongly recommend not to completely hide the cursor, instead make it a small horizontal bar if this is possible.

also can you please add some tests here?

But as mentioned, I would strongly recommend not to completely hide the cursor, instead make it a small horizontal bar if this is possible.

I have checked ... but Vim does not support the feature.
I use t_SI, t_EI but it is not for the cursor change.