COI feature

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

61 of 68 (89.71%)  changed or added relevant lines in 9 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+4.6%) to 67.84%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pathways/models/user.py
2
4
50.0%

pathways/views/api/user.py
0
5
0.0%

Files with Coverage Reduction
New Missed Lines
%

pathways/models/user.py
2
60.0%

Totals

Change from base Build<PHONE_NUMBER>:
4.6%

Covered Lines:
578

Relevant Lines:
852

💛  - Coveralls


MB-1815 Headers

Description
This branch includes the basic markup and styling for the MilMove Header and the Page Header. It groups them together in a single page in Storybook called Headers.

adds MmHeader and PageHeader components into the components directory
styles both components in their own index.module.scss files

Setup
Make sure Docker is running
make storybook

Code Review Verification Steps

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for Page Header
Jira story for MilMove Header
Abstract page for both components

Screenshots

Warnings

:warning:
This PR does not include changes to unit tests, even though it affects app code.

  Generated by :no_entry_sign: dangerJS against f9a6aec844b8c1136a489a6b54a8b2d51d4d00ba


I can't get the binary to work on Windows 10 correctly

Description
The screens show blank and the console lists errors

Steps to reproduce the issue:

Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?
Technical details:

Portainer version:
Target Docker version (the host/cluster you manage):
Platform (windows/linux):
Command used to start Portainer (docker run -p 9000:9000 portainer/portainer):
Target Swarm version (if applicable):
Browser:

Hi @kevincam3
We will need more information to help you. How did you install Portainer? How do you start Portainer? What are the errors in the console?

 Ok let me try to attached all the screenshots again and answer your questions.
Docker Version: https://goo.gl/qnyJRv
Portainer Dashboard: https://goo.gl/W8GoGA
Containers view: https://goo.gl/aCHGvY
Errors in console: https://goo.gl/pzY8iB
I did not install it. I went to the command line and executed portainer.exe after downloading and extracting the binary yesterday. I started it as previously described you can see the command line screenshot. The errors in the console you can see in the screenshot https://goo.gl/pzY8iB

@kevincam3 did you went through the admin user creation & endpoint initialization steps when first accessing Portainer? Did you already used a Portainer instance locally before?
Can you restart Portainer and try to access it in private session mode (or after clearing your browser cache) ?

The message says "This feature is not yet available for native Docker Windows containers." As previously mentioned I started Portainer by just executing the portainer.exe file not with any flags. I assume by "...access it in private session mode" you mean incognito mode in Chrome which is what I last tried.
Here's the result after executing portainer.exe then opening the browser to http://localhost:9000 and entering my login credentials:
https://goo.gl/jk9FDB

@kevincam3 looks like I cannot display the image.
So, did you use the "Manage a remote Docker instance" option?

I don't know what to put for Endpoint URL since Docker is running on my locahost. I tried "localhost" and "<IP_ADDRESS>" if you could explain how to use "Manage a remote Docker instance" for docker running on the same machine then that would solve my problem.

You'd need to expose the Docker API on the TCP socket first and then try localhost:2375. See https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon for more information about how to do this.
You might want to join us on Slack for some live support: https://portainer.io/slack/

That worked. Thanks a lot. This should get documented somewhere. Exposing daemon on tcp://localhost:2375 without TLS is actually a setting in the docker interface: https://goo.gl/FxfK6U

Nice !
We'll document it to make this clearer.


:construction_worker: Chore: Update docs site to correctly build like rest of repo and update tevm package to fail if it is not up to date code gen

Description
Update build to make docs and top level package more robust.
In future we will want a way of detecting a missng export in tevm package
Testing
Explain the quality checks that have been done on the code changes
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #842   👈

This stack of pull requests is managed by Graphite.


Create LAyout from StoryBoard instead of the programmatic way ?

First of all,  We would like to show our great appreciation in the effort put in this project.
Secondly, I was wondering if I can create my custom layout from the storyboard and conform your class instead of adding the views programmatically.
Thnsk in advance

Unfortunately, I don't know of any way that would be possible.


Port hash retrieval optimization to alloy

Port hash retrieval optimization from from #62 to alloy

Resolves #10


Refactor Hyperopt Tuners (Stage 3) - TPE tuner

Suddenly occured to me that, how does this version of TPE deal with resume?

Suddenly occured to me that, how does this version of TPE deal with resume?

Oops, I thought the base class would replay trials by default. Seems it does not.

Suddenly occured to me that, how does this version of TPE deal with resume?

Added import_data.


Is there a way of reading the Request and Response body more than once?

Question
When reading the Request and Response bodies more than once, it throws IllegalStateException (closed).
The reason is most likely because of MultipartReader.
I've tried using a HttpInterceptor, ApolloInterceptor from apollo3, and Interceptor from okhttp3.
Usually reading request/request.data, or request/request.body, returning a BufferedSource.
If the Sentry SDK reads the Request and Response bodies once, the final App won't be able to and this is a blocker.
The problem is that error monitoring tools such as Sentry.io would be able to leverage GraphQL errors if we are able to read the request and response bodies from the apollo-kotlin lib in order to give more context to those errors.
A bit more context https://github.com/getsentry/sentry/issues/33723
This feature will be opt-in by default due to PII concerns.
Our backend service has data scrubbing capabilities as well.
Is there any workaround to make that work with the Apollo Kotlin library? Thanks a bunch.

Hi!
You can use BufferedSource.peek() to read it without consuming the bytes. For instance, here's an OkHttp interceptor:
class MyInterceptor : Interceptor {
    override fun intercept(chain: Interceptor.Chain): Response {
        val response = chain.proceed(chain.request())
        val responseStr = response.body?.source()?.peek()?.readUtf8()
        println("Intercepted response: $responseStr")
        return response
    }
}

To use it with Apollo Kotlin:
val apolloClient = ApolloClient.Builder()
    .serverUrl("https://...")
    .okHttpClient(
        OkHttpClient.Builder()
            .addInterceptor(MyInterceptor())
            .build()
    )
    .build()

Let us know if that works for you!

As an additional note, peek() works but it's also suboptimal. The Apollo runtime is trying quite hard to stream the HTTP responses to reduce latency when possible. Using peek() is risking buffering the whole response which can have some impact on large responses.
@marandaneto Is there anything else you need besides the operation document and the errors? If you only need that, you can use Interceptor and do logging at the GraphQL layer:
  val interceptor = object: ApolloInterceptor {
    override fun <D : Operation.Data> intercept(request: ApolloRequest<D>, chain: ApolloInterceptorChain): Flow<ApolloResponse<D>> {
      return chain.proceed(request).onEach {response ->
        println("GraphQL document: ${request.operation.document()}")
        println("Errors: ${response.errors}")
      }
    }
  }

The problem with ApolloInterceptor is that it throws ApolloHttpException so in your example, the onEach never gets executed unless I missed something.

You can catch that:
  val interceptor = object : ApolloInterceptor {
    override fun <D : Operation.Data> intercept(request: ApolloRequest<D>, chain: ApolloInterceptorChain): Flow<ApolloResponse<D>> {
      return chain.proceed(request)
          .catch {
            println("Oh no, network error: $it")
            throw it
          }.onEach { response ->
            println("GraphQL document: ${request.operation.document()}")
            println("Errors: ${response.errors}")
          }
    }
  }

Thanks @martinbonnin and @BoD , let me try this out.

Alright, looks like this would do:
val apolloClient = ApolloClient.Builder()
    .serverUrl("https://apollo-fullstack-tutorial.herokuapp.com/graphql")
    .webSocketServerUrl("wss://apollo-fullstack-tutorial.herokuapp.com/graphql")
    .okHttpClient(
        OkHttpClient.Builder()
            .addInterceptor(AuthorizationInterceptor())
            .build()
    )
    .webSocketReopenWhen { throwable, attempt ->
        Log.d("Apollo", "WebSocket got disconnected, reopening after a delay", throwable)
        delay(attempt * 1000)
        true
    }
    .httpExposeErrorBody(true)
     // add sentry interceptors
    .sentryTracing()
    .build()

class TestApolloInterceptor : ApolloInterceptor {
    override fun <D : Operation.Data> intercept(
        request: ApolloRequest<D>,
        chain: ApolloInterceptorChain
    ): Flow<ApolloResponse<D>> {
        return chain.proceed(request)
            .catch {
                val body = (it as? ApolloHttpException)?.body
                // I have to use the peek to read but not to consume the bytes
                println("Body: ${body?.peek()?.readUtf8()}")
                throw it
            }
            .onEach { response ->
                println("GraphQL document: ${request.operation.document()}")
                println("Errors: ${response.errors}")
            }
    }
}

@BoD @martinbonnin a last question, would be possible to access the raw body of the request and response as well? similarly to (it as? ApolloHttpException)?.body but when it does not throw ApolloHttpException.
I will close the issue for now since I can also parse the request.operation.document() and errors on my own anyway, but the raw access would be desirable as well.
Thanks for the great work & support.

the raw access would be desirable as well.

 If you need access to the raw request/response bytes, then HttpInterceptor might be a better fit. All in all:

use ApolloInterceptor if your code needs the GraphQL operation string and GraphQL errors or if you need to log cache hits/misses.
use HttpInterceptor if your code needs access to the raw network bytes and doesn't need to log cache misses

if you need to buffer all the response/request then use .peek() as @BoD suggestion above with the caveat that this allocates all the response in RAM.
if you can "stream" the response, wrap response.body into another BufferedSource where you consume the bytes as they come in.


Add a note about performance in the README.md

This is a trivial commit; I'm just using it to test to verify the CLA assistant is properly set up on this repository.

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


Feature/yamlsupport

Short Description
Enable general usage of yaml tosca applications
Proposed Changes

[x] Enable importing YAML csars via given winery importers
[ ] Enable PlanBuilder to work with YAML csars
[ ] Probably refactor code that is hard-wired to the XML spec of TOSCA
[ ] Write Test Case for a YAML CSAR from https://github.com/radon-h2020/radon-particles (Propably DeploymentTestAgent template)

