nodeadm fails to parse user data

What happened:
When running nodeadm init it throws the error below:
{"level":"info","ts":1709500289.7936778,"caller":"init/init.go:49","msg":"Checking user is root.."}
{"level":"info","ts":1709500289.7966185,"caller":"init/init.go:57","msg":"Loading configuration..","configSource":"imds://user-data"}
{"level":"fatal","ts":1709500289.8128433,"caller":"nodeadm/main.go:36","msg":"Command failed","error":"yaml: line 4: could not find expected ':'","stacktrace":"main.main\n\t/workdir/cmd/nodeadm/main.go:36\nruntime.main\n\t/root/sdk/go1.21.7/src/runtime/proc.go:267"}

My user data looks this (with proper value):
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="
--==MYBOUNDARY==
Content-Type: text/x-shellscript; charset="us-ascii"
#!/bin/bash
set -ex
/etc/eks/bootstrap.sh ipv4-prefix-delegation \
    --b64-cluster-ca LS0tLS1CRUdJT... \
    --apiserver-endpoint https://D247F... \
    --dns-cluster-ip <IP_ADDRESS> \
    --container-runtime containerd

--==MYBOUNDARY==
Content-Type: application/node.eks.aws

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    name: mycluster
    apiServerEndpoint: https://D247F...
    certificateAuthority: LS0tLS1CR...
    cidr: <IP_ADDRESS>/16

--==MYBOUNDARY==--[

The reason I have data for both AL2 and AL23 is because I'm using it as a part of automation that handles both versions based on user input.
I know that the definition is correct because if I take below part and pass it on to nodeadm manually as my config file, it runs with no issues:
---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    name: mycluster
    apiServerEndpoint: https://D247F...
    certificateAuthority: LS0tLS1CR...
    cidr: <IP_ADDRESS>/16

What you expected to happen:
I expect nodeadm to pars the user data properly and use the information to add the instance to my cluster.
How to reproduce it (as minimally and precisely as possible):
Create an EC2 instance with EKS-Optimized AL23 and pass the user data included above. Connect to the instance and run nodeadm init
Anything else we need to know?:
Environment: EKS 1.29 with VPC CNI v1.16.3-eksbuild.2

AWS Region: US-WEST-2
Instance Type(s): t2.medium
EKS Platform version (use aws eks describe-cluster --name <name> --query cluster.platformVersion): eks.1
Kubernetes version (use aws eks describe-cluster --name <name> --query cluster.version): 1.29
AMI Version:
Kernel (e.g. uname -a): 6.1.77-99.164.amzn2023.x86_64
Release information (run cat /etc/eks/release on a node): ARCH="x86_64"

Looks like parsing is failing when the line breaks aren't structed as expected. nodeadm parses the MIME multipart with standard libs like mime/multipart and net/mail, so you'll have to follow the nitty gritty details on the MIME spec.
I'm able to set up an instance on the latest al2023 ami with the bootstrap excerpt from your userdata plus some additional line-breaks between headers and content, and get a successful nodeadm init:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/x-shellscript; charset="us-ascii"

#!/bin/bash
set -ex
/etc/eks/bootstrap.sh ipv4-prefix-delegation \
    --b64-cluster-ca LS0tLS1CRUdJT \
    --apiserver-endpoint https://D247F \
    --dns-cluster-ip <IP_ADDRESS> \
    --container-runtime containerd

--==MYBOUNDARY==
Content-Type: application/node.eks.aws

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    name: test-cluster
    apiServerEndpoint: ...
    certificateAuthority: ...
    cidr: ...

--==MYBOUNDARY==--

Thank you so much Nick! I will implement and keep you posted. I'm gonna close this issue because you got it working and I'm sure its gonna work for me too. Thanks again!

Sorry to bump a closed issue, I can't get a node to bootstrap
2024-03-22 05:07:34,902 - __init__.py[WARNING]: Unhandled unknown content-type (application/node.eks.aws) userdata: 'b'---\\r'...

@znedw it's fine that the data is unhandled, it just acts as a data source
can you take a look at the execution of the nodeadm unit by running
journalctl -u nodeadm-config

'''
Starting nodeadm-config.service - EKS Nodeadm Config...
{"level":"info","ts":1711089818.4551878,"caller":"init/init.go:49","msg":"Checking user is root.."}
{"level":"info","ts":1711089818.4622667,"caller":"init/init.go:57","msg":"Loading configuration..","configSource":"imds://user-data"}
{"level":"info","ts":1711089819.5107644,"caller":"init/init.go:66","msg":"Loaded configuration","config":{"metadata":{"creationTimestamp":null},"spec":{"cluster":{"nam>
{"level":"info","ts":1711089819.5115047,"caller":"init/init.go:68","msg":"Enriching configuration.."}
{"level":"info","ts":1711089819.5115254,"caller":"init/init.go:147","msg":"Fetching instance details.."}
{"level":"info","ts":1711089819.5197103,"caller":"init/init.go:153","msg":"Instance details populated","details":{"id":"i-xxxxxx","region":"ap-southeast-2",>
{"level":"info","ts":1711089819.519779,"caller":"init/init.go:154","msg":"Fetching default options..."}
{"level":"info","ts":1711089819.5217273,"caller":"init/init.go:162","msg":"Default options populated","defaults":{"sandboxImage":"602401143452.dkr.ecr.ap-southeast-2.a>
{"level":"info","ts":1711089819.5221477,"caller":"init/init.go:73","msg":"Validating configuration.."}
{"level":"info","ts":1711089819.5221589,"caller":"init/init.go:78","msg":"Creating daemon manager.."}
{"level":"info","ts":1711089819.5264494,"caller":"init/init.go:95","msg":"Configuring daemons..."}
{"level":"info","ts":1711089819.5264802,"caller":"init/init.go:102","msg":"Configuring daemon...","name":"containerd"}
{"level":"info","ts":1711089819.526518,"caller":"containerd/config.go:38","msg":"Writing containerd config to file..","path":"/etc/containerd/config.toml"}
{"level":"info","ts":1711089819.5347922,"caller":"init/init.go:106","msg":"Configured daemon","name":"containerd"}
{"level":"info","ts":1711089819.5348399,"caller":"init/init.go:102","msg":"Configuring daemon...","name":"kubelet"}
{"level":"info","ts":1711089820.7177713,"caller":"kubelet/config.go:298","msg":"Detected kubelet version","version":"v1.29.0"}
{"level":"info","ts":1711089820.7202582,"caller":"kubelet/config.go:218","msg":"Setup IP for node","ip":"<IP_ADDRESS>"}
{"level":"info","ts":1711089820.7211678,"caller":"kubelet/config.go:370","msg":"Writing kubelet config to file..","path":"/etc/kubernetes/kubelet/config.json"}
{"level":"info","ts":1711089820.988205,"caller":"init/init.go:106","msg":"Configured daemon","name":"kubelet"}
nodeadm-config.service: Deactivated successfully.
Finished nodeadm-config.service - EKS Nodeadm Config.
'''

it seems like the kubelet service isn't enabled, if i manually do this, and start the service, then the node shows up

it is not ready because the pod sandbox fails to pull the image (http_put_response_hop_limit maybe?)
should kubelet service be enabled by default?

figured this was failing in config phase but also go ahead and take at
journalctl -u nodeadm-run

this is where kubelet would actually get kicked off and where we also try to cache the sandbox image

thank-you! it was failing because AmazonEC2ContainerRegistryReadOnly was not attached to the node role.. not related to user-data... sorry about that


[canvaskit] Renderer should listen to the stream of views being registered and unregistered

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
The CanvasKit renderer should listen to the stream from the PlatformViewManager of FlutterViews being registered and deregistered in order to create and dispose of the associated Rasterizers.
Proposal
Listen for events on the onViewsChanged stream and create/destroy Rasterizers as appropriate.

This is fixed


Get statusBytes after final potential rejection

Status code can be set to 500 in CreateResponseHeader by
else if (hasTransferEncoding)
{
    RejectNonBodyTransferEncodingResponse(appCompleted);
}

So statusBytes should be generated after this
/cc @cesarbs @halter73

@benaadams I basically made this change here https://github.com/aspnet/KestrelHttpServer/pull/1526 😄

Fixed in #1526


{{resourceName}} alias should not be just the last segment of the Azure Resource ID

The calculation of the {{resourceName}} alias should not be just the last segment of the Azure Resource ID.  It should be the concatenation of every odd segment after providers/{providerName}.
For example, an Azure Resource ID will look as follows:
/subscriptions/{subscriptionId}/resourcegroups/{resourceGroup}/providers/{providrrName}/{type1}/{name1}/{type2}/{name2}/...
The {resourceName} alias should be set to {name1}/{name2}/...
An example which illustrates this problem is metrics on Microsoft.storage/storageaccounts/blobservices.  If you have multiple storage accounts, the {resourceName} alias will always be 'default' and you can't tell which storage account is which one.
If the Azure Resource ID is the following:
/subscriptions/{subscriptionId}/resourcegroups/{resourcegroup}/providers/microsoft.storage/storageaccounts/{storageaccountname}/blobservices/default
The {resourceName} alias should be {storageaccountname}/default

This repo is going to be archived. The Azure Monitor plugin was moved into the Grafana repository for version 6.0 of Grafana. If you are using Grafana 6.x then you will automatically start using the built-in version of the Azure Monitor datasource.
Announcement: https://grafana.com/blog/2019/02/25/grafana-v6.0-released/#azure-monitor-datasource
Documentation for Azure Monitor in Grafana: https://grafana.com/docs/features/datasources/azuremonitor/
This issue is ported to the Grafana repo: https://github.com/grafana/grafana/issues/17222


ifeq issues

Thank you for a fantastic plugin. The ifeq conditional syntax does not seem to be supported very well, though. The following examples are valid but PyCharm reports syntax errors:

1.
ifeq (${HOSTNAME},Mac.local)
	PG_EXTRA_ARGS =
else
	PG_EXTRA_ARGS := -U test
endif

2.
ifeq ($(HOSTNAME),Mac.local)
	PG_EXTRA_ARGS =
else
	PG_EXTRA_ARGS := -U test
endif

https://www.gnu.org/software/make/manual/html_node/Conditional-Example.html

Thanks for fixing it so quickly & congrats on v3.0, looks great!


I have been rick rolled and would also like to join the organization.

hahaha
u can join this discord server if u want: https://discord.gg/yzZ3MfGZ8A


mgba 0.5.0

Created with brew bump-formula-pr.

Build failed on all configurations. Complaining about the cmake configuration step.
-- Checking for one of the modules 'epoxy'
-- Checking for one of the modules 'sdl2'
CMake Error: Error in cmake code at
/tmp/mgba-20160920-77924-1an7kyk/mgba-0.5.0/src/platform/qt/CMakeLists.txt:216:
Parse error.  Expected "(", got unquoted argument with text "${CMAKE_COMMAND}".

Sounds like an upstream bug.

Well, this is not an upstream bug. The existing inreplace to comment out add_custom_command which was solely for preventing .app post bundling now breaks a new custom command just added in this release.
I had to end up with this trick to leave the executable linked with brewed libraries, not its deployed copies (#348).
One easy solution for now may be just to drop Qt support (by adding "-DBUILD_QT=OFF" to cmake). The simpler SDL-backed command line version should build without any hassle. Users can easily download Qt app from the official website anyways.

Closing in favor of #700.


Roles | Keep Track on who Added/Removed Roles From a User |1|

https://trello.com/c/PPXmuREf/1084-roles-keep-track-on-who-added-removed-roles-from-a-user-1#
We have a column in the rows table for create_user_id. We should really use this whenever we create a new user or update an existing one.

 Roles | Keep Track on who Added/Removed Roles From a User |1|


widget attribute to not highlight the first choice when autocompleting

When autocomplete is going on a ChoiceField, it auto highlights the first choice. I would like an option so that the options are highlighted only if using the UP, DOWN keys or by clicking, so that the Field doesn't lose focus.

Can't we highlight the first choice and not loose the focus on the input ?

Can't we highlight the first choice and not loose the focus on the input ?

Then it's maybe confusing what Return/Enter would do?!  Should it submit the existing value (from the input field) or the highlighted entry?
I think highlighting indicates selection somehow, and that's what @pandabuilder wants to avoid.

Yep, that was meant as a shortcut, but it's far from the first time we get
complaints about it.
Shouldn't we just remove auto-highlight of first choice ?

Sorry, I now know that there's a autoHighlightFirst parameter that I can override from Python, but not setting it as a boolean, but using:
'data-autocomplete-auto-hilight-first': 0
As an integer.
This can be closed.

I wonder if we should default to this, what's your take on this ?

Defaulting to 0 should be in line with most autocompletes on the web.

Cool, would you like to make a pr for that in jquery-autocomplete-light
mate ? ;)

Here: yourlabs/jquery-autocomplete-light/pull/14

Merged, thanks a heap B)

