[0.57][ANDROID] Signed release do not show local assets images.

Environment
System
  React Native Environment Info:
    System:
      OS: macOS High Sierra 10.13.6
      CPU: x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
      Memory: 422.77 MB / 16.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 10.11.0 - /usr/local/bin/node
      Yarn: 1.9.4 - /usr/local/bin/yarn
      npm: 6.4.1 - /usr/local/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.0, macOS 10.14, tvOS 12.0, watchOS 5.0
      Android SDK:
        Build Tools: 23.0.1, 26.0.3, 27.0.0, 27.0.3, 28.0.2
        API Levels: 23, 26, 27, 28
    IDEs:
      Android Studio: 3.1 AI-173.4907809
      Xcode: 10.0/10A255 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.5.0 => 16.5.0
      react-native: 0.57.1 => 0.57.1
    npmGlobalPackages:
      react-native-cli: 2.0.1
      react-native-rename: 2.2.2

Description
Debug is all alright. After build release apk version can't see local images.
Tried the #20358 workaround but get this error:

on al my resources of all my images. Any ideas? Maybe could be the bundle?
Reproducible Demo
Just release build android signed release.
Gradle 4.4.1

I was able to solve the problem by manually running
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
However, why was copying images to their respective asset folders not required before?

I can't,  after execute that command i get the duplicated assets error, and if i don't remove the assets moved to  the res folder the application won't run :/ Probably will just need to downgrade just to make the signed APK.

I have this exact same issue. I end up manually removing the images from android/app/src/main/res when building signed apk with Android Studio, then it works.
This isnt ideal as its a bit of manual work each time I need to build an apk

Same issue here. What @ygerg suggested does work, but I am wondering why this is.

@ygerg didn't worked for me. To make the build I had to rollback the react.gradle to a previous version. The custom file on this stackoverflow answer also worked.

I tried almost all possible solutions and the images still don't show after a successful build. For the moment i uploaded all images to the server and i'm using the url to load them but gonna have to downgrade to generate my final release if i can't find a solution that works :C

iOS is react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios?
from
https://github.com/facebook/react-native/issues/18472

what is module:react-native?
Loading dependency graph, done.

/Users/shinriyo/development/react_apps/kazoemon/index.js: Cannot find module 'babel-preset-react-native' from '/Users/shinriyo/development/react_apps/kazoemon'
- If you want to resolve "react-native", use "module:react-native"

Error: Cannot find module 'babel-preset-react-native' from '/Users/shinriyo/development/react_apps/kazoemon'
- If you want to resolve "react-native", use "module:react-native"
    at Function.module.exports [as sync] (/Users/shinriyo/development/react_apps/kazoemon/node_modules/resolve/lib/sync.js:43:15)
    at resolveStandardizedName (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/files/plugins.js:101:31)
    at resolvePreset (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/files/plugins.js:58:10)
    at loadPreset (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/files/plugins.js:77:20)
    at createDescriptor (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-descriptors.js:114:9)
    at items.map (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-descriptors.js:69:50)
    at Array.map (<anonymous>)
    at createDescriptors (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-descriptors.js:69:29)
    at createPresetDescriptors (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-descriptors.js:61:10)

I changed
  "presets": [
    "react-native"
  ],

to
  "presets": [
    "module:react-native"
  ],

in
.babelrc file.
error was changed.
yarn run v1.5.1
warning ../../../package.json: No license field
$ react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
Loading dependency graph, done.

/Users/shinriyo/development/react_apps/kazoemon/index.js: Plugin/Preset files are not allowed to export objects, only functions. In /Users/shinriyo/development/react_apps/kazoemon/node_modules/react-native/Libraries/react-native/react-native-implementation.js

Error: Plugin/Preset files are not allowed to export objects, only functions. In /Users/shinriyo/development/react_apps/kazoemon/node_modules/react-native/Libraries/react-native/react-native-implementation.js
    at createDescriptor (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-descriptors.js:138:11)
    at items.map (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-descriptors.js:69:50)
    at Array.map (<anonymous>)
    at createDescriptors (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-descriptors.js:69:29)
    at createPresetDescriptors (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-descriptors.js:61:10)
    at presets (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-descriptors.js:43:19)
    at mergeChainOpts (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-chain.js:303:26)
    at /Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-chain.js:266:7
    at mergeExtendsChain (/Users/shinriyo/development/react_apps/kazoemon/node_modules/@babel/core/lib/config/config-chain.js:282:21)

error An unexpected error occurred: "Command failed.
Exit code: 1
Command: sh
Arguments: -c react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
Directory: /Users/shinriyo/development/react_apps/kazoemon
Output:
".
info If you think this is a bug, please open a bug report with the information provided in "/Users/shinriyo/development/react_apps/kazoemon/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

@shinriyo That is a completely separate issue, in order to update to 0.57 you need to first install
yarn add metro-react-native-babel-preset
Then, change .babelrc preset to
{
  "presets": ["module:metro-react-native-babel-preset"]
}

@ygerg thank you for response
I use 0.57.0-rc.3. for using TypeScript.
Is 0.57 higher than 0.57.0-rc.3?

Finally I don't know what is bad, but worked
{
  "presets": ["module:metro-react-native-babel-preset"],
  "plugins": [
    "transform-decorators-legacy",
    [
      "@babel/plugin-transform-runtime",
      {
        "helpers": true,
        "polyfill": false,
        "regenerator": false
      }
    ]
  ]
}

Faced the same problem after upgrading to React Native 0.57 on Android (iOS seems to be working fine)
Here's what I did:

From my project root folder, I first created the asset files and moved them to android resources folder using the following command:

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

Then did a production build for android normally:

cd android && ./gradlew assembleRelease

(optional) Finally the first step created lots of untracked images in my git repository, hence to clear the new untracked files, I ran:

git clean -fd

make sure you have committed your code before running the git clean -fd command
This will create the release apk with all the required local images. However, a fix for the usual way will be really appreciated...

Yeah, it broke our Android build. Copying the assets over manually leaves the project unclean. Hope there will be a fix soon. Any idea which commit 0.57 introduced this issue? Just so that we can think about a real fix.

Upgrading gradle version to 4.4 actually fixes this issue. Steps available in this documentation

Actually im updated to 4.4 coz im also using rnfirebase but had no luck. The only solution i found is transform all my image assets to base64 literals and import them as string variables.

@DaniAkash how do you write path to images to make it work with 4.4 gradle?

I found right way for Android.

First of all, you need to copy you image to android/app/srs/main/assets/ . I may do this manually or with a help of gradle tasks.
Use right source via uri for android:
<Image source={Platform.OS === 'android' ? {uri: "asset:/image.png"} : require('./image.png')} />

For iOS it is a bit simplier, you just every time copy assets and use require .
I think, it may be closed.

Unfortunately problem still exists in react-native 0.57.7
How other fellow React-Native/Android developers are working around this issue?
It seems major that local images are missing in the release build..

Any fix/temporary solution for this ? 😕
I tried
#21309 (comment)
But didn't help!
Here's my env:
"react": "16.7.0",
"react-native": "0.57.8",

Dirty fix: Transform images to base64 and import them as js files

Hello there 👋 this issue has been reported for an old version of React Native. Ideally we'd like everyone to be using 0.59 (see the awesome changes it brought) but we know updating can be a pain. We are going to close this issue because it's from a version before 0.57, which is really old.
But please, if it's actually still an issue with 0.59 please comment below and we can reopen it 😊

I am using the 0.59 version I am still facing this issue

I am using the 0.59.6 and I am have this issue

I have the same issue for more than 2 years! why nobody can find a solution!!!? none of the provided solutions is working permanently!
react native 0.59.6
gradle 4.4
android 27,28 none working

I also had this issue, but I can’t exactly remember how I fixed it. I think I upgraded the Gradle version and compared the .gradle files to the files of a brand new project generated by react-native-cli.

Manually create a bundle(react-native bundle command) and disable this line from: "../../node_modules/react-native/react.gradle"
in android/app/build.gradle file. If you face any issue like index.js/index.android.js not found give the absolute path(for linux -  /home/{user}/project-dir) of index.js file and output file.

0.59.8 still same issue..

somehow I fixed the issue and I don't remember how a few months back when I upgraded to .59.1 then slowly the project fine till 0.59.8. Yesterday, I upgraded to 0.59.9 and this issue came up. :( .. look like this could be linked to gradle properties.

I have recently upgraded to 0.59.9 and experienced this the first time.
I followed @ygerg advice:
I was able to solve the problem by manually running react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
Then I got a 'duplicate assests error' and followed @anjapadu advice to remove the assets from android\app\src\main\res (there was a new 'drawable-mdpi' folder which I removed).
Problem seems to be solved this way, but I don't understand: why do I need to run a command that bundles the assets into android\app\src\main\res and then to delete the folder created there?

Delete all drawable folder from your res folder then run ./gradlew assebleRelease command.. this will work

@SimaRajput I think that you misunderstood me... I know how to make it work, I just asked a question...

Using 0.59.5 and also getting this problem.
I've tried to fix it with the suggested react-native bundle command, but it doesn't help either. (not getting the duplicate assets error though).

Set shrinkResources to false will work in this case. shrinkResource compress the local assets and hence it does not appear in the release build.
release {
            ..
            minifyEnabled true
            shrinkResources false

        }

I found right way for Android.

First of all, you need to copy you image to android/app/srs/main/assets/ . You may do this manually or with a help of gradle tasks.
Use right source via uri for android:
<Image source={Platform.OS === 'android' ? {uri: "asset:/image.png"} : require('./image.png')} />
Then just build release version of apk.

For iOS it is a bit simplier, you just copy assets and use require .
I think, issue may be closed.
EDIT. Example of my task plased in android/app/build.gradle:
task copyLogo(type: Copy) {
    from '../../assets/images/login_logo.png' // destination to where your image placed
    into 'src/main/assets'
}
// Note that you may need to add other build variants
gradle.projectsEvaluated {
    bundleDebugJsAndAssets.dependsOn([copyLogo])
    bundleReleaseJsAndAssets.dependsOn([copyLogo])
}

And requiring that image:
<Image
   source={Platform.OS === 'ios' ? require('./login_logo.png') : {uri: "asset:/login_logo.png"}}
   style={STYLES.logoImage}
/>

This is actually worked.
I'm using react-native 0.59.
use {uri: "asset:/file_name.png"}
(You can manually copy your image on android/app/src/main/assets/)
Well, I don't have much time to spend for 1 local image only, may as well do things dirty to make time more efficient.
Either way, this worked for me.

change build.grandle
buildTypes:{
// shrinkResources true
}

Also seeing this issue..


Merge back uneven reshard

previously reverted

post-commit: https://github.com/tenstorrent/tt-metal/actions/runs/9200428839
nightly: https://github.com/tenstorrent/tt-metal/actions/runs/9200433973
device-perf: https://github.com/tenstorrent/tt-metal/actions/runs/9200437182

@tarafdarTT Can you please run this branch on GS machine. I am getting bad optional access at layer3 resharding.
pytest tests/ttnn/integration_tests/resnet/test_ttnn_functional_resnet50.py::test_resnet_50[batch_size=20-act_dtype=DataType.BFLOAT8_B-weight_dtype=DataType.BFLOAT8_B-math_fidelity=MathFidelity.LoFi-device_l1_small_size=24576]


Question: What would we expect whenever the server restarts ? It is okay to recreate the repository again and again.

Question: What would we expect whenever the server restarts ? It is okay to recreate the repository again and again.
Originally posted by @hectorj2f in https://github.com/sigstore/scaffolding/pull/262#discussion_r936780240

Oh, it's not idempotent based on the same inputs?

Correct, because signatures are generated during the metadata creation, so recreating the metadata would result in different bytes.

What would we expect whenever the server restarts ? It is okay to recreate the repository again and again.

Correct me if I'm wrong, let me give this a stab!
On first creation, we currently CreateRepo from the three secrets. This code stores the initial 1.root.json to the secrets and then serves the repository.
If we can also store the TUF repo signing key in the secrets on the initial creation, then we can do the following if the server is being re-started:

Retrieve the 1.root.json and the TUF repo signing key.
Issue a 2.root.json with the TUF repo signing key and new generated keys for the other roles.
Continue with the same process in CreateRepo to add the targets, snapshot, timestamp, and commit. from here on wards.
Serve the new repository.

Clients will be able to chain their existing 1.root.json to the refreshed server.
Does that make sense?
We can further simplify if we use the same signing key for all roles. Then we don't need to do step (2).

I think that makes sense. Just to make sure I'm on the same page, if we were to take the results from here:
https://github.com/sigstore/scaffolding/blob/main/cmd/tuf/server/main.go#L90
And move it to where we create the unified secret instead of doing in the server and serialize it and then unserialize it on server restart, that would also work?
But, I kind of like exercising also the resigning path, by doing this, we could add some more testing on this path by restarting and ensuring that things keep working?

And move it to where we create the unified secret instead of doing in the server and serialize it and then unserialize it on server restart, that would also work?

Yes! If we took the entire dir or local Store result and serialized that, we could just re-serve that entire dir.

could add some more testing on this path by restarting and ensuring that things keep working?

Good idea, I can add some testing that recreates the repo and uses sigstore's tuf client to continue verifying

Ok, thanks! I think it might be easier and be better for testing to do what you suggest then instead of serializing/unserializing, I think. Also more tests are always good :)

Hi folks, I think this has been fixed by https://github.com/sigstore/scaffolding/pull/1214 - you can now run the TUF server with -init to only generate repository and -serve to only serve an existing repository - see the linked PR for more details. I believe this can be closed (but I don't have permissions to close issues on this repo, so hopefully somebody with permissions will chip in and do that).

Thank you!!!


Add the :cbefore and :cafter quickfix commands

Add the :cbefore and :cafter commands to jump to the quickfix entries
before and after the current cursor location in the current buffer.

Codecov Report

Merging #4340 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #4340      +/-   ##
==========================================
+ Coverage    80.1%   80.13%   +0.03%
==========================================
  Files         108      108
  Lines      142192   142226      +34
==========================================
+ Hits       113906   113976      +70
+ Misses      28286    28250      -36

Impacted Files
Coverage Δ

src/quickfix.c
93.56% <100%> (+0.06%)
:arrow_up:

src/os_unix.c
60.02% <0%> (-0.05%)
:arrow_down:

src/terminal.c
80.62% <0%> (+0.03%)
:arrow_up:

src/ui.c
55.07% <0%> (+0.07%)
:arrow_up:

src/window.c
86.7% <0%> (+0.09%)
:arrow_up:

src/screen.c
81.52% <0%> (+0.1%)
:arrow_up:

src/ex_cmds2.c
87.31% <0%> (+0.11%)
:arrow_up:

src/syntax.c
79.74% <0%> (+0.12%)
:arrow_up:

src/sign.c
93.51% <0%> (+0.12%)
:arrow_up:

src/netbeans.c
27.44% <0%> (+0.22%)
:arrow_up:

... and 2 more

Continue to review full report at Codecov.

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

Right now, :cafter fails if the cursor is right on the last entry in a buffer (E553 is raised).  Would it be possible to make :0cafter and :0cbefore succeed in that case?  That is, they would accept an entry at the current cursor position.

Hi,

On Sun, Feb 9, 2020 at 4:47 AM lacygoill<EMAIL_ADDRESS>wrote:
Right now, :cafter fails if the cursor is right on the last entry in a
buffer (E553 is raised). Would it be possible to make :0cafter and
:0cbefore succeed in that case? That is, they would accept an entry at
the current cursor position.

What happens if the cursor is not on a line with a quickfix entry? In that
case does this behave like :cafter or :1cafter or the cursor doesn't move?
How are you planning to use this?

Yegappan

Hi, and thank you for commenting.

What happens if the cursor is not on a line with a quickfix entry? In that
case does this behave like :cafter or :1cafter or the cursor doesn't move?

:0cafter would behave just like :cafter or :1cafter, with one exception: it would accept an entry at the cursor position.  A 0 count would be to :[cl]after and :[cl]before what the c flag is for the search() function.
So, if the cursor is not on a line with a quickfix entry:

:0cafter would fail if there is no entry in the buffer
:0cafter would make the cursor move to the next entry in the buffer when one exists

When :0cafter is executed while an entry is right under the cursor, the latter would not move, but the current entry in the quickfix list (as reported by :echo getqflist({'idx':0}).idx) would still be reset to the entry under the cursor.

How are you planning to use this?

I've always wanted a command which would move to the next entry in the quickfix list, taking into account the current cursor position.  That is, moving to the next entry relative to the current cursor position if one exists in the current buffer, otherwise to the next entry in the quickfix list.
The closest builtin command is :cafter, but it doesn't work if there is no match after the cursor (E553 is raised).  In that case, I need :cnext:
try | cafter | catch | cnext | endtry

But it doesn't always work as I would expect when the cursor is after the last entry in the buffer.  Consider this experiment:
$ echo "entry1\nentry2" >/tmp/file1 ; \
  echo "entry3" >/tmp/file2 ; \
  echo "entry4" >/tmp/file3 ; \
  vim -Nu NONE /tmp/file{1..3} +'sil vim /entry/gj ##' +'cc 1|sil next'

If I execute :try | cafter | catch | cnext | endtry, I jump to the second entry in the first file, while I would want to jump to the fourth entry in the third file; because – from my point of view – entry4 is the next entry, not entry2; I pay much more attention to my cursor location than to the index of the current entry in the quickfix list (I often forget what it is).
One solution is to run :cbefore|cafter before :cnext
try
    cafter
catch
    sil! cbefore
    sil! cafter
    cnext
endtry

The purpose of :cbefore|cafter is to reset the current entry to the last entry in the buffer, so that when :cnext is run, the next entry is chosen relative to the latter (last entry in buffer) and not relative to whatever entry the current index referred to originally.
This works as I would expect most of the time:

when there is no entry in the buffer, both :cbefore and :cafter fail, and only :cnext is run

when there is 1 entry in the buffer, and the cursor is before it, :cbefore fails, but :cafter succeeds; the current entry is reset to the last entry in the buffer, before :cnext is run

when there is 1 entry in the buffer, and the cursor is after it, :cbefore succeeds, but :cafter fails; the current entry is reset to the last entry in the buffer, before :cnext is run

when there are more than 2 entries in the buffer, both :cbefore and :cafter succeed; the current entry is reset to the last entry in the buffer, before :cnext is run

But there is one exception where something unexpected happen:

when there is 1 entry in the buffer, and the cursor is on it, both :cbefore and :cafter fail; the current entry is not reset to the last entry in the buffer, before :cnext is run

You can check this with the previous experiment:
$ echo "entry1\nentry2" >/tmp/file1 ; \
  echo "entry3" >/tmp/file2 ; \
  echo "entry4" >/tmp/file3 ; \
  vim -Nu NONE /tmp/file{1..3} +'sil vim /entry/gj ##' +'cc 1|sil next'

If you run this command:
:try|cafter|catch|sil! cbefore|sil! cafter|cnext|endtry

You still jump to entry2, while I want entry4.
I'm working on a workaround.  It can be boiled down to this:
nno ]q :call Cnext()<cr>

fu Cnext()
    let idx = Only_one_entry_in_current_buffer()
    if idx
        exe 'cc '..idx
        cnext
        return
    endif
    try
        cafter
    catch
        sil! cbefore
        sil! cafter
        cnext
    endtry
endfu

fu Only_one_entry_in_current_buffer()
    let curbuf = expand('%:p')
    let orig_qfl = getqflist() | let qfl = deepcopy(orig_qfl)
    call filter(qfl, 'fnamemodify(bufname(getqflist()[v:key].bufnr), "%:p") is# curbuf')
    if len(qfl) == 1
        return index(orig_qfl, qfl[0]) + 1
    else
        return 0
    endif
endfu

It works, but it makes the code much more complex, and it's slow.  I can notice the slowness, because I can repeat some of my custom mappings by pressing ;; when I keep pressing ; to jump near an entry far away from the current one, the quickfix window is not updated which makes it impossible to be used very fast.
To fix this, I need a timer-based guard to prevent the function from being re-invoked uselessly too many times in a short period of time:
" written at the start of `Only_one_entry_in_current_buffer()`
if exists('s:was_invoked_recently') | return | endif
let s:was_invoked_recently = timer_start(5, {-> execute('unlet! s:was_invoked_recently')})

If :0cafter did not fail when an entry is right under the cursor, it would not make the cursor move, but it would still reset the current entry to the one under the cursor, which is what I need.  I think I could then rewrite my code like this:
nno ]q :call Cnext()<cr>

fu Cnext()
    try
        cafter
    catch
        sil! 0cbefore
        sil! 0cafter
        cnext
    endtry
endfu

This is much simpler, and probably more reliable.

I've also considered the possibility of moving the cursor 1 character backward before running :cafter, so that the latter succeeds; then I could run :cnext.  But the entry could be positioned at the very start of the buffer; in which case, there is no earlier position I could move to.
I would need some special code to detect the motion has failed, or will fail.
Then I would need to move 1 character forward before running :cbefore.
But what if there is no later position either (only 1 character in the buffer)?
Besides, moving the cursor may change the view, which I guess (?) is not an issue if :cnext succeeds, but what if it fails?  I would need to make sure the view and the cursor position are restored.


regression models answer

Several regression models have been added to the answer.

Thank you for your contribution!


Please update action to latest APIM 1.14.2, as it no longer works

Please update action to latest APIM 1.14.2, as it no longer works

fixed


Ros build fix

Revert the past two changes and add comments about this
being a ROS specific build check.

@rojkov Could not directly add you as a reviewer since you are not a member the IntelRealSense GitHub organization, but open to comments.

I see... That's unfortunate that ROS devs have decided to use an env variable with the same name as CMake's one. This violates the principle of least astonishment.
I'm OK with this rollback and will submit a fix to meta-ros to define CMake's ROS_BUILD_TYPE=TRUE explicitly for librealsense.

@dorodnic Can we go ahead and merge this change?


Not able to make the lib work with SvelteKit

Hi, I have a SvelteKit app and I am trying to include the particle lib to my project by following the svelte docs.
I am experiencing this error:

Things I did:

installed the library as per https://github.com/tsparticles/svelte
tried to included it in one of my components
also tried setting the preprocessor from vite to svelte-preprocessor but did not change much

Would appreciate any help. Let me know if you need more info.

Same here after updating from 2.9.3 to 2.10.1.

Same here after updating from 2.9.3 to 2.10.1.
If you need please open a new issue with a reproducible sample or steps to reproduce the problem


Update departures and climatology APIs with reference period

Description

Closes #387
Add reference_period parameter to climatology() and departures() to subset climatology
In departures(), calculate the the grouped average of the observation data before calculating anomalies

This behavior makes departures() align with CDAT's APIs for calculating departures

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings
[x] Any dependent changes have been merged and published in downstream modules

If applicable:

[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass with my changes (locally and CI/CD build)
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have noted that this is a breaking change for a major release (fix or feature that would cause existing functionality to not work as expected)

Codecov Report
Base: 100.00% // Head: 100.00% // No change to project coverage :thumbsup:

Coverage data is based on head (7e56fb2) compared to base (1efb807).
Patch coverage: 100.00% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff            @@
##              main      #417   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           14        14
  Lines         1266      1278   +12
=========================================
+ Hits          1266      1278   +12

Impacted Files
Coverage Δ

xcdat/temporal.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

One thing I noticed is that calling ds.temporal.departures drops time_bnds – which I don't think needs to happen (I assume xarray doesn't know how to deal with this during the subtraction of the climatology). I think the time bounds can be added back in after subtraction. I noticed this in verifying that this PR was accurate (I get accuracy of order 10-4 – 10-7, I think because I added time bounds back in using add_missing_bounds, which is problematic).

Before this PR:

departures() used to maintain time_bnds because the output frequency was the same as the input frequency (no group_average() call).

In this PR:

Since we now call group_average(), time_bnds are dropped because the time coordinates are grouped which changes the time frequency and shape.

Solutions/Workarounds:

As you mentioned, get new time_bnds for the new grouped time coordinates using add_missing_bounds(). The accuracy should improve with #412.
Keep a separate time_original dimension/coordinates to keep time_bnds in the dataset (otherwise we get time_bnds with NaT values since time frequency and shape changes).

Steps zero and one of departures call _set_arg_attrs(), .copy(), _preprocess_dataset(), and group_average(). This overlaps strongly with _averager() – maybe things could be streamlined here (though I see that some of the order-of-operations is different, which may be why they are different.

I saw your point and played around with different implements using _average() to tried to find ways to streamline the implementation. I wasn't able to find a simple way to call self._average() without making significant modifications to how the TemporalAccessor class attributes are set (e.g., self._mode). We can probably try refactoring this in the future if we wanted to.
I updated the order-of-operations and made clearer comments in the departures() method so it is hopefully easier to understand. Please check out this commit diff and let me know if those comments make sense.

As noted, departures calls group_average() on each call – I think this may not be necesary if the input/output frequency are the same?

I also don't think we need to perform group averaging if the input/output frequencies are the same. It still works either way (and converts time coordinates to cftime if they aren't already), but it might improve performance by removing unnecessary operations.
We can try determining if group_average() is necessary by using the existing _infer_freq() method and comparing the result to the input freq argument.


Change context bounds from LoggerFactory to LoggerFactoryGen

This should make it much simpler to implement custom logger-factories as the type of the returned logger is reduced on the core functionalities of a logger:
log4cats.LoggerFactory requires to return a log4cats.SelfAwareStructuredLogger which implements a bunch of methods from the log4cats.SelfAwareLogger and log4cats.StructuredLogger traits that (depending on the logging framework one want to adapt to) might not be trivial to implement and are not used in http4s at all.
By changing the contextbound to log4cats.LoggerFactoryGen, the required type of the returned logger is reduced to log4cats.Logger wich is sufficient for http4s and is much simpler to implement.
(Somewhat related to  #7300 where it was noted that implementing a LoggerFactory for scribe is not as simple as one would expect.)

Turns out that this could break stuff for some users as there are some implicits defined for log4cats.LoggerFactory (in its companion) that are not defined for log4cats.LoggerFactoryGen. (See mdocs build failing because there is no equivalent to implicit def optionTFactory[F[_]: LoggerFactory: Functor]: LoggerFactory[OptionT[F, *]].)


Add cg profile api v2

Add CGProfile API specifications in a new version

can you please fix the Lint diff errors : https://github.com/Azure/azure-rest-api-specs/pull/30874/checks?check_run_id=31188511734

      "$ref": "#/definitions/Resource"

use the tracked resource definition from common types and remove all other top level definitions from the object

Refers to: specification/containerinstance/resource-manager/Microsoft.ContainerInstance/preview/2024-11-01-preview/containerInstance.json:3348 in 9e43e2e. [](commit_id = 9e43e2e2afa147bdb377acb7b5b75f7099023401, deletion_comment = False)

"NGroupIdentity": {

use commontypes definition

Refers to: specification/containerinstance/resource-manager/Microsoft.ContainerInstance/preview/2024-11-01-preview/containerInstance.json:3353 in 9e43e2e. [](commit_id = 9e43e2e2afa147bdb377acb7b5b75f7099023401, deletion_comment = False)

      "$ref": "#/definitions/Resource"

use the tracked resource definition from common types and remove all other top level definitions from the object
Refers to: specification/containerinstance/resource-manager/Microsoft.ContainerInstance/preview/2024-11-01-preview/containerInstance.json:3348 in 9e43e2e. [](commit_id = 9e43e2e, deletion_comment = False)

The JSON is required by internal customers to see the swagger UI. Hence the references are limited to this file only. For future when we make this to public stable version then we can make these references to common types.

Can you please fix the newly introduced Lintdiff warnings : https://github.com/Azure/azure-rest-api-specs/pull/30874/checks?check_run_id=32564480702

could you also please fix the older comments I had provided before restarting the ARM review ?


Interact_dependency_issue

PR Checklist
If you are contributing to JavisNB.jl, please make sure you are able to check off each item on this list:

[ ] Did I update CHANGELOG.md with whatever changes/features I added with this PR?
[ ] Did I make sure to only change the part of the file where I introduced a new change/feature?
[ ] Did I cover all corner cases to be close to 100% test coverage (if applicable)?
[ ] Did I properly add JavisNB dependencies to the Project.toml + set an upper bound of the dependency (if applicable)?
[ ] Did I properly add test dependencies to the test directory (if applicable)?
[ ] Did I check relevant tutorials that may be affected by changes in this PR?
[ ] Did I clearly articulate why this PR was made the way it was and how it was made?

Link to relevant issue(s)
Closes #
How did you address these issues with this PR? What methods did you use?

Codecov Report

Merging #15 (f5d5fad) into main (7caa81a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #15   +/-   ##
=======================================
  Coverage   65.51%   65.51%
=======================================
  Files           1        1
  Lines          29       29
=======================================
  Hits           19       19
  Misses         10       10

Continue to review full report at Codecov.

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


Update project tt_um_tt08_aicd_playground (mole99/tt08-aicd-playground)

Update project tt_um_tt08_aicd_playground to commit mole99/tt08-aicd-playground@01994fdb45e89b6c94ebfa7d49b5c96a6a44efb0
Project title: AICD Playground
Tiles: 2x2
Workflow: https://github.com/mole99/tt08-aicd-playground/actions/runs/10579082503

@mole99 looks like this revision is equivalent to the previous one, no changes in the GDS/LEF. Is that intentional?

I've tidied up the schematic a bit and made a new revision to be on the safe side. But you're right, it wasn't necessary ^^


Feature/fix msr paraphrase

Resolve #88

Codecov Report

Merging #89 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #89   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          15     15
  Lines         560    560
=====================================
  Hits          560    560

Impacted Files
Coverage Δ

lineflow/datasets/msr_paraphrase.py
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Kubernetes fails to pull images from Nixery

When pulling images from inside a Kubernetes cluster, the following error occurs:
unable to convert a nil pointer to a runtime API image: ImageInspectError

This error comes from here and it occurs after the Kubernetes node has retrieved the image from Nixery.
My suspicion is that Kubernetes expects some part of the config structure to be present that Nixery does not add, but Docker does.

Alright, quick update on this.
The error message stems (via some jumps in the code) from a check on whether the image's configuration is nil. Nixery does not attach image configurations (and Docker does not require them to run images), but Kubernetes requires that a configuration is present because it attempts to extract the username from the image config.
This is a bit peculiar, because it does have fallback behaviour if the image does not specify a user (but has other configuration). Might file a Kubernetes issue about that because I don't think the image specification actually requires a config object to be present (will double-check).
Anyways, the issue is caused by the deserialisation of this struct from a Docker API response on the GET /images/:name/json endpoint, which ends up with .Config == nil for Nixery images.
To resolve this I will investigate the minimum viable config an image needs that will cause Docker to fill this field with something that can be deserialised.

Fixed in #9


Favor enums and the builder pattern in generated Rust code

I've been using DynamoDB in a Rust project. Overall, rusoto_dynamodb is quite nice to use, however, there are definitely some places where the API could be made more idiomatic.
The Builder Pattern
Consider, for example, this GetItemInput:
let get_item = GetItemInput {
    table_name: "ProductCatalog".to_string(),
    key: {
        let mut k = std::collections::HashMap::new();
        k.insert(
            "Id".to_string(),
            AttributeValue {
                n: Some(1),
                ..Default::default()
            }
        );
        k
    },
    consistent_read: Some(true),
    projection_expression: Some("Description, Price, Related Items".to_string()),
    return_consumed_capacity: Some("TOTAL".to_string()),
    ..Default::default()
};

versus:
let get_item = {
    let key = [(
        "Id".to_string(),
        AttributeValue {
            n: Some(1),
            ..Default::default()
        }
    )];
    GetItemInputBuilder::new("ProductCatalog", key.iter().cloned().collect())
        .consistent_read(true)
        .projection_expression("Description, Price, Related Items")
        .return_consumed_capacity("TOTAL")
        .build()
};

A possible implementation of GetItemInputBuilder, as food for thought:
pub struct GetItemInputBuilder {
    inner: GetItemInput,
}

impl GetItemInputBuilder {
    pub fn new<S: Into<String>>(table: S, key: HashMap<String, AttributeValue>) -> Self {
        Self {
            inner: GetItemInput {
                table_name: table.into(),
                key,
            },
        }
    }

    pub fn projection_expression<S: Into<String>>(self, expr: S) -> Self {
        self.inner.projection_expression = Some(expr.into());
        self
    }

    // so on and so forth for all of the other fields...

    pub fn build(self) -> GetItemInput {
        self.inner
    }
}

AttributeValue as an enum?
Implementing AttributeValue as an enum would better explain the nature of an AttributeValue, prevent invalid states (an AttributeValue cannot be both a number and a string simultaneously), and makes certain usages of the API much more concise, for example, consider the code from before:
let key = [("Id".to_string(), AttributeValue::n(1))];
let get_item = GetItemInputBuilder::new("ProductCatalog", key.iter().cloned().collect())
    .consistent_read(true)
    .projection_expression("Description, Price, Related Items")
    .return_consumed_capacity("TOTAL")
    .build()

Hidden costs of making AttributeValue an enum?
Once one has retrieved an item, one will very often want to extract a value from a field of that item, assuming that that field has a certain type of attribute value:
// where item is a HashMap<String, AttributeValue> like one might receive
// from a Query, GetItem, GetBatchItem, etc.
let secondary_key = item.get("sk")?.s.as_ref()?;

This is reasonably concise, but with an enum, this behavior is lost.
We can, however, provide methods named after the variants of the enum. This is a fairly common practice, even enums with far fewer variants than AttributeValue, such as std::result::Result, provide similar methods. Programming languages implemented in Rust often have similarly large "Value" enums to represent all of the different datatypes supported by the language, and they often implement this pattern as well.
impl AttributeValue {
    fn s(&self) -> Option<&String> {
        match self {
            AttributeValue::s(s) => Some(s),
            _ => None,
        }
    }
    fn as_s(self) -> Option<String> {
        match self {
            AttributeValue::s(s) => Some(s),
            _ => None,
        }
    }
    // ... so on and so forth for all other variants
}

This allows one to do:
let secondary_item = item.get("sk")?.s()?;

which is even more concise than the above, because one can retrieve a reference without having to use Option::as_ref, and if they want ownership, they can simply use .as_s().
Canonicalizing Item
Furthermore, I think we should provide
pub type Item = std::collections::HashMap<String, AttributeValue>;

This will shorten many struct definitions and function signatures within the crate, better explain our intent, and will also allow:
let empty_item = Item::new();

Overview and moving forward
These changes do not introduce or abstract away any complexity for API consumers; they simply use more idiomatic Rust to convey the same concepts in more concise ways, with less ambiguity.
Builders, like GetItemInputBuilder etc. could be added without any breaking changes, as more API surface area would be exposed but the existing API would not be changed.
Changing AttributeValue to be an enum would be a huge breaking change, requiring modifications to the API everywhere inside of this crate and downstream of it.
Exposing a typedef for Item, similar to adding Builders, would not break downstream code, and would simply make writing new code downstream of rusoto_dynamodb a great deal easier to do. However, favoring the typedef over the long-form type in Rusoto's implementation may require widespread changes.

👋 In the past some helpers were added but suffered from maintenance deterioration because they weren't core to the library. A complementary crate might cleaner approach
I ended out doing that specifically with https://docs.rs/dynomite/0.7.0/dynomite/. I ended out doing something like your AttributeValue type with a type called Attribute which has by-directional conversions built in.
I've been thinking for some time about adding support for expression builders for building up queries similar to other sdks https://aws.amazon.com/blogs/developer/introducing-amazon-dynamodb-expression-builder-in-the-aws-sdk-for-go/

I said this on Discord, but this is a great writeup! Thanks for doing this. I'm strongly in favor of modeling AttributeValue as a #[non_exhaustive] enum. I think this also introduces an opportunity to move away from String and use &'a str more often—Rusoto might not even need to create a String internally. While the current allocation of a String will likely be negligible compared the the IO-bound work that Rusoto is performing, it would be more ergonomic to construct requests.

@softprops I've kinda been a bit enamored by the query builder in https://github.com/mongodb/mongo-rust-driver, especially FindOptions::builder().sort(doc! { "title": 1 }).build() (which, incidentally, is pretty similar to Go's expression builder!). I think there's also an interesting design space for macros as well, but I'm less certain of that. This library, which was featured in yesterday's Last Week in AWS, is pretty neat: https://github.com/tuplo/dynoexpr/.

@cedric-h I like the builder pattern approach. Would it be additive? I can't imagine it would necessitate a change to filling in the struct fields manually and filling in the rest with ..Default::default().
My main concern is going to be how much more code this will generate and impacting build times for Rusoto's consumers (as well as maybe stretching past the limits of what we can test in CI again).

The more I think about it, I think for 1.0 the builder pattern is our only option for having API stability in the face of continued model changes from AWS, and after a few releases of the builder pattern we may want to formally deprecate instantiating structs directly.

Implementing the builder pattern will generate a lot of code, but I don't expect a significant increase in compile times. From my understanding, what leads to long compile times is recursive macros and using generics extensively, neither of which are required in order to implement the builder pattern.
It's definitely additive, the builder pattern would need to be backed by the existing structs anyway.
Stretching past the limits of CI is quite possibly a concern, I'm not sure how to address that.

The more I think about it, I think for 1.0 the builder pattern is our only option for having API stability in the face of continued model changes from AWS, and after a few releases of the builder pattern we may want to formally deprecate instantiating structs directly.

I generally like APIs that make use of the the builder pattern, but I feel obligated to note that a #[non_exhaustive] annotation on structs also provides a similar degree of stability to the underlying model changes, assuming that the model changes are purely additive.


[iOS]fix: the sticky header in waterfall stays at the bottom when scroll down

fix https://github.com/apache/incubator-weex/issues/3104

Brief Description of the PR
Checklist

Demo:
Documentation:


Unbound: stateDir causing problems

Issue description
I wanted to setup unbound on a server. I did have this configuration:
    services.unbound = {
        enable = true;
        stateDir = "/data/unbound";
        settings = {
            server = {
                verbosity = 0;
                interface = [ "<IP_ADDRESS>" ];
                port = 5335;
                do-ip4 = "yes";
                do-udp = "yes";
                do-tcp = "yes";
                do-ip6 = "no";
                prefer-ip6 = "no";
                harden-glue = "yes";
                harden-dnssec-stripped = "yes";
                use-caps-for-id = "no";
                edns-buffer-size = 1232;
                prefetch = "yes";
                num-threads = 1;
                so-rcvbuf = "1m";
                private-address = [ "<IP_ADDRESS>/16" "<IP_ADDRESS>/16" "<IP_ADDRESS>/12" "<IP_ADDRESS>/8" "fd00::/8" "fe80::/10" ];
            };
        };
    };

I then manually created the root.key file using unbound-anchor in the /data/unbound folder as it did not automagically create one. The /data/unbound folder was set to 0777 permissions and the key to 0666.
I checked then the systemd status:

[root@vpn:~]# systemctl status unbound
● unbound.service - Unbound recursive Domain Name Server
     Loaded: loaded (/etc/systemd/system/unbound.service; enabled; preset: enabled)
     Active: active (running) since Wed 2023-02-15 14:07:40 CET; 3h 24min ago
    Process: 20075 ExecStartPre=/nix/store/mz9swfjidh97sw5bsjcq495pqzfnlrfc-unit-script-unbound-pre-start/bin/unbound-pre-start (code=exited, status=0/SUCCESS)
   Main PID: 20079 (unbound)
         IP: 2.0K in, 132B out
         IO: 0B read, 0B written
      Tasks: 1 (limit: 38409)
     Memory: 7.9M
        CPU: 100ms
     CGroup: /system.slice/unbound.service
             └─20079 /nix/store/z1q09a0h0i6q6yj0q5vsgwrscqci7rql-unbound-1.17.1/bin/unbound -p -d -c /etc/unbound/unbound.conf

Feb 15 14:07:40 vpn systemd[1]: Starting Unbound recursive Domain Name Server...
Feb 15 14:07:40 vpn unbound-pre-start[20078]: [1676466460] libunbound[20078:0] fatal error: could not open autotrust file for writing, /data/unbound/root.key.20078-0-55c7a4141070: Read-only file system
Feb 15 14:07:40 vpn unbound-pre-start[20075]: Root anchor updated!
Feb 15 14:07:40 vpn unbound[20079]: [1676466460] unbound[20079:0] warning: so-rcvbuf 1048576 was not granted. Got 425984. To fix: start with root permissions(linux) or sysctl bigger net.core.rmem_max(linux) or kern.ipc.maxsockbuf(bsd) v>Feb 15 14:07:40 vpn unbound[20079]: [20079:0] info: start of service (unbound 1.17.1).
Feb 15 14:07:40 vpn systemd[1]: Started Unbound recursive Domain Name Server

All looked fine. Port 5335 also opened on the firewall. Basically running PiHole container there that should call unbound for recursive resolution.
Steps to reproduce
As systemd showed unbound running, I tried to do a query but it errored out:
[root@vpn:~]# dig pi-hole.net @<IP_ADDRESS> -p 5335
;; communications error to <IP_ADDRESS>#5335: timed out
;; communications error to <IP_ADDRESS>#5335: connection refused
;; communications error to <IP_ADDRESS>#5335: connection refused

; <<>> DiG 9.18.11 <<>> pi-hole.net @<IP_ADDRESS> -p 5335
;; global options: +cmd
;; no servers could be reached

Interestingly I run unbound on another server. On the other server I did not set the stateDir as it does not wipe everything that's not explicitely saved (see https://grahamc.com/blog/erase-your-darlings ). I thought I would need the stateDir on this setup, as everything gets wiped on reboot that is not explicitely set to save.
After removing the stateDir option from the configuration, unbound works as expected. So there are two problem with the stateDir option:

the root.key does not get automagically created
lookups don't work

Technical details

system: "x86_64-linux"
host os: Linux 5.15.92, NixOS, 23.05 (Stoat), 23.05pre452769.aa5d1ca2f21
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.13.2
channels(root): "nixos"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

https://github.com/NixOS/nixpkgs/pull/216504


Verify that client metadata document has not been mutated

FerretDB version
v1.5.0-1-gcbd9e06a
Backend
PostgreSQL
Environment

OS: Ubuntu 22.10 x86_64
Deployment: v1.5.0-1
Deployment details: 23.0.3

What did you do?
See test script at #3068.
We should verify that a isMaster or hello request fails if it contains client metadata, and it is not first:
> db.runCommand({"hello": 1, "client": {"application": "foobar"}});
{
        "ok" : 0,
        "errmsg" : "The client metadata document may only be sent in the first hello",
        "code" : 186,
        "codeName" : "ClientMetadataCannotBeMutated"
}
>

What did you expect to see?
See above.
What did you see instead?
> db.runCommand({"hello": 1, "client": {"application": "foobar"}});
{
        "isWritablePrimary" : true,
        "maxBsonObjectSize" : 16777216,
        "maxMessageSizeBytes" : 48000000,
        "maxWriteBatchSize" : 100000,
        "localTime" : ISODate("2023-07-05T17:12:33.036Z"),
        "connectionId" : 42,
        "minWireVersion" : 0,
        "maxWireVersion" : 17,
        "readOnly" : false,
        "ok" : 1
}
>

@b1ron is client metadata documented somewhere?

@AlekSi indeed, it's a URI option.

@AlekSi
Sure, I can!


Flask reloader problems in development mode using Docker

Expected Behavior
In development mode, flask should detect changes in my files and reload the debugger successfully.
Actual Behavior
It outputs to terminal: "Detected change in /flask/flaskr/api.py, reloading" then never reloads.
Environment

Python version: 3.6.2
Flask version: 1.0.2

The reloader is part of Werkzeug. Whether it runs in Docker shouldn't affect its ability to reload. How do you know it's not reloading? You'll need to provide a Minimal, Complete, and Verifiable example demonstrating that's it's an issue with Werkzeug for us to do anything.

@angadkalra I have the exact same issue as you described it. Do you remember how you fixed it?

I fixed my problem, my setup has Flask-SocketIO in it. If you have the same issue and you are running Docker, then probably you are running the app using Flask command. Instead use
python3 run.py and it will work.
This thread helped to figure it out : https://github.com/miguelgrinberg/Flask-SocketIO/issues/817


chore(deps-dev): update pre-commit minimal version to v3, and update pre-commit tools

Thanks to my late review, there are new updates for hooks. Can you please update again? :sweat_smile:

@behnazh done, please approve.


cmd/compile: unaligned load constant offsets on ppc64

package main

type T struct {
	x [4]byte
	y [8]byte
}

func f(a T, _ byte, b T) bool {
	return a.y == b.y
}

% GOOS=linux GOARCH=ppc64le ~/go1.16/bin/go tool compile -S ~/gowork/tmp1.go
compile: invalid offset for DS form load/store 00004 (/Users/khr/gowork/tmp1.go:9)	MOVD	"".b+17(R1), R4

This has been failing since at least 1.13.
My reading of the PPC64.rules is that 2 byte and 4 byte operations can be at any offset, but 8 byte operations need to be at a multiple of 4. (Search for %4 == 0 in those rules). To be precise, the operations can happen at any address, but we can't encode constant offsets that aren't a multiple of 4. Do I have that correct?
Split off from #42385
@laboger

@randall77  Yes, that is correct. The error is when encoding the instruction word.
After looking at this a bit I have a suspicion that the rules to combine byte loads and stores are causing the problem here.  For variables on the stack, the entire offset is not being considered.

Maybe the assembler could use REGTMP to add in odd offsets, if needed.
MOVD 19(R1), R2

to
ADD $3, R1, R31
MOVD 16(R31), R2

There are several options: 2 MOVWs, Create the full address 19+R1 in a base register, load the offset into an index register and use an indexed load or store. I've been avoiding this to keep the one to one mapping of Go -> power asm. But perhaps generating 2 instructions is better than failing in this way.
I'm thinking the indexed load or store would be best and we could do that in the rules, although would need a way to get the current stack offset at that point (which is found using AddAux in ppc64/ssa.go).

Unfortunately, we don't know the offset of local variables at lowering rewrite time. But we do know the alignment, so maybe we load-combine only if the type of the local variable is at least 4-byte aligned?
I think I'd rather go the assembly modification route. Weird offsets will be rare, so we won't be adding assembly very often.
And it will let us remove the i%4==0 tests from the rewrite rules, which would more than pay for the extra instruction in many cases.

I think I'd rather go the assembly modification route.

I'd go with that, too. This happened earlier on ARM64, caused quite a number of bugs, and we had to introduce several special cases around it. Eventually I changed the assembler and it's all done.

Yep just realized that.
I remember that those combining rules are mostly used with byte slices so if we add alignment checks most of those won't be lowered. But they could be changed to generate the full address in the base register and then have a 0 offset. That would also allow the i%4 check in those rules to be removed, allowing more cases to be matched.
I agree that we should fix this in the assembler though and get rid of those checks for alignment of 4 in the rules. And then the assembler won't fail if we hit this case. But I think @pmur has a change for asm9.go that we should wait on before changing this. I see there are multiple places to fix.

I think I can fix this in ppc64/ssa.go when processing the MOVD loads and stores. I'm testing out a change now.

I think this is done?

I think so. Thanks.


Missing SystemConsoleTheme and some AnsiConsoleTheme

Currently there is TemplateTheme available in ExpressionTemplate which only includes ANSI templates. I'd like to use the same themes (SystemConsoleTheme and AnsiConsoleTheme) from the official serilog-sinks-console repository. Currently using my application on some older system (Server 2012 R2) and ANSI is afaik not supported, at least I'm only receiving some weird characters once I use a theme. Using SystemConsoleTheme.Literate works fine but it's not available in combination with serilog-expressions.

Thanks for dropping us a line; this was a deliberate choice in Serilog.Expressions - dropping SystemConsoleTheme saved a little complexity here. Conditionally enabling theming based on the OS version might be your best bet, unfortunately.


Improve precision when typechecking in

Category
Cedar validation features
Describe the feature you'd like to request
The validator sometimes gives imprecise types to expressions using in.

principal in [] will type as Bool when principal is Unspecified, although we could give the more precise type of False.
Expressions like action in action or principal in principal will type as Bool, even though we could give them type True.
If the action hierarchy says that Action::"read" is a descendant of Action::"read_or_write", then Action::"read" in Action::"read_or_write" will type as Bool, even though we could type it as True.

Describe the solution you'd like
n/a
Describe alternatives you've considered
n/a
Additional context
No response
Is this something that you'd be interested in working on?

[ ] 👋 I may be able to implement this feature request
[ ] ⚠ This feature might incur a breaking change

From #310, a substantial improvement can be had by implementing singleton action types. This would make giving precise types to in expression involving actions trivial, even simplifying some of the existing code. This will also support precise types for in expression in policy bodies that aren't directly applied to action literals.

Implementing this in a backwards compatible manner requires #539

Related to #638


Document the --suppress-payload-superclass-redefinition-for flag

Motivation
This flag was defined in #7587 and can be used to suppress error 5012, which occurs when changing a class's superclass. It is meant to be used primarily when auto-generating files that will change the superclass of a class defined in Sorbet's RBI payloads.
Test plan
I tested this by running the docs site on my machine.

@jez Good point -- I moved to the bottom and made it clear that it's only for purposefully changing the superclass of a payload class. Let me know if that's clearer.

Hey sorry about this, I didn't notice at first because I didn't expand the context in the diff. I thought there would be more explanation for this error than there actually was.
I prefer to give people a way to constructively fix errors before telling them about how to silence them, and that didn't exist for this error. I've opened #7812 to provide some more context, and included the changes you made here. Feel free to leave suggestions on that other change and then I'll probably proceed with that version instead of this one.

Closing in favor of #7812.


gsap with barba.js

Sir, I m a new developer and I m really excited about your plugin after looking it on almost all the awwward winning websites but it is not working for me with gsap I m begging you to please give me a code for you circle demo that shows any tween being used with Barba, yes I have read the doc 18 times but I m a dambo and was not able to make it.Please Help.

that is what I was doing but I was not able to understand


cmd/go: 'looping trying to add package' is not a helpful error message

What version of Go are you using (go version)?

go version go1.12 darwin/amd64

Does this issue reproduce with the latest release?
yes
What did you do?
Use a program that references a package that no longer exists at that location.  I was importing a package that imports github.com/docker/docker/container, which imports github.com/opencontainers/runc/libcontainer/label, which does not exist here anymore.
What did you expect to see?
A helpful error telling me that the package specified by a dependency does not exist.
What did you see instead?
A confusing error from here that simply says looping trying to add package.
This is confusing for the user.  We should indicate better that the package does not exist or was not found at the specified location.  People are hitting this, getting confused, and wasting time, which makes them dislike go modules (and go itself by relationship).
Related issue: #30394

Yep, not a helpful error message.
The fix for #30394 will be to improve the error message though, so I'll close this one as a dup.


[BUG]  to write command not working

Reproduction steps
Hello ,
im trying to write value to cluster but the cluster is not supporting i dono why im getting this output ,
I tried other clusters
https://raw.githubusercontent.com/aravindone/aravindone/main/write error
Bug prevalence
always
GitHub hash of the SDK that was being used
https://github.com/project-chip/connectedhomeip/commit/bfa05804ac3c224c9e70921a857ffcac32ccc7f4
Platform
python
Platform Version(s)
No response
Anything else?
No response

@bzbarsky-apple  @dhrishi please comment

@aravindone What are you trying to do? The attributes of the descriptor cluster are not writable

im trying to input some dummy values for an attribute for that im trying some approaches , ESP 32 has all-clusters-app ..
I given these logs for example , i tried other clusters but it says unsupported attributes .
What will be the issue . how we can solve ?

@aravindone Which attributes are you trying? If you try using the write command for a cluster, you will know which attributes are writable. You can then pass their ids to the write-by-id command along with appropriate values.

What @dhrishi said.  Not all attribute are remote-writable, per spec.  Trying to write the non-writable ones will result in an UNSUPPORTED_WRITE error, as observed.


Add sealer alpha mount command

Describe what this PR does / why we need it
add sealer alpha mount command and support check image file
we can go to the mount directory to check the mirrored files, which can ensure that the kubefile image is built correctly.
#1742
Does this pull request fix one issue?

Describe how you did it
Describe how to verify it
Special notes for reviews

Codecov Report
Base: 21.65% // Head: 21.65% // No change to project coverage :thumbsup:

Coverage data is based on head (3a030b8) compared to base (45802b9).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1848   +/-   ##
=======================================
  Coverage   21.65%   21.65%
=======================================
  Files          72       72
  Lines        6586     6586
=======================================
  Hits         1426     1426
  Misses       4974     4974
  Partials      186      186

Impacted Files
Coverage Δ

cmd/sealer/cmd/utils/cluster.go
63.54% <ø> (ø)

cmd/sealer/cmd/utils/hosts.go
84.21% <ø> (ø)

cmd/sealer/cmd/utils/validate.go
38.88% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

sealer alpha mount registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.22.15
sealer alpha umount registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.22.15
sealer alpha umount --all

@Stevent-fei Cloud please add some demo case as the description of this PR?


Eureka thinks non-jvm process is up when sidecar is up and non-jvm process is down

The sidecar properties contains:
health-uri: http://localhost:8000/health.json.
I would like to know what is the mechanism that I need to implement such that the sidecar reports to Eureka Server that the main process is down based on health-uri.
Thanks

It follows the spring-boot health indicators format.
In short {"status":"UP"} is up and {"status":"DOWN"} is down.
Available statuses: DOWN, OUT_OF_SERVICE, UNKNOWN, UP.
Health indicators can contain much more information as well, but those should get you started.

Ok, so we have to write a custom Health Indicator in the sidecar that checks whether the host service is up/down and use this in the Eureka InstanceStatus

@aivans no, the health-uri should point to a url in the non-jvm app that provides the json I mentioned.  The sidecar then takes care of that.

I am a bit confused.
So here is what we have:

.Net service that implements the health endpoint (json you mentioned)
Spring Cloud sidecar, which registers the .Net service in Eureka, takes care of heartbeats, etc

Problem:

.Net service is stopped, but after a while, it still appears as UP in Eureka Discovery Server.

This is why we considered that the Sidecar would also use the health-uri to update the heartbeat info it sends to Eureka server.
Am I missing something?

no, thanks for the additional information.  Looks like a legitimate issue, that if the non-jvm service is down and the sidecar is up, eureka thinks the non-jvm service is up.  Does that sound like a good description of what is going on?

yes

maybe as an additional clarification for me: does Eureka Server ever use the healthCheckUrl available in the instance information? or is it just for making that url available for external monitoring tools?

@aivans I'm not positive, will need to investigate.

Ok, Thank you. I couldn't find any use, but I may be wrong.


Please also register this on packagist.org to use it via Composer

#313

But you need to register at packagist.org and submit the application

Hey, I fixed the path in this MR
https://github.com/monperrus/crawler-user-agents/pull/315

done, see https://packagist.org/packages/monperrus/crawler-user-agents


link footer faq with modal

Related Issue

on clicking faq in footer model doesn't open

Fixes: #76
Describe the changes you've made
-
+

@nayabatir1 r u participating in hacktoberfest??

@Amit366 yes

@nayabatir1 then u can contribute from 1st october as ur contributions will be counted towards the program. So don't worry ur this Pr will be merged on 1st.
And by the way u can go through the website and accordingly u can open new issues.

@Amit366 👌

@nayabatir1 I think u have solved two issues in this same PR? IF yes then u shouldn't do that. For each issues u need to make separate PRs. This one willl accept but next time u see to it that u make separate PRs.

@Amit366 my bad

@all-contributors please add @nayabatir1  for code


make edit warning configurable

Provide a configuration setting to show (or not to show) the warning that the user sees when starting an editing session, preferably accessible via a checkbox on the UI (e.g., "Don't show this message again.")

no longer applicable


Fix interface decoding when string has escape sequence

Decoding of a string using the interface API fails when a string has an escape
sequence. Go's native JSON decoding function is called in such a case, and it
expects to get the original string. Provide the raw string to prevent the
failures that are currently caused.
Adding a test for this specific scenario.

Will resubmit

@anadav - Was this PR closed for any reason other than the need for unit tests? It seems like a pretty important fix.


Use of location.protocol stops inclusion in non-browser commonjs

I am including the file in an appcelerator project but if fails with:
Message: Uncaught TypeError: Cannot read property 'protocol' of undefined
[ERROR] TiExceptionHandler: (main) [0,190] - Source: = b.Float64Array || b.Float32Array, Vb = b.console, Wb = !b.location.protocol.
I tried defining var document.location.protocol but it didn't seem to help

That comes from src/origin.js:3. I'm not familiar with appcelerator runtime in order to implement a way to detect it.
Could you please contribute a bit?

Thanks for prompt response.
The Appc runtime doesn't have a DOM. I.e. not browser based. I think is mainly a "not found" problem so could this pattern help?
!(global || {}).(location || {}).(protocol || {}).search( /https:|file:|chrome:|chrome-extension:/ );

Nope, this pattern will cause "asmCrypto seems to be load from an insecure origin" spam.
Appc loads scripts from local filesystem and hence it is secure (no MiTM attack may be performed) and we need a way to detect Appc and set _secure_origin variable to true.

Okay, I see that. There is a Titanium global object that is always defined. Would checking for it's presence be enough?

Does it have any meaningful attribues? Maybe global.navigator?

Yes, but none that are constant between apps.
http://docs.appcelerator.com/platform/latest/#!/api/Titanium.Platform-property-runtime
Wonder if could just check for the Titanium object

Titanium.version is readonly and look suitable.
Could you please verify the patch?
diff --git a/src/origin.js b/src/origin.js
index 798570d..4003ff3 100644
--- a/src/origin.js
+++ b/src/origin.js
@@ -1,6 +1,13 @@
 var _global_console = global.console;

-var _secure_origin = !global.location.protocol.search( /https:|file:|chrome:|chrome-extension:/ );
+var _secure_origin = false;
+
+if ( global.Titanium !== undefined && global.Titanium.version ) { // inside Appcelerator runtime?
+    _secure_origin = true;
+}
+else {
+    _secure_origin = !global.location.protocol.search( /https:|file:|chrome:|chrome-extension:/ );
+}

 if ( !_secure_origin && _global_console !== undefined ) {
     _global_console.warn("asmCrypto seems to be load from an insecure origin; this may cause to MitM-attack vulnerability. Consider using secure transport protocol.");

The patch does fix that error but now in random/random.js reference is made to location.href which throws an error. I can't obviously see why it is used in the function generate on line 65

Seems Appc lacks of crypto.getRandomValues API. So there is no high-quality source of random bits for generating keys.
Such a situation causes asmCrypto to get random bits from its own PRNG seeded with low-quality material combined from Math.rangom(), Date.now(), performance.now(), location.href and so on...
Fortunately you may ask your user to "shake" his device in order to get some random bits, estimate the amount of Shannon Entropy of collected "shake"-samples, and then seed the PRNG with that data.
Unfortunately you have to implement entropy collector from the ground as my another project entropy-collector.js lacks support of mobile devices.
Also you have to guarantee that there will be no keys generated before PRNG seeding with reasonable amount of entropy is complete to turn off "opportunistic weak seeding" at src/random/random.js:149. The last is absolutely needed on mobile devices as "weak seeding" is very-very CPU-hungry and may "freeze" your device for a long period and waste its battery charge.


scrollback branch tries to allocate 85.33TiB of memory

Which operating system does the issue occur on? X11 Linux
To reproduce:
$ git checkout ec49105
$ cargo build
$ gdb target/debug/alacritty
(gdb) run
// Wait a few seconds
^C
(gdb) bt
#0  0x00005555558b92d4 in core::slice::from_raw_parts_mut::h3213d7e97fae6229 (p=0x7fffffff6c60, len=93824996017929) at /checkout/src/libcore/slice/mod.rs:2388
#1  0x00005555559af9e6 in _$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$::deref_mut::hab5ab1f1df6e056a (self=0x7fffede84628) at /checkout/src/liballoc/vec.rs:1704
#2  0x00005555559acc60 in _$LT$alloc..vec..Vec$LT$T$GT$$GT$::push::hb33c76d0afa591e8 (self=0x7fffede84628, value=...) at /checkout/src/liballoc/vec.rs:974
#3  0x00005555558f192d in _$LT$alacritty..grid..row..Row$LT$T$GT$$GT$::grow::h953deb70ed2a2fb2 (self=0x7fffede84628, cols=..., template=0x7fffede530c0) at src/grid/row.rs:34
#4  0x00005555558fb544 in _$LT$alacritty..grid..Grid$LT$T$GT$$GT$::grow_cols::h08820c6e0414a5ba (self=0x7fffede53018, cols=...) at src/grid/mod.rs:228
#5  0x00005555558fb2d2 in _$LT$alacritty..grid..Grid$LT$T$GT$$GT$::resize::h33cc5788329c0afa (self=0x7fffede53018, lines=..., cols=...) at src/grid/mod.rs:188
#6  0x00005555558addc9 in alacritty::term::Term::resize::he039deeb904df099 (self=0x7fffede53018, size=0x7fffffff8280) at src/term/mod.rs:1110
#7  0x00005555558c0916 in alacritty::display::Display::handle_resize::h5c033a5a7104569f (self=0x7fffffff7c00, terminal=0x7fffffffc738, config=0x7fffffffd4e8, items=...) at src/display.rs:303
#8  0x000055555571dfdb in alacritty::run::h24e2fbd7586f03fc (config=..., options=0x7fffffffd1e8) at src/main.rs:200
#9  0x000055555571cbce in alacritty::main::h20ddd16791cd8a95 () at src/main.rs:62
#10 0x000055555571b5d2 in std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::ha242352c317848be () at /checkout/src/libstd/rt.rs:74
#11 0x0000555555f58278 in std::rt::lang_start_internal::_$u7b$$u7b$closure$u7d$$u7d$::h6ddc513d95d559ac () at /checkout/src/libstd/rt.rs:59
#12 std::panicking::try::do_call::h7d33aea9be52481f () at /checkout/src/libstd/panicking.rs:480
#13 0x0000555555f7bdcf in __rust_maybe_catch_panic () at /checkout/src/libpanic_unwind/lib.rs:101
#14 0x0000555555f6023a in std::panicking::try::h33108b08b6395be5 () at /checkout/src/libstd/panicking.rs:459
#15 std::panic::catch_unwind::hb0149e8b5a4339ed () at /checkout/src/libstd/panic.rs:365
#16 std::rt::lang_start_internal::h16c0c37ef62d8e5a () at /checkout/src/libstd/rt.rs:58
#17 0x000055555571b5b2 in std::rt::lang_start::hf679833d3c282db0 (main=0x55555571cb50 <alacritty::main::h20ddd16791cd8a95>, argc=1, argv=0x7fffffffdb78) at /checkout/src/libstd/rt.rs:74
#18 0x000055555571e36e in main ()

Can not reproduce, did you set your scroll_history to something massive?

In alacritty.yml? I don't have a key with that name; does it default to something huge?

Not really, it should default to 10000, but you can try to set it to 1 to see if it fixes this.

I've also seen that resize is inside your backtrace, maybe that has something to do with it. Like your window manager might temporarily tell alacritty to get massive?

You can try running RUST_LOG=info cargo run and check if there's something odd in the output.

The log output is:
 INFO 2018-03-09T19:28:54Z: alacritty: Welcome to Alacritty.
 INFO 2018-03-09T19:28:54Z: alacritty: Configuration loaded from /home/ringo025/.config/alacritty/alacritty.yml
 INFO 2018-03-09T19:28:54Z: alacritty::display: device_pixel_ratio: 1
 INFO 2018-03-09T19:28:54Z: alacritty::renderer: width: 1916, height: 497
 INFO 2018-03-09T19:28:54Z: alacritty::display: Initializing glyph cache
 INFO 2018-03-09T19:28:54Z: alacritty::display: Finished initializing glyph cache in 0.041887507
 INFO 2018-03-09T19:28:54Z: alacritty::renderer: width: 4, height: 460
 INFO 2018-03-09T19:28:54Z: alacritty::display: Cell Size:<PHONE_NUMBER> x 19)
 INFO 2018-03-09T19:28:54Z: alacritty: PTY Dimensions: Line(24) x Column(0)
 INFO 2018-03-09T19:28:54Z: alacritty::renderer: Font size changed: Size(24)

The Cell Size:<PHONE_NUMBER> x 19) is suspect...

You could probably see those cells from space, no surprise it's trying to allocate so much space. This is definitely the issue.

What would it make sense for that to be? I do have Xft.dpi: 96 in my .Xresources, if that'd be a potential cause.

@remexre can you try running in a debug build? It looks like there's a u32 overflow happening, and it should panic in the debug build.

Oh, and Alacritty doesn't read .Xresources.

Those are all from debug builds; there's no panic.

Try adding the following lines here: https://github.com/jwilm/alacritty/blob/e472aa0cb4d8072dd559633a0c84cc50bdb07693/src/display.rs#L240
         let cell_width = (metrics.average_advance + f64::from(font.offset().x)) as u32;
+        println!("Advance: {}", metrics.average_advance);
+        println!("Offset: {}", f64::from(font.offset().x) as u32);
         let cell_height = (metrics.line_height + f64::from(font.offset().y)) as u32;

This should print how cell width is calculated. One of those is probably wrong.

Sorry it took so long to test this, I can only reproduce the bug on my work machine. Looks like it's offset:
Advance: 10
Offset:<PHONE_NUMBER>

@remexre what is the unaltered font.offset().x?

unaltered? You mean without the f64::from() as u32 bits? -12, which I'm just now realizing this machine doesn't need (although my laptop does, for some reason)

https://github.com/rust-lang/rust/issues/10184
This is currently UB in Rust. The best fix for this would probably be restricting font.offset.x to u32.

I actually use negative offset on my laptop and home desktop though -- for some reason, Nerd Fonts require an X offset equal to the negation of the font size. (i.e. font.offset.x = -font.size)
I can open a separate issue for that if that's not already a known-bug with... something involving fullwidth vs. halfwidth? idk

The fullwidth vs halfwidth bug should have been fixed in 59b561b440060e7b0d13160fb69519d127e6c687.
However the general concept of negatively offsetting the font width should still be possible, it should just be restricted to be at least the size of the average advance, so that the cell width is at least 0 or 1.
I'll look into this a bit more, but we might have to make this a runtime check.

I don't think it's working on Arch Linux, then.
Laptop
Alacritty Version: alacritty 0.1.0 (git commit a0b55ca) [release build using rustc 1.24.1 (d3ae9a9e0 2018-02-27)])
Distro: Arch Linux
GPU: Intel Corporation HD Graphics 5500 (rev 09)
Needs Negative Offset: Yes
WM: sway version 0.15.1 (Wayland)
Home Desktop
Alacritty Version: alacritty 0.1.0 (git commit a0b55ca) [release build using rustc 1.24.1 (d3ae9a9e0 2018-02-27)])
Distro: Arch Linux
GPU: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)
Needs Negative Offset: Yes
WM: i3 version 4.14.1 (2017-09-24) © 2009 Michael Stapelberg and contributors (X11)
Work Desktop
Alacritty Version: alacritty 0.1.0
Distro: Ubuntu 16.04.4 LTS (xenial)
GPU: Intel Corporation Device 5912 (rev 04)
Needs Negative Offset: No
WM: i3 version 4.11 (2015-09-30, branch "4.11") © 2009 Michael Stapelberg and contributors (X11)
All copies of alacritty are being built from a0b55ca with Rust 1.24.1, so I'm not sure why the work desktop doesn't say so in alacritty --version (or even cargo run -- --version).

a0b55ca8da2e39f71edeeec66d9e58633f756b16 does not have the PR merged I've mentioned.

Oh. Then idk how git branch --contains works. :P

Since it is possible to reproduce this issue on master, I'm removing the Scrollback label. I've opened a PR to fix this. I don't think on master it allocates a ton of memory though.


How to sort output chunks, font and other files in appropiate directories

Bug Report or Feature Request (mark with an x)
- [ ] bug report -> please search issues before submitting
- [ *] feature request

Versions.
@angular/cli: 1.0.1
node: 7.7.2
os: win32 x64
@angular/animations: 4.1.0
@angular/common: 4.1.0
@angular/compiler: 4.1.0
@angular/core: 4.1.0
@angular/forms: 4.1.0
@angular/http: 4.1.0
@angular/platform-browser: 4.1.0
@angular/platform-browser-dynamic: 4.1.0
@angular/platform-server: 4.1.0
@angular/router: 4.1.0
@angular/cli: 1.0.1
@angular/compiler-cli: 4.1.0
Repro steps.
npm run build:prod:aot
The log given by the failure.
none
Desired functionality.
When doing a "npm run build" all js-chunks, bundles, fonts are thrown into the "dist"-directory.
Using webpack I'd have sorted them into appropiate directories.  js in "js", fonts in "fonts" etc.

              {
                  test: /\.woff(2)?(\?v=.+)?$/,
                  //    use: 'url-loader?limit=10000&mimetype=application/font-woff'
                  use: 'url-loader?limit=10000&mimetype=application/font-woff&name=**assets/fonts/**[name].[ext]'
              },

              {
                  test: /\.(ttf|eot|svg)(\?v=.+)?$/,
                  //use: 'file-loader'
                  loader: 'file-loader?name=**assets/fonts/**[name].[ext]'
              },

        output: {
            path: helpers.root('dist'),
            filename: '**js/**[name].[chunkhash].bundle.js',
            sourceMapFilename: '**js/**[name].[chunkhash].bundle.map',
            chunkFilename: '**js/**[id].[chunkhash].chunk.js'
        },

It'd be great if angular-cli would have an option to configure the output too.

It'd be handy if .angular-cli.json has the option to sort filechunks.
For example the angular-cli.json could look like this:
"scripts": [
"../node_modules/jquery/dist/jquery.js",
"../node_modules/easy-pie-chart/dist/jquery.easypiechart.js",
"../node_modules/jquery-slimscroll/jquery.slimscroll.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js",
"../node_modules/handsontable/dist/handsontable.full.js",
"../node_modules/chroma-js/chroma.js"
],
"outputSorter:"[{ extension: "ttf|eot|svg", outdir:"assets/fonts"},
{ extension: "js|js.map", outdir:"js"}, ]"
--
However, if it's not possible to have such an option, maybe you could add the changes in the hidden webpack-config itself?

I need this feature also.
in production , the path need to support the domain path ,like "http://static.file.com/xxx.js"
thinks.

@benpoe Anything you have in assets folder is copied as it is to assets folder keeping the directory structure.

@sumitarora  I'm not talking about static files. I'm talking about fonts and sass files referenced in node_modules and js compiled from the ts-files. These are all placed in the directory root.

I need this feature too. It would be nice to be able to tell cli build to put inside dist folder

All built *.js files in js folder
All .scss/.CSS files is CSS folder
All font files in fonts folder
Index.html in sub folder for example ./dist/template this becomes useful when serving with Django which follows this kind of structure

Would it be nice to have webpack 'limit' option which was handy to bundle everything less than 10k into CSS in previous versions of Angular CLI? If no, could please somebody be so kind to explain what was wrong with it (I see the comment in #12731 saying that it was by design to stop this bundling)?

This would be a nice feature to able to have some control of how the paths and destinations where the different image files are copied. Or if it’s possible not move anything just change the relative domain paths to images etc in the generated css files. We are trying to upgrade our solution from Angular 6 to 7, but removal of inline svg is making a harder for us to move to Angular 7. The solution was original a asp.net mvc application with a lot of css,images etc. We are not using the generated html file but a asp.net view.

@gaotter you can currently have control over this feature if you customize your build with ngx-build-plus or alternative tools which let you plug into the webpack configuration.
Customizability of the output directory is outside the scope of the project but we will consider improving the output directory layout.
Thanks for pointing this out!


[Bug]:  Rsbuild v0.4.13 build failed on mac m2 and linux

Version
System:
    OS: Windows 10 10.0.22621
    CPU: (24) x64 12th Gen Intel(R) Core(TM) i9-12900K
    Memory: 11.54 GB / 31.77 GB
  Browsers:
    Edge: Spartan (44.22621.1992.0), Chromium (122.0.2365.80)
    Internet Explorer: 11.0.22621.1
  npmPackages:
    @rsbuild/core: ^0.4.11 => 0.4.11
    @rsbuild/plugin-eslint: ^0.4.11 => 0.4.11
    @rsbuild/plugin-node-polyfill: ^0.4.11 => 0.4.11
    @rsbuild/plugin-react: 0.4.11 => 0.4.11
    @rsbuild/plugin-type-check: ^0.4.11 => 0.4.11

---

System:
    OS: macOS 13.4.1
    CPU: (12) arm64 Apple M2 Max
    Memory: 4.08 GB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Browsers:
    Chrome: 119.0.6045.159
    Safari: 16.5.2
  npmPackages:
    @rsbuild/core: ^0.4.11 => 0.4.13
    @rsbuild/plugin-eslint: ^0.4.11 => 0.4.13
    @rsbuild/plugin-node-polyfill: ^0.4.11 => 0.4.13
    @rsbuild/plugin-react: 0.4.11 => 0.4.11
    @rsbuild/plugin-type-check: ^0.4.11 => 0.4.13

Details
The problem does not occur on Windows
During the build of the project, the error Cannot find module '@rspack/binding-linux-x64-gnu' appears
This behavior is observed on Mac M2 and Linux OS
Adding the package "@rspack/binding": "^0.5.6" - fixes the problem
Rsbuild v0.4.13

error   Failed to build.
error   Cannot find module '@rspack/binding-linux-x64-gnu'
Require stack:
-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>- /home/runner/work/rsbuild.config.ts

Reproduce link

Reproduce Steps
run -> rsbuild build on mac m2 and linux

no work for me

no work for me

try installing this - @rspack/binding


ld: -bundle and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together

I am cross-compiling for iOS, as a static library. It works for OpenSSL 1, but I have the following error with OpenSSL 3:
ld: -bundle and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together

I am configuring with the following command:
CFLAGS=-fembed-bitcode ./Configure ios64-xcrun --prefix=<install_path> --release no-shared

Now it seems to me that -bundle is set here:
    'darwin-shared' => {
        module_ldflags        => '-bundle',
        shared_ldflag         => '-dynamiclib -current_version $(SHLIB_VERSION_NUMBER) -compatibility_version $(SHLIB_VERSION_NUMBER)',
        shared_sonameflag     => '-install_name $(libdir)/',
    },

Is there a way for me to not use -bundle, given that I need -fembed-bitcode? And what would be the consequence of that? I don't really understand what -bundle does :see_no_evil:.

It looks like this could be similar to #5513.

Changing "darwin-shared->module_ldflags" from "-bundle" to "-dynamiclib" worked for me, I was then able to build 3.1.1 for iOS.

I think this problem went away starting with XCode 14 which does not require bitcode any longer. We were able to go to openssl 3.0.9 in https://github.com/mavlink/MAVSDK/pull/2069/commits/3ff4ea3b0d1f413cfe6b5d201e91e166d5b36e08.

Yes, closing then :+1:


PusherBroadcaster 404 Error on Production Server

Reverb Version
1.x
Laravel Version
11.0.7
PHP Version
8.2
Description
First, I already have a fully working reverb websocket connection when developing locally - Private-Channels, Authentication, Notifications, SSL - everything works like a charm. My frontend is a seperate angular-application running on a different subdomain.
On my production server the websocket connection is also established as it should be. BUT when firing a notification that should be broadcasted via reverb, the queued job fails with the following error:
Illuminate\Broadcasting\BroadcastException: Pusher error: <!DOCTYPE html>
<html lang="en">
    // some html that says 404 not found
</html>

. in /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php:164
Stack trace:
#0 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php(92): Illuminate\Broadcasting\Broadcasters\PusherBroadcaster->broadcast()
#1 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Broadcasting\BroadcastEvent->handle()
#2 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#3 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure()
#4 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod()
#5 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\Container\BoundMethod::call()
#6 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\Container\Container->call()
#7 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}()
#8 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#9 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then()
#10 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(123): Illuminate\Bus\Dispatcher->dispatchNow()
#11 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{closure}()
#12 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#13 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(122): Illuminate\Pipeline\Pipeline->then()
#14 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(70): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware()
#15 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(102): Illuminate\Queue\CallQueuedHandler->call()
#16 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(439): Illuminate\Queue\Jobs\Job->fire()
#17 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(389): Illuminate\Queue\Worker->process()
#18 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(176): Illuminate\Queue\Worker->runJob()
#19 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(139): Illuminate\Queue\Worker->daemon()
#20 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(122): Illuminate\Queue\Console\WorkCommand->runWorker()
#21 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): Illuminate\Queue\Console\WorkCommand->handle()
#22 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#23 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure()
#24 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(35): Illuminate\Container\BoundMethod::callBoundMethod()
#25 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Container/Container.php(662): Illuminate\Container\BoundMethod::call()
#26 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Console/Command.php(212): Illuminate\Container\Container->call()
#27 /var/www/vhosts/example.com/api.example.com/vendor/symfony/console/Command/Command.php(279): Illuminate\Console\Command->execute()
#28 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Console/Command.php(181): Symfony\Component\Console\Command\Command->run()
#29 /var/www/vhosts/example.com/api.example.com/vendor/symfony/console/Application.php(1049): Illuminate\Console\Command->run()
#30 /var/www/vhosts/example.com/api.example.com/vendor/symfony/console/Application.php(318): Symfony\Component\Console\Application->doRunCommand()
#31 /var/www/vhosts/example.com/api.example.com/vendor/symfony/console/Application.php(169): Symfony\Component\Console\Application->doRun()
#32 /var/www/vhosts/example.com/api.example.com/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(196): Symfony\Component\Console\Application->run()
#33 /var/www/vhosts/example.com/api.example.com/artisan(35): Illuminate\Foundation\Console\Kernel->handle()
#34 {main}

I already thought of a problem in the .env file - but I could not find a solution so far...
REVERB_APP_ID=app_id
REVERB_APP_KEY=app_key
REVERB_APP_SECRET=app_secret
REVERB_HOST=subdomain-of-my-laravel-backend.example.com // also tried with localhost and frontend-subdomain
REVERB_PORT=443 // this is also the default value in the config/reverb.php
REVERB_SCHEME=https

VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"

Steps To Reproduce
sorry for missing out that

Hi @dysTOS, what does your Nginx (or equivalent) configuration look like?

Thanks for your reply @joedixon !
I was able to get this partially solved in the meanwhile.
I have upgraded laravel/framework to 11.0.8 and did some changes to my webserver-configuration and .env variables, but went back to settings i already had before in the end, so unfortunately I am not sure what solved this issue exactly.
Here are my current configurations and relevant settings:
Backend: api.example.com (running in a Plesk Environment with Apache + Nginx as reverse proxy)
Frontend: app.example.com (Angular SPA)
Frontend
import Echo from 'laravel-echo';
import Pusher from 'pusher-js';

(window as any).Pusher = Pusher;
    this._echo = new Echo({
      broadcaster: 'reverb',
      key: 'appkey',
      wsHost: environment.wsHost,
      wsPort: environment.production ? 443 : 8080,
      wssPort: environment.production ? 443 : 8080,
      forceTLS: environment.production,
      enabledTransports: ['ws', 'wss'],
      authorizer: (channel, options) => {
        return {
          authorize: (socketId, callback) => {
            firstValueFrom(
              this.httpClient.post(environment.apiUrl + '/broadcasting/auth', {
                socket_id: socketId,
                channel_name: channel.name,
              })
            )
              .then((response) => {
                callback(false, response);
              })
              .catch((error) => {
                callback(true, error);
              });
          },
        };
      },
    });

this._echo.private('App.Models.User.' + this.userService.getCurrentUserId()).notification((e) => {
          doMyStuff(e);
        });

Laravel .env
APP_NAME=test
APP_ENV=production
APP_KEY=key
APP_DEBUG=true
APP_URL=https://api.example.com

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=production

BROADCAST_DRIVER=pusher
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=database
SESSION_DRIVER=file
SESSION_LIFETIME=120

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

REVERB_APP_ID='id'
REVERB_APP_KEY='key'
REVERB_APP_SECRET='secret'
REVERB_HOST=api.example.com
REVERB_PORT=8080
REVERB_SCHEME=http

#NOT NEEDED AS FRONTEND IS SEPERATE APP
#VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
#VITE_REVERB_HOST=api.example.com
#VITE_REVERB_PORT=80
#VITE_REVERB_SCHEME=http

Laravel routes/channels.php
Broadcast::channel('App.Models.User.{userId}', function ($user, $userId) {
    return $user->id == $userId;
});

Laravel Providers/BroadcastServiceProvider.php
class BroadcastServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        // needed this because I use laravel/sanctum for authentication
        Broadcast::routes(['prefix' => 'api', 'middleware' => ['auth:sanctum']]);

        require base_path('routes/channels.php');
    }
}

PLESK additional Nginx directives
location /app/ {
	proxy_pass http://<IP_ADDRESS>:8080;
	proxy_set_header        Upgrade $http_upgrade;
	proxy_set_header        Connection "upgrade";
	proxy_http_version       1.1;
	proxy_set_header Host              $host;
	proxy_set_header X-Real-IP         $remote_addr;
	proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Proto $scheme;
}

Tried also with additional 'location /apps/', 'location /ws/', 'location /wss/' and same content, but it seems that /app/ is sufficient.
BUT there is still one issue - from 10 sent notifications only an average of 2 to 3 messages are received by my frontend - found no log-entries or failed jobs.

@joedixon please forget my last sentence - EVERY message is sent but it took up to 10 minutes until the last message was received by my frontend application. I will have a look on this and open a new issue if needed. Have a nice day! :-)

I know this issue is closed, but for anyone else running into this problem:
I updated from Laravel 10 -> 11 and encountered this. Issue was in Event.
Laravel 10 had:
class MessageSent implements ShouldBroadcast
Remove the implements ShouldBroadcast
and that did the trick for me at least.