DeploymentTestAgent.csar.zip
Here is a small example, maybe not deployable, test csar for this PR.
Don't forget to rename it from *.csar.zip to *.csar as github doesn't allow .csar endings to be uploaded

They whole PR is heavily depending on the following PR: https://github.com/eclipse/winery/pull/665

Is the PR in eclipse ready to be merged?


Add 1.20.2 Parchment version badge

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


add Java Microbenchmark Harness to our project

Feature Request
For English only, other languages will not accept.
Please pay attention on issues you submitted, because we maybe need more details.
If no response more than 7 days and we cannot make decision by current information, we will close it.
Please answer these questions before submitting your issue. Thanks!
Is your feature request related to a problem?
Describe the feature you would like.
add Java Microbenchmark Harness to our project，In the future, our code commit optimization will be more convincing.

Yes, it is a good idea, any suggestion to do it?

Yes, it is a good idea, any suggestion to do it?
#2747
Create a model separately here, or we can create the ShardingSphere-benchmark directory under the Apache community. I prefer the former, so it is more clearly visible to all committers, and does not need to re-clone project submission project. For example, netty is doing this.

@CalvinKirs Just as @nancyzrh said, this PR only add a maven dependency for jmh, but does not add any test cases yet, so I think you need add test cases for that.
As my understanding, jmh only can print benchmark info to console which is not very make sense, we have already use jmeter to test benchmark.
The precondition for introduce jmh to ShardingSphere is we need to auto assert if benchmark is under threshold.

It is duplicated with #2747, I just close this issue


Github action for pushing container to dockerhub

Add an action to automatically update the dockerhub container when changes are applyed to the main repository

I've just added the required secrets:

DOCKERHUB_USERNAME
DOCKERHUB_TOKEN


Run docker containers

This PR adds support for running docker containers by adding a
DockerOperator.
Besides starting a container, the implementation supports pulling
images, limiting resources, mounting volumes, setting the network
mode and authenticating via TLS.

/cc @moertel

@bolkedebruin Good idea, I've added the parameter tmp_dir.

I made a pull request to execute docker container on ECS AWS:
https://github.com/airbnb/airflow/pull/652

@mistercrunch Seeing #756, I can easily add tests for this. It can be done using mock to mock docker.Client or testing against a running instance of the Docker daemon. What is the preferred way for airflow?

@wndhydrnt @mistercrunch to chime in on your question: travis does not allow docker-in-docker at the moment so my suggestion would be to use mock. Using travis' VMs (by using sudo: required) would significantly slow down the testing speed for a non core feature.

@mistercrunch @bolkedebruin I've added tests using mock. Hope that's fine. PTAL

:+1:

@mistercrunch can this be added? seems like a nice addition?

How to transfer data between containers? In order to simplify things, let’s say that we have 2 containers (c1 & c2) operating one after another, while c2 uses c1’s output.
What do you think should be the best practice at this case?
The solution might be different if c2 is communicating via rest API and/ or it’s a sealed app.
Couple of possible solutions might be:
•	Using volumes (for example tmp_dir parameter).
•	A new operator based one this one, which will left up the container and execute another basic_operator.

How to transfer data between containers? In order to simplify things, let’s say that we have 2 containers (c1 & c2) operating one after another, while c2 uses c1’s output.
What do you think should be the best practice at this case?
The solution might be different if c2 is communicating via rest API and/ or it’s a sealed app.
Couple of possible solutions might be:
•	Using volumes (for example tmp_dir parameter).
•	A new operator based one this one, which will run the container and execute another command let’s say basic operator.

@asnir I would go for some kind of storage outside of the Docker container, like HDFS or S3.

This was superseded by #882


REP-I0001 - Multi-Arm Support/Industrial Robot Client 2

This issue will be used to capture discussion on REP-I0001.

Closing as this is not going to happen.
The discussion is captured in the comments, and those will stay around for future readers to refer to.


VectorPolygonsToRaster issue - WhiteboxTools v1.0.0

The WhiteboxTools "VectorPolygonsToRaster" still returns an output .tis with gaps.
The * Release Notes: * specify:

Fixed a bug in the VectorPolygonsToRaster tool that sometimes mishandled polygon holes.

Does not to be fixed. See attached sample

@mlavy It would be helpful if you could forward your data set to me so that I can test the tool and find the error. The data sets that I have used to develop the tool all perform without error.

@mlavy It would be helpful if you could forward your data set to me so that I can test the tool and find the error. The data sets that I have used to develop the tool all perform without error.

I would send you the data by email using<EMAIL_ADDRESS>Thank you

See recent update to tool.


Download straight to S3

How can I download straight to s3?
I'm currently doing something like
kaggle datasets download -d 'stefanoleone992/fifa-21-complete-player-dataset' | aws s3 cp - s3://s3_bucket/data.zip
but the data.zip file that appears in my bucket is a broken file
whereas if i specify the name of the zip file that I'm trying to cp as seen below, it'll first download to my local machine and then copy it to S3 which i'm hoping to avoid the initial download to my local machine.
kaggle datasets download -d 'stefanoleone992/fifa-21-complete-player-dataset' | aws s3 cp fifa-21-complete-player-dataset.zip s3://s3_bucket/data.zip
Thanks!

I'm guessing there is no way to do that, because if it's not downloading first to your machine, then Kaggle's servers need to handle the upload, which they don't.

You can do that by using boto3/AWS cli and setting the correct auths! So what we can do is use Colab for this. First let the download of that file complete and then one can shift it to AWS. If your dataset is small enough, you cn do this on Kaggle kernels as well.

If you are willing/brave enough to edit some Python source code in the Kaggle API then you can do the following:

Install the Kaggle Command Line Interface (CLI). Do this as your regular user (not as root)
$ pip3 install kaggle
Add your Access Token to the .kaggle/kaggle.json file.

Edit the kaggle_api_extended.py and make two changes (shown below) to accommodate writing the file to standard output.
nano ~/.local/lib/python3.7/site-packages/kaggle/api/kaggle_api_extended.py

Use the "Go To" key in Nano:  ^_ to go to line 1582 in the file.
Change line 1582 from:
if not os.path.exists(outpath):
to
if not os.path.exists(outpath) and outpath != "-":
Change line 1594 From:
with open(outfile, 'wb') as out:
to
with open(outfile, 'wb') if outpath != "-" else os.fdopen(sys.stdout.fileno(), 'wb', closefd=False) as out:
Save the file and exit the text editor

