Make ROCm work with acer nitro 5 ryzen(2018) model

I am using a "acer nitro 5 ryzen 5 AN515-42" (2018 model) which has ryzen 2500u ( AMD Raven Ridge (Ryzen 2000 APU)
series APU) + integrated Radeon RX Vega 8 + discrete radeon rx560x
I have a freshly installed ubuntu 20.04.2 with kernel 5.8.0-48, ( i also tried the base 5.4.0-26-generic kernel too, but no luck) and followed the installation of ROCm v4.1
opt/rocm/bin/rocminfo
ROCk module is loaded
Unable to open /dev/kfd read-write: Operation not permitted
shreyash is member of render group
/opt/rocm/opencl/bin/clinfo
Number of platforms:				 1
Platform Profile:				 FULL_PROFILE
Platform Version:				 OpenCL 2.0 AMD-APP (3241.0)
Platform Name:				 AMD Accelerated Parallel Processing
Platform Vendor:				 Advanced Micro Devices, Inc.
Platform Extensions:				 cl_khr_icd cl_amd_event_callback
Platform Name:				 AMD Accelerated Parallel Processing
Number of devices:				 0
Other things, which may be helpful -
dmesg | grep kfd
[   19.344100] kfd kfd: Allocated 3969056 bytes on gart
[   19.344988] kfd kfd: added device 1002:67ef
[   19.813048] kfd kfd: Allocated 3969056 bytes on gart
[   19.813420] kfd kfd: added device 1002:15dd
Looks like rocm installation isnt detecting the gpu devices:
sudo lshw -c video
*-display
description: Display controller
product: Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: c0
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi bus_master cap_list rom
configuration: driver=amdgpu latency=0
resources: irq:59 memory:d0000000-dfffffff memory:e0000000-e01fffff ioport:3000(size=256) memory:e0a00000-e0a3ffff memory:e0a40000-e0a5ffff
*-display
description: VGA compatible controller
product: Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:04:00.0
version: c4
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi msix vga_controller bus_master cap_list
configuration: driver=amdgpu latency=0
resources: irq:63 memory:b0000000-bfffffff memory:c0000000-c01fffff ioport:1000(size=256) memory:e0800000-e087ffff

Thanks @Shreyashwaghe for reaching out.
We are not officially supporting gfx8 IP devices anymore.
We are also not supporting integrated GPUs with ROCm.
Request you to look at https://github.com/RadeonOpenCompute/ROCm#hardware-and-software-support
Hope this helps.
Thank you.


fails to build with latest nightly/master rustc

Build failure was caused by https://github.com/rust-lang/rust/pull/60340
   Compiling rustc-ap-arena v491.0.0
error[E0599]: no method named `cap` found for type `alloc::raw_vec::RawVec<T>` in the current scope
   --> /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-arena-491.0.0/lib.rs:102:47
    |
102 |                 self.start().add(self.storage.cap())
    |                                               ^^^ private field, not a method

error[E0599]: no method named `cap` found for type `alloc::raw_vec::RawVec<T>` in the current scope
   --> /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-arena-491.0.0/lib.rs:273:55
    |
273 |                     new_capacity = last_chunk.storage.cap();
    |                                                       ^^^ private field, not a method

error[E0599]: no method named `cap` found for type `alloc::raw_vec::RawVec<u8>` in the current scope
   --> /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-arena-491.0.0/lib.rs:408:55
    |
408 |                     new_capacity = last_chunk.storage.cap();
    |                                                       ^^^ private field, not a method

error: aborting due to 3 previous errors

Blocked by https://github.com/rust-lang/rust/pull/63036.


Make error messages more consistent in the AoC daystar view

Description

Changes in the AoC DayAndStarView:

From now on, when the interacting user and the original author of the view is different, the bot will send an ephemeral message, regarding the issue, instead of the default error message.

Did you:

[x] Join the Python Discord Community?
[x] Read all the comments in this template?
[x] Ensure there is an issue open, or link relevant discord discussions?
[x] Read and agree to the contributing guidelines?

It is not so high priority, so I think this should be solved with exception raising and handling in global error handler. This would remove possible future duplication.

I'm not sure how that would work in the interaction environment.
If an error is raised in the interaction_check, it'll call the View.on_error(See): The default implementation prints the traceback to stderr.
So that would have to be overriden as well, accordingly.
Hence, I believe it's easier, to just send an interaction response.
(You would have to do the same procedure on every View.)


pykan for Julia (Jukan)?

Is there a plan to implement the network in julia? Maybe provide an interface with Lux.jl?

Good idea! But not at the top of my priority list, hope someone else would be excited about it. The core of the codes is really actually just a few lines. I spent a lot of time doing visualization and stuff which can be ignored if one cares mostly about performance.

I totally understand. I might give it a go later this month.


Mutiple calls to UnionPay fetchCapabilities - only 1 resolves

General information

SDK version: 3.46.0
Environment: Sandbox
Browser and OS: Chromium on macOS Version 72.0.3626.81 (Developer Build) (64-bit)

Issue description
Here's a very simple reproduction:
        console.log("fetchUnionPayCardCapabilities #6214Nh");
        unionPayInstance
            .fetchCapabilities({
                hostedFields: hostedFieldsInstance,
            })
            .then(result => {
                console.log("fetchUnionPayCardCapabilities result 1 #aGlvAx");
            });
        unionPayInstance
            .fetchCapabilities({
                hostedFields: hostedFieldsInstance,
            })
            .then(result => {
                console.log("fetchUnionPayCardCapabilities result 2 #aGlvAx");
            });

The result 2 never happens. That promise never resolves.
I discovered this because we were using the blur hook to run the fetchCapabilities call. However, when clicking directly on our submit button after entering the card number, the blur hook happens after the submit event. I realise it's an odd edge case but figured I'd report the bug anyway. We'll solve it by wrapping the call to ensure we only have 1 request in flight at any time.

To add a little more context, it seems like this issue only exists for the first request. If I add a call to await fetchCapabilities() which is before the code above, then both result 1 and result 2 are logged, and I see 2 network requests to the capabilities endpoint in the Network tab. But if I make a second request while the first ever request is in flight, it seems that the promise never resolves.
I've tried making 4 requests, and so long as the first one completes before any other start, they will all succeed. But any requests which are attempted while the 1st is in flight seem to silently fail.

Thanks for the report.
I imagine there's some race condition happening with creating the hosted fields bridge frame: https://github.com/braintree/braintree-web/blob/acf72b8611a698c6159958e0e02044d81c95f6e9/src/unionpay/shared/unionpay.js#L363
Since the bus does exist, but the frame has not actually been created yet

This is fixed in 3.47.0.


question about philosophy

https://github.com/SAP/techne/wiki/Techne-Business-Experience-Philosophy

example issue


gem-utrecht/azure/dta overcommitted CPU resources

7:50 AM
[FIRING:1] Notification for cluster "gem-utrecht/azure/dta"
Description: Cluster has overcommitted CPU resource requests for Pods and cannot tolerate node failure.
 Graph: :chart_with_upwards_trend: Runbook: :spiral_note_pad:
 Details:
  • alertname: KubeCPUOvercommit
  • cluster: gem-utrecht/azure/dta
  • prometheus: monitoring/po-prometheus
  • severity: warning

Checking it out... ("take ownership, then notify relevant people what you are working on.")

This was what I could find about overcommitting: https://docs.openshift.com/container-platform/3.9/admin_guide/overcommit.html. Any other documentation available?
I don't see anything interesting right now though:
NAME                                 CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
aks-systempool-32358466-vmss000009   400m         10%    5585Mi          51%
aks-systempool-32358466-vmss00000a   833m         21%    5856Mi          54%
aks-systempool-32358466-vmss00000b   724m         18%    6608Mi          61%
aks-systempool-32358466-vmss00000c   606m         15%    6338Mi          58%
aks-systempool-32358466-vmss00000d   559m         14%    5507Mi          51%

I guess it would be a good idea to check the stats from 7:50 AM. I would like to take a look at Grafana, if someone would give me access to the Otomi admin console?

│ NAMESPACE↑           NAME                                  PF    READY       RESTARTS STATUS                  CPU     MEM    %CPU/R    %CPU/L    %MEM/R     %MEM/L IP                NODE                                    AGE         ││ istio-apps           prometheus-596b6fc777-7zxdz           ●     1/2              895 CrashLoopBackOff         82    1047        41       n/a       209        n/a <IP_ADDRESS>      aks-systempool-32358466-vmss00000a      4d16h       │
│ team-maykinmedia     dowc-clean-files-1618280100-mkfhp     ●     1/2                2 Running                   3      60         2         0        21          2 <IP_ADDRESS>       aks-systempool-32358466-vmss00000c      30h         ││ team-maykinmedia     dowc-clean-files-1618366500-jh6sf     ●     1/2                1 Running                   3      58         2         0        20          2 <IP_ADDRESS>        aks-systempool-32358466-vmss00000c      6h13m

OOMkilled...

Please increase resources if you see fit

Haven't noticed anything for 3 months...

Yeah, overcommitment is a tricky beast. I don't feel supported by k8s in this. We have a cluster overprovisioner that applies a fixed size buffer, but since k8s leaves this to userspace we can only solve this with a fancy (expensive) solution that should exist in k8s core imo.
I think we should just disable this rule altogether if we can't find any good solutions on google.
Did you check online about this @svatwork? I assume so, but see no report about this


Having a masonry layout (Isotope) as opposed to gridster

