proposal: Add CRD ApisixPluginConfig support plugin configs

Add a CRD like ApisixPluginConfig to support a group of plugin configs, and ApisixRoute add a field be associated with it.
If we want to implement this function, we can split the following tasks:

[x] Add ApisixPluginConfig custom resource. Only need to modify YAML. #694
[x] Add ApisixPluginConfig data structures. #694
[x] Add client implementation to interact with Apache APISIX. #772
[x] Add ApisixPluginConfig translator, it can convert ApisixPluginConfig data structure into APISIX. #815
[x] Add ApisixPluginConfig controller loop, It watches the ApisixPluginConfig resource in the Kubernetes cluster and converts it to the ApisixPluginConfig data structure.  #815
[ ] Add docs to describe it.

Add this to v1.3 milestone.

Started a discussion on the mailing list https://lists.apache.org/thread.html/r6e989cb7087feff7ab48157d74cf47aab18c3a1cfd32474b0672e63f%40<dev.apisix.apache.org>

cc @Donghui0

i'm a volunteer

i'm a volunteer

Great, assign to you. Look forward.

Thanks! @neverCase If you need help, you can ping me at any time.

ok, got it

ok, got it

Welcome to submit your plan to the mail list :).

ok, got it

Welcome to submit your plan to the mail list :).

OK, i will submit my plan later.

I had replied a mail on the apache mail list, but it seems something wrong.
After sending, i can't find my reply on the mail list.

my plan

add ApisixPluginConfig in types.go and generated libraries (such as clientset)
add ApisixRoute as a group in config
add looper for watching specific resources by using clientset (like k8s.io/client-go) and convert it

I had replied a mail on the apache mail list, but it seems something wrong.
After sending, i can't find my reply on the mail list.
@tao12345666333 @tokers

You have to subscribe the<EMAIL_ADDRESS>before you send any mails.

my plan

add ApisixPluginConfig in types.go and generated libraries (such as clientset)
add ApisixRoute as a group in config
add looper for watching specific resources by using clientset (like k8s.io/client-go) and convert it

Refer to other types (see https://github.com/apache/apisix-ingress-controller/blob/master/pkg/kube/apisix/apis/config/v2beta1/types.go#L30) so that the CRD definition can be generated with the OpenAPIV3Schema.
We need to talk about the mutual exclusivity between pluginConfig and plugins fields. @tao12345666333 @gxthrj @neverCase

Add a CRD like ApisixPluginConfig to support a group of plugin configs, and ApisixRoute add a field be associated with it.
If we want to implement this function, we can split the following tasks:

[ ]  Add ApisixPluginConfig custom resource. Only need to modify YAML.
[ ]  Add ApisixPluginConfig data structures.
[ ]  Add client implementation to interact with Apache APISIX.
[ ]  Add ApisixPluginConfig translator, it can convert ApisixPluginConfig data structure into APISIX.
[ ]  Add ApisixPluginConfig controller loop, It watches the ApisixPluginConfig resource in the Kubernetes cluster and converts it to the ApisixPluginConfig data structure.
[ ]  Add docs to describe it.

You can split this function into multiple small tasks to carry out, refer to these tasks I added in the description. @neverCase

I had replied a mail on the apache mail list, but it seems something wrong.
After sending, i can't find my reply on the mail list.
@tao12345666333 @tokers

Yes,  you need to subscribe the<EMAIL_ADDRESS>before you send any mails.
Of course, whether you are discussing in this issue or on the mailing list, it’s okay.

After discussing it with @tokers and @gxthrj . We finally reached an agreement.
We can set the plugins  field and pluginconfig field in ApisixRoute to be mutually exclusive.
This means that the user can only configure one of the plugins or pluginconfig  in ApisixRoute.

ok, i had created ApisixPluginConfig.yaml and add 3 structs ApisixPluginConfig, ApisixPluginConfigSpec, ApisixPluginConfigList in the v2alpha1/types.go.
But i had trouble in making up fields inside ApisixPluginConfigSpec, because i can't find any structs could be linked to the plugin in types.go.
// +genclient
// +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +kubebuilder:subresource:status

// ApisixPluginConfig is the Schema for the ApisixPluginConfig resource.
// An ApisixPluginConfig is used to support a group of plugin configs
type ApisixPluginConfig struct {
	metav1.TypeMeta   `json:",inline" yaml:",inline"`
	metav1.ObjectMeta `json:"metadata" yaml:"metadata"`

	// Spec defines the desired state of ApisixPluginConfigSpec.
	Spec   ApisixPluginConfigSpec `json:"spec" yaml:"spec"`
	Status ApisixStatus           `json:"status,omitempty" yaml:"status,omitempty"`
}

// ApisixPluginConfigSpec defines the desired state of ApisixPluginConfigSpec.
type ApisixPluginConfigSpec struct {
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

// ApisixPluginConfigList contains a list of ApisixPluginConfig.
type ApisixPluginConfigList struct {
	metav1.TypeMeta `json:",inline" yaml:",inline"`
	metav1.ListMeta `json:"metadata" yaml:"metadata"`
	Items           []ApisixPluginConfig `json:"items,omitempty" yaml:"items,omitempty"`
}

could u provide me more details about the plugins
@tao12345666333

You can open a PR and submit your current changes directly.
The PluginConfig document is here https://apisix.apache.org/docs/apisix/architecture-design/plugin-config
It looks like this:
// ApisixPluginConfigSpec defines the desired state of ApisixPluginConfigSpec.
type ApisixPluginConfigSpec struct {
    Desc   string            `json:"desc,omitempty" yaml:"desc,omitempty"`
    Plugins Plugins // it should be imported from  https://github.com/apache/apisix-ingress-controller/blob/3e9bdbf0cee6d49c8e0db27152d46565df704e8c/pkg/types/apisix/v1/types.go#L158
}

@neverCase You can use []ApisixRouteHTTPPlugin directly, no need to define the list yourself.

@neverCase You can use []ApisixRouteHTTPPlugin directly, no need to define the list yourself.

before pr, should i make up the field validation in the ApisixPluginConfig.yaml

You can open a PR and set it as draf status. Related discussions can be held in the PR, which will be more convenient.

@tao12345666333  init apisix crd

@tao12345666333 Hi, Can this feature be released in version 1.4.0?

@shelltea you can check #694 and #689 If @neverCase  has time to complete this feature, we can include it in 1.4.

@tao12345666333   Thanks!
@neverCase   Hi, Do you have time to complete this feature recently? We really need this feature. 😀

@tao12345666333 @shelltea
Actually, I have time to fix this, but I need more help.
I'm willing to contribute my codes.

@tao12345666333 @shelltea Actually, I have time to fix this, but I need more help. I'm willing to contribute my codes.

Feel free to paste your questions there :).

Feel free to paste your questions there :).

@neverCase If you need help, please feel free to ping us

👌  i will update today

@tao12345666333
hi, should I implement the ApisixPluginConfig in the TranslateContext
// TranslateContext contains APISIX resources generated by the translator.
type TranslateContext struct {
	Routes       []*apisix.Route
	StreamRoutes []*apisix.StreamRoute
	Upstreams    []*apisix.Upstream
	upstreamMap  map[string]struct{}
	SSL          []*apisix.Ssl
}

@neverCase  You can refer to the following PR to split this work. So that others can also develop collaboratively.

chore: consumer data structures by tokers · Pull Request #470 · apache/apisix-ingress-controller

feat: apisixconsumer translator by tokers · Pull Request #474 · apache/apisix-ingress-controller

feat: consumer controller loop by tao12345666333 · Pull Request #516 · apache/apisix-ingress-controller

@neverCase You can refer to the following PR to split this work. So that others can also develop collaboratively.

chore: consumer data structures by tokers · Pull Request #470 · apache/apisix-ingress-controller
feat: apisixconsumer translator by tokers · Pull Request #474 · apache/apisix-ingress-controller
feat: consumer controller loop by tao12345666333 · Pull Request #516 · apache/apisix-ingress-controller

OK 👌

@neverCase I hope you complete the definition of CRD and data type first. eg. #689 or #694

@neverCase I hope you complete the definition of CRD and data type first. eg. #689 or #694
Thanks, got it.

#694 has been merged. 👍 You can do this job @neverCase

[ ]  Add client implementation to interact with Apache APISIX.

[ ] Add client implementation to interact with Apache APISIX.
[ ]  Add ApisixPluginConfig translator, it can convert ApisixPluginConfig data structure into APISIX.
[ ]  Add ApisixPluginConfig controller loop, It watches the ApisixPluginConfig resource in the Kubernetes cluster and converts it to the ApisixPluginConfig data structure.
[ ]  Add docs to describe it.

@shelltea  @fengshunli   If you are interested, you can also choose one of the tasks.

@tao12345666333   I am very interested, but I'm not familiar with go and Kubernetes.

#694 has been merged. 👍 You can do this job @neverCase

[ ]   Add client implementation to interact with Apache APISIX.

@tao12345666333
Does this task mean that i should implement the webhook and validation?

chore: consumer data structures by tokers · Pull Request #470 · apache/apisix-ingress-controller

ok, got it.

#694 has been merged. 👍 You can do this job @neverCase

[ ]   Add client implementation to interact with Apache APISIX.

ok, got it.

@neverCase Thanks for your work, if you have time, you can continue the development of follow-up tasks.

@neverCase Thanks for your work, if you have time, you can continue the development of follow-up tasks.

ok, got it.
I will update it tomorrow.

Hi folks,
The main part of the ApisixPluginConfig function has been implemented, thanks for your hard work  @neverCase , great!
I’m about to initiate a vote for the release of a new version of v1.4. This feature will appear for the first time in v1.4.

For this feature, there is one last task left.

[ ] Add docs to describe it.

Who has time to help with this task?

[ ] Add docs to describe it.

I think it's my job -,-.

Thanks! @neverCase

@tao12345666333
This issue could be closed.


Uncommon Valor: A Vietnam Story by Jedi Mind Tricks unsupported.

Check if issue with swaglyrics or whether song lyrics unavailable on Genius.

stripper -> Jedi-Mind-Tricks-Uncommon-Valor:-A-Vietnam-Story

added to stripper()

will be supported next release 👍


Libdoc: Support argument types with multiple possible values

RF 4.0 alpha 2 added support for argument conversion based on multiple types (#3738) and Libodc should support that as well both in specs and in HTML. In specs it's probably best to store info for each possible type separately (i.e. instead of having just <type>int</type> make it valid to have <type>int</type><type>float</type>) and in HTML it might be a good idea to use something like <int> or <float> as the type info.
When getting argument info from Robot, Libdoc should support both unions and tuples (i.e. Union[int, float] and (int, float)) like the execution side does.. We need to decide should we normalize this information already at the execution side or should Libdoc just handle both cases. When reading specs and recreating models, Libdoc can read multiple types into a tuple.

Union support has been added.


Still some encoding issues

@byt3bl33d3r,
It seems that utf-8 is pretty well handled throught the code, except for parameters passed on the command line (login/password, share name stuff etc.):

In the following example I do have a valid french àlolé user :) :