Pick a Kaggle data set you will be working with (For example I chose: totoro29/air-pollution-level
You will need the author and data set name.

Use the kaggle datasets download command to fetch the data set and send the file to standard output
Pipe this output to the aws s3 cp command and direct it to your S3 bucket. You also need to give it a file name.
For example:
kaggle datasets download --quiet -d totoro29/air-pollution-level -p -  | aws s3 cp - s3://project-data-rh/polution.zip

Check your S3 bucket to see if the file was downloaded
aws s3 ls  s3://project-data-rh

Hey given we do the above following steps

If you are willing/brave enough to edit some Python source code in the Kaggle API then you can do the following:

Install the Kaggle Command Line Interface (CLI). Do this as your regular user (not as root)
$ pip3 install kaggle
Add your Access Token to the .kaggle/kaggle.json file.
Edit the kaggle_api_extended.py and make two changes (shown below) to accommodate writing the file to standard output.
nano ~/.local/lib/python3.7/site-packages/kaggle/api/kaggle_api_extended.py

Use the "Go To" key in Nano: ^_ to go to line 1582 in the file. Change line 1582 from: if not os.path.exists(outpath): to if not os.path.exists(outpath) and outpath != "-":
Change line 1594 From: with open(outfile, 'wb') as out: to with open(outfile, 'wb') if outpath != "-" else os.fdopen(sys.stdout.fileno(), 'wb', closefd=False) as out:
Save the file and exit the text editor

Pick a Kaggle data set you will be working with (For example I chose: totoro29/air-pollution-level
You will need the author and data set name.
Use the kaggle datasets download command to fetch the data set and send the file to standard output
Pipe this output to the aws s3 cp command and direct it to your S3 bucket. You also need to give it a file name.
For example:
kaggle datasets download --quiet -d totoro29/air-pollution-level -p -  | aws s3 cp - s3://project-data-rh/polution.zip
Check your S3 bucket to see if the file was downloaded
aws s3 ls  s3://project-data-rh

So given we do the above following steps, how do we unzip the files within an S3 bucket? I'm assuming we can't really use a zip file at all without unzipping it

So given we do the above following steps, how do we unzip the files within an S3 bucket? I'm assuming we can't really use a zip file at all without unzipping it

I've been using the zipfile module in Python combined with Boto3 to access the zip file and pick out the parts I need.
https://docs.python.org/3/library/zipfile.html
Also I think the kaggle datasets download command has an option to unzip the contents during the download. I did not test that yet.  it might get complicated if the ZIP archive contains more than one file.  Then the issue would be which file to send to standard output for the aws s3 cp command to pick up.

I've been using the zipfile module in Python combined with Boto3 to access the zip file and pick out the parts I need. https://docs.python.org/3/library/zipfile.html

Adapted from
https://bongtechblogger.hashnode.dev/how-to-extract-and-manipulate-all-the-zip-files-stored-in-a-folder-of-an-amazon-s3-bucket-part-1-the-extraction
import zipfile
import boto3
from io import BytesIO
bucket="project-data-XX"   # Put your bucket name here
zipfile_to_unzip="archive.zip"   # Put the name of your ZIp file here
s3_client = boto3.client('s3', use_ssl=False)
s3_resource = boto3.resource('s3')
zip_obj = s3_resource.Object(bucket_name=bucket, key=zipfile_to_unzip)
buffer = BytesIO(zip_obj.get()["Body"].read())
z = zipfile.ZipFile(buffer)
Loop through all of the files contained in the Zip archive
for filename in z.namelist():
print('Working on ' + filename)
# Unzip the file and write it back to S3 in the same bucket
s3_resource.meta.client.upload_fileobj(z.open(filename),Bucket=bucket,Key=prefix + f'{filename}')

We recommend you to build your own pipeline to achieve this goal.


Change hashing in Indxfiles to sha256

Additionally, when files are too large, hash a smaller sample of the bytes contained.


⚠ Fetchers has degraded performance

In 8e4b17c, Fetchers ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 689 ms

Resolved: Fetchers performance has improved in 74d86bd.

Resolved: Fetchers performance has improved in 74d86bd.


Support zaps without account

Closes #266

Current state (444ebf7):
https://github.com/stackernews/stacker.news/assets/27162016/d410bcb2-f384-46bd-b144-7888768961fe
TODO:

[ ] Fix missing apollo cache update after an invoice was paid
[ ] test zapping when logged in still works as before

An alternative to rewriting a lot of the code/data models to be user-less is creating an @anon user (or similar) and all anon users perform all their actions through that user.
The minimal code rewrite flow for anon zapping might be: pay invoice to @anon's account, have @anon zap the item the amount of the invoice. (Doing this atomically might be tricky though.)
Implementing anon posting/commenting will likely be a lot easier if user-less actions are done this way afaict

An alternative to rewriting a lot of the code/data models to be user-less is creating an @anon user (or similar) and all anon users perform all their actions through that

Done :+1:

Doing this atomically might be tricky though.

I did this by adding a column itemId to the invoice table and updating the confirm_invoice function. If an invoice has an itemId set, confirm_invoice will now trigger a zap by calling item_act with that item id and the invoice user id.
I also had to update the serialize function though since I wasn't able to create an invoice and set the item id in one query. I noticed that CTEs all run with the same snapshot, so the following didn't work:
WITH created_invoice AS (
  SELECT id FROM create_invoice(...)
)
UPDATE "Invoice"
SET "itemId" = $1
FROM created_invoice
WHERE "Invoice".id = created_invoice.id

The sub-statements in WITH are executed concurrently with each other and with the main query. Therefore, when using data-modifying statements in WITH, the order in which the specified updates actually happen is unpredictable. All the statements are executed with the same snapshot (see Chapter 13), so they cannot “see” one another's effects on the target tables.

-- https://www.postgresql.org/docs/current/queries-with.html
New state with proxy anon user instead of deep invoice integration (87ec14a):
https://github.com/stackernews/stacker.news/assets/27162016/7f231aad-23d0-4c29-be05-38057d8a57fd

It looks pretty good on first glance. We have quite a few options for making it generic that we might want to consider before merging (so that we can support a wide variety of anonymous actions).
Options for storing on backend and waiting for payment

polymophic has-one relationship in "Invoice"

create anon versions of all tables that anons might act on by inheriting from the non-anon table

e.g. "Item" -> "PeningItem", "ItemAct" -> "PendingItemAct"

then add "Invoice"."pendingActionId" and "Invoice"."pendingActionType"
when the invoice is confirmed insert into non-anon tables, e.g. insert into "Item" select * from "PendingItem" where "Item".id = "Invoice"."pendingActionId"

Store the "actions" as JSON in the "Invoice"

we'd then create the actions when the invoice is confirmed

Add a "invoiceHash" field to "Item" and "ItemAct" and don't display the "Item" or "ItemAct" until confirmed

Options for only sending to backend when payment confirmed
There's only really one way to do this (which might indicate it's the right way):

poll backend for payment confirmation
when confirmed, send mutation with the invoice hash
backend confirms invoice hash is paid, indicates somehow that the invoice hash has been spent, and stores the mutation

Another "dimension" of generic that we might want to consider is allowing logged in users to keep a zero/low balance and pay/zap only when they perform actions.
Most of the generic options above are consistent with that though I think.

Options for only sending to backend when payment confirmed
There's only really one way to do this (which might indicate it's the right way):

poll backend for payment confirmation
when confirmed, send mutation with the invoice hash
backend confirms invoice hash is paid, indicates somehow that the invoice hash has been spent, and stores the mutation

IMO the server-side versions seem very complicated if we're going to allow anons to really use SN. The client-side version isn't atomic but we can make cache the invoice hashes so that they can be retried on the rare failure cases

That does indeed sound good. I'll update code to work like this

The only gotcha I can see with this approach is post/comment fee escalation race conditions, e.g.
I pay when there isn't another recent anon post, but before I submit my mutation another anon submits theirs, and then my mutation fails because I paid 1 * 10^0 sats.
But as we discussed elsewhere, perhaps we just make anon posts/comments 1000 sats or something and disable fee escalation.

a9ffee3 now uses attached invoice ids as a proof of payment when sending a mutation.
To prevent double spends, the invoice is deleted inside the same transaction.

Added comment and posting as anons (links, discussions and polls) now and disabled fee escalation for the anon user.
I have set anon comment fees to 100 and post fees to 1000.
TODO:

[ ] stop polling invoice after confirmation since it will be deleted shortly after
[ ] "allow stackers to zap arbitrary amounts even if their wallet doesn't have enough sats ... by presenting an invoice for them to pay in a modal." (from #266)

I realized that double spends are still possible since you can use existing payment hashes (which were used for depositing) to pay for stuff since the backend only checks if there was a paid invoice with that payment hash to allow actions.
So we need to use a different method than deletion to check if an invoice was already spent

note: I haven't looked at the code
If a user is logged in, we could prevent them from using payment hashes. Instead, their paid invoice always goes to their balance, and they always spend from their balance.

I thought I am done now but I think there is one thing missing:
@huumn, iirc, I think we discussed that the anon user should never gain any trust from a) trusted people zapping it or b) it zapping posts other people also like (is that a good summary how trust is gained? i'm still a noob regarding this) since I think the anon user should not be able to affect ranking, right?

You'd just skip adding them to values in worker/trust.js:160

Added some error handling. On first error, the user can retry the mutation. If there is still an error, contacts are shown so they can ask for support or refund:
first error:

second error:

In general this looks good. It's really excellent how much functionality was added with so few backend changes.
A few off-the-bat high-level things:

files that are mostly components should not reside in lib, e.g. lib/anonymous ... to date, lib is mostly for code needed by both the server/client but doesn't use react
anything named anonymous that is used beyond anonymous actions, should be renamed
because the invoice hash and preimage (sigh) are public, we probably shouldn't use them as a token for payments

while it's unlikely this public information is leveraged in a meaningful way, we can avoid it by creating a secret token for every invoice and having the client use that token for payment instead of the hash

I'll continue testing/reviewing in the meantime.

Instead of adding a token to every "Invoice" we could solve this statelessly with using some kind of cryptography on the invoice hash. We could sign it and somehow encode the signature into the token or encrypt it.
I think this is the way to go as it would make this change a lot easier.

Instead of adding a token to every "Invoice" we could solve this statelessly by using some kind of cryptography on the invoice hash. We could sign it and somehow encode the signature into the token or do some kind of authenticated encryption.
I think this is the way to go as it would make this change a lot easier.

I used a HMAC now. This meets following requirements:

Requirement
Solution

Only the user who paid the invoice can use the payment hash to pay for actions on SN
Paying via payment hash also requires knowledge of the HMAC and HMAC is only sent once during invoice creation to the browser using HTTPS (out of band like payment hashes)

We don't need to keep any state to verify hashes
Create HMACs with a single secret key. No state required

HMAC can't be reused
HMACs are never reused because hashes are never reused in LN

This is not really authenticated encryption (since there is no encryption involved) but I think this meets our requirements.

This is really cool overall. I just push some changes to make the feature more obvious. A few things we'll need to fix before deploying:

anon zappers can't zap anon poster/commenters which is unexpected
I should be allowed to retry on failure as many times as I want (while also being given the option to contact)
I'm not sure if this is addressed, but there are rate limits around invoice creation that will probably need to be relaxed if we are multiplexing many people onto a single account ... they should probably have different rules all together (default invoice expiration is 3hrs for instance which doesn't make sense here)
we should provide a back button so someone can change their mind after viewing the invoice

This is what I've found so far. I'll continue trying to get full coverage and committing things as I go. If you end up working on any of this lmk


Fade ALL Button function missing.

The Fade ALL Button function it's missing. It is one of the most important function when running strings for awards shows.

Hey, this works with OSC:
SCS:
cue control network in SCS is a network server
Companion
Generic OSC
IP and port like SCS
send message without arguments, path /ctrl/fadeall
hope this helps!

Fadeall ist a function that does not exist on the SCS-surface. If you want to fade out all playing Cues you have to create a SFR (Stop/Fade/Release)-Cue. Then you can run this cue via OSC-Command to fade out all cues.


Allow changing the country code of phone number on login page

Any plan to support multi country code?

@imp2002


gadgets/trace_tcpretrans: Missing tests

The trace_tcpretrans gadget doesn't have any test implemented. There is not a built-in version of this gadget, hence these tests need to be implemented from scratch.

I'll like to work on this one.


environment configuration issues

I do follow the readme.md to set up the requirements, but I found that you mention pytorch1.12+cuda11.3 is necessary, while the poetry install command install all the dependencies through the pyproject.toml, where I found the torch version is 1.10.2, therefore leads to some problems about PyG version.
So i would like to confirm the exact version, thanks a lot!

Hi, thank you for visiting our repo.
Pytorch 1.12 in README must be a typo, thank you for pointing it out.

fixed.


rclone mount - backends without support for DirMove and Move do not fall back to copy or upload / download

My initial request was to support this feature, but it appears that rclone "should" already support this feature (falling back when a Move or DirMove is requested).
Unfortunately, this does not work as documented.
See below for details.

I noticed on the website, this is the stated method of execution, but it does not actually work on google cloud storage.
rclone v1.43

os/arch: darwin/amd64
go version: go1.11

root@www-0:/shared/sites/digitalspaces.app# mkdir test
root@www-0:/shared/sites/digitalspaces.app# mv test test2
mv: cannot move 'test' to 'test2': Input/output error