Possible enhancement: Would anyone be interested in working on implementing a masonry layout as an alternative to gridster? http://isotope.metafizzy.co/
Apart from the masonry layout the other extra features I would consider useful:
*filtering (only widgets in a certain state (error, warning, ok / selector based on class) as seen here: http://isotope.metafizzy.co/demos/combination-filters.html
*sorting
*hash history (based on filtering or sorting) http://isotope.metafizzy.co/demos/hash-history.html

Definitely not interested due to the licensing of isotope.  http://isotope.metafizzy.co/license.html

Yeah, Masonry is not free for commercial use. I'd recommend closing this issue.

Yeah decided not to go with Masonry for reasons mentioned above.


[WIP] Add setting for MiqVimBroker.loadLimit

Add a setting to override the MiqVimBroker.loadLimit value
https://bugzilla.redhat.com/show_bug.cgi?id=1573588

@miq-bot add_label blocker

@agrare if this PR can be backported, can you add the gaprindashvili/yes label.

Closing in favor of just bumping the limit up, passing config from both server and client side was more trouble than it was worth


RHEL images with minor version not connected to EUS repositories

According to the documentation, images connected to EUS repositories will contain a minor version number in the SKU.
However it seems this is not the case, as I have deployed the four images below today and some are connected to the EUS repositories while others are not.

Image
Repositories

RedHat:RHEL:7.3:latest
No EUS

RedHat:RHEL:7.6:latest
EUS

RedHat:RHEL:7.7:latest
EUS

RedHat:RHEL:7.8:latest
No EUS

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

ID: 5d7e0b6a-1b40-f874-4a68-f368761a1ef8
Version Independent ID: cca3c590-2725-6167-2cf0-412b1aae4433
Content: Red Hat Update Infrastructure
Content Source: articles/virtual-machines/workloads/redhat/redhat-rhui.md
Service: virtual-machines-linux
GitHub Login: @asinn826
Microsoft Alias: alsin

@johanburati
Thanks for the feedback! I have assigned the issue to content author to check and update the document as appropriate.

@asinn826
Can you please check and add your comments on this doc update request as applicable.

We are currently cleaning up old issues and closing out items that are greater than 90 days old. If an issue is still present, please open a new feedback item on the document so we can prioritize correctly.
#please-close


Bug 1838845: Fix Hive metastore deployment with using PostgeSQL as the underlying database

Overview
In the pre-GA (4.2) days, we supported configuring a PostgreSQL database for usage as the underlying database for the Hive metastore and server deployments. Since GA, using this functionality resulted in no Prometheus metrics being inserting into tables in Hive. This was caused by the Hive components hanging (e.g. reaching a deadlock state) when attempting to create the default ReportDataSource metric importer tables.
This builds off of #1463 which introduces the $HIVE_UNDERLYING_DATABASE environment variable and using schematool to do the schema initialization for non-derby databases.
Changes

Update the configuring-hive-metastore.md  documentation and remove the reference to the BZ mentioning metering integration issues with any Postgres version.
Update the configuring-hive-metastore.md documentation and document that we should be setting hive.spec.config.db.autoCreateMetastoreSchema: false when using postgresql metering deployments.
Updates the hive-site.xml ConfigMap configuration and exposes the hive.metastore.*,event.listeners parameters, which helped resolve issues where Hive metastore/server were reaching deadlock when attempting to create tables in Postgres. This properties are only added in the case that we're using postgres as the underlying Hive metastore database. That postgres value is parsed from the hive.spec.config.db.url parameter, which users set in the MeteringConfig CR, and re-mapped from postgresql to postgres in the configuring_hive_metastore.yaml Ansible task file.
Adds a quick e2e subtest that ensures those hive.metastore.*.event.listeners aren't present in the hive-config ConfigMap data section where we store the hive-site.xml configuration for non-postgresql metering deployments.

Testing Notes
The postgresql database instance was created using oc new-app using the following command:
oc create namespace tflannag
oc -n tflannag new-app --image-stream postgresql:10 \
    -e POSTGRESQL_USER=tflannag \
    -e POSTGRESQL_PASSWORD=testpass \
    -e POSTGRESQL_DATABASE=metastore \
    -l db=postgres

Once that deployment has been created, the following MeteringConfig custom resource was used:
apiVersion: metering.openshift.io/v1
kind: MeteringConfig
metadata:
  name: "operator-metering"
  annotations:
    "ansible.operator-sdk/verbosity": "1"
spec:
  unsupportedFeatures:
    enableHDFS: true

  storage:
    type: "hive"
    hive:
      type: "hdfs"
      hdfs:
        namenode: "hdfs-namenode-0.hdfs-namenode:9820"

  hive:
    spec:
      config:
        db:
          driver: org.postgresql.Driver
          username: tflannag
          password: testpass
          url: jdbc:postgresql://postgresql.tflannag.svc.cluster.local:5432/metastore?logUnclosedConnections=true
          autoCreateMetastoreSchema: false

The changes in this PR were tested using a custom metering-ansible-operator image that contains the requisite helm chart and Ansible fixes and deployed manually using the deploy-metering CLI:
./bin/deploy-metering install --namespace tflannag --meteringconfig mc.yaml --repo <custom quay repo> --tag <custom quay tag>

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/retest

/cherrypick release-4.6

/cherrypick release-4.6


start_maximized doesn't work on KDE

Which operating system does the issue occur on?
ThinkPad x1 carbon 5gen(1920×1080)
Latest KDE neon
If on linux, are you using X11 or Wayland?
X11
Width not be maximized.

I've received varying feedback on this feature with different window managers on X11. It also does not have any effect on i3 for example, but it works just fine on macOS.
Note that i3 doesn't really have a maximized mode though, only a fullscreen one. These are treated differently by the window library Alacritty is using. I'd assume KDE has both though?

Would you mind cloning https://github.com/tomaka/glutin, appyling the attached patch using git apply <patchfile> and then running it using cargo run --example window? This should make sure the error is not due to a problem in Alacritty.
Patch:
diff --git a/examples/window.rs b/examples/window.rs
index 0786887..8eebfcb 100644
--- a/examples/window.rs
+++ b/examples/window.rs
@@ -6,9 +6,10 @@ use glutin::GlContext;

 fn main() {
     let mut events_loop = glutin::EventsLoop::new();
-    let window = glutin::WindowBuilder::new().with_title("A fantastic window!");
+    let window = glutin::WindowBuilder::new().with_title("A fantastic window!").with_maximized(true);
     let context = glutin::ContextBuilder::new();
     let gl_window = glutin::GlWindow::new(window, context, &events_loop).unwrap();
+    gl_window.set_maximized(true);

     let _ = unsafe { gl_window.make_current() };

I have the same problem with start_maximized with openbox. Tested as per @chrisduerr and the example window does start maximized correctly. Presumably this means alacritty is the problem?

@paulie-g The example I've set uses two different ways to maximize the application, just to make sure that it really is maximized. Could you try removing the gl_window.set_maximized(true); line to check if it still works?

@chrisduerr Both work on their own. The difference is that .with_maximized(true) results in a maximized window with the contents stretched to fill the window, while .set_maximized(true) results in the pyramid remaining the same size, positioned bottom left.

Disregard the stretch/positioning difference, it appears to have been a glitch I can no longer reproduce.

[2018-12-20 13:42] [INFO] Welcome to Alacritty.
[2018-12-20 13:42] [INFO] Configuration loaded from /home/paul/.config/alacritty/alacritty.yml
[2018-12-20 13:42] [INFO] device_pixel_ratio: 1
[2018-12-20 13:42] [INFO] width: 1024, height: 768
[2018-12-20 13:42] [INFO] Initializing glyph cache
[2018-12-20 13:42] [INFO] Finished initializing glyph cache in 0.01473262
[2018-12-20 13:42] [INFO] width: 1024, height: 768
[2018-12-20 13:42] [INFO] Cell Size: (9 x 17)
[2018-12-20 13:42] [INFO] Padding: (2 x 2)
[2018-12-20 13:42] [INFO] PTY Dimensions: Line(44) x Column(113)
[2018-12-20 13:42] [INFO] Initialisation complete
[2018-12-20 13:42] [INFO] glutin event: DeviceEvent { device_id: DeviceId(X(DeviceId(13))), event: Key(KeyboardInput { scancode: 28, state: Released, virtual_keycode: Some(Return), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: false } }) }
[2018-12-20 13:42] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(62914563))), event: Resized(LogicalSize { width: 1024.0, height: 768.0 }) }
[2018-12-20 13:42] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(62914563))), event: Moved(LogicalPosition { x: 0.0, y: 1.0 }) }
[2018-12-20 13:42] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(62914563))), event: Refresh }
[2018-12-20 13:42] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(62914563))), event: Focused(true) }
[2018-12-20 13:42] [INFO] glutin event: WindowEvent { window_id: WindowId(X(WindowId(62914563))), event: CursorMoved { device_id: DeviceId(X(DeviceId(2))), position: LogicalPosition { x: 3185.0, y: 1339.0 }, modifiers: ModifiersState { shift: false, ctrl: false, alt: false, logo: false } } }

This log appears to indicate that alacritty first starts at the default 1024x768px, infers cols x rows, starts up and only then maximizes. I don't see the same glutin Resized event with the correct 3440x1396 px size I see when running the example, but the last line suggests this does happen in the end as it reports a cursor position with x > 3000.

@paulie-g Just to clarify, you're saying that when removing the set_maximized call (just having the with_maximized left), it still works?
Then it's definitely something we should be able to fix.

@chrisduerr Indeed, that is exactly what I'm saying. I tried it with both, either and none, all with expected results - maximized, maximized, not maximized respectively.

Rebuilt alacritty with start_maximized set to true in config.rs.
 429 impl Default for WindowConfig {
 430     fn default() -> Self {
 431         WindowConfig{
 432             dimensions: Default::default(),
 433             padding: default_padding(),
 434             decorations: Default::default(),
 435             dynamic_padding: false,
 436             start_maximized: true,
 437         }
 438     }
 439 }

Same issue. The -d command line argument doesn't seem to be working either, as I tried to feed it -d 382 100 and nada, still same size and log shows it insisting on 113 x 44