(venvcrackmapexec)root@kali:~/Partage/CrackMapExec_fork# python crackmapexec.py <IP_ADDRESS> -u àlolé -p yoloswag1!
11-29-2015 14:42:54 [*] <IP_ADDRESS>:445 is running Windows 6.3 Build 9600 (name:DC01) (domain:ADYOLO)
Traceback (most recent call last):
  File "/root/venvcrackmapexec/local/lib/python2.7/site-packages/gevent/greenlet.py", line 327, in run
    result = self._run(*self.args, **self.kwargs)
  File "/mnt/hgfs/Partage/CrackMapExec_fork/core/maingreenlet.py", line 65, in connect
    smb = smart_login(host, smb, domain)
  File "/mnt/hgfs/Partage/CrackMapExec_fork/core/smartlogin.py", line 173, in smart_login
    print_succ(u"{}:{} Login successful {}\\{}:{}".format(host, settings.args.port, domain, user, passwd))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
<Greenlet at 0xb6820accL: connect('<IP_ADDRESS>')> failed with UnicodeDecodeError

In the following example I try to list the valid àéyoloshare share:

(venvcrackmapexec)root@kali:~/Partage/CrackMapExec_fork# python crackmapexec.py <IP_ADDRESS> -u administrator -p test123! --shares --list àéyoloshare
11-29-2015 14:48:24 [*] <IP_ADDRESS>:445 is running Windows 6.3 Build 9600 (name:DC01) (domain:ADYOLO)
11-29-2015 14:48:24 [+] <IP_ADDRESS>:445 Login successful ADYOLO\administrator:test123!
Traceback (most recent call last):
  File "/root/venvcrackmapexec/local/lib/python2.7/site-packages/gevent/greenlet.py", line 327, in run
    result = self._run(*self.args, **self.kwargs)
  File "/mnt/hgfs/Partage/CrackMapExec_fork/core/maingreenlet.py", line 78, in connect
    rfs.list()
  File "/mnt/hgfs/Partage/CrackMapExec_fork/core/remotefilesystem.py", line 71, in list
    dir_list = self.__smbconnection.listPath(settings.args.share, path)
  File "/root/venvcrackmapexec/local/lib/python2.7/site-packages/impacket/smbconnection.py", line 347, in listPath
    return self._SMBConnection.list_path(shareName, path, password)
  File "/root/venvcrackmapexec/local/lib/python2.7/site-packages/impacket/smb3.py", line 1372, in listPath
    fileId = self.create(treeId, ntpath.dirname(path), FILE_READ_ATTRIBUTES | FILE_READ_DATA ,FILE_SHARE_READ | FILE_SHARE_WRITE |FILE_SHARE_DELETE, FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, FILE_OPEN, 0)
  File "/root/venvcrackmapexec/local/lib/python2.7/site-packages/impacket/smb3.py", line 915, in create
    smb2Create['Buffer']               = fileName.encode('utf-16le')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
<Greenlet at 0xb6807accL: connect('<IP_ADDRESS>')> failed with UnicodeDecodeError

For the first bug I managed to fix it with user.decode('utf-8') so I guess you would need to UTF-8 decode each passed argument:
print_succ(u"{}:{} Login successful {}\\{}:{}".format(host, settings.args.port, domain, user.decode('utf-8'), passwd))

(venvcrackmapexec)root@kali:~/Partage/CrackMapExec_fork# python crackmapexec.py <IP_ADDRESS> -u àlolé -p yoloswag1!
11-29-2015 14:59:17 [*] <IP_ADDRESS>:445 is running Windows 6.3 Build 9600 (name:DC01) (domain:ADYOLO)
11-29-2015 14:59:17 [+] <IP_ADDRESS>:445 Login successful ADYOLO\àlolé:yoloswag1!

The encoding pain is surely close to its end.
EDIT: following that link, maybe that simple fix should be OK:
parser.add_argument("-u", metavar="USERNAME", dest='user', type=lambda s: unicode(s, 'utf8'), default=None, help="Username(s) or file containing usernames")

EDIT2: the error disappear but now a wrong username value is passed to the connection and fails. So UTF-8 decoding should only be done for printing.
Cheers.

@maaaaz yup, it should be converted to unicode only when printing, I'll take care of this today. Thanks!

@maaaaz this should be fixed, if not comment below

I confirm this is fixed.
Thanks!

But as I'm reviewing the Service Interaction module I can experience the same errors for service names, display etc. :
(venvcrackmapexec)root@kali:~/Partage/CrackMapExec# python ../CrackMapExec_fork/crackmapexec.py <IP_ADDRESS> -u administrator -p <password>  --service create --name àloléservice --display àloléservice --bin-path "C:\àloléservice.exe"
12-20-2015 17:02:44 [*] <IP_ADDRESS>:445 is running Windows 6.3 Build 9600 (name:DC01) (domain:ADYOLO)
12-20-2015 17:02:44 [+] <IP_ADDRESS>:445 Login successful ADYOLO\administrator:test124!
CRITICAL:root:'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)

I fixed these errors with the PR https://github.com/byt3bl33d3r/CrackMapExec/pull/62


edits in search.py

added a few missing docstrings, and standardised the quotation marks used from " " to """ """ wherever found.
made the code pep8 compatible by removing all flake8 warnings
fixed a bug in OnlineDFS incorrectly referencing the unbacktracked attribute.

The build seems to be failing. According to the instructions here, simply closing and reopening the PR should trigger a travis rebuild that doesn't fail.


[supbase_flutter 2.3.1] defaultToNull Parameter Not Working as Expected

supabase_flutter 2.3.1
Error when bulk inserting with the upsert method, and using the defaultToNull parameter to replace null values with default values.
Code:
Some data is redacted for privacy
final listOfChanges = [
{"primary_key": null, "uuid": "e8c192e3-c852-4702-b862-7f1d4a750ef0", "numeric": 50.0, "uuid2": "3c252820-97d4-4a7e-93c5-61547bdd397d"},
{"primary_key": null, "uuid": "e3cd1f29-678f-4823-8f71-3a670f89624e", "numeric": 50.0, "uuid2": "cb22b3b7-db5f-4d10-a052-6cc72a38b2db"}
]

await Supabase.instance.client
  .schema("[redacted]")
  .from("[redacted]")
  .upsert(listOfChanges,
    onConflict: "primary_key", defaultToNull: false);

Expected behavior
When bulk inserting data with defaultToNull false, Expected behavior is for the client/api to replace null values with default values. The primary_key is defaulted to gen_random_uuid()
Error
flutter: null value in column "primary_key" of relation "[redacted]" violates not-null constraint
I am running on MacOs Sonoma 14.1.1
├── supabase_flutter 2.3.1
│   ├── supabase 2.0.6
│   │   ├── functions_client 2.0.0
│   │   ├── gotrue 2.4.1
│   │   ├── postgrest 2.1.0
│   │   ├── realtime_client 2.0.0
│   │   ├── storage_client 2.0.0

Ive also tried running like this, with the primary key as null:
(I though maybe the client would act like a sql editor and without specifying the value, would replace it with default)
final listOfChanges = [
{"uuid": "e8c192e3-c852-4702-b862-7f1d4a750ef0", "numeric": 50.0, "uuid2": "3c252820-97d4-4a7e-93c5-61547bdd397d"},
{"uuid": "e3cd1f29-678f-4823-8f71-3a670f89624e", "numeric": 50.0, "uuid2": "cb22b3b7-db5f-4d10-a052-6cc72a38b2db"}
]

await Supabase.instance.client
  .schema("[redacted]")
  .from("[redacted]")
  .upsert(listOfChanges,
    onConflict: "primary_key", defaultToNull: false);

Error
The error produced from this code is:
flutter: UPDATE requires a WHERE clause

We could probably provide a better guide/ docs around how to use onConflict, but if you are specifying the column in onConflict, you need to pass a value for the column you specified.
There is a fine difference between the primary key being set to null and the primary keys not being specified.
In your first case, the primary key is set to null, which is invalid, as primary keys always have to have values.
In your second example, you are not passing the primary key, but are setting onConflict on primary key.
In order to do what you want to do, just use upsert() like this with the default options (without explicitly specifying any options), or add defaultToNull if you want your nullable columns to have non-null values, note that non-nullable columns will get their default values, so you won't have to worry about for example your primary key being null.
final listOfChanges = [
{"uuid": "e8c192e3-c852-4702-b862-7f1d4a750ef0", "numeric": 50.0, "uuid2": "3c252820-97d4-4a7e-93c5-61547bdd397d"},
{"uuid": "e3cd1f29-678f-4823-8f71-3a670f89624e", "numeric": 50.0, "uuid2": "cb22b3b7-db5f-4d10-a052-6cc72a38b2db"}
]

await Supabase.instance.client
  .schema("[redacted]")
  .from("[redacted]")
  .upsert(listOfChanges);

Thanks @dshukertjr for the reply :)
Unfortunately I get the same UPDATE requires a WHERE clause when using the advice you gave me. I tried some other advice from the JS client, which also yeilded the same results. https://github.com/orgs/supabase/discussions/6804
You said that having an onConflict parameter meant that you had to specify a value for it, although in the JS client it seems to be linked to a DO NOTHING. And looking in the code for the dart client, it seems to just change some search parameters/headers.
If you can explain the behavior of the parameter, I would gladly write some documentation for it.

Halfway through writing my comment I solved the issue. Thank you for your help, as I was going to check the query being run, I noticed that a trigger and a function with a malformed UPDATE clause, was causing the error messages.
Have a good one
-Meyer


WIP: Add a sample utilizing uCAM-III camera module

This PR includes a sample operating on 4D Systems uCAM-III camera module. Currently, I haven't found anaything similar in Zephyr, so I've decided to write the drivers in the scope of a sample.
There can be a discussion on how we can support camera modules. One though is to probably, integrate camera modules into the sensor API. Or maybe define a new API?
My tasks for this PR include:

[x] Take JPEG snapshots
[ ] Take RAW snapshots
[ ] Maybe shoot video, although it's not of main interest for me, for now

..and whatever comes out of discussion.

Codecov Report

Merging #14596 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #14596   +/-   ##
=======================================
  Coverage   51.96%   51.96%
=======================================
  Files         309      309
  Lines       45576    45576
  Branches    10554    10554
=======================================
  Hits        23683    23683
  Misses      17083    17083
  Partials     4810     4810

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 100287d...45c0de3. Read the comment docs.

There is a parallel PR proposing a camera API in https://github.com/zephyrproject-rtos/zephyr/pull/14666

Docs look OK, but can you explain where this code came from and if we have proper licensing?

I am the original author, and I want to offer it with the default Zephyr licence.

There is a parallel PR proposing a camera API in #14666

I've seen it. This PR is about interfacing with the 4d systems specific module. When I'm done, I'd be happy to offer an implementation to the proposing V4Zephyr API for this module.

@gon1332
As the quote from https://4dsystems.com.au/ucam-iii:
"The module uses a CMOS VGA colour sensor along with a JPEG compression chip."