2018/09/05 22:54:27 DEBUG : /: Attr:
2018/09/05 22:54:27 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2018/09/05 22:54:30 DEBUG : /: Lookup: name="test"
2018/09/05 22:54:30 DEBUG : : Re-reading directory (1m12.131528408s old)
2018/09/05 22:54:31 DEBUG : /: >Lookup: node=<nil>, err=no such file or directory
2018/09/05 22:54:31 DEBUG : /: Mkdir: name="test"
2018/09/05 22:54:31 DEBUG : /: >Mkdir: node=test/, err=<nil>
2018/09/05 22:54:31 DEBUG : test/: Attr:
2018/09/05 22:54:31 DEBUG : test/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2018/09/05 22:54:34 DEBUG : /: Lookup: name="test2"
2018/09/05 22:54:34 DEBUG : /: >Lookup: node=<nil>, err=no such file or directory
2018/09/05 22:54:34 DEBUG : test/: Attr:
2018/09/05 22:54:34 DEBUG : test/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2018/09/05 22:54:34 DEBUG : /: Lookup: name="test2"
2018/09/05 22:54:34 DEBUG : /: >Lookup: node=<nil>, err=no such file or directory
2018/09/05 22:54:34 DEBUG : /: Lookup: name="test2"
2018/09/05 22:54:34 DEBUG : /: >Lookup: node=<nil>, err=no such file or directory
2018/09/05 22:54:34 DEBUG : /: Rename: oldName="test", newName="test2", newDir=/
2018/09/05 22:54:34 ERROR : test: Dir.Rename error: Fs "Storage bucket digital-spaces-www-local" can't rename directories (no DirMove)
2018/09/05 22:54:34 DEBUG : /: >Rename: err=Fs "Storage bucket digital-spaces-www-local" can't rename directories (no DirMove)

Also tried without any cache options -- same result (failure).

I think I am getting a similar error (with a dropbox mount).  I am moving one file on another that already exists.
$ mv nonce.tmp nonce.tmp2
2018/09/07 22:10:25 ERROR : nonce.tmp: File.Rename error: move failed: to/conflict/file/... 2018/09/07 22:10:25 ERROR : nonce.tmp: Dir.Rename error: move failed: to/conflict/file/... mv: cannot move 'nonce.tmp' to 'nonce.tmp2': Input/output error

My mount options are uid=1000,gid=1000,allow-other,default-permissions,max-read-ahead=16M,_netdev (using the rclonefs script from the wiki).

I think this issue is a duplicate of #1965 which is scheduled to be done soon.
@brechmos I think renaming should work on dropbox - do you get that problem every time?

Sorry, yeah, I updated my comment above noting the #1965 connection but it was after I first posted :/
I just tried with dropbox and I am getting an error.
This is the mounting:
$ ~/bin/rclone mount -v --debug-fuse  Dropbox: /tmp/db
2018/09/11 07:44:27 INFO  : Dropbox root '': poll-interval is not supported by this remote
2018/09/11 07:44:37 ERROR : Test/a: File.Rename error: move failed: to/conflict/file/..
2018/09/11 07:44:37 ERROR : Test/a: Dir.Rename error: move failed: to/conflict/file/..

The error above came when I did:
$ cd /tmp/db
$ touch a b  # Make two empty files.
$ mv a b
mv: cannot move 'a' to 'b': Input/output error

I am quite new at rclone, so there might be some helpful other flags but with the reasonably bare mount command I am seeing an error.
Oh... so, interesting. I just did the same thing with Mega and it worked:
$ ~/bin/rclone mount -v --debug-fuse  Mega: /tmp/db
2018/09/11 07:48:42 INFO  : mega root '': poll-interval is not supported by this remote
2018/09/11 07:48:56 INFO  : test/a: Copied (new)
2018/09/11 07:48:57 INFO  : test/b: Copied (new)

It also works with pCloud:
$ ~/bin/rclone mount -v --debug-fuse pCloud: /tmp/db
2018/09/11 07:50:05 INFO  : pcloud root '': poll-interval is not supported by this remote
2018/09/11 07:50:23 INFO  : test/a: Copied (new)
2018/09/11 07:50:23 INFO  : test/b: Copied (new)

It also worked with Google Drive.
Tried Box and it did not work.
Huh, so it seems to be only Box and Dropbox (of the ones I tested) that are giving me issues.
All of the above is based on:
rclone v1.43
- os/arch: linux/arm
- go version: go1.11

If you want me to test a PR, I am happy to do it.

I tried a few more times in different incantations and it seems to be pretty consistent (for me).

@brechmos great testing.
Can you put your findings  in a new issue please - I think your problem is unrelated to this issue.
It seems to be that backends are inconsistent about whether they allow a file to be copied over or not.

@ncw your right does look like a dupe. The difference is this is Google Cloud Storage. Not sure how your tracking things. (Per feature, per backend, etc.) Feel free to close.
Looking forward to this being done. Will make using mount much more like a real fs for those backends that don't support move.

Per @ncw I created a ticket for my findings https://github.com/ncw/rclone/issues/2569

I think this issue is now fixed with Move falling back to Copy if not availabe.
DirMove does not fall back to Move or Copy yet though.  I'm uncertain as to whether that is a good idea or not as it might involve renaming 1000s of files for one directory rename.

To make mount operate more like a real dir wouldn't we need to make sure
dirmove failed back? At least make it a flag like vfs so you can force a
more filesystem type experience?
On Sat, Sep 29, 2018, 7:11 AM Nick Craig-Wood<EMAIL_ADDRESS>wrote:

I think this issue is now fixed with Move falling back to Copy if not
availabe.
DirMove does not fall back to Move or Copy yet though. I'm uncertain as
to whether that is a good idea or not as it might involve renaming 1000s of
files for one directory rename.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ncw/rclone/issues/2539#issuecomment-425648127, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABfZI6Gy6wpbRnJJp-uxi_5Xmn-i1DHCks5uf3-AgaJpZM4Wb0hd
.

@tcf909 wrote:

To make mount operate more like a real dir wouldn't we need to make sure dirmove failed back? At least make it a flag like vfs so you can force a more filesystem type experience?

I guess it is a matter of tradeoffs...
To rename a directory rclone will

Call DirMove if it is implemented (see overview table for which backends do implement it)

works for 12/21 of backends

Call Move on each file if available

works for another 0/21 backends (all the backends which implement Move implement DirMove)

Call Copy then Delete on each file if available

works for another 6/21 backends

Download then upload each file

works for the remaining 2/21 backends (b2 & yandex)

At the moment rclone mount will stop at step 1) above.  I think it could go down to step 3) possibly, but step 4) I think is too much, at least without a flag.
To put those into perspective let's say we have a directory with 1000 files and 100GB of data in. This is what rclone does for each of those steps

Do one API call
Do 1000 API calls
Do 2000 API calls
Do 3000 API calls, download 100GB and upload 100GB of data

What do you think rclone should do?

I agree with your analysis. The final step is too much without a flag.
If you were able to cover the first three, and cover 22 of the 24 backends
that would be great.
On Sun, Sep 30, 2018, 1:36 AM Nick Craig-Wood<EMAIL_ADDRESS>wrote:

@tcf909 https://github.com/tcf909 wrote:
To make mount operate more like a real dir wouldn't we need to make sure
dirmove failed back? At least make it a flag like vfs so you can force a
more filesystem type experience?
I guess it is a matter of tradeoffs...
To rename a directory rclone will

Call DirMove if it is implemented (see overview table
https://rclone.org/overview/#optional-features for which backends do
implement it)

works for 12/21 of backends

Call Move on each file if available

works for another 0/21 backends (all the backends which implement
Move implement DirMove)

Call Copy then Delete on each file if available

works for another 6/21 backends

Download then upload each file

works for the remaining 2/21 backends (b2 & yandex)

At the moment rclone mount will stop at step 1) above. I think it could go
down to step 3) possibly, but step 4) I think is too much, at least without
a flag.
To put those into perspective let's say we have a directory with 1000
files and 100GB of data in. This is what rclone does for each of those steps

Do one API call
Do 1000 API calls
Do 2000 API calls
Do 3000 API calls, download 100GB and upload 100GB of data

What do you think rclone should do?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ncw/rclone/issues/2539#issuecomment-425704600, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABfZI23xCWaerYtR94FlOMcS5xkunBgcks5ugIJ-gaJpZM4Wb0hd
.

Hmm, this is harder than it looks!  The obvious thing to do is re-use the internal syncing routines, however they don't take a directory path so they need to be re-worked first which is a much bigger job!

There are applications which primarily save data but have certain config files with a move-operation on them. Those files are small and only a few - but the software fails without being able to mv them.
I tried running those on b2 and it fails. It would be awesome if rclone had a workaround for this, even knowing that it can be very expensive sometimes.


[Feature Request] Reset parameter noise at environment reset.

Motivation
Unlike gSDE structured exploration, there is no way for layers with parametric noise NoisyLayer to  resample the noise at environment reset. It can only be done after each optimization step, which is not following what is mentioned in the article and introduces bias in training batches.
Solution
For gSDE, there is a special transform specifically for this need gDSENoise, which is made possible because gSDEModel adds its parameters in the rollout TensorDict directly, which is not the case for NoisyLayer. It introduce issues when dealing with multiple workers in parallel since they all rely on the same policy. So I guess the only generic way to handle this situation is to add the action noise as part of the rollout TensorDict, much like what is done for gSDE.
Alternative
Add a hooking mechanism to run generic callbacks at reset of a BaseEnv.
Checklist

[x] I have checked that there is no similar issue in the repo (required)

Thanks for flagging this.
You're right gSDE should have a good review.
I'll take care of this asap.


Del

I'm guessing based on the history of this issue that you solved your permissions issue? I'm glad!
Is it something that may help other people?


kellyscleankitchen.com Failing

Am struggling to troubleshoot your great plugin
This site used to work, and no longer grabs any content, grabs correct template but just places an ID as the note name  "1711239156996"
https://kellyscleankitchen.com/2024/03/17/instant-pot-shredded-chicken/
I turned on debug mode but it only says "a validated scheme not found on this page"
I am noticing that many recipe sites no longer work. Am not sure if this is something that can be looked at or if it's just too complex due to so many formats used out there.