Released in 2.3.0


GNU Guile

Type: Bug
Have the latest version of VS Code. August edition. No GNU Guile extension found.
VS Code version: Code 1.82.0 (8b617bd08fd9e3fc94d14adb8d358b56e3f72314, 2023-09-06T22:07:07.438Z)
OS version: Windows_NT x64 10.0.22621
Modes:

Hi @AGoh2019
Thank you for opening the issue. Sorry to hear you are experiencing the installation issue. It appears to be specific to VS Code editor and tools. It is best to reach out VS Code team at https://github.com/microsoft/vscode/issues.
If you have any issues with any Marketplace specific extension, please share the extension details for investigation.
-VS Marketplace Team


Add setup instructions for burn-tch

Checklist

[x] Confirmed that run-checks all script has been executed.
[x] Made sure the book is up to date with changes in this PR.

Related Issues/PRs
Closes #587
Changes
This draft PR adds detailed instructions to setup the tch backend with LibTorch and a simple example to test that the installation is successful.
Because many different installation configurations are possible, I'd love to get some feedback on the recommended method.
At this time I switched to a manual installation with proper documentation since the automatic download doesn't work for all use cases (e.g., MPS).
Maybe we still want to offer automatic by default and add separate that as a feature to allow manual installation support?

@nathanielsimard @antimora would love to get your opinion

Just chatted with Nathaniel, the suggestion is:

Keep automatic download by default
Set the correct tch environment variables based on feature flags (cpu (default), cu118 and cu121 for current libtorch version)

Still undecided if this is the best practice or other approaches would be better

Provide manual instructions for other use cases (as currently added in the documentation)

Thank you for working on this. It's a great start and I am sure, we will extend it as we encounter issues.
Can you also add Troubleshooting section. Often people report ATen errors which is related to incorrectly installing CUDA version. You might be able to fine this from #587 comments.
As I recommend we keep auto downloader, which also works for Mac. The manual configuration is a recommended path.

We're back to automatic download now! :) And a flag burn-tch/custom-libtorch can be specified for a manual/custom libtorch installation.
Sadly, there is no way to "automatically" set the TORCH_CUDA_VERSION environment variable for the tch dependency.. [env] is only for the cargo config and the dependencies are built before so there's no way to "hack" this in a build.rs. Would have been nice to avoid this for our users, but instead I've added instructions for the automatic download w/ CUDA (which basically only requires setting the TORCH_CUDA_VERSION beforehand).
Regarding the troubleshooting section, I'm not sure what should be included. The CUDA driver version compatibility is already mentioned is the instructions and no CUDA toolkit is actually required (contrary to what some issues seem to refer to). For a manual installation direct download links are provided along with instructions to set the proper environment variables that would otherwise cause issues. Do you mean adding troubleshooting for even more custom installations (i.e., using a local LibTorch version that is not the currently listed version supported by tch)?


Fix/reference to iterator variable causes pointer problems

In go-pas-client we convert the public models from the user to the interal models used for the actual request. In this conversion, when converting the band alarms list we do this:
for i, bandAlarm := range t.BandAlarms {
   threshold.BandAlarms[i] = bandAlarm.ToInternal()
}

This causes a problem when the ToInternal function on bandAlarm operates on a pointer to the struct rather than the struct itself. The function return an object with values that point back into the iterator variable and when we have more than one item in the list these values are set to the last value that was set in the iterator variable.


Added BasicImageProcessor which directly runs gray filter and test of it

The test I added fails because the pixel values are not exactly the same (different by 1). This seems like an issue cause by the way that the library handle float and int.

I enlarged the numbers in order to perform the calculation without float, which need a larger bit width; it should be possible to keep it under 255 but it caused some errors so I did in this way instead.

I just pushed a change that splits the logic for two types of filters. I haven't yet enabled pixel testing with the library.


Add more slot types check

There should be more safety check in VM when calling a function handle, but I'm simply adding slot types for some primitive types now. They were type unknown before. This is useful to validate a type in an external application.

There is too much whitespace noise in the first patch.
Technically you should not be able to introspect those object via the API, so what value do you get from knowing that?

I would also add WREN_TYPE_FOREIGN_CLASS.

There is too much whitespace noise in the first patch.
Technically you should not be able to introspect those object via the API, so what value do you get from knowing that?

Solved. I use Atom editor by default and it removes trailing whitespaces on save.
Edit with sublime also changes some tabs to spaces.

I would also add WREN_TYPE_FOREIGN_CLASS.

I think it's already covered by WREN_TYPE_FOREIGN

There is too much whitespace noise in the first patch.
Technically you should not be able to introspect those object via the API, so what value do you get from knowing that?

For the second part, I access a slot from outside (e.g. in a game engine) and I want to do type check for functions so when I actually call a function handle, it doesn't crash my engine. Currently there's no way to know if a function is defined so type check can sligthly help (for non-defined function handler, they are supposed to return unknown type, I think?).

Yes, but how do you get/use that slot with that function handle? Because if
you are trying to re-enter the vm using a wren all inside a foreign
function it does not work.

Yes, but how do you get/use that slot with that function handle? Because if you are trying to re-enter the vm using a wren all inside a foreign function it does not work.

I'm not entering vm from a foreign function, for my use case, I want to know function update is defined in main.wren and it is a function.

The case is somehow legitimate, you exclude yourself of having functor
class, but it is a minimal annoyance.

I don't know how you structured your code, or if you have optional
callbacks, but a good solution would be too have a private trampoline
module, that has well defined callbacks that don't need checking and that
you can blindly call into, and from there call user code.

I don't know how you structured your code, or if you have optional callbacks, but a good solution would be too have a private trampoline module, that has well defined callbacks that don't need checking and that you can blindly call into, and from there call user code.

It's impossible to fall back to a default function if calling Wren VM fails, because now it will crash. I need to know it will crash. And by the way my wip engine's here for self-branding.

Thanks for the PR!
With regards to your need of knowing whether a variable or module exists, these are the API calls to use.
// Looks up the top level variable with [name] in resolved [module],
// returns false if not found. The module must be imported at the time,
// use wrenHasModule to ensure that before calling.
bool wrenHasVariable(WrenVM* vm, const char* module, const char* name);

// Returns true if [module] has been imported/resolved before, false if not.
bool wrenHasModule(WrenVM* vm, const char* module);

For now, I think we'll stick with the pattern that types you can meaningfully interact with via the API are known types.
Wren is hackable by design so it's plenty valid to keep your local change if it solves a problem for you.


Need shortcut key to make the screenshot taking function easier to handle while wearing the HMD.

Describe the problem
The screen capture features offered by MRGT are very attractive, including background hollowing and up to 4x resolution.
However, it has no shortcut compared to the standard Windows PC screenshot ([Ctrl]+[Windows]+[S]) and, as far as I know, must be selected from the Unity menu, and I feel that this single point makes a big difference in ease of use.
Especially while using PCVR or HoloLens HolographicRemoting and wearing a HMD, it is sometimes difficult to move the cursor and select from the menu every time.
I have been discussing this problem with my colleagues, and I feel the need for a shortcut key.
Describe the solution you'd like
If a shortcut key could be used to take a capture while wearing the HMD and specifying a fine angle of view during execution, more users would prefer to use MRGT screenshots.
Describe alternatives you've considered
Developer enable screen capture by Shortcut keys.
It should be noted, however, that the keys will overlap with other MRTK functions and general shortcut keys.
Additional context

This is a great suggestion! Please feel free to add shortcuts or we can assign to someone. 😊

