Error migrating from v4 to v5

Good day,
I'm following step by step your guide at:
https://mui.com/guides/migration-v4/
for migrating to v5.
Two things:
a) - stylings I had on input fields, buttons, sliders, they are all now wrong, isnt there a way to avoid this? do I have to redo all the styling of all the widgets?
b)
After completing the migration. I am getting this error when opening a dialog, any tips? thank you
FormControlLabel.js:130 Uncaught TypeError: Cannot read properties of undefined (reading 'type')
at FormControlLabel (FormControlLabel.js:130)
at renderWithHooks (react-dom.development.js:14985)
at updateForwardRef (react-dom.development.js:17044)
at beginWork (react-dom.development.js:19098)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994)
at invokeGuardedCallback (react-dom.development.js:4056)
at beginWork$1 (react-dom.development.js:23964)
at performUnitOfWork (react-dom.development.js:22776)
at workLoopSync (react-dom.development.js:22707)
at renderRootSync (react-dom.development.js:22670)
at performSyncWorkOnRoot (react-dom.development.js:22293)
at react-dom.development.js:11327
at unstable_runWithPriority (scheduler.development.js:468)
at runWithPriority$1 (react-dom.development.js:11276)
at flushSyncCallbackQueueImpl (react-dom.development.js:11322)
at flushSyncCallbackQueue (react-dom.development.js:11309)
at discreteUpdates$1 (react-dom.development.js:22420)
at discreteUpdates (react-dom.development.js:3756)
at dispatchDiscreteEvent (react-dom.development.js:5889)
this is what I have in that part of the code:
             <FormGroup>                <FormControlLabel control={<Switch color='primary' id={String(element.id)} defaultChecked={element.active} onChange={(e,data)=>changeAct(e,data,type)}/>}/>                </FormGroup>
So after some tests, it seems that just adding
<FormControlLabel /> makes it break,
is FormControlLabel deprecated or something? just adding it breaks the dialog
I found the reason, label="Label" has to be added at the end of FormControlLabel, this was not necessary in 4.12.2
So now all is executing, but all the styles are messed up. I wish you had provided a way to not to have to redo all the styling of the entire App, really, this is a massive and huge issue
Plus: I keep getting this error with v5:
Uncaught TypeError: Cannot read properties of null (reading 'getBoundingClientRect')
at getFingerNewValue (SliderUnstyled.js:396)
at SliderUnstyled.js:474
at HTMLDocument. (useEventCallback.js:14)
not sure how to reproduce it outside of our code though yet, but it feels like a bug.
Also the issue of styling makes v5 unusable for us so far, we would have to redo the entire styling of the app, its crazy

closing this because I raised a fresh bug as we reproduced the slider bug in V5

How was this resolved?


Show 🚫 on the last line when a file does not end with \n

Follow my comment https://github.com/go-gitea/gitea/pull/19967#issuecomment-1184115968

If users want to hide the last empty line or show a block emoji (🚫) for no-newline when rendering, the new code is easier to do so in the future.

Changed the line-counting behavior to not count the last empty line on the UI. And add the "no EOL" mark to the last line.
// Gitea uses the definition (like most modern editors):
//   empty: 0 lines; "a": 1 line; "a\n": 2 lines (only 1 line is rendered); "a\nb": 2 lines;
//   When rendering, the last empty line is not rendered on UI, so "a\n" will be only rendered as one line on the UI.
//   If the content doesn't end with an EOL, there will be an icon mark at the end of last line to distinguish from the case above.

Show 🚫  ....

@delvh I am not a fan of putting emoji chars into the git message, especially in the "title"

I know, me neither.
But what's the alternative?
An unreadable title?

I changed it to octicon and added tooltip:

I think we are doing this wrong:

After this, gitea shows the icon in file view, but not in diff view
GitHub does not show it in file view and only in diff view

I guess I can accept having it in both views, but I find it much more important in diffs and I may actually find it annoying in file view.

Leave it to the future. Actually the old UI also looks good to me.

The PR was closed?
Not merged?
:confused:

Because of https://github.com/go-gitea/gitea/pull/27391#issuecomment-1743472712. I think it's better we only have it in diff view, not in file view.

I mean, at best in both for consistency, but I would have accepted it in only one as well.

I mean, at best in both for consistency, but I would have accepted it in only one as well.

I think less is more. During review, a EOL change is significant enough to be highlighted, but I guess seeing this icon in file view will get annoying soon as you may be inclined to think something is wrong with the file when it isn't.


sorting nav.pages by weight as well, closes #1

With this pull request, I sort nav.pages by weight as well.

in on_nav I'm also adding the nav.pages list, which we will also modify. This gets stored in a property (self._nav_pages) just like it was already done for self._nav_items.
After everything else has run completely, I'm calling self._order_pages with these nav items to recursively (depth first) add them to a flat list of items.
Finally, I order self._nav_pages by the index of that flat list. In this extra step, non-existent items will default to the end of the list. I chose to do this, because I am not sure if the pages list should list files that are no longer in nav.items or not. In my implementation, all pages remain in this list (as it was before) they are just shuffled to the back.


"Unresolved" variables in eval statements

Basically the issue is easily demonstrated with the following example:

foo='Foo'
eval "echo '$foo'"

This causes bash support to report that the instance of "$foo" in the eval
statement is unresolved, even though the variable does exist. While I
understand that variables created within the eval statement may be unresolved,
surely references to known variables created outside of it should function as
normal?

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 13 Feb 2015 at 1:59

Done for the next update.


Jetbrains tooltip popup is sticky, gets cloned.

Before submitting your bug report

[X] I believe this is a bug. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that reports the same bug
[X] I've seen the troubleshooting guide on the Continue Docs

Relevant environment info
- OS: Windows 11
- Continue: 0.0.64
- IDE: Jetbrains Rider

Description
Randomly the new popup in Rider gets frozen to the editor, and duplicated when a new one appears after selecting a new section. These old sections still respond to the new selection, so if I click on the "Ctrll Editor" for example the new text is added. But these remnants are over the actual code and are pretty irritating

To reproduce

Create 2 Split editors next to each other with text
Select something in the first
Switch over and select something else in the second
The popup remains active in the first editor

Log output
No response

@gogo199432 I've made a few important changes in version 0.0.65, is this still occurring there?

hey, yeah it is still occuring in 0.0.65 . It might be slightly better, but the duplication is still occuring when switching between 2 docked editor windows (vertical split)

We are also facing the problem. But in Windows and Linux whereas it is more rare under Linux

I'm encountering this as well on Kubuntu Linux.
PhpStorm 2024.2.1
Rider 2024.2.3
Continue 0.0.65
KDE Plasma 5.27.11

This is now solved in the latest versions of Continue!


Fix tempestoptions parsing

When setting tempestoptions to --smoke the current logic will convert
that to ---smokemoke which tempest is unhappy with.

@bmwiedemann I have tested this PR a bit more. It works for strings such as --smoke -t. Please have another look.

Please do not merge this until it has been gated with both -t -s and --serial --smoke.

@aspiers I'll trigger an alternative gating job so we test both scenarios.

For reference the Trello card.

I agree that #1578 is cleaner in that regard. I do think though that we should still allow for either option form to work with mkcloud. Otherwise we have to change both cloudsource and tempestoptions when running it (and I am sure that I will forget this at some point :smile:).

@dirkmueller IIUC this is obsoleted by #1578 and can be closed?

@aspiers #1578 will fix our CI tests, however, the issue I commented on regarding manual use of mkcloud still remains.

@nicolasbock yeah, I agree.. one thought I had was to add support for the "old" options to tempest run.

You mean upstream?

@dirkmueller I took the liberty to suggest the short options upstream: #419125

Rebased.

so is this still needed after #1578 got merged?

@bmwiedemann It's not needed for CI anymore. But it might be useful for running mkcloud manually.

We can just cherry pick your patch for OpenStack tempest instead?

@dirkmueller Yes, that works. Let me prepare a new tempest package then.

@dirkmueller Created OSC#449884 with the upstream patch.

and accepted..

@dirkmueller Thanks!


[Fabric] [1.18.2] Custom Chest invisible

Hi the custom chests are invisible. The texture is missing ^^"

Can you upload your log file? And what mod are you using for shaders? Do you have any performance mods that could be impeding things?

Sure here you go:
https://gist.github.com/pewblaze/6dc3b53342e4b6158a7d120132a9b468
Im using Iris & Complementary Shaders.
I disabled the shader same effect.
I disabled/deleted all my resource packs, same effect.

Its also invis in REI

Yeah ive got Sodium etc.
Ill try without my client side mods

Okay it works without my client side mods. Not sure which one causes it though. any ideas ^^"?

Doesnt work either :(
My log without my client side mods
https://gist.github.com/pewblaze/f7c0919aa3f194a31f8c7dff49219cff

Oh, you meant the custom inventory? My apologies, I thought you meant chests in general weren't functioning properly. I'll look into this, I may have missed something during the porting.

Okay, it looks like I forgot to register the renderer for the custom inventory. I've reinstated it, testing now, and I'll deploy an update presently.

This should be fixed in <IP_ADDRESS>, which will hopefully be approved on CurseForge shortly.

Ah i see! Thanks a lot :D


Fix issue with DBus on host/container

@petrosagg , @lorenzo-stoakes, @lifeeth. Can you have a look?

Overall this looks ok to me, but I'm also not really sure what I'm looking at, so it'd be good if @petrosagg could take a look


Error message improvements

Add more details to the error messages

Pull Request Test Coverage Report for Build 253

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.5%) to 95.92%

Files with Coverage Reduction
New Missed Lines
%

src/util.ts
4
63.89%

Totals

Change from base Build 238:
0.5%

Covered Lines:
784

Relevant Lines:
804

💛  - Coveralls

Pull Request Test Coverage Report for Build 253

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.5%) to 95.92%

Files with Coverage Reduction
New Missed Lines
%

src/util.ts
4
63.89%

Totals

Change from base Build 238:
0.5%

Covered Lines:
784

Relevant Lines:
804

💛  - Coveralls


[CARBONDATA-4164][CARBONDATA-4198][CARBONDATA-4199][CARBONDATA-4234] Support alter add map, multilevel complex columns and rename/change datatype.

Why is this PR needed?
Support alter add map, multilevel complex columns, and Change datatype for complex type.
What changes were proposed in this PR?

Support adding of single-level and multi-level map columns
Support adding of multi-level complex columns(array/struct)
Support renaming of map columns including nested levels
Alter change datatype at nested levels (array/map/struct)

Does this PR introduce any user interface change?

No

Is any new testcase added?

Yes

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4001/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5742/

Build Success with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/147/

Build Success with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/181/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4037/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5776/

Build Failed  with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/222/

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5819/

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4074/

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4076/

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5821/