Thanks for letting me know @emaginsf .
I have seen more that aren't working lately too. However, nothing has really changed in the parsing code. So its hard to pin down an actual issue here.  The link you shared has a valid schema, but its not an actual Recipe type schema. Which is what this plugin parses.
You can take a look here: https://validator.schema.org/#url=https%3A%2F%2Fkellyscleankitchen.com%2F2024%2F03%2F17%2Finstant-pot-shredded-chicken%2F
This schema is of type WebPage. So its not really optimized for recipe reading.
I'm going to close this for now as there isn't really an actionable item i can fix, but if you see a recipe that shows a valid schema of type Recipe, that doesn't load, will you please, open a new issue? Thanks!


Support tvOS

Supercedes https://github.com/kishikawakatsumi/UICKeyChainStore/pull/117

:+1: thanks


Using python 3.7.0 raises warning "This version is unsupported"

Currently we are supporting:
2.7.15
3.6.6 (default)
3.7.0
The buildpack does not currently have the ability to support 2 separate minor versions (3.6.6 and 3.7.0 in this case) without outputting a "(you are using python-x.x.x, which is unsupported)" message.
This is because we only have a single variable for $LATEST_3 - https://github.com/heroku/heroku-buildpack-python/blob/a0275888a26b8f0132c7bb9fe3bf194b5c4fab1f/bin/steps/python#L18

I still have the same issue.
With python-3.6.6
Staging...
-----> Installing python-3.6.6
 !     Requested runtime (python-3.6.6) is not available for this stack (cedar-14).
 !     Aborting.  More info: https://devcenter.heroku.com/articles/python-support
Failed to compile droplet: Failed to compile droplet: exit status 1

With python-3.7.0
Staging...
Downloaded build artifacts cache (602.1M)
 !     The latest version of Python 3 is python-3.6.6 (you are using python-3.7.0, which is unsupported).
 !     We recommend upgrading by specifying the latest version (python-3.6.6).
       Learn More: https://devcenter.heroku.com/articles/python-runtimes
-----> Installing python-3.7.0
 !     Requested runtime (python-3.7.0) is not available for this stack (cedar-14).
 !     Aborting.

Requested runtime (Python 3.7.0) is not available for this stack (heroku-18)
Got the problem too!

I got the same issue with Python 3.6.6 on heroku-18.
remote: -----> Python app detected
remote: -----> Installing Python 3.6.6
remote:  !     Requested runtime (Python 3.6.6) is not available for this stack (heroku-18).
remote:  !     Aborting.  More info: https://devcenter.heroku.com/articles/python-support
remote:  !     Push rejected, failed to compile Python app.
What version of python we should use actually?

same issue with Python 3.7.0
remote: -----> Python app detected remote:  !     Requested runtime (python 3.7.0) is not available for this stack (heroku-18). remote:  !     Aborting.  More info: https://devcenter.heroku.com/articles/python-support remote:  !     Push rejected, failed to compile Python app. remote: remote:  !     Push failed remote: Verifying deploy... remote: remote: !       Push rejected to glacial-cove-95818. remote: To https://git.heroku.com/glacial-cove-95818.git  ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/glacial-cove-95818.git'


Write any DSA problem on a html page

Star the repo
Ask for assign for faster merge

Assign it to me

Should the page be styled as well?

Hey @shubham7668 assign this to me

done

I am done with this
Already made a PR


patch about issue #836 addChildren is quadratic

patch about  issue #836 addChildren is quadratic
when add many children, the origin implementation will move childNodes array per loop.(method add(index, obj)),
a performance improvement was made using addAll(index, objs).there are three steps:

reparent all the children
use addAll(index, objs) to insert children
reset sibling index
it is very similar with method addChildren(Node... children).

Thanks, merged!


enemy spawn issues

[x] spawn to close to each other
-especially worms which can not move might spawn inside each other because the check whether there is something is only at a point and not an area.

[x] spawn in wall

probably the same reason as above


Add unit & integration tests

Can I help in some way? @Omranic @ionut-tanasa

@ebisbe Yes, yes, yes please 🙏  That would greatly help us release next version faster, we need to cover all functions with test suites, update missing parts in the docs and release it 😄  Appreciated in advance 👍

@Omranic ok, but thats a vague description of all the work. Where do I start?

Honestly I still didn't scan for what's already implemented and what's missing, so if you can find your way inside the tests directory that would be easier and faster than waiting me analyze our current state 😅  @evsign & @ionut-tanasa who already worked thanksfuly on this before


Replace top-level logger with per-class loggers

At the moment, all logging in sheet2linkml is carried out by running e.g.:
logging.info(f"Google Sheet loaded: {model}")

The recommended way of using loggers is to create a context specific or per-class logger object and use that, i.e.
logger = logging.getLogger(__name__)
click_log.basic_config(logger)

# code for module

logger.info(f"Google Sheet loaded: {model}")

(Note the use of click-log to allow users to configure the logging from the command line, so we no longer have to include a logger.ini file)
I'm going to mark this low-priority, since the current scheme works for now. However, new code should definitely use this scheme, and we should probably find some time towards the end of this year or early next year to do this.

This issue is perhaps best suited for the sheet2linkml repo, whenever that comes to fruition. I can take up the responsibility of  integrating click-log with sheet2linkml, so I'm assigning this issue to myself.


fix: assign policy to the 'others' category

Issue
https://github.com/gravitee-io/issues/issues/7636
Description
feat: assign policy to the 'others' category
That will make the policy appear in the right category on console, instead of "no category".

Gravitee.io Automatic Deployment
🚀 A prerelease version of this package has been published on Gravitee's private artifactory, you can:

use it directly by updating your project with version: 2.1.1-fix-assignCategory-SNAPSHOT
download it from Artifactory here

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

2.1.1
GitHub release

Your semantic-release bot :package::rocket:


run " ./eos-bios orchestrate" ERROR

version:0.9.5
location: china
Does the reason network?
If you have time, please give me some advice.

The default endpoint is https://ipfs.io, you can set a different gateway nearby with --ipfs.
You can even run your own ipfs daemon --init.. and use --ipfs http://localhost:8080
Once it goes through, it's cached and you're good to go.


manifests: remove intel_pstate=disable, enforce cgroupsv2

This was added to fix AWS bug, which has been long since resolved.
Ref: https://github.com/okd-project/okd/issues/1614

/test e2e-aws-ovn

/override ci/prow/e2e-gcp-upgrade
Disruption
/cherrypick release-4.13

/lgtm


[WIP] Model tests

I finished covering model and db_tools. Got out all commits from model.py. I'd prefer to merge now and get to views.py once we have a working version with all this. If the local training engine works then we can also eliminate a lot of code from db_tools.
@aboucaud @jorisvandenbossche @glemaitre


Intro to Remix

I would like to give this presentation. I've been using Remix quite a lot for my side projects, and I would very much like to teach it to others.
Intro to Remix
Remix is a React framework, people often compare it to Next.js, but it has a very different goal. One of the key differences is that Remix recognizes that deployment services have advanced enough to fully embrace web standards, edge computing and full stack development. The team is geared toward teaching you better web development rather than Remix development, so the skills you learn are applicable outside of Remix as well. They support various deployment services out of the box, so you get to keep the same application code, and changing deployment targets is mostly a matter of changing one configuration value. One of their milestones is for Remix to eventually support other UI libraries as well (Vue, Svelte etc.).

Woohoo! :)
Do you have desired month when you would like to give this talk?

Nope! Whenever you think is good 👌


Change RequestResponseProtocol.Success to wrap around Relation instead of Seq[Record]

Fixes #68
Proposed Changes

All successful response messages of the RequestResponseProtocol have a result object of type Relation

Related

#68

Ping @CodeLionX

@srfc see inline comments

@CodeLionX Ping 👍


cd.out_expected -> cd.expected_out

fix src/cd.test error:
diff: cd.expected_out: No such file or directory

Thank you!


where is the model.ckpt?

Hi! Your work is very impressive! I want to test some underwater images used your implementation. Could you provide the model.ckpt file, please?

Hi!Have you achieved the results in the paper? Can you share your experience?THANK YOU!

Hi!Have you achieved the results in the paper? Can you share your experience?THANK YOU!

Hi! I am trying to design a SOTA NN model. I haven't tried training shallow-UWnet.But I had tested the FUniE-GAN on the EUVP-dark dataset. I think the water-net indicator on UIEB and the shallow-UWnet indicator on EUVP-dark given in the paper using different indicator test codes. If you have any questions, you can talk with me!

Thank you for your help. Due to the needs of the project, I would like to test the code related to underwater image enhancement. Do you have any other recommendations? If so, you are welcome to email me at @.***
At 2021-04-28 09:52:05, "Mr.Ye" @.***> wrote:
Hi!Have you achieved the results in the paper? Can you share your experience?THANK YOU!
Hi! I am trying to design a SOTA NN model. I haven't tried training shallow-UWnet.But I had tested the FUniE-GAN on the EUVP-dark dataset. I think the water-net indicator on UIEB and the shallow-UWnet indicator on EUVP-dark given in the paper using different indicator test codes. If you have any questions, you can talk with me!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi @Owen718 and @wubilang, thank you, and sorry for my delay in response. I have now uploaded the model.ckpt (link in the README.md) which can be used to test the underwater images I have used in my implementation.


Compilation of mixed functors

functors with mixed parameters and/or result needs decliate handling of names. After discussion with @vouillon , we can try the following scheme:

On the client side, just erase all the server stuff
On the server side, each mixed module will be given an extra field that is a fragment containing the value representing the first class module representing the client side version of the module
each server version of a functor that take or emit a mix module must obey the convention (by applyting the client side version of the functor inside a fragment).
for eliom module, we must be careful of adding the extra field, which means registering a new fragment containing all the client side stuff in the eliom file.

