[Bug]: Unable to use S3 Integration with DigitalOcean Spaces

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When I try to add a new Data source, using the S3 Integration with Digital Ocean Spaces, I get the error Your S3 endpoint URL seems to be incorrect for the selected S3 service provider. Please check your endpoint URL and the selected S3 service provider, even though I'm using the endpoint provided by DigitalOcean.
When creating a S3 Datasource with DigitalOcean it shows me the access key, the Secret key, and the Endpoint URL to be filled, I filled everything correctly, but for the Endpoint URL is some problem, when I click on Test I get the error as follows: Your S3 endpoint URL seems to be incorrect for the selected S3 service provider. Please check your endpoint URL and the selected S3 service provider.
The data is correct, but the test keeps giving a fail message. What I expect is a correct connection.
Steps To Reproduce

Open an existing Project in Appsmith.
Go to Data sources and click on the + button.
Select the S3 Datasource option.
Select on the drop-down list, Digital Ocean Spaces.
Add your Access key, the Secret Key, and the Endpoint URL
Click on Test
Error: Your S3 endpoint URL seems to be incorrect for the selected S3 service provider. Please check your endpoint URL and the selected S3 service provider.

I tried to connect with the same credentials and endpoint via Postman and a Python Script, and it worked fine. Attaching script for reference:
import boto3
import botocore

session = boto3.session.Session()

client = session.client('s3',
                        config=botocore.config.Config(s3={'addressing_style': 'virtual'}), # Configures to use subdomain/virtual calling format.
                        region_name='nyc3',
                        endpoint_url='https://nyc3.digitaloceanspaces.com',
                        aws_access_key_id=('DO00KZ83*************'),
                        aws_secret_access_key=('4uDPOqJJzDtVs****************'))
try:
    response = client.list_buckets()
    print("Conexión exitosa")
except botocore.exceptions.ClientError as error:
    print("Error de conexión: ", error)

Public Sample App
No response
Environment
Production
Issue video log
No response
Version
Cloud Appsmith v1.9.12-SNAPSHOT
 Front conversations

I am having the same problem.  See discord post:  https://discord.com/channels/725602949748752515/1089953895524094152

@pchambless have you been able to figure out a workaround for this?

This does not work.  This is the Endpoint DO is providing to use.  It also presents an alternate CDN endpoint, which also does not work.  Thanks for checking in on this !!!

What I was originally using is what DO says to use with the dot after appsmithmedia.

Hey @pchambless ! I'm curious, why is it that your URL in the Python script is different from the one entered in Appsmith? (the answer to this could also be because that's the format of the placeholder we've used :) )

Hi @pchambless
If you are sure about the correctness of your S3 configuration can you please verify whether the following workaround works for you or not?
Workaround

Configure your S3 datasource configuration
Don't test instead save the datasource
Now write a query on this saved datasource and check if the query is running fine or not

If the above workaround works for you then it means there's a bug in the test datasource flow where we expect the endpoint URL not to include any dots before digitaloceanspaces.com.