@paulie-g Just to make sure, please ensure that you're running the latest Alacritty version with alacritty --version.

Just making sure. Also, setting the start_maximized to true in the config.rs will not do anything when you have a config file in place, since that overwrites the setting in the code. The code you've changed is only used when the window field is not present at all in the config.

I understand; I was trying to rule out a problem with the config code. I've narrowed this down further:
window.rs:
144 impl Window {
145     /// Create a new window
146     ///
147     /// This creates a window and fully initializes a window.
148     pub fn new(options: &Options, window_config: &WindowConfig) -> Result<Window> {
149         let event_loop = EventsLoop::new();
150
151         let title = options.title.as_ref().map_or(DEFAULT_TITLE, |t| t);
152         let class = options.class.as_ref().map_or(DEFAULT_TITLE, |c| c);
153         let window_builder = Window::get_platform_window(title, window_config);
154         let window_builder = Window::platform_builder_ext(window_builder, &class);
155         let window = create_gl_window(window_builder.clone(), &event_loop, false)
156             .or_else(|_| create_gl_window(window_builder, &event_loop, true))?;
157         //window.set_maximized(true);
158         window.show();
159         window.set_maximized(true);

window.set_maximized(true) before window.show() does not work. window.set_maximized(true) after window.show() does. This indicates to me that either show() is doing something it ought not do or that glutin isn't mapping the window in when it creates it. The WM can't maximize a window if it's not under its management, which it won't be until it's mapped in. This is correct behaviour on the part of the WM.

https://tronche.com/gui/x/xlib/window/map.html if you're curious. It's been a while since I hacked on WMs, but the gist is that most WMs will only do something about a window once they get a MapNotify for it. Since maximizing is a WM function rather than an X function, you need the window to be under the WM's control for it to work.

The set_maximized call explicitly exists for maximizing the window AFTER it has been started, that's why it doesn't work before show and that is fully intentional.
That's why Alacritty is using with_maximized instead.

Right, that makes sense.

No worries, I'll look into it when I've got the time. Probably going to take a while though.

Just wanted to weigh in and say I'm experiencing this too on KDE 5.12.7. As a workaround I used KWin to set alacritty to always start maximised.

Latest KDE neon

I have the same problem with start_maximized with openbox.

Same issue on Pantheon (ElementaryOS).

Here's a hacky 'fix':
window:
  dimensions:
    columns: 999
    lines: 999
  start_maximized: false

Same on Gnome 3.30.2.
[2019-03-20 08:59] [INFO] Welcome to Alacritty
[2019-03-20 08:59] [INFO] Configuration loaded from "/home/igor/.config/alacritty/alacritty.yml"
[2019-03-20 08:59] [INFO] Device pixel ratio: 1
[2019-03-20 08:59] [INFO] Width: 1024, Height: 768
[2019-03-20 08:59] [INFO] Initializing glyph cache...
[2019-03-20 08:59] [INFO] ... finished initializing glyph cache in 0.020548217s
[2019-03-20 08:59] [INFO] Width: 1024, Height: 768
[2019-03-20 08:59] [INFO] Cell Size: (9 x 17)
[2019-03-20 08:59] [INFO] Padding: (2 x 2)
[2019-03-20 08:59] [INFO] PTY Dimensions: Line(44) x Column(113)
[2019-03-20 08:59] [INFO] Initialisation complete
[2019-03-20 08:59] [INFO] Font size changed to Size(22) with DPR of 1
[2019-03-20 08:59] [INFO] Width: 1024, Height: 768
[2019-03-20 08:59] [INFO] Goodbye

However, monitor resolution is 1920x1080.
Columns: 0, lines: 0, start_maximized: true.
Link to the config


Increase default queued metrics limit from 1,000 to 1,000,000

So I unintentionally lost metrics by mixing the async sprockets-statsd library with blocking sync code. The statsd client was completely blocked and never had a chance to publish metrics. Although that was purely an error of my own making, I temporarily overrode the max_queue_size in my app as an intermediate fix.
I'm thinking upping the default in the library is relatively sane as it shouldn't increase memory consumption too much in even the worst cases.

Understanding that asyncio.Queue stores items in a collections.deque instance, this is the memory usage difference between the current default of 1,000 and the new default of 1,000,000.
1,000 metrics is roughly 8.9KB
>>> d = collections.deque()
>>> for _ in range(1000):
...   d.append(b'applications.this-is-my-service.development.errors.rabbitmq.unroutable:1|c')
...
>>> sys.getsizeof(d)
9072

1,000,000 metrics is roughly 7.9MB
>>> d = collections.deque()
>>> for _ in range(1000000):
...   d.append(b'applications.this-is-my-service.development.errors.rabbitmq.unroutable:1|c')
...
>>> sys.getsizeof(d)
8250624

I'm hesitant to raise the default since it is configurable already.  The memory impact is not the only thing to consider.  When the processor reconnects, it will tight loop as it runs through the queue that is built up.  This could cause your application to stall periodically as the TCP buffer is being filled and purged repeatedly while the processor loops through the metrics.  IOW, the size of the queue is the size of the Thundering Herd.  This also wreaks havoc on the network as the TCP connection windows are slowly grown to accommodate the spike.
If you still have a mixture of blocking and non-blocking code, then no buffer size is truly safe unless you have very carefully tuned the blocking behavior.  You should probably set settings['statsd']['max_queue_size'] to zero and disable the bounded queue.


onIndexChange has delay

Current behaviour
onIndexChange has delay on animation, for example I want to call api to load item when index changed and onIndexChange called after a dely I think this is because of the spring animation.
Expected behaviour
onIndexChange called shortly after index of tab changed.
Code sample

Screenshots (if applicable)

What have you tried

https://github.com/react-native-community/react-native-tab-view/pull/718
Changes this behavior, but there is some mild controversy about it here

Duplicate of #716


[Bug] Unable to create index with date math

Describe the bug
Create an index using date math
resource "elasticstack_elasticsearch_index" "my-index" {
name = "my-index-{now/d}-000001"

alias {
name = "my-index"
is_write_index = true
}
}

Terraform throws an error
Error: invalid value for name (must contain lower case alphanumeric characters and selected punctuation, see: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#indices-create-api-path-params)
│
│ with elasticstack_elasticsearch_index.my-index,
│ on my-index_index.tf line 21, in resource "elasticstack_elasticsearch_index" "my-index":
│ 21: name = "my-index-{now/d}-000001"
│

Expected behavior
An index gets created and bootstrapped without any error

Can you provide a curl command showing this works without using Terraform?
According to the docs it is not possible to create an index with date math in the name: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#indices-create-api-path-params. And the error message looks to be correctly showing this.
Instead it looks like you need to add the date math as part of the alias instead https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#indices-create-api-request-body
It would need to look something like (not tested):
resource "elasticstack_elasticsearch_index" "my-index" {
	name = "my-index"

	alias {
		name = "my-index-{now/d}-000001"
		is_write_index = true
	}
}

Thanks, I do have a quick question, though.
If the constraint is coming from the special character, then using the url encoding should work, as this commands work in curl and using the kibana dev console.
curl -k -u un:pw -XPUT https://<host:port>/%3Ctestindex-%7Bnow%2Fd%7D-000001%3E

However, using the url encoding still does not allow the index to be created.
resource "elasticstack_elasticsearch_index" "testindex" {
name = "%3Ctestindex-%7Bnow%2Fd%7D-000001%3E"

alias {
name = "testindex"
is_write_index = true
}
}

│ Error: invalid value for name (must contain lower case alphanumeric characters and selected punctuation, see: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#indices-create-api-path-params)
│
│ with elasticstack_elasticsearch_index.testindex,
│ on testindex.tf line 21, in resource "elasticstack_elasticsearch_index" "testindex":
│ 21: name = "%3Ctestindex-%7Bnow%2Fd%7D-000001%3E"
│

If create index api takes that parameter, my understanding is that it should be passed to the .tf file as well. Is there anything that I am missing?

Thanks for providing the curl command, I understand what you are trying to do now.
The workflow of using Elasticsearch to dynamically name the index using datemath isn't compatible with the way Terraform works. If you create an index doing this Terraform will detect a drift and destroy/recreate the index every time that Terraform is being applied because the name does not match the one that is configured in Terraform. Terraform resources need to have a stable name identifier for its state system to be able to manage their lifecycle properly.
So while the regex could be updated to allow datemath here I don't think it would be possible to support without implementing Elasticsearch datemath logic in the Terraform provider itself. Or updating the state logic to be able to handle this specific use case which would be a bit tricky. However this is something the project maintainers would need to comment on if this is something they would be willing to implement.
If it is truly desirable that you want a new daily index to be created/destroyed on a daily basis with Terraform you would want to calculate the date in Terraform instead like this:
resource "elasticstack_elasticsearch_index" "my-index" {
	name = "my-index-${formatdate("YYYY.MM.DD", timestamp())}-000001"

	alias {
		name = "my-index"
		is_write_index = true
	}
}

Could you explain in a bit more detail what the use case is for this? It sounds like it would be better to use Index Lifecycle Management if you want daily indices with rollover.  The 000001 suffix used in the example is a little bit confusing too since that is exactly how ILM names the indices during rollover.

Thanks a lot for the explanation, @Crazybus!
The ILM is in place. Just wanted to bootstrap the index. Yes, that format worked.
Thanks for the additional information on the volatility of the terraform creation. Was not aware of the destruction aspect, which makes terraform not as viable solution to automate the creation of indices and updating them.
So as of now, the application of terraform is geared toward initial creation of objects, rather than to update the objects with subsequent changes?

The ILM is in place. Just wanted to bootstrap the index. Yes, that format worked.

Apologies for asking again, but could you please provide more information on what you are trying to achieve?
Are you maybe referring to this step in the ILM tutorial? https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index-lifecycle-management.html#ilm-gs-alias-bootstrap
If you follow those documents it will work as expected as there is no datemath being used to generate the index name. Terraform will be able to bootstrap the initial index and it won't destroy it because the name isn't being dynamically generated by Elasticsearch.

Thanks for the additional information on the volatility of the terraform creation. Was not aware of the destruction aspect, which makes terraform not as viable solution to automate the creation of indices and updating them.
So as of now, the application of terraform is geared toward initial creation of objects, rather than to update the objects with subsequent changes?

Terraform is perfectly suited toward creating and updating objects. The issue here is that you are asking Elasticsearch to rename the index which is not something that is supported by Elasticsearch. The Terraform provider is aware of the fact that it cannot update the index name so it correctly destroys the old index and creates a new one with the new name.

Thanks a lot for the input.
I opened this ticket on behalf of another user who was trying to automate the alias creation through terraform.
I have not verified the full use case yet on the needs of creating the alias separately this way, so I will have to discuss this with the other user.
Fully understood that dynamic index creation is not yet viable through terraform. Will validate the use case and update here or open another one if needed.
Thanks for the help!


Saving/Loading custom methods of a subclassed model

Hi,
I'm following the tutorial in https://keras.io/guides/custom_train_step_in_tensorflow/#wrapping-up-an-endtoend-gan-example to implement a subclassed model (end-to-end GAN).
The subclassed model is a wrapper for training two sequential models (the generator and discriminator).
Everything works nicely, except that the custom methods defined in the subclassed model are not retained after saving and loading it, even when using the decorator @tf.keras.utils.register_keras_serializable().
How can I save the subclassed model while retaining its custom methods?
As explained in TensorFlow's guide on saving and loading models https://www.tensorflow.org/tutorials/keras/save_and_load#saving_custom_objects, this should be straightforward when using the SavedModel format ("tf").
Tensorflow/Keras version: 2.12.0
Attempted methods: Saving in the SavedModel format ("tf") and/or using the @tf.keras.utils.register_keras_serializable() decorator.
Expected behavior: To save the custom methods of a subclassed model (class configuration).
Standalone code to reproduce the issue: https://colab.research.google.com/drive/1o3OqG3UNIG3KywSOkhp6yPFUZPyLlLv0?usp=sharing

Thank you @sonali-kumari1 . Here's the accessible link: https://colab.research.google.com/drive/1o3OqG3UNIG3KywSOkhp6yPFUZPyLlLv0?usp=sharing

It looks like you are using Keras 2. Try with Keras 3 and the .keras file format, and it should work as you expect.

It looks like you are using Keras 2 and the TF SavedModel format. Try with Keras 3 and the .keras file format, and it should work as you expect.

Thank you for the suggestion @fchollet , but I need to continue using Keras 2. However, I came across this information in https://blog.tensorflow.org/2023/03/whats-new-in-tensorflow-212.html :

So, I tried using the .keras file format, but now I get a new error when attempting to load the subclassed model, which I haven't been able to figure out how to solve it:

Here's the link to the updated Colab notebook: https://colab.research.google.com/drive/18oBwoJj8BHuSXb3s9-XcLhGA1zmA5GY8?usp=sharing
I would greatly appreciate any clues you can provide. Thanks.

A few suggestions.

Use recent tf and keras. tf 2.12 is over a year and a half old, and won't be seeing any fixes besides maybe some critical security updates.
You can use the tensorflow only Keras with recent tensorflow versions by setting os.environ["TF_USE_LEGACY_KERAS"] = "1" and always using tf.keras.xx or from tensorflow.keras import xx. https://keras.io/getting_started/
To serialize/deserialize and use tf.keras.utils.serialize_keras_object/tf.keras.utils.deserialize_keras_object. (I think this was the direct source of your error?)
Don't override save, you shouldn't need to for your use case.

Here's a colab. https://colab.research.google.com/gist/mattdangerw/61d7eb26708a6afa2769900baf24f8e1/subclassed_model_trainer_keras.ipynb

A few suggestions.

Use recent tf and keras. tf 2.12 is over a year and a half old, and won't be seeing any fixes besides maybe some critical security updates.
You can use the tensorflow only Keras with recent tensorflow versions by setting os.environ["TF_USE_LEGACY_KERAS"] = "1" and always using tf.keras.xx or from tensorflow.keras import xx. https://keras.io/getting_started/
To serialize/deserialize and use tf.keras.utils.serialize_keras_object/tf.keras.utils.deserialize_keras_object. (I think this was the direct source of your error?)
Don't override save, you shouldn't need to for your use case.

Here's a colab. https://colab.research.google.com/gist/mattdangerw/61d7eb26708a6afa2769900baf24f8e1/subclassed_model_trainer_keras.ipynb

Thank you @mattdangerw  for the suggestions! I can finally see the custom methods after loading the subclassed model! Awesome!
For future reference (in case the Colab is unavailable), I have attached your answer in a PDF file.
mattdangerw_colab.pdf


Cornifer item previews do not denote who the item belongs to

When checking Cornifer for an item he does not tell you who it would get sent to.

Credit to @dewiniaid for handling this.


Visual Basic Guide: Decimal type is said to be not floating-point

The docs of the Decimal data type in the Visual Basic guide should be revised, may be simplified with a lot of details being removed (instead link to System.Decimal API)
In particular, the main article says:

Decimal is not a floating-point data type.

It's not binary floating-point type, but still floating-point type.
One more place with the same statement:
https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/data-types/numeric-data-types#nonintegral-numeric-types

Thanks, @pkulikov. Would you like to address this issue yourself?

@rpetrusha no, not coming weeks.


nixos-generate-config generates duplicate boot.initrd.luks.devices... entries which causes installation to fail

Issue description
nixos-generate-config generates duplicate boot.initrd.luks.devices... entries in hardware-configuration.nix if a LUKS-encrypted Btrfs partition contains multiple subvolumes.
Steps to reproduce

Encrypt a partition using LUKS and create a Btrfs filesystem, as described in the manual.

Create two Btrfs subvolumes in the Btrfs filesystem, named root and home, and mount them as /mnt and /mnt/home, respectively.

Run nixos-generate-config --root /mnt and inspect /mnt/etc/nixos/hardware-configuration.nix. There should be two identical entries which set boot.initrd.luks.devices."crypted".device.

Run nixos-install. It should complain that boot.initrd.luks.devices."crypted".device is set multiple times and abort installation.

Workaround
Edit /mnt/etc/nixos/hardware-configuration.nix and remove duplicate entries.
Technical details
Graphical live CD, 64-bit Intel/AMD

Confirmed


Discord link

Hello. Here is an official discord for this fork? With the dead of Discord.py, I'm looking to a replacement.

Hello. Here is an official discord for this fork? With the dead of Discord.py, I'm looking to a replacement.

https://discord.gg/TvqYBrGXEm

Thank you !


The process has forked and you cannot use this CoreFoundation functionality safely.

I ran the

python pig_chase_human_vs_agent.py

on OSX then it turns out the following result.

The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec().Break on THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC() to debug.

It seems that the OSX do not allow multi-process gui?

Hi, I soved it by using treading but I stuck at the env.reset().

Duplicate of #3 - Dave is looking into this.

@EugenePY , do you know the reason why spawning multiprocess failed? I use threading module to generate threads instead of using multiprocess. And on Mac, did you get tkinter output? I got blank output as you can see in the following picture.


Capitao is spelled wrongly in the SQLite database

This doesn't break anything, but could cause potential minor headaches. In the SQLite database, Capitao is spelled as capiato. In the table op_stats,  Capitao stats are under the columns capiato_tp, capiato_rw etc.

Great catch. The origin of the typo is located at constants.py:
https://github.com/captainturtle/r6siegetracker/blob/master/r6siegetracker/constants.py#L28
I will be making an update.

Pushed a fix!


Allow setting acknowledgeAbuse to true

I have some executable files in my drive which google thinks contain a virus. I want to download these files like any others.
Right now, I cannot copy these files through my mounted Google Drive - I have to go to their website and download it from there, ignoring the virus warning.
It seems the google drive api allows doing this without manual confirmation using the extra parameter acknowledgeAbuse=true ( https://developers.google.com/drive/api/v3/manage-downloads#using_altmedia )
It would be very helpful if you could extend your tool to allow setting this option so that I can work with all of my files through it.
Thank you!

async down(id, range = "", inline = false) {
    let url = `https://www.googleapis.com/drive/v3/files/${id}?alt=media`;
    //add
    if(!inline) url += "&acknowledgeAbuse=true";
    let requestOption = await this.requestOption();
    requestOption.headers["Range"] = range;
    let res = await fetch(url, requestOption);
    const { headers } = (res = new Response(res.body, res));
    this.authConfig.enable_cors_file_down &&
      headers.append("Access-Control-Allow-Origin", "*");
    inline === true && headers.set("Content-Disposition", "inline");
    return res;
  }


Player Skills crash with KubeJS

https://pastebin.com/mHF4Dt08
Here's the crash report
The latest working version for me is player-skills-1.2.1-fabric

Thanks. I can reproduce the error. Interestingly, that error message only shows up on the server. Client-side just closes silently without any error in the logs.
It's working fine on Forge (both client/solo and server).  And the changes from 1.2.1 to 1.2.2 are pretty minimal. I have a thought for the fix (migrating the Skills and SkillType registry wrappers to non-static methods).


Feature/data explorer pathways dropdowns dependency

This PR displays dropdown options depending on previous selections on Pathways tab of Data Explorer.
Pivotal
Test it on: http://localhost:3000/data-explorer/emission-pathways?page=1

There is a crash when we select a model in Pathways and then a location that doesn't have that model. Try: http://localhost:3000/pathways/models?category=10&indicator=388&model=3
Also, check the conflicts, I think is because of the migration.

☝ ready
@j8seangel or @aabdaab please check that out.
The requirements for this task where kind of vague (just display dropdown options depending on previous selections), so I have to decide along the way. The intended functionality is:

You can freely filter by location, model and category
scenarios, subcategories and indicators are disabled until some of the previous dropdowns are selected (as scenarios are dependent of a model and subcategories and indicators are dependent of a category)
Did not add location dependency in any selector because the user could want to filter by model or category without taking into account the location
Once a model or category (or any of their dependents) is chosen if the user selects a location probably the filter will end up with no data and user will be forced to clear the filtering to be able to proceed with a successful search.

Please share your thoughts.
@simaob you are also welcome to opine.
🙏

@aabdaab yeah, I agree about functions being quite big.
I've been splitting them along the way (the ones I had to deal with), and hope is a job that we could improve on the remaining tasks of the data-explorer.
Maybe is even desirable to move to another folder the ones that do not affect every section of the explorer (as getPathways...Options ones)

👍


when rtl is activated, ltr styles apply too

Steps to reproduce
Kindly read this issue for the reproduction steps and as initial context of this issue.
Now I set generateForBothDir to true here
When I add dir="rtl" to the <html> tag, the rtl version of styles apply, but at the same time the ltr version of styles apply too, because as far as I understand nothing is preventing them. Should we change
https://github.com/mui/pigment-css/blob/f1a32ffc7a56a3f0c47cf59db5d5f71e019eb50c/packages/pigment-css-react/src/utils/preprocessor.ts#L59
to something like this:
  if (generateForBothDir) {
    css += stylis(
      `${getDirSelector(defaultDirection === "ltr" ? "ltr" : "rtl")} ${!isGlobal ? `${selector}{${cssText}}` : cssText}`,
    );
    css += stylis(
      `${getDirSelector(defaultDirection === "ltr" ? "rtl" : "ltr")} ${!isGlobal ? `${selector}{${cssText}}` : cssText}`,
      serializerRtl
    );
  }
  else {
    css += stylis(!isGlobal ? `${selector}{${cssText}}` : cssText);
  }

and add to the docs that when using generatedForBothDir one should always set the dir attribute of the html tag.

Your environment
pigment 0.0.24
Safari 18.1
Search keywords: rtl

@brijeshb42
If I set generateForBothDir only one version of stylesheets will be generated and this issue would become a non-issue. Or maybe I'm misunderstood about the bi-directional API, is it possible to have my website bidirectional with generateForBothDir set to false?


draft logs

Returns logs for debugging an application’s failed builds.
This is a meta issue to track draft logs's progress from alpha to beta. We'll finalize design and UX around draft logs here.
Right now, draft creates a direct connection to kubernetes and tails the logs from the draftd pod. We should re-architect this such that it shows only the application's build logs.

Resolved via #539


reduce number of dependencies

go through and remove unused dependencies or move some to optional

#15 closed

#15 closed


We were able to work around the error by temporarily modifying some functions in core files.

First:
concrete\vendor\imagine\imagine\lib\Imagine\Gd\Imagine.php
Commented out lines within this function:
private function doLoad(...
Doing this fired another error, it was trying to get the image size on a null object.
Second:
concrete\src\Entity\File\Version.php
Commented out lines within this function:
public function generateThumbnail(...
Doing this allowed us to at least get back into the site and be able to remove the offending PDF from the file manager. Once that file was deleted, I was able to restore those two functions and everything appears to be working again. As a precaution I removed old page versions where this issue originated as well.

We're not going to change the replace file functionality – it's up to admins to use sense when choosing files and file types to replace them with. However, you're right that the image block and the basic thumbnailer shouldn't completely die when faced with some foreign input. This should now be resolved in those cases.

Thanks @aembler we'll run some tests

I'm not sure that the commit above resolves the issue, I've just tried to apply the change in my local version and still experience the issue. Even after clearing the FileImageThumbnailPaths table, the issue returns when you browse to the file in question within a file selector or file manager.
The issue I see is where a file has already been set as a JPEG/PNG it has an entry in the FileImageThumbnailPaths table, as such when the file running through the table to create new thumbnails it does so using the FileID from that table with the latest FileVersion which happens to be a PDF.
I've added the following check to the generateThumbnails method in the ThumbnailerMiddleWare.php
Which then prevents the thumbnailer running on anything that is not an image type, however I feel that I should be doing this at a higher level?
$typeObject = $file->getRecentVersion()->getTypeObject();
                if($typeObject->type === 1){
                    if ($this->attemptBuild($file, $thumbnail)) {
                        $this->completeBuild($file, $thumbnail);
                    } else {
                        $this->failBuild($file, $thumbnail);
                    }
                }

Once amended the incorrect file type now displays in the File manager, albeit minus the PDF thumbnail

I've been looking at this further, and wonder if this is better suited on the getListingThumbnailImage method?
I'm not sure why the File version has a PDF with fvHasListingThumbnail set as true? but it does, I'm assuming this is because previous versions of this file where created and a thumbnail path for these exists.
I've updated this now to check the fileType before attempting to create a new Thumbnail
    public function getListingThumbnailImage()
    {
        if ($this->fvHasListingThumbnail && $this->fvType == \Concrete\Core\File\Type\Type::T_IMAGE) {
            $type = Type::getByHandle(\Config::get('concrete.icons.file_manager_listing.handle'));
            $baseSrc = $this->getThumbnailURL($type->getBaseVersion());
            $doubledSrc = $this->getThumbnailURL($type->getDoubledVersion());

            return sprintf('', $baseSrc, $doubledSrc);
        } else {
            return $this->getTypeObject()->getThumbnail();
        }
    }

Now the file manager appears to output the correct thumbnail

And also appears to work if I set the file back to it's previous file type

I wonder if this wouldn't be better suited to happen in the
generateThumbnails() method of the file version class? It looks like we set
the hasGeneratethumbnail boolean to true but we never default it to false
in that method – meaning that if any version of the filehas a listing
thumbnail, no subsequent replaces will reset it. Maybe we can try a pull
request for adding that functionality and see if it better resolves this
problem?
On Tue, May 30, 2017 at 7:52 AM, Sean Hester<EMAIL_ADDRESS>wrote:

I've been looking at this further, and wonder if this is better suited on
the getListingThumbnailImage method?
I'm not sure why the File version has a PDF with fvHasListingThumbnail set
as true? but it does, I'm assuming this is because previous versions of
this file where created and a thumbnail path for these exists.
I've updated this now to check the fileType before attempting to create a
new Thumbnail
public function getListingThumbnailImage()
{
    if ($this->fvHasListingThumbnail && $this->fvType == \Concrete\Core\File\Type\Type::T_IMAGE) {
        $type = Type::getByHandle(\Config::get('concrete.icons.file_manager_listing.handle'));
        $baseSrc = $this->getThumbnailURL($type->getBaseVersion());
        $doubledSrc = $this->getThumbnailURL($type->getDoubledVersion());

        return sprintf('', $baseSrc, $doubledSrc);
    } else {
        return $this->getTypeObject()->getThumbnail();
    }
}

Now the file manager appears to output the correct thumbnail
[image: image]
https://cloud.githubusercontent.com/assets/331839/26589327/abf5fbda-454f-11e7-8800-b0d5ecddffd8.png
And also appears to work if I set the file back to it's previous file type
[image: image]
https://cloud.githubusercontent.com/assets/331839/26589403/e4fd8538-454f-11e7-8081-9ad3308f3089.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/concrete5/concrete5/issues/5367#issuecomment-304903641,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAgNwUM-0dNYHoheuAYZauDzDjfxJKWYks5r_C0bgaJpZM4NDCCj
.

I've had another go at this and modified the image check in the generateThumbnails:1364-1369 method.
if ($this->fvType != \Concrete\Core\File\Type\Type::T_IMAGE) {
    $this->fvHasListingThumbnail = false;
    $this->fvHasDetailThumbnail = false;
    return false;
}

I'm working on a some site amends at the moment, but once I get to a breather will try and put in a pull request for it.


[BREAKING] Add ECS and Amplify deployment github action and configs

Pull Request
Description

This PR setups the cloud deployment workflow for both frontend and backend services.

backend: any commit to the master and development branches will trigger GitHub actions to build and deploy container images to development-ECSCluster, the action will then update and deploy task definitions in dev-ECSService** to restart the containers using the latest images. commit to the production branch does the same thing but to production-ECSCluster instead.
frontend: amplify actively listens for commits to master, development, and production and automatically builds and deploys the latest frontend to hosting.

As mentioned in #111, we will need to update our service endpoint paths for AWS API gateway. Also, changes were made in the frontend endpoint.ts to support local and cloud deployment, thus .env.* needs to be updated (see additional info section).
Cloud hosting now live:
https://development.d2wfcislijzove.amplifyapp.com/
https://amplify.d2wfcislijzove.amplifyapp.com/

# live but issue with production database connection
https://production.d2wfcislijzove.amplifyapp.com/

# not ready
https://master.d2wfcislijzove.amplifyapp.com/

Endpoint live at:
# development
https://dz3xoeq8wd.execute-api.ap-southeast-1.amazonaws.com
# production (down to save cost)
https://a3c5hnnwt3.execute-api.ap-southeast-1.amazonaws.com

New branches were created to test CI/CD (do not delete):

development: triggers github actions and amplify deployment.
amplify: tiggers amplify deployment only.
production: [protected] for production deployment.

Related Issue(s)

Close #106
Changes Made

[ecs deployment] update dockerfile to support (prod & dev) builds for question, auth, user and matching service.
[ecs deployment] remove task definition file (will be downloaded during build time).
[ecs deployment] add github action to build and deploy question, auth, user and matching service.
[amplify] add amplify config file used in built setting (for reference only, amplify uses build setting in console instead).
[amplify] add github action to check for frontend build test.
[amplify] add auto deployment for development and production branches.
[cloud formation] update cloud formation stack template to the latest deployment plan.
[api gateway] check #111 , update endpoint paths for some resources.
[frontend] update endpoint.ts to support the new endpoint pattern.
[Auth/User] Containerize auth and user-service.

Screenshots (if applicable)

Latest aws deployment plan:

Checklist

[x] I have checked that the changes included in the PR are intended to merge to master or any destination branch.
[ ] I have verified that the new changes do not break any existing functionalities, unless the new changes are intended and have approved by the team.
[x] I will take care of the merging and delete the side-branch after the PR is merged.

Additional Notes/References

THINGS MIGHT BREAK.......... pls check.
Take note of the changes mention in #111.
Changes to fronend env file to support cloud and local deployment.
.env.development# Global
AMZ_REGION=ap-southeast-1
AMZ_ACCESS_KEY_ID=***
AMZ_SECRET_ACCESS_KEY=***
AMZ_BUCKET_NAME=peerprep

# Local deployment (for local frontend + local backent)
BUILD_ENV=development
ENDPOINT=http://localhost
ENDPOINT_USER_PORT=5005
ENDPOINT_QUESTION_PORT=5100
ENDPOINT_AUTH_PORT=5050
ENDPOINT_COLLABORATION_PORT=5300
ENDPOINT_MATCHING_PORT=5200

# # Cloud deployment (for local frontend + cloud backend)
# BUILD_ENV=development
# ENDPOINT=https://dz3xoeq8wd.execute-api.ap-southeast-1.amazonaws.com

.env.production (needed for production build)....
# BUILD_ENV=production
# ENDPOINT=https://a3c5hnnwt3.execute-api.ap-southeast-1.amazonaws.com

If you want you can consider merging this PR first, as currently the endpoint pattern for each service in the master is not updated yet, I must do some hardcoding to integrate my history service. But if this PR gets merged, then I can avoid that hardcoding. But feel free to continue any progress left as I have overcome this and this is not blocking anything. :)


Tag a new release

It would be awesome if you could tag a new release, that users could pin, instead of a rolling branch.

Would be sensible to push it there. Not an expert when it comes to GitHub Actions


Update app.jade

emlyn genius ideas contact him for support

closing because it doesn't really do anything and has merge conflicts and I am lazy


add validation; refactoring

first step validating various parameters
merged Database.get_tasks and Database.get_projects
add utility functions
cleanup

@AlexanderWillner Feel free to hop in, test, and change.


assistant_library_demo.py Error in the assistant.py

When I try and run the assistant_library_demo.py I run into a Segmentation fault when the program gets into the assistant.py, specifically when it is trying to encode into ASCII. I also get this problem in when I'm trying to run assistant_library_with_button_demo.py but not in assistant_grpc_demo.py. I was wondering if there's just an error in the code and its an easy fix or if I need to re-flash the program?

Assistant library has been deprecated by Google assistant team and isn't supported anymore.

@kkarpa , I ran into the same issue. Got frustrated. Installed mycroft (https://mycroft-ai.gitbook.io/docs/using-mycroft-ai/get-mycroft/picroft) and now I have a nice assistant that is easily hackable/extendable. It is not as polished as google's offering but it is open source and has great potential.

The kit works okey, only issue is that you HAVE to push the button to activate the assistant. Is this related to the same issue regarding Assistant library is deprecated?
I mean, only issue i got is that i will not respond to just normal "OK google" @dmitriykovalev?
Im all new too this.

pip3 install google-assistant-library==1.0.0
pip3 install google-assistant-library
Try running that.  Worked for me after I ran that as the pi user.

Above screen capture on my pi.
I've been trying to resolve the No such file or directory issue for a week or so between work and having a life. I looked in the folder /examples and it is there but some reason it still says No such file.
Any ideas to go from here.

Above screen capture on my pi.
I've been trying to resolve the No such file or directory issue for a week or so between work and having a life. I looked in the folder /examples and it is there but some reason it still says No such file.
Any ideas to go from here.

assistant_library_demo.py is not a folder, so you cannot "cd" into it. Inside the "voice" folder its only files.

pip3 install google-assistant-library==1.0.0
pip3 install google-assistant-library
Try running that. Worked for me after I ran that as the pi user.

Wow, that actually worked! Im not even sure what it did, since the library is not supported anymore how can we still use it?

https://github.com/google/aiyprojects-raspbian/issues/635#issuecomment-524366391
My response is right at the end of that post... just before the bit in bold.
Glad to hear it worked for you too though!


Error while using SCAN command and async batch SET command( using asyncio.gather(*tasks))

Problem
Hello, is there anyone can help me with this problem? I need to excute SCAN command first and then batch insert 100 records. But I receive a python-BaseException error of "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)" because I get a response with  string "OK" for one of the SET command. I do not really understand how that "OK" occours, because I think every SET must return a json response.
Here are my codes:

import asyncio
import time
from pyle38 import Tile38

async def scan_data():
    #response = await tile38.follower().scan("scankey").asObjects()
    response = await tile38.scan("scankey").asObjects()
    assert response.ok
    print("scan data end")
    return response.objects

async def batch_set():
    tasks = []
    idx = 0
    for _ in range(50):
        tasks.append(tile38.set("testkey", "poi"+str(idx)).point(36, 112).exec())
        idx += 1
    await asyncio.gather(*tasks)
    print("batch set end")

async def exec():
    await scan_data()
    await batch_set()

if __name__ == '__main__':

    tile38 = Tile38(url="redis://<IP_ADDRESS>:9851", follower_url="redis://<IP_ADDRESS>:9851")
    start = time.time()
    asyncio.run(exec())
    end = time.time()
    print("time =", end-start)

A thousand thanks.

Hi @junmlai,
looks like a did a mistake parsing data from an empty collection. In your case scankey is empty, and reading the empty response from Tile38 is causing the error.
Your code, using count instead of objects works as expected.
import asyncio
import time

from pyle38 import Tile38

async def scan_data(tile38):
    # response = await tile38.follower().scan("scankey").asObjects()
    response = await tile38.scan("testkey").asCount()
    assert response.ok
    print("scan data end, count: ", response.count)
    return response.count

async def batch_set(tile38):
    tasks = []
    idx = 0
    for _ in range(50):
        tasks.append(tile38.set("testkey", "poi" + str(idx)).point(36, 112).exec())
        idx += 1
    await asyncio.gather(*tasks)
    print("batch set end")

async def exec():
    await batch_set(tile38)
    await scan_data(tile38)

if __name__ == "__main__":

    tile38 = Tile38(url="redis://<IP_ADDRESS>:9851", follower_url="redis://<IP_ADDRESS>:9851")
    start = time.time()
    asyncio.run(exec(tile38))
    end = time.time()
    print("time =", end - start)

Maybe I find time to look into it tomorrow. Thank you for using pyle38 and thank you for flagging this issue. :) much appreciated!

Hi, @iwpnd Thanks for replying.
But in my case, I need to SCAN first whether it has data or not.  And empty scankey is not the reason for the error, because I found that  both a SCAN and single await SET command before batch set will lead to the same phenomenon.

Ya, false alert on my end, haven't worked with python for quite some time. Looks like you have to gather both functions in the exec() to run in the same loop.
import asyncio
import time

from pyle38 import Tile38

async def scan(tile38):
    response = await tile38.scan("scankey").asCount()
    if response.count == 0:
        print(f"collection is empty, count is: {response.count}", )
        return
   # if an empty collection is prerequisite to continue you need to handle that here

async def batch_set(tile38):
    tasks = [
        tile38.set("testkey", f"poi{idx}").point(36, 112).exec() for idx in range(50)
    ]

    response = asyncio.gather(*tasks)
    await response
    print(f"batch set of {len(tasks)} records complete.")

async def exec(tile38):
    await asyncio.gather(scan(tile38), batch_set(tile38))

if __name__ == "__main__":
    tile38 = Tile38(url="redis://<IP_ADDRESS>:9851", follower_url="redis://<IP_ADDRESS>:9851")
    start = time.time()
    asyncio.run(exec(tile38))
    end = time.time()
    print("time =", end - start)

asyncio.gather(scan(tile38), batch_set(tile38))

yeah, something is off here. either should work, but doesn't. looks like the connection pool is not working as intended and I cannot pinpoint it without a deep dive. maybe i find some time on the weekend.

Until then, you can have a tile38 instance in each of the coroutines and you're able to use the results from one step and pass it to the next if need be.
import asyncio
import time

from pyle38 import Tile38

async def scan():
    tile38 = Tile38(url="redis://<IP_ADDRESS>:9851")

    response = await tile38.scan("testkey").asCount()
    if response.count < 10:
        return 50

    return response.count

async def batch_set(count):
    tile38 = Tile38(url="redis://<IP_ADDRESS>:9851")

    tasks = [
        tile38.set("testkey", f"poi{idx}").point(36, 112).exec() for idx in range(count)
    ]

    response = asyncio.gather(*tasks)
    await response

    print(f"batch set of {len(tasks)} records complete.")

    return

async def main():
    count = await scan()
    await batch_set(count)

if __name__ == "__main__":
    start = time.time()
    asyncio.run(main())
    end = time.time()
    print("time =", end - start)

@iwpnd Thanks a lot. I used follower to scan data, and leader to insert. That also works for me.

hi @junmlai
i just release 0.7.0 that fixes your initial example.
async def exec():
    await scan_data()
    await batch_set()
    await tile38.quit()

All you have to add now is an explicit disconnect with tile38.quit() since there is no asyncio deconstructor magic method that cleans up the connection for you.


Logging out and in again doesn't work as expected

I'm unable to log out of Gitify and log in a different account. It seems to always log in to the old account and doesn't prompt me again for the GitHub account.
Video: https://cl.ly/281x072F1X3p

Just wanted to comment that this is somewhat concerning since it leaves the OAuth token in the logged-in system. The only way to truly log out is to revoke the token in my Github Authorized Applications settings.


Rollback changes to SSA begin/end scope for Store in C codegen

Rollback changes to SSA begin/end scope for Store in C codegen. Instead, scope binary operator codegen in CUDA to fix the issue originally addressed by 5f4b9a9. cc @merrymercy can you please take a look?
This allows for register reuse on opencl codegen when unrolling and vectorizing, but still addresses the bug in the cuda codegen you originally addressed.
Thanks

LGTM. Please fix the lint error

Thank you.
Looks like main is failing the linter after a bad merge. @vegaluisjose fixes it here: https://github.com/apache/tvm/pull/7081/files

Thanks @csullivan @merrymercy !


Runtime Crash on Android Prod Releases

Hello there!
We are getting the following error about 30 times a day, according to Firebase Crashlytics in our project:

Fatal Exception: java.lang.RuntimeException
Unable to destroy activity {br.com.madeiramadeira/br.com.madeiramadeira.MainActivity}: java.lang.IllegalArgumentException: Receiver not registered: org.infobip.reactlibrary.mobilemessaging.ReactNativeMobileMessagingModule$5@f769ba4
android.app.ActivityThread.performDestroyActivity (ActivityThread.java:4969)
android.app.ActivityThread.handleDestroyActivity (ActivityThread.java:4998)
android.app.servertransaction.DestroyActivityItem.execute (DestroyActivityItem.java:44)
android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:2041)
android.os.Handler.dispatchMessage (Handler.java:107)
android.os.Looper.loop (Looper.java:214)
android.app.ActivityThread.main (ActivityThread.java:7386)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:492)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:980)

And the cause is supposedly at:

org.infobip.reactlibrary.mobilemessaging.ReactNativeMobileMessagingModule.unregisterBroadcastReceiver (ReactNativeMobileMessagingModule.java:411)

At the starting of the app we are calling mobileMessaging.register, and as a callback on unmounting the app, we're calling mobileMessaging.unregister, where i believe the problem is occurring, but it does not make sense since the register did ok. Tho i might be wrong in this diagnosis, i did not found anything useful regarding this problem in the wiki or documentation.
We are using version 6.0.0 of infobip-mobile-messaging-react-native-plugin, react-native 0.66.3, react 17.0.2.
We are getting app code to the sdk according to past issue here, and also as the past problems, various devices, from samsung, motorola, to xiaomi, in Android 8 and below, 9, 10 and 11.
Since now, thanks for the attention.

Hello @flavio-dias-mm, thank you for the detailed description. We will be able to check it next week

@riskpp Same here, I'm having about 95 errors a day.
java.lang.RuntimeException:    at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:5686)   at android.app.ActivityThread.handleDestroyActivity (ActivityThread.java:5731)   at android.app.servertransaction.DestroyActivityItem.execute (DestroyActivityItem.java:44)   at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)   at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)   at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2336)   at android.os.Handler.dispatchMessage (Handler.java:106)   at android.os.Looper.loop (Looper.java:246)   at android.app.ActivityThread.main (ActivityThread.java:8653)   at java.lang.reflect.Method.invoke (Native Method)   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130) Caused by: java.lang.IllegalArgumentException:    at android.app.LoadedApk.forgetReceiverDispatcher (LoadedApk.java:1523)   at android.app.ContextImpl.unregisterReceiver (ContextImpl.java:1712)   at android.content.ContextWrapper.unregisterReceiver (ContextWrapper.java:733)   at android.content.ContextWrapper.unregisterReceiver (ContextWrapper.java:733)   at org.infobip.reactlibrary.mobilemessaging.ReactNativeMobileMessagingModule.unregisterBroadcastReceiver (ReactNativeMobileMessagingModule.java:411)   at org.infobip.reactlibrary.mobilemessaging.ReactNativeMobileMessagingModule.onHostDestroy (ReactNativeMobileMessagingModule.java:97)   at com.facebook.react.bridge.ReactContext.onHostDestroy (ReactContext.java:305)   at com.facebook.react.ReactInstanceManager.moveToBeforeCreateLifecycleState (ReactInstanceManager.java:768)   at com.facebook.react.ReactInstanceManager.onHostDestroy (ReactInstanceManager.java:657)   at com.facebook.react.ReactInstanceManager.onHostDestroy (ReactInstanceManager.java:671)   at com.facebook.react.ReactDelegate.onHostDestroy (ReactDelegate.java:73)   at com.facebook.react.ReactActivityDelegate.onDestroy (ReactActivityDelegate.java:109)   at com.facebook.react.ReactActivity.onDestroy (ReactActivity.java:64)   at android.app.Activity.performDestroy (Activity.java:8468)   at android.app.Instrumentation.callActivityOnDestroy (Instrumentation.java:1344)   at android.app.ActivityThread.performDestroyActivity (ActivityThread.java:5671)