Given a functor F(X:S) = M, the following property should hold : M_c should not depend on either M_s or X_s. This is analogous of using constant fragments.
For lifting this restriction, we could use a similar scheme than fragments, by extracting a functor parametrized by the holes.

Note: if we assume functor application are synchronous we can use a more general compilation scheme by just declaring new fragment cloture inside the functor and using a deterministic identifiers (ie. a counter) to number fragment clotures and injections.
Unfortunatly, synchronous functor application on both side means functor application is independent of control flow, which pretty much means only top level application (which is probably not the case for implicits).


Message with 1024 characters not possible

Fill in the message field until you get the error message ("The message field may not be greater than 1024 characters").
Delete a character.
Send the message.
After that an error message appears:
" Failure_Transfer_Message_Too_Large "
(0.13.8 linux)

One detail to consider. SDK uses a couple of bytes from the message payload to flag the message type (plain, encrypted)


Kubevirt Macvtap binding support setup static ip address of vm?

Is your feature request related to a problem? Please describe:
Whether Kubevirt Macvtap binding features support setup static ip address of vm? I tested windows vm, it got ip address automatically. (That means each time, the ip address would be changed) From official guide https://kubevirt.io/user-guide/virtual_machines/net_binding_plugins/macvtap/ IPAM is not supported.
Describe the solution you'd like:
We want to setup a static ip address of vm, so we can access the vm from external directly.

update:
The interesting thing is if I manually log in Windows vm, switch dhcp to static, and manually set static ip address. The ip address will be saved and kept. Rebooting windows would not refresh ip address.
However, I did not see where I can define the static ip when apply windows vm yaml.

Usually this is done through cloud-init.
It can be defined on the VM spec.
But I do not know if Windows guests support cloud-init.

Here is an example with IPv6 set statically:
https://github.com/kubevirt/kubevirt/blob/d1284df2e3068407e581069924a3aa7884553667/examples/vmi-masquerade.yaml#L38

/assign

@wingying , there has been no activity on this issue for a few weeks.
Have you tried the cloud-init suggestion?

There has been no activity on this issue and initial feedback has been already provided.
To summarize:
Kubevirt is not controlling the IP assignment in case the macvtap (plugin) binding is used.
To preserve the same IP assignment when the guest uses DHCP and the network connected to provides this service, one can configure the DHCP Server to preserve that IP for long periods of time (e.g. remembering the mac address or other identifier). Another alterative is to use manual or cloud-init to configure a static IP.
All available options are dependent on the guest.
If you'll want to query about this further, please open a new issue.
/sig-network
/close


EZSPA-876 - helm installation is failing for spark ts

If sparkExtraConfigs is empty, helm install fails. This PR fixes that

Please sync this change to ere-5.5.0 branch as well.


AModule: handle X axis scrolling

(This is against the clean branch, so this should update #387)

Thanks!


Update readme

Updates README for Maven and initialization

This is all conflicted; closing it out and starting fresh PR


rce vulnerability in npm

The details have been sent to jc21's email.

Is it possible to get some information about this bug. I mean: RCE means you have to take down the service immediately, until it is fixed... Is there a workaround?


Resolve package cycle between dialect and convert packages

Logically, the entity converters need to consider dialect specifics. Dialects pull in simple type converters (e.g. JSR 310 Timestamp converters) and create a cycle. Additionally, Dialects should operate with JDBCValue but JDBCValue is a type from the convert package. We should resolve this cycle by relocating simple converters into org.springframework.jdbc.core.convert and JDBCValue should move into the support package.

If JDBCValue is in a spring data support package we get a dependency from framework to data. I don't like that too much. I still think we should find a place under o.sf.data for our converters.

Fixed by #1128 and related commits on 3.0.x


DBImpl::CompactRange gets stuck in Win64 dynamic linked library

I'm sorry English is not my native language.
When I linked leveldb into a DLL,any call to DBImpl::CompactRange gets stuck (thread blocked, cpu usage 0%,io usage 0% ).
It seems that TEST_CompactMemTable called by CompactRange actually blocked the thread.

//db_impl.cc : TEST_CompactMemTable
// Wait until the compaction completes
    MutexLock l(&mutex_);
    while (imm_ != nullptr && bg_error_.ok()) {
      background_work_finished_signal_.Wait();     //gets stuck here
    }

Platform:Windows 10 X64
Toolchain:MSVC v142
How to reproduce this problem:

// !! uses leveldb in Windows X64 DLL
        leveldb::DB* db;
        leveldb::Status status = leveldb::DB::Open(leveldb::Options(), "path_to_db", &db);
	if (!status.ok()) {
		printf("cannot load %s reason: %s", path, status.ToString().c_str());
		exit(0);
	}
        db->CompactRange(nullptr, nullptr);

and when I uses leveldb in generic windows X64 exe or X64 library in linux,this problem doesn't occur.

solved.should not call static linkage library's function in DllMain


Feat/Dupe detection review fields

Details

This PR is a continuation of work started here, and the branch was created of branch here so it have changes from that branch so this PR should be merged after merging this.
Fixed Issues

$ https://github.com/Expensify/App/issues/39808
Tests

Create some expanses which are duplicates
Go to one of expenses which are duplicates and click Review duplicates button
Next click on one of the Keep this one button
Now if there are some discrepancies between expenses you should be navigated to screen to review those discrepancies
When there are no discrepancies you wont be navigated further, the confirmation screen will be done in next PR

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps
The following steps require you to be in the dupeDetection beta or use a expensifail email.

Create some expanses which are duplicates
Go to one of expenses which are duplicates and click Review duplicates button
Next click on one of the Keep this one button
Now if there are some discrepancies between expenses you should be navigated to screen to review those discrepancies
When there are no discrepancies you wont be navigated further, the confirmation screen will be done in next PR

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/25230417/ec811f9d-4abc-4691-b684-e65c6910a967

Android: mWeb Chrome

iOS: Native
https://github.com/Expensify/App/assets/25230417/15570344-7053-45e3-a2b9-99f1916cd37f

iOS: mWeb Safari

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/25230417/0ff6ee24-0895-4043-9e82-32c258d53862

MacOS: Desktop
https://github.com/Expensify/App/assets/25230417/3eda0cdd-5ac6-4b49-9fef-a002d87df5e7

@parasharrajat can you review this PR, as it's the next step of https://github.com/Expensify/App/pull/41093?

@parasharrajat really hoping you can review this PR in the coming hours.

Thanks both for jumping in!

@parasharrajat comments resolved and conflicts, I checked on main and same is happening that receipts are not loading

@parasharrajat As per doc

When there are two or more steps to resolve, a numbered progress bar for each applicable step is at the top of each page. Completing a step turns the numbered circle solid green with a white centered checkmark.

So the stepper will be shown only if there are two or more steps , I think in your case there is only one

Great work on this PR. What are the chances of addressing all remaining comments by tomorrow, and potentially even getting this merged before we close out the week?

@parasharrajat Done

@parasharrajat Friendly bump to finish the review since it's high priority!

For some reason, it is not working for me when clicking on the Keep this one button, it does nothing. I am not sure if it's related to the console error or not 🤔

The merchant name is different though, it should let me choose, right? But yeah, even if everything is the same, it should take you to the confirm page

Hmm for me it worked, maybe I can login into your account where you have those transactions , so I can debug why its not going to correct screen?
https://github.com/Expensify/App/assets/25230417/bb0fc10a-f23f-4144-9e3c-810ef9737ed2

ok, I found the issue just pushed a change

conflict resolved 😄

Sorry, I couldn't take a look yesterday, July 4th is a national holiday in the US so I wasn't working

@kubabutkiewicz Ah yes, for context, when the transaction is created, the merchant is stored in merchant but then, every time the user modifies it, it gets updated in modifiedMerchant. Same for amount and currency!

I am going to merge this but there is a bug that we need to fix in the other PR. If modifiedMerchant is set, we use that one to compare, if not, then we use merchant. Since you are checking for both right now, we end up with options that are not longer valid.
In this case, I modified Hola for Luego:

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/pecanoro in version: 9.0.5-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/pecanoro in version: 9.0.5-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 9.0.5-13 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 9.0.6-8 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

This PR caused a regression. An additional duplicate transaction was being added to the list of duplicate transactions being reviewed.


need -s/--silent argument

thanks for this script. now just could you make -s/--silent argument for hide all banner and script default text. only shows output.

Hello @blackcodersec ,
We have updated with the enhacement feature -s/--silent you asked and its only shows output but it doesn't override when enabled some debugging flags and also if you think it works good let us know and also you can close the issue.
Kind regards,
@RevoltSecurities

now ok :)


Revert "Samples: Philosophers: Revert stack size change"

Reverts 7c00ecbbbfb75bd87c595de65625d319e416be1c.
Changes introduced in that commit break the Dining Philosophers demo
for the following in-tree platforms:

actinius_icarus
circuitdojo_feather_nrf9160
nrf5340_audio_dk_nrf5340_cpuapp
nrf5340dk_nrf5340_cpuapp