Build Failed  with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/224/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5831/

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4087/

Build Success with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/234/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4120/

Build Success with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/265/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5862/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5867/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4125/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4138/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5881/

Build Success with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/283/

Build Success with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4142/

Build Success with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/287/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5885/

Build Success with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5889/

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4146/

Build Success with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/291/

retest this please

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5891/

Build Failed  with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/292/

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4147/

retest this please

Build Failed  with Spark 2.4.5, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_2.4.5/4148/

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbonPRBuilder2.3/5892/

Build Success with Spark 3.1, Please check CI http://<IP_ADDRESS>:12602/job/ApacheCarbon_PR_Builder_3.1/293/


[Feature Request] Save the model image files locally, rather than re-download them every time

This is a wonderful extension. I noticed that the UI is re-downloading all the sample images whenever the UI is loaded. It would be helpful if instead it could download them once and save to disk. That way the extension could be used when offline or when Civitai is down.

More details: the image URLs are coming from the .civitai.info files. They point to a URL on civitai (obviously!). So I wonder if they could be written locally and then the URL rewritten.

for the .civitai.info images it is probably possible. I'll look into it

added in commit 54a63489addc0dad48dc43ecbb1b7f45642b46f2


[dev] Disable console log messages for windows

tempfix until https://github.com/cloudflare/wrangler/pull/970 gets figured out

we should just prioritize #970


add charts for churn rate

We should add charts showing:

percent_of_donations_that_churn_per_week
new_donations_this_week_as_a_percent_of_the_total_donations_last_week

was: lower the churn rate
From @pjc on Twitter:

@pjc: The churn rate of @gittip donations seems quite high. Any idea on the primary cause of this?
@whit537: Say more? You mean funding levels change a lot from week to week?
@pjc: Yes. Looking at donations as "clients" and @gittip as a Saas business, the churn (outflow) outpaces inflow already in some weeks.
Total size of @gittip weekly donations will max out at new_weekly_donations_per_week / percent_of_donations_that_churn_per_week
The denominator is the issue right now. Features that could lower churn: prepaid, updates, etc. Saas metrics:http://www.forentrepreneurs.com/saas-metrics/

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Closing in light of our decision to shut down Gratipay.
Thank you all for a great run, and I'm sorry it didn't work out! 😞  💃


feat: Use tags to improve performance

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


Can you provide a demo using QMServices at sub-module?

Currently, QMServices only allow upload/download image for attachment message.
I want to upload/download some type of file that is not image, so I write new functions. I had tried integrating QMServices via sub-module follow your guide but not success.
Can you provide an example for this guide, please?

Hi,
You can use development pods for this, just clone our repository, and add this to your podfile:
pod 'QMServicesDevelopment', :path => '__path_to_cloned_repository__'

Or you can install development pods without repository cloning:
pod 'QMServicesDevelopment', :git => 'git@github.com:QuickBlox/q-municate-services-ios.git', :branch => 'master'

Thank @Raikerian


Snapshot partnership

This issue consolidates #203 and #205 with a number other improvements.

[ ] Displaying the metadata. Improvement the display of daoURI metadata on Snapshot's interface.
[ ] Editing the metadata. Give DAOs control over their Snapshot's daoURI though a change to the Snapshot.org interface.
[ ] Improving metadata generation. Fixing some data formatting issues, see https://github.com/snapshot-labs/snapshot-hub/pull/812
[ ] A joint marketing collaboration for Snapshot X, especially to the Arbitrum grant #184
[ ] #203
[ ] #205
[ ] new daoURI registration path via Snapshot and ENS, completely integrated with the Snapshot space creation and which also does NOT require an ENS text record.
[ ] Eventually, a unified API with Snapshot, Snapshot X, Governor, etc. across many chains

Quick comment: @frm asked whether we should prioritize this or Etherscan at the moment. To memorialize the decision: CURRENTLY I think we should prioritize Etherscan / core DAOstar API improvements because (1) it's important for growth / data quality and (2) a lot of the work here, especially the new daoURI registration path, needs to first be speced in an updated ENS standard before handed to the strike team.

Right now, we are still prioritizing Etherscan. Will come back to this. Rashmi in touch on a regular basis with the team though on other stuff.


how to pass a file and body at same time?

i've new in hyper i want just send request using file for a body but i didn't get valid argument for this
let say i have code like this:
from hyper import HTTPConnection

file = open(myfile, "rb")
body = {
    "content":b"mycontent"
}
req = HTTPConnection("myhost.com")
req.request("GET","/path", body=body)
response = req.get_response()
print(response)

i dont know how to pass my file into request argument, so many appreciate for any help

Shouldn't you be using POST instead of GET to send a body?

Shouldn't you be using POST instead of GET to send a body? Also, note that body= is expecting a byte string, and you are passing it a dict.

ahh sorry about that im forgot this one, but you can explain me how to pass valid argument for POST method pass a file and some data(body)?

I am also having some issue with POST. here is my sample code.
filepath = "testfile"
print(type(filepath))
file_size = os.stat(filepath).st_size
print("file_size = {}".format(file_size))
a = open(filepath, 'rb')
files = {'image', a}
hdr = {'Content-Length': str(file_size)}
conn.request(method='POST', url="/upload_http2/upload_http2.php", body=files, headers=hdr)
resp = conn.get_response()
print(resp.status)

This part of the docs provides an example POST request:
from hyper import HTTPConnection
c = HTTPConnection('http2bin.org')
req = c.request('POST', '/post', body=b'hello')

As you can see, body= is given a bytestring b'hello'. You could convert your dicts to string and encode them to a bytestring? that might work.

This part of the docs provides an example POST request:
from hyper import HTTPConnection
c = HTTPConnection('http2bin.org')
req = c.request('POST', '/post', body=b'hello')

As you can see, body= is given a bytestring b'hello'. You could convert your dicts to string and encode them to a bytestring? that might work.

i know about this one, but how if i want post image
for example i use default requests
import requests

fr = {
	"a":open("tes.jpg", "rb")
}
r = requests.post("https://api.ians.web.id/api/img/index.php", files=fr)
print(r.text)

and i get what i want, im so glad if have example for my issue

Currently there is no way to do this in hyper. There are two ways I can see this being resolved:

Implement the functionality manually within Hyper
Re-use requests implementation, such at this.

For the time being, in theory I reckon you could just use the requests method I listed to encode the data yourself and pass that to hyper in the body? I'm not sure what the thoughts of the repo owner are on re-using requests stuff to implement functionality but I don't see a reason not to


[gguf] Ability to specify some fetch headers

cc @ngxson too

hmmm there is already a custom fetch function, is there a strong need?

hmmm there is already a custom fetch function, is there a strong need?

Well, for safetensors we have a credentials param

Thanks for tagging me. I have no comment about this PR. But just for my curiosity, is this functionality needed to access gated model? (with a token passed via header, as I remember?)


Get page author full name

Looks like it is impossible to get User instances or something similar to User.get_full_name() directly from a template.
Why is there only strings of usernames stored in Page instead of foreign keys?

@evildmp @ojii What do You think about storing the User object in an author field and use null=True on it?


Why does the system always have degraded volumes？

We deployed longhorn v1.0.2 successfully，but there always are some volumes degrading in the system.
Never the volumes are all healthy；
When we reboot pods, there will even more volumes go to downgrade, like 30%, and system has to rebuild replicas crazy

There are several reasons that lead to degraded volumes. The most common reason is the cluster doesn't meet the minimum resource requirement. You can take a look at this report, https://github.com/longhorn/longhorn/issues/1691#issuecomment-729633995 , to see if your cluster experiences this issue.

When we reboot pods, there will even more volumes go to downgrade, like 30%, and system has to rebuild replicas crazy

Do you mean that you reboot the nodes? If you reboot a node, Longhorn will see that the replica on the node is failed and try to rebuild a new one on other nodes. Longhorn has to do that to make sure your volumes are HA. If your application already handles replication and you don't need Longhorn volume to be HA, you can set the number of replica for Longhorn volume to be 1. Be aware that you will lose the volume's data in case the only replica gets corrupted.


Multilevel modules

I'm submitting a ...
[ ] bug report
[ ] feature request
[*] question about the decisions made in the repository
Do you want to request a feature or report a bug?
yes
What is the current behavior?
I'm creating a sub-module for dashboard.module.
In dashboard.routes I declared children route:

{
    path: '',
    component: Dashboard,
        children: [{
            path: 'analytics',
            loadChildren: () => System.import('./modules/analytics.module')
    }]
  }

Analytics module is described as well as dashboards module (from the box).
This decision is works well, but I see error when I redirect to analytics module from parent (dashboard siblings level) modules.
Error: Uncaught (in promise): TypeError: Cannot read property 'routes' of undefined
If I place Analytics module to one position higher: no error. Why?
What am I doing wrong?
My opinion: the reason is lazy loading.
Who is doing multi-level modules?
This is my Analitics module reoutes:
const analiticRoutes: Routes = [
  {
    path: '',
    component: Analitics
  }
]

What is the expected behavior?
No error
What is the motivation / use case for changing the behavior?
I want to build multiple levels modules
Please tell us about your environment:
Angular version: 2.0.0-rc.X
Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]
Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

What do you mean with

If I place Analytics module to one position higher: no error. Why?

What's that one position higher?
Also, can you post your analytics.module file?

Ok. I prepared an example: This example of a slightly different, but he fully describes my problem.
This is my pages.menu.ts
export const PAGES_MENU = [
  {
    path: 'pages',
    children: [
      {
        path: 'dashboard',
        data: {
          menu: {
            title: 'Dashboard',
            icon: 'ion-android-home',
            selected: false,
            expanded: false,
            order: 0
          }
        }
      },
      {
        path: 'sample',
        data: {
          menu: {
            title: 'Sample',
            icon: 'ion-android-home',
            selected: false,
            expanded: false,
            order: 0
          }
        },
        children: [
          {
            path: 'module_1',
            data: {
              menu: {
                title: 'Module1',
                icon: 'ion-android-home',
                selected: false,
                expanded: false,
                order: 0
              }
            }
          },
          {
            path: 'module_2',
            data: {
              menu: {
                title: 'Module2',
                icon: 'ion-android-home',
                selected: false,
                expanded: false,
                order: 0
              }
            }
          }
        ]
      }
    ]
  }
];

I add new directory called sample to pages and create files for modules. This is structure:
	dashboard
	pages
		samle
			modules
				module_1
					module1.component.ts
					module1.module.ts
					module1.routes.ts
				module_2
					module2.component.ts
					module2.module.ts
					module2.routes.ts
			sample.component.ts
			sample.module.ts
			sample.routing.ts

In this example dashboard module do not touch.
The following example: sample module and sub-modules:
sample.component.ts
import { Component } from "@angular/core";