What is the "CMOS VGA colour sensor"? Any information about this to provide?
What is the "JPEG compression chip"?
The Zephy is supposed to be running on your product, right? Or on host?

As the quote from https://4dsystems.com.au/ucam-iii:
"The module uses a CMOS VGA colour sensor along with a JPEG compression chip."

The Zephy is supposed to be running on your product, right? Or on host?

@JunYangNXP Zephyr is supposed to run on host, utilizing the camera module (which, BTW is a not our product).

What is the "CMOS VGA colour sensor"? Any information about this to provide?
What is the "JPEG compression chip"?
As I do not have experience with camera modules implementations, along with lack of technical papers from 4DSystems I cannot answer these.

@gon1332 , now that video 4 zephyr has been merged I wonder If you get any plan and have any time to adapt this driver.

@gon1332 , now that video 4 zephyr has been merged I wonder If you get any plan and have any time to adapt this driver.

I'll give it a try from this week.


Move Gatsby to docs repo

Description of the change
Moves the Gatsby code that generates our docs site into the Docs repository.
The docs team workflow will be affected in the following ways with this change.

MDX files and image assets are contained in the /docs directory instead of root.

Note: This is a quick and dirty migration. There will be refactoring required before this is optimized and user friendly after this is merged into main.

I am seeing the left navigation in my local build, but not on the netlify preview


fix(build): update nx to 9.4.0

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/datorama/akita/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[x] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the new behavior?
Update nx to 9.4.0 to fix https://github.com/nodejs/node/issues/32852 when building akita with node v12/v13.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

https://github.com/datorama/akita/runs/771327457?check_suite_focus=true

Probably the problem is that node_modules is cached: https://github.com/datorama/akita/runs/771322765?check_suite_focus=true#step:4:8

But it should invalidate it when yarn.lock changes.

It's just a guess by me, because the build action ran on my branch without any errors and nx is using  the node_modules/.cache folder for caching build targets.

Let's remove the cache and see if it works.

Released.


Fix initial sync

https://github.com/EugenMayer/docker-image-unison/commit/d679c55a74146617ac07e454560268f44ea0fc9f removed the initial sync breaking the container's ability to sync.
This re-adds it.

this is not needed and triggered by docker sync starting from 0.4.4-beta1, please upgrade ( i guess u did not )

beta2 would be your target

i repushed the old image on unison:hostsync and started to use verisoned images with 0.4.4 ( :hostsync_0.1)
So you can either say with 0.4.3 or upgrade to 0.4.4 ( encouraged tue to the initial sync "synchorinity" fix )

@EugenMayer thanks for the fix.

@EugenMayer I'm running into problems:
mwg-membership (develop) $ gem list | grep docker-sync
docker-sync (0.4.4.beta2)

mwg-membership (develop) $ docker images | grep eugenmayer/unison
eugenmayer/unison                  hostsync                          b1a0fd958baa        2 days ago          67.7MB
eugenmayer/unison                  hostsync_0.1                      150297cc0927        2 days ago          67.7MB

mwg-membership (develop) $ cat docker-sync.yml
version: "2"

options:
  compose-file-path: 'docker-compose.yml'
  compose-dev-file-path:
    - 'docker-compose.local.yml'
    - 'docker-compose.local.mac.yml'

syncs:
  membership-sync:
    src: './docroot'
    image: 'eugenmayer/unison:hostsync_0.1'
    sync_prefer: 'newer'
    sync_userid: '82'
    sync_strategy: 'native_osx'
    sync_excludes: ['.gitignore', '.git/']