@Cameron-Micka  Thank you!
I`ll try!!
　How are MRTG and other MRTK packages implemented?
　It looks like the shortcut manager can be used since Unity2019.
　If I implement it, should I use the shortcut manager in terms of avoiding shortcut conflicts with other packages used by users?

MRTKv3 and MRGT use Unity 2020 and above. So, you should be good to use the shortcut manager.
Let me also add @keveleigh in case he has some insights on how shortcut conflicts are avoided across MRTKv3.

Thank you! @Cameron-Micka  and @keveleigh
I'll implement it at shortcut manager!
Just this past holiday I touched and learned shortcut manager, so I should be able to do it!
At this point I am considering two methods.
(1) It is provided as a shortcut from the beginning, like many other MRTK functions, and developers can use it right away.
(2) Shortcut keys are not enabled by default, and users who want to use screenshots can go to the Window→GraphicsTools→Take screenshots menu and select "Enable capture by shortcut keys" (temp name). Select "Take screenshots" from the Window→GraphicsTools→Take screenshots menu, and enable capturing with shortcut keys.
Which method is more user-friendly?

I reached out to the rest of the MRTK team and we don't have an established pattern yet. But, using the shortcut manager seems like the ideal and recommended path forward. This attribute might be helpful too?


Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNShake' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes

Getting this error after upgrading to 5.5.0.
Invariant Violation: Failed to call into JavaScript module method AppRegistry.runApplication(). Module has not been registered as callable. Registered callable JavaScript modules (n = 11): Systrace, JSTimers, HeapCapture, SamplingProfiler, RCTLog, RCTDeviceEventEmitter, RCTNativeAppEventEmitter, GlobalPerformanceLogger, JSDevSupportModule, HMRClient, RCTEventEmitter.
        A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermes
 ERROR  Invariant Violation: Failed to call into JavaScript module method AppRegistry.runApplication(). Module has not been registered as callable. Registered callable JavaScript modules (n = 11): Systrace, JSTimers, HeapCapture, SamplingProfiler, RCTLog, RCTDeviceEventEmitter, RCTNativeAppEventEmitter, GlobalPerformanceLogger, JSDevSupportModule, HMRClient, RCTEventEmitter.
        A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermes

jest.config.js
setupFiles: [
  mockReactNativeShake.js
}

mockReactNativeShake.js
jest.mock('react-native-shake', () => ({
    addListener: jest.fn(),
    removeAllListeners: jest.fn(),
}));

I'm encountering the same issue as @rzoro reported with RN version 0.72.1.
In addition, I tried to create a new/fresh project with the latest RN version 0.73.4, iOS version 17.3. Just to validate if my current app RN version is just the one having an issue.
Created an adhoc version of it for release mode and install in actual device.
Result: The listener is not triggered at all.
I wonder if anyone got the same issue.

Published a new version (6.0.0-beta.2). Can you try?


[SPARK-45684][SQL][SS][TESTS][FOLLOWUP] Use ++ instead of s.c.SeqOps#concat

What changes were proposed in this pull request?
This pr use ++ instead of s.c.SeqOps#concat to address comments: https://github.com/apache/spark/pull/43575#discussion_r1414163363
Why are the changes needed?
++ is alias for concat,  but the readability of ++ is better.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass GitHub Actions
Was this patch authored or co-authored using generative AI tooling?
No

Merged to master.

Thanks @dongjoon-hyun @HyukjinKwon


Update mongodb-core patch level

The latest<EMAIL_ADDRESS>fixes errors in mongodb-core (@1.1.9) where the bson C++ extension fails to build and then complains loudly about it every time the module is instantiated.
Gets rid of this:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

Thanks very much. Travis failed but I tested it on my machine and it seems to work. I'll look into the travis config as there seems to be somthing wrong with it.

Actually, I made a mistake, I ran the tests before running npm install (silly me). So the error that showed up in travis is actually happening. I'll look into it.


super slow when calculating accuracy

Hi，thanks for your nice work!
I am trying to train on VIGOR dataset following the original run_VIGOR.sh script.
The training process in each epoch goes well,but the time used for calculating accuracy seems too long,you can check this:

One epoch of  training  took about an hour, but calculating accuracy took about 6 hours.
I haven't made much changes to other files,except adding two lines below in train.py,to respond to an error—OSError: image file is truncated (91 bytes not processed). I only used one rtx3060 for training.
what lead to this？

btw,there is also a long waiting after "start epoch:[],..."

This is not expected. The accuracy computation involves large matrix multiplication and it could be slow if the CPU is slow or the memory is small. You can try making the matrix multiplication smaller or putting it GPU.
The waiting time after the "start epoch" is also related to the matrix multiplication in the sampler. You can remove "--mining" to avoid using hard sample mining.

I made some changes according to your suggestion,it helps a lot.
Besides，are there any pretrained models of VIGOR? I failed to find any 'model_best' file of VIGOR in the link you provided in readme.


Remove os prefix from consecutive build error.

Fixes traceback for #50
Current behavior just removes the symlinks. I should adapt this to remove the existing tmp directory as well.
connects to #50
connects to #32

@tfoote I added the --output-repository-path option.

Adding the output repository path is good. But I'd like to go one step further and not create the symlinks and just work in the repositories directory.

@tfoote I've removed the sym-link logic, and just rebased on top of master.


Json API v2 initial documentation

Preview:
set env variables
ARTIFACTORY_USERNAME=...
ARTIFACTORY_PASSWORD=...
cd doc/3.1
bin/live-preview

open  http://<IP_ADDRESS>:8000/json-api/index.html

A general comment in looking through this, is that while the API is a lot more comprehensive, it is significantly more obtuse in terms of the request and response bodies, due to them mapping directly to the GRPC types.
I guess that's why you were emphasising the importants of having nice clients for interacting with it.

A general comment in looking through this, is that while the API is a lot more comprehensive, it is significantly more obtuse in terms of the request and response bodies, due to them mapping directly to the GRPC types.
I guess that's why you were emphasising the importants of having nice clients for interacting with it.

I agree - that became visible once I started to create  examples.


Fix wrong dependency in weekly ci

Objective
Weekly Ci fails with a Invalid workflow error
Solution
Make check-compiles depend on a job that actually exists.

We should re-run the weekly ci after merging

no rush, it will run again in one week, we'll still have plenty of time before the next rust release 😄

I'd run it just to see if there are any other problems with it.


Exception: argument of type 'WindowsPath' is not iterable

am getting this error
[X] Exception: argument of type 'WindowsPath' is not iterable

i was able to change error little bit:
cmd: python carboncopy.py microsoft.com 443 ConsoleApplication1.exe 1.exe
+-+-+-+-+-+-+-+-+-+-+-+-+
|C|a|r|b|o|n|S|i|g|n|e|r|
+-+-+-+-+-+-+-+-+-+-+-+-+
CarbonSigner v1.0
Author: Paranoid Ninja
[+] Loading public key of microsoft.com in Memory...
[+] Cloning Certificate Version
[+] Cloning Certificate Serial Number
[+] Cloning Certificate Subject
[+] Cloning Certificate Issuer
[+] Cloning Certificate Registration & Expiration Dates
[+] Signing Keys
[+] Creating certs\microsoft.com.crt and certs\microsoft.com.key
[+] Clone process completed. Creating PFX file for signing executable...
[+] Platform is Windows OS...
[+] Signing 1.exe with signtool.exe...
Traceback (most recent call last):
File "carboncopy.py", line 102, in
main()
File "carboncopy.py", line 99, in main
CarbonCopy(argv[1], argv[2], argv[3], argv[4])
File "carboncopy.py", line 76, in CarbonCopy
"/td", "SHA256", "/fd", "SHA256", signed])
File "C:\Users\Ali\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 342, in check_call
retcode = call(*popenargs, **kwargs)
File "C:\Users\Ali\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 323, in call
with Popen(*popenargs, **kwargs) as p:
File "C:\Users\Ali\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 775, in init
restore_signals, start_new_session)
File "C:\Users\Ali\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 1119, in _execute_child
args = list2cmdline(args)
File "C:\Users\Ali\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 530, in list2cmdline
needquote = (" " in arg) or ("\t" in arg) or not arg
TypeError: argument of type 'WindowsPath' is not iterable

Same exact problem in Windows 10.
Is the following lines of code assuming that the 'certs' directory will be made within the pwd? If so I believe this is the source of the bug.
        certDir = Path('certs')
        certDir.mkdir(exist_ok=True)

Found the problem,
the PFXFILE variable called on line 75 is a WindowsPath instead of a string, just change it to str(PFXFILE) to fix the issue.

SignTool Error: The signer's certificate is not valid for signing.
cmd: python CarbonCopy.py microsoft.com 443 test2.exe test3.exe
+-+-+-+-+-+-+-+-+-+-+-+-+
|C|a|r|b|o|n|S|i|g|n|e|r|
+-+-+-+-+-+-+-+-+-+-+-+-+
CarbonSigner v1.0
Author: Paranoid Ninja
[+] Loading public key of microsoft.com in Memory...
[+] Cloning Certificate Version
[+] Cloning Certificate Serial Number
[+] Cloning Certificate Subject
[+] Cloning Certificate Issuer
[+] Cloning Certificate Registration & Expiration Dates
[+] Signing Keys
[+] Creating certs\microsoft.com.crt and certs\microsoft.com.key
[+] Clone process completed. Creating PFX file for signing executable...
[+] Platform is Windows OS...
[+] Signing test3.exe with signtool.exe...
The following certificate was selected:
Issued to: *.oneroute.microsoft.com
Issued by: Microsoft IT TLS CA 5
Expires:   Mon May 17 07:43:05 2021
SHA1 hash: 21343D6FEE63B96EC4748102DFA3F8F411AFFDB7
Done Adding Additional Store
SignTool Error: The signer's certificate is not valid for signing.
SignTool Error: An error occurred while attempting to sign: test3.exe
Number of files successfully Signed: 0
Number of warnings: 0
Number of errors: 1
[X] Something Went Wrong!
[X] Exception: Command '['signtool.exe', 'sign', '/v', '/f', 'certs\microsoft.com.pfx', '/d', 'MozDefCorp', '/tr', 'http://sha256timestamp.ws.symantec.com/sha256/timestamp', '/td', 'SHA256', '/fd', 'SHA256', 'test3.exe']' returned non-zero exit status 1.


Develop-1159, rebase from sthlm

Purpose:
As a preparation for the python 3 convertion, I here sync our repository with stockholm. I have rebased stockholm's repo to ours by git rebase -i upstream/master

I close this, we'll merge instead of rebase!


Remove invalid example code and give pointers to chrome.ipcRenderer

Fix comments in main.js and add a (commented out) example showing how to load index.html via chrome://brave. Remove erroneous comments and code referencing Node.js APIs from index.html and renderer.js. Add a link to ipcRenderer docs to index.html.
Resolves #2.

++ thanks!


Add search command

Adds the helm repo search command to hypper as just hypper search
Under helm you can search on the repos or on their own hub. This
patch only implements the repo search as seems the most useful
and bringing the hub requires a lot of code
This patch also extracts the search code into a new pkg as under
helm the search code is mostly crammed under cmd which means you cannot
use it anywhere, meanwhile this code can be reused by third party
clients to implement their own search frontend or automate it.
Fixes: #78
Signed-off-by: Itxaka<EMAIL_ADDRESS>

For example, maybe we don't need to expose WriteJSON() and WriteYAML().

Unfortunately due to the convoluted way in which those functions are called they need to be exposed because repoSearchWriter needs to implement the Writer interface in order to be called.

user docs added!

rebasing for the conflicts...

was already approved by victor, I had to rebase due to merge conflicts on the root.go file (because lint added a command there and we are also adding a command)
So merging :)


search for cico plugin in both Python 2.7 and Python 3.6 installs

new el8 cico pods use python 3.6

I assume we're not really rid of EL7 just yet and can't change that to Python 3.6 either.

Correct, the old jobs still run on EL7 with Python 2, once we completely move to the new OpenShift setup, we can remove those.


Adding Support for Image Vectors as Icons

Hello everyone,
I propose adding support for image vectors as icons in the AnimatedSmoothBottomNavigation-JetpackCompose library. Currently, the library only supports drawable resources for icons. By adding support for image vectors, we can provide users with more flexibility and options for customizing their navigation icons.
Proposed Changes:
Modify icon handling to support loading image vectors.
Implement a mechanism for users to specify image vectors as icons.
Update documentation to reflect the changes and provide guidance to users.
Why It's Important:
Allows users to use image vectors for icons, providing more flexibility and customization options.
Aligns the library with modern Android development practices, where image vectors are increasingly used for UI elements.
How You Can Help:
Provide feedback on the proposed changes.
Test the updated functionality and report any bugs or issues.
Contribute code or documentation improvements to support the implementation.

duplicate


Fixing bugs that have become obvious since adding the VpcEndpointTemplate

The individual commits in this PR correspond to:

Deleting a VpcEndpointTemplate wasn't waiting for the child VpcEndpoints to be deleted (and deletion wasn't even working). A finalizer was added and the deletion code was fixed.
The DNS hostname of a hosted cluster's API Server was being read from an incorrect location on the hostedcontroplane CR
The AWS Route53 API is pretty inconsistent with where it wants a Hosted Zone id vs one like /hostedzone/${id} and we were getting it wrong in some places
The VpcEndpointTemplate controller is pretty spammy with a specific log line as it processes each hostedcluster, so I've moved that to the debug log level.
VPC/Subnet auto-selection wasn't accounting for the possibility of there being viable subnets across different VPCs correctly (i.e., we should only find viable subnets within a single VPC)

OSD-15666

Codecov Report

Merging #183 (2f0eb1a) into main (3683f82) will decrease coverage by 0.51%.
The diff coverage is 14.89%.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #183      +/-   ##
==========================================
- Coverage   41.69%   41.18%   -0.51%
==========================================
  Files          31       31
  Lines        1806     1833      +27
==========================================
+ Hits          753      755       +2
- Misses        963      988      +25
  Partials       90       90

Impacted Files
Coverage Δ

controllers/vpcendpoint/helpers.go
38.79% <0.00%> (-0.98%)
:arrow_down:

...endpointtemplate/vpcendpointtemplate_controller.go
8.08% <0.00%> (-0.65%)
:arrow_down:

pkg/aws_client/route53_hosted_zone.go
38.35% <0.00%> (-0.54%)
:arrow_down:

pkg/hostedcontrolplanes/hostedcontrolplanes.go
81.25% <87.50%> (-3.37%)
:arrow_down:

/approve


bower version is only 1.0.0-rc9

I'm using bower to install angular-vs-repeat, but the current version is 1.0.0-rc9, which introduces issue #80.
Please can you update the bower version to 1.0.0-rc13, thanks.

updated to beta.1

bower update/install is now giving me bower.json
"version": "1.0.0-rc9"
and the header for the js is saying it's rc8
// // Copyright Kamil Pękala http://github.com/kamilkp // Angular Virtual Scroll Repeat v1.0.0-rc8 2015/05/29 //

Well, there is a tag https://github.com/kamilkp/angular-vs-repeat/releases/tag/v1.0.0-beta.1 https://github.com/kamilkp/angular-vs-repeat/releases/tag/v1.0.0-beta.1 like it should be. Ain’t that enough for bower?

Wiadomość napisana przez James Robb<EMAIL_ADDRESS>w dniu 04.12.2015, o godz. 19:25:
bower update/install is now giving me bower.json
"version": "1.0.0-rc9"
and the header for the js is saying it's rc8
//
// Copyright Kamil Pękala http://github.com/kamilkp
// Angular Virtual Scroll Repeat v1.0.0-rc8 2015/05/29
//
—
Reply to this email directly or view it on GitHub https://github.com/kamilkp/angular-vs-repeat/issues/88#issuecomment-162041762.

Not sure to be honest. But it doesn't appear to be. I've tried to force it to v1.0.0-beta.1 but it just gives me 1.0.0-rc9


add requirements.txt

We can also let the environment.yml config depend on the requirements file

just trying the notebook now and got this:
HTTPFileSystem requires "requests" and "aiohttp" to be installed

PR #47


Intermittent failure due to ocis wrapper connection error

https://drone.owncloud.com/owncloud/ocis/24040/50/5
Scenario Outline: create user with setting OCIS no restriction on the user name # /drone/src/tests/acceptance/features/apiGraph/createUser.feature:101
Given the config "GRAPH_USERNAME_MATCH" has been set to "none" # OcisConfigContext::theConfigHasBeenSetTo()
And the administrator has assigned the role "Admin" to user "Alice" using the Graph API # GraphContext::theAdministratorHasGivenTheRoleUsingTheGraphApi()
When the user "Alice" creates a new user using GraphAPI with the following settings: # GraphContext::theUserCreatesNewUser()
| userName | <userName> |
| displayName | test user |
| email | [new<EMAIL_ADDRESS>|
| password | 123 |
| accountEnabled | true |
Then the HTTP status code should be "200" # FeatureContext::thenTheHTTPStatusCodeShouldBe()
And user "<userName>" should exist # FeatureContext::userShouldExist()

Examples:
| userName | description |
| 1248Bob | user names starts with the number |
│
╳ Server error: DELETE http://ocis-server:5200/rollback resulted in a 500 Internal Server Error response:
╳ {"message":"oCIS server error","status":"ERROR"}
╳ (GuzzleHttp\Exception\ServerException)
│
└─ @AfterScenario @env-config # OcisConfigContext::rollbackOcis()
| (*:!;+-&$%)_alice | user names starts with the ASCII characters |
Failed step: Given user "Alice" has been created with default attributes and without skeleton files
cURL error 7: Failed to connect to ocis-server port 9200: Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ocis-server:9200/graph/v1.0/users (GuzzleHttp\Exception\ConnectException)
│
╳ cURL error 7: Failed to connect to ocis-server port 9200: Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ocis-server:9200/graph/v1.0/drives/?$filter=driveType%20eq%20project (GuzzleHttp\Exception\ConnectException)
│
└─ @AfterScenario # SpacesContext::cleanDataAfterTests()

https://drone.owncloud.com/owncloud/ocis/24090/54/5

https://drone.owncloud.com/owncloud/ocis/24130/51/5
@env-config
  Scenario: upload a file by setting OCIS spaces max quota                                                       # /drone/src/tests/acceptance/features/apiSpaces/quota.feature:128
    Given the config "OCIS_SPACES_MAX_QUOTA" has been set to "10"                                                # OcisConfigContext::theConfigHasBeenSetTo()
      Server error: `PUT http://ocis-server:5200/config` resulted in a `500 Internal Server Error` response:
      {"message":"oCIS server error","status":"ERROR"}
       (GuzzleHttp\Exception\ServerException)
    And user "Brian" has been created with default attributes and without skeleton files                         # FeatureContext::userHasBeenCreatedWithDefaultAttributesAndWithoutSkeletonFiles()
    When user "Brian" uploads file with content "more than 10 bytes content" to "lorem.txt" using the WebDAV API # FeatureContext::userUploadsAFileWithContentTo()
    Then the HTTP status code should be "507"                                                                    # FeatureContext::thenTheHTTPStatusCodeShouldBe()
  │
  ╳  cURL error 7: Failed to connect to ocis-server port 9200: Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ocis-server:9200/graph/v1.0/drives/?$filter=driveType%20eq%20project (GuzzleHttp\Exception\ConnectException)
  │
  └─ @AfterScenario # SpacesContext::cleanDataAfterTests()
  │
  ╳  cURL error 7: Failed to connect to ocis-server port 9200: Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ocis-server:9200/graph/v1.0/users/Alice (GuzzleHttp\Exception\ConnectException)
  │
  └─ @AfterScenario # FeatureContext::afterScenario()