@Component({
  selector: 'sample',
  template: `<router-outlet></router-outlet>`
})
export class SampleComponent {
  constructor() {
  }
}

sample.module.ts
import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { NgaModule } from "../../theme/nga.module";
import { routing } from "./sample.routing";
import { SampleComponent } from "./sample.component";

@NgModule({
  imports: [
    CommonModule,
    NgaModule,
    routing
  ],
  declarations: [
    SampleComponent
  ]
})
export default class SampleModule {
}

sample.routing.ts
import { Routes, RouterModule } from "@angular/router";
import { SampleComponent } from "./sample.component";
import { ModuleWithProviders } from "@angular/core";

const routes: Routes = [
  {
    path: '',
    component: SampleComponent,
    children: [
      { path: '', redirectTo: 'module_1' },
      { path: 'module_1', loadChildren: () => System.import('./modules/module_1/module1.module') },
      { path: 'module_2', loadChildren: () => System.import('./modules/module_2/module2.module') },
    ]
  }
];

export const routing: ModuleWithProviders = RouterModule.forChild(routes);

modules/module_1/module_1.component.ts
import { Component } from "@angular/core";

@Component({
  selector: 'module1',
  template: '
Module One
'
})
export class ModuleOneComponent {
  constructor() {
  }
}

modules/module_1/module_1.module.ts
import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { NgaModule } from "../../../../theme/nga.module";
import { routing } from "./module1.routes";
import { ModuleOneComponent } from "./module1.component";

@NgModule({
  imports: [ CommonModule, NgaModule, routing ],
  declarations: [ ModuleOneComponent ],
})
export default class Module1 {
}

modules/module_1/module_1.routes.ts
import { Routes, RouterModule } from "@angular/router";
import { ModuleOneComponent } from "./module1.component";

const routes: Routes = [
  {
    path: '',
    component: ModuleOneComponent,
  }
];

export const routing = RouterModule.forChild(routes);