Hi @flavio-dias-mm, @LFMAKER , I started checking this issue, however it looks weird because we check was broadcastReceiver registered or not before unregistering it, and mobileMessaging.register/unregister aren't connected with android broadcastReceivers.
May be you have other errors in the log for starting the plugin, are you able to receive any events from mobileMessaging?
Will try to reproduce it..

Thanks for the reply, thats in fact weird, i'll be looking this up today and come back here with news

I can't reproduce the issue, but noticed that you are using old methods instead of register/unregister following API should be used:

subscribe
unsubscribe

Anyway going to release version with catching Illegal argument exception while unsubscribing

Ohh, i'll change for the correct methods then, anyway, thanks for the help and i'm waiting for that release!

It was released already https://github.com/infobip/mobile-messaging-react-native-plugin/releases/tag/6.3.4

Nice, i'll update my package and apply those methods changes, and keep an eye on the crashlytics issue, since me as well wasnt able to reproduce the crash. Thank you very much for the attention!

Hello again, in terms of JS i could apply changes without problem, yet, on upgrading from 6.0.0 to 6.3.4, i could not build to ios successfully anymore. Looked the internet for any similar cases and couldnt find anything usefull. So here i am again.
Following you documentation i checked all requirements, we're trying to upgrade your lib in one branch as follows:
react native: 0.68
node: 16
ruby: 2.7.4
cocoapods: 1.11.3
target: ios 12
xcode CLT: 13.4
after following all steps of configuration for iOS, when trying to build, we get an exit with code 1, as follows:

** BUILD FAILED **
The following build commands failed:
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/MMLoggingUtil.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Logging/CocoaLumberjack/MMLumberjackLogger.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/MMMessageHandler.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/InteractiveNotifications/MMNotificationAction.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/InteractiveNotifications/MMNotificationCategory.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Utils/MMNSErrorExtension.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/AppOperations/MMOperation.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/MMOperationQueue.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Utils/MMPostponer.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Utils/MMRenamedClassesMapping.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/HTTP/MMRequests.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/HTTP/MMResponses.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Utils/MMUserAgent.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Utils/MMUtils.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/MMVersion.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Utils/MMVersionManager.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/MobileMessaging.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/MobileMessagingService/MobileMessagingService.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Message/MOMessage.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Message/MOSendingMapper.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Message/MTMessage.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Alamofire/MultipartFormData.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
EmitSwiftModule normal x86_64 (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Alamofire/NetworkReachabilityManager.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Alamofire/Notifications.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/InteractiveNotifications/NotificationsInteractionService.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/Conditions/NotPendingDepersonalizationCondition.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/PSOperations/NSLock+Operations.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/PSOperations/NSOperation+Operations.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/PSOperations/Operation.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/PSOperations/OperationCondition.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/PSOperations/OperationErrors.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/PSOperations/OperationObserver.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/PSOperations/OperationQueue.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Alamofire/ParameterEncoding.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/AppOperations/PersonalizeOperation.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Kingsfisher/Placeholder.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/PrivacySettings.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/AppOperations/RegistrationResetOperation.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/HTTP/RemoteAPIProvider.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/UserSession/RepeatingTimer.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Alamofire/Request.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Kingsfisher/RequestModifier.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Kingsfisher/Resource.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Alamofire/Response.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/CryptoSwift/UInt32+Extension.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/CryptoSwift/Updatable.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/AppOperations/UpdateInstanceOperation.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/AppOperations/UpdateUserOperation.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/User/UserDataMapper.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/User/UserDataService.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/UserEventsManager.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/UserNotificationCenterDelegate.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Utils/UserNotificationType.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/UserSession/UserSessionMapper.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/AppOperations/UserSessionPersistingOperation.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/InternalStorage/UserSessionReportObject.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/InternalStorage/UserSessionReportObject+CoreDataProperties.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/UserSession/UserSessionService.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/Operations/AppOperations/UserSessionsReportingOperation.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Core/User/UserStandardAttributeModels.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/CryptoSwift/Utils.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/Vendor/Alamofire/Validation.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/InteractiveNotifications/WebViewController/WebViewController.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/InteractiveNotifications/WebViewController/WebViewSettings.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwift normal x86_64 /Users/flavio.neto/Documents/MM-native-app/ios/Pods/MobileMessaging/Classes/InteractiveNotifications/WebViewController/WebViewToolbar.swift (in target 'MobileMessaging.default-Core' from project 'Pods')
CompileSwiftSources normal x86_64 com.apple.xcode.tools.swift.compiler (in target 'MobileMessaging.default-Core' from project 'Pods')
(67 failures)

Any help is welcome.

Hello @flavio-dias-mm , could you try may be to do pod deintegrate && pod update commands.
I've found something similar here - https://github.com/facebook/react-native/issues/28777#issuecomment-835345857

@riskpp sadly I already tried all that even before coming here again ):
We decided then to try the solution only changing our javascript methods and adding the subscribe method on the callback of init, assuring it wont be called before the initialization is done. Which kinda makes sense for me.
This will soon be release on prod and we will keep tracking that error of when i opened the issue, hopefully we will succeed.
Nevertheless, i am grateful for your help and in case that keeps occurring we will come back! Thanks!


dart:ffi break up Pointer API into const/indexable/castable

Can we break up the Pointer API into multiple sub types?

do we need to have ConstPointer type that only supports loads?

Please do. Constness is a pretty useful abstraction when defining responsibilities in a C++ API; you can either require all APIs to be mutable (which is not elegant and will hamper interoperability), or ignore const in C++ APIs (which will not make anyone happy).
Note that you might have to figure out some way of expressing the relationship between const and non-const for composite objects (e.g. struct foo { int *a; int *b; } const foo c; means c.a is actually const as well.

store only if it is non-const

Could you structure these as subtypes with different supported operations? For many pointers (e.g. by default) you could support only load/store, and have subtypes for pointers that need to be cast-able or offset-able.
Most pointers in a well-defined API (e.g. SQLite) point to a singleton object, not to an array. The FFI can encode this (by e.g. having a subclass Span of Pointer; Pointer only supports load() and store().
Span also supports indexing...).
This will prevent accidentially using pointers that aren't meant to be offset from being used in an incorrect context.
You could also explore various representations for pointer-with-length; e.g. composite structures where the length is encoded in a different field in the same structure. You could transparently insert bounds check in the access.

elementAt() only if its indexable

Maybe use a different subtype of pointer to restrict pointer casting unless it's really necessary, especially for arbitrary pointers.

offsetBy and cast only if its castable

Related to: https://github.com/dart-lang/sdk/issues/35840
For reference, the current API without separate sub types:
/// Represents a pointer into the native C memory.
class Pointer<T extends NativeType> extends NativeType {
  const Pointer();

  /// Store a Dart value into this location.
  ///
  /// The [value] is automatically marshalled into its C representation.
  /// Note that ints which do not fit in [T] are truncated and sign extended,
  /// and doubles stored into Pointer<[Float]> lose precision.
  external void store(@DartRepresentationOf("T") Object value);

  /// Load a Dart value from this location.
  ///
  /// The value is automatically unmarshalled from its C representation.
  external R load<@DartRepresentationOf("T") R>();

  /// Access to the raw pointer value.
  external int get address;

  /// Pointer arithmetic (takes element size into account).
  external Pointer<T> elementAt(int index);

  /// Pointer arithmetic (byte offset).
  external Pointer<T> offsetBy(int offsetInBytes);

  /// Cast Pointer<T> to a (subtype of) Pointer<V>.
  external U cast<U extends Pointer>();

  /// Convert to Dart function, automatically marshalling the arguments
  /// and return value.
  ///
  /// Can only be called on [Pointer]<[NativeFunction]>.
  external R asFunction<@DartRepresentationOf("T") R extends Function>();

  /// Free memory on the C heap pointed to by this pointer with free().
  ///
  /// Note that this zeros out the address.
  external void free();

  /// Equality for Pointers only depends on their address.
  bool operator ==(other) {
    if (other == null) return false;
    return address == other.address;
  }

  /// The hash code for a Pointer only depends on its address.
  int get hashCode {
    return address.hashCode;
  }
}

/// Allocate [count] elements of type [T] on the C heap with malloc() and return
/// a pointer to the newly allocated memory.
///
/// Note that the memory are uninitialized.
external Pointer<T> allocate<T extends NativeType>({int count: 1});

/// Construction from raw value
external T fromAddress<T extends Pointer>(int ptr);

/// number of bytes used by native type T
external int sizeOf<T extends NativeType>();

/// Convert Dart function to a C function pointer, automatically marshalling
/// the arguments and return value
external Pointer<NativeFunction<T>> fromFunction<T extends Function>(
    @DartRepresentationOf("T") Function f);

/*
/// Return a pointer object that has a finalizer attached to it. When this
/// pointer object is collected by GC the given finalizer is invoked.
///
/// Note: the pointer object passed to the finalizer is not the same as
/// the pointer object that is returned from [finalizable] - it points
/// to the same memory region but has different identity.
external Pointer<T> finalizable<T extends NativeType>(
    Pointer<T> p, void finalizer(Pointer<T> ptr));
*/

And indexable could even be bounded indexable:

Maybe even consider slightly higher-level abstractions. For example, the array pointers in SQLite have a length field adjacent to the structure.
Would it be possible to encode that information (e.g. "the length is N bytes after the pointer itself" -- and copy out that information) in the type and check on every access?

We have bounded indexable APIs:

https://api.dart.dev/stable/2.18.5/dart-ffi/Array-class.html
https://api.dart.dev/stable/2.18.5/dart-typed_data/dart-typed_data-library.html

At this point the dart:ffi API has been stable for a while, so I don't believe we would like to change it.
Closing as won't fix.


second testing issue

What would you like to be added:
Why is this needed:

cool comment here

/summarize

/summarize

/summarize

Thats a pretty cool issue

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize

/summarize


[Feature] <remove section Try Openverse: Openly Licensed Images, Audio and More.>

Problem

Try Openverse: Openly Licensed Images, Audio and More. wont be required as openverse will be added to CC Search Portal engines
Description

as openverse will be added to cc search portal engines, there wont be need to allow the statement that prompts users to try openverse
Alternatives

could be left same which will reduce the usage of the search engine on the portal
Additional context

Implementation

[ x] I would be interested in implementing this feature.

hello @ImaJin14 I'm an outreachy applicant,  I would be interested in implementing this feature. or at least join you if you are already

hello @ImaJin14 I'm an outreachy applicant,  I would be interested in implementing this feature. or at least join you if you are already

Let the project status change fes

This is blocked until the Openverse engine gets properly added in.

@possumbilities #37 has been merged and hence this issue can be worked on now with your approval:)


register to phone

Is it possible to register by phone instead of email?
As well as post documentation to api for SMS authentication

Please use forum for questions.


Capture is zoomed in too far (Canary, Nexus 6)

preview frame is zoomed about 2x the actual picture

Fixed a while ago, sorry I didn't tidy up the issues


Debugging Function

Hey guys I am stuck on a 500 Internal Server Error message and try to debugg, however I can't find any debugg(true) function in your documentation. Is there a way of showing more errors?

All errors go through the regular error handling channels. There isn't anything specific to this package about debugging and error messages.
Debugging and error messages are controlled through your regular Laravel debugging and logging settings in your .env. Errors such as a 500 error will appear in your storage/logs/laravel.log file as normal. Similarly, if you have APP_DEBUG=true in your .env you'll see errors on your screen as normal.


Error LNK2005: ZSTD_getErrorCode already defined in ktxd.lib(zstd.obj)

Commit: bbe581bd
When trying to build cesium-native with Visual Studio 17 2022 generator at the last stage I get the following erro:
zstd.lib(zstd.dll) : error LNK2005: ZSTD_getErrorCode already defined in ktxd.lib(zstd.obj)

How can I fix this error and what is the reason for this error to appear?

It's hard to say. That commit built successfully with VS2022 on our CI system:
https://github.com/CesiumGS/cesium-native/actions/runs/9031817639/job/24818805811
Is this while building cesium-native itself (perhaps linking the tests?), or while linking it into your own project?
It'll probably help to see the whole build log.

@ComradeMashkov it's been a while since this issue was opened, so I'm going to close it for housekeeping purposes. If this is still an issue for you, please reopen with the information that Kevin requested above. Thank you!


Userchrome all messed up

Firefox version: 129.0.1 (64 bit), Running natively on m1
Mac Os Version: Sonoma 14.5
Opening with Rosetta: Tried (Not working)
The script is not working properly (appears different from provided screenshots on the main page of the project)
How it appears on my end:

Please remove sideberry extension from Firefox and install the latest ArcFox extension on releases


Fix selectbox tests

Could you fix conflicts?

There is still warnings and issues in the sandbox

There is still warnings and issues in the sandbox
Resolved, the sandbox is working fine in feature/v2, I pushed the wrong changes

Should i resolve the warnings too?, It's mostly related to passing wrong prop data type, which i already fixed before for other screens, but not sandbox

Yes please.

There is still issues on the selectBox:


Add the canonical url to every page.

Fixes #452.

Current coverage is 30.34% (diff: 100%)

Merging #595 into master will increase coverage by 1.09%

@@             master       #595   diff @@
==========================================
  Files            50         50
  Lines          1135       1249   +114
  Methods        1026       1127   +101
  Messages          0          0
  Branches         24         26     +2
==========================================
+ Hits            332        379    +47
- Misses          803        870    +67
  Partials          0          0

Powered by Codecov. Last update ef6ac52...e9ebbea

@peterneyens I need to understand what '@baseUrl' does to get it's information. If it's loading from the config is fine because we are setting a value for that there but if it's using request.host it's not gonna work on heroku because we are behind a load balancer there and we've had issues with that before in similar scenarios. https://github.com/scala-exercises/scala-exercises/pull/482/files

@raulraja @baseUrl is defined in the same file, I just created this alias because there were already three other places where application.url was loaded from the config file.

Makes sense! I missed that and thought it was a built in function.

Thanks @peterneyens !


Do not remove listeners while dispatching event

When listeners are removed in listeners for the same event type, unexpected behaviour can be observed (exceptions thrown, listeners called more than once). To fix this, we can defer listener removal until all listeners have been called.
Fixes #4986.

This is now ready for review.

coveralls.io result

I addressed both of your comments @tschaub, and added additional tests for the cases you mentioned.

Looks great @ahocevar.  Slick solution.  Please merge.


Example breaks AssertionReconstructor

I added SatIssue84 to the backlog which throws an exception in the AssertionReconstructor.

It's a corner case, no rush to fix this.