Fixes https://github.com/zephyrproject-rtos/zephyr/issues/55040.
Signed-off-by: Saku Rautio (Ext<EMAIL_ADDRESS>

Please fix compliance check


[TextField] Correct the label's maxWidth when "select" option is enabled

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
The label max-width is the same as a normal text field, which causes the ellipsed label to be behind the dropdown icon
Example

Reproduction with Fix
https://stackblitz.com/edit/react-njhcna?file=demo.tsx
Expected behavior 🤔
The base max-width seems to be calc(100% - 24px) but with the select option it should be calc(100% - 48px) on the outlined and filled textfield, and calc(100% - 24px) on the standard textfield
Example

Steps to reproduce 🕹
Steps:

Create a TextField.
Add the select option.
Add a super long label (I know we're not supposed to but yea).
See the ellipsed label behind the icon.

Context 🔦
This can be solved manually by adding this to a textfield, but would be nice if this was included out of the box
InputLabelProps={{
    sx: {
      // avoid when input is focused or filled
      ["&:not(.MuiInputLabel-shrink)"]: {
        // issue with label padding, see: https://github.com/mui/material-ui/issues/31145
        maxWidth:
          variant !== "filled"
            ? "calc(100% - 48px)"
            : "calc(100% - 24px)",
      },
    },
  }}

Your environment 🌎

npx @mui/envinfo
  System:
    OS: Linux 5.16 Fedora Linux 35 (Workstation Edition)
  Binaries:
    Node: 16.13.2 - ~/.nvm/versions/node/v16.13.2/bin/node
    Yarn: 1.22.17 - ~/.nvm/versions/node/v16.13.2/bin/yarn
    npm: 8.1.2 - ~/.nvm/versions/node/v16.13.2/bin/npm
  Browsers:
    Chrome: 98.0.4758.102
    Firefox: Not Found
  npmPackages:
    @emotion/react:  11.7.1
    @emotion/styled:  11.6.0
    @mui/base:  5.0.0-alpha.65
    @mui/icons-material:  5.3.0
    @mui/lab:  5.0.0-alpha.65
    @mui/material:  5.3.0
    @mui/private-theming:  5.3.0
    @mui/styled-engine:  5.3.0
    @mui/system:  5.3.0
    @mui/types:  7.1.0
    @mui/utils:  5.3.0
    @types/react:  17.0.38
    react:  17.0.2
    react-dom:  17.0.2
    typescript:  4.5.5

Hi @paul-vd. Are you working on this? If not, can I pick up this issue?

Added a fix PR - 31168


Fix typo in docs

concurrenty => concurrent

:heart: :green_heart: :blue_heart: :yellow_heart: :purple_heart:


Add a contributor to the community page

Select one ...  (check one with "x")
[ ] bug
[ ] feature request
[X] enhancement

Expected behavior
Please add the name Benjamin RICHARD to the Contributors section on the community page once this pull request is merged: #183

cc @Rebolon


Bump: 0.16.0 -> 0.16.0-next

Proposed changes
This PR is a preparation for the next release.
Types of changes
What types of changes does your code introduce to the project: Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Update only documentation, not any source code.

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of
them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before
merging your code.

[X] I have read the CONTRIBUTING doc
[ ] I have signed the CLA
[X] I have updated the change log (CHANGELOG.md)
[X] I send this pull request to the v0.16.0-next branch.
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
N/A

Codecov Report

Merging #191 (327f715) into v0.16.0-next (c6b6a4d) will not change coverage.
The diff coverage is 100.00%.

@@              Coverage Diff               @@
##           v0.16.0-next      #191   +/-   ##
==============================================
  Coverage        100.00%   100.00%
==============================================
  Files                 2         2
  Lines              1746      1746
==============================================
  Hits               1746      1746

Impacted Files
Coverage Δ

config.sh
100.00% <100.00%> (ø)

lets-fiware.sh
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


concanicating problem

Please check if this PR fulfills these

[ ] The commit message is descriptive of changes
[ ] You have tried at least one local test (this includes viewing the changes on your local fork)
[x] Docs have been added / updated as needed (for bug fixes / features)

What kind of change does this PR introduce?

[ ] Typo / Doc Update
[ ] Bug Fix
[x] Feature / New Item

What is the new behavior (if this is a feature change)?

[ ] Added Interview Technical Question
[ ] Added Interview Whiteboard Question
[ ] Corrected existing items
[ ] Other

Other information:

Hi! It seems like this view already exists? I'm going to close this PR, but if you have a new question you would like to add to the project, we'd be happy to include it!


remove redstone ore from the anti x-ray

apparently this is getting lit clientside and causing particles + lag

Can you demonstrate the problem?
The only way how I was able to reproduce this issue was when I was using xray resource pack or mod.
Though no issues when xray is disabled.


HIP 110: Proxy Voting

HIP 110: Proxy Voting

Author(s): Abhay Kumar and Noah Prince
Start Date: 2024-03-01
Category: Governance
Original HIP PR: #925
Tracking Issue: #928
Vote Requirements: veHNT Holders, veIOT Holders, and veMOBILE Holders

Summary
This proposal formalizes the concept of Proxy Voters in Helium Governance. Proxy voting is a method of governance wherein a participant may assign their vote, potentially for a limited period of time, to another participant. In Helium Governance, we propose that a voting wallet with veToken power may assign their voting power, for a fixed period of time, to another voting wallet.
One can imagine a situation where a participant may not have the ability or time to properly research all Helium Improvement Proposals and directly vote using their vote power. There are also situations where participants are unable to directly vote, for a variety of reasons, but are able to assign their rights to another party. In either of these cases, we propose that participants can assign their voting power to a wallet held by a participant whom they trust without transferring control of the underlying assets.
Additionally, we propose that this proxy assignment be recursive, meaning that this assignment can then be assigned to another wallet. This allows voting power to flow to the most active representatives.
We also propose that this assignment can be revoked or reassigned at any time allowing the participant to both change their vote for a particular position or entirely reassign their vote power to a new voting proxy wallet. This provides an important balance that allows a voter to retain control at all times.
Finally, we propose that proxy voting in Helium’s ecosystem is broken into seasons that reset every August 1st, aligned with the anniversary of the network. This will ensure that assigned proxies do not get stale.
It is worth noting that the concept of vote assignment already exists in Realms on Solana but as we move to using Modular Governance, we believe that the protocol needs to explicitly formalize this feature. As part of formalizing this feature, the authors would like to create a curated registry of well known Proxies. This will allow people to fully research proxies before they assign voting power. The authors believe that the discovery aspect of voting proxies is important, otherwise it will have limited effectiveness.
Disclosure: This HIP is a formal proposal authored by the Helium Foundation. Employees listed as authors are acting in their official capacity as representatives of the Foundation. All proposals contained within reflect solely the recommendations of the Foundation and not those of any individual author(s).
Note: This proposal will likely need to voted on by each separate governance group. Specifically, if it's brought to a vote, a separate vote will be held of veHNT, veIOT, and veMOBILE holders.
Rendered View
https://github.com/helium/HIP/blob/main/0110-proxy-voting.md

HIP 110 (IOT) was approved by the community on 24th April 2024 with a passing rate of 91.71%
https://heliumvote.com/iot/proposals/4LT2pgAzsUBrVpC2a8xqwBh5Qn78ZjPfCmfbgnZJWwQi
HIP 110 (MOBILE) was approved by the community on 24th April 2024 with a passing rate of 93.30%
https://heliumvote.com/mobile/proposals/4QWyyAErD5axospNVLvyQXA19CuKSpr9JLHGiwjJ7NxE
HIP 110 (HNT) was passed by the community on 24th April 2024 with a passing rate of 93.30%, but failed to gain enough votes to comply with the minimum quorum to be fully approved
https://heliumvote.com/hnt/proposals/DGT2GYTk4Lc5oRRZnBVFRaLE4kCfLAADQYS5979jmshf
HIP 110 (HNT) was put to revote on 11th May 2024 and approved as it met the quorum requirement and passed with 92.28% of the vote.
https://heliumvote.com/hnt/proposals/5JX2WhqeRscZw4u5qWDcA2epqX2fVK9PbRiooUZLPza


Advanced templates

@spahl ready for your final okay.

@pyronicide a shiny new piece of doc for a much-requested topic

@joel-hamill just pushed!


repro: error when module is esm format

If importing js-cookie in exposed module (which is ESM) the compile fails:
repro steps. yarn start then try and visit localhost:3000
[3000-home      ] error - external "js-cookie"
[3000-home      ] The target environment doesn't support dynamic import() syntax so it's not possible to use external type 'module' within a script

If I set compiler.options.externals = [] - the error goes away, but the parent compilation now bundles all node modules.
It seems to be inheriting the parent compilation externals function instead of letting me override it
potential fix? https://github.com/module-federation/nextjs-mf/pull/296

Can you try to set https://webpack.js.org/configuration/output/#outputenvironment, i.e. environment.dynamicImport, looks like the default env in the target (i.e. browserslist doesn't support dynamic import)

I did this which maybe was overkill?
Will try with just dynamic import enabled.


Fix double dash collapsed into hyphen in README

It looks like in the example commands used in the README, the double dash for the parameter was collapsed into a single hyphen: -- to –. This errors if copying and pasting the command.

Thank you very much for fixing this! Merging.


Daemon-rpc doc: Add correct output description for /sendrawtransaction

URL: https://getmonero.org/knowledge-base/developer-guides/daemon-rpc#sendrawtransaction
The output of /sendrawtransaction is described as:

Outputs:

status - string; General RPC error code. "OK" means everything looks good.

In Monero v<IP_ADDRESS> the actual output for an invalid tx_as_hex input value such as 'abc' is
{ double_spend: false,
  fee_too_low: false,
  invalid_input: false,
  invalid_output: false,
  low_mixin: false,
  not_rct: false,
  not_relayed: false,
  overspend: false,
  reason: '',
  status: 'Failed',
  too_big: false }

This leads to the following type pattern:
double_spend: boolean;
fee_too_low: boolean;
invalid_input: boolean;
invalid_output: boolean;
low_mixin: boolean;
not_rct: boolean;
not_relayed: boolean;
overspend: boolean;
reason: string;
status: string;
too_big: boolean;

@cryptoshrimpi Do you feel comfortable editing the daemon-rpc.md and adding the correct information? (Make sure you add closes #224 in the commit description.)
Or could someone more familiar with daemon rpc update the doc so we can close this issue, please? (I'd do it but I don't know enough about it to know what I'm adding.)

+guide

I'll try to add the correct information to the doc when I find time the next days. Can someone confirm that all of the mentioned attributes are not optional in the result set? I was only able to submit an invalid tx so far.

I also noticed that the method can return the status "OK" even if the transaction was not relayed. One would expect that it returns "OK" only if everything went fine. Especially when the methods name is "sendrawtransaction".


CachedImage switches back to LoadingPlaceholder after Source is loaded

Description
I am using CachedImage inside a a ListView ItemTemplate. Sometimes the CachedImages will switch back to showing the LoadingPlaceholder image after showing the Source image, and then switch back to the Source image. I have observed this on Android, but haven't looked for it on iOS.
I have also seen this when image loading fails and the CachedImage displays its ErrorPlaceholder and CachedImage.RetryCount = 0. I would expect the image to permanently show its ErrorPlaceholder. Instead, the CachedImage will switch back to showing the LoadingPlaceholder after some time, and then apparently retry the download and finally then show the Source image. I have observed this on iOS, but haven't looked for it on Android.
Steps to Reproduce

Make a ListView with ListViewCachingStrategy.RecycleElement.
Use a CachedImage in the ItemTemplate
Bind CachedImage.Source for each item to a view model property that is a URI string.
Hard-code every CachedImage.LoadingPlaceholder to the same image. I used an EmbeddedResource with the "resource://..." syntax.
Scroll the list up and down for a while and then stop.

Expected Behavior
The Source images are displayed in the visible CachedImages, and the CachedImages do not show their LoadingPlaceholder image again.
Actual Behavior
The Source images for the visible items are downloaded and displayed. Then, after some time, each visible CachedImage switches back to its LoadingPlaceholder for a second or so and then switches back to the Source image. Each item does this one at a time.
Basic Information

Version with issue: ~v2.3.1~ v2.2.25, didn't try v2.3.1 yet
Last known good version: ???
Platform: Android and iOS

Screenshots
This is a screen capture of the list after scrolling has stopped. Notice that one of the images switches from the Source image to the LoadingPlaceholder and then back to the Source image. The scrollbar is not shown because I cropped out most of the view.

Reproduction Link / Code
I don't have a repro project. This example is from a closed-source app.

Disregard. This is caused by some loosely-related code in my app. It's not FFImageLoading's fault.


[material-ui][TablePagination] Ability to disable all (first, last, next, previous, select) page buttons

Resolves #39336

[x] I have followed (at least) the PR section of the contributing guide.

Could this also disable the page size dropdown as well?

^ Done!

Awesome, thank you!

Hey @anle9650! Thanks for working on this 😊
I think it's a good addition 🎉
May I ask you to also add the firstIconButtonProps and lastIconButtonProps for completion? That way, we also support disabling those specifically.

@DiegoAndai just added those!

Thanks @anle9650!
I've discussed this with some members of the team, and we would prefer to implement the slotProps prop instead of adding firstIconButtonProps and lastIconButtonProps, I'm sorry for not bringing this up before. It would be a little more work, but the slotProps pattern is the standard we're trying to introduce (see this Slider slotProps example).
We would have to add the slotProps prop with keys firstIconButton, lastIconButton, nextIconButton, previousIconButton, and select. Using the first icon as an example:

slotProps = { firstIconButton: someProps } would be equivalent to firstIconButtonProps = {someProps}
slotProps.firstIconButton should override firstIconButtonProps
We would add a deprecation message to firstIconButtonProps: This prop is an alias for slotProps.firstIconButton and will be overridden by it if both are used (see this Popover PaperProps deprecation message example)

Do you have time to work on it? I can provide guidance for it 😊
Also, I want to bring @cherniavskii into the conversation as the DataGrid owner, as these API changes would impact the DataGrid's pagination prop:

What do you think about adding the global disabled prop to the pagination?
What do you think about introducing slotProps and deprecating the *IconButtonProps props?

Thanks for the explanation @DiegoAndai. The examples are very helpful. I'll give it a shot!

We would have to add the slotProps prop with keys firstIconButton, lastIconButton, nextIconButton, previousIconButton, and select.

Here, you mentioned using previousIconButton as the slotProps key. However, we are currently using backIconButtonProps for the prop name. Should we continue to use backIconButtonProps as the slotProps key, or switch to previousIconButton?

We would add a deprecation message to firstIconButtonProps: This prop is an alias for slotProps.firstIconButton and will be overridden by it if both are used

Just a clarification -- you used firstIconButtonProps as the example here, but we will actually be removing firstIconButtonProps & lastIconButtonProps altogether from the current PR, correct? nextIconButtonProps, previousIconButtonProps, and selectButtonProps should be the only ones we need to deprecate.

Looking good so far 🚀!
The same thing you did on TablePagination with slotProps should be done on TablePaginationActions 🙌🏼 . When it is ready for review, let me know with a comment.

Should we continue to use backIconButton as the slotProps key, or switch to previousIconButton?

I think previousIconButton is more in line with nextIconButton, what do you think? Let's wait for @cherniavskii opinion on this as well 😊

Hi @DiegoAndai,
Looks good to me!
The Data Grid doesn't use the props you proposed to deprecate, and it's backward compatible anyway 👍🏻

@DiegoAndai just made those changes!

@anle9650 nice work! This is ready to merge from my perspective. Because I help guide the solution, I'll ask for a second review from @mnajdova 🙌🏼


Not working with Vue 3.0.3 and latest

Related: https://github.com/vuejs/vue-jest/issues/304
Seems 3.0.3 breaks test utils. The return value either here and here are different to normal.
I am not sure if we should fix this right now, or wait for the <script setup> to stop been so experimental. It's important to let people try the latest features, but I am not sure <script setup> is meant for production yet - thoughts?

Here is my analysis:

new <script setup> introduced in 3.0.3. It breaks things.

Using<EMAIL_ADDRESS>and the same version of compiler-sfc with this component works:
<script setup lang="ts">
// imported components are also directly usable in template
import { ref } from 'vue'

// write Composition API code just like in a normal setup()
// but no need to manually return everything
export const count = ref(0)
export const inc = () => { count.value++ }
</script>

<template>
  <button @click="inc">{{ count }}</button>
</template>

To make this work with the new <script setup> you just need to remove export from count and inc - those are automatically exposed. Doing that, then upgrading to<EMAIL_ADDRESS>breaks things.
If you do a log here on<EMAIL_ADDRESS>you get:
vm { __emitted: {} }

And here:
App { count: [Getter/Setter], inc: [Getter/Setter], __emitted: {} }

With<EMAIL_ADDRESS>vm { __emitted: {} }

and:
App {}

Seems this line is where things break. vm.$refs[MOUNT_COMPONENT_REF] is not returning the expected vm.

Related: vuejs/vue-jest#304
Seems 3.0.3 breaks test utils. The return value either here and here are different to normal.
I am not sure if we should fix this right now, or wait for the <script setup> to stop been so experimental. It's important to let people try the latest features, but I am not sure <script setup> is meant for production yet - thoughts?

I am actually using the new <script setup> syntax in a production app already. So I think we should fix it now. The RFC was well discussed and approved by the community.

new <script setup> implementation is literally listed under "Experimental Features" on release docs: https://github.com/vuejs/vue-next/blob/master/CHANGELOG.md#experimental-features

While I prefer to be conservative generally, I think the right move is to support this RFC as soon as possible. If people cannot try it out, it'll be difficult for Evan and co. to get feedback. Some people might get surprised when they update from 3.0.2 to 3.0.3 and things break... well, that is the cost of using an experiemental feature. 🤷♂ #264 should not impact anyone using the regular options or composition APIs.

Users wanting to use this feature should install the latest vue-jest: https://github.com/vuejs/vue-jest/releases/tag/v5.0.0-alpha.7. Run yarn add vue-jest@next.

They are both out.

vue-jest: https://github.com/vuejs/vue-jest/releases/tag/v5.0.0-alpha.7
test-utils: https://github.com/vuejs/vue-test-utils-next/releases/tag/v2.0.0-beta.12

@martinszeltins give this a try and see how you go. It works for the basic example given in the RFC, I do not have a large code-base using <script setup> to test this more thoroughly.

I think the right move is to support this RFC as soon as possible

Agree on that! Just wanted to point out that these are, in fact, experimental features, so even if we decide to provide support as soon as possible, people need to be aware what's the current situation with them, and expect some breaking changes from time to time 😉
Nice work tracking down the issue!

@lmiller1990 Are You sure this is 100% fixed? I'm missing something?
I was not able to use/mock custom store build with composition api. No matter what I did, my store was undefined, but it works on live. So I just did console.log('wrapper.vm'). And my store does not exist in component vm even that my IDE/TS correctly autocomplete it.
So I added just dummy consts data, and they also do not show up. Then I changed my component to standard exported setup() and voila - it works. So for me there is still problem with <script setup> syntax.
I'm missing some simple option on mount() or something? I spend literally hours trying to debugging this and find solution in issues, docs etc.
Reproduction code:
import { mount } from '@vue/test-utils'
import Model from<EMAIL_ADDRESS>
it('demo', () => {
  const wrapper = mount(Model)
  console.log(wrapper.vm)
})

This works:
<script lang="ts">
export default {
  setup() {
    const demo = () => {
      console.log('demo')
    }
    const demo2 = 'demo2'

    return {
      demo, demo2,
    }
  },
}
</script>

  console.log
    {
      demo: [Getter/Setter],
      demo2: [Getter/Setter],
      hasOwnProperty: [Function (anonymous)]
    }

This does not:
<script setup lang="ts">
const demo = () => {
  console.log('demo')
}
const demo2 = 'demo2'
</script>

  console.log
    { hasOwnProperty: [Function (anonymous)] }

I think this is an intended part of the <script setup> RFC. It's worded quite confusingly, but see this part.

... therefore a component using

Yes, it does. Ok so I guess I'm using expect() with <script setup> wrong?
expect(wrapper.vm.demo).toHaveBeenCalled()
It of course works fine without setup.


[component] progress bar

A classical horizontal progress bar, very similar to the current <amber-progress> component.
Developed as a separated component to not overload the current one.
Proposed syntax
<amber-progress-bar
  width="400"
  stroke="2"
  value="50"
></amber-progress-bar>

Details

width: can be pixel or %
stroke: same as <amber-progress>
value: always a %

It could dispatch an  updated event when the value change.
Main color can be defined from outside via CSS variable and/or HTML attribute.

Since we are going to create a new horizontal progress bar, could we maybe split the current circular progress into a new Spinner component?
We could have two components:
1. Spinner (loading state)
2. Progress bar (when we need to show the progress of something)

mode: circular or horizontal