Sub-module 2 is the same as sub-module 1, only digit 1 replaced to two. Sub-module 2 I created only for clarity. Because my structure have many sub-modules and levels.
After starting by default we will see the dashboard.
But if you click on the left sidebar on the sub-module Sub Module 1. In console we will see the error Uncaught (in promise): TypeError: Cannot read property 'routes' of undefined.
Why?
P.S. Sorry for my english :). Big thank`s for responses.

In sample.routing.ts, try changing
{ path: '', redirectTo: 'module_1' },

to
{ path: '', redirectTo: 'module_1', pathMatch: 'full' },

See if that helps.

not works

I change first children route in sample.routing.ts from load module to component and it helped:
const routes: Routes = [
  {
    path: '',
    component: SampleComponent,
    children: [
      { path: '', component: ModuleOneComponent },
      { path: 'module_2', loadChildren: () => System.import('./modules/module_2/module2.module') },
    ]
  }
];

I understand that the children routes can not be only modules. Root route must be a component, but why?

Closing due to inactivity.


V1.0.x merge into master

CC @nathanielmanistaatgoogle @soltanmm
I had to guess what the correct conflict resolution was for tools/distrib/python/grpcio_tools/setup.py. Can you check that the merged version here is correct?

Also cc @kpayson64.

I think I may not have merged correctly.

For grpcio-tools' tools/distrib/python/grpcio_tools/setup.py:
141 <<<<<<< HEAD
142 def extension_modules():
143   if BUILD_WITH_CYTHON:
144     plugin_sources = ['grpc/tools/_protoc_compiler.pyx']
145   else:
146     plugin_sources = ['grpc/tools/_protoc_compiler.cpp']
147   plugin_sources += [
148       'grpc/tools/main.cc',
149       'grpc_root/src/compiler/python_generator.cc'] + [
150       os.path.join(protoc_lib_deps.CC_INCLUDE, cc_file)
151       for cc_file in protoc_lib_deps.CC_FILES]
152   plugin_ext = extension.Extension(
153       name='grpc.tools._protoc_compiler',
154       sources=plugin_sources,
155 =======
156 def protoc_ext_module():
157   plugin_sources = [
158       os.path.join('grpc', 'tools', 'main.cc'),
159       os.path.join('grpc_root', 'src', 'compiler', 'python_generator.cc')] + [
160       os.path.join(CC_INCLUDE, cc_file)
161       for cc_file in CC_FILES]
162   plugin_ext = extension.Extension(
163       name='grpc.tools._protoc_compiler',
164       sources=(
165           [os.path.join('grpc', 'tools', '_protoc_compiler.pyx')] +
166           plugin_sources),
167 >>>>>>> v1.0.x

becomes
def extension_modules():
  if BUILD_WITH_CYTHON:
    plugin_sources = [os.path.join('grpc', 'tools', '_protoc_compiler.pyx')]
  else:
    plugin_sources = [os.path.join('grpc', 'tools', '_protoc_compiler.cpp')]
    plugin_sources += [
      os.path.join('grpc', 'tools', 'main.cc'),
      os.path.join('grpc_root', 'src', 'compiler', 'python_generator.cc')] + [
      os.path.join(CC_INCLUDE, cc_file)
      for cc_file in CC_FILES]
  plugin_ext = extension.Extension(
      name='grpc.tools._protoc_compiler',
      sources=plugin_sources,

@soltanmm Can you also look at src/python/grpcio/_unixccompiler_patch.py?

@murgatroid99 _unixccompiler_patch.py file looks good.

The interop test build appears to be failing with a Python protoc related error. Do you know what's going on there?

ImportError: /var/local/git/grpc/py27/lib/python2.7/site-packages/grpc/tools/_protoc_compiler.so: undefined symbol: _Z11protoc_mainiPPc

@soltanmm ? @kpayson64 ? @nathanielmanistaatgoogle ? Anyone ? Bueller ?

I don't know off the top of my head what's going on but am looking.
What's with the sanity test failure?
Earlier in the log of the failing interop test I see
+ cd /var/local/git/grpc
+ /var/local/git/grpc/py27/bin/python /var/local/git/grpc/tools/distrib/python/make_grpcio_tools.py
/var/local/git/grpc/tools/distrib/python/bazel_deps.sh: line 39: bazel: command not found
Got non-fatal error:
Traceback (most recent call last):
  File "/var/local/git/grpc/tools/distrib/python/make_grpcio_tools.py", line 217, in main
    protoc_lib_deps_content = get_deps()
  File "/var/local/git/grpc/tools/distrib/python/make_grpcio_tools.py", line 118, in get_deps
    cc_files_output = bazel_query(BAZEL_DEPS_PROTOC_LIB_QUERY)
  File "/var/local/git/grpc/tools/distrib/python/make_grpcio_tools.py", line 112, in bazel_query
    output = subprocess.check_output([BAZEL_DEPS, query])
  File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
CalledProcessError: Command '['/var/local/git/grpc/tools/distrib/python/bazel_deps.sh', '//:protoc_lib']' returned non-zero exit status 127

; is that a known or understood thing?

@nathanielmanistaatgoogle That's a known, understood, non-fatal error (the message says non-fatal anyway and I recall writing it as being a non-fatal error). It's just saying that it can't regenerate certain files which require bazel (or indirectly require docker) and some build systems don't have either so we just keep up-to-date files in the repository.

Sorry @murgatroid99 ; gave you the wrong patch. Here it is, corrected:
def extension_modules():
  if BUILD_WITH_CYTHON:
    plugin_sources = [os.path.join('grpc', 'tools', '_protoc_compiler.pyx')]
  else:
    plugin_sources = [os.path.join('grpc', 'tools', '_protoc_compiler.cpp')]
  plugin_sources += [
    os.path.join('grpc', 'tools', 'main.cc'),
    os.path.join('grpc_root', 'src', 'compiler', 'python_generator.cc')] + [
    os.path.join(CC_INCLUDE, cc_file)
    for cc_file in CC_FILES]
  plugin_ext = extension.Extension(
      name='grpc.tools._protoc_compiler',
      sources=plugin_sources,

This looks basically green, besides a couple of flakes.

I would squash the commits I made in this PR, but I can't figure out how to squash commits into a merge commit.

Merge commits should never be squashed, otherwise you would no longer be able to properly merge afterward, which defeats the purpose of such PR.
I'm slightly interested in the Travis build, just to see if we don't break ObjC.


[Feature] Making UnityAtoms compatible with Enter The PlayMode feature of Unity

Enter The PlayMode is a feature that makes entering the play mode insanely fast.

But there are side effects:

Fields marked with [NonSerialized] attribute keep their values - as script serialization step is skipped completely and scripts remain the same, all data is carried to the Play Mode.
Static variables keep their values - because Domain Reload does not happen types stay initialized.
Static events keep their subscribers.
There is no extra OnDisable/OnEnable calls for ExecuteInEditMode scripts.
ScriptableObject, MonoBehaviour fields which are not serialized into the build ([NonSerialized], private or internal) keep their values - as existing objects are not recreated and constructors are not called.
Watch out for null private and internal fields of array/List type - they are converted to an empty array/List object during Domain Reload and stay non null for game scripts.
ExecuteInEditMode/ExecuteAlways scripts are not destroyed/awaken - no OnDestroy/Awake calls for those.
Watch out for Awake/OnEnable methods which check EditorApplication.isPlaying property - Awake is not called and OnEnable is called only when EditorApplication.isPlaying is already true on Play Mode change.

UnityAtoms gets heavily impacted by these side effects.
OnEnable and OnDisable calls are not called anymore. So nothing works as expected.
I exactly don't know how we are supposed to change the code at the moment. So I created this issue for the discussion about it.
There are some useful callbacks that we can use.

EditorApplication.playModeStateChanged event
 [RuntimeInitializeOnLoadMethod] attribute

What do you think?

I think bug label needs to be changed into something more appropriate. I mistakenly created this out of bug report template.

Thanks for creating this issue!
I'm completely new to this Unity feature, but on the surface this seems to be a huge undertaking, but I could be wrong. Do you know where to start to make this happen? Are there for example any migration guides out there?
I'm all for shaving off time when entering play mode. If you (or anyone else) wants to contribute to Atoms and give this a try then I would be very grateful. Not sure that I will have the time to implement this anytime soon though.

The main issue is OnEnable and OnDisable calls. I have not found a way to get the same effect with Enter the Playmode yet. Every guide that is out there is for handling static events and variables. (ScriptableObjects always get neglected in Unity. lol)
When I find a way, I will update this issue.

Maybe falling back to https://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.OnBeforeSerialize.html ?
i know this had different problems, but they might be easier to solve?

Hi all, I've created a pull request to workaround this issue: https://github.com/AdamRamberg/unity-atoms/pull/182
We do not have lots of options therefore it may not seem optimal solution but it seems work. I'd like to discuss about the solution and find better approach if possible.

Start Cleared option on ValueList also doesn't work with the new Enter Play Mode settings.

Start Cleared option on ValueList also doesn't work with the new Enter Play Mode settings.

I didn't use Start Cleared option before and I don't know about this feature. I'll look at this issue in a new PR when I'm available and I guess it will be next week :)

I'm not sure what the current progress on supporting this is, but I have issues with Event Reference Listeners triggering as soon as I enter play mode with the new Enter Play Mode settings - both domain and scene reload disabled.
I can manually fix this by either setting Replay Buffer Size to 0 or by disabling the Replay Event Buffer on Register bool.

There should be a warning at the start of the docs about this. I just spent two days implementing this library before starting to hit errors when re-entering play mode.

thanks for bringing this to my attention.
could you give a bit more details what errors you run into, and maybe a simple setup to reproduce them?

I am confused as to why 'Old Value' is serialized though... Is this really information that needs to be saved to the project? I feel like "old value" and "value" should only exist at runtime, (as opposed to "Initial Value" which obviously needs to be saved).

Not sure if this is related to domain reload or not.

Been trying to come back to this issue and wrap my head around it. This might be obvious, but wasn't clear to me when reading Unity's docs on what it means to disable domain reloading and how and why @hazarartuner solution works. Please correct me if any of the below statements are wrong.

OnDisable() and OnEnable() are not called anymore when entering play mode since it is part of domain reloading.
Awake() and OnEnable() are still being called for SOs when starting up the editor.
@hazarartuner works, but only if we restart the editor, since OnEnable() is called for all SOs in the project when starting the editor.

Could anyone point me to where in the Unity docs it is stated that OnDisable() and OnEnable() is part of domain reloading and is therefore not called when entering play mode? There are only notes for it when used in scripts using ExecuteInEditMode. Had to read this thread to grasp this, but there must be some officilar resource on this?

@AdamRamberg

Could anyone point me to where in the Unity docs it is stated that OnDisable() and OnEnable() is part of domain reloading and is therefore not called when entering play mode?

You can see in the SO docs:
OnEnable:

This function is called when the object is loaded.

This is not explicit, but assets are (as I understand) loaded on demand by the editor, either when selected for inspector or used in game. They are not reloaded when entering play mode (hence why modifications to the asset persist when entering play mode).
OnDisable:

This function is called when the scriptable object goes out of scope.
This is also called when the object is destroyed and can be used for any cleanup code. When scripts are reloaded after compilation has finished, OnDisable will be called, followed by an OnEnable after the script has been loaded.

And here it is clearly. OnDisable is called when cleaning up SOs, and OnEnable is called after loading.
If you want to trigger code when entering playmode, I'd recommend looking at RuntimeInitializeOnLoadMethodAttribute. I used this to clear out pools and reset static fields in our project. However we have a single scene project, so I'm not sure how it plays in multi-scene.
However, a cleaner fix may simply be to not serialize _value and _oldValue at all as I hinted at above.

Just to go into more detail on the [RuntimeInitializeOnLoadMethodAttribute](https://docs.unity3d.com/ScriptReference/RuntimeInitializeOnLoadMethodAttribute.html) idea:
I think you could have a single static handler that calls [Resources.FindObjectsOfTypeAllhttps://docs.unity3d.com/ScriptReference/Resources.FindObjectsOfTypeAll.html] like:
[RuntimeInitializeOnLoadMethodAttribute]
class ResetAll() {
  // get all atoms currently in memory.
  var atoms = Resources.FindObjectsOfTypeAll(typeof(IAtomBaseInterface)) as IAtomBaseInterface[];
  // reset current value to initial value.
  foreach (var a in atoms) a.Reset();
}

Might be more appropriate to use EditorApplication.playModeStateChanged (as @pnarimani suggested) since exiting playmode is also important.
However... I still feel these values just shouldn't be serialized at all unless I'm missing something.

Please correct me if any of the below statements are wrong.

[ScriptableObject.]OnDisable() and [ScriptableObject.]OnEnable() are not called anymore when entering play mode since it is part of domain reloading.

obviously, but for completeness sake: for runtime instantaited SOs, they should still be called.
also, I'm not entirely sure about AssetBundles/Addressables in edit mode, as those would have their own lifecycle that differs a bit from the usual editor-assets-lifecycle

@hazarartuner works, but only if we restart the editor, since OnEnable() is called for all SOs in the project when starting the editor.

also compiling any code change should trigger a domain reload I think.

Could anyone point me to where in the Unity docs it is stated that OnDisable() and OnEnable() is part of domain reloading and is therefore not called when entering play mode?

It's not really part of domain reloading, but a consequence of it. ScriptableObject.OnEnable states "This function is called when the object is loaded.", without a domain reload, the asset just stays to be loaded, as there is nothing that unloads them.
But the whole ScriptableObject/Asset lifecycle is kinda a neglected topic in the docs, hence it often results in confusion of atoms-users when the things behave differently in a build compared to the editor.

I also agree with everything @rhys-vdw stated.

Thanks a bunch both of you for the explanations 🙏
I agree, makes sense what you @rhys-vdw are suggestiong.


Try to generate the DAG by using pycallgraph2.

#7

https://github.com/ray-project/ray/issues/13515

https://github.com/ray-project/ray/issues/13515

Since ray tasks are executed in a separate process, I think you cannot use the python call stack to create a DAG.

Since ray tasks are executed in a separate process, I think you cannot use the python call stack to create a DAG.

Now, it is impossible to use pycallgraph2 to generate DAG because ray tasks are executed in a separate process.

Now, it is impossible to use pycallgraph2 to generate DAG because ray tasks are executed in a separate process.


Chat Recolor Improvement - Themes/Presets

The Chat Recolor is very daunting to change every color manually to achieve something. Instead of the menu showing the list of colors, would it be better to have a list of presets and the colors hidden behind a "customize themes" menu? This would allow the level of customization that is currently achievable while also allowing users who don't want to manually change every color to use the feature.
Interested to know what people think. I think this feature has a lot of power that can make the chat box a little more usable.

Duplicate of #2220


Addition of anchor tag for grafana/prometheus in metrics

Description

Currently when you navigate to /settings#metrics, there is no anchor tag for grafana/prometheus
Expected Behavior

Addition of anchor tag for grafana/prometheus in metrics

@Veekshith can you please check if you can work on this


Added glue support

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks @cdstrachan!  Is it possible to push another commit or another PR that only adds the new lines?

I've created #787 which does not mess with the formatting. It belongs with #783. Sorry about the formatting, my editor decided to lint it.

Thanks. I'm closing this in favor of #787.


Removing file not checked

MagentoCoreInstaller: Removing: "magento/core" version: "<IP_ADDRESS>" from: "public/modules"
[ErrorException]
  file_put_contents(public/modules/.gitignore): failed to open stream: No such file or directory

You probably have a .gitignore file in whatever repository you are using for the core. Every file in the core package is assumed to be good for removal, there is no checking of files.
There is not really a way around this without keeping track of all files which are installed.

So it's removing the gitignore file because it exists in the core package, then it's trying to update the gitignore file which does not exist any more.

there is no .gitignore in core package
https://github.com/bragento/magento-core/tree/<IP_ADDRESS>
https://github.com/bragento/magento-core/tree/<IP_ADDRESS>

Hmm, weird, could you paste your config please?

"require": {
        "magento/core": "~1.9",
        "mygento/base": "*",
        "aoepeople/aoe_scheduler": "*",
        "aydin-hassan/magento-core-composer-installer": "^1.3"
    },
    "extra": {
        "magento-force": true,
        "magento-root-dir": "public/modules"
    },

Thanks, I will try to take a look later today

I tried this out with your example composer.json and it worked fine for me, there must be something else which is removing your .gitignore file. If you could reduce this to a test case I can take a further look, but I suspect there is something else having an effect here.

 I checked them all for .gitignore.
Can it be with auto-generated one by composer installer?

I'm pretty sure the composer installer doesn't remove the gitignore, I use that functionality on all our projects and haven't noticed the issue :/

The issue was during creating/updating file. It's strange however I am going to close this issue since I can't reproduce it once again.

[ErrorException]
file_put_contents(public/modules/.gitignore): failed to open stream: No such file or directory
Exception trace:
() at /Volumes/Data/GIT/projects/jekyll/vendor/aydin-hassan/magento-core-composer-installer/src/GitIgnore.php:116
Composer\Util\ErrorHandler::handle() at n/a:n/a
file_put_contents() at /Volumes/Data/GIT/projects/jekyll/vendor/aydin-hassan/magento-core-composer-installer/src/GitIgnore.php:116
AydinHassan\MagentoCoreComposerInstaller\GitIgnore->__destruct() at /Volumes/Data/GIT/projects/jekyll/vendor/aydin-hassan/magento-core-composer-installer/src/CoreManager.php:222
AydinHassan\MagentoCoreComposerInstaller\CoreManager->uninstallCore() at /Volumes/Data/GIT/projects/jekyll/vendor/aydin-hassan/magento-core-composer-installer/src/CoreManager.php:222
AydinHassan\MagentoCoreComposerInstaller\CoreManager->uninstallCore() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:152
Composer\EventDispatcher\EventDispatcher->doDispatch() at phar:///usr/local/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:112
Composer\EventDispatcher\EventDispatcher->dispatchPackageEvent() at phar:///usr/local/bin/composer/src/Composer/Installer.php:588
Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:233
Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/UpdateCommand.php:143
Composer\Command\UpdateCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:874
Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:195
Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:147
Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:126
Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:82
Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:43
require() at /usr/local/bin/composer:25

Is the modules folder still present? file_put_contents doesn't need the file to be present. Can you try running composer update with -vvv?

Nope, it's deleted by jekyll on every publish

You will have to provide an example repository with the issue bevause I can't reproduce it, if you can do that I wil debug it and get a fix in place (if there is a bug)

There is few private repositories inside so you can't debug it.
installed files.json
[
    {
        "packageName": "aoepeople\/aoe_scheduler",
        "version": "<IP_ADDRESS>-2e80e39c01a8311a48a1a8909d0d820176b9d813",
        "installedFiles": [
            "\/app\/code\/community\/Aoe\/Scheduler",
            "\/app\/etc\/modules\/Aoe_Scheduler.xml",
            "\/shell\/scheduler.php",
            "\/app\/locale\/sv_SE\/Aoe_Scheduler.csv",
            "\/app\/locale\/de_DE\/Aoe_Scheduler.csv",
            "\/app\/locale\/en_US\/template\/email\/aoe_scheduler",
            "\/app\/design\/adminhtml\/default\/default\/template\/aoe_scheduler",
            "\/app\/design\/adminhtml\/default\/default\/layout\/aoe_scheduler",
            "\/skin\/adminhtml\/default\/default\/aoe_scheduler",
            "\/scheduler_cron.sh"
        ]
    },
    {
        "packageName": "mygento\/base",
        "version": "<IP_ADDRESS>-efe258d12700acc82ead5a27a59c2f3f8ff85bd9",
        "installedFiles": [
            "\/app\/code\/community\/Mygento\/Base",
            "\/app\/etc\/modules\/Mygento_Base.xml",
            "\/app\/locale\/ru_RU\/Mygento_Base.csv",
            "\/skin\/adminhtml\/default\/default\/images\/mygento\/base\/logo.png"
        ]
    },
    {
        "packageName": "mygento\/theme",
        "version": "9999999-dev-cf7342b08ec151bb075b6d5d8de439276a003fce",
        "installedFiles": [
            "\/app\/design\/frontend\/mygento",
            "\/skin\/frontend\/mygento"
        ]
    },
    {
        "packageName": "mygento\/yandexkassa",
        "version": "<IP_ADDRESS>-5c2367afde1cf7a4563f4ebbfd94fed93a0db921",
        "installedFiles": [
            "\/app\/code\/local\/Mygento\/Yandexkassa",
            "\/app\/design\/adminhtml\/default\/default\/template\/mygento\/yandexkassa\/info.phtml",
            "\/app\/design\/frontend\/base\/default\/template\/mygento\/yandexkassa",
            "\/app\/etc\/modules\/Mygento_Yandexkassa.xml",
            "\/app\/locale\/ru_RU\/Mygento_Yandexkassa.csv"
        ]
    }
]

I can't you help then if you can't reproduce with any non private modules. I can't tell if there is an issue just by looking at it.

I know, so please, can you provide me some help with debugging. I just want to reduce debug time. Where I should firstly look ?

AydinHassan\MagentoCoreComposerInstaller\Options Object
(
    [deployExcludes:protected] => Array
        (
            [0] => .git
        )

    [ignoreDirectories:protected] => Array
        (
            [0] => /app/code/core/Mage
            [1] => /app/code/core/Zend
            [2] => /app/code/core/Enterprise
            [3] => /dev
            [4] => /lib/Zend
            [5] => /lib/Varien
            [6] => /lib/Magento
            [7] => /lib/PEAR
            [8] => /lib/Mage
            [9] => /lib/phpseclib
            [10] => /lib/flex
            [11] => /lib/LinLibertineFont
            [12] => /downloader
            [13] => /js/extjs
            [14] => /js/prototype
            [15] => /js/calendar
            [16] => /js/mage
            [17] => /js/varien
            [18] => /js/tiny_mce
            [19] => /lib/Apache
            [20] => /app/code/community/Phoenix/Moneybookers
            [21] => /app/design/adminhtml/default/default/template/bundle
            [22] => /app/design/adminhtml/default/default/template/catalog
            [23] => /app/design/adminhtml/default/default/template/customer
            [24] => /app/design/adminhtml/default/default/template/downloadable
            [25] => /app/design/adminhtml/default/default/template/newsletter
            [26] => /app/design/adminhtml/default/default/template/payment
            [27] => /app/design/adminhtml/default/default/template/sales
            [28] => /app/design/adminhtml/default/default/template/system
            [29] => /app/design/adminhtml/default/default/template/widget
            [30] => /app/design/adminhtml/default/default/template/xmlconnect
            [31] => /app/design/frontend/base/default/template/bundle
            [32] => /app/design/frontend/base/default/template/catalog
            [33] => /app/design/frontend/base/default/template/checkout
            [34] => /app/design/frontend/base/default/template/customer
            [35] => /app/design/frontend/base/default/template/downloadable
            [36] => /app/design/frontend/base/default/template/page
            [37] => /app/design/frontend/base/default/template/payment
            [38] => /app/design/frontend/base/default/template/paypal
            [39] => /app/design/frontend/base/default/template/reports
            [40] => /app/design/frontend/base/default/template/sales
            [41] => /app/design/frontend/base/default/template/wishlist
            [42] => /app/design/frontend/default/iphone/template/catalog
            [43] => /app/design/frontend/default/iphone/template/checkout
            [44] => /app/design/frontend/default/iphone/template/page
            [45] => /app/design/frontend/default/iphone/template/sales
            [46] => /app/design/frontend/default/iphone/template/wishlist
            [47] => /app/design/frontend/rwd/default/template/bundle
            [48] => /app/design/frontend/rwd/default/template/catalog
            [49] => /app/design/frontend/rwd/default/template/checkout
            [50] => /app/design/frontend/rwd/default/template/customer
            [51] => /app/design/frontend/rwd/default/template/downloadable
            [52] => /app/design/frontend/base/default/template/cataloginventory
            [53] => /app/design/frontend/base/default/template/catalogsearch
            [54] => /app/design/frontend/base/default/template/pagecache
            [55] => /app/design/frontend/default/iphone/template/catalogsearch
            [56] => /app/design/frontend/rwd/default/template/cataloginventory
            [57] => /app/design/frontend/rwd/default/template/catalogsearch
            [58] => /app/design/frontend/rwd/default/template/configurableswatches
            [59] => /app/design/frontend/rwd/default/template/email
            [60] => /app/design/frontend/rwd/default/template/page
            [61] => /app/design/frontend/rwd/default/template/paypal
            [62] => /app/design/frontend/rwd/default/template/persistent
            [63] => /app/design/frontend/rwd/default/template/reports
            [64] => /app/design/frontend/rwd/default/template/sales
            [65] => /app/design/frontend/rwd/default/template/wishlist
            [66] => /app/design/install/default/default/template/install
            [67] => /skin/adminhtml/default/default/images/xmlconnect
            [68] => /skin/frontend/base/default/images/moneybookers
            [69] => /skin/frontend/rwd/default/scss
            [70] => /app/design/adminhtml/default/default/template/paypal
            [71] => /app/design/adminhtml/default/default/template/permissions
            [72] => /app/design/adminhtml/default/default/template/report
            [73] => /app/design/adminhtml/default/default/template/tax
            [74] => /app/design/frontend/base/default/template/cms
            [75] => /app/design/frontend/base/default/template/email
            [76] => /app/design/frontend/base/default/template/moneybookers
            [77] => /app/design/frontend/base/default/template/oauth
            [78] => /app/design/frontend/base/default/template/review
            [79] => /app/design/frontend/default/modern/template/catalog
            [80] => /skin/adminhtml/default/default/xmlconnect
            [81] => /skin/frontend/base/default/images/cookies
            [82] => /skin/frontend/base/default/images/xmlconnect
            [83] => /app/design/frontend/default/modern/template/catalogsearch
        )

    [appendToGitIgnore:protected] => 1
    [magentoRootDir:protected] => public/modules
)

You could try put some dumps in here: https://github.com/AydinHassan/magento-core-composer-installer/blob/master/src/CoreManager.php#L163 check the state of the file system. Eg does public/modules exist? Because it should on update. Maybe it has something to do with your root being two folders deep. Try it with one level deep. Other than that you can setup xdebug to run composer update and put a breakpoint in the installer.

class AydinHassan\MagentoCoreComposerInstaller\GitIgnore#69714 (4) {
  protected $lines =>
  array(84) {
    [0] =>
    string(19) "/app/code/core/Mage"
    [1] =>
    string(19) "/app/code/core/Zend"
    [2] =>
    string(25) "/app/code/core/Enterprise"
    [3] =>
    string(4) "/dev"
    [4] =>
    string(9) "/lib/Zend"
    [5] =>
    string(11) "/lib/Varien"
    [6] =>
    string(12) "/lib/Magento"
    [7] =>
    string(9) "/lib/PEAR"
    [8] =>
    string(9) "/lib/Mage"
    [9] =>
    string(14) "/lib/phpseclib"
    [10] =>
    string(9) "/lib/flex"
    [11] =>
    string(21) "/lib/LinLibertineFont"
    [12] =>
    string(11) "/downloader"
    [13] =>
    string(9) "/js/extjs"
    [14] =>
    string(13) "/js/prototype"
    [15] =>
    string(12) "/js/calendar"
    [16] =>
    string(8) "/js/mage"
    [17] =>
    string(10) "/js/varien"
    [18] =>
    string(12) "/js/tiny_mce"
    [19] =>
    string(11) "/lib/Apache"
    [20] =>
    string(40) "/app/code/community/Phoenix/Moneybookers"
    [21] =>
    string(53) "/app/design/adminhtml/default/default/template/bundle"
    [22] =>
    string(54) "/app/design/adminhtml/default/default/template/catalog"
    [23] =>
    string(55) "/app/design/adminhtml/default/default/template/customer"
    [24] =>
    string(59) "/app/design/adminhtml/default/default/template/downloadable"
    [25] =>
    string(57) "/app/design/adminhtml/default/default/template/newsletter"
    [26] =>
    string(54) "/app/design/adminhtml/default/default/template/payment"
    [27] =>
    string(52) "/app/design/adminhtml/default/default/template/sales"
    [28] =>
    string(53) "/app/design/adminhtml/default/default/template/system"
    [29] =>
    string(53) "/app/design/adminhtml/default/default/template/widget"
    [30] =>
    string(57) "/app/design/adminhtml/default/default/template/xmlconnect"
    [31] =>
    string(49) "/app/design/frontend/base/default/template/bundle"
    [32] =>
    string(50) "/app/design/frontend/base/default/template/catalog"
    [33] =>
    string(51) "/app/design/frontend/base/default/template/checkout"
    [34] =>
    string(51) "/app/design/frontend/base/default/template/customer"
    [35] =>
    string(55) "/app/design/frontend/base/default/template/downloadable"
    [36] =>
    string(47) "/app/design/frontend/base/default/template/page"
    [37] =>
    string(50) "/app/design/frontend/base/default/template/payment"
    [38] =>
    string(49) "/app/design/frontend/base/default/template/paypal"
    [39] =>
    string(50) "/app/design/frontend/base/default/template/reports"
    [40] =>
    string(48) "/app/design/frontend/base/default/template/sales"
    [41] =>
    string(51) "/app/design/frontend/base/default/template/wishlist"
    [42] =>
    string(52) "/app/design/frontend/default/iphone/template/catalog"
    [43] =>
    string(53) "/app/design/frontend/default/iphone/template/checkout"
    [44] =>
    string(49) "/app/design/frontend/default/iphone/template/page"
    [45] =>
    string(50) "/app/design/frontend/default/iphone/template/sales"
    [46] =>
    string(53) "/app/design/frontend/default/iphone/template/wishlist"
    [47] =>
    string(48) "/app/design/frontend/rwd/default/template/bundle"
    [48] =>
    string(49) "/app/design/frontend/rwd/default/template/catalog"
    [49] =>
    string(50) "/app/design/frontend/rwd/default/template/checkout"
    [50] =>
    string(50) "/app/design/frontend/rwd/default/template/customer"
    [51] =>
    string(54) "/app/design/frontend/rwd/default/template/downloadable"
    [52] =>
    string(59) "/app/design/frontend/base/default/template/cataloginventory"
    [53] =>
    string(56) "/app/design/frontend/base/default/template/catalogsearch"
    [54] =>
    string(52) "/app/design/frontend/base/default/template/pagecache"
    [55] =>
    string(58) "/app/design/frontend/default/iphone/template/catalogsearch"
    [56] =>
    string(58) "/app/design/frontend/rwd/default/template/cataloginventory"
    [57] =>
    string(55) "/app/design/frontend/rwd/default/template/catalogsearch"
    [58] =>
    string(62) "/app/design/frontend/rwd/default/template/configurableswatches"
    [59] =>
    string(47) "/app/design/frontend/rwd/default/template/email"
    [60] =>
    string(46) "/app/design/frontend/rwd/default/template/page"
    [61] =>
    string(48) "/app/design/frontend/rwd/default/template/paypal"
    [62] =>
    string(52) "/app/design/frontend/rwd/default/template/persistent"
    [63] =>
    string(49) "/app/design/frontend/rwd/default/template/reports"
    [64] =>
    string(47) "/app/design/frontend/rwd/default/template/sales"
    [65] =>
    string(50) "/app/design/frontend/rwd/default/template/wishlist"
    [66] =>
    string(52) "/app/design/install/default/default/template/install"
    [67] =>
    string(49) "/skin/adminhtml/default/default/images/xmlconnect"
    [68] =>
    string(47) "/skin/frontend/base/default/images/moneybookers"
    [69] =>
    string(31) "/skin/frontend/rwd/default/scss"
    [70] =>
    string(53) "/app/design/adminhtml/default/default/template/paypal"
    [71] =>
    string(58) "/app/design/adminhtml/default/default/template/permissions"
    [72] =>
    string(53) "/app/design/adminhtml/default/default/template/report"
    [73] =>
    string(50) "/app/design/adminhtml/default/default/template/tax"
    [74] =>
    string(46) "/app/design/frontend/base/default/template/cms"
    [75] =>
    string(48) "/app/design/frontend/base/default/template/email"
    [76] =>
    string(55) "/app/design/frontend/base/default/template/moneybookers"
    [77] =>
    string(48) "/app/design/frontend/base/default/template/oauth"
    [78] =>
    string(49) "/app/design/frontend/base/default/template/review"
    [79] =>
    string(52) "/app/design/frontend/default/modern/template/catalog"
    [80] =>
    string(42) "/skin/adminhtml/default/default/xmlconnect"
    [81] =>
    string(42) "/skin/frontend/base/default/images/cookies"
    [82] =>
    string(45) "/skin/frontend/base/default/images/xmlconnect"
    [83] =>
    string(58) "/app/design/frontend/default/modern/template/catalogsearch"
  }
  protected $directoriesToIgnoreEntirely =>
  array(84) {
    [0] =>
    string(19) "/app/code/core/Mage"
    [1] =>
    string(19) "/app/code/core/Zend"
    [2] =>
    string(25) "/app/code/core/Enterprise"
    [3] =>
    string(4) "/dev"
    [4] =>
    string(9) "/lib/Zend"
    [5] =>
    string(11) "/lib/Varien"
    [6] =>
    string(12) "/lib/Magento"
    [7] =>
    string(9) "/lib/PEAR"
    [8] =>
    string(9) "/lib/Mage"
    [9] =>
    string(14) "/lib/phpseclib"
    [10] =>
    string(9) "/lib/flex"
    [11] =>
    string(21) "/lib/LinLibertineFont"
    [12] =>
    string(11) "/downloader"
    [13] =>
    string(9) "/js/extjs"
    [14] =>
    string(13) "/js/prototype"
    [15] =>
    string(12) "/js/calendar"
    [16] =>
    string(8) "/js/mage"
    [17] =>
    string(10) "/js/varien"
    [18] =>
    string(12) "/js/tiny_mce"
    [19] =>
    string(11) "/lib/Apache"
    [20] =>
    string(40) "/app/code/community/Phoenix/Moneybookers"
    [21] =>
    string(53) "/app/design/adminhtml/default/default/template/bundle"
    [22] =>
    string(54) "/app/design/adminhtml/default/default/template/catalog"
    [23] =>
    string(55) "/app/design/adminhtml/default/default/template/customer"
    [24] =>
    string(59) "/app/design/adminhtml/default/default/template/downloadable"
    [25] =>
    string(57) "/app/design/adminhtml/default/default/template/newsletter"
    [26] =>
    string(54) "/app/design/adminhtml/default/default/template/payment"
    [27] =>
    string(52) "/app/design/adminhtml/default/default/template/sales"
    [28] =>
    string(53) "/app/design/adminhtml/default/default/template/system"
    [29] =>
    string(53) "/app/design/adminhtml/default/default/template/widget"
    [30] =>
    string(57) "/app/design/adminhtml/default/default/template/xmlconnect"
    [31] =>
    string(49) "/app/design/frontend/base/default/template/bundle"
    [32] =>
    string(50) "/app/design/frontend/base/default/template/catalog"
    [33] =>
    string(51) "/app/design/frontend/base/default/template/checkout"
    [34] =>
    string(51) "/app/design/frontend/base/default/template/customer"
    [35] =>
    string(55) "/app/design/frontend/base/default/template/downloadable"
    [36] =>
    string(47) "/app/design/frontend/base/default/template/page"
    [37] =>
    string(50) "/app/design/frontend/base/default/template/payment"
    [38] =>
    string(49) "/app/design/frontend/base/default/template/paypal"
    [39] =>
    string(50) "/app/design/frontend/base/default/template/reports"
    [40] =>
    string(48) "/app/design/frontend/base/default/template/sales"
    [41] =>
    string(51) "/app/design/frontend/base/default/template/wishlist"
    [42] =>
    string(52) "/app/design/frontend/default/iphone/template/catalog"
    [43] =>
    string(53) "/app/design/frontend/default/iphone/template/checkout"
    [44] =>
    string(49) "/app/design/frontend/default/iphone/template/page"
    [45] =>
    string(50) "/app/design/frontend/default/iphone/template/sales"
    [46] =>
    string(53) "/app/design/frontend/default/iphone/template/wishlist"
    [47] =>
    string(48) "/app/design/frontend/rwd/default/template/bundle"
    [48] =>
    string(49) "/app/design/frontend/rwd/default/template/catalog"
    [49] =>
    string(50) "/app/design/frontend/rwd/default/template/checkout"
    [50] =>
    string(50) "/app/design/frontend/rwd/default/template/customer"
    [51] =>
    string(54) "/app/design/frontend/rwd/default/template/downloadable"
    [52] =>
    string(59) "/app/design/frontend/base/default/template/cataloginventory"
    [53] =>
    string(56) "/app/design/frontend/base/default/template/catalogsearch"
    [54] =>
    string(52) "/app/design/frontend/base/default/template/pagecache"
    [55] =>
    string(58) "/app/design/frontend/default/iphone/template/catalogsearch"
    [56] =>
    string(58) "/app/design/frontend/rwd/default/template/cataloginventory"
    [57] =>
    string(55) "/app/design/frontend/rwd/default/template/catalogsearch"
    [58] =>
    string(62) "/app/design/frontend/rwd/default/template/configurableswatches"
    [59] =>
    string(47) "/app/design/frontend/rwd/default/template/email"
    [60] =>
    string(46) "/app/design/frontend/rwd/default/template/page"
    [61] =>
    string(48) "/app/design/frontend/rwd/default/template/paypal"
    [62] =>
    string(52) "/app/design/frontend/rwd/default/template/persistent"
    [63] =>
    string(49) "/app/design/frontend/rwd/default/template/reports"
    [64] =>
    string(47) "/app/design/frontend/rwd/default/template/sales"
    [65] =>
    string(50) "/app/design/frontend/rwd/default/template/wishlist"
    [66] =>
    string(52) "/app/design/install/default/default/template/install"
    [67] =>
    string(49) "/skin/adminhtml/default/default/images/xmlconnect"
    [68] =>
    string(47) "/skin/frontend/base/default/images/moneybookers"
    [69] =>
    string(31) "/skin/frontend/rwd/default/scss"
    [70] =>
    string(53) "/app/design/adminhtml/default/default/template/paypal"
    [71] =>
    string(58) "/app/design/adminhtml/default/default/template/permissions"
    [72] =>
    string(53) "/app/design/adminhtml/default/default/template/report"
    [73] =>
    string(50) "/app/design/adminhtml/default/default/template/tax"
    [74] =>
    string(46) "/app/design/frontend/base/default/template/cms"
    [75] =>
    string(48) "/app/design/frontend/base/default/template/email"
    [76] =>
    string(55) "/app/design/frontend/base/default/template/moneybookers"
    [77] =>
    string(48) "/app/design/frontend/base/default/template/oauth"
    [78] =>
    string(49) "/app/design/frontend/base/default/template/review"
    [79] =>
    string(52) "/app/design/frontend/default/modern/template/catalog"
    [80] =>
    string(42) "/skin/adminhtml/default/default/xmlconnect"
    [81] =>
    string(42) "/skin/frontend/base/default/images/cookies"
    [82] =>
    string(45) "/skin/frontend/base/default/images/xmlconnect"
    [83] =>
    string(58) "/app/design/frontend/default/modern/template/catalogsearch"
  }
  protected $gitIgnoreLocation =>
  string(25) "public/modules/.gitignore"
  protected $hasChanges =>
  bool(true)
}

No, there is no public/modules.

Is the error happening on installing the core or removing it?

Ok why doesn't it exist at that point? To remove the core it must exist?

So If you know jekyll is a static site generator. On building it deletes all public folder content. Then composer install magento as new installation. However now I want to update dependencies and lock them to <IP_ADDRESS>.

In my opinon problem is in not checking availbility of gitignore on remove action

OK this is your issue. The workflow for the installer, when updating a magento core package is:

check if there is a core package already installed (in your case yes)
remove it
update the gitignore (which fails because it doesnt exist)
install new version
update gitignore

Your workflow doesn't tie in with the workflow of the installer.
Maybe the installer could have an option like "no-remove-on-update" which would skip the removal process when updating if true.
Sadly I don't have time to implement this at the minute, however, I would accept pull requests :)
Sent from my iPhone

On 6 Nov 2015, at 12:12, Nikita<EMAIL_ADDRESS>wrote:
So If you know jekyll is a static site generator. On building it deletes all public folder content. Then composer install magento as new installation. However now I want to update dependencies and lock them to <IP_ADDRESS>.
—
Reply to this email directly or view it on GitHub.

#27


Simplify missing value handling in xarray.corr

This PR simplifies the fix from https://github.com/pydata/xarray/pull/5731, specifically for the benefit of xarray.corr. There is no need to use map_blocks instead of using where directly.
It is a basically an alternative version of https://github.com/pydata/xarray/pull/5284. It is potentially slightly less efficient to do this masking step when unnecessary, but I doubt this makes a noticeable performance difference in practice (and I doubt this optimization is useful insdie map_blocks, anyways).

Much better! Thanks. Sorry for being quick on merging the earlier PR.


Chat - Infinite loading after selecting flag option offline

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Issue found when executing PR https://github.com/Expensify/App/pull/22771
Action Performed:
Precondition: user is logged in on two platforms with different accounts

Open the app logged in with Account A
On a different device, send a message from Account B to Account A
Open the chat as Account A
Turn off wifi or mobile data
Tap the message and select "Reply in thread"
Send a message in the thread
Return to the report
Tap the message and select "Flag as offensive"

Expected Result:
The reasons for flagging are displayed
Actual Result:
Infinite loading when selecting "Flag as offensive"
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[x] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/bfd625d0-0c20-4403-b2ab-0107e4888f31
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:

Proposal
Please re-state the problem that we are trying to solve in this issue.
Selecting flag option shows infinite loading in offline mode
What is the root cause of that problem?
We're showing Loader here
https://github.com/Expensify/App/blob/be7b6a09cde880cd96470e4e9e0c2f921499dd20/src/pages/FlagCommentPage.js#L150-L153
We set report.isLoadingReportActions to true when we open report and set isLoadingReportData when we reconnect app.
In offline mode, openReport API isn't called but isLoadingReportActions is set optimistically. That's why we see the infinite loader.
This is from this PR
What changes do you think we should make in order to solve the problem?
We have reportID and reportActionID(from the route). I think we should be able to flag comments as long as we have corresponding report and reportAction.
So I suggest to remove the above code completely(L150-L153)
This works as expected.
What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
Infinite loading after selecting flag option offline.
What is the root cause of that problem?
The root cause of this issue is that

We set optimistic isLoadingReportActions to true when open a report
In offline mode, isLoadingReportActions of the report remains true, so following snippet will show the infinite loading

https://github.com/Expensify/App/blob/5419d9ba7bb33347160ff20fc061e48d914eac6e/src/pages/FlagCommentPage.js#L160-L163
What changes do you think we should make in order to solve the problem?
The expected behaviours should be

In offline mode, the flag options should be shown and is able to flag, which will update to backend after online.
If report is loading,  isLoadingReportData is true, we should show loading indicator
If report or action to flag is empty, then we should show FullPageNotFoundView

To achieve it, we can

Remove following snippet
https://github.com/Expensify/App/blob/cc5526ba5ab448694e57d941a718dca2eca2174c/src/pages/FlagCommentPage.js#L160-L163

Change this line
https://github.com/Expensify/App/blob/cc5526ba5ab448694e57d941a718dca2eca2174c/src/pages/FlagCommentPage.js#L168
to
<FullPageNotFoundView shouldShow={_.isEmpty(props.report) || _.isEmpty(getActionToFlag()) || !ReportUtils.shouldShowFlagComment(getActionToFlag(), props.report)}>

Add
withReportOrNotFound,

below this line
https://github.com/Expensify/App/blob/cc5526ba5ab448694e57d941a718dca2eca2174c/src/pages/FlagCommentPage.js#L193
and remove
https://github.com/Expensify/App/blob/cc5526ba5ab448694e57d941a718dca2eca2174c/src/pages/FlagCommentPage.js#L202-L204

The usage of withReportOrNotFound and FullPageNotFoundView   is similar to SplitBillDetailsPage.js
What alternative solutions did you explore? (Optional)
N/A

Easy, MelvinBot. @fedirjh is reviewing proposals.

@fedirjh Thanks for reviewing proposals. Can I have your feedback about my proposal.
I think it makes sense to display the not found page if report action is not yet in Onyx regarding the data flow guides. The not found page will be updated to flag page if openReport API return new report action data. The transition should be expected right?
If we access by deep link of the flag page, like http://localhost:8082/flag/8132130769751654/3782505051996183681
there're following cases to be considered

Online or offline
Report<PHONE_NUMBER>751654 exists in Onyx or not
Report Action<PHONE_NUMBER>996183681 exists in Onyx or not
ReportUtils.shouldShowFlagComment or not

Looks good to me as well, thanks @fedirjh and @dukenv0307!

@fedirjh and @dukenv0307 are both hired in Upworks: https://www.upwork.com/ab/applicants/1681531600613777408/hired. We're waiting on the regression period now.
@fedirjh can you get started on the checklist when you have a minute?

The payments have been sent via Upworks and QA issue created.


plumb reset info through to KBFS

via resets field in UserPlusKeys

cc: @strib, is this what you guys need?

I can add it to reset summary, good point.

OK PTAL!


Printing utilities for event history

In some cases it is needed to print certain information for a series of events, which may include:

full or short type name of an event,
its ID,
origin command ID,
what caused the event,
Timestamp of the event,
ID of the entity produced the event,
etc.

One of the usages, that we already need is printing RecentHistory. See PR #666 in which this class was introduced. At the time of writing RecentHistory just prints its size because putting all the information about the events would hardly usable in the scope of this class.
As samples for the printing API please consider:

MoreObjects.ToStringHelper from Guava.
JsonFormat.Printer from Protobuf.

Reassigned to @armiol.

Closing as not detailed enough. The projects using Spine address the need somehow. Should we have more detailed needs, we'd revisit the issue.


Update latest sched-ops and use autopilot-api package instead of autopilot

If not needed try removing the override block for azure assuming it's not a direct dependency and due to sched-ops dependency the right version may get pulled anyway.
Does the same apply for k8s packages?
This will probably make dep ensure better in stork which depends on torpedo.

Tested image on torpedo dev job. merging now. https://jenkins.portworx.co/job/Torpedo/job/tp-dev-test/172/console


Can't import pushworld

Hello, thanks for the great library!
I've followed the installation instructions on the README but when I try to load environment I'm getting ModuleNotFoundError. How can I make sure the pushworld is installed into the venv environment?
/Users/tkelestemur/projects/libs/pushworld/python3
(push-world) ➜  python3 git:(main) ✗ python scripts/demo_gym_env.py
Traceback (most recent call last):
  File "/Users/tkelestemur/projects/libs/pushworld/python3/scripts/demo_gym_env.py", line 20, in <module>
    from pushworld.puzzle import NUM_ACTIONS
ModuleNotFoundError: No module named 'pushworld'

Hi Tarik! I tried a fresh install and wasn't able to reproduce this issue. In the pushworld/python3 directory, have you run source venv/bin/activate? Or maybe you need to run deactivate first because you are in a different virtual environment?
Here are the commands that work for me:
git clone git@github.com:deepmind/pushworld.git
cd pushworld/python3
source venv/bin/activate
pytest test/test_puzzle.py

This script creates a pushworld.pth file under the <python libs dir>/site-packages and writes ../../../../src into the file which does not link to the correct folder. I manually changed it to the full path of the folder as /Users/tkelestemur/projects/libs/pushworld/python3/src which fixed the problem.


Constant name "all_gists" doesn't conform to UPPER_CASE naming style

https://github.com/lbonanomi/gRist/blob/0bb7eceee04bd597966217117892ae3e98250892/grist.py#L217

Issues for naming style are now ignored.


USB: New builder API

usb: improved descriptor building API

The same API call allocates interfaces/endpoints/etc and writes their descriptors.
This means less API calls, and less possibility to screw things up.

DescriptorWriter is now private.

The HID changes are actually pretty close to where I started with it. I changed to the more generic heavy version in order to move potential errors from runtime to compile time (no more Options or unwraps). What about just making a type alias?
pub type HidClassOut<'d, D, const IN_N: usize, const OUT_N: usize> =
    HidClass<'d, D, ReportReader<'d, D, OUT_N>, IN_N>;

This version also seems to require the use of the split method in order to use the class. I think it's nicer from an API perspective to give the user the choice whether or not splitting makes sense in their application.

The Builder changes look good to me. I like the design of nested builders, especially for something as tree-like as the USB configuration is.

bors r+


Add support for efficient bit encoding/decoding

Currently, in order to achieve bit encoding/decoding (i.e. bit-level precision), types must call serialize_bool repeatedly. While fine for bools, this is very inefficient for variable-length integers, fixed-point numbers, fixed-range integers, etc. These are all very common in efficient network protocols, e.g. for multiplayer video games.
I propose adding new methods, serialize_bits and deserialize_bits, to the Serializer and Deserializer traits, respectively. For backwards compatibility, these new methods would have default implementations that call either serialize_bool/serialize_u8 or deserialize_bool/deserialize_u8.
In the simplest form, the type signatures would be:
fn serialize_bits(self, v: u32, n: u8) -> Result<Self::Ok, Self::Error>;

fn deserialize_bits<V>(self, visitor: V, n: u8) -> Result<V::Value, Self::Error>
    where
        V: Visitor<'de>;

Semantically, serialize_bits would serialize the n least significant bits from v.
In a more complex version, any unsigned integer type could be supported by defining an Unsigned marker trait, implementing it for u8 through u128, and making the methods' v parameter generic over Unsigned. The Unsigned trait could have a single method that splits the integer into a &[usize].
Adding these methods would make it possible for implementors of Serializer/Deserializer to add fast paths for bit encoding/decoding. I haven't benchmarked the performance impact yet, but if there is interest, I could potentially provide some. Let me know!

After thinking about and working on this some more, I've come to the conclusion that bit encoding/decoding is sufficiently unique that it should really use its own trait. This makes it possible to make optimizations that would not make sense in a general serialization/deserialization context. So I no longer recommend making this change to serde.


Classes which implement an Idisposeable interface

What's about classes which implement an Idisposeable interface?
Will the dispose method be automatically called or has the user explicitly call the method?
And when not calling the dispose method will the unmanaged resourced get freed?
Sincerely brayan

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

ID: 6e9eecf7-0edb-5b24-964c-a1ae2e7556ba
Version Independent ID: 8f9243b4-0f7c-6aac-39e2-913173ea472a
Content: Introduction to DependencyService - Xamarin
Content Source: docs/xamarin-forms/app-fundamentals/dependency-service/introduction.md
Product: xamarin
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @BrayanKhosravian
Great questions.
By default, retrieved services are singletons and will live for the lifetime of the app. However, when calling the Get method you can specify DependencyFetchTarget.NewInstance as an argument. This will create a new instance of the service each time Get is called, with the app then being responsible for freeing up any resources e.g.
var myService = DependencyService.Get<IMyService>(DependencyFetchTarget.NewInstance);
using (myService as IDisposable)
{
    myService.DoStuff();
}

I've created an issue in our backlog to refresh the DependencyService docs, to mention such issues.


Lighthouse and customer tenants

The following line may need some clarification.
Once you have created the user with the necessary permissions as described above, the user can deploy policies that use remediation tasks within the customer tenant.
Is it not more correct to say within the customers delegated subscriptions ? As the user will not have permissions to deploy policies to subscriptions within the customers tenant that have not been delegated via lighthouse ?

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

ID: 15dcad6d-fb8d-821b-2834-dc1db53c03fa
Version Independent ID: 536b4715-84e9-d740-8299-91354c3ba2ba
Content: Deploy a policy that can be remediated - Azure Lighthouse
Content Source: articles/lighthouse/how-to/deploy-policy-remediation.md
Service: lighthouse
GitHub Login: @JnHs
Microsoft Alias: jenhayes

Thanks for bringing this to our attention. Your feedback has been shared with the content owner for further review.

@markmcdonagh-hpe thank you for the feedback! Agree that is clearer wording, I've implemented this per your suggestion and will now close this issue, but please let us know if you have additional doc feedback.
#please-close


Expose enum constants

Allows exposing the constants for usage in frontend (where $data is being used for more descriptive labels)

Do you know about the frontend Enum class?

I did not, but I also can't find any usages nor documentations surrounding it.
I'm currently adding my enums to AppState's enums(), where I needed a certain type as their constant (comparing a custom select field to it's value)
Any example or reference to doing it properly would of course be welcome.

You should add local enums to a LocalStateBuilder and reuse the bootEnums helper available in the FE.
The you can do
computed: {
   ...mapState('local', ['enums']),
}

....

$this.enums.myEnum._get(key)`