The membership-sync container is then crashing:
mwg-membership (develop) $ docker logs membership-sync
no user has uid 82
Creating mailbox file: No such file or directory
/entrypoint.sh: ignoring /docker-entrypoint.d/*
/entrypoint.sh: line 77: /usr/loca/bin/precopy_appsync: No such file or directory
user with uid 82 already exist
usermod: no changes
/entrypoint.sh: ignoring /docker-entrypoint.d/*
/entrypoint.sh: line 77: /usr/loca/bin/precopy_appsync: No such file or directory

@EugenMayer looks like you need to rebuild and push eugenmayer/unison:hostsync_0.1 to Docker Hub.
I built off the latest commit from features/unison-hostsync and the container stopped crashing.
Log after compiling the image myself:
mwg-membership (develop) $ docker logs membership-sync
no user has uid 82
Creating mailbox file: No such file or directory
/entrypoint.sh: ignoring /docker-entrypoint.d/*
doing initial sync with cp
chown ing file to uid 82
real	0m 27.90s
user	0m 0.19s
sys	0m 2.66s
/usr/lib/python2.7/site-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
  'Supervisord is running as root and it is searching '
2017-05-09 12:52:01,889 CRIT Supervisor running as root (no user in config file)
2017-05-09 12:52:01,889 WARN Included extra file "/etc/supervisor.conf.d/supervisor.daemon.conf" during parsing
2017-05-09 12:52:01,902 INFO RPC interface 'supervisor' initialized
2017-05-09 12:52:01,902 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2017-05-09 12:52:01,902 INFO supervisord started with pid 1
2017-05-09 12:52:02,906 INFO spawned: 'unison' with pid 38
2017-05-09 12:52:03,926 INFO success: unison entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

docker build . -t eugenmayer/unison:hostsync_0.1

docker push eugenmayer/unison:hostsync_0.1
The push refers to a repository [docker.io/eugenmayer/unison]
8c1cde940d21: Layer already exists
6e79e53bd2b9: Layer already exists
86a540e0c5b4: Layer already exists
e53103eb9a62: Layer already exists
776b3c1a99e3: Layer already exists
f3a10508f0d3: Layer already exists
ff7d0c6cd736: Layer already exists
hostsync_0.1: digest: sha256:320469eba99070473e44a8c8f2c9dc991ae392a987efc36f8c9cef4155777553 size: 1777

does not do anything for me. Could your please upgrade to 0.4.4 and remove unison:hostsync* and start again, does it fix it?

@EugenMayer all set with 0.4.4 and no image defined. Thanks


Missing Notifications

GitHawk had 2 less notifications than I had on the web version 😞 I know we've had this in the past, but has anyone else experienced it recently?

Not experienced it recently. Were those on web notifications for code changes? I think these might be ignored / wrongly parsed on our side and slip through?

Yea commits in PRs, intriguing

Think this is a different issue than them not appearing until kill+relaunch, but definitely a bug we should fix.
Sent with GitHawk

I did kill + relaunch though 🤔 😞

I know - but that didn’t fix it right?
Sent with GitHawk

Nope, still didn't appear! #blameGitHubAPI

Exactly. Thing is - I don't think it's the fault of the GitHub API, but us. At least we get the notification count from GitHub...

See also here

Let's keep discussion in 121 then to follow this (didn't see that issue!)

@BasThomas Reason for re-open? Fix is in :)

Wait what where?!
Sent with GitHawk

Nvm, I see it now (#949)
Sent with GitHawk


Unit Tests comparison and prometheus package

Unit Tested go-commons comparison package
Description
Unit Tests for go-commons comparison were written using gomega and ginkgo packages, 100% coverage was achieved using mock implementation of functions. Similar approach for prometheus package resulted in 98% coverage
Testing
Each Test case is enclosed along with its assertions in the _test.go file. Below is a sample test case.
for comparison.go
It("Test1 error 404", func() {
			client.Search = func(o ...func(*esapi.SearchRequest)) (*esapi.Response, error) {
				var res *esapi.Response
				res = &esapi.Response{}
				res.StatusCode = 404
				body := ioutil.NopCloser(bytes.NewReader([]byte(`{"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [placeholder]","index":"placeholder","resource.id":"placeholder","resource.type":"index_or_alias","index_uuid":"_na_"}],"type":"index_not_found_exception","reason":"no such index [placeholder]","index":"placeholder","resource.id":"placeholder","resource.type":"index_or_alias","index_uuid":"_na_"},"status":404}`)))
				res.Body = body
				defer res.Body.Close()
				return res, nil
			}
			comparator = NewComparator(*client, "placeholder")
			_, err := comparator.queryStringStats(query, field)
			Expect(err).To(BeEquivalentTo(errors.New("404 Not Found index_not_found_exception no such index [placeholder]")))
		})

for prometheus.go
It("Test2 mock error to nil", func() {
			mockAPI := new(MockAPI)
			query := "your_query"
			start := time.Now()
			p := Prometheus{api: mockAPI}
			_, err := p.Query(query, start)
			Expect(err).To(BeNil())
		})

The below script can be used to test the package.
cd comparison
go get golang.org/x/tools/cmd/cover
go get github.com/onsi/ginkgo/v2
go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@latest
ginkgo -v -cover --coverprofile cover.out
go tool cover -html=cover.out

Output when Test suites are Run
for comparison.go
[sboyapal@sboyapal comparison]$ ginkgo -v -cover
Running Suite: Comparison Suite - /home/sboyapal/Documents/forkedCommons/go-commons/comparison
==============================================================================================
Random Seed:<PHONE_NUMBER>

Will run 11 of 11 specs
------------------------------
Tests for elastic.go Tests for NewComparator Test 1: Returns the expected comparator
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:39
• [0.000 seconds]
------------------------------
Tests for elastic.go Tests for queryStringStats() Test1 error 404
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:62
• [0.000 seconds]
------------------------------
Tests for elastic.go Tests for queryStringStats() Test2 no error
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:77
• [0.000 seconds]
------------------------------
Tests for elastic.go Tests for queryStringStats() Test3 not a valid link
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:84
• [0.224 seconds]
------------------------------
Tests for elastic.go Tests for queryStringStats() Test4 non parsable json
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:90
• [0.000 seconds]
------------------------------
Tests for elastic.go Tests for queryStringStats() Test5 non parsable json
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:105
• [0.000 seconds]
------------------------------
Tests for elastic.go Tests on Compare() Test1 no error
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:133
• [0.000 seconds]
------------------------------
Tests for elastic.go Tests on Compare() Test2 negative value
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:140
2023/07/03 09:32:37 with a tolerancy of 1%: -1.00 is +Inf% lower than baseline: 0.00
• [0.001 seconds]
------------------------------
Tests for elastic.go Tests on Compare() Test3 negative tolerance
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:148
2023/07/03 09:32:37 with a tolerancy of -1%: 1.00 is +Inf% higher than baseline: 0.00
• [0.000 seconds]
------------------------------
Tests for elastic.go Tests on Compare() Test4 negative tolerance
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:156
• [0.000 seconds]
------------------------------
Tests for elastic.go Tests on Compare() Test5 no error with sum stat
/home/sboyapal/Documents/forkedCommons/go-commons/comparison/elastic_test.go:163
• [0.199 seconds]
------------------------------

Ran 11 of 11 Specs in 0.426 seconds
SUCCESS! -- 11 Passed | 0 Failed | 0 Pending | 0 Skipped
PASS
        github.com/cloud-bulldozer/go-commons/comparison        coverage: 100.0% of statements
composite coverage: 100.0% of statements

Ginkgo ran 1 suite in 889.053038ms
Test Suite Passed

for prometheus.go
[sboyapal@sboyapal prometheus]$ ginkgo -v -cover
Running Suite: Prometheus Suite - /home/sboyapal/Documents/forkedCommons/go-commons/prometheus
==============================================================================================
Random Seed:<PHONE_NUMBER>

Will run 15 of 15 specs
------------------------------
Tests for Prometheus Tests for RoundTrip() Test1 for default behaviour
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:24
• [0.145 seconds]
------------------------------
Tests for Prometheus Tests for NewClient() Test1 empty parameters
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:39
• [0.000 seconds]
------------------------------
Tests for Prometheus Tests for NewClient() Test2 passing not valid url
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:44
• [0.000 seconds]
------------------------------
Tests for Prometheus Tests for Query() Test1 empty url
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:60
• [0.000 seconds]
------------------------------
Tests for Prometheus Tests for Query() Test2 mock error to nil
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:65
• [0.000 seconds]
------------------------------
Tests for Prometheus Tests for QueryRange() Test1 empty url
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:83
• [0.000 seconds]
------------------------------
Tests for Prometheus Test for QueryRangeAggregatedTS Test1 queryRange error
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:107
• [0.000 seconds]
------------------------------
Tests for Prometheus Test for QueryRangeAggregatedTS Test2 for Avg
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:113
• [0.000 seconds]
------------------------------
Tests for Prometheus Test for QueryRangeAggregatedTS Test3 error when v not in matrix
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:118
• [0.000 seconds]
------------------------------
Tests for Prometheus Test for QueryRangeAggregatedTS Test4 for Min
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:124
• [0.000 seconds]
------------------------------
Tests for Prometheus Test for QueryRangeAggregatedTS Test5 for Max
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:129
• [0.000 seconds]
------------------------------
Tests for Prometheus Test for QueryRangeAggregatedTS Test6 for Stdev
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:134
• [0.000 seconds]
------------------------------
Tests for Prometheus Test for QueryRangeAggregatedTS Test7 for P50 etc.
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:139
• [0.000 seconds]
------------------------------
Tests for Prometheus Test for QueryRangeAggregatedTS Test6 no standard aggregator
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:144
• [0.000 seconds]
------------------------------
Tests for Prometheus Tests for verifyConnection() Test1 mock to no nil
/home/sboyapal/Documents/forkedCommons/go-commons/prometheus/prometheus_test.go:157
• [0.000 seconds]
------------------------------

Ran 15 of 15 Specs in 0.147 seconds
SUCCESS! -- 15 Passed | 0 Failed | 0 Pending | 0 Skipped
PASS
        github.com/cloud-bulldozer/go-commons/prometheus        coverage: 98.0% of statements
composite coverage: 98.0% of statements

Ginkgo ran 1 suite in 550.736551ms
Test Suite Passed

Similar behaviour of local.go where previous test had some effect on next test was seen in prometheus package. This is fixed ad hope it wont raise any issues.


.progress-meter should use $progress-radius instead of $global-radius

in _progress-bar.scss line22. Using $global-radius result in odd appearance of progress bar.
How to reproduce this bug:

Set $global-radius = 0
Set $progress-radius = .5rem
Make a progress bar on html

What should happen:
beautiful border-radius appears
What happened instead:
odd square with round progress bar appeared
Browser(s) and Device(s) tested on:
Chrome
Foundation Version(s) you are using:
6.3.1

Sounds like it should be changed - can you submit a Pull Request for this and we'll merge it in


Launch gulp-express with array syntax.

Was getting this error when running serve. This seems to fix it for me... might I have got the wrong version of something?
module.js:340
throw err;

^

Error: Cannot find module '/home/jedediah/projects/pundit/app.js'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

Curious. I know that I left the serve task in a fragile state. I'll take a look at this soon.

Replaced by 1492a7accb6123ad74866e87a6b0f589a9e9cace.


5.1.3: 5 tests failed for gfx1031, comparison error exceeds 5 * tolerance

What is the expected behavior

All tests pass for Radeon RX 6700 XT (gfx1031)

What actually happens

There are 5 errors occur:

The difference between std::imag(A[i + j * LDA]) and std::imag(B[i + j * LDB]) is 5.245208740234375e-06, which exceeds std::imag(compare_val), where
std::imag(A[i + j * LDA]) evaluates to -0.0008339185151271522,
std::imag(B[i + j * LDB]) evaluates to -0.00082867330638691783, and
std::imag(compare_val) evaluates to 1.1920928955078125e-06.
[  FAILED  ] nightly/gebsrmv.level2/f32_c_193482_340123_2_0_0p67_1p5_row_1_8_NT_1b_rand, where GetParam() = { function: "gebsrmv", index_type_I: "i32", index_type_J: "i32", compute_type: "f32_c", transA: "NT", transB: "NT", baseA: "1b", baseB: "0b", baseC: "0b", baseD: "0b", M: 193482, N: 340123, K: -1, nnz: -1, block_dim: 2, row_block_dimA: 1, col_block_dimA: 8, row_block_dimB: 2, col_block_dimB: 2, dim_x: 0, dim_y: 0, dim_z: 0, alpha: 2.0, alphai: 0.0, beta: 0.67000000000000004, betai: 1.5, threshold: 1.0, percentage: 0.0, action: "num", part: "auto", matrix_type: "general", diag: "ND", uplo: "L", storage: "sorted", analysis_policy: "reuse", solve_policy: "auto", direction: "row", order: "col", format: "coo", sddmm_alg: "default", spmv_alg: "default", spsv_alg: "default", spsm_alg: "default", spmm_alg: "default", spgemm_alg: "default", sparse_to_dense_alg: "default", dense_to_sparse_alg: "default", gtsv_interleaved_alg: "default", gpsv_interleaved_alg: "default", matrix: "rand", matrix_init_kind: "default", file: "*", algo: 0, numeric_boost: 0, boost_tol: 0.0, boost_val: 1.0, boost_vali: 0.0, tolm: 1.0, name: "gebsrmv", category: "nightly", unit_check: 1, timing: 0, iters: 10, denseld: -1, batch_count: -1, batch_stride: -1 }

The difference between std::real(A[i + j * LDA]) and std::real(B[i + j * LDB]) is 5.7220458984375e-06, which exceeds std::real(compare_val), where
std::real(A[i + j * LDA]) evaluates to -0.00074288249015808105,
std::real(B[i + j * LDB]) evaluates to -0.00073716044425964355, and
std::real(compare_val) evaluates to 1.1920928955078125e-06.
/ext4-disk/build-vanilla/portage/sci-libs/rocSPARSE-5.1.3/work/rocSPARSE-rocm-5.1.3/clients/common/rocsparse_check.cpp:284: Failure
The difference between std::real(A[i + j * LDA]) and std::real(B[i + j * LDB]) is 5.7220458984375e-06, which exceeds std::real(compare_val), where
std::real(A[i + j * LDA]) evaluates to -0.00074288249015808105,
std::real(B[i + j * LDB]) evaluates to -0.00073716044425964355, and
std::real(compare_val) evaluates to 1.1920928955078125e-06.
[  FAILED  ] nightly/gebsrmv.level2/f32_c_193482_340123_2_0_0p67_1p5_row_11_8_NT_1b_rand, where GetParam() = { function: "gebsrmv", index_type_I: "i32", index_type_J: "i32", compute_type: "f32_c", transA: "NT", transB: "NT", baseA: "1b", baseB: "0b", baseC: "0b", baseD: "0b", M: 193482, N: 340123, K: -1, nnz: -1, block_dim: 2, row_block_dimA: 11, col_block_dimA: 8, row_block_dimB: 2, col_block_dimB: 2, dim_x: 0, dim_y: 0, dim_z: 0, alpha: 2.0, alphai: 0.0, beta: 0.67000000000000004, betai: 1.5, threshold: 1.0, percentage: 0.0, action: "num", part: "auto", matrix_type: "general", diag: "ND", uplo: "L", storage: "sorted", analysis_policy: "reuse", solve_policy: "auto", direction: "row", order: "col", format: "coo", sddmm_alg: "default", spmv_alg: "default", spsv_alg: "default", spsm_alg: "default", spmm_alg: "default", spgemm_alg: "default", sparse_to_dense_alg: "default", dense_to_sparse_alg: "default", gtsv_interleaved_alg: "default", gpsv_interleaved_alg: "default", matrix: "rand", matrix_init_kind: "default", file: "*", algo: 0, numeric_boost: 0, boost_tol: 0.0, boost_val: 1.0, boost_vali: 0.0, tolm: 1.0, name: "gebsrmv", category: "nightly", unit_check: 1, timing: 0, iters: 10, denseld: -1, batch_count: -1, batch_stride: -1 }

The difference between std::real(A[i + j * LDA]) and std::real(B[i + j * LDB]) is 6.198883056640625e-06, which exceeds std::real(compare_val), where
std::real(A[i + j * LDA]) evaluates to -0.00057590007781982422,
std::real(B[i + j * LDB]) evaluates to -0.00056970119476318359, and
std::real(compare_val) evaluates to 1.1920928955078125e-06.
/ext4-disk/build-vanilla/portage/sci-libs/rocSPARSE-5.1.3/work/rocSPARSE-rocm-5.1.3/clients/common/rocsparse_check.cpp:284: Failure
The difference between std::real(A[i + j * LDA]) and std::real(B[i + j * LDB]) is 6.198883056640625e-06, which exceeds std::real(compare_val), where
std::real(A[i + j * LDA]) evaluates to -0.00057590007781982422,
std::real(B[i + j * LDB]) evaluates to -0.00056970119476318359, and
std::real(compare_val) evaluates to 1.1920928955078125e-06.
[  FAILED  ] nightly/gebsrmv.level2/f32_c_193482_340123_2_0_0p67_1p5_row_20_8_NT_1b_rand, where GetParam() = { function: "gebsrmv", index_type_I: "i32", index_type_J: "i32", compute_type: "f32_c", transA: "NT", transB: "NT", baseA: "1b", ba
seB: "0b", baseC: "0b", baseD: "0b", M: 193482, N: 340123, K: -1, nnz: -1, block_dim: 2, row_block_dimA: 20, col_block_dimA: 8, row_block_dimB: 2, col_block_dimB: 2, dim_x: 0, dim_y: 0, dim_z: 0, alpha: 2.0, alphai: 0.0, beta: 0.67000000000000004, betai: 1.5, threshold: 1.0, percentage: 0.0, action: "num", part: "auto", matrix_type: "general", diag: "ND", uplo: "L", storage: "sorted", analysis_policy: "reuse", solve_policy: "auto", direction: "row", order: "col", format: "coo", sddmm_alg: "default", spmv_alg: "default", spsv_alg: "default", spsm_alg: "default", spmm_alg: "default", spgemm_alg: "default", sparse_to_dense_alg: "default", dense_to_sparse_alg: "default", gtsv_interleaved_alg: "default", gpsv_interl
eaved_alg: "default", matrix: "rand", matrix_init_kind: "default", file: "*", algo: 0, numeric_boost: 0, boost_tol: 0.0, boost_val: 1.0, boost_vali: 0.0, tolm: 1.0, name: "gebsrmv", category: "nightly", unit_check: 1, timing: 0, iters: 10, denseld: -1, batch_count: -1, batch_stride: -1 }

The difference between A[i + j * LDA] and B[i + j * LDB] is 5.6624412536621094e-06, which exceeds compare_val, where
A[i + j * LDA] evaluates to -0.001365363597869873,
B[i + j * LDB] evaluates to -0.0013597011566162109, and
compare_val evaluates to 1.3653636870003538e-06.
WARNING near_check has been permissive with a tolerance multiplier equal to 3
[  FAILED  ] nightly/csrgemm.extra/f32_r_12942__3_0_n99_0_NT_NT_0b_0b_0b_0b_csr_bibd_22_8, where GetParam() = { function: "csrgemm", index_type_I: "i32", index_type_J: "i32", compute_type: "f32_r", transA: "NT", transB: "NT", baseA: "0b", baseB: "0b", baseC: "0b", baseD: "0b", M: 1, N: 12942, K: 1, nnz: -1, block_dim: 2, row_block_dimA: 2, col_block_dimA: 2, row_block_dimB: 2, col_block_dimB: 2, dim_x: 0, dim_y: 0, dim_z: 0, alpha: 3.0, alphai: 0.0, beta: -99.0, betai: 0.0, threshold: 1.0, percentage: 0.0, action: "num", part: "auto", matrix_type: "general", diag: "ND", uplo: "L", storage: "sorted", analysis_policy: "reuse", solve_policy: "auto", direction: "row", order: "col", format: "coo", sddmm_alg: "default", spmv_alg: "default", spsv_alg: "default", spsm_alg: "default", spmm_alg: "default", spgemm_alg: "default", sparse_to_dense_alg: "default", dense_to_sparse_alg: "default", gtsv_interleaved_alg: "default", gpsv_interleaved_alg: "default", matrix: "csr", matrix_init_kind: "default", file: "bibd_22_8", algo: 0, numeric_boost: 0, boost_tol: 0.0, boost_val: 1.0, boost_vali: 0.0, tolm: 1.0, name: "csrgemm_mult_file", category: "nightly", unit_check: 1, timing: 0, iters: 10, denseld: -1, batch_count: -1, batch_stride: -1 }

The difference between A[i + j * LDA] and B[i + j * LDB] is 5.9008598327636719e-06, which exceeds compare_val, where
A[i + j * LDA] evaluates to -0.001365363597869873,
B[i + j * LDB] evaluates to -0.0013594627380371094, and
compare_val evaluates to 1.3653636870003538e-06.
[  FAILED  ] nightly/csrgemm_reuse.extra/f32_r_12942__3_0_n99_0_NT_NT_0b_0b_0b_0b_csr_bibd_22_8, where GetParam() = { function: "csrgemm_reuse", index_type_I: "i32", index_type_J: "i32", compute_type: "f32_r", transA: "NT", transB: "NT", baseA: "0b", baseB: "0b", baseC: "0b", baseD: "0b", M: 1, N: 12942, K: 1, nnz: -1, block_dim: 2, row_block_dimA: 2, col_block_dimA: 2, row_block_dimB: 2, col_block_dimB: 2, dim_x: 0, dim_y: 0, dim_z: 0, alpha: 3.0, alphai: 0.0, beta: -99.0, betai: 0.0, threshold: 1.0, percentage: 0.0, action: "num", part: "auto", matrix_type: "general", diag: "ND", uplo: "L", storage: "sorted", analysis_policy: "reuse", solve_policy: "auto", direction: "row", order: "col", format: "coo", sddmm_alg: "default", spmv_alg: "default", spsv_alg: "default", spsm_alg: "default", spmm_alg: "default", spgemm_alg: "default", sparse_to_dense_alg: "default", dense_to_sparse_alg: "default", gtsv_interleaved_alg: "default", gpsv_interleaved_alg: "default", matrix: "csr", matrix_init_kind: "default", file: "bibd_22_8", algo: 0, numeric_boost: 0, boost_tol: 0.0, boost_val: 1.0, boost_vali: 0.0, tolm: 1.0, name: "csrgemm_reuse_mult_file", category: "nightly", unit_check: 1, timing: 0, iters: 10, denseld: -1, batch_count: -1, batch_stride: -1 }

How to reproduce
Compile rocSPARSE with -DAMDGPU_TARGETS=gfx1031 and run rocsparse-test on Radeon 6700xt
Environment
I am packaging rocSPARSE-rocm-5.1.3 for Gentoo, the ebuild is located at https://github.com/littlewu2508/gentoo/blob/rocm-5.1.3/sci-libs/rocSPARSE/rocSPARSE-5.1.3.ebuild.

Hardware
description

GPU
AMD Radeon RX 6700 XT

CPU
AMD Ryzen 9 5950X 16-Core Processor

Software
version

ROCK
Linux 5.18.10

ROCR
rocm-5.1.3

LLVM/Clang
14.0.6

HIP
rocm-5.1.3

rocPRIM
rocm-5.1.3, all tests passed

rocSPARSE
rocm-5.1.3

Full test log:
test.log.gz

Also, I there are warnings about exceeding tolerance on gfx1031:

720 exceeds *2
161exceeds *3
29 exceeds *4

Warnings are expected, as e.g. host / device (parallel) accumulation order is different and thus rounding errors change. This especially happens with fp32. Furthermore, gfx10xx differs from gfx9xx due to different number of wavefronts (and again different accumulation order).
The failing tests on gfx1031 happen for the same reason, you should not worry about them.

due

So maybe the tolerance should be increased?

You will always find input (matrices) that fail the given tolerance.
Currently we have no plans to increase the tolerance as we do not officially support gfx1031.

You will always find input (matrices) that fail the given tolerance.

Sorry, but I don't understand this statement -- the rounding errors must have a upper limit, so if the tolerance is large enough, then it will not be exceeded by 5 times.

Currently we have no plans to increase the tolerance as we do not officially support gfx1031.

Yes, I know gfx1031 is not officially supported. However, It's not a bad thing to try, and report the issue, I suggest.

All I am saying is that rounding errors from accumulation depend on the input when accumulation order is changed.
When we increase the tolerance because of this specific input, we might not see a real failure from other input because the tolerance is just too large. Currently, the tolerance works for our officially supported devices, and thus we prefer to not soften it.
In any case, we are very thankful for reported issues, even on unsupported hardware.

All I am saying is that rounding errors from accumulation depend on the input when accumulation order is changed. When we increase the tolerance because of this specific input, we might not see a real failure from other input because the tolerance is just too large. Currently, the tolerance works for our officially supported devices, and thus we prefer to not soften it.

OK, I see -- errors are problem specific but tolerance are not.

The tolerance applies for this specific subroutine (gebsrmv). We cannot differentiate it for each input.


Update base docker image

The next release is there and we have to update.

:+1:

:+1:

:+1:

:+1:

👍

👍


Replace sw-precache to sw-toolbox

Page Affected
What needs to be done?
Replace sw-precache to sw-toolbox

can I solve this issue


Update sbt-scoverage to 2.0.8

About this PR
📦 Updates org.scoverage:sbt-scoverage from 2.0.7 to 2.0.8
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scoverage", artifactId = "sbt-scoverage" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scoverage", artifactId = "sbt-scoverage" }
}]

labels: sbt-plugin-update, early-semver-patch, semver-spec-patch, commit-count:1

Codecov Report

Merging #277 (70c21cc) into main (ce2911b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #277   +/-   ##
=======================================
  Coverage   70.00%   70.00%
=======================================
  Files           4        4
  Lines          80       80
  Branches       10       11    +1
=======================================
  Hits           56       56
  Misses         24       24

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


P-local/M-local storage for goroutines?

$ go version
go version go1.12.4 linux/amd64

I am trying to implement an LRU cache. Several global lru lists could be accessed concurrently by multiple goroutines, which could be a disaster in a machine with 24 or more cores.
Therefore, it would be great if I can add the item to P-local/M-local storage and flush the batched item into the lru list as a whole. This should greatly reduce the potential contention for the global lru list.
How can I do it? I saw some related issues, #8281 and #21355, which leads me to a project called gls, but the code seems too much to integrate into my project (actually I'd better not include any third-party package to avoid potential law issues). Is there any built-in way to achieve this?
Thanks

See also #18802.
I'm not sure quite what you are proposing.  If you are just asking a question, you will almost certainly get better answers in a forum; see https://golang.org/wiki/Questions.
If you are suggesting a language or runtime package change, can you clarify what you are looking for?  It is extremely unlikely that Go will ever add general purpose per-P or per-M storage.  But it could conceivably be added in the context of a general purpose mechanism, as discussed in #18802.

Thanks for the link. I am just asking a question, and I have already posted a thread in the forum. My use case is to reclaim certain range of memory, which will be stored in the LRU list.
After looking at #18802 , I guess I am looking for the variant of sync.Pool. I would like to store and get objects into per-P storage, and be able to flush them before they are GC-ed.

This is being discussed on golang-nuts, so closing this issue.


Rename symbol is not working in template literal type

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

VS Code Version:  1.67.1
OS Version: macOs 11.6 (20G165)

❌ Doesn't work like this:
type Prefix = 'NICE';
type Suffix = 'WORK'

const myName: `${Prefix}${Suffix}` = 'NICEWORK';

Select 'NICE' text, use 'rename symbol' action
myName won't change

But if the template literal doesn't combined any other symbols, it works fine✅:
type Prefix = 'NICE';

const myName: `${Prefix}` = 'NICE';

Select 'NICE' text, use 'rename symbol' action
myName will change.

This isn’t possible in general. As soon as you get more complex cases, it falls apart:
type A = "A"; // <- rename
type AA = "AA";

const str: `${A | AA}${A | AA}${A | ""}` = "AAA"; // <- ???

It’s not clear to me how much we should attempt to edit parts of string literals, if at all.

Note that ${Prefix} eagerly simplifies to Prefix which is why that example works.


[Feature Request] Expand Biography Section

Allow for the Biography section / page to expand in order to show more content. Similar to how the "front" of the character sheet expands when there is more content added.

So this one is a bit tricky. This was actually the original way I tried to implement the feature, the whole bio would just display as columns like the rest of the statblock. The problem is, the bio is edited using the rich text TinyMCE editor. There isn't a way to make the editor display in a reasonable way, so there was some incredibly janky UI if you clicked edit.
I tried a number of things, but in the end the only good option that allowed the UI to be consistent was what we have now. Plus, bios can be very long and as columns on the sheet, this can result in a window that's too big to use - something has to scroll, but scrolling totally messes up the way the rest of the sheet layout works.
So in the end, the only thing that worked in a way that didn't basically suck, was what I have implemented now. It's sadly not as pretty as I would like, but it functions as needed and doesn't result in bizarre UI behavior.

So this one is a bit tricky. This was actually the original way I tried to implement the feature, the whole bio would just display as columns like the rest of the statblock. The problem is, the bio is edited using the rich text TinyMCE editor. There isn't a way to make the editor display in a reasonable way, so there was some incredibly janky UI if you clicked edit.
I tried a number of things, but in the end the only good option that allowed the UI to be consistent was what we have now. Plus, bios can be very long and as columns on the sheet, this can result in a window that's too big to use - something has to scroll, but scrolling totally messes up the way the rest of the sheet layout works.
So in the end, the only thing that worked in a way that didn't basically suck, was what I have implemented now. It's sadly not as pretty as I would like, but it functions as needed and doesn't result in bizarre UI behavior.


Button press doesn't fire when button is embedded in custom header of dialog

When a button is embedded in a custom header section of a dialog, it's "press" event doesn't seem to get fired.
Tested with version 1.30.8.

Could you please provide some more information? See https://github.com/SAP/openui5/blob/master/CONTRIBUTING.md#requirements-for-a-bug-report
I am not sure if I got you right, but this seems to work in here:
http://jsbin.com/tamuxi/1/

Hi Matthias,
It seems to be dependent on the "draggable" property of the dialog. Once you set it to true, the press event of the button doesn't come through anymore: http://output.jsbin.com/pamezazila
Cheers,
Jan

Oh, thanks. That makes sense. We will have a look into it.
Tracked internally as<PHONE_NUMBER>.

Hi,
we looked into this issue a provided a fix which should be available with the next patches for open ui5.
Regards,
Marin

Great news. Thank you Marin!

master dcd3eb1e44e4fdd3846503dd02a96e79a9109e7d, rel-1.30 e614eed76c0e6146effbe24fe74e3856f86780f1, rel-1.32 (pending)


PSF Script with arguments including variablized username can fail if username has a space.

The JSON entries for scripting allow for a single "argument list" to be enclosed in quotes.
I have seen an issue where one of the arguments was a variable but referenced the user name (profile path) and failed for a user with username that included a space because the command interpreted it as "argu ment list" rather than "'argu ment' 'list'".
This might suggest the need to update the Json structure for the argument, or improved guidance on creating the scripts.

Hi Tim,
Thank you for pointing this out. This will be resolved in the next release of PSF.

This issue is resolved from release PSF release : version 1.0.220926.1. Please re-open the issue if it still does not help.


README.md missing instructions on installing R tutorial dependencies

It appears as though the instructions here:
https://github.com/datalayer/datalayer-zeppelin#get-the-image-from-the-docker-repository
Are not sufficient to run the R Tutorial when the container is up. Additional work is required:
docker run -it -p 2222:22 -p 8080:8080 -p 4040:4040 datalayer/zeppelin-rscala
docker exec -it $(docker ps -lq) bash
yum -y install libcurl-devel openssl-devel
R -e "install.packages(c('devtools','mplot', 'googleVis'), repos = 'http://cran.us.r-project.org'); require(devtools); install_github('ramnathv/rCharts')"

I have verified that the above works for the latest datalayer/zeppelin-rscala docker image.

Thanks @echarles! You may also want to fix https://github.com/datalayer/datalayer-zeppelin#prerequisite   as one of the instructions is missing quotes:
R -e install.packages('knitr', repos = 'http://cran.us.r-project.org')

@btiernay Thx for contributing. I have just pushed a new docker image with the latest changes on https://hub.docker.com/r/datalayer/zeppelin-rscala/


Universal build uses x64 on M1 mac

Testing #114974

download latest insiders
start
first start takes a very long time
VS Code running x64, not ARM

This is maybe because it was running both variants of that machine already?

This is maybe because it was running both variants of that machine already?

Was this after quitting all running instances of the app ? It will not pick up correct architecture if there is already a running instance for a particular architecture.

Was this after quitting all running instances of the app ? It will not pick up correct architecture if there is already a running instance for a particular architecture.

Yeah, all instances quit and uninstalled

Yeah, all instances quit and uninstalled

Can you open the Info.plist file under Visual Studio Insiders.app/Contents and add the following value https://developer.apple.com/documentation/bundleresources/information_property_list/lsarchitecturepriority with arm64 as the first value in the array followed by x86_64

Can you open the Info.plist file under Visual Studio Insiders.app/Contents and add the following value https://developer.apple.com/documentation/bundleresources/information_property_list/lsarchitecturepriority with arm64 as the first value in the array followed by x86_64

If it still doesn't pick up the correct architecture after the above, can you also add the boolean https://developer.apple.com/documentation/bundleresources/information_property_list/lsrequiresnativeexecution set to true

If it still doesn't pick up the correct architecture after the above, can you also add the boolean https://developer.apple.com/documentation/bundleresources/information_property_list/lsrequiresnativeexecution set to true

Downloading fresh from the website and the file command shows this
jrieken@joh-13m1 Code % file ~/Downloads/Visual\ Studio\ Code\ -\ Insiders.app/Contents/MacOS/Electron
/Users/jrieken/Downloads/Visual Studio Code - Insiders.app/Contents/MacOS/Electron: Mach-O 64-bit executable x86_64
jrieken@joh-13m1 Code %

Downloading fresh from the website and the file command shows this
jrieken@joh-13m1 Code % file ~/Downloads/Visual\ Studio\ Code\ -\ Insiders.app/Contents/MacOS/Electron
/Users/jrieken/Downloads/Visual Studio Code - Insiders.app/Contents/MacOS/Electron: Mach-O 64-bit executable x86_64
jrieken@joh-13m1 Code %

@jrieken was it downloaded from https://az764295.vo.msecnd.net/insider/7b0cfdd04ad530a9c8d782c618afd79290be3d64/VSCode-darwin-universal.zip ?
I see the file has universal binaries.

@jrieken was it downloaded from https://az764295.vo.msecnd.net/insider/7b0cfdd04ad530a9c8d782c618afd79290be3d64/VSCode-darwin-universal.zip ?
I see the file has universal binaries.

downloaded from here: https://code.visualstudio.com/insiders/.

downloaded from here: https://code.visualstudio.com/insiders/.

Ah the website has not been updated yet to pull in unviersal https://github.com/microsoft/vscode-website/pull/924 , will be updated for the release. For testing you can download from the builds page.

Ah the website has not been updated yet to pull in unviersal https://github.com/microsoft/vscode-website/pull/924 , will be updated for the release. For testing you can download from the builds page.

🤦 that explains it

🤦 that explains it


A crate for Gesture events.

It'd be nice to have a crate for translating Touch events into Gesture events (i.e. pinching, multi-finger swiping, etc). Gestures are often nice for zooming / navigating GUI's etc.
We might need to add a Touch event first though - i'm not sure if we have one yet or not? If not, there's a nice example of Touch events in glutin (see here).

I opened https://github.com/PistonDevelopers/piston/issues/974.
Suggestion for name: piston-gesture?
Could be part of this repo and reexported under the piston crate.

The SDL2 window backend now supports touch gestures, so it is now possible to start working on a gesture library.


Overlapping visible UI elements: handle detection and events in the correct order

When multiple visible UI elements overlap, process mouse detection and event handling in the correct order so the top element receives events and detection as expected. Fixes #609.

it turns out i didn't check closely enough. this also changes the draw order, and could possibly break a lot of stuff for a lot of people.. not a good idea.


Port neo-gui

Ready to review.

The GUI Forms, are just a copy of neo-gui?

Yes. But I also removed some obsolete features. No new feature has been added.

neo-gui repository will be removed.

The latest neo master branch is not compatible to the old testnet. (And will never be compatible to it until the new testnet launched.) If you want to test it (and all other PRs), you must test it in a private net built by yourself.

Is anyone reviewing it?

I am, give me one day more please

Hi @erikzhang , I reviewed it already, but it is not possible to properly test because it is not possible to deploy any network. We need to fix this ASAP.
According to @belane, the root cause was this PR: https://github.com/neo-project/neo/pull/1249.
I already asked people for a current working configuration, but nobody has it and those who tried informed me that the current code is broken.

@lock9 We need #491 first.

Great, I will check that. Thanks

I just saw the PR now, @erikzhang.
I had a filter for neo-gui, since never used it.
However, this look a good innitiave and nice name for the project. We support neo-node and you did a good choice.


support for resize

Hi,
Can you fork svg.resize.js and implement your touch events and create a pull request? ^^
Regards

you know that you are talking to the same person here? :D

lol I thought it was other dev contribution! (so many repositories xD)
So in this case, can you help?

nope - but feel free to try it yourself :D

Well soon or later I'll will have to.. I'm in the search of an svg lib that could be used on mobile, I like yours but I saw only one pull request for drag with touch. That's why I asked.


Proxy is stripping cache headers

This is a really awesome project; thanks for creating!
Currently the proxy strategy results in stripping Vite dev server response headers. Vite uses caching/etags heavily to boost page load performance, and so there is quite a hit in performance with the headers missing(1.2s vs 150ms in my current app). Without the headers Chrome re-fetches all the source files on page load, and the V8 compilation cache is never used.
For now I'm pointing the scripts in index.html directly to the Vite server, and have the origin configured so it serves assets pointing back to itself. This appears to be working fine for now and is resulting in properly cached assets.
I'm wondering if something like YARP could help wrangle some of the proxy logic.

@ProTip could you go into more detail how you've set up the index.html file and origin to make this work?


Update README.md

Changes in this pull request
Update link of Ryan Nystrom's talk at try! Swift NYC.
Checklist

[x] All tests pass. Demo project builds and runs.
[x] I added tests, an experiment, or detailed why my change isn't tested.
[x] I added an entry to the CHANGELOG.md for any breaking changes, enhancements, or bug fixes.
[x] I have reviewed the contributing guide

Amazing – thanks for doing this @dirtmelon !


feat: print available accounts on startup

#39  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @jakim929 and the rest of your teammates on  Graphite


Fix hipcc exit code when failing

This patch deals with the issue where failed compilations returned a success (exit code 0). Instead we should forward what the compiler returns.

@mangupta can this PR somehow find the way into the next ROCm release. The wrong return code makes developer the life very hard because CMake is not seeing errors and the ROCm linker is very relaxed and creates binaries even if the device side compile fails.

@psychocoderHPC Yes this should be in the upcoming ROCm 2.6 release.


examples/entity throws error when logging state

TypeError: contentState.getBlockMap is thrown when clicking on "Log State" in the entity example.

Merged #11 to repair this.


[WIP] [ConstraintSystem] Track conformance checking done while solving

Track outcomes of conformsToProtocol calls in simplifyConformanceConstraints
to be able to validate conformances when solution is formed to avoid returning
solutions with nominal types with invalid conformances to protocols.

@DougGregor Can you please take a look and let me know if that something close to what you had in mind?
One thing I'm not sure about is why wouldn't stdlib build with this change, that's what it reports as an error:
/Users/xedin/work/swift/swift/stdlib/public/core/StringUnicodeScalarView.swift:397:47: error: type 'LazySequence<S>' does not conform to protocol 'LazySequenceProtocol'
    _core.append(contentsOf: newElements.lazy.flatMap { $0.utf16 })
                                              ^

And I have no clue why LazySequence<S> is marked as invalid when conforming to LazySequenceProtocol...

I've resurrected most of this code in https://github.com/apple/swift/pull/10292, to solve the issue of incomplete conformances showing up in later stages in the pipeline.


Use of dr-elephant on Azure HDInsight

Hi,
I'm trying to install and run dr-elephant on an Azure cluster HDInsight .
I completed the install and i tryed to run it but the port 8080 is already taken by Ambari.
I tryed to run it on 8081 but it's inaccesible from the outside so i can't reach the website from my browser. We can't change open ports on the HDInsight easily, it's really painfull and hard.
Is there an other solution to run it without opening new ports or stopping Ambari?
Is dr-Elephant inadvisable for an Azure HDInsight cluster?
Regards

@PHippolyte you need a dedicated port listening for Dr.Elephant. The answer to your question is that you can configure another port to use in Dr.Elephant but that port should be open for the client from you want to access Dr.Elephant's UI or REST APIs.


Enable debug logging for Python and PS samples

The SingleOperationTriggerTest has been failing intermittently for Python and PS. Temporarily enabling debug logs to help with investigation.

The test failed for JS in the last PR pipeline run so enabling debug logs for JS too.


Improve DecompilerDataTypeReferenceFinder

Current implementation of DecompilerDataTypeReferenceFinder doesn't consider type order found in buildTypeLineage... so if you need to find reference of datatype you wanted to, you become bored while having to sit until every function is decompiled. this shouldn't happen.
So, proposed change modifies HashSet to LinkedHashSet to preserve insertion order of `types'.
and filterFunctions returns Collection instead of Set
And this change increases java version requirement to 1.8 although i don't know target version of `ghidra sre'.
Please have a look on this patch.
0001-210429.txt
.
Thank you.

There seems to be some misunderstanding about how this API currently works.

All applied data types are searched before the decompiler is used.  This means that the table of results will show information before any functions are decompiled.
The loading of the table is done on the fly.  As results are found, the table is updated.  This means that you do not have to wait for all functions to be decompiled before you can see and use the results.
The finder does not decompile every function.  It filters out those that do not return or take in the requested type.  This means less work overall is done.
The decompiler's results are searched for references.    This means that any usage of types found within the body of the function are found, in addition to the return type and parameters.
The ordering of types as they are discovered does not need to be maintained, as the results table showing the types allows the user to sort the information in any order.
You don't have to let the search for types finish.  If you see results you like in the table, then you can stop the search if you so choose.

I see your remarks and totally agree about you said. But,

The ordering of types as they are discovered does not need to be maintained, as the results table showing the types allows the user to sort the information in any order.

Well, The order matters when there is many related type.
For example you want to find dataType** so that which function dereference and assign some field, You don't want to see function with variables dataType* coming out first. This patch was meant to address the issue.
Regards.


Modification hooks

Description
Please describe the required functionality

This will just be confusing. There's already plenty of extension points available and the document can be further modified if payload-openapi is used with createDocument.


Updated version to latest

Current coverage is 92.94%

Merging #41 into master will not affect coverage as of 8663c75

@@            master     #41   diff @@
======================================
  Files            1       1
  Stmts          170     170
  Branches         0       0
  Methods          0       0
======================================
  Hit            158     158
  Partial          0       0
  Missed          12      12

Review entire Coverage Diff as of 8663c75

Uncovered Suggestions

+3.53% via ...c/angular-spotify.js#488...493
+2.35% via ...c/angular-spotify.js#71...74
+1.17% via ...c/angular-spotify.js#481...482

Powered by Codecov. Updated on successful CI builds.


Add support for Oracle GraalVM JDK

Description:
This PR adds Oracle GraalVM JDK to the list of supported distributions.
Related issue: https://github.com/actions/setup-java/pull/401
Check list:

[x] Mark if documentation changes are required.
[x] Mark if tests were added or updated to cover the changes.

PAG TATAMPALIN KO MGA MUKA NYO EE 👊👊👊

Any update on this?

@IvanZosimov if you could find time to merge this, it would be really amazing! Thank you for your work.

Ideally this should support the new release and  approach to naming from GraalVM.

@IvanZosimov and @dmitry-shibanov, do you have an update on this? There's now a merge conflict that needs to be resolved but I don't want to do this work if a review and approval still take time.

I'm assuming this is still pending licensing approval, @IvanZosimov? Please let me know if there's anything we can help with.

Maybe @brunoborges could help move this forward?

@aparnajyothi-y I see that SapMachine support is planned for Q4. Can we please proceed with this and add Oracle GraalVM support, too?

Hello @fniephaus, We are working to prioritize this feature. We will update you once we have some feedback :)

Thanks, @aparnajyothi-y. Let me know when this is planned so I can help resolve the merge conflicts. :)

Hi @aparnajyothi-y, any updates here?

Hello Everyone, we are in the process of reviewing this PR.
Feedback will be provided once the review is complete.

Feedback will be provided once the review is complete.

Thanks! Let me know and we can work on resolving merge conflicts.

Hi @fniephaus, could you please resolve the conflicts so we can proceed with testing and approving the PR?

Hi @mahabaleshwars,
I have resolved the merge conflicts and have added support for GraalVM EA builds. Please test and review the PR and let me know if anything needs changing.

I see there are new merge conflicts. When will this PR be merged? I wouldn't want to keep resolving merge conflicts.

I have resolved the merge conflicts again. It'd be great if this could be merged soon, thanks!

The failure is due to hitting the API rate limit for some reason: https://github.com/actions/setup-java/actions/runs/10806059192/job/29974203938#step:8:1235

All tests are passing and there are plenty of approvals. When will this be merged? :)


Add main nav link "← Back to All BigchainDB Docs"

As suggested in https://github.com/bigchaindb/bigchaindb/pull/650#discussion_r81301081

Current coverage is 100% (diff: 100%)

Merging #90 into master will not change coverage

@@           master   #90   diff @@
===================================
  Files           7     7
  Lines         138   138
  Methods         0     0
  Messages        0     0
  Branches        0     0
===================================
  Hits          138   138
  Misses          0     0
  Partials        0     0

Powered by Codecov. Last update 9ffcc33...91a33fd


MCP tool doesn't show up in Claude (macOS)

I followed the instructions and created .accounts.json and .gauth.json files in ~/Library/Application Support/Claude. I also entered the info from Google console in those files. But the MCP tool doesn't show up in the app even after restarting it.

You can see what happens by looking at the mcp log files. Maybe something is wrong and an error is thrown during startup.
Check for instance the file: ~/Library/Logs/Claude/mcp-server-mcp-gsuite.log

@MarkusPfundstein Thanks, here's what the log says:
╰─❯ cat ~/Library/Logs/Claude/mcp-server-mcp-gsuite.log
  × No solution found when resolving tool dependencies:
  ╰─▶ Because the current Python version (3.12.3) does not satisfy
      Python>=3.13 and all versions of mcp-gsuite depend on Python>=3.13, we
      can conclude that all versions of mcp-gsuite cannot be used.
      And because you require mcp-gsuite, we can conclude that your
      requirements are unsatisfiable.

I upgraded Python to 3.13 but now I get this error:
╰─❯ # Follow logs in real-time
    tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

==><EMAIL_ADDRESS><==

==><EMAIL_ADDRESS><==

==> /Users/behnam/Library/Logs/Claude/mcp-server-arxiv-mcp-server.log <==

==> /Users/behnam/Library/Logs/Claude/mcp-server-brave-search.log <==

==> /Users/behnam/Library/Logs/Claude/mcp-server-filesystem.log <==

==> /Users/behnam/Library/Logs/Claude/mcp-server-mcp-gsuite.log <==

==> /Users/behnam/Library/Logs/Claude/mcp-server-memory.log <==
Knowledge Graph MCP Server running on stdio

==> /Users/behnam/Library/Logs/Claude/mcp-server-playwright.log <==

==> /Users/behnam/Library/Logs/Claude/mcp-server-sequential-thinking.log <==

==> /Users/behnam/Library/Logs/Claude/mcp.log <==
2024-12-21T16:38:09.207Z [info] Connected to MCP server playwright!
2024-12-21T16:38:09.207Z [info] Connected to MCP server sequential-thinking!
2024-12-21T16:38:09.208Z [info] Connected to MCP server mcp-gsuite!
2024-12-21T16:38:09.208Z [info] Connected to MCP server @executeautomation-playwright-mcp-server!
2024-12-21T16:38:09.209Z [info] Connected to MCP server @modelcontextprotocol-server-sequential-thinking!
2024-12-21T16:38:14.102Z [info] MCP server mcp-gsuite disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging)
2024-12-21T16:40:02.433Z [info] Attempting to connect to MCP server brave-search...
2024-12-21T16:40:02.436Z [info] Attempting to connect to MCP server filesystem...
2024-12-21T16:40:02.436Z [info] Attempting to connect to MCP server playwright...
2024-12-21T16:40:02.437Z [info] Attempting to connect to MCP server sequential-thinking...
2024-12-21T16:40:02.437Z [info] Attempting to connect to MCP server mcp-gsuite...
2024-12-21T16:40:02.437Z [info] Attempting to connect to MCP server @executeautomation-playwright-mcp-server...
2024-12-21T16:40:02.437Z [info] Attempting to connect to MCP server @modelcontextprotocol-server-sequential-thinking...
2024-12-21T16:40:02.445Z [info] Connected to MCP server brave-search!
2024-12-21T16:40:02.446Z [info] Connected to MCP server filesystem!
2024-12-21T16:40:02.446Z [info] Connected to MCP server playwright!
2024-12-21T16:40:02.447Z [info] Connected to MCP server sequential-thinking!
2024-12-21T16:40:02.448Z [info] Connected to MCP server mcp-gsuite!
2024-12-21T16:40:02.448Z [info] Connected to MCP server @executeautomation-playwright-mcp-server!
2024-12-21T16:40:02.450Z [info] Connected to MCP server @modelcontextprotocol-server-sequential-thinking!

==> /Users/behnam/Library/Logs/Claude/mcp-server-mcp-gsuite.log <==
Traceback (most recent call last):
  File "/Users/behnam/Library/Caches/uv/archive-v0/I7593nx0ZmZyrUuR5dRm-/bin/mcp-gsuite", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/Users/behnam/Library/Caches/uv/archive-v0/I7593nx0ZmZyrUuR5dRm-/lib/python3.13/site-packages/mcp_gsuite/__init__.py", line 6, in main
    asyncio.run(server.main())
    ~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/asyncio/runners.py", line 194, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/asyncio/base_events.py", line 720, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/Users/behnam/Library/Caches/uv/archive-v0/I7593nx0ZmZyrUuR5dRm-/lib/python3.13/site-packages/mcp_gsuite/server.py", line 151, in main
    accounts = gauth.get_account_info()
  File "/Users/behnam/Library/Caches/uv/archive-v0/I7593nx0ZmZyrUuR5dRm-/lib/python3.13/site-packages/mcp_gsuite/gauth.py", line 37, in get_account_info
    with open('./.accounts.json') as f:
         ~~~~^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: './.accounts.json'

==> /Users/behnam/Library/Logs/Claude/mcp.log <==
2024-12-21T16:40:03.395Z [info] MCP server mcp-gsuite disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging)

==> /Users/behnam/Library/Logs/Claude/mcp-server-filesystem.log <==
Secure MCP Filesystem Server running on stdio
Allowed directories: [ '/users/behnam/desktop', '/users/behnam/downloads' ]

==> /Users/behnam/Library/Logs/Claude/mcp-server-brave-search.log <==
Brave Search MCP Server running on stdio

==> /Users/behnam/Library/Logs/Claude/mcp-server-sequential-thinking.log <==
Sequential Thinking MCP Server running on stdio

==><EMAIL_ADDRESS><==
Sequential Thinking MCP Server running on stdio

Where should .accounts.json and .gauth.json be located? I tried moving them from ~/Library/Application Support/Claude to ~ and it still didn't work.

Thanks, I updated to Python 3.13 and it worked.


want to see all kafka consumers's link

hi, i have a problem, please help me!
when more kafka consumers to consumer the same topic message,the pinpoint web only show one consumer.how to let show all consumers's link?

hi @xiaojinde
Please explain in detail.
ex)
environment you're system (with or without pinpoint on each server)
current server map image, expected serve map image
agent log that can show kafka node, agent log that can't show kafka node
etc ..

Please post the detailed description.

@xiaojinde
There is a lack of support for queue service such as kafka.
In particular, if the message goes to multiple consumers,
it can may not be all traced due to the problem of internal structure.
If you  post the detailed description. then i can check more detail
thanks.

@koo-taejin

the topic of kafka_ppoint_test,have two kafka consumers ,jianrongtest05 and jianrongtest02,but it only show the jianrongtest05.please look how to show two consumers

@xiaojinde
I succeeded in reproducing the problem.
I am looking for a way to resolve it.
If any progress, then I will post comment .
thanks.

@koo-taejin
ok, thanks!

@xiaojinde
I did the work and the related issue is #5807
Please test it when it becomes Merge in the master branch.

@koo-taejin
ok,thank you.
i have modified this issue.we can share the solution.


Clean up foldtext

This is just a simple change to make folded headlines look cleaner and more like Emacs's folds

Looks good, but can you make a PR to the tree-sitter branch? All updates go there for now, until it becomes a master.

Yes, sorry about that. What would be the best way to change target branch? Close the PR and start a new one?

You can rebase your branch from tree-sitter branch, and change the target branch here to tree-sitter. That should do the trick.

Thank you, it should be fixed now

Thanks!


"-" in file name fails

hello,
protoc-gen-validate fails if there is a - in the file name.
[error] failed post-processing: 41:12: expected ';', found '-'
thanks
EDIT: i am using golang

Same goes for '.' e.g. 'my.service.proto':
[error] failed post-processing: 41:15: expected ';', found '.' (and 1 more errors)


CDPCP-1941. Sync Azure OID Mappings as part of user sync

Azure cloud identity information (Azure OID mapping) are now synced from
UMS into all appropriate datalake instances. At high level the
implementation is:

SDX service has a new endpoint that allows setting azure ranger
configs (azure user and group mappings). The SDX service will make the
necessary CM api call (through cluster proxy) to set the config and
trigger a role refresh.

The FMS user sync service will pull the Azure Object IDs (cloud
identity mapping) from UMS and call the new SDX endpoint to set the
configs.

Follow on work items include:

Poll the status of the refresh after triggering it
Individual user level and group level sync of OIDs
Moving some of the CM logic into cluster-cm and client-cm

Should we also add the entitlement to the mock UMS service so we can test this locally?

Should we also add the entitlement to the mock UMS service so we can test this locally?

That makes sense, I've updated mock UMS

some of my comments are not resolved/answered. until they are I would like to keep the review state in changes requested

Sorry just noticed them (they got buried under hidden). I've addressed those comments, please check again.


fix : Dependabot bump issue fixs and security fix for CVE-2024-24750.

Description

Dependabot bump jar version fixed for #205 , #206 , #207 , #208 , #209 .
Trivy high security issue fixed for #CVE-2024-34750.

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[x] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[x] Copyright and license header are present on all affected files

@sachinargade123 @adityagajbhiye9  Please review and approve the PR.


bug: Adds extension to imports from external package sub path

Is there an existing issue for this?

[X] I have searched the existing issues

Description of the bug
Im building a library, lets call it foo, that depends on another library bar. Bar exposes a subpath named "exportA" via its "exports"-key in the package.json. When I import stuff from the subpath "exportA" of bar in foo, e.g.
In foo src code
import { ... } from "bar/exportA";

this plugin updates the import in the output to the following
In foo dist
import { ... } from "bar/exportA.mjs";

Then, when using foo in a project, for example a simple vite react project I get the following vite error:
✘ [ERROR] Missing "./exportA.mjs" specifier in "bar" package [plugin vite:dep-scan]

Steps To Reproduce

create a package a that exposes multiple entry points with "exports" in package.json
import package a in another package b and bundle package b with tsup and esbuild-plugin-file-path-extensions
try to use package b in a vite project

Expected behavior
The plugin should only add extensions file imports and not to imports from external packages even if they use sub path exports.
Screenshots
No response
Additional context
No response

Duplicate of #6 which is still open because I as well as others cannot reproduce it. Please provide a small reproduction repository on that issue.


[WIP DONT MERGE] spark connect attempt 4

@SemyonSinchenko - yea, don't think we should merge this.  This PR is just to see if quinn is working with Spark Connect.  It would be great if we could run a Spark Connect branch as part of CI/CD.

After discussion with @MrPowers we decided to close it.


Backward Compatibilty: restore ability to set topic name via 'kafka.omrs.topic.id'

In older versions of egeria, it was possible to explictly set the name of the Kafka topic using a producer property named "kafka.omrs.topic.id".  We can see that behavior here: https://github.com/odpi/egeria/blob/736b84c87d16e59739d2fb0a9387907b364ad958/open-metadata-implementation/adapters/open-connectors/event-bus-connectors/open-metadata-topic-connectors/kafka-open-metadata-topic-connector/src/main/java/org/odpi/openmetadata/adapters/eventbus/topic/kafka/KafkaOpenMetadataTopicConnector.java
Unfortunately, with the more recent code, the desired topic name cannot now be set up front.  Instead it requires the configuration to be created using the default topic name, fetched back, updated in place, and then updated in Egeria through a configuration update.  While this process works, it is very cumbersome.
Restoring this mechanism gives us a simple way to set the topic name we want to use up front and insulate ourselves from future default topic name changes.

This is going back to the initial Kafka Event Bus connector that took no account of the admin services.  It also used a Kafka specific approach for setting the topic id.  This is not suitable for Egeria where the Kafka event bus connector can be swapped out for another event bus service.
It was fixed as soon as we noticed the bug.
For many releases now, the topic name is set up in the connector configuration - in the address property of the Endpoint object.  This is consistent for all event bus implementations.  (It also follows the common pattern for other types of connectors too.)
The default topic name is only a default and you are in control of the configuration process.  If you do not like the defaults then do not use them for your private cohort.  There are admin commands that do not use the defaults.
If you are connecting to a public cohort, you need to use the topic name established for the cohort.  This may be the default topic name or something different.
We have an enhancement request to provide a REST call to update the cohort topic (#2514).
This will make it easy for an org to make changes to the topic name.  Providing this capablity makes it more likely that organizations will change the name of the topic for the cohort so it is going to be a common situation.
Having a private back door way of setting the topic name that only works for Kafka is a recipe for configuration errors that would be difficult to debug.  The property is not even one that is defined by Kafka.

Note, the change to remove support for kafka.omrs.topic.id occurred in release 0.2 of Egeria.  This was before the function was officially released.


⚠ ClamAV has degraded performance

In b01c71f, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 70 ms

Resolved: ClamAV performance has improved in 152400b.


Project Sveltos does not render CRDs despite them being part of the chart

Is your feature request related to a problem? Please describe.
The flag --include-crds was introduced in helm/helm/pull/7138 unfortunately this behaviour seems to be unsupported or at least undocumented in Sveltos.
❯ helm template \
        --include-crds \
        --version 1.14.4 \
        --namespace edns \
        external-dns external-dns/external-dns \
        | kubectl slice --output-dir=external-dns-with-crd

❯ helm template \
        --version 1.14.4 \
        --namespace edns \
        external-dns external-dns/external-dns \
        | kubectl slice --output-dir=external-dns-without-crd

Describe the solution you'd like
Having an includeCRDs: <bool> option for each helm chart declaration in the ClusterProfile object seems like the best solution
Describe alternatives you've considered
I am currently templating the CRD outside of Sveltos and applying it with a policyRef.
Additional context
Slightly related to #308?

Hi @rbjorklin using v0.28.0 I see by default CRDs are deployed as part of Sveltos deploying an helm chart. In order to skip deploying crds, I need to explicitly set SkipCRDs flag in clusterProfile.
Can you please clarify what the issue is? Thank you
apiVersion: config.projectsveltos.io/v1alpha1
kind: ClusterProfile
metadata:
  name: external-dns
spec:
  clusterSelector: env=fv
  syncMode: Continuous
  helmCharts:
  - repositoryURL:    https://kubernetes-sigs.github.io/external-dns/
    repositoryName:   external-dns
    chartName:        external-dns/external-dns
    chartVersion:     1.14.4
    releaseName:      external-dns
    releaseNamespace: external-dns
    helmChartAction:  Install

And I see this is also deployed
kubectl get customresourcedefinitions
...
dnsendpoints.externaldns.k8s.io
...

If instead I set skipCRDs flag
apiVersion: config.projectsveltos.io/v1alpha1
kind: ClusterProfile
metadata:
  name: external-dns
spec:
  clusterSelector: env=fv
  syncMode: Continuous
  helmCharts:
  - repositoryURL:    https://kubernetes-sigs.github.io/external-dns/
    repositoryName:   external-dns
    chartName:        external-dns/external-dns
    chartVersion:     1.14.4
    releaseName:      external-dns
    releaseNamespace: external-dns
    helmChartAction:  Install
    options:
      skipCRDs: true

then Sveltos deploys external-dns but skips the CRDs.

You're right. It looks like the CRD was just added into the v1.14.4 release and that was the cause.
Sorry about the false alarm!

Thank you @rbjorklin


chore: remove xonly public keys from all modules

Superseded by https://github.com/fedimint/fedimint/pull/3709


Update project tt_um_a1k0n_demo (a1k0n/tt08-vgademo)

Update project tt_um_a1k0n_demo to commit a1k0n/tt08-vgademo@3c307ec9d3c559bf81d7cb05dcb0c7897d4faab5
Project title: Demo by a1k0n
Tiles: 1x2
Workflow: https://github.com/a1k0n/tt08-vgademo/actions/runs/10743301799

i accidentally ran this one twice, https://github.com/a1k0n/tt08-vgademo/actions/runs/10743301799 is the successful run, please work :crossed_fingers:

Looking at your commit_id.json it seems like it took the files from the run you linked 👍