Define hypergeometric functions

I think a fun project would be for someone to define hypergeometric functions and prove some basic properties.
Eventually we would want the generalised $${}_pF_q$$ but I think even just starting with Gauss's $${}_2F_1$$ would be a great addition and probably important enough to deserve its own definition. I can imagine developing the theory along the following lines:

define $${}_2F_1$$
prove it is analytic in the disc
prove it satisfies the hypergeometric differential equation

Possibly most of this effort would be developing API for power series (I'm not sure just how much we have, though we do at least have some versions of the ratio test).
More ambitious goals might be:

prove that it can be analytically continued (taking the usual branch cut $$[1, \infty)$$)
derive Schwarz's list (i.e., classify parameters for which $${}_2F_1$$ has finite monodromy)

Also proposed on Zulip here which might be a useful place to discuss any work in this direction.

@EdwardWatine Curious to know if you're still working on this? @ocfnash Would love to give this a shot

@arulandu I suggest raising this also on Zulip where most discussion takes place.


Fix new dialog creation, if no input var in terraform template and spec added

Fix new dialog creation, if no input var in terraform template
Add spec's terraform template dynamic dialog creation to cover various scenarios.

With the relatively complex number of scenarios now and the fact an exception already slipped through I think it'd be a good idea to write some spec tests covering this

With the relatively complex number of scenarios now and the fact an exception already slipped through I think it'd be a good idea to write some spec tests covering this

Yes, will add ..

With the relatively complex number of scenarios now and the fact an exception already slipped through I think it'd be a good idea to write some spec tests covering this

Yes, will add ..

Spec added

All comments minor, https://github.com/ManageIQ/manageiq-providers-embedded_terraform/pull/77/files#r1807080713 is the only one I really don't want to merge as-is

Backported to radjabov in commit dbf6da49ba8c4e019742bbc3cab5596279f406e5.
commit dbf6da49ba8c4e019742bbc3cab5596279f406e5
Author: Adam Grare<EMAIL_ADDRESS>Date:   Tue Oct 22 09:04:44 2024 -0400

    Merge pull request #77 from putmanoj/fix-dialog-if-no-input-var

    Fix new dialog creation, if no input var in terraform template and spec added

    (cherry picked from commit 2f44806b4b64cc56a68fb2e6af6cbe23149e798e)


Always setup rpath

Reasoning:
a) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) -> builds .so
b) static libs links the above
c) a code generator links the above (e.g. qsb in #27279 complaining about not finding libGLX.so.0 while building qtdeclarative)
as such vcpkg needs to always fix the rpath because otherwise required build tools might be looking for shared libraries.
cc @Osyotr

vcpkg needs to always fix the rpath

This was discussed in the original PR. https://github.com/microsoft/vcpkg/pull/23035#discussion_r921583704
I would like to make it default on x64-linux, too.
@vicroms

hmm @autoantwort does vcpkg need a similar elf patch on osx? Seems like the current approach of @Osyotr doesn't work there?

I have no idea. I don't use arm64-osx-dynamic.

I have no idea. I don't use arm64-osx-dynamic.

This is not about osx-dynamic but more about vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) and if we have to do the same as linux does with fixing rpaths on osx.
https://stackoverflow.com/questions/12521802/print-rpath-of-an-executable-on-macos
https://github.com/bazelbuild/bazel/pull/4589
https://wincent.com/wiki/@executable_path,_@load_path_and_@rpath