usage example
full api

Thanks, I'll look into using & documenting it!
I do believe certain use-cases could benefit from this simpler exposure.
Feel free to disagree and close this PR though 😁
p.s.: I hope you had a nice holiday :-)

I hope you had a nice holiday :-)

Yes I did, finally leveraged 3.2.0 :))))
The same for you :)

Thanks, I did recently :)
Just as a small follow-up (reason why I exposed constants() in the first place):
If you have an enum (LaravelEnso\Helpers\app\Classes\Enum declared with both constants & a $data object; only the numerical keys & strings contained in the data object are exposed to the frontend, right?
ex.:
class MyEnumClass extends Enum
{
    const onEnter = 0;
    const onExit = 1;
    const manual = 2;

    protected static $data = [
        self::onEnter => 'Automatically on enter',
        self::onExit => 'Automatically on exit',
        self::manual => 'Manually',
    ];
}

In the frontend, I want to check something === enums.myEnumClass.manual; the Enum class doesn't provide a method for it,does it? (it's methods always seem to return the full string declared in $data; which makes sense as that's the only data it received from the api)
If confirmed, I'd document exposing via ::constants() too, for this kind of usecase; unless you have an idea to modify Enum.js + the way it's receive the classes to allow for both sets to be defined simultaneously (even then load-wise it's probably interesting to document the constants() method too.

It has a little magic but only if you are using `self::MyConstantName' => 'My Constant Name'

@aocneanu commented on May 2, 2019, 9:06 AM GMT+2:

It has a little magic but only if you are using `self::MyConstantName' => 'My Constant Name'

Do you mean declaring self::MyConstantName as a string instead of a direct reference, and thus passing it along back to back-end as a string instead of integer? 🤔  If not, could you provide a more complete example?
Thanks!

Basically the constant name should match the label without spaces

Ah, yes; because spaces get trimmed in the flip.
I'll note it alongside the constant method 👍


[BUG] Not an editor command: SessionSave in SpaceVim

Describe the bug
Adding auto-session in SpaceVim init.toml doesn't seem to load the plugin.
To Reproduce
Steps to reproduce the behavior:

Add auto-session to SpaceVim init.toml.
Restart SpaceVim
Try using :SessionSave command

Expected behavior
For the command to work/the plugin to have loaded.
Baseline (please complete the following information):

Result of set sessionoptions?: sessionoptions=blank,buffers,curdir,folds,help,tabpages,winsize,terminal
OS. e.g uname -a: Darwin KMX5QH9Q0F 23.5.0 Darwin Kernel Version 23.5.0: Wed May  1 20:17:33 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T6031 arm64
Neovim version nvim --version: NVIM v0.10.0

Here's my SpaceVim init.toml:
[options]
    # set spacevim theme. by default colorscheme layer is not loaded,
    # if you want to use more colorscheme, please load the colorscheme
    # layer
    colorscheme = "tokyonight-night"
    colorscheme_bg = "dark"
    # Disable guicolors in basic mode, many terminal do not support 24bit
    # true colors
    enable_guicolors = true
    # Disable statusline separator, if you want to use other value, please
    # install nerd fonts
    statusline_separator = "arrow"
    statusline_iseparator = "arrow"
    buffer_index_type = 4
    enable_tabline_filetype_icon = true
    enable_statusline_mode = false
    project_rooter_outermost = false
    bootstrap_before = 'myspacevim#before'
    bootstrap_after = 'myspacevim#after'

# Enable autocomplete layer
[[layers]]
name = 'autocomplete'
auto_completion_return_key_behavior = "complete"
auto_completion_tab_key_behavior = "smart"

[[layers]]
name = 'shell'
default_position = 'top'
default_height = 30

[[layers]]
  name = "colorscheme"

[[layers]]
  name = "lang#kotlin"

[[custom_plugins]]
  repo = "folke/tokyonight.nvim"
  merged = 0

[[layers]]
    name = 'git'
[[layers]]
    name = 'VersionControl'

[[layers]]
    name = "denite"
[[layers]]
    name = "telescope"

[[layers]]
  name = "gtags"
  gtagslabel = "pygments"

[[custom_plugins]]
    repo = "rmagatti/auto-session"
    merged = false

[[layers]]
  name = "lsp"

I would frankly say that it is not the bug with the plugin itself. It is related to the distribution SpaceVim.

@tan-wei I'm sure you're right, I'm just not sure where else to get info on this (pretty new to spacevim/vim plugins in general). I've noticed that spacevim is using this startify plugin which I think has it's own session handling logic, perhaps that is causing a conflict? Are there any known issues between startify and autosession?

Yeah this isn't really auto-session related. It just looks like the plugin never loaded if :SessionSave is not available. I'm gonna close this issue until an actual problem with auto-session itself comes up. I don't personally use SpaceVim so this isn't something I've come across or would have the time to dig into unfortunately.
Perhaps posting on the SpaceVim repo would shed some light?

@rooday-doordash If the plugin is loaded correctly, these commands should be enabled.  Maybe you should ask Spacevim directly, to know how to load the plugin you add correctly.


Can not select June date

Issue can been seen in the demo as well.  When clicking on a June date from the days view, it is changed to May.

can´t reproduce the error, what browser are you using?

chrome

I see it in the demo on safari as well

Hi there, same thing here, and there is some problem including your demo ("pick date button"), december is the first month, maybe this issue is releated in some way to that. Thanks.

I'm not able to reproduce this error did i get it wrong?

Hi again, here is a capture:

i rollback the version to 1.0.4 and it work perfectly as always.
Thanks by taking care. Bye

Any errors on the console?

Can you test the version 1.0.6 please? if its working on that version maybe i know where the problem may be.

Not actually, only style.css and glyphicons.png both 404

Nothing wrong with 1.0.6 version, i have time, do you need another test for other version?

hmm... 2 things have changed from 1.0.6 to 1.0.7:
1 - dropped {{ binds }} from ng-bind on templates
2- a possible fix when you have a 31 day month selected and then select a 30 day month ti will jump 1 month
One of this thinks is breaking the last release.

Ok, give me a few seconds to check that version.

Yeap, the 1.0.7 takes dicember as the first month

can you check version 1.0.12 please?

Working perfectly!, good job, thanks

thanks for the help!

On the live demo page, June is showing May:

I suspect this is related to the time zone offset calculation in 'truncateToDay'. I am in US CST (GMT -0500)

I have to admit that I'm no expert in timezone management =/
Maybe someone can create a unit tests with different timezone for this issue in order to work on it.

Maybe using setUTCHours instead of setHours would be better : http://stackoverflow.com/questions/3894048/what-is-the-best-way-to-initialize-a-javascript-date-to-midnight

On the demo now, you can't see May 31 when viewing May:

Also when I select a date and get the time view, it shows 5 hours from the previous day, and 19 hours from the selected day (based on my UTC offset):

i think i will revert the changes in this commit https://github.com/g00fy-/angular-datepicker/commit/d83b9e60e7a1c30fe4ce159e144a580af8b1240b would it help?

I think it would leave it with the problem I describe above "On the live demo page, June is showing May".
Is adjusting to UTC the right thing to do here?  The user is selecting a date/time according to their current time zone


center mixin class missing .translate

Hi there; great framework. mixin.less is missing .translate attribute for .center class.

Hey @dolcy not sure what you mean here. The .center() mixin has a translate of -50% -50%.

Sorry, was pulling general.less; I corrected the docs. Really good stuff ;)


Xmzheng/client sdk callformat lib

add encryption transport lib to web-ts. Add same test logic for derive_symmetric_key for golang, rust and typescript.

@pro-wh thanks for your comments, I will update my diff.
this diff related to other implementations: https://github.com/oasisprotocol/oasis-core/pull/4772


[BUG] iphone12 mini could not connect exhentai，but can connect e-hentai

Describe the bug
IPhone 12 mini, IOS 15.1. 切到e-hentai时候4G与wifi都能直连，切到exhentai时候无论挂不挂vpn，4G与wifi都显示：发生网络故障请稍后再试。
To Reproduce
Steps to reproduce the behavior:

Go to '设置-账户'
Click on 'ExHentai'
Scroll down to '主页'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Please complete the following information:

Device: [e.g. iPhone 12]
OS: [e.g. iOS 15]
App Version [e.g. 1.0.3]

Additional context
Add any other context about the problem here.

Describe the bug A clear and concise description of what the bug is.
To Reproduce Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior A clear and concise description of what you expected to happen.
Screenshots If applicable, add screenshots to help explain your problem.
Please complete the following information:

Device: [e.g. iPhone 12]
OS: [e.g. iOS 15]
App Version [e.g. 1.0.3]

Additional context Add any other context about the problem here.

In Setting - Account - ExHentai, are those three fields all filled with valid cookies?
Did you turn Bypass SNI Filtering feature on? If so, can you turn it off and try again? If you're living in a country that E-Hentai has been banned there, consider using a proxy instead.
Please describe what you actually see when you try to access ExHentai. And make sure your IP hasn't been banned by E-Hentai, so as your account.

I am going to close this issue since it's unreproducible and the issuer is not responding.