Here's what I saved it as:
It still does not like it... I copied the endpoint directly from Digital
Ocean.  I did not test it, I just saved it.  I was a little unclear
about your first statement: 'If you are sure about the correctness of
your S3 configuration' as definitely I am not sure about this
configuration.  I'm not sure if DO is getting it wrong, Appsmith is
getting it wrong or I am getting it wrong.
Paul C
------ Original Message ------
From "subratadeypappu" @.>
To "appsmithorg/appsmith" @.>
Cc "pchambless" @.>; "Mention"
@.>
Date 4/5/2023 10:50:40 AM
Subject Re: [appsmithorg/appsmith] [Bug]: Unable to use S3 Integration
with DigitalOcean Spaces (Issue #21445)

Hi @pchambless https://github.com/pchambless
If you are sure about the correctness of your S3 configuration can you
please verify whether the following workaround works for you or not?
Workaround
Configure your S3 datasource configuration
Don't test instead save the datasource
Now write a query on this saved datasource and check if the query is
running fine or not
If the above workaround works for you then it means there's a bug in
the test datasource flow where we expect the endpoint URL not to
include any dots before digitaloceanspaces.com.
—
Reply to this email directly, view it on GitHub
https://github.com/appsmithorg/appsmith/issues/21445#issuecomment-1497721355,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKWYZBNQ4VV6ZYO6KFJSSOLW7WIFBANCNFSM6AAAAAAV37XQ6I.
You are receiving this because you were mentioned.Message ID:
@.***>

I don't know what you mean by 'Python script', but I am configuring the
Endpoint as directly copied from Digital Ocean.
I've tried several different ways to configure this.
I'm happy to be a guinea pig ... just keep telling me what you want me
to try.
Paul C
------ Original Message ------
From "Paul Chambless" @.>
To "appsmithorg/appsmith"
@.>;
"appsmithorg/appsmith" @.>
Cc "Mention" @.>
Date 4/5/2023 11:16:14 AM
Subject Re[2]: [appsmithorg/appsmith] [Bug]: Unable to use S3
Integration with DigitalOcean Spaces (Issue #21445)

Here's what I saved it as:
It still does not like it... I copied the endpoint directly from
Digital Ocean.  I did not test it, I just saved it.  I was a little
unclear about your first statement: 'If you are sure about the
correctness of your S3 configuration' as definitely I am not sure about
this configuration.  I'm not sure if DO is getting it wrong, Appsmith
is getting it wrong or I am getting it wrong.
Paul C
------ Original Message ------
From "subratadeypappu" @.>
To "appsmithorg/appsmith" @.>
Cc "pchambless" @.>; "Mention"
@.>
Date 4/5/2023 10:50:40 AM
Subject Re: [appsmithorg/appsmith] [Bug]: Unable to use S3 Integration
with DigitalOcean Spaces (Issue #21445)

Hi @pchambless https://github.com/pchambless
If you are sure about the correctness of your S3 configuration can you
please verify whether the following workaround works for you or not?
Workaround
Configure your S3 datasource configuration
Don't test instead save the datasource
Now write a query on this saved datasource and check if the query is
running fine or not
If the above workaround works for you then it means there's a bug in
the test datasource flow where we expect the endpoint URL not to
include any dots before digitaloceanspaces.com.
—
Reply to this email directly, view it on GitHub
https://github.com/appsmithorg/appsmith/issues/21445#issuecomment-1497721355,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKWYZBNQ4VV6ZYO6KFJSSOLW7WIFBANCNFSM6AAAAAAV37XQ6I.
You are receiving this because you were mentioned.Message ID:
@.***>

@pchambless I was referring to the script you used within Postman:
import boto3
import botocore

session = boto3.session.Session()

client = session.client('s3',
                        config=botocore.config.Config(s3={'addressing_style': 'virtual'}), # Configures to use subdomain/virtual calling format.
                        region_name='nyc3',
                        endpoint_url='https://nyc3.digitaloceanspaces.com',
                        aws_access_key_id=('DO00KZ83*************'),
                        aws_secret_access_key=('4uDPOqJJzDtVs****************'))
try:
    response = client.list_buckets()
    print("Conexión exitosa")
except botocore.exceptions.ClientError as error:
    print("Error de conexión: ", error)

The endpoint here seems to be different from the one you have used in Appsmith. Is there a reason for that?
Also, thanks for volunteering to help out. Would you like to book a slot in my calendar here so we can resolve this in a more sync manner?

Thanks for your reply.  I'm not using postman.  The only way I'm trying to access the pictures is via Appsmith or taking the URL and pasting it into a browser.   I'll get back to you on a meet up... that's a good idea.

Ah okay I assumed the original issue report was from you as well. Perhaps you could try using the endpoint in the format as in the Python script https://sfo3.digitaloceanspaces.com?
I have opened up this week in my calendar. Please let me know if you need the next week to be opened up instead and I'll do that.

Hi @pchambless , I managed to establish the connection successfully with DigitalOcean. This is a workaround. Please follow these steps:

Select 'Other' as the S3 service provider.
Enter your access key and secret key.
Enter your endpoint exactly as provided by DigitalOcean.
Enter the region in the 'Region' field.

@rohan-arthur , I believe there might be a flaw in the current implementation. It appears that specifying the region is missing. As noted in the Python code, we need to specify the region where the connection will be established along with the URL and keys. However, in the DigitalOcean option within Appsmith, we can only enter the URL but not the region.
To address this, we should consider the priority of this bug and decide whether to maintain the DigitalOcean option or remove it, allowing users to establish the connection through the "Other" option, where they can input the region as well.
Python:

Appsmith Failed:

Appsmith Success:

Thanks Felix, this is a good find indeed

@rohan-arthur @nidhi-nair , I just went through this same debugging on my own, and ended up finding the same workaround as Felix. This is definitely a bug in our S3 datasource form. We have an option for Digital Ocean, but it doesn't work. But if you select Other, and set the region to auto, it does work.
Could we add the region field to the S3 datasource form when Digital Ocean is selected? Or keep it hidden but set the region to auto?

@rohan-arthur @nidhi-nair It sounds like we have a few "easy" options to fix this bug:

remove the integration - fast, but we lose functionality
modify the DO integration to set the region to auto - easy, but very limiting and may be deprecated later
modify the DO integration to include the region field - the most flexible long term solution

Option 3 sounds like the best one, and it should be simple since we can just copy the code from Other


Packet provider

What this PR does / why we need it:
Add Packet support to the kubermatic machine-controller
Special notes for your reviewer:
Followed the document instructions at here .
I am fairly certain we missed something. Also not sure the easiest way to test it. Would request we do the following:

Have someone do a quick look at it to see if there is something glaringly obvious.
Have someone write here the best way to test just this against Packet.

Add Packet cloud support.

/ok-to-test

Fixed formatting issues.

/retest

/retest

/retest

The tests fail btw because of
# github.com/kubermatic/machine-controller/pkg/cloudprovider/provider/packet
pkg/cloudprovider/provider/packet/provider.go:18:2: imported and not used: "github.com/kubermatic/machine-controller/vendor/k8s.io/apimachinery/pkg/runtime"

The tests fail btw because of

Strange that it didn't pick it up locally. Oh well.

/retest

My local tests all are working well against actual Packet servers.

/test pull-machine-controller-e2e-packet

My local test had the following errors. See this gist
Some direction please?

@deitch That just means the tests timed out. You can get some info about where they were when they timed out by running them with the -v flag

I was. Here is the command-line you suggested I run:
$ go test -race -tags=e2e -parallel 24 -v -timeout 20m ./test/e2e/... -identifier avi -run TestPacketProvisioningE2E

Oh, you need to enable glog for that by appending -args -logtostderr
But at the end of the day these tests just create a machinedeployment, wait for a machine, wait for a node for the machine, wait for the node to be ready, delete everything, wait for everything to be gone. Its probably easier to just do that yourself and see where it hangs?

/test pull-machine-controller-e2e-packet

But at the end of the day these tests just create a machinedeployment, wait for a machine, wait for a node for the machine, wait for the node to be ready, delete everything, wait for everything to be gone. Its probably easier to just do that yourself and see where it hangs?

Yup. My local runs (and the e2e tests) created machines and assigned the right tags. How do I check where it blew up?

@deitch Do they also appear as Kubernetes node (kubectl get node)? If yes, does the node become ready? If not, just SSH onto the instance and check what setup.service
Here the e2e tests already fail in the very beginning btw:
    --- FAIL: TestPacketProvisioningE2E/ubuntu-1.13.5 (1.83s)
        helper.go:135: verify failed due to error=failed to verify creation of node for MachineDeployment: Internal error occurred: admission webhook "machinedeployments.machine-controller.kubermatic.io" denied the request: defaulting or validation failed: validation failed: unknown instance type / plan: t1.small

That is helpful. I think I found something.

Fixed that issue and pushed .

/test pull-machine-controller-e2e-packet

/retest

/retest

/test pull-machine-controller-e2e-packet

/test pull-machine-controller-e2e-packet

/test pull-machine-controller-e2e-packet

/test pull-machine-controller-e2e-packet

My guess is that these are going to continue to fail until #504 gets merged in, since I changed the userdata in this repo as well, but not the tests. Once that is in, I will rebase here.
Either way, my own tests are not working, see lots of logs and config info in the gist

Per the Slack discussion, I can confirm that this line:
prov.Create(machine, machineCreateDeleteData, "#cloud-config")

is causing a 422 by the Packet API, because the userdata appears to be invalid. It is quite content with a newline at the end, though, so adding that here.

/test pull-machine-controller-e2e-packet

Rebased with correct userdata based on #504 .  I fixed and repushed.

/test pull-machine-controller-e2e-packet

/lgtm
/approve
/hold
so @mrIncompetent can have a look

/lgtm
/approve
/hold cancel

/retest


Simplify EncodeBody race prevention

Codecov Report

Merging #114 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #114      +/-   ##
==========================================
- Coverage   96.31%   96.31%   -0.01%
==========================================
  Files          22       22
  Lines        1465     1464       -1
==========================================
- Hits         1411     1410       -1
  Misses         37       37
  Partials       17       17

Impacted Files
Coverage Δ

chttp/chttp.go
95.12% <100%> (-0.03%)
:arrow_down:

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 78bf5a6...f9dce82. Read the comment docs.


Validate CODEOWNERS

This starts validating the CODEOWNERS file using https://github.com/mszostok/codeowners-validator and, because that project doesn't support it yet, a custom script to make sure that everybody has write access.
To make this work, I introduced the OWNERS_VALIDATOR_GITHUB_SECRET secret to contain a read-only personal access token of mine for now (expires in 30 days). This is needed because it's not possible to query for who has write access without that. In the future we should switch to a GitHub App instead.
Because we need to switch to pull_request_target to trigger CI, I had to test this in a separate PR, but it works:

Adding a new file without a code owner
Adding a code owner without write access

Furthermore, the check to make sure everybody has write access is also run in the regular monthly review, which I can confirm to work correctly:

https://github.com/infinisil/org-v2/issues/5

Now also added @zimbatm as codeowner to all files that didn't have one before.

Thanks!


Adding SVMutex and SVSemaphore destructors to avoid system objects leaks

Operating system object leak when using LSTMRecognizer (that is tessdata ver 4).
Added destructors to SVMutex and SVSemaphore to cleanup mutex and semaphore objects.
issue https://github.com/tesseract-ocr/tesseract/issues/3397

@fdivitto, I re-used (cherry-picked) your commit for git master as well, see commit 2be896d2b938df6366328d4f0e116367af1d7252.


Allow SDF export for the API

@bjonnh I changed the way the SDF is returned to allow to return one big SDF containing all structures in the structure result


Complete auth should be documented a little more

EDIT:
I was wrong about the original ticket.
** Deleted original request. **
I believe the documentation should describe the function signature, and what it expects as a response such as:
Restivus.configure
  auth:
    user:  ->
      token = @.request.headers["x-auth-token"]
      ... Do something with token and extract your user...
      if notAllowed(user) throw new Meteor.Error("Unauthorized")
      return user

Sorry, I misunderstood how the Complete Auth works. I do believe a little more documentation will help with understanding.

I agree that the auth section of the docs needs some improvement. I made a small update for #91, but the custom auth needs to be explained there as well. I'll keep this open until it's updated.


missing -java platform variant in 0.6.1 release

Version https://rubygems.org/gems/http_parser.rb/versions/0.6.1 was pushed today.
However only the MRI variant - the JRuby (-java) platfom version was not released.
Could we gem a proper release including the -java version pushed, please? // cc @ashie
:heart:

JRuby version is currently broken, so I skip releasing v0.6.1 for JRuby.
I'll try to fix it, but might not release it anymore...

thanks for the reply, that might be an issue for folks not having the version locked to 0.6.0
as bundle install picks the latest - finds 0.6.1 and will attempt to build a C extension -> leading to an error under JRuby.
maybe if this wasn't a patch release it would have played out nicer, e.g. http gem used to depend on http_parser.rb ~> 0.6.0 and thus is now effectively broken ... :crying_cat_face:

Thanks for the report.
I've yanked v0.6.1.

I'll release MRI version as v0.7.0.
BTW one of problem JRuby version is described in https://github.com/tmm1/http_parser.rb/pull/42#issuecomment-345552322
on_status is added but I can't find fork of http_parser.java which implements it.
In addition, some other tests are also failed.
I'm now investigating them.

I'm now investigating them.

#73

http_parser 0.7.0 and 0.8.0 have been released without Java integration. Is there anything that the community can help with?

We have gotten other reports about this gem dropping JRuby support. What can I do to help update it and get JRuby support restored?

Still 3 tests are failed on JRuby: #75
Since CI for JRuby is disabled long time ago, I'm not sure when did they break and who broke them.
I'm happy if someone helps investigatigating & fix them.
Because 0.7.0 & 0.8.0 doesn't include meaningful changes for JRuby, I don't have high priority to do them for now.


Draft: Make Case studies work in JIT

Only for discussion. The case studies are broken for other backends by this, due to stdlib incompatibilities.

Problem in ML:

IIUC, this refers to:
def parseCalls(): Int / Parser =
  or { number(); 1 } {
    var count = 1;
    ident();
    punct("(");
    count = count + parseCalls();
    many {
        punct(",");
        count = count + parseCalls()
    };
    punct(")");
    count
  }

yes that makes sense, the scope of mutable variable extends over the recursive call. You need to rewrite the example, potentially not using mutable variables

Ah, thanks - I will try to do so. Afterwards (i.e. when commenting out the above), we will still have this:

Is there a way to make mutually recursive definitions for the ML backend?

So, Effekt now compiles it to ML when commenting out the parseExpr calls (that still have a "polymorphic recursion" error in or), but then mlton fails with:
sbt:effekt> run --backend ml examples/casestudies/parser.md
[info] running effekt.Server --backend ml examples/casestudies/parser.md
Error: /Users/gaisseml/dev/effekt/effekt/out/examples_casestudies_parser.sml 630.77-637.17.
  Function applied to incorrect argument.
    expects: [(TokenKind_799, string, (int, int, int) Position_794) Token_805]
             -> _
    but got: [unit] -> _
    in: ((member2of2 (NondetDollarcapabil  ...  58 tok_1228))) k2965
[error] java.lang.RuntimeException: Nonzero exit value: 1


QUESTION: Process not in COMPLETED state?

QUESTION: Why if we create & run the instance CreateAndRunInstance simple_task.bpmn
technically the process finished but if after CreateAndRunInstance() finishes then I dump the instance state it is in state ACTIVE when it looks like it should to has COMPLETED state.

        // create a new named engine
	bpmnEngine := bpmn_engine.New("a name")
	// basic example loading a BPMN from file,
	//process, err := bpmnEngine.LoadFromFile("simple_task.bpmn")
	process, err := bpmnEngine.LoadFromFile("simple_user_task.bpmn")

	if err != nil {
		panic("file \"simple_task.bpmn\" can't be read.")
	}
	// register a handler for a service task by defined task type
	bpmnEngine.NewTaskHandler().Id("hello-world").Handler(printContextHandler)

	bpmnEngine.NewTaskHandler().Assignee("assignee").Handler(userTaskHandler())

	// setup some variables
	variables := map[string]interface{}{}
	variables["foo"] = "bar"
	// and execute the process
	instance, err := bpmnEngine.CreateAndRunInstance(process.ProcessKey, variables)
	if err != nil {
		return
	}

	println("InstanceKey: " + strconv.FormatInt(instance.GetInstanceKey(), 10))
	println("State: " + string(instance.GetState()))

Output:
< Hello World >
ElementId                = hello-world
BpmnProcessId            = Simple_Task_Process
ProcessDefinitionKey     =<PHONE_NUMBER>368030208
ProcessDefinitionVersion = 1
CreatedAt                = 2023-06-02 13:11:46.710748 -0500 -05 m=+0.003794422
Variable 'foo'           = bar
InstanceKey:<PHONE_NUMBER>368030209
State: "ACTIVE"

Hi, in order to help you, can you please provide the userTaskHandler handler function ?

I will do, thanks @jinjaghost

Hi @eriknyk
Indeed, as @jinjaghost mentioned, is important that the task handler sends the "complete" signal.
Else, a task is considered un-finished == still active.
Regards
Martin


Cannot access hotInstance from cells function

Description
When I try to add a cells function for conditional formatting, the handsontable instance is undefined. I was expecting to be able to access the instance from within this function so that I could check the value of a cell and use a different renderer based on that value. I was following this tutorial and attempting to recreate it with the vue wrapper: https://handsontable.com/docs/7.0.2/demo-conditional-formatting.html.
Steps to reproduce

I've included a codepen that reproduces the issue

Demo
https://codepen.io/anon/pen/mYbEaE
Your environment

Vue wrapper version: 4.0.0
Handsontable version: 7.0.2
Browser Name and version: Google Chrome 74.0.3729.131
Operating System: Windows 10

True. Handsontable instance will be set after the table is initialized, when new Handsontable() is finished. We can probably improve this if we switch to new Handsontable.Core() and this.hotInstance.init() inside the wrapper.
Like we did for @handsontable/angular recently: https://github.com/handsontable/angular-handsontable/pull/152/files#diff-e2d583e49d3e68f25b1b0818ad3ce755R334
For now you can move the function into settings object. Where instance is available through this context:
cells: function(row, column, prop) {
  const hotInstance = this.instance;
}

Thank you for sharing your feedback @aclark09
we're glad to announce that it got fixed in v 4.1.0 released yesterday.


AMPI: fix exit code handling for bigsim, multicore, ucx

Fails on uth-linux-x86_64:
make[3]: Entering directory '/home/evan/charm/uth-linux-x86_64/examples/bigsim/emulator'
../../../bin/charmc -language bigsim -g3 -o jacobi3D common.o jacobi3D.C
jacobi3D.C: In function ‘void outputData(char*)’:
jacobi3D.C:878:16: error: too few arguments to function ‘void BgShutdown(int)’
     BgShutdown();
                ^
In file included from jacobi3D.C:10:0:
../../../bin/../include/blue.h:206:6: note: declared here
 void BgShutdown(int exitcode);
      ^~~~~~~~~~

Fails on uth-linux-x86_64:
make[3]: Entering directory '/home/evan/charm/uth-linux-x86_64/examples/bigsim/emulator'
../../../bin/charmc -language bigsim -g3 -o jacobi3D common.o jacobi3D.C
jacobi3D.C: In function ‘void outputData(char*)’:
jacobi3D.C:878:16: error: too few arguments to function ‘void BgShutdown(int)’
     BgShutdown();
                ^
In file included from jacobi3D.C:10:0:
../../../bin/../include/blue.h:206:6: note: declared here
 void BgShutdown(int exitcode);
      ^~~~~~~~~~

Does the update fix this issue?

The build issue is fixed, but the exit test fails:
$ make test
../../../bin/testrun  ./exit_explicit 2>&1 ; [ $? -eq 42 ] && echo "exit_explicit test passed." || (echo "exit_explicit test failed (exit code was $?, but expected 42)."; false)
Converse/Charm++ Commit ID: v6.9.0-537-g73d707973
CharmLB> Load balancer assumes all CPUs are same.
Charm++> Running on 1 hosts (1 sockets x 6 cores x 2 PUs = 12-way SMP)
Charm++> cpu topology info is gathered in 0.001 seconds.
In application, expecting to exit with exit code 42.
exit_explicit test failed (exit code was 1, but expected 42).
Makefile:20: recipe for target 'test' failed
make: *** [test] Error 1

UTH is a non-LRTS layer so it likely needs its own handling, as does PAMI if that has not also been fixed.

The build issue is fixed, but the exit test fails:
$ make test
../../../bin/testrun  ./exit_explicit 2>&1 ; [ $? -eq 42 ] && echo "exit_explicit test passed." || (echo "exit_explicit test failed (exit code was $?, but expected 42)."; false)
Converse/Charm++ Commit ID: v6.9.0-537-g73d707973
CharmLB> Load balancer assumes all CPUs are same.
Charm++> Running on 1 hosts (1 sockets x 6 cores x 2 PUs = 12-way SMP)
Charm++> cpu topology info is gathered in 0.001 seconds.
In application, expecting to exit with exit code 42.
exit_explicit test failed (exit code was 1, but expected 42).
Makefile:20: recipe for target 'test' failed
make: *** [test] Error 1

UTH is a non-LRTS layer so it likely needs its own handling, as does PAMI if that has not also been fixed.

ugh should work now

ready for review.


"Unresolved identifier" when including swift libraries

Hi,
When adding use_frameworks! to my PodFile, suddenly library symbols are not resolved in XCode.
Specifically "GPUImagePixellateFilter".
The library worked fine before adding the use_frameworks! line using the bridging header.
I run XCode 7.3
This is my PodFile:
platform :ios, '8.0'
use_frameworks!

target 'MyApp'
  ...
  pod 'GPUImage', '~> 0.1.7'
  ...
end

Is it something I'm doing wrong or a bug in the project?
Thanks!
Ron.

Sounds like a bug with CocoaPods or the way it interacts with this framework. If you include the Xcode project directly in your application (the way I use the framework), everything builds fine.
I've never used CocoaPods myself, so I can't be much help there.

Thank you Brad for such a quick reply and pointing me in the next direction.
I'll try importing the library statically.
I wonder why this happened to me only with GPUImage though.. I use plenty of other objective-c based libraries.

In case anyone sees this in the future, the solution is: http://www.innerexception.com/2015/05/cocoapods-useframeworks-means-bridging.html

So turns out it was my problem

This can be closed. Thank you Brad

Good to hear. Sorry I can't be more help with Cocoapods issues.

🌌

Please allow me to express my experience.
I'm using this lib with via cocoapods version 0.39.
Since upgrading the cocoapods to version 1.0.1, i'm getting the bellow error:

Pods > Pods > GPUImage > GPUFramework.h
#import <GPUImage/GLProgram.h>  -> 'GPUImage/GLProgram.h' file not found

In a swift file
import GPUImage -> Could not build Objective-C module 'GPUImage'

The bridging header is clear of related imports.
Am i missing anything? Please advise.


Include phase field in the release info API

Currently ART is using the /api/v1/releasestream/{release}/latest API to determine whether the release being promoted is accepted by the release controller.
This method has some timing issues when ART attempts to rerun some automation for an old release.
It would be very convenient to query the Phase field for a specific release with the /api/v1/releasestream/{release}/release/{tag} API.
With this power, ART's automation will be smarter and idempotent.

Currently ART is using the /api/v1/releasestream/{release}/latest API to determine whether the release being promoted is accepted by the release controller.
This method has some timing issues when ART attempts to rerun some automation for an old release.

Can you expand on what you mean here?  The latest API is always the most recently "Accepted" release.
Just trying to  figure out how/why there would be a "timing" issue with that and any "automation for an old release".

Currently ART is using the /api/v1/releasestream/{release}/latest API to determine whether the release being promoted is accepted by the release controller.
This method has some timing issues when ART attempts to rerun some automation for an old release.

Can you expand on what you mean here? The latest API is always the most recently "Accepted" release. Just trying to figure out how/why there would be a "timing" issue with that and any "automation for an old release".

Our automation currently determines if a nightly is accepted by checking if latest == the_nightly_to_check. It would be convenient to directly check if a nightly is accepted or not.

@vfreex That's what I figured, but wanted to make sure.  Thanks!


[SPARK-46009][SQL][FOLLOWUP] Remove unused PERCENTILE_CONT and PERCENTILE_DISC in g4

What changes were proposed in this pull request?
This PR propose to remove unused PERCENTILE_CONT and PERCENTILE_DISC in g4
Why are the changes needed?
https://github.com/apache/spark/pull/43910 merged the parse rule of PercentileCont and PercentileDisc into functionCall, but forgot to remove unused PERCENTILE_CONT and PERCENTILE_DISC in g4.
Does this PR introduce any user-facing change?
'No'.
How was this patch tested?
GA.
Was this patch authored or co-authored using generative AI tooling?
'No'.

Gentle ping, @beliefer .

@dongjoon-hyun I'm a bit busy. Thank you for ping me.

Thank you, @beliefer .
Merged to master.

@dongjoon-hyun @HyukjinKwon @yaooqinn Thank  you!


Add ability to define RLS from which to detect changes

Background
Current version is looking to latest release Tag as starting point for filtering Issues, PRs and commits.
Feature
The user may want to select another start point for filtering

Tag 0.6.0, 0.6.1(latest-1), 0.6.2 (latest)
Tag 0.7.0 should contains all changes from 0.6.0 not from 0.6.2

I am questioning this logic. Why would one include things, that were part of the previous release notes? Rationale?

I am questioning this logic. Why would one include things, that were part of the previous release notes? Rationale?

The user may want to select another start point for filtering

I the key here is that the user may select another starting point.
In case of 0.7.0 release, a lot of issues/PR were filtered out as there were merged prior to the creation datetime of 0.6.2 while not being actually included in 0.6.2 at all. In this particular case, should this feature exist, the user may select 0.6.1 as the starting point to generate RNs from. (so 0.6.1..0.7.0 rather than 0.6.2..0.7.0).
Manual intervention is needed to tidy up, weed out things that do not fit, but it is much easier to remove extra generated content than to fill in missing items.


[DB] Handle Historical Documents

Expand on HistoricalDocumentRepository.

In order to support ACID transactions, we must have 'versioned' documents so that the Raft/PAXOS consensus algorithm has something to work on--document versions.

Possible: Create a new Historical Document table type.


BUG: Sidebar Not Fixed on Home and Liked Pages

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
The sidebar on the home page and the liked page are not fixed. The sidebar size is inconsistent between the two pages, larger on the home page and slightly smaller on the liked page. This impacts the user experience as the sidebar should remain fixed and consistently sized while scrolling through the content.

Record

[X] I agree to follow this project's Code of Conduct
[X] I have checked the existing issues
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

I can resolve this issue , plz assign me under Gssoc'24 .

Hi
I’ve noticed that the sidebar on the home page and the liked page has inconsistent sizing. The sidebar appears larger on the home page and slightly smaller on the liked page, which affects the user experience. For a more cohesive and seamless user interface, the sidebar should be fixed and consistently sized across all pages.
I’d like to work on resolving this issue to ensure a uniform and fixed sidebar size while scrolling through content. Could you please assign me to this task or provide guidance on how to get started? I’m eager to contribute to this improvement as part of my GSoC project.
Thank you for your support!

I’m ready to tackle this issue and ensure the sidebar is consistently fixed and seamlessly sized across all pages. Can you assign me this task for GSoC '24? I’m eager to dive in and bring a touch of uniformity to our app's user interface.
Looking forward to your response!


Easing function as an option

Someone suggested having more ease options baked in. I'm not sure it's something you want as the library would be heavier. Letting users specify the easing is still useful though:
Jump.jump('.selector', {
  easing: (t, b, c, d) => {
    return c * ( t /= d) * t + b
  }
})

thanks Tim, I'm always a fan of a thorough PR (that even updated the README) :beers:
I'll merge this later, when I have a chance to bump the version, and publish the new stuff to NPM. will let you know when it's been merged.

merged it in! thanks again dude

@callmecavs my pleasure :smile:


ESM in Gatsby

Is it possible to use this library with Gatsby? I can't seem to import xdm in Gatsby.

The following gatsby-node.js file:
(async function() {
  let xdm = await import("xdm");
  console.log("xdm:", xdm);
}());

Fails with Error: TypeError [ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING]: A dynamic import callback was not specified.,

Importing xdm with esm:
import { compile } from "xdm";
console.log(compile);

fails with SyntaxError: Cannot use import statement outside a module.

Adding type: "module" to package.json doesn't seem to work with Gatsby (fails with TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension "" for D:\Code\test-site\.cache\tmp-3340-dY2ATXgGrBY4 or a similar error)

Adding esm to Gatsby with the esm package fails with Error [ERR_REQUIRE_ESM]: Must use import to load ES Module.

Is it possible to use xdm with Gatsby as an alternative to gatsby-plugin-mdx?

It looks like Gatsby doesn’t support actual ESM. How to use ESM with different tools is outside of the scope of this project.
I found this old issue there: https://github.com/gatsbyjs/gatsby/issues/23705.
I’ll add a note in the readme to this gist: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c.

For reference in case anybody else stumbles upon this and wants to replace gatsby-plugin-mdx with xdm -- I could not get any of the options working to properly import xdm in Gatsby (see error messages from the first post). I "resolved" this issue (if you can call this a solution lol) by compiling the xdm library with webpack and copy-pasting the resulting bundle into my project, then importing that in Gatsby. My webpack configuration was as follows:
import path from 'path';

export default {
	mode: 'production',
	entry: './index.js',
	output: {
		path: path.resolve('D:\\Code\\xdm', 'dist'),
		filename: 'bundle.js',
		library: {
			name: 'xdm',
			type: 'commonjs',
		},
	},
};

and this can be used in a Gatsby plugin with something like
const { xdm } = require("./xdm-bundle.js");

or, if using ts-node:
import { xdm } from './xdm';

Adding xdm to Gatsby was unfortunately somewhat harder than I expected it to be (the key issues were the conflict between ESM and CJS; the incompatibility with gatsby-remark-* plugins, especially the gatsby-remark-image plugin whose functionality couldn't be replaced with other remark plugins; extracting information like frontmatter and table of contents; and the difficulty in getting rid of the import/export statements in the output of compile).
In case it helps anyone else I'll just document what I did to replicate (some of) the functionality of gatsby-plugin-mdx (I didn't migrate mdx exports since my project didn't use it). I had typescript set up with ts-node; some minor syntax may need to be changed to get it working with regular js. Keep in mind that I did not really bother to make this migration maintainable since I'm hoping for a better solution in the future...
In the gatsby-node.ts file:
exports.onCreateNode = async api => {
  const {
    node,
    actions,
    loadNodeContent,
    createContentDigest,
    createNodeId,
  } = api;

  const { createNodeField, createNode, createParentChildLink } = actions;

  if (node.internal.type === `File` && node.ext === '.mdx') {
    const content = await loadNodeContent(node);
    const xdmNode = await createXdmNode(
      {
        id: createNodeId(`${node.id} >>> Xdm`),
        node,
        content,
      },
      api
    );
    createNode(xdmNode);
    createParentChildLink({ parent: node, child: xdmNode });
  }
}

The implementation of createXdmNode:
import { createContentDigest } from 'gatsby-core-utils';
import graymatter from 'gray-matter';
import remarkAutolinkHeadings from 'remark-autolink-headings';
import remarkExternalLinks from 'remark-external-links';
import remarkFrontmatter from 'remark-frontmatter';
import gfm from 'remark-gfm';
import { remarkMdxFrontmatter } from 'remark-mdx-frontmatter';
import remarkHtmlNodes from '../mdx-plugins/remark-html-nodes.js';
import remarkToC from '../mdx-plugins/remark-toc';
import getGatsbyImage from './wrapped-gatsby-img-plugin';
import { xdm } from './xdm';

export async function createXdmNode({ id, node, content }, api) {
  let xdmNode: any = {
    id,
    children: [],
    parent: node.id,
    internal: {
      content: content,
      type: `Xdm`,
    },
  };

  let compiledResult;
  const tableOfContents = [];

  const gatsbyImage = getGatsbyImage({
    ...api,
    xdmNode,
  });

  try {
    compiledResult = await xdm.compile(content, {
      remarkPlugins: [
        gfm,
        remarkFrontmatter,
        remarkMdxFrontmatter,
        [remarkToC, { tableOfContents }],
        gatsbyImage,
        remarkHtmlNodes,
      ],
      rehypePlugins: [],
    });
    compiledResult = String(compiledResult);
  } catch (e) {
    // add the path of the file to simplify debugging error messages
    e.message += `${node.absolutePath}: ${e.message}`;
    throw e;
  }
  compiledResult = compiledResult.replace(
    /import .* from "react\/jsx-runtime";/,
    ''
  );
  compiledResult = compiledResult.replace(
    `function MDXContent(_props) {`,
    'function MDXContent(_Fragment, _jsx, _jsxs, _props) {'
  );
  compiledResult = compiledResult.replace(
    'export default MDXContent',
    'return MDXContent'
  );
  compiledResult = compiledResult.replace('export const ', 'const ');

  // // extract all the exports
  // const { frontmatter, ...nodeExports } = extractExports(
  //   code,
  //   node.absolutePath
  // )

  const { data: frontmatter } = graymatter(content);
  xdmNode = {
    ...xdmNode,
    body: compiledResult,
    frontmatter,
    toc: tableOfContents,
  };

  // xdmNode.exports = nodeExports

  // Add path to the markdown file path
  if (node.internal.type === `File`) {
    xdmNode.fileAbsolutePath = node.absolutePath;
  }

  xdmNode.internal.contentDigest = createContentDigest(xdmNode);

  return xdmNode;
}

Some things to note:

remarkToC generates a table of contents that can be added to the Gatsby node and queried with GraphQL
gatsbyImage requires access to the gatsby API's, so it needs to be wrapped in a function that lets us pass in the Gatsby-specific API's.
The magical .replace used everywhere can probably be greatly simplified if not removed by using evaluate instead of compile and/or updating the compile options; however, I haven't had time to investigate this...
You can speed up development server start times by moving body and toc into their own resolvers and only running compile when body/toc is queried. However, then you would have to be careful not to end up running the compilation twice.

remarkToC implementation:
const mdastToString = require('mdast-util-to-string');
const Slugger = require('github-slugger');

module.exports = ({ tableOfContents }) => {
  const slugger = new Slugger();

  function process(node) {
    if (node.type === 'heading') {
      const val = {
        depth: node.depth,
        value: mdastToString(node),
        slug: slugger.slug(mdastToString(node), false),
      };
      tableOfContents.push(val);
    }
    for (let child of node.children || []) {
      process(child, curLang);
    }
  }

  return node => {
    process(node);
  };
};

There might be a neater way to extract data that doesn't involve making a fake plugin? Also you can get all heading nodes in a simpler way with another unified plugin that I forgot (my specific use-case was slightly more complicated and required information about other nodes as well, which is why the implementation above is recursive).
To get gatsby-remark-image working:

Copy paste https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-remark-images/src/index.js and the associated constants.js file into your project somewhere (or you can just import straight from node_modules)
Create a wrapped-gatsby-img-plugin.js file:

const interopDefault = exp =>
  exp && typeof exp === `object` && `default` in exp ? exp[`default`] : exp;

const getPlugin = ({
  xdmNode,
  getNode,
  getNodesByType,
  reporter,
  cache,
  pathPrefix,
  ...helpers
}) => {
  async function transformer(markdownAST) {
    const requiredPlugin = interopDefault(require('./custom-gatsby-img.js'));

    await requiredPlugin(
      {
        markdownAST,
        markdownNode: xdmNode,
        getNode,
        getNodesByType,
        get files() {
          return getNodesByType(`File`);
        },
        pathPrefix,
        reporter,
        cache,
        ...helpers,
      },
      {
        maxWidth: 832,
        quality: 100,
        disableBgImageOnAlpha: true,
      }
    );

    return markdownAST;
  }
  return [() => transformer, {}];
};

module.exports = stuff => getPlugin(stuff);

The second object passed into requirePlugin are the options for gatsby-remark-images. I think you can use this technique for other gatsby-remark-* plugins as well, though most of the other plugins have functionality that can be achieved by another xdm-compatible remark plugin.
There's still a small problem -- gatsby-remark-images generates type: html nodes (see #41). To get around this, either modify the gatsby-remark-images plugin or just create another remark plugin to convert type: html nodes to a JSX custom component that just renders HTML. Below is the implementation of remarkHtmlNodes:
module.exports = () => {
  function process(node) {
    if (node.type === 'html') {
      node.type = 'mdxJsxTextElement';
      node.name = 'RAWHTML';
      node.children = [
        {
          type: 'text',
          value: node.value,
        },
      ];
    }
    for (let child of node.children || []) {
      process(child);
    }
  }

  return node => {
    process(node);
  };
};

(above can be implemented better w/ a proper library). Also, make sure that any image assets you reference in your markdown files are loaded by gatsby-source-filesystem before your markdown files are loaded by gatsby-source-filesystem. So, in gatsby-config.ts, for plugins:
  {
    resolve: `gatsby-source-filesystem`,
    options: {
      path: `${__dirname}/src/assets`,
      name: `assets`,
    },
  },
  {
    resolve: `gatsby-source-filesystem`,
    options: {
      path: `${__dirname}/content`,
      name: `content`,
    },
  },

This will work, since assets (the images) are loaded before the markdown. However, flipping the order of the two will cause images to fail silently (but it will sometimes work during development, which causes major debugging headaches...)
To render the markdown returned from xdmNode.body:
import * as React from 'react';
import {
  Fragment as _Fragment,
  jsx as _jsx,
  jsxs as _jsxs,
} from 'react/jsx-runtime';
import { components } from './MDXComponents';

const Markdown = (props: { body: any }) => {
  const fn = new Function(props.body)();

  return (

{fn(_Fragment, _jsx, _jsxs, { components })}

  );
};

export default React.memo(Markdown);

(I think there might be a better way to do this? see src/evaluate.js and src/run.js in the xdm repo)
In your MDX components, make sure to also include the RAWHTML component:
const RAWHTML = ({ children }) => {
  return
;
};

You might also need to create schema definitions for Xdm nodes:
exports.createSchemaCustomization = ({ actions }) => {
  const { createTypes } = actions;
  const typeDefs = `
    type Xdm implements Node {
      body: String
      fileAbsolutePath: String
      frontmatter: XdmFrontmatter
      isIncomplete: Boolean
      toc: TableOfContents
    }

    type XdmFrontmatter implements Node {
      id: String
      title: String
      author: String
      description: String
      prerequisites: [String]
      redirects: [String]
    }
  `;
  createTypes(typeDefs);
};

(some of these are specific to my project, adjust as needed)

gatsby-plugin-mdx also came with a loader that let you import .mdx files. You can achieve the same result by adding a custom webpack loader to gatsby-node.js; however, the given xdm/webpack.cjs bundler doesn't work due to ESM/CJS conflicts. I got around this by creating a custom webpack-xdm.js file that imported our custom xdm file:
const { getOptions } = require('loader-utils');
const { xdm } = require('./xdm');

module.exports = function (code) {
  const callback = this.async();
  xdm
    .compile(
      { contents: code, path: this.resourcePath },
      {
        remarkPlugins: [],
        rehypePlugins: [],
        ...getOptions(this),
      }
    )
    .then(file => {
      callback(null, file.contents, file.map);
      return file;
    }, callback);
};

Then, in gatsby-node.js:
exports.onCreateWebpackConfig = ({ actions, stage, loaders, plugins }) => {
  actions.setWebpackConfig({
    module: {
      rules: [
        {
          test: /\.mdx$/,
          use: [
            loaders.js(),
            {
              loader: path.resolve(__dirname, 'src/gatsby/webpack-xdm.js'),
              options: {},
            },
          ],
        },
      ],
    },
  });
};

Note that this loader doesn't let you use Gatsby's image processing. I believe (but haven't tried) that you get the image processing working by creating a wrapper around gatsby-remark-image similar to what we did in onCreateNode.

Again, this was mostly a proof-of-concept so I didn't bother to make the code neat/maintainable. Hopefully somebody will come up with a better solution to this soon :pray:
Useful links in case someone else wants to attempt this:

https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-mdx (quite helpful, especially in understanding how gatsby-remark-* plugins are handled and how resolvers, etc are implemented)
https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-remark-images
https://github.com/cpinitiative/usaco-guide/blob/c885f4c1ec19c78a0ff18c5b1b474d1ad218ce7b/src/gatsby/create-xdm-node.ts my project's implementation of the above. There's a lot of other random files associated with the project though, so this may not be the most helpful.

It's also possible to create a browser "playground" with xdm (and the performance is surprisingly good). See: https://github.com/cpinitiative/usaco-guide/blob/c885f4c1ec19c78a0ff18c5b1b474d1ad218ce7b/src/components/DynamicMarkdownRenderer.tsx

For the webpack bundle, I suggest using esbuild, it’s super fast: you could use it in your project as an npm script to bundle xdm
For the regex replaces, most of that is built in! Set outputFormat: 'function-body'
The RAW html thing: what if you add rehypeRaw as a rehype plugin? that might solve it? Alternatively see this guide on how to walk the tree.
For frontmatter, see remark-mdx-frontmatter
Awesome!!! about the performance!

Thanks for the suggestions!

Completely missed outputFormat while reading the README, oops 😅 Using that option works wonderfully, no regex required.
rehypeRaw works great; removes the need for the custom RAWHTML component

For remark-mdx-frontmatter: is there a neat way to extract just the frontmatter of an MDX file efficiently (ie. without having to compile the entire file)? An extension of this would be to extract the frontmatter + any exported values of the MDX files efficiently.
The use case for this is because optimally, during development, each MDX file would be compiled on-demand rather than compiling every MDX file when the development server starts, since compiling many MDX files can take a while (especially with extensive latex). However, the frontmatter + exported values of every MDX file would be extracted (ideally efficiently) when the development server starts, since this information is needed to generate page information.
Frontmatter can be extracted with graymatter. I haven't figured out how to efficiently extract exported values though.
If there isn't a neat way to handle this, it's not a problem -- XDM is fast enough that the this optimization isn't that important, and Gatsby caches nodes already anyway, so the performance difference is negligible after the first run. I'm mostly just curious to see if this was possible :P

For remark-mdx-frontmatter: is there [1] a neat way to extract just the frontmatter of an MDX file efficiently (ie. without having to compile the entire file)? [2] An extension of this would be to extract the frontmatter + any exported values of the MDX files efficiently.

[1] that’s what frontmatter is: it‘s static, you don’t need to know if the file is MDX, or markdown, or something entirely different. The frontmatter can be accessed without compiling the file. And graymatter (or vfile-matter) can do that.
[2] is done by remark-mdx-frontmatter: it turns frontmatter into exports, which similar to all the other exports, can then be accessed. For the “efficiently” part though: MDX is a language that compiles to JavaScript (so make sure to compile less).
Once you have the JavaScript, the JS engine should be smart enough to only evaluate export const title = 'whatever' if you’re importing import {title} from './content.mdx'.

I'm facing a similar issue with the latest unist-util-visit v3.0.0 which is ESM only. I tried to figure out how to use it in Gatsby (using esm, adding "type"="module"), but obviously it does not work. I don't think it is possible to use ESM only packages in Gatsby at the moment. Gatsby currently doesn't support ESM.

@kimbaudi How to use ESM is outside the scope of this project. The comments here show a way to make it work. Did you try them?

@wooorm I tried compiling unist-util-visit with webpack and using the bundle, but I couldn't get it to work. I'll probably have to try again to be sure. I also tried dynamic imports, but I haven't figured out how to get it working with Gatsby since dynamic imports are asynchronous and Gatsby is using require which is synchronous.
module.exports = async () => {
  const { visit } = await import('unist-util-visit')
}

There is probably a way to get it working and I just haven't figured it out. Thanks for all your work.

I don’t quite understand what unist-util-visit has to do with xdm?
And, in the thread above, there are references to a project that has what you want working. So the solution you’re looking for is linked above?

both xdm and unist-util-visit are ESM only and I was trying to get unist-util-visit to work with Gatsby as @thecodingwizard was trying to get xdm to work with Gatsby.
I understand how to use ESM is outside the scope of this project. I was just commenting that I am facing similar issue w/ unist-util-visit.

ahh, okay! I was assuming this was about xdm 😅


Migrations on class library projects

Hello!
We're developing a plugin framework for .NET game servers, which utilizes EntityFrameworkCore for database abstractions. We want to add migrations for our plugins, which are just normal  .NET Standard class libraries.
At the moment it is not possible to generate such migrations:
Command: Add-Migration Initial -Project ExamplePlugin
Output:

Startup project 'ExamplePlugin' targets framework '.NETStandard'. There is no runtime associated with this framework, and projects targeting it cannot be executed directly. To use the Entity Framework Core Package Manager Console Tools with this project, add an executable project targeting .NET Framework or .NET Core that references this project, and set it as the startup project; or, update this project to cross-target .NET Framework or .NET Core.

A workaround is to create a dummy .exe project, like this:
https://github.com/RocketMod/Rocket.EntityFrameworkCore/blob/master/ExamplePluginMigrator/Program.cs
However, it is very inconvenient to create such migrators for every plugin project. Also you can only generate these migrations inside the migrator exe project, not in the dll plugin project, which prevents migrating programmatically.
Are there any plans on supporting migrations for class libraries in the future?

Notice that Add-Migration supports both a -StartupProject and -Project, that are used to define the 'bootstrap' executable and the projects where migrations will be created.
So, even if it is inconvenient to have a (shared?) exe project just to kick-off migrations, you can still generate them in a target project.

This would not be such an big issue if said plugins were in the same solution.
Instead, each plugin has its own solution with its own projects (see http://github.com/RocketModPlugins), of which all are class libraries. We would have to add dummy migrator exes to each of these solutions and would also require external plugin developers to do this for their plugin projects.

As per this answer in SO, multi-trageting the project can help to overcome the issue... I know it is not a perfect solution, but I suppose it is the best short-term solution for this limitation... :(
That said, I suppose the tool should take care of all this stuff, without the need for workarounds...

in ef 6 have serializable model, in ef core there more startup nature,
I'm saying that what U could in in ef6 U not could easily in ef core.
Maybe this would help !
https://github.com/aspnet/EntityFrameworkCore/issues/11819
https://github.com/aspnet/EntityFrameworkCore/issues/11851

@Trojaner25 This is an issue with the way .NET Standard class libraries work--that is, a class library needs to be used against an actual .NET implementation before the code in it can be executed. We have considered and attempted workarounds (close to hacks) for this in EF tooling, but they tend to make the situation worse rather than better because other parts of the .NET ecosystem then start to fail due to the EF hacks.
So...as much as it is a pain, we are not doing anything crazy to try to make this work, but instead we are suggesting ways people can work within the limitations of .NET Standard. These suggestions are:

Target only an executable framework (e.g. netcoreapp2.1) if you don't really need to target .NET Standard. This makes life easiest, but of course isn't always reasonable.
Use a standalone application, as you mention. This is the most reliable approach that allows both an unpolluted  .NET Standard class library, and tooling to work with code built against a real target.
Cross compile the class library against a framework--e.g. netcoreapp2.1. As stated above, this can work. However, we are stepping back from recommending this because VS tooling still needs a bit of catch-up to make it work seamlessly. That said, we believe it works with VS as long as:

The executable target is listed first, and .NET Standard last
You use the new project system--that is new-style csproj--rather than the old

Hopefully this answers some of your questions!

Thanks @ajcvickers, this indeed answered my question. I will likely cross compile against netcoreapp2.1 for generating migrations.


Add ability for bot to grant certain roles

Bot should be able to grant certain roles based on something like reactions. That way people can add their own roles for simple things, like:

TRU Generator
TRU Alumni
Kamloops Innovation Center
SFU Visitor
UBC Visitor
Non-TRU Student
Co-Op
Prior Co-Op

This should not allow the following roles:

Board Member or associated roles (obviously)
IT Support
TRU Staff
Support Lab volunteer
TRUSU
or any other position of "authority"

And game night role, that allows us to only ping people for weekly game night events.


Semver 2.0 versions not handled correctly for nuget pre-release dependencies

When the bot open PRs for pre-releases the version parsing doesn't work properly for semver 2.0 versions.
https://github.com/Particular/NServiceBus.Gateway.Sql/pull/34 shows this where 3.2.0-alpha.66 is a higher version than 3.2.0-alpha0014 so no PR should have been created.

I just hit a variant of this:
Bump coverlet.collector from 1.3.1-preview.24.g6479f627e4 to 1.3.1-preview.8.ge848786b0d

A quick look at the relevant Dependabot source confirms that the prerelease part of the version is still compared lexically, without considering dot separated identifiers consisting of only digits that should be compared numerically:
prerelease_string.<=>(other_prerelease_string)

Any updates on this? (we had this happen again recently - https://github.com/Particular/NServiceBus.Callbacks/pull/198)

and again - https://github.com/Particular/NServiceBus.Transport.AzureServiceBus/pull/269/files

and again - https://github.com/Particular/NServiceBus.AmazonSQS/pull/807, https://github.com/Particular/NServiceBus.AmazonSQS/pull/808, https://github.com/Particular/NServiceBus.AmazonSQS/pull/809
Is there any likelihood of this being prioritised? This behaviour is killing the entire purpose of dependabot.

This keeps biting again and again and again.
Is there any intention of fixing it?

Have the maintainers even acknowledged that the problem exists? I noticed that it has not been marked as a bug, like other issues have — https://github.com/dependabot/dependabot-core/issues?q=is%3Aissue+is%3Aopen+label%3A"T%3A+bug+🐞"

This keeps being a tad annoying... 😉


"Do not destructure data!" - but it seems to work?

Hello,
I have read your migration guide and it mentions "Do not destructure data!" at a place in the code and then "However, be warned. If you would attempt to destructure data, you will lose the reactivity. This is a general problem with MobX and many get burned by it.". As a big fan of both MobX and destructuring, I don't see why, and making a test application testing destructuring in this specific example hasn't helped either: Destructuring seems to work.
You can find a minimal example sandbox here: https://codesandbox.io/s/spring-dust-nvvnw
In UserOrderInfoDestructure I destructure the object and UserOrderInfoDestructure still seems to react to changes to the username.
Here is how I understand how it works. I'm not an expert at MobX and I might be wrong: UserOrderInfoDestructure calls useUserData(), which in turn gets the stores. When useUserData() accesses user.name, MobX registers that the UserOrderInfoDestructure observable which called useUserData() uses user.name and should react to any changes.
(And additionally, doesn't e.g. user.name already lose all connection to the store inside useUserData() when it is accessed via user.name and assigned to a different object? Or is that reassigning the observable proxy? It was my understanding that useUseData() returns an object with two plain values as fields.)
What I can't do with destructured values is setting their values and expecting for the backing values to change, but that's not exclusive to MobX, but to all objects. (And it doesn't apply in the "Do not destructure data!" example either - the component where it is mentioned doesn't set anything.)
Am I overlooking or misunderstanding anything?

Yea, destructure works as long as there is observer that can see you doing that. Change it like this and it won't work anymore.
const UserOrderInfoDestructure = () => {
  // I am destructuring the data!
  const { username, orderId } = useUserData()
  return (
    <div>
      <Observer>
        {() => (
          <>
            {username} has order {orderId} (destructured)
          </>
        )}
      </Observer>
    </div>
  )
}

I am fairly busy for another month or so. It would be great if you can perhaps expand the explanation  https://mobx-react.js.org/state-destruct to cover it more clearly and perhaps a link to that page from the migration guide.

I'd personally recommend to stick to observer(() =>  anyway btw :).

Thanks for the clarifications, @FredyC. I never used the Observer component before - that makes sense.
Unfortunately I'm not yet firm enough with MobX/mobx-react to write documentation, especially not in this brave new functional component/hook world.


Detect crypto payment (USDT TRC20)

My problem is that I am not getting an event about my transaction when tracking a smart contract. In my code below is an example of my WalletService class in which I create an instance of new TronWeb(...) class. In this code we are interested in the updatePayment() function, in this function I connect to the Tether USDT smart contract (TRC20) through the tronweb library, put an event listener on the Transfer method.
When I compile and run the code, I can see in the console a lot of addresses of other people's wallets to which USDT tokens have been sent, but when I send a dollar to the wallet I'm tracking (check via if) I can't even see my wallet in the console....
Any help would be greatly appreciated
Сode:
import TronWeb from 'tronweb';
import crypto from 'crypto';
import base58 from 'bs58';

class WalletService {
	fullNode: string;
	solidityNode: string;
	eventServer: string;
	usdtContractAddress: string;
	privateKey: string;
	walletAddress: string;
	tronWeb: TronWeb;
	tronClass: TronWeb;
	headers: { 'TRON-PRO-API-KEY': string };

	constructor() {
		this.fullNode = 'https://api.trongrid.io';
		this.solidityNode = 'https://api.trongrid.io';
		this.eventServer = 'https://api.trongrid.io';
		this.usdtContractAddress = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t';
		this.privateKey = 'EFF6787DC...B3BF742';
		this.walletAddress = 'TV1qVqWSJ...E68Qq9FL';
		this.headers = { 'TRON-PRO-API-KEY': '4f01...19c309e' };
		this.tronWeb = new TronWeb(
			{
				fullNode: this.fullNode,
				solidityNode: this.solidityNode,
				eventServer: this.eventServer,
				headers: { 'TRON-PRO-API-KEY': '4f01...19c309e' }
			},
			this.privateKey
		);
		this.tronWeb.setAddress(this.walletAddress);
	}

	async updatePayment(): Promise<void> {
		try {
			const contract = await this.tronWeb.contract().at(this.usdtContractAddress);

			contract.Transfer().watch((err: any, event: { result: { to: string; from: string; value: string } }) => {
				if (err) {
					return console.error('Error with "Transfer" event:', err);
				}

				const addressTo = TronWeb.address.fromHex(event.result.to);
				console.log(addressTo);
				if (addressTo == this.walletAddress) {
					console.log('Received USDT!', event.result.value);
				}
			});
		} catch (error) {
			console.error('Ошибка при ожидании платежа:', error);
		}
	}
}

new WalletService().updatePayment();

export default WalletService;

I tried with and without api keys, tried to track the wallet from which I send coins, the result is the same....
Important Mention!!! I have many wallets that need to be checked at once and their number is mastabitized

Please refer to https://github.com/tronprotocol/tronweb/issues/51#issuecomment-785890109


External control RPCs for external writer + netidx recorder coordination

The purpose of this PR is to let an external process write to archive files, while having [netidx record] publish them, host replay sessions, etc. This requires some way for the external process to notify the recorder about changes to the logfiles.
Three RPCs are added to the netidx recorder publisher:

reindex - this tells the netidx recorder to re-list the archive directory
remap-rescan - this tells the netidx recorder that a specific archive file has been appended to, and to remap and rescan the file
reopen - this tells the netidx recorder that a specific archive file has been completely rewritten, and should be reopened and remapped/rescanned from beginning

@eric-stokes-architect some initial qs for you:

It doesn't look like the netidx recorder ever uses the publish cmd, I guess it's only invoked from elsewhere?
I added a second flush to ArchiveWriter::flush to make sure the committed index also gets flushed; I think this is necessary although evidence for it in testing was iffy


Update release script [skip-ci]

Update the release script to take a parameter with the new version instead of calculating the new version.

Thanks Gigon. Makes sense. Let's look at that next 🙂

@gpucibot merge

Follow up changes mentioned above in PR ( https://github.com/rapidsai/cucim/pull/32 )


MRTK (actual release) can't create a MixedRealityPlayspace on new project

Overview
On a new project, I try to use MRTK but I can do the step "Configure...". I have an error
Expected Behavior
Click on "Configure..." item menu and have the prefab MixedRealityPlayspace create.
Actual Behavior
Click on "Configure..." and the console display :

Steps to reproduce

Create a new project.
Import the package of MRTK
Configure Unity (use IL2CP, check "Virtual Reality Supported")
Click on "Configure..."

Unity Editor Version
2018.3.9f1
Mixed Reality Toolkit Release Version
v2.0.0-beta2

Solved !
My bad. That's was because I delete the default camera of the scene. The script for "Configure..." use this camera. So.... Don't delete it


Add dark mode for the website

Made spinner transparent
Did changes in CSS & JS for dark mode
Remove unnecessary imports in CSS

Made spinner transparent
Did changes in CSS & JS for dark mode
Remove unnecessary imports in CSS

Please mention the issue number and provide screenshots of the changes you have made. For example, a screenshot for dark mode/transparent spinner.

Issue: #29
Preview for dark mode

Dark Mode

Transparent Spinner (it used to have a white background around the spinner)

Additionally, we can see more of it in the netlify deploy preview

@ArunBohra12 There are 7 conflicts in the file. These conflicts are shown due to these comments:

To resolve conflicts, please add your comments like this:   /* [ your comments ] */

Happy Contributing! 😊🎉


New "Constribute" nav-bar item -> 404 Error

It looks like the url for the github pages gets prepended to the desired path that I added (see below). Is this not the way to specify an absolute url?
https://github.com/JuliaAI/DataScienceTutorials.jl/blob/80bd90bae3b729b5982c1b284acfbef96f206727/_layout/head.html#L42

I made a PR that attempts to fix that. I believe yes, it is the way but there is logic elsewhere in the site that changes this by appending Github's domain when the site is in deployment (you are viewing a client version). In particular, such logic is necessary for any internal link but not external links.

Okay, now the nav bar completely disappeared. And the "next tutorial buttons" have not effect.

I'm going to have to revert the changes for now, as this has effectively killed the site.

Oh my goodness. Sorry it was not possible to test since the logic runs if the site is hosted. I have noticed now that the function name is startsWith and not startWith as I had. No idea why no squiggly lines showed up for me.

Okay, I'll try that, thank you.

Sorted. Thanks for the prompt investigation @EssamWisam 🙏🏾


AttributeError for VideoClassifier instantiation with backbone slow_r50_detection

🐛 Bug
Hi!
I need to train the slow_50 model for spatio temporal detection. I didn't find a VideoClassificationData for loading AVA dataset, so, I decided to build a new DataModule using as reference the one on the flash_examples (custom_data_loading.py). I don't know if is going to work because I don't know how the trainer pass the input to the model (have two parameters: the Tensor with the clip, and the list of bounding boxes).
I tried to load the model using the VideoClassifier:
model = VideoClassifier(     backbone="slow_r50_detection",     pretrained=True )
and it fails with the error:
*** AttributeError: 'DetectionBBoxNetwork' object has no attribute 'blocks'
I didn't find any issue or documentation about how to train or load this models, are you planning to make a tutorial about that?

Hey @MGReyes thanks for reporting this! There are a few things to unpack here that we should work on:

documentation for using tasks with your own datamodules (expect this soon in our upcoming 0.8 release)
resolving the issue with the slow_r50_detection backbone (we can target this for a 0.8.x patch release)
supporting more formats for video classification data (some small additions coming in 0.8 but we can scope some more for 0.9 also)

I'll keep you updated as we make progress with these efforts. Hope that helps! :smiley:


Add custom cursors

Objective

Add custom images as cursors
Fixes #9557

Solution

Change cursor type to accommodate both native and image cursors
I don't really like this solution because I couldn't use Handle<Image> directly. I would need to import bevy_assets and that causes a circular dependency. Alternatively we could use winit's CustomCursor smart pointers, but that seems hard because the event loop is needed to create those and is not easily accessable for users. So now I need to copy around rgba buffers which is sad.
I use a cache because especially on the web creating cursor images is really slow
Sorry to #14196 for yoinking,  I just wanted to make a quick solution for myself and thought that I should probably share it too.

Testing

Added example which works fine at least on Linux Wayland (winit side has been tested with all platforms).
I haven't tested if the url cursor works.

Migration Guide

CursorIcon is now an enum which can hold custom images in addition to system icons. It's also not Copy anymore.
Old CursorIcon is renamed to NativeCursorIcon

Would it be more clear to have SystemCursor and SpriteCursor?

That said, I really dislike the custom image buffer :( That's really unpleasant to use, and hard to maintain. Can you say more about the circular dependency? What exactly is going on here: can we refactor things to get a nice API?

bevy_render contains Image and depends on bevy_window, so bevy_window can't depend on bevy_render and so can't use Image in the Window component.
We also can't use Handle in bevy_winit because bevy_asset depends on bevy_winit. It's only used with a little bit with android specific stuff, so it could maybe be removed. Then we could use a separate component from bevy_winit (not included in Window) to store a cursor Handle<Image>.

Here is a graph of bevy workspace dependencies if someone wants to think about it. It doesn't show bevy_asset depending on bevy_winit because that is only on android.
Basically it would be best if both bevy_window and bevy_winit could depend on bevy_render, but at least bevy_window is deeply used in bevy_render, so is probably impossible. Maybe just inverting the (no shown in the graph) bevy_asset and bevy_winit dependency is enough if we can live with the fact that cursors will not be included in the Window component.

Is moving Image into bevy_asset an option?

I'd really prefer not to move that into bevy_asset. Could we move Image into its own crate?
For reference, the same problem is encountered with #1031: we really want to feed normal image data (loaded via the asset system) back into windowing.

Having Image in a separate crate could fix this as long as it's made to not depend on bevy_render and we are able the reverse the android dependency.

Great. Can you link to the Android stuff? We should pull this out into its own issue; I think this is a pretty reasonable plan of attack.

https://github.com/bevyengine/bevy/blob/e512cb602c3b2d1908e918fdabb1c510c8dd2122/crates/bevy_asset/src/io/android.rs#L20
On android, we get the asset path from winit. It should be possible to just reverse the dependency and smuggle the paths with resources or call functions the other way.

This is not really waiting on author anymore. I'm done with the code.

Really great change, thank you for doing this! It would be awesome to have an example demonstrating the new feature, but this looks great as is.

The window_settings example is modified to include an image cursor.

Really great change, thank you for doing this! It would be awesome to have an example demonstrating the new feature, but this looks great as is.

The window_settings example is modified to include an image cursor.

Ah great :) I just saw the system cursors and missed the custom. Perfect!

For folks looking in the future, https://github.com/bevyengine/bevy/issues/14351 talks about the web of dependencies and why this implementation was chosen.

Thank you to everyone involved with the authoring or reviewing of this PR! This work is relatively important and needs release notes! Head over to https://github.com/bevyengine/bevy-website/issues/1670 if you'd like to help out.


More defensive coding against overwriting env variables accidentally

I recently ran into an issue with VCPKG and a project whereby it was partially finding files and sometimes not at all (it seemed to depend on which package I was trying to install). I eventually found the issue however and it was due to me setting the cmake_prefix_path with my own libs.
The fix involved appending this path instead, which I assume was to not overwrite whatever vcpkg.cmake had done.
This was a bit hard to find and very easily done, is there anything that can be done on VCPKGs end to warn the user maybe?

We might be able to use the CMAKE_SYSTEM_XYZ variables, which would be cleaner since they're intended to be owned by the "system" instead of the project.


[release-4.17] OCPBUGS-46625: Bump golang.org/x/net to v0.33.0

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 70.68%. Comparing base (7143378) to head (4774f6a).

Additional details and impacted files

@@              Coverage Diff              @@
##           release-4.17     #821   +/-   ##
=============================================
  Coverage         70.68%   70.68%
=============================================
  Files                49       49
  Lines              3316     3316
=============================================
  Hits               2344     2344
  Misses              797      797
  Partials            175      175

/jira refresh

/retest

/retest

/retest


Switch narration app to use quarkus-langchain4j

Currently the rest-narration application uses the Microsoft Semantic Kernel for Java library for connecting to the OpenAI providers.
There are some drawbacks to using this library in Quarkus:

It does not support native compilation (see https://github.com/microsoft/semantic-kernel/issues/2885)
It is "heavy" and is built on top of project reactor and not Java 9 Flows
It is very difficult to test. You can not use WireMock for mocking calls due to the fact the Azure client thats baked in requires the use of specific Microsoft certificates that aren't provided. Because of this we have to revert to object-based mocking, which means having to know/understand the internals of the Semantic Kernel library to know & understand how to mock it

Instead, we should use the Quarkus Langchain4J extension. This would also make it super easy to use a local LLM instead of invoking a remode instance. Its also more advanced than Semantic Kernel, has more functionality, the API is nicer (no project reactor), and it has a larger community behind it.

@edeandrea would you be able to give me the URL the application uses when it hits OpenAI?
Asking because I tried something really quick with Langchain4j but I am getting 404s

I really have no idea what url it hits currently. It's baked into the semantic kernel API somewhere.....

The URL. I was hoping that semantic kernel has some debugging you can use

Which URL though? The URL it uses for the Azure OpenAI service or for OpenAI.net?

It would be something like https:///deployments//completions?api-version=

Once https://github.com/quarkiverse/quarkus-langchain4j/pull/39 is in and we do a 0.2.0 release, the switch should be possible and the move to quarkus-langchain4j-azure-openai should make the narration service a lot simpler.

Per the conversation in quarkiverse/quarkus-langchain4j#39, unfortunately for now we can not bring that extension into the mix within this application due to the fact that this app currently supports integration with both Azure OpenAI and OpenAI.net. The Quarkus Langchain4j extension currently only supports a single provider.
Perhaps in the future it might support multiple providers via configuration.

Nevermind I found quarkus.langchain4j.chat-model.provider!


fix relative string models in hideExpression and watchers

What
Previously discussed on my previous PR https://github.com/formly-js/angular-formly/pull/599#issuecomment-172775380
expect breaking change
String hideExpression and watchers were evaluated in context of $scope.model unlike expressionProperties that were evaluated in the context of the model of a field. That said when you had nested model like const model = {nested: {foo: 'bar'}}; and your field would have model declared as a string model: 'model.nested' your hideExpression and watcher would vary from expressionProperties:
hideExpression: 'model.nested.foo === "bar"'
expressionProperties: {
  'some.property': 'model.foo === "bar"'
},
watcher: {
  expression: 'model.nested.foo === "bar"',
  listener: function() {}
}

After my tweaks, watchers and hideExpressions that are string-based, are evaluated in the same model context as expressionProperties which is only logical.
hideExpression: 'model.foo === "bar"'
expressionProperties: {
  'some.property': 'model.foo === "bar"'
},
watcher: {
  expression: 'model.foo === "bar"',
  listener: function() {}
}

Why

hideExpression and expressionProperties should be as similar to developer as possible - the mechanism behind them can be different but their api and behavior should be the same thus expression copied from expressionProperty should work with hideExpression and vice versa
watchExpression was by default 'model.' + key which didn't work out of a box for nested models because fe. const model = {nested: {foo: 'bar'}}; with model: 'model.nested', watcherExpression would be model.foo because of watchExpression = 'model[\'' + field.key.toString().split('.').join('\'][\'') + '\']' and this would not work because it didn't take into account that model was moved to nested child and would expect model.nested.foo to work

How
I have added 2 things:

in method getFormlyFieldLikeLocals that prepares context for field expressions registered in formly-form controller to look more like these registered from the formly-field controller. getFormlyFieldLikeLocals has one time that field.model is not yet ready - this is on initModel method call that actually resolves field.model and should be run in $scope.model context. Other than that, anything that uses getFormlyFieldLikeLocals should be run with model as field.model.
watchExpression in formly watcher registration gets run through $parse to add field.model as a model

Checklist:

[x] Follows the commit message conventions
[x] Is rebased with master
[x] Is only one (maybe two) commits

I might add a test or two to confirm watchers behavior but wanted to post this PR for first review

Current coverage is 96.00%

Merging #639 into master will not affect coverage as of ef23e5a

@@            master   #639   diff @@
=====================================
  Files           16     16
  Stmts         1150   1152     +2
  Branches         0      0
  Methods          0      0
=====================================
+ Hit           1104   1106     +2
  Partial          0      0
  Missed          46     46

Review entire Coverage Diff as of ef23e5a

Uncovered Suggestions

+0.35% via ...alidationMessages.js#25...28
+0.26% via ...s/formlyUsability.js#18...20
+0.26% via src/test.utils.js#38...40
See 7 more...

Powered by Codecov. Updated on successful CI builds.

Hi @kwypchlo!
Thanks for making this. I'll review it more closely soon. But if you could double check the commit message conventions, I don't think this follows it. Also, pay close attention to what you need to do in the commit message if you're introducing a breaking change please. Thanks!

Yeah @kentcdodds I've just edited the message :) it took me a while to prepare it and I noticed I didn't conform with standard just after I pushed the PR.

Awesome. Thanks for doing that! I'll get back to you soon hopefully!

I think this PR is great other than the one note that I mentioned. Let me know if you have questions about that.

@kentcdodds yeah sorry I'm just super busy right now :) You are right, I will refactor this piece of code when I get a chance and ping you afterwards

@kentcdodds I've updated this PR with some refactoring. Now field.model will always be initialized on initModel so we'll always have good model reference through field.model in form context.

Looks good to me! Thoughts @formly-js/angular-formly-collaborators-read?

Hopefully the auto-release works for this one. We've had a bit of trouble with that recently.

cool, thanks @kentcdodds
btw any idea why the changelog is not getting automatically updated with new releases? https://github.com/formly-js/angular-formly/releases
is there new changelog where such breaking change as the one here would be documented?

Nope :-( #643 is tracking issues with the auto-release process...


prevent error when mentionText is undefined

have you release already? i have small adjustment
On Thu, May 13, 2021 at 3:00 PM Piotr Kaminski @.***>
wrote:

Merged #2 https://github.com/Reviewable/tribute/pull/2 into
reviewable-master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Reviewable/tribute/pull/2#event-4741502611, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADAG56V5IVWPBGVAL7XEOU3TNO5N5ANCNFSM442JFWOA
.

new PR https://github.com/Reviewable/tribute/pull/3
On Thu, May 13, 2021 at 3:24 PM Bogdan Muranets @.***>
wrote:

have you release already? i have small adjustment
On Thu, May 13, 2021 at 3:00 PM Piotr Kaminski @.***>
wrote:

Merged #2 https://github.com/Reviewable/tribute/pull/2 into
reviewable-master.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Reviewable/tribute/pull/2#event-4741502611, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADAG56V5IVWPBGVAL7XEOU3TNO5N5ANCNFSM442JFWOA
.


Refactored Code

Status
READY
Description
Refactored Code

@prince-7 it's conflict, please fix it

@prince-7 it's conflict, please fix it

@adeyosemanputra, I have fixed it. Please check it now!


Invalid signature during installation on Fedora 38 Beta

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.76.0
OS Version: Fedora 38 Beta

Steps to Reproduce:
On a system with Fedora 38 Beta, run sudo dnf https://packages.microsoft.com/keys/microsoft.asc as mentioned in the installation instructions.
This results in the following error message:
error: Certificate EB3E94ADBE1229CF:
  Policy rejects EB3E94ADBE1229CF: No binding signature at time 2023-03-02T07:20:11Z
error: https://packages.microsoft.com/keys/microsoft.asc: key 1 import failed.

The (unsafe) workaround is to set gpgcheck=0 and comment out gpgkey in /etc/yum.repos.d/vscode.repo

Looks like it is solved, just manged to install it without hiccups. First upgraded without code  sudo dnf upgrade -x code )then sudo dnf upgrade.


add Kenneth_Luster's hackbar

Climate Change is very serious and we all need to help

First Commit

Thanks for your contributions :)


Document MNA

Pretty much what it says on the tin. Hopefully this can guide our wayward souls doing integration and support :)

Ready for review; I think I checked all the boxes on this one.
I'm about to start a feature branch off of this one, since there were some subtle but important changes to the actual code, unlike the name of the branch would imply.

I'm going to allow this to be pulled in as it has hit all of the major points, but we should increase test coverage soon.


⚠ Adacta-fintech.com has degraded performance

In 945ef43, Adacta-fintech.com (https://www.adacta-fintech.com) experienced degraded performance:

HTTP code: 502
Response time: 780 ms

Resolved: Adacta-fintech.com performance has improved in 77be0dc after 7 minutes.


Add GroceryList class

Add a groceryList on the project grocery list and list evey item in here.

Commit 55 is first commit for this issue


Update Go Version to 1.22.5

Follow-up to #31747 as Go 1.22.5 was released shortly afterward. This updates the Go version used in Beam infra, but does not increment the minimum Go version required by the Go SDK, which is a separate change.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @lostluck @damccorm


Full bleed implementation.

Enabled by setting the fullbleed option to true. Flash fallback has been tested too.
<script>
	$('video').mediaelementplayer({
		fullbleed: true
	});
</script>

Demo;
http://dev.cartelle.nl/labs/mediaelement-fullbleed/demo/mediaelementplayer-fullbleed.html
Hope you like it!

Sorry I fell behind on looking at this again.
The two links you sent are the same. Could you point me to the other one, so I can see the demo?


Mattermost-Desktop 5.0.2 on Debian Linux -  Network service crashed, restarting service.

Summary
Mattermost-Desktop 5.0.2 will not start as root with flag "--no-sandbox" on Debian 11 bullseye
Steps to reproduce

Download and extract mattermost-desktop-5.0.2-linux-x64.tar.gz file
cd mattermost-desktop-5.0.2-linux-x64
./mattermost-desktop --no-sandbox

Expected behavior
Mattermost-Desktop should open a window and display the chat as Mattermost-Desktop version 4.6.1 still does.
Observed behavior (that appears unintentional)
No Window opens up
console prints:
12:56:16.261 › config.autostart has been configured: true
12:56:16.264 › config.autostart has been configured: true
12:56:16.334 › BrowserView created for server Chat___TAB_MESSAGING
12:56:16.336 › couldn't show Chat___TAB_MESSAGING, not ready
12:56:16.336 › [Chat___TAB_MESSAG...] Loading https://chat.scsynergy.com/
12:56:16.337 › couldn't show Chat___TAB_MESSAGING, not ready
[14072:0120/125616.346696:ERROR:network_service_instance_impl.cc(333)] Network service crashed, restarting service.
12:56:16.353 › There was an error while trying to download the dictionary definitions for en-US, spellchecking might not work properly.
12:56:16.357 › couldn't show Chat___TAB_MESSAGING, not ready
12:56:16.359 › couldn't show Chat___TAB_MESSAGING, not ready
12:56:16.361 › config.autostart has been configured: true
12:56:16.363 › [Chat___TAB_MESSAG...] failed loading https://chat.scsynergy.com/: Error: ERR_FAILED (-2) loading 'https://chat.scsynergy.com/', retrying in 5 seconds
[14072:0120/125616.364315:ERROR:network_service_instance_impl.cc(333)] Network service crashed, restarting service.
[14072:0120/125616.380876:ERROR:network_service_instance_impl.cc(333)] Network service crashed, restarting service.
[14072:0120/125616.403051:ERROR:network_service_instance_impl.cc(333)] Network service crashed, restarting service.
[14103:0120/125616.410037:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
[14110:0120/125616.415024:ERROR:platform_shared_memory_region_posix.cc(250)] Creating shared memory in /dev/shm/.org.chromium.Chromium.5jU0n6 failed: Operation not permitted (1)
[14110:0120/125616.415095:ERROR:platform_shared_memory_region_posix.cc(253)] Unable to access(W_OK|X_OK) /dev/shm: Operation not permitted (1)
[14110:0120/125616.415131:FATAL:platform_shared_memory_region_posix.cc(255)] This is frequently caused by incorrect permissions on /dev/shm.  Try 'sudo chmod 1777 /dev/shm' to fix.
[14072:0120/125616.420279:ERROR:network_service_instance_impl.cc(333)] Network service crashed, restarting service.
The last line is repeated indefinitely until I press CTRL-C.
Possible fixes
"chmod 1777 /dev/shm" did not change anything
Version 4.6.1 displays the following in the console and then opens the chat window and everything works just fine:
/usr/local/mattermost-desktop-4.6.1-linux-x64# ./mattermost-desktop --no-sandbox
Failed to update configuration to version 2.

Nope, that did not change anything - the same error occurs.

Odd. Does the app work correctly if you login as another non-root user?

Yes, with a non-root user and without "--no-sandbox" it works. If I specify "--no-sandbox" with the non-root user the error occurs again.

Seems like something odd is going on, I'm unable to reproduce your error but I get a different one on Kubuntu 20.04:
root@devin-VirtualBox:~/mattermost-desktop-5.0.3-rc1-linux-x64# ./mattermost-desktop --no-sandbox
[2392:0124/102726.035010:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2392:0124/102726.035086:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
10:27:26.040 › config.autostart has been configured: true
No protocol specified
10:27:26.045 › config.autostart has been configured: true
[2392:0124/102726.046602:ERROR:gpu_process_host.cc(962)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[2392:0124/102726.049640:ERROR:gpu_process_host.cc(962)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[2392:0124/102726.075894:ERROR:gpu_process_host.cc(962)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[2392:0124/102726.087298:ERROR:gpu_process_host.cc(962)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[2392:0124/102726.093870:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2392:0124/102726.095111:ERROR:gpu_process_host.cc(962)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[2392:0124/102726.098102:ERROR:gpu_process_host.cc(962)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[2392:0124/102726.101071:ERROR:gpu_process_host.cc(962)] GPU process exited unexpectedly: exit_code=1024
No protocol specified
[2392:0124/102726.129740:ERROR:gpu_process_host.cc(962)] GPU process exited unexpectedly: exit_code=1024
[2392:0124/102726.133019:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
No protocol specified
10:27:26.149 › The GPU process has crashed (killed = false)
[2392:0124/102726.152304:ERROR:gpu_process_host.cc(962)] GPU process exited unexpectedly: exit_code=1024
[2392:0124/102726.152328:FATAL:gpu_data_manager_impl_private.cc(414)] GPU process isn't usable. Goodbye.
Trace/breakpoint trap (core dumped)

Created a ticket: https://mattermost.atlassian.net/browse/MM-41240

I've done some research and this appears to be an issue with Chromium, not just Electron: https://bbs.archlinux.org/viewtopic.php?id=268123

This has been inactive for a while, I'm going to close it. Feel free to re-open if anyone's still interested in fixing this.


feat(header, side-menu): new & improved

Experimental v2 header and side menu web components.
Looking for feedback on the API.
Some notes:

I've exposed the elements within the menus as individual web components for flexibility.
The drawer open state is handled by the user to have a single source of truth.

To view, open the preview site below 👇
Screenshots

TODO

[x] Launcher menu
[x] Drawer sub-menus
[x] Header dropdowns
[x] Simplify side menu user API
[x] Fix collapsed side-submenu overflow bug
[x] Always show collapse button in view when side menu has scroll
[x] Handle basic text overflow in header
[x] Align user menu in header right
[x] Rename components
[x] Selected states, hover, focus
[x] Side menu width
[x] Property descriptions
[x] Event names
[x] Clean up stories
[x] Clean up CSS variables
[x] Rebase
[x] SonarCloud

To trap focus within the drawer menu, a11y-dialog should be added to the drawer when a release that includes a fix to the following is up: https://github.com/KittyGiraudel/a11y-dialog/issues/322

Really awesome work 😍 Would love a demo!
If I'm not mistaken I don't think the title is supposed to have a right border:

Looks like the --sdds-footer-top-divider has the wrong color for darkmode? From what I can tell in figma it shoud be --sdds-grey-600 for dark mode.

Before I forget: Breakpoint for sidemenu disappearing should be medium, not large, to  be consistent with footer mobile mode :)

Before I forget: Breakpoint for sidemenu disappearing should be medium, not large, to be consistent with footer mobile mode :)

For later reference: me and @charlottelorensson talked about this yesterday, and came to the conclusion that 992px (the grid-lg breakpoint in our code currently) was a good one for switching components to their touch(mobile) layout.

I think the overall idea for this one is really good. The only thing I would suggest we change is the lg/default size of stuff as different components. I feel like this is a prop to align with other components. It might be more convenient for us to have it the way it is now, but for the end user I feel like a prop would be more ergonomic.
On the link I think it would be great if we specify the accepted values, like on target: _self,_blank, and so on. This for the readme to include the accepted values and not just saying string. That way it can be aligned with the link (https://github.com/scania-digital-design-system/sdds/blob/main/tegel/src/components/link/sdds-link.tsx), maybe we want to add some more props to that one though, but that's another PR.
Great work! 🚀

If you collapse the menu and then go to sm screensize (mobile) the mobile menu looks like this:

The dropdown chevron has different animations when it's in the side menu vs. the header. One rotateX and one rotateY, would be great to settle on one.

add side menu link

If you collapse the menu and then go to sm screensize (mobile) the mobile menu looks like this:

Very much an edge case, but yea theoretically possible that a user first collapses the side-menu and then resizes their window to be small.
It was actually something I considered but didn't think it was important enough to fix, but I think Ill fix it..

The user menu icon seems to "hide" behind the screen edge when making the window smaller, just before it jumps into the side menu. Might be an edge case but maybe we could take a look at it for the sake of the example? :)

This will be fixed in a separate pr

Not sure if this is intentional or not, but in the Side Menu web component the user menu is visible in mobile size version but no up in the desktop header. Is it supposed to be that way?

They were omitted as the text in the header says. But removed them from the side-menu as well now.
I can see how it was confusing.


About the annotations

Hi @kdexd ,
Thank you for your excellent work on the project.
Following the instructions in this repo's README, I visited the project page for the annotations. However, I did not find them on the project page (https://cocorem.xyz). Are these annotations currently available elsewhere?
Kindly @Shweta-singh1 @ydvaayan

Hi @HarborYuan ,
The annotations are available on the website's homepage and can be downloaded by clicking 'Download Validation Set' and 'Download Train Set' buttons. The annotations are hosted on google cloud bucket and apparently an issue with that seemed to have caused a problem. The issue seems to have resolved itself. So I would request you to try again and tell us if the problem persists.
Thank You

Hi @ydvaayan ,
Thanks for your help. After checking, I found that the problem was with the Safari browser. I tried Chrome again this time, and it works well.


Added draft PR of generator for strongARM comparator

Draft PR, LVS and DRC aren't clean

I would advise against using smart route for these generators as it not as parameterizable as the "dumb" routes, and parameterization is what we're looking for here. Furthermore please look at routing widths to account for the routes through which more current would flow if the circuit was used

LVS Error:

@utkarsh5086 Are you still stuck here?

I cleared the symmetry errors in LVS. I also passed LVS manually editing the netlist. I will make some changes to the LVS script and add them here.