Pinging @Neumann-A for response. Is work still being done for this PR?

@Adela0814. Ideally the TODO needs to be taken care of.

superseded by https://github.com/microsoft/vcpkg/pull/36056


Report nightly release-0.3 CI failure

This should trigger slack workflow that sends message and emails to relevant channel when nightly tests fail on release-0.3 branch.
Starting with release-0.3

Workflow screenshot:

Merging, let's see what will be reported this night and will follow-up on that.

Found out it is problematic to send email (authenticate with enterprise gmail account, so using slack only).


fix: various AOT static config issues

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


feat(EMI-1604): Add header content in Saves tab

This PR resolves EMI-1604

[!NOTE]
This work is hidden behind the feature flag AREnablePartnerOffer (except the changing the Artwork List bottom sheet modal structure)

Description

This PR adds a header to the Saves tab, as well as adding a new popover
It also refactors the Artwork Lists bottom sheet modal structure to allow opening the Create New List to show up independently from the "Select Artwork List" bottom modal
Screenshots & Videos

Andorid
iOS

New header

New Popover

Create New List

Demo Video

Follow-up work
We need to update PARTNER_OFFER_HELP_ARTICLE_URL to the new help article when it is available
PR Checklist

[X] I have tested my changes on iOS and Android.
[X] I hid my changes behind a feature flag, or they don't need one.
[X] I have included screenshots or videos, or I have not changed the UI.
[X] I have added tests, or my changes don't require any.
[X] I added an app state migration, or my changes do not require one.
[X] I have documented any follow-up work that this PR will require, or it does not require any.
[X] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

Adds a new header to the Saves tab - mrsltun
Add new popover for Saves header - mrsltun

iOS user-facing changes

Android user-facing changes

Dev changes

Update Artowrk Lists bottom sheet modal structure to show modals independently - mrsltun

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Cross-platform user-facing changes (Adds a new header to the Saves tab - mrsltun,Add new popover for Saves header - mrsltun)
Dev changes (Update Artowrk Lists bottom sheet modal structure to show modals independently - mrsltun)

  Generated by :no_entry_sign: dangerJS against 8286e2a07d91c41bb4f90e3f6fac3cd46eabb1b2


Support span in error status when http code >= 400, and add trace#Error in toolkit API

1、add logic when http status code >= 400, set span isError is true by span.Error method
2、add new method trace.Error for user set san isError to true by self

Also, please update the CHANGES.md, thanks!

Also, please update the CHANGES.md, thanks!
Done

@alexwn Are you still working on this?

@alexwn Are you still working on this?
yes, do you have any question? what else should I do?

No, there isn't anything to ask. I am just checking whether the CI fix has any blocks.

No, there isn't anything to ask. I am just checking whether the CI fix has any blocks.

Yes, I saw it. I just changed the code and submitted it

Still failing. You may still need to make CI runnable locally, which is much easier to see the error and fix.

Still failing. You may still need to make CI runnable locally, which is much easier to see the error and fix.

I think it should be true, Should I change the gin plugin code?

If that case is using http component as well, then it is affected by your codes.

If that case is using http component as well, then it is affected by your codes.

entry span is not affected by my code, exist span is effected by my code. I just change two span's isError=true, exist span passed, entry span failed. So I should only change the exit span' isError=true and leave the entry span original?

If that case is using http component as well, then it is affected by your codes.

entry span is not affected by my code, exist span is effected by my code. I just change two span's isError=true, exist span passed, entry span failed. So I should only change the exit span' isError=true and leave the entry span original?

If you want to make changes to another plugin(gin), then you could make them aligned. It depends on you. Ideally, all HTTP RPC relative plugins should follow your new proposal.

@alexwn This change seems to impact other plugin tests as well, please fix them.

@alexwn This change seems to impact other plugin tests as well, please fix them.
kratosv2 except.yml data, one segment expect status_code=200, but actual no status_code, this segment's component is mux(5017), I saw the code of plugin(mux), it have logical to set the status_code, I have no idea how to fix it.


Add concise DISCLAIMER for migrate2rocky.sh

I propose we add a single, clear DISCLAIMER to this directory in the form of a separate file which can be included / linked in the README and from other sources (eg. Technical Notes / Guides / Documentation).
The full DISCLAIMER.md should be shown if/when migrate2rocky.sh is run with the -h option and a short DISCLAIMER referencing the full DISCLAIMER.md (via a link and/or suggestion to run with -h) should be shown before a migration is attempted.

I like this idea, can you do up a PR for this?


feat: Updated avm/res/automation/automation-account to use the newest solution module

Description
Updated the module to use the newest version of the cross-referenced module br/public:avm/res/operations-management/solution:0.2.0.
Pipeline Reference

Pipeline

Type of Change

[ ] Update to CI Environment or utilities (Non-module affecting changes)
[x] Azure Verified Module updates:

[ ] Bugfix containing backwards-compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in version.json:

[ ] Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description.
[ ] The bug was found by the module author, and no one has opened an issue to report it yet.

[x] Feature update backwards compatible feature updates, and I have bumped the MINOR version in version.json.
[x] Breaking changes and I have bumped the MAJOR version in version.json.
[ ] Update to documentation

Checklist

[x] I'm sure there are no other open Pull Requests for the same update/change
[x] I have run Set-AVMModule locally to generate the supporting module files.
[x] My corresponding pipelines / checks run clean and green without any errors or warnings

Converting back to "draft" until #3718 is merged. Then I will import the gallerySolutionType from the solution module.


Custom even parameters should not be encoded but passed as is.

Currently custom even parameters are base36 encoded in case of numbers and encoded as t/f for booleans. These values are not useful when mapping, as the mapping exposes no functionality for decoding these back into something that parses into the respective primitives again. Pending #91 they should be sent as is, rather than encoded.
This will likely be fixed as part of the fix for #92.

This was fixed in 68eb1238599bca3532ff9d066145962fcef3ca85, which was merged as part of pull request #94.


Request for Open Sourcing Post-Training Data and Clarification on Additional 100K Data for Video version

Thank you for your valuable contributions. Could you please consider making your post-training data available as open source? Additionally, could you clarify what constitutes the additional 100k+17k data points when compared to the image-based version?

The dataset is: https://huggingface.co/datasets/MBZUAI/VideoInstruct-100K

Thank you.

the acitvitynet video data is hard to download, could you help to provide other link such as baiduyun?


socket is not active if session is out of scope

Hello,
Please find part of my code, it is not full, but I hope problem is clear from it: https://gist.github.com/anonymous/1087c06617dccd8b8f1d9c13e3da7699
If session goes out of scope - it do something with socket that it does not work. It is necessary to prolongate session lifetime then socket is ok.
Is it scaproust lib bug?
Thank you,

Hello,
Yes you need the session to be alive for anything to work. Once the session goes out of scope, the "backend" system is terminated and anything created by the session will also stop working.
Regards,
Benoît

Is it possible to make it owned by the Socket? Because now it is necessary to hold pair or structure to keep it.
Regards,

It is not possible to make the session owned by the socket, at least with the current design.
First, the session is meant to create several sockets, and because the socket and device creation functions require a mutable session.
I guess a solution for your use case would be, like you mentioned, to make a new struct, owning the session and the socket, and put all the required functions on that new struct type.
I'm aware this is less convenient than the current nanomsg design for example but I have not been able to find a design addressing all the concerns for the moment.
Regards,
Benoît

I came across this because I was curious about the session as well. As far as I know unlike ZeroMQ, nanomsg library doesn't use a session to store state. See for example: https://github.com/go-mangos/mangos/blob/master/examples/reqrep/reqrep.go
I guess this is a bit of a deviation in the design?

Scaproust has a background worker thread for all I/O and since Rust requires every memory region to have a unique owner, I had to create one. I chose to introduce a session and to make the end-user responsible for creating and destroying it because it was much easier than introduce a shared mutable static variable.
If I had to choose now, I would probably design it differently. For example I could require the end-user to deal with creating the tokio event-loop, and the need for a session would be much less obvious.

Thanks for the explanation, I guess it makes sense that the restrictive nature of Rust's compiler means it would be necessary to modify the API slightly from the original implementation.


add preliminary schedule

Hm, it doesn't render in my browser. Perhaps Jekyll doesn't support markdown tables. Does it work for you?


Release APKs

Summary:
It would be great if we could maintain release APKs for any beta/prod release that we make. Right now, if I need to do an upgrade testing from say v2.8.0, I will have to check out that branch and build it locally to install it. It would be nice to maintain these APKs under Github releases.
https://github.com/commons-app/apps-android-commons/releases

So, you mean, automatically? :-)

Yes, Travis can be set up to do this automatically.
https://docs.travis-ci.com/user/deployment/releases
I also found a nice little tutorial explaining the steps:
http://szagurskii.com/blog/how-to-deploy-apk-to-github-releases-with-travis-ci/

Sounds good. AFAIK this would need to be set up by the person who deploys releases, right? I'll try to set that up when I have time. :)

@misaochan If this is a bit tricky can we at least have the APKs along with the beta/prod releases that we do. It won't need any Travis setup. Whenever you push a new tag to Github, you will have to manually edit the tag to add the APK as well.

Having this will help us fix #3311 as appetize requires a publicly accessible link of the APK to be available.

Sure, I can do that. :) Remind me if I forget, please.

Tip:
Release APKs can be downloaded at https://f-droid.org/en/packages/fr.free.nrw.commons/ , see the "Download APK" link under each version, leading to for instance https://f-droid.org/repo/fr.free.nrw.commons_1036.apk
The signature is different so you may have to uninstall previously installed versions, in that sense it can not really be used to test migrations.

If there is any benefit with attaching the production APK to each release note, do let me know. I could do the same. There's no problem with that.


Link to RKI archived app statistics gives 404 error

Where to find the issue

https://www.coronawarn.app/en/faq/results/#numbers_RKI "Where can I find numbers and statistics about the Corona-Warn-App?
https://www.coronawarn.app/de/faq/results/#numbers_RKI "Wo finde ich Zahlen und Statistiken über die Nutzung der Corona-Warn-App?
https://www.coronawarn.app/en/blog/2021-08-05-statistictiles/ "Explanation of the statistic tiles in the Corona-Warn-App"
https://www.coronawarn.app/de/blog/2021-08-05-statistictiles/ "Erläuterung der Statistikkacheln in der Corona-Warn-App"

Describe the issue

The above CWA pages include a link to https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/WarnApp/Archiv_Kennzahlen/WarnApp_KennzahlenTab.html which gives error 404 file not found ("Diese Seite gibt es nicht.")

Since the app uses the blog link to explain statistics, the error also affects the app

Steps to reproduce

Open the above links and click on the RKI link https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/WarnApp/Archiv_Kennzahlen/WarnApp_KennzahlenTab.html
For the app, scroll down to statistics tiles, tap on icon top right of "Warnings by App Users". Scroll down to the bottom and click on blog link. In web browser scroll down to 'Tile "Warnings by App Users"' then at the bottom of this section under References tap on [1]RKI - WarnApp Kennzahlen.
Execute npx cypress run -s cypress/integration/hybrid/check_links.js -c baseUrl=https://coronawarn.app

Suggestion
Remove references to the removed RKI Key Performance Indicator archive from the FAQ articles and from the blog article.

PR #3047 submitted to resolve this issue

@MikeMcC399
What's your take on replacing the 404 link with one to https://www.coronawarn.app/de/blog/2021-10-01-facts-and-figures/ instead of removing it completely? I have no strong opinions in either directions.

@Ein-Tim

What's your take on replacing the 404 link with one to https://www.coronawarn.app/de/blog/2021-10-01-facts-and-figures/ instead of removing it completely? I have no strong opinion in either direction.

Thanks for your comments. I had forgotten about this blog posting and you are right that this would be a possibility to link to. I will put the PR into draft status and wait for feedback from the Open Source Team.

PR #3047 has been merged. As commented in https://github.com/corona-warn-app/cwa-website/pull/3047#issuecomment-1193285878 the only additional information available from links in the blog post https://www.coronawarn.app/de/blog/2021-10-01-facts-and-figures/ concerned hotline statistics which have not been published since September 2021.
The hard error executing npx cypress run -s cypress/integration/hybrid/check_links.js -c baseUrl=https://coronawarn.app has been resolved.
As in the past, the test is not 100% reliable due to network connections to third-party sites such as https://www.instagram.com and https://plotly.com/. When it fails, the best option is to run the test again.
Closing as resolved.


Unable to create configured logger

Describe the bug
For all unhandled errors, I see the below error message in my laravel.log file.
When setting LOG_CHANNEL=stack (['daily','bugsnag']), the error is not reported to the BS dashboard. If I set LOG_CHANNEL=bugsnag I still see that error above, but the error is reported to the BS dashboard.
Manual reporting like Bugsnag::notifyError('TestError', 'Testing bugsnag errors',... works as expected.
Steps to reproduce

I have a normal installation
Nothing I can see that's different from my other BS installs that are working fine
I've done php artisan config:clear etc doesn't seem to help

Environment

Bugsnag version: 2.23.0
PHP version: 8.1.4
Composer version: 2.2.6
Laravel version: 9.5.1
Lumen version (if any): n/a

Error messages:
[2022-03-24 11:53:39] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (ErrorException(code: 0): Trying to access array offset on value of type null at /Users/xxxx/xxx/xxx/xxx/xxxx/vendor/bugsnag/bugsnag-laravel/src/BugsnagServiceProvider.php:193)

BugsnagServiceProvider line 193

I believe it's fixed. I tried removing bugsnag and noticed an error: Fatal error: Uncaught ReflectionException: Class "config" does not exist in xxx/src/Illuminate/Container/Container.php:877. Looked into that and ended up doing php artisan config:cache which writes the bootstrap/cache/config.php file. The error went away.
Seems like bugsnag needs that cached config in order to work properly. I never had that issue before. Maybe it's a change in the package??

Hey @solarsilk, glad to hear the issue is resolved! For additional config of Bugsnag other than just setting the API key, I would have expected php artisan vendor:publish to have been run in any case prior to configuration being made during the install. The published config file should then be edited.

Thanks @xander-jones . The installation instructions say "If you’d like to configure Bugsnag further, create and edit" which implies it's optional. Are you saying that publishing the config for this package is a requirement? From my experience above, it seems like it is.

Hey @solarsilk, sorry I wasn't clear whether you were using environment variables to set your Bugsnag configuration, or using the config/bugsnag.php config file. You don't need to use the config file. But, if you're using environment variables and have previously cached your environment variables, you'll need to keep updating the cache every time you make changes to the .env file.
Laravel don't suggest that you cache environment variables in a local dev environment, so might be worth running php artisan cache:clear if you want to continue using environment variables without needing to run php artisan config:cache each time something changes, or switch to using the configuration file method instead.

thanks @xander-jones I cleared everything and published the config/bugsnag.php and I think everything is good now. Thanks.


Web: Make AttrBuilderContext Composable

https://github.com/JetBrains/compose-jb/blob/471d5c652db20286d478c25c2b3d80ab4200215a/web/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Base.kt#L21 It is already Composable, but this feature/annotation is no forward to other calls, namely: https://github.com/JetBrains/compose-jb/blob/471d5c652db20286d478c25c2b3d80ab4200215a/web/core/src/jsMain/kotlin/org/jetbrains/compose/web/elements/Base.kt#L109
Use case:
Use remember in the styling api to create ids automatically.

Could you please add a snippet how you would use remember in style or attrs blocks?

@eymar What the test of the PR? :D https://github.com/JetBrains/compose-jb/pull/2308/files#diff-96fe1b0a96b139b5b9b4fd22973cc6e48a52b8eb3fd477296bc29cb40b7b85b8

I did try to make style composable too, but the non composable test attrsBuilderCopyFromPreservesExistingAttrs failed (or my setup is somehow broken...)

Div({
                val color by remember {
                    derivedStateOf {
                        if (colorFlip) {
                            Color.green
                        } else Color.red
                    }
                }
                style {
                    backgroundColor(color)
                }
            })
        }

Perhaps, I'm missing something in this snippet. As I understand it now, we can move val color by remember ... above the Div, and use color in style {} and it should work.
Maybe this test is just to validate that composable attrs block works.
So maybe, your use-case Use remember in the styling api to create ids automatically. could help me understand your goal better. How would remember help create ids automatically?

@eymar Thanks for the feedback! The goal is to support display-grid (and some other css features): https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout
In the sample of MDN they use classes and bootstrap-compose generates these class names automatically with a UUID. So we use this:
Style {
    val classname = remember { "_${UUID()}" }

    className(classname) style {
        // apply the styling
    }
}
return classname

and the same class name in the actually html element.
But at the end, I dislike this behaviour. Instead I should use the AttrsScope.style function with "in-memory" style sheets instead writing the style in the DOM and use the same class name.
While this PR would simplify my current implementation, I think, it would be better to implement it with AttrsScope.style instead, somehow in the long term.
So after rethinking the current bootstrap-compose implementation I would keep the behaviour in compose-jb and change my implementation instead.

To achieve what you need, would something like below snippet be helpful?
Div(attrs = {
    val id = composableCalculation { // Composable calls are allowed here
        return@composableCalculation remember { "someGeneratedId" }
    }
    id(id)
}) {
    Text("Hello World!")
}

composableCalculation could rely on a fact that in the end attrs are applied in Composable scope. It can be an unsafe assumption, because anyone can create AttrsScope instance and then apply attrs lambdas on it, and composableCalculation will fail with an error for self-instantiated AttrsScope.

If AttrBuilderContext would become @Composable, that would mean that it could call any and all composables, right? What is the expected behaviour if I call e.g the following?
Div(
    attrs = {
        Text("Hello, AttrBuilderContext!")
    }
) {}

Would / should that do

nothing, or
evaluate in-place and render that text at the current position in the HTML tree, or
fail to compile, or
crash at runtime, or
something else?

@erikhuizinga Yeah, that's true and I think, we should not to enable @Composable in attrs scope because the usage is unambiguous, like you said. The option composableCalculation would be more explicit, but still unsafe.
Ideally, the sample should not compile, but this would only work with some marker annotation. Even a @DslMarker is still unsafe, because you still could overwrite it with attrs = { this.Text("") }.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Add vcn_id to output variables

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Description
When you consume this module in your terraform script by referencing it like this:
module "oke" {
  source  = "oracle-terraform-modules/oke/oci"
  version = "2.1.4"
  # insert the 23 required variables here
}

you do not have access vcn_id created by oracle-terraform-modules/base/oci module. This makes it hard to add new respources to the same VCN.
Adding vcn_id to output variables will help anybody who needs to augment OKE deployment with additional resources provisioned in the same VCN (e.g. autonomous database).
New or Affected Resource(s)
the feature can be implemented by adding following code to outputs.tf:
output "vcn_id" {
  description = "VCN OCID"
  value       = module.base.vcn_id
}

Potential Terraform Configuration
Parrent module can then access vcn_id value like this:
vcn_id = module.oke.vcn_id

References

Fixed in #147. Added a few more network parameters in case you need them


Update SphinxSearch.php

Allow column ID to be set from config and use it for legacy systems over default of ID

Already fixed.


[ENH] [GUI] Console in GUI should automatically scroll down to show latest info

It's not obvious to the user when there is useful info (or errors) printed to the console because the console never scrolls to show the most recent messages.

We could entertain the idea of switching to prepending to the top of the log as a solution, which would be relevant for #945 as well


Include settings for tracking

For the Plugin, allow the users to set if they want to track Always, Never or only for that solution.

This is how it looks on Visual Studio plugin:
When you open the context menu of the solution.

Then you can control tracking individually for each.


The describe command mishandles the receive() function

What I did:
Ran surya describe on this contract
I got this output:
 +  AuctionHouse (IAuctionHouse, ReentrancyGuard)
... skipped output ...
    - [Ext] <Fallback> ($)
    - [Ext] <Fallback> ($)

Version:
surya --version
0.4.3-dev.2

Possible fix
Pretty sure this:
https://github.com/ConsenSys/surya/blob/4340e703434e4314e778f558675c70d821714cf0/src/describe.js#L85-L86
Just needs to look more like this:
https://github.com/ConsenSys/surya/blob/4340e703434e4314e778f558675c70d821714cf0/src/graph.js#L200-L203

Thank you! ❤


Extensions compression

The whole branch was rebased on top of another change that enforce -ansi at compile time. This makes compilation on darwin toolchain successful. The 4 commits from that pull request were mostly unchanged (except for the format of comments).


How to add static file in html when there is non ascii char in file path

In my static image path, there are some Chinese char in path. So I can not add them into html file. I use flask, it use jinja to load static file. I can easily move the whole file folder into a folder which does not contain Chinese char in path. But I want to find some else better way to fix this bug

Let system use UTF8 to encode the path string. Then the bug can be fixed.
In backend python file, add these code:
import sys
reload(sys)
sys.setdefaultencoding("UTF8")


feat: Generate meta.yaml dependencies

This PR is an alternative to #28 that is based on generating separate dependency files instead of modifying meta.yaml in place. It is a much simpler changeset as a result. I considered putting the data into the conda_build_config.yaml file instead of using separate YAML files for each dependency set, but I rejected that option because dfg is based around writing separate files sections for every include list and the only way to map that to a single conda_build_config.yaml file is to do a lot of in-place overwriting, which we have generally decided to avoid unless absolutely necessary, i.e. for pyproject.toml (otherwise we could just do that for meta.yaml too). Willing to be convinced otherwise though.
In order to support split recipes, this approach requires writing separate files for every section in every output, which may be too verbose for our liking. Curious to hear opinions there.

For versions that need to be in conda_build_config.yaml, one thought that I had is that I'm fairly certain that there's no specific reason you have to encode only a version in that file, you could also include the package names themselves. For instance, in this first example I believe the following would be equally valid:
python:
    - python 2.7
    - python 3.5

with
package:
    name: compiled-code
    version: 1.0

requirements:
    build:
        - {{ python }}
    run:
        - {{ python }}

If that works then we ought to be able to generate the entire config file with dfg. Not sure if we want to go that route or if that is in scope for this PR, though.

We should also keep in mind the alternative proposed by @jakirkham in https://github.com/rapidsai/rmm/pull/1220. I've already outlined my thoughts on the pros and cons there, so just restarting that conversation now.

After reading about the compiler() function in the two sections below, I don't think we need to use them at all.
It seems like that function is mostly used for cross-compiling, which we don't do (we natively compile on amd64 and arm64).

https://docs.conda.io/projects/conda-build/en/latest/resources/variants.html#extra-jinja2
https://docs.conda.io/projects/conda-build/en/latest/resources/variants.html#cross-compiling

From these conda-forge docs, it seems that compiler('cuda') is only responsible for adding nvcc to the build requirements and also adding cudatoolkit to the run requirements. But we generally ignore those run requirements anyway (1,2) since we manage that ourselves.
So I'm assuming we can just replace compiler('cuda') with nvcc.
@jakirkham, can you corroborate all this?

Overall this seems like a rather trivial change and I would have no major objections. But I'm wondering whether it is too trivial, considering that a conda_meta file can be fairly complex.

To be clear, we are not generating a full recipe anymore, just simple YAML files containing dependency lists. That's basically a subset of what we already need for conda environment.yaml files (same thing, but without the channels). That's why this is so simple right now.

Can you add at least one valid example input and expected output (and thus test)?

I will when I get a chance. This work has temporarily been deprioritized since we don't want to make this kind of change until after we have CUDA 12 compatible recipes, but once that's done I'll be getting back to this and will add some then.

How does this mesh with tools like Grayskull?

Grayskull's goals are a bit different. IIUC it's for generating an entire recipe given a PyPI package or a repo. However, the resulting package will be too simple for our purposes since it won't encode all of the extra information we put in our recipes around things like run_exports for instance, nor will it support complex features like split outputs. This PR is an approach that lets us share dependencies with the rest of our infrastructure while still having the flexibility to fill out the non-dependency parts of the recipe, which strikes the best balance for us.

Overall this seems like a rather trivial change and I would have no major objections. But I'm wondering whether it is too trivial, considering that a conda_meta file can be fairly complex.

To be clear, we are not generating a full recipe anymore, just simple YAML files containing dependency lists. That's basically a subset of what we already need for conda environment.yaml files (same thing, but without the channels). That's why this is so simple right now.

So the conda-meta semantics here means "this will be needed for a conda recipe" rather than "we are generating a conda-meta file"?

How does this mesh with tools like Grayskull?

Grayskull's goals are a bit different. IIUC it's for generating an entire recipe given a PyPI package or a repo. However, the resulting package will be too simple for our purposes since it won't encode all of the extra information we put in our recipes around things like run_exports for instance, nor will it support complex features like split outputs. This PR is an approach that lets us share dependencies with the rest of our infrastructure while still having the flexibility to fill out the non-dependency parts of the recipe, which strikes the best balance for us.

Sure, but I would be surprised if some of our downstream processing tools wouldn't share at least some of the logic. Or on the flipside, maybe a Grayskull generated recipe could be further processed. Or we add missing features to Grayskull. Maybe none of this is appropriate, but I wanted to mention this to make sure it has at least been considered.

So the conda-meta semantics here means "this will be needed for a conda recipe" rather than "we are generating a conda-meta file"?

Correct. Happy to rename if you think there is a better way to convey this.

Sure, but I would be surprised if some of our downstream processing tools wouldn't share at least some of the logic. Or on the flipside, maybe a Grayskull generated recipe could be further processed. Or we add missing features to Grayskull. Maybe none of this is appropriate, but I wanted to mention this to make sure it has at least been considered.

These are good thoughts. My opinion here is that conda recipes are fairly complex configuration files, and we don't want to be in the business of dealing with them directly. dfg is purely about dependencies.
In the case of pyproject.toml files, we can modify in place largely because a package exists (tomlkit) that supports format-preserving in-place modification. Since conda recipes are a superset of YAML (they also support Jinja etc), we have no way to do the same without rolling our own parser. Moreover, the complexity of split recipes means that we would need a lot of complexity in dfg to handle writing to subsections that are in split outputs vs at the top level of a recipe. As a result, we chose to go this route of generating separate files for each dependency set. Even if we were able to modify in place, however, we still wouldn't want to modify any section aside from dependency lists. As a result, I would expect that the only overlap we have with Grayskull is in Grayskull's ability to generate the dependency sections of meta.yaml from either setup.py or pyproject.toml (I haven't looked at how it does this). I'm not sure how much work it's worth to try and find that common ground in order to share code/logic.

I'm going to close this for now. A decent bit has changed since this initial implementation. Also, depending on if we move forward with https://github.com/rapidsai/build-planning/issues/47 there may be much better ways to accomplish our goals in this PR (i.e. writing out meta.yaml from a template directly). We should still address this issue, but the code in this PR is probably no longer the best way to do so.


Packaged app doesn't work with electron-log

I was trying to use https://github.com/megahertz/electron-log as recommended in the electron-boilerplate repo. However it seems like the required process.env variables aren't present in the packaged app (but they are when running npm run dev).
The only flag that is present is process.env.NODE_ENV when accessing from the main.development.js file. Is this an expected behavior or is this a bug? I imagine I could write the values at startup but it seems like if they are already added in development it should also work in production. Thoughts?

Where did you see the recommendation of https://github.com/megahertz/electron-log?

@amilajack oh, i'm sorry that was a typo, it is recommended in the electron-boilerplate repo in the auto update section. However, it works when building https://github.com/iffy/electron-updater-example using standard electron-builder so I thought it must be affected by something with electron-boilerplate

I believe ENV variables are stripped out by webpack at compile time. @dustintownsend can you confirm this?

Yes Webpack will replace the if (process.env.NODE_ENV==='development') flags with if (false) and then everything in that block is removed as dead code.
Here are a couple things to look into (I haven't tried these so don't know if they work):

https://github.com/babel/babili/tree/master/packages/babel-plugin-transform-inline-environment-variables
https://github.com/babel/babili/tree/master/packages/babel-plugin-transform-node-env-inline

That second link, I think, would allow you to create a package-dev script that can transform the if NODE_ENV is development into if (true), so it won't be removed by webpack.
For example:
Update the .babelrc to use this plugin then update the main package.json:
"build-main-dev": "cross-env NODE_ENV=development node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.electron.js --progress --profile --colors",
"build-renderer-dev": "cross-env NODE_ENV=development node -r babel-register ./node_modules/webpack/bin/webpack --config webpack.config.production.js --progress --profile --colors",
"build": "npm run build-main-dev && npm run build-renderer-dev",
"package-dev": "npm run build-dev && build --publish never"

I didn't test any of that, but just to give you an idea of something to try.

@dustintownsend Thanks for the info, the part I was more confused about was the ENV variables that aren't inline. For instance when accessing process.env.HOME in a debug build it is set to /Users/johnryan/. In production though it is undefined (same for a number of other ENV vars).
I was just trying to figure out what is different between npm run dev and npm run package that causes all those other vars to be missing

@johnryan I don't use any env vars outside of process.env.NODE_ENV and process.platform.
I'm not sure if it is Webpack pulling them out or maybe the environment is different after it is packaged up, so that is why it is undefined.
With that being said I think it is best to avoid using env vars for things like getting the users home directory. In that case you should use the Electron API.
const { app } = 'electron';
const homeDir = app.getPath('home'); // will return user's home directory

See the Electron Docs for more details on that.

@johnryan Look through this discussion:
https://github.com/chentsulin/electron-react-boilerplate/issues/455

@dustintownsend Totally agree, I think I will use the electron api's to make this work for my use case thanks.
@amilajack Seems like WebPack is doing something with the packaged app to change the behavior (though still not sure specifically what is causing the env variables to be gone in the prod build).
In any case thanks for the help, i'll take dustin's advice and update this ticket if I find any other relevant information.


Automate manifest version additions during releases.

It should be possible to automate the addition of a new version to manifest.json for site generation during a new release.

This will, most likely, not be relevant in the future.


Documentation proposal: Remove unecessary context.preview from getStaticProps code example

In the README.md it says:
export async function getStaticProps({params, preview = false}) {}

The README.md mentions that NextJS preview-mode can be used. But I would argue that it's confusing to include this context.preview variable in the example because it will never be true unless the user sets up the necessary API endpoint.
It really seems like Sanity does not need NextJS's preview mode because it checks to see if the user is logged into Sanity, and relies on that login session to fetch preview data.
So, I propose:

Removing unused example code related to NextJS's preview mode.
Expand the documentation to emphasise the difference between this way of previewing vs. NextJS's preview mode.
Optionally create a separate NextJS preview mode example, and explain when one should consider using it. If there's no need to use it the docs should be explicit about that.

Finally, I'd like to say thanks for building a great product. That's why I took the time to write this up because I think this issue might be a step towards making Sanity previews easier to implement.

Great suggestion, I was quite confused by this as well, and people have already started to copy my confusing code 😅
Maybe also remove the entire getClient/previewClient part as well as it's adding to the confusion and not really necessary for the usePreviewSubscription approach..?

@nilsnh can we write a better documentation example as a proposal? I'm so confused by the example that is given.

Is there any update on this one? I'm a bit confused about the example given and how it links with the preview mode in nextjs.

Hey, just wanted to shed some light here, as much for others as for myself, as I've just grasped this concept.
Actually the two different approaches stem from the different ways in which the next-sanity client and the @sanity/client handle authenticating the user:
TL;DR:
With next-sanity export async function getStaticProps({params, preview = false}) {} is only indeed needed if you want to  _toggle the preview mode on and off.
But for @sanity/client, besides preview you actually need to use setPreviewData inside the preview API route, to send the Sanity Token, then grab it like this: getStaticProps(params, preview = false, previewData})
Detailed explanations below:
At first I didn't understand the purpose behind the whole next-sanity package, it seemed simple enough just to use @sanity/client directly in Next.js. But look at the two approaches below and the advantages become clear:
using @sanity/client aka "the hard way"

all requests made via sanityClient(options).fetch...etc are NOT authenticated by default. They can only read public data, and can't access draft documents for previews
to get access to drafts, you need to provide a token inside of the options object, which is a read token that you need to manually create in the Sanity admin back-end and add as an environment variable inside of next.
the env variable needs to be private, not public otherwise you will expose your token. so something like SANITY_API_TOKEN rather than NEXT_PUBLIC_SANITY_API_TOKEN
but private environment vars are not accessible to client-side, where you make your preview queries (that's the whole point) so  you can only access SANITY_API_TOKEN server-side, which is to say, inside of API routes you create in the /pages/api folder, since they run code on the server, not the client.
but this means that, for previews, you actually need to pass the SANITY_API_TOKEN via the API route code you write -  most likely like this:

// /pages/api/preview.js
...
 res.setPreviewData(
    { token: process.env.SANITY_API_TOKEN },
    {
      maxAge: 20, // this is optional, to control the amount of time you set the preview mode active for, per request made to `/api/preview`, or whatever you named your preview API route
    }
  );
...

then, inside of a page (overly simplified example, would need refactoring for actual use:

// /lib/sanity.js - or wherever you choose to put this
import createSanityClient from '@sanity/client'

const options = {
 <project ID, dataset, API version, etc>
}

export const sanityClient = createSanityClient(options)

export function createPreviewClient(token) {
  return createSanityClient({
    ...options,
    useCdn: false,
    token,
  })
}

export function getSanityClient(preview) {
  if (preview?.active) {
    return createPreviewClient(preview.token)
  } else {
    return sanityClient
  }
}

// /pages/index.js
import {getSanityClient} from "lib/sanity"

getStaticProps(params, preview = false, previewData}) {
    const previewInfo = {
      active: preview,
      token: previewData?.token
    }
    const pageData =  getSanityClient(previewInfo).fetch(<your query here>)
   ...etc
}

using next-sanity, aka "the easy way"

the authentication check is done automatically behind the scenes with getCurrentUser()
next-sanity's client checks to see if the user is logged into the sanity instance
if they are logged in, then **ALL REQUESTS made via a client created with the createClient() method of the next-sanity package will be authenticated, same as having a token priovided via the method above.
You don't need to bother with passing the SANITY_API_TOKEN env. variable, at all. It's not needed.
simply:

import { createClient } from "next-sanity";
import sanityClientConfig from "lib/sanity-config.js"

getStaticProps(params, preview = false}) { // no more "previewData" needed
    // one line does it all, we just need to turn off the CDN for preview
    const pageData =  getSanityClient(...sanityClientConfig, useCdn: !preview).fetch(<your query here>)
   ...etc
}

This way, logged in users always get the preview data, if your (query is set up to prioritize fetching drafts, that is). You could improve this to allow logged in users to ignore preview data and see only the published data, if that's needed, somehow.

Hi all,
Just pinging this thread to let you know we're working on updating tooling and new documentation regarding preview mode. You can keep an eye on it here.
And just to clear a few things up:

At first the preview mode in Next.js were only used by us to switch statically generated pages into an "SSR"-like mode where fresh draft data and drafts are fetched.
It fixed the wonky behavior where you would see old content while the page is loading, then a lot of jank as the drafts loads in once JS is done booting up.
Now it's evolved to be more important as browsers like Safari no longer work with this mode as it relies on cookies that use a different origin than the page you're on and the res.setPreviewData({token}) is now vital for Preview Mode to work outside of Chrome. This PR implements a flow like that to enable Safari to run Preview Mode..

Forgot to mention we've updated the cms-sanity example over at Vercel with more information and an easier setup for Preview Mode that can hopefully help make it easier to grasp while we work on the new docs 😄

We've just released v2.0.0 which has updated docs that outline how to do things the "easy way" ™ as well as how to provide a viewer token in a secure way. Checkout @sanity/preview-kit for more docs on how to build realtime previews outside of Nextjs' Preview Mode.


Added skflow link to README

Can one of the admins verify this patch?

I'm adding a section to the website in #1232, and pointing to it from the README. There's a number of them I still have to add, and I'd like to keep the README for resources contained inside the repo.

Thanks!


The user email is shared only once

Hi, Is it normal that the user email is showed only on the first sign up?
...on the following logins it will be just and empty string.
Thanks

Uh ok seems the expected behavior. https://developer.apple.com/forums/thread/121496
But I think some kind of internal plugin cache would be better. What do you think?

I've faced same problem few days ago.
personally I use NativeStorage to cache user's email.
It just work but Idk it is proper way.

Using NativeStorage doesn't suffice: if the user uninstalls and reinstalls the app (thus clearing NativeStorage), the device still stores the Apple Sign In configuration from the first time. Hence, on reinstall, it will be treated as just another login and, since NativeStorage was cleared), the app has no way of every retrieving the email again. The user would have to manually go into Settings->Apple ID->Password & Security->Apps Using Apple ID->{appName} and then tap on "Stop Using Apple ID". This is probably not the best way to handle this.

The only reliable solution is to communicate the token to your backend servers, which then communicates to Apple servers, where you get the email on every request:
https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_rest_api/authenticating_users_with_sign_in_with_apple
https://developer.apple.com/documentation/sign_in_with_apple/generate_and_validate_tokens
Not sure if it is valid, secure or even possible (i mean without rejection in App Store review) to communicate with Apple REST API directly from the application, without a intermediate backend.

window.cordova.plugins.SignInWithApple.signin(   { requestedScopes: [0, 1] },   function(succ){      let jwt = succ.identityToken;      let decoded = jwt_decode(jwt);      console.log(decodedl);     console.log(decoded.email);   },   function(err){     console.error(err)     console.log(JSON.stringify(err))   } )

@zhicheng-Fu Thanks, this addresses this issue perfectly!

window.cordova.plugins.SignInWithApple.signin({ requestedScopes: [0, 1] }, function (succ) {
let jwt = succ.identityToken;
let decoded = jwt_decode(jwt);
console.log(decodedl);
console.log(decoded.email);
}, function (err) {
console.error(err)
console.log(JSON.stringify(err))
}
)

This should be the accepted answer.


[BUG]: Relations fails with multiple models

What version of drizzle-orm are you using?
0.26.5
What version of drizzle-kit are you using?
0.18.1
Describe the Bug
Whenever I try to fetch a model with multiple relations
const result = await db.query.users.findMay({
  with: {
    posts: true,
    project: true
  }
})

I get the following log:
Error fetching project PostgresError: could not identify an equality operator for type json
     at ErrorResponse (/Users/jmforj/Dev/forj/dapp-whitelabel/node_modules/postgres/cjs/src/connection.js:771:26)
     at handle (/Users/jmforj/Dev/forj/dapp-whitelabel/node_modules/postgres/cjs/src/connection.js:473:6)
     at Socket.data (/Users/jmforj/Dev/forj/dapp-whitelabel/node_modules/postgres/cjs/src/connection.js:314:9)
     at Socket.emit (node:events:513:28)
     at Socket.emit (node:domain:489:12)
     at addChunk (node:internal/streams/readable:324:12)
     at readableAddChunk (node:internal/streams/readable:297:9)
     at Readable.push (node:internal/streams/readable:234:10)
     at TCP.onStreamRead (node:internal/stream_base_commons:190:23)

No issue if I only try with one relation.
Expected behavior
The result contains both relations
const result = {
  posts: [],
  project: {}
}

Environment & setup
Node 18.15.0,  Typescript 5.1.3 & Postgres 3.3.5

FYI I replaced postgres with node-postgres and I'm still facing the same issue

@jmforj It looks like you may have a syntax issue on line const result = await db.query.users.findMay({;
It looks like you are doing .findMay when it should be .findMany.
Hope that helps!

thanks @EthanHogan you are right! haha although this was not the issue
It wasn't a drizzle bug but an issue with a column type in my database.
Thank for your support, closing this one.

@jmforj could you elaborate on what was wrong with your column type in your db? I'm getting the same error when i'm trying to add multiple relations in my query but i can't seem to find out what would be wrong with my db schema


WIP: (needs to be split) Stan 346 Fixes on level 0

Migrated to separate branch

[ ] 2984aa1
[x] dd7d1de (without importData function signature change) --> less riksk for bugs
[ ] 2c28e58
[x] 868040f
[ ] 778b0e7
[ ] fa22b94


Feature: Show where file is being used on Commons & Other wikis

Fixes #4997
WIP

Show where the file is being used whether on Commons or Other wikis
Uses paging to load data lazily.
Showing appropriate indications when loading pages for eg. showing loading indicator when loading subsequent items & error message when there's an error.
Proper state handling for eg. showing button to retry when initial request fails.
Click on the item to open the page in browser.
Wiki style UI.

Demo:
https://github.com/user-attachments/assets/457e67b2-4b4d-417b-8863-70f91247a6f4
Dark Theme:

Light Theme:

Thanks a lot!
I am very sorry for mentioning this only now, but I think the feature would be more used if the UI was like this:

In the Media Details, rather than in Contributions
Querying and displaying results immediately, rather than having to tap a button. I suggest listing the results between the discussion and the buttons, whereI drew the green arrow:

If you do not want (or do not have time) to modify the UI, that's totally fine, if that's the case then I will create a different issue for that. 🙂

By the way, most files have very few usages, so don't worry about the list taking too much vertical space. 🙂

@nicolas-raoul  It's fine by me, I can make the change. Also, as in MediaDetails page there will be limited space, do we want to also show the entire list in another screen as well? I know you mentioned most of the files won't have that long list but do we want to keep the option for the longer ones?

Closing this one and will create a new one with